mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-12-29 20:37:12 +01:00
Fix CommentIndentationView losing state.
This commit is contained in:
parent
ad78aebf67
commit
16014a8807
@ -238,7 +238,7 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
||||
private int mCommentIconAndInfoColor;
|
||||
private int mFullyCollapsedCommentBackgroundColor;
|
||||
private int mAwardedCommentBackgroundColor;
|
||||
private int[] verticalBlockColors;
|
||||
private Integer[] verticalBlockColors;
|
||||
|
||||
private Drawable mCommentIcon;
|
||||
private float mScale;
|
||||
@ -572,7 +572,7 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
||||
mFullyCollapsedCommentBackgroundColor = customThemeWrapper.getFullyCollapsedCommentBackgroundColor();
|
||||
mAwardedCommentBackgroundColor = customThemeWrapper.getAwardedCommentBackgroundColor();
|
||||
|
||||
verticalBlockColors = new int[] {
|
||||
verticalBlockColors = new Integer[] {
|
||||
customThemeWrapper.getCommentVerticalBarColor1(),
|
||||
customThemeWrapper.getCommentVerticalBarColor2(),
|
||||
customThemeWrapper.getCommentVerticalBarColor3(),
|
||||
@ -1896,9 +1896,7 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
||||
((CommentViewHolder) holder).downvoteButton.setColorFilter(mCommentIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||
((CommentViewHolder) holder).replyButton.setColorFilter(mCommentIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||
((CommentViewHolder) holder).itemView.setBackgroundColor(mCommentBackgroundColor);
|
||||
} else if (holder instanceof CommentFullyCollapsedViewHolder) {
|
||||
} else if (holder instanceof LoadMoreChildCommentsViewHolder) {
|
||||
} else if (holder instanceof PostDetailBaseViewHolder) {
|
||||
} else if (holder instanceof PostDetailBaseViewHolder) {
|
||||
((PostDetailBaseViewHolder) holder).mUpvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||
((PostDetailBaseViewHolder) holder).mScoreTextView.setTextColor(mPostIconAndInfoColor);
|
||||
((PostDetailBaseViewHolder) holder).mDownvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||
|
@ -357,37 +357,37 @@ public class CustomThemeWrapper {
|
||||
getDefaultColor("#F0F0F0", "#3C3C3C", "#3C3C3C"));
|
||||
}
|
||||
|
||||
public int getCommentVerticalBarColor1() {
|
||||
public Integer getCommentVerticalBarColor1() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_1,
|
||||
getDefaultColor("#1565C0", "#1565C0", "#1565C0"));
|
||||
}
|
||||
|
||||
public int getCommentVerticalBarColor2() {
|
||||
public Integer getCommentVerticalBarColor2() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_2,
|
||||
getDefaultColor("#EE02BE", "#C300B3", "#C300B3"));
|
||||
}
|
||||
|
||||
public int getCommentVerticalBarColor3() {
|
||||
public Integer getCommentVerticalBarColor3() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_3,
|
||||
getDefaultColor("#02DFEE", "#00B8DA", "#00B8DA"));
|
||||
}
|
||||
|
||||
public int getCommentVerticalBarColor4() {
|
||||
public Integer getCommentVerticalBarColor4() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_4,
|
||||
getDefaultColor("#EED502", "#EDCA00", "#EDCA00"));
|
||||
}
|
||||
|
||||
public int getCommentVerticalBarColor5() {
|
||||
public Integer getCommentVerticalBarColor5() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_5,
|
||||
getDefaultColor("#EE0220", "#EE0219", "#EE0219"));
|
||||
}
|
||||
|
||||
public int getCommentVerticalBarColor6() {
|
||||
public Integer getCommentVerticalBarColor6() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_6,
|
||||
getDefaultColor("#02EE6E", "#00B925", "#00B925"));
|
||||
}
|
||||
|
||||
public int getCommentVerticalBarColor7() {
|
||||
public Integer getCommentVerticalBarColor7() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_7,
|
||||
getDefaultColor("#EE4602", "#EE4602", "#EE4602"));
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package ml.docilealligator.infinityforreddit.customviews;
|
||||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.util.AttributeSet;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
@ -16,13 +18,14 @@ public class CommentIndentationView extends LinearLayout {
|
||||
|
||||
private final Paint paint;
|
||||
private int level;
|
||||
private int[] colors;
|
||||
private Integer[] colors;
|
||||
private ArrayList<Integer> startXs;
|
||||
private final int spacing;
|
||||
private final int pathWidth;
|
||||
|
||||
public CommentIndentationView(Context context, @Nullable AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
setSaveEnabled(true);
|
||||
setWillNotDraw(false);
|
||||
paint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||
pathWidth = (int) Utils.convertDpToPixel(2, context);
|
||||
@ -36,6 +39,7 @@ public class CommentIndentationView extends LinearLayout {
|
||||
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
|
||||
super.onLayout(changed, left, top, right, bottom);
|
||||
|
||||
startXs.clear();
|
||||
for (int i = 0; i < level; i++) {
|
||||
startXs.add(spacing * (i + 1) + pathWidth);
|
||||
}
|
||||
@ -49,13 +53,67 @@ public class CommentIndentationView extends LinearLayout {
|
||||
paint.setColor(colors[i % 7]);
|
||||
canvas.drawLine(startXs.get(i), 0, startXs.get(i), getHeight(), paint);
|
||||
}
|
||||
startXs.clear();
|
||||
}
|
||||
|
||||
public void setLevelAndColors(int level, int[] colors) {
|
||||
@Nullable
|
||||
@Override
|
||||
protected Parcelable onSaveInstanceState() {
|
||||
Parcelable parcelable = super.onSaveInstanceState();
|
||||
SavedState myState = new SavedState(parcelable);
|
||||
myState.startXs = this.startXs;
|
||||
myState.colors = this.colors;
|
||||
return parcelable;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onRestoreInstanceState(Parcelable state) {
|
||||
SavedState savedState = (SavedState) state;
|
||||
|
||||
super.onRestoreInstanceState(savedState.getSuperState());
|
||||
|
||||
this.startXs = savedState.startXs;
|
||||
this.colors = savedState.colors;
|
||||
|
||||
invalidate();
|
||||
}
|
||||
|
||||
public void setLevelAndColors(int level, Integer[] colors) {
|
||||
this.colors = colors;
|
||||
this.level = level;
|
||||
int indentationSpacing = (level * spacing + pathWidth);
|
||||
setPaddingRelative(indentationSpacing, 0, pathWidth, 0);
|
||||
invalidate();
|
||||
}
|
||||
|
||||
private static class SavedState extends BaseSavedState {
|
||||
ArrayList<Integer> startXs;
|
||||
Integer[] colors;
|
||||
|
||||
SavedState(Parcelable superState) {
|
||||
super(superState);
|
||||
}
|
||||
|
||||
private SavedState(Parcel in) {
|
||||
super(in);
|
||||
startXs = in.readArrayList(SavedState.class.getClassLoader());
|
||||
colors = (Integer[]) in.readArray(SavedState.class.getClassLoader());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel out, int flags) {
|
||||
super.writeToParcel(out, flags);
|
||||
out.writeList(startXs);
|
||||
out.writeArray(colors);
|
||||
}
|
||||
|
||||
public static final Parcelable.Creator<SavedState> CREATOR = new Parcelable.Creator<SavedState>() {
|
||||
public SavedState createFromParcel(Parcel in) {
|
||||
return new SavedState(in);
|
||||
}
|
||||
|
||||
public SavedState[] newArray(int size) {
|
||||
return new SavedState[size];
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user