This commit is contained in:
Mariotaku Lee 2016-02-23 22:42:41 +08:00
parent 3cf014976d
commit dbca8e96c5
2 changed files with 12 additions and 3 deletions

View File

@ -1,6 +1,7 @@
package org.mariotaku.twidere.menu.support;
import android.content.Context;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.ActionProvider;
@ -71,6 +72,15 @@ public class FavoriteItemProvider extends ActionProvider {
item.setIcon(drawable);
}
public void setIsFavorite(MenuItem item, boolean isFavorite) {
if (MenuItemCompat.getActionProvider(item) != this) throw new IllegalArgumentException();
final Drawable icon = item.getIcon();
if (icon instanceof LikeAnimationDrawable) {
icon.mutate();
icon.setColorFilter(isFavorite ? mActivatedColor : mDefaultColor, PorterDuff.Mode.SRC_ATOP);
}
}
private static class ViewCallback implements Drawable.Callback {
private final WeakReference<View> mViewRef;

View File

@ -138,13 +138,13 @@ import org.mariotaku.twidere.api.twitter.model.UserMentionEntity;
import org.mariotaku.twidere.fragment.iface.IBaseFragment.SystemWindowsInsetsCallback;
import org.mariotaku.twidere.fragment.support.AbsStatusesFragment.DefaultOnLikedListener;
import org.mariotaku.twidere.fragment.support.AccountsManagerFragment;
import org.mariotaku.twidere.fragment.support.InteractionsTimelineFragment;
import org.mariotaku.twidere.fragment.support.AddStatusFilterDialogFragment;
import org.mariotaku.twidere.fragment.support.DestroyStatusDialogFragment;
import org.mariotaku.twidere.fragment.support.DirectMessagesFragment;
import org.mariotaku.twidere.fragment.support.DraftsFragment;
import org.mariotaku.twidere.fragment.support.FiltersFragment;
import org.mariotaku.twidere.fragment.support.IncomingFriendshipsFragment;
import org.mariotaku.twidere.fragment.support.InteractionsTimelineFragment;
import org.mariotaku.twidere.fragment.support.ListsFragment;
import org.mariotaku.twidere.fragment.support.MessagesConversationFragment;
import org.mariotaku.twidere.fragment.support.MutesUsersListFragment;
@ -2256,8 +2256,7 @@ public final class Utils implements Constants {
ActionProvider provider = MenuItemCompat.getActionProvider(favorite);
final boolean useStar = preferences.getBoolean(KEY_I_WANT_MY_STARS_BACK);
if (provider instanceof FavoriteItemProvider) {
((FavoriteItemProvider) provider).setIsFavorite(favorite, isFavorite);
} else {
if (useStar) {
final Drawable oldIcon = favorite.getIcon();