diff options
Diffstat (limited to 'app/src/main/java/se/lublin/mumla/channel/ChannelListAdapter.java')
-rw-r--r-- | app/src/main/java/se/lublin/mumla/channel/ChannelListAdapter.java | 54 |
1 files changed, 8 insertions, 46 deletions
diff --git a/app/src/main/java/se/lublin/mumla/channel/ChannelListAdapter.java b/app/src/main/java/se/lublin/mumla/channel/ChannelListAdapter.java index 3368c91..84123c9 100644 --- a/app/src/main/java/se/lublin/mumla/channel/ChannelListAdapter.java +++ b/app/src/main/java/se/lublin/mumla/channel/ChannelListAdapter.java @@ -51,9 +51,7 @@ import se.lublin.humla.model.TalkState; import se.lublin.mumla.R; import se.lublin.mumla.db.MumlaDatabase; import se.lublin.mumla.drawable.CircleDrawable; -import se.lublin.mumla.drawable.FlipDrawable; import se.lublin.mumla.service.MumlaService; -import se.lublin.mumla.util.TalkingIndicatorView; /** * Created by andrew on 31/07/13. @@ -63,11 +61,6 @@ public class ChannelListAdapter extends RecyclerView.Adapter implements UserMenu public static final long CHANNEL_ID_MASK = (0x1L << 32); public static final long USER_ID_MASK = (0x1L << 33); - /** - * Time (in ms) to run the flip animation for. - */ - private static final long FLIP_DURATION = 350; - private Context mContext; private IHumlaService mService; private MumlaDatabase mDatabase; @@ -232,10 +225,6 @@ public class ChannelListAdapter extends RecyclerView.Adapter implements UserMenu uvh.mUserName.setTypeface(null, typefaceStyle); uvh.mUserTalkHighlight.setImageDrawable(getTalkStateDrawable(user)); - uvh.mTalkingIndicator.setAlpha( - (user.getTalkState() == TalkState.TALKING || - user.getTalkState() == TalkState.WHISPERING || - user.getTalkState() == TalkState.SHOUTING) ? 1 : 0); // Pad the view depending on channel's nested level. DisplayMetrics metrics = mContext.getResources().getDisplayMetrics(); @@ -319,43 +308,13 @@ public class ChannelListAdapter extends RecyclerView.Adapter implements UserMenu UserViewHolder uvh = (UserViewHolder) view.findViewHolderForItemId(itemId); if (uvh != null) { Drawable newState = getTalkStateDrawable(user); - Drawable oldState = uvh.mUserTalkHighlight.getDrawable().getCurrent(); - - if (!newState.getConstantState().equals(oldState.getConstantState())) { - // "Flip" in new talking state. - FlipDrawable drawable = new FlipDrawable(oldState, newState); - uvh.mUserTalkHighlight.setImageDrawable(drawable); - drawable.start(FLIP_DURATION); + if (!uvh.mUserTalkHighlight.getDrawable().getCurrent().getConstantState() + .equals(newState.getConstantState())) { + uvh.mUserTalkHighlight.setImageDrawable(newState); } } } - /** - * Updates the user's talking indicator. - * @param user The user to update. - * @param view The view containing this adapter. - */ - public void animateUserTalkStateUpdate(IUser user, RecyclerView view) { - long itemId = user.getSession() | USER_ID_MASK; - final UserViewHolder uvh = (UserViewHolder) view.findViewHolderForItemId(itemId); - if (uvh != null) { - boolean talking = user.getTalkState() == TalkState.TALKING || - user.getTalkState() == TalkState.WHISPERING || - user.getTalkState() == TalkState.SHOUTING; - float strokeWidth = uvh.mTalkingIndicator.getStrokeWidth(); - float width = uvh.mUserTalkHighlight.getWidth(); - // Scale down the user's avatar to show the talking indicator. - float scale = talking ? (1 - (strokeWidth * 2)/width) : 1; - uvh.mTalkingIndicator.animate() - .alpha(talking ? 1 : 0) - .setDuration(200); - uvh.mUserTalkHighlight.animate() - .scaleX(scale) - .scaleY(scale) - .setDuration(200); - } - } - private Drawable getTalkStateDrawable(IUser user) { Resources resources = mContext.getResources(); if (user.isSelfDeafened()) { @@ -368,6 +327,11 @@ public class ChannelListAdapter extends RecyclerView.Adapter implements UserMenu return resources.getDrawable(R.drawable.outline_circle_server_muted); } else if (user.isSuppressed()) { return resources.getDrawable(R.drawable.outline_circle_suppressed); + } else if (user.getTalkState() == TalkState.TALKING + || user.getTalkState() == TalkState.SHOUTING + || user.getTalkState() == TalkState.WHISPERING) { + // TODO whisper and shouting? + return resources.getDrawable(R.drawable.outline_circle_talking_on); } else { // Passive drawables if (user.getTexture() != null) { @@ -500,7 +464,6 @@ public class ChannelListAdapter extends RecyclerView.Adapter implements UserMenu // public ImageView mUserAvatar; public ImageView mUserTalkHighlight; public ImageView mMoreButton; - public TalkingIndicatorView mTalkingIndicator; public UserViewHolder(View itemView) { super(itemView); @@ -508,7 +471,6 @@ public class ChannelListAdapter extends RecyclerView.Adapter implements UserMenu mUserTalkHighlight = (ImageView) itemView.findViewById(R.id.user_row_talk_highlight); mUserName = (TextView) itemView.findViewById(R.id.user_row_name); mMoreButton = (ImageView) itemView.findViewById(R.id.user_row_more); - mTalkingIndicator = (TalkingIndicatorView) itemView.findViewById(R.id.user_row_talk_indicator); } } |