Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Fabric Twitter share listener

I use Fabric SDK to send tweets from my application.

I build a share dialog and send tweet from activity.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    TwitterAuthConfig authConfig = new TwitterAuthConfig(CONSUMER_KEY, CONSUMER_SECRET);
    Fabric.with(this, new TwitterCore(authConfig), new TweetComposer());

    Bundle bundle = getIntent().getExtras().getBundle(SHARE_DATA);
    String description = bundle.getString(SHARE_DESCRIPTION);
    String title = bundle.getString(SHARE_TITLE);
    String picture = bundle.getString(SHARE_PICTURE_LINK);
    String link = bundle.getString(SHARE_LINK);

    TweetComposer.Builder builder = null;
    try {
        InputStream in = new java.net.URL(picture).openStream();
        Bitmap bitmap = BitmapFactory.decodeStream(in);
        Uri yourUri = getImageUri(this,bitmap);
        builder = new TweetComposer.Builder(this)
                .text(title + "\n" + description)
                .url(new URL(link))
                .image(yourUri);
        //??? IS THERE ANY LISTENER ???
        builder.show();
    } catch (IOException e1) {
        e1.printStackTrace();
    }
}

I want to know status of sharing, like an success or not, but i can't find any listener for this action.

I missed something?

like image 921
Sergey Shustikov Avatar asked Dec 05 '25 07:12

Sergey Shustikov


1 Answers

Instead of use builder.show(), you should use builder.createIntent() :

Intent intent = new TweetComposer.Builder(getActivity())
        .text("TEXT")
        .url("URL")
        .createIntent();

startActivityForResult(intent, TWEET_COMPOSER_REQUEST_CODE);

To get the result feedback in onActivityResult() :

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if(requestCode == TWEET_COMPOSER_REQUEST_CODE) {

        if(resultCode == Activity.RESULT_OK) {

            onTwitterSuccess();

        } else if(resultCode == Activity.RESULT_CANCELED) {

            onTwitterCancel();
        }
    }

}
like image 127
Aurélien Guillard Avatar answered Dec 07 '25 22:12

Aurélien Guillard