Loading app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +6 −0 Original line number Diff line number Diff line Loading @@ -646,6 +646,9 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> holder.binding.actionButtonBookmark.setInactiveImage(R.drawable.ic_round_bookmark_border_24); holder.binding.actionButtonBoost.setActiveImage(R.drawable.ic_round_repeat_active_24); holder.binding.actionButtonBoost.setInactiveImage(R.drawable.ic_round_repeat_24); holder.binding.actionButtonFavorite.setActiveImageTint(R.color.marked_icon); holder.binding.actionButtonBoost.setActiveImageTint(R.color.boost_icon); holder.binding.actionButtonBookmark.setActiveImageTint(R.color.marked_icon); applyColor(context, holder); if (status.pinned) { Loading Loading @@ -2324,6 +2327,9 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> Helper.changeDrawableColor(context, R.drawable.ic_bot, theme_icons_color); Helper.changeDrawableColor(context, R.drawable.ic_round_reply_24, theme_icons_color); Helper.changeDrawableColor(context, holder.binding.actionButtonTranslate, theme_icons_color); holder.binding.actionButtonBoost.setInActiveImageTintColor(theme_icons_color); holder.binding.actionButtonFavorite.setInActiveImageTintColor(theme_icons_color); holder.binding.actionButtonBookmark.setInActiveImageTintColor(theme_icons_color); holder.binding.replyCount.setTextColor(theme_icons_color); } if (theme_statuses_color != -1) { Loading sparkbutton/src/main/java/com/varunest/sparkbutton/SparkButton.java +42 −47 Original line number Diff line number Diff line Loading @@ -7,10 +7,10 @@ import android.animation.ObjectAnimator; import android.annotation.TargetApi; import android.content.Context; import android.content.res.TypedArray; import android.graphics.PorterDuff; import android.os.Build; import android.util.AttributeSet; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.animation.AccelerateDecelerateInterpolator; import android.view.animation.DecelerateInterpolator; Loading Loading @@ -55,21 +55,24 @@ public class SparkButton extends FrameLayout implements View.OnClickListener { private float animationSpeed = 1; private boolean isChecked = false; private AnimatorSet animatorSet; private SparkEventListener listener; private final Context context; SparkButton(Context context) { super(context); this.context = context; } public SparkButton(Context context, AttributeSet attrs) { super(context, attrs); initFromXML(attrs); this.context = context; init(); } public SparkButton(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initFromXML(attrs); this.context = context; init(); } Loading @@ -77,6 +80,7 @@ public class SparkButton extends FrameLayout implements View.OnClickListener { public SparkButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); initFromXML(attrs); this.context = context; init(); } Loading Loading @@ -221,6 +225,24 @@ public class SparkButton extends FrameLayout implements View.OnClickListener { return isChecked; } public void setInActiveImageTint(int inActiveImageTint) { this.inActiveImageTint = getColor(inActiveImageTint); } public void setInActiveImageTintColor(int inActiveImageTint) { this.inActiveImageTint = inActiveImageTint; } public void setActiveImageTint(int activeImageTint) { this.activeImageTint = getColor(activeImageTint); } public void setActiveImageTintColor(int activeImageTint) { this.activeImageTint = activeImageTint; } /** * Change Button State (Works only if both active and disabled image resource is defined) * Loading @@ -229,6 +251,7 @@ public class SparkButton extends FrameLayout implements View.OnClickListener { public void setChecked(boolean flag) { isChecked = flag; imageView.setImageResource(isChecked ? imageResourceIdActive : imageResourceIdInactive); imageView.setColorFilter(isChecked ? activeImageTint : inActiveImageTint, PorterDuff.Mode.SRC_ATOP); } public void setInactiveImage(int inactiveResource) { Loading @@ -241,11 +264,9 @@ public class SparkButton extends FrameLayout implements View.OnClickListener { imageView.setImageResource(isChecked ? imageResourceIdActive : imageResourceIdInactive); } @Override public void onClick(View v) { boolean shouldPlayAnimation = listener == null || listener.onEvent(this, isChecked); if (shouldPlayAnimation) { if (imageResourceIdInactive != INVALID_RESOURCE_ID) { isChecked = !isChecked; Loading @@ -264,35 +285,7 @@ public class SparkButton extends FrameLayout implements View.OnClickListener { playAnimation(); } } } private void setOnTouchListener() { setOnTouchListener((v, event) -> { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: imageView.animate().scaleX(0.8f).scaleY(0.8f).setDuration(150).setInterpolator(DECELERATE_INTERPOLATOR); setPressed(true); break; case MotionEvent.ACTION_MOVE: break; case MotionEvent.ACTION_UP: imageView.animate().scaleX(1).scaleY(1).setInterpolator(DECELERATE_INTERPOLATOR); if (isPressed()) { performClick(); setPressed(false); } break; case MotionEvent.ACTION_CANCEL: imageView.animate().scaleX(1).scaleY(1).setInterpolator(DECELERATE_INTERPOLATOR); break; } return true; }); } private int getColor(int id) { return ContextCompat.getColor(getContext(), id); Loading @@ -310,4 +303,6 @@ public class SparkButton extends FrameLayout implements View.OnClickListener { // recycle typedArray a.recycle(); } } Loading
app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +6 −0 Original line number Diff line number Diff line Loading @@ -646,6 +646,9 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> holder.binding.actionButtonBookmark.setInactiveImage(R.drawable.ic_round_bookmark_border_24); holder.binding.actionButtonBoost.setActiveImage(R.drawable.ic_round_repeat_active_24); holder.binding.actionButtonBoost.setInactiveImage(R.drawable.ic_round_repeat_24); holder.binding.actionButtonFavorite.setActiveImageTint(R.color.marked_icon); holder.binding.actionButtonBoost.setActiveImageTint(R.color.boost_icon); holder.binding.actionButtonBookmark.setActiveImageTint(R.color.marked_icon); applyColor(context, holder); if (status.pinned) { Loading Loading @@ -2324,6 +2327,9 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> Helper.changeDrawableColor(context, R.drawable.ic_bot, theme_icons_color); Helper.changeDrawableColor(context, R.drawable.ic_round_reply_24, theme_icons_color); Helper.changeDrawableColor(context, holder.binding.actionButtonTranslate, theme_icons_color); holder.binding.actionButtonBoost.setInActiveImageTintColor(theme_icons_color); holder.binding.actionButtonFavorite.setInActiveImageTintColor(theme_icons_color); holder.binding.actionButtonBookmark.setInActiveImageTintColor(theme_icons_color); holder.binding.replyCount.setTextColor(theme_icons_color); } if (theme_statuses_color != -1) { Loading
sparkbutton/src/main/java/com/varunest/sparkbutton/SparkButton.java +42 −47 Original line number Diff line number Diff line Loading @@ -7,10 +7,10 @@ import android.animation.ObjectAnimator; import android.annotation.TargetApi; import android.content.Context; import android.content.res.TypedArray; import android.graphics.PorterDuff; import android.os.Build; import android.util.AttributeSet; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.animation.AccelerateDecelerateInterpolator; import android.view.animation.DecelerateInterpolator; Loading Loading @@ -55,21 +55,24 @@ public class SparkButton extends FrameLayout implements View.OnClickListener { private float animationSpeed = 1; private boolean isChecked = false; private AnimatorSet animatorSet; private SparkEventListener listener; private final Context context; SparkButton(Context context) { super(context); this.context = context; } public SparkButton(Context context, AttributeSet attrs) { super(context, attrs); initFromXML(attrs); this.context = context; init(); } public SparkButton(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initFromXML(attrs); this.context = context; init(); } Loading @@ -77,6 +80,7 @@ public class SparkButton extends FrameLayout implements View.OnClickListener { public SparkButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); initFromXML(attrs); this.context = context; init(); } Loading Loading @@ -221,6 +225,24 @@ public class SparkButton extends FrameLayout implements View.OnClickListener { return isChecked; } public void setInActiveImageTint(int inActiveImageTint) { this.inActiveImageTint = getColor(inActiveImageTint); } public void setInActiveImageTintColor(int inActiveImageTint) { this.inActiveImageTint = inActiveImageTint; } public void setActiveImageTint(int activeImageTint) { this.activeImageTint = getColor(activeImageTint); } public void setActiveImageTintColor(int activeImageTint) { this.activeImageTint = activeImageTint; } /** * Change Button State (Works only if both active and disabled image resource is defined) * Loading @@ -229,6 +251,7 @@ public class SparkButton extends FrameLayout implements View.OnClickListener { public void setChecked(boolean flag) { isChecked = flag; imageView.setImageResource(isChecked ? imageResourceIdActive : imageResourceIdInactive); imageView.setColorFilter(isChecked ? activeImageTint : inActiveImageTint, PorterDuff.Mode.SRC_ATOP); } public void setInactiveImage(int inactiveResource) { Loading @@ -241,11 +264,9 @@ public class SparkButton extends FrameLayout implements View.OnClickListener { imageView.setImageResource(isChecked ? imageResourceIdActive : imageResourceIdInactive); } @Override public void onClick(View v) { boolean shouldPlayAnimation = listener == null || listener.onEvent(this, isChecked); if (shouldPlayAnimation) { if (imageResourceIdInactive != INVALID_RESOURCE_ID) { isChecked = !isChecked; Loading @@ -264,35 +285,7 @@ public class SparkButton extends FrameLayout implements View.OnClickListener { playAnimation(); } } } private void setOnTouchListener() { setOnTouchListener((v, event) -> { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: imageView.animate().scaleX(0.8f).scaleY(0.8f).setDuration(150).setInterpolator(DECELERATE_INTERPOLATOR); setPressed(true); break; case MotionEvent.ACTION_MOVE: break; case MotionEvent.ACTION_UP: imageView.animate().scaleX(1).scaleY(1).setInterpolator(DECELERATE_INTERPOLATOR); if (isPressed()) { performClick(); setPressed(false); } break; case MotionEvent.ACTION_CANCEL: imageView.animate().scaleX(1).scaleY(1).setInterpolator(DECELERATE_INTERPOLATOR); break; } return true; }); } private int getColor(int id) { return ContextCompat.getColor(getContext(), id); Loading @@ -310,4 +303,6 @@ public class SparkButton extends FrameLayout implements View.OnClickListener { // recycle typedArray a.recycle(); } }