Try fixing Parcelable implementation issues.

This commit is contained in:
Docile-Alligator 2022-02-28 23:55:49 +08:00
parent f0589ada3e
commit 40078880af
5 changed files with 28 additions and 24 deletions

View File

@ -148,7 +148,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
private int mCommentIconAndInfoColor; private int mCommentIconAndInfoColor;
private int mFullyCollapsedCommentBackgroundColor; private int mFullyCollapsedCommentBackgroundColor;
private int mAwardedCommentBackgroundColor; private int mAwardedCommentBackgroundColor;
private Integer[] verticalBlockColors; private int[] verticalBlockColors;
private Drawable mCommentIcon; private Drawable mCommentIcon;
@ -273,7 +273,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
mFullyCollapsedCommentBackgroundColor = customThemeWrapper.getFullyCollapsedCommentBackgroundColor(); mFullyCollapsedCommentBackgroundColor = customThemeWrapper.getFullyCollapsedCommentBackgroundColor();
mAwardedCommentBackgroundColor = customThemeWrapper.getAwardedCommentBackgroundColor(); mAwardedCommentBackgroundColor = customThemeWrapper.getAwardedCommentBackgroundColor();
verticalBlockColors = new Integer[] { verticalBlockColors = new int[] {
customThemeWrapper.getCommentVerticalBarColor1(), customThemeWrapper.getCommentVerticalBarColor1(),
customThemeWrapper.getCommentVerticalBarColor2(), customThemeWrapper.getCommentVerticalBarColor2(),
customThemeWrapper.getCommentVerticalBarColor3(), customThemeWrapper.getCommentVerticalBarColor3(),

View File

@ -14,7 +14,7 @@ public class Comment implements Parcelable {
public static final int NOT_PLACEHOLDER = 0; public static final int NOT_PLACEHOLDER = 0;
public static final int PLACEHOLDER_LOAD_MORE_COMMENTS = 1; public static final int PLACEHOLDER_LOAD_MORE_COMMENTS = 1;
public static final int PLACEHOLDER_CONTINUE_THREAD = 2; public static final int PLACEHOLDER_CONTINUE_THREAD = 2;
public static final Creator<Comment> CREATOR = new Creator<Comment>() { public static final Creator<Comment> CREATOR = new Creator<>() {
@Override @Override
public Comment createFromParcel(Parcel in) { public Comment createFromParcel(Parcel in) {
return new Comment(in); return new Comment(in);
@ -139,8 +139,10 @@ public class Comment implements Parcelable {
scoreHidden = in.readByte() != 0; scoreHidden = in.readByte() != 0;
isExpanded = in.readByte() != 0; isExpanded = in.readByte() != 0;
hasExpandedBefore = in.readByte() != 0; hasExpandedBefore = in.readByte() != 0;
children = in.readArrayList(Comment.class.getClassLoader()); children = new ArrayList<>();
moreChildrenFullnames = in.readArrayList(Comment.class.getClassLoader()); in.readTypedList(children, Comment.CREATOR);
moreChildrenFullnames = new ArrayList<>();
in.readStringList(moreChildrenFullnames);
moreChildrenStartingIndex = in.readInt(); moreChildrenStartingIndex = in.readInt();
placeholderType = in.readInt(); placeholderType = in.readInt();
isLoadingMoreChildren = in.readByte() != 0; isLoadingMoreChildren = in.readByte() != 0;
@ -416,8 +418,8 @@ public class Comment implements Parcelable {
parcel.writeByte((byte) (scoreHidden ? 1 : 0)); parcel.writeByte((byte) (scoreHidden ? 1 : 0));
parcel.writeByte((byte) (isExpanded ? 1 : 0)); parcel.writeByte((byte) (isExpanded ? 1 : 0));
parcel.writeByte((byte) (hasExpandedBefore ? 1 : 0)); parcel.writeByte((byte) (hasExpandedBefore ? 1 : 0));
parcel.writeList(children); parcel.writeTypedList(children);
parcel.writeList(moreChildrenFullnames); parcel.writeStringList(moreChildrenFullnames);
parcel.writeInt(moreChildrenStartingIndex); parcel.writeInt(moreChildrenStartingIndex);
parcel.writeInt(placeholderType); parcel.writeInt(placeholderType);
parcel.writeByte((byte) (isLoadingMoreChildren ? 1 : 0)); parcel.writeByte((byte) (isLoadingMoreChildren ? 1 : 0));

View File

@ -367,37 +367,37 @@ public class CustomThemeWrapper {
getDefaultColor("#F0F0F0", "#3C3C3C", "#3C3C3C")); getDefaultColor("#F0F0F0", "#3C3C3C", "#3C3C3C"));
} }
public Integer getCommentVerticalBarColor1() { public int getCommentVerticalBarColor1() {
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_1, return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_1,
getDefaultColor("#0336FF", "#0336FF", "#0336FF")); getDefaultColor("#0336FF", "#0336FF", "#0336FF"));
} }
public Integer getCommentVerticalBarColor2() { public int getCommentVerticalBarColor2() {
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_2, return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_2,
getDefaultColor("#EE02BE", "#C300B3", "#C300B3")); getDefaultColor("#EE02BE", "#C300B3", "#C300B3"));
} }
public Integer getCommentVerticalBarColor3() { public int getCommentVerticalBarColor3() {
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_3, return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_3,
getDefaultColor("#02DFEE", "#00B8DA", "#00B8DA")); getDefaultColor("#02DFEE", "#00B8DA", "#00B8DA"));
} }
public Integer getCommentVerticalBarColor4() { public int getCommentVerticalBarColor4() {
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_4, return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_4,
getDefaultColor("#EED502", "#EDCA00", "#EDCA00")); getDefaultColor("#EED502", "#EDCA00", "#EDCA00"));
} }
public Integer getCommentVerticalBarColor5() { public int getCommentVerticalBarColor5() {
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_5, return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_5,
getDefaultColor("#EE0220", "#EE0219", "#EE0219")); getDefaultColor("#EE0220", "#EE0219", "#EE0219"));
} }
public Integer getCommentVerticalBarColor6() { public int getCommentVerticalBarColor6() {
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_6, return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_6,
getDefaultColor("#02EE6E", "#00B925", "#00B925")); getDefaultColor("#02EE6E", "#00B925", "#00B925"));
} }
public Integer getCommentVerticalBarColor7() { public int getCommentVerticalBarColor7() {
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_7, return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.COMMENT_VERTICAL_BAR_COLOR_7,
getDefaultColor("#EE4602", "#EE4602", "#EE4602")); getDefaultColor("#EE4602", "#EE4602", "#EE4602"));
} }

View File

@ -18,7 +18,7 @@ public class CommentIndentationView extends LinearLayout {
private final Paint paint; private final Paint paint;
private int level; private int level;
private Integer[] colors; private int[] colors;
private ArrayList<Integer> startXs; private ArrayList<Integer> startXs;
private final int spacing; private final int spacing;
private int pathWidth; private int pathWidth;
@ -85,7 +85,7 @@ public class CommentIndentationView extends LinearLayout {
invalidate(); invalidate();
} }
public void setLevelAndColors(int level, Integer[] colors) { public void setLevelAndColors(int level, int[] colors) {
this.colors = colors; this.colors = colors;
this.level = level; this.level = level;
if (level > 0) { if (level > 0) {
@ -106,7 +106,7 @@ public class CommentIndentationView extends LinearLayout {
private static class SavedState extends BaseSavedState { private static class SavedState extends BaseSavedState {
ArrayList<Integer> startXs; ArrayList<Integer> startXs;
Integer[] colors; int[] colors;
SavedState(Parcelable superState) { SavedState(Parcelable superState) {
super(superState); super(superState);
@ -114,18 +114,19 @@ public class CommentIndentationView extends LinearLayout {
private SavedState(Parcel in) { private SavedState(Parcel in) {
super(in); super(in);
startXs = in.readArrayList(SavedState.class.getClassLoader()); startXs = new ArrayList<>();
colors = (Integer[]) in.readArray(SavedState.class.getClassLoader()); in.readList(startXs, Integer.class.getClassLoader());
colors = in.createIntArray();
} }
@Override @Override
public void writeToParcel(Parcel out, int flags) { public void writeToParcel(Parcel out, int flags) {
super.writeToParcel(out, flags); super.writeToParcel(out, flags);
out.writeList(startXs); out.writeList(startXs);
out.writeArray(colors); out.writeIntArray(colors);
} }
public static final Parcelable.Creator<SavedState> CREATOR = new Parcelable.Creator<SavedState>() { public static final Parcelable.Creator<SavedState> CREATOR = new Parcelable.Creator<>() {
public SavedState createFromParcel(Parcel in) { public SavedState createFromParcel(Parcel in) {
return new SavedState(in); return new SavedState(in);
} }

View File

@ -103,10 +103,11 @@ public class MultiReddit implements Parcelable {
over18 = in.readByte() != 0; over18 = in.readByte() != 0;
isSubscriber = in.readByte() != 0; isSubscriber = in.readByte() != 0;
isFavorite = in.readByte() != 0; isFavorite = in.readByte() != 0;
subreddits = in.readArrayList(MultiReddit.class.getClassLoader()); subreddits = new ArrayList<>();
in.readStringList(subreddits);
} }
public static final Creator<MultiReddit> CREATOR = new Creator<MultiReddit>() { public static final Creator<MultiReddit> CREATOR = new Creator<>() {
@Override @Override
public MultiReddit createFromParcel(Parcel in) { public MultiReddit createFromParcel(Parcel in) {
return new MultiReddit(in); return new MultiReddit(in);
@ -253,6 +254,6 @@ public class MultiReddit implements Parcelable {
parcel.writeByte((byte) (over18 ? 1 : 0)); parcel.writeByte((byte) (over18 ? 1 : 0));
parcel.writeByte((byte) (isSubscriber ? 1 : 0)); parcel.writeByte((byte) (isSubscriber ? 1 : 0));
parcel.writeByte((byte) (isFavorite ? 1 : 0)); parcel.writeByte((byte) (isFavorite ? 1 : 0));
parcel.writeList(subreddits); parcel.writeStringList(subreddits);
} }
} }