Search in sources :

Example 41 with TwitterException

use of twitter4j.TwitterException in project twicalico by moko256.

the class StatusView method updateView.

private void updateView() {
    final Status item = status.isRetweet() ? status.getRetweetedStatus() : status;
    if (status.isRetweet()) {
        if (retweetUserName.getVisibility() != View.VISIBLE) {
            retweetUserName.setVisibility(View.VISIBLE);
        }
        retweetUserName.setText(getContext().getString(R.string.repeat_by, status.getUser().getName()));
    } else {
        if (retweetUserName.getVisibility() != View.GONE) {
            retweetUserName.setVisibility(View.GONE);
        }
    }
    boolean isReply = item.getInReplyToScreenName() != null;
    if (isReply) {
        if (replyUserName.getVisibility() != View.VISIBLE) {
            replyUserName.setVisibility(View.VISIBLE);
        }
        replyUserName.setText(getContext().getString((item.getInReplyToStatusId() != -1) ? R.string.reply_to : R.string.mention_to, item.getInReplyToScreenName()));
    } else {
        if (replyUserName.getVisibility() != View.GONE) {
            replyUserName.setVisibility(View.GONE);
        }
    }
    if (status.isRetweet() || isReply) {
        if (headerBottomMargin.getVisibility() != VISIBLE) {
            headerBottomMargin.setVisibility(VISIBLE);
        }
    } else {
        if (headerBottomMargin.getVisibility() != GONE) {
            headerBottomMargin.setVisibility(GONE);
        }
    }
    if (GlobalApplication.configuration.isTimelineImageLoad) {
        glideRequests.load(item.getUser().get400x400ProfileImageURLHttps()).circleCrop().into(userImage);
    } else {
        userImage.setImageResource(R.drawable.border_frame_round);
    }
    userName.setText(item.getUser().getName());
    userId.setText(TwitterStringUtils.plusAtMark(item.getUser().getScreenName()));
    TwitterStringUtils.setLinkedSequenceTo(item, tweetContext);
    if (!tweetContext.getText().toString().trim().isEmpty()) {
        tweetContext.setMovementMethod(LinkMovementMethod.getInstance());
        if (tweetContext.getVisibility() != VISIBLE) {
            tweetContext.setVisibility(VISIBLE);
        }
    } else {
        tweetContext.setMovementMethod(null);
        if (tweetContext.getVisibility() != GONE) {
            tweetContext.setVisibility(GONE);
        }
    }
    timeStampText.setText(DateUtils.getRelativeTimeSpanString(item.getCreatedAt().getTime(), System.currentTimeMillis(), 0));
    userImage.setOnClickListener(v -> {
        ActivityOptionsCompat animation = ActivityOptionsCompat.makeSceneTransitionAnimation(((Activity) getContext()), v, "icon_image");
        getContext().startActivity(ShowUserActivity.getIntent(getContext(), item.getUser().getId()), animation.toBundle());
    });
    setOnClickListener(v -> {
        ActivityOptionsCompat animation = ActivityOptionsCompat.makeSceneTransitionAnimation(((Activity) getContext()), userImage, "icon_image");
        getContext().startActivity(ShowTweetActivity.getIntent(getContext(), item.getId()), animation.toBundle());
    });
    Status quotedStatus = item.getQuotedStatus();
    if (quotedStatus != null) {
        if (quoteTweetLayout.getVisibility() != View.VISIBLE) {
            quoteTweetLayout.setVisibility(View.VISIBLE);
        }
        quoteTweetLayout.setOnClickListener(v -> getContext().startActivity(ShowTweetActivity.getIntent(getContext(), quotedStatus.getId())));
        quoteTweetUserName.setText(quotedStatus.getUser().getName());
        quoteTweetUserId.setText(TwitterStringUtils.plusAtMark(quotedStatus.getUser().getScreenName()));
        quoteTweetContext.setText(quotedStatus.getText());
    } else {
        if (quoteTweetLayout.getVisibility() != View.GONE) {
            quoteTweetLayout.setVisibility(View.GONE);
        }
    }
    MediaEntity[] mediaEntities = item.getMediaEntities();
    if (mediaEntities.length != 0) {
        imageTableView.setVisibility(View.VISIBLE);
        imageTableView.setMediaEntities(mediaEntities, item.isPossiblySensitive());
    } else {
        imageTableView.setVisibility(View.GONE);
    }
    likeButton.setOnCheckedChangeListener((compoundButton, b) -> Single.create(subscriber -> {
        try {
            if (b && (!item.isFavorited())) {
                subscriber.onSuccess(GlobalApplication.twitter.createFavorite(item.getId()));
            } else if ((!b) && item.isFavorited()) {
                subscriber.onSuccess(GlobalApplication.twitter.destroyFavorite(item.getId()));
            }
        } catch (TwitterException e) {
            subscriber.onError(e);
        }
    }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(result -> {
        Status status = (Status) result;
        GlobalApplication.statusCache.add(status);
        setStatus(GlobalApplication.statusCache.get(this.status.getId()));
        Toast.makeText(getContext(), R.string.succeeded, Toast.LENGTH_SHORT).show();
    }, throwable -> {
        throwable.printStackTrace();
        Toast.makeText(getContext(), R.string.error_occurred, Toast.LENGTH_SHORT).show();
    }));
    likeButton.setChecked(item.isFavorited());
    retweetButton.setOnCheckedChangeListener((compoundButton, b) -> Single.create(subscriber -> {
        try {
            if (b && (!item.isRetweeted())) {
                subscriber.onSuccess(GlobalApplication.twitter.retweetStatus(item.getId()));
            } else if ((!b) && item.isRetweeted()) {
                subscriber.onSuccess(GlobalApplication.twitter.unRetweetStatus(item.getId()));
            }
        } catch (TwitterException e) {
            subscriber.onError(e);
        }
    }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(result -> {
        Status status = (Status) result;
        GlobalApplication.statusCache.add(status);
        setStatus(GlobalApplication.statusCache.get(this.status.getId()));
        Toast.makeText(getContext(), R.string.succeeded, Toast.LENGTH_SHORT).show();
    }, throwable -> {
        throwable.printStackTrace();
        Toast.makeText(getContext(), R.string.error_occurred, Toast.LENGTH_SHORT).show();
    }));
    retweetButton.setChecked(item.isRetweeted());
    retweetButton.setEnabled(GlobalApplication.clientType == Type.MASTODON || !(item.getUser().isProtected()) || item.getUser().getId() == GlobalApplication.userId);
    replyButton.setOnClickListener(v -> getContext().startActivity(PostActivity.getIntent(getContext(), item.getId(), TwitterStringUtils.convertToReplyTopString(GlobalApplication.userCache.get(GlobalApplication.userId).getScreenName(), item.getUser().getScreenName(), item.getUserMentionEntities()).toString())));
    likeCount.setText((item.getFavoriteCount() != 0) ? TwitterStringUtils.convertToSIUnitString(item.getFavoriteCount()) : "");
    retweetCount.setText((item.getRetweetCount() != 0) ? TwitterStringUtils.convertToSIUnitString(item.getRetweetCount()) : "");
}
Also used : Status(twitter4j.Status) Context(android.content.Context) ImageButton(android.widget.ImageButton) Type(com.github.moko256.twicalico.entity.Type) DateUtils(android.text.format.DateUtils) Space(android.widget.Space) FrameLayout(android.widget.FrameLayout) ImageView(android.widget.ImageView) AndroidSchedulers(rx.android.schedulers.AndroidSchedulers) LinkMovementMethod(android.text.method.LinkMovementMethod) TwitterStringUtils(com.github.moko256.twicalico.text.TwitterStringUtils) MediaEntity(twitter4j.MediaEntity) Single(rx.Single) AttributeSet(android.util.AttributeSet) CheckBox(android.widget.CheckBox) Toast(android.widget.Toast) Schedulers(rx.schedulers.Schedulers) View(android.view.View) TwitterException(twitter4j.TwitterException) LayoutInflater(android.view.LayoutInflater) TweetImageTableView(com.github.moko256.twicalico.widget.TweetImageTableView) ActivityOptionsCompat(android.support.v4.app.ActivityOptionsCompat) TextView(android.widget.TextView) Status(twitter4j.Status) RelativeLayout(android.widget.RelativeLayout) Activity(android.app.Activity) Activity(android.app.Activity) ActivityOptionsCompat(android.support.v4.app.ActivityOptionsCompat) TwitterException(twitter4j.TwitterException) MediaEntity(twitter4j.MediaEntity)

Example 42 with TwitterException

use of twitter4j.TwitterException in project twicalico by moko256.

the class TrendsFragment method getResponseSingle.

public Single<Trends> getResponseSingle(GeoLocation geolocation) {
    return Single.create(subscriber -> {
        try {
            Trends trends = GlobalApplication.twitter.getPlaceTrends(GlobalApplication.twitter.getClosestTrends(geolocation).get(0).getWoeid());
            helper.setTrends(Arrays.asList(trends.getTrends()));
            subscriber.onSuccess(trends);
        } catch (TwitterException e) {
            subscriber.onError(e);
        }
    });
}
Also used : Trends(twitter4j.Trends) TwitterException(twitter4j.TwitterException)

Example 43 with TwitterException

use of twitter4j.TwitterException in project twicalico by moko256.

the class UserInfoFragment method updateUser.

private Single<User> updateUser() {
    return Single.create(subscriber -> {
        try {
            User user = GlobalApplication.twitter.showUser(userId);
            GlobalApplication.userCache.add(user);
            subscriber.onSuccess(user);
        } catch (TwitterException e) {
            subscriber.onError(e);
        }
    });
}
Also used : User(twitter4j.User) TwitterException(twitter4j.TwitterException)

Example 44 with TwitterException

use of twitter4j.TwitterException in project twicalico by moko256.

the class PostTweetModelImpl method postTweet.

@Override
public Single<Status> postTweet() {
    return Single.create(subscriber -> {
        try {
            StatusUpdate statusUpdate = new StatusUpdate(tweetText);
            if (uriList.size() > 0) {
                long[] ids = new long[uriList.size()];
                for (int i = 0; i < uriList.size(); i++) {
                    Uri uri = uriList.get(i);
                    InputStream image = contentResolver.openInputStream(uri);
                    ids[i] = twitter.uploadMedia(uri.getLastPathSegment(), image).getMediaId();
                }
                statusUpdate.setMediaIds(ids);
                statusUpdate.setPossiblySensitive(possiblySensitive);
            }
            if (isReply()) {
                statusUpdate.setInReplyToStatusId(inReplyToStatusId);
            }
            if (location != null) {
                statusUpdate.setLocation(location);
            }
            subscriber.onSuccess(twitter.updateStatus(statusUpdate));
        } catch (FileNotFoundException | TwitterException e) {
            subscriber.onError(e);
        }
    });
}
Also used : StatusUpdate(twitter4j.StatusUpdate) InputStream(java.io.InputStream) FileNotFoundException(java.io.FileNotFoundException) Uri(android.net.Uri) TwitterException(twitter4j.TwitterException)

Example 45 with TwitterException

use of twitter4j.TwitterException in project twicalico by moko256.

the class MainActivity method updateDrawerImage.

private void updateDrawerImage() {
    subscription.add(Single.create(subscriber -> {
        try {
            User me = GlobalApplication.userCache.get(GlobalApplication.userId);
            if (me == null) {
                me = GlobalApplication.twitter.verifyCredentials();
                GlobalApplication.userCache.add(me);
            }
            subscriber.onSuccess(me);
        } catch (TwitterException e) {
            subscriber.onError(e);
        }
    }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(result -> {
        User user = (User) result;
        userNameText.setText(user.getName());
        userIdText.setText(TwitterStringUtils.plusAtMark(user.getScreenName()));
        userImage.setOnClickListener(v -> startMyUserActivity());
        GlideRequests requests = GlideApp.with(this);
        requests.load(user.get400x400ProfileImageURLHttps()).circleCrop().into(userImage);
        requests.load(user.getProfileBannerRetinaURL()).centerCrop().into(userBackgroundImage);
    }, Throwable::printStackTrace));
}
Also used : NavigationView(android.support.design.widget.NavigationView) LinearLayout(android.widget.LinearLayout) Type(com.github.moko256.twicalico.entity.Type) Bundle(android.os.Bundle) ImageView(android.widget.ImageView) CachedUsersSQLiteOpenHelper(com.github.moko256.twicalico.database.CachedUsersSQLiteOpenHelper) AndroidSchedulers(rx.android.schedulers.AndroidSchedulers) Intent(android.content.Intent) NonNull(android.support.annotation.NonNull) TwitterStringUtils(com.github.moko256.twicalico.text.TwitterStringUtils) MenuItem(android.view.MenuItem) ArrayList(java.util.ArrayList) TabLayout(android.support.design.widget.TabLayout) GravityCompat(android.support.v4.view.GravityCompat) Single(rx.Single) Menu(android.view.Menu) Schedulers(rx.schedulers.Schedulers) User(twitter4j.User) View(android.view.View) TwitterException(twitter4j.TwitterException) PreferenceManager(android.preference.PreferenceManager) DrawerLayout(android.support.v4.widget.DrawerLayout) AccessToken(com.github.moko256.twicalico.entity.AccessToken) Fragment(android.support.v4.app.Fragment) ActivityOptionsCompat(android.support.v4.app.ActivityOptionsCompat) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) AppCompatActivity(android.support.v7.app.AppCompatActivity) ViewGroup(android.view.ViewGroup) CompositeSubscription(rx.subscriptions.CompositeSubscription) RecyclerView(android.support.v7.widget.RecyclerView) FragmentManager(android.support.v4.app.FragmentManager) AlertDialog(android.support.v7.app.AlertDialog) TextView(android.widget.TextView) SharedPreferences(android.content.SharedPreferences) Toolbar(android.support.v7.widget.Toolbar) Pair(android.support.v4.util.Pair) TokenSQLiteOpenHelper(com.github.moko256.twicalico.database.TokenSQLiteOpenHelper) FragmentPagerAdapter(com.github.moko256.twicalico.widget.FragmentPagerAdapter) ActionBarDrawerToggle(android.support.v7.app.ActionBarDrawerToggle) User(twitter4j.User) TwitterException(twitter4j.TwitterException)

Aggregations

TwitterException (twitter4j.TwitterException)96 Twitter (twitter4j.Twitter)69 TwitterFactory (twitter4j.TwitterFactory)54 Status (twitter4j.Status)21 User (twitter4j.User)12 Intent (android.content.Intent)11 ArrayList (java.util.ArrayList)9 File (java.io.File)6 IDs (twitter4j.IDs)6 Context (android.content.Context)5 Date (java.util.Date)4 DirectMessage (twitter4j.DirectMessage)4 Paging (twitter4j.Paging)4 AccessToken (twitter4j.auth.AccessToken)4 Activity (android.app.Activity)3 SharedPreferences (android.content.SharedPreferences)3 ActivityOptionsCompat (android.support.v4.app.ActivityOptionsCompat)3 View (android.view.View)3 ImageView (android.widget.ImageView)3 TextView (android.widget.TextView)3