forked from mirrors/Fedilab
Comment issue #405 - Allow to increase max indentation
This commit is contained in:
parent
c47e8ea806
commit
1d7aed393f
4 changed files with 51 additions and 23 deletions
|
@ -39,12 +39,20 @@ public class DividerDecoration extends RecyclerView.ItemDecoration {
|
|||
private final Context _mContext;
|
||||
private final List<Status> statusList;
|
||||
private final float fontScale;
|
||||
private final int indentationMax;
|
||||
private final List<Integer> colorList = Arrays.asList(
|
||||
R.color.decoration_1,
|
||||
R.color.decoration_2,
|
||||
R.color.decoration_3,
|
||||
R.color.decoration_4,
|
||||
R.color.decoration_5
|
||||
R.color.decoration_5,
|
||||
R.color.decoration_6,
|
||||
R.color.decoration_7,
|
||||
R.color.decoration_8,
|
||||
R.color.decoration_9,
|
||||
R.color.decoration_10,
|
||||
R.color.decoration_11,
|
||||
R.color.decoration_12
|
||||
);
|
||||
|
||||
public DividerDecoration(Context context, List<Status> statuses) {
|
||||
|
@ -52,6 +60,7 @@ public class DividerDecoration extends RecyclerView.ItemDecoration {
|
|||
statusList = statuses;
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(_mContext);
|
||||
fontScale = prefs.getFloat(_mContext.getString(R.string.SET_FONT_SCALE), 1.1f);
|
||||
indentationMax = prefs.getInt(_mContext.getString(R.string.SET_MAX_INDENTATION), 5);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -62,7 +71,7 @@ public class DividerDecoration extends RecyclerView.ItemDecoration {
|
|||
Status status = statusAdapter.getItem(position);
|
||||
|
||||
int start = (int) Helper.convertDpToPixel(
|
||||
6 * fontScale * CommentDecorationHelper.getIndentation(status.in_reply_to_id, statusList, colorList.size()),
|
||||
6 * fontScale * CommentDecorationHelper.getIndentation(status.in_reply_to_id, statusList, indentationMax),
|
||||
_mContext);
|
||||
|
||||
if (parent.getLayoutDirection() == View.LAYOUT_DIRECTION_LTR) {
|
||||
|
@ -84,8 +93,8 @@ public class DividerDecoration extends RecyclerView.ItemDecoration {
|
|||
Status status = statusAdapter.getItem(position);
|
||||
|
||||
int indentation = Math.min(
|
||||
CommentDecorationHelper.getIndentation(status.in_reply_to_id, statusList, colorList.size()),
|
||||
colorList.size());
|
||||
CommentDecorationHelper.getIndentation(status.in_reply_to_id, statusList, indentationMax),
|
||||
indentationMax);
|
||||
|
||||
if (indentation > 0) {
|
||||
Paint paint = new Paint();
|
||||
|
@ -100,9 +109,14 @@ public class DividerDecoration extends RecyclerView.ItemDecoration {
|
|||
startPx = c.getWidth() - startPx;
|
||||
|
||||
float bottomPx = view.getBottom();
|
||||
|
||||
paint.setColor(ResourcesCompat.getColor(_mContext.getResources(), colorList.get(j), _mContext.getTheme()));
|
||||
if (j == colorList.size() - 1) {
|
||||
int color;
|
||||
if (j >= colorList.size()) {
|
||||
color = colorList.get(j - colorList.size());
|
||||
} else {
|
||||
color = colorList.get(j);
|
||||
}
|
||||
paint.setColor(ResourcesCompat.getColor(_mContext.getResources(), color, _mContext.getTheme()));
|
||||
if (j == indentationMax - 1) {
|
||||
paint.setPathEffect(new DashPathEffect(
|
||||
new float[]{Helper.convertDpToPixel(3, _mContext), Helper.convertDpToPixel(3, _mContext)},
|
||||
0));
|
||||
|
@ -111,8 +125,13 @@ public class DividerDecoration extends RecyclerView.ItemDecoration {
|
|||
|
||||
c.drawLine(startPx, view.getTop() - margin, startPx, bottomPx, paint);
|
||||
}
|
||||
|
||||
paint.setColor(ResourcesCompat.getColor(_mContext.getResources(), colorList.get(indentation - 1), _mContext.getTheme()));
|
||||
int color;
|
||||
if (indentation - 1 >= colorList.size()) {
|
||||
color = colorList.get(indentation - 1 - colorList.size());
|
||||
} else {
|
||||
color = colorList.get(indentation - 1);
|
||||
}
|
||||
paint.setColor(ResourcesCompat.getColor(_mContext.getResources(), color, _mContext.getTheme()));
|
||||
|
||||
float startDp = 6 * fontScale * (indentation - 1) + 6 * fontScale;
|
||||
float centerPx = view.getBottom() - view.getHeight() / 2F;
|
||||
|
|
|
@ -77,21 +77,18 @@
|
|||
<color name="dark_icon_theme">#f3f3f3</color>
|
||||
|
||||
|
||||
<color name="decoration_1">#7986CB</color> <!-- Red 300 -->
|
||||
<color name="decoration_2">#4DB6AC</color> <!-- Purple 300 -->
|
||||
<color name="decoration_1">#7986CB</color> <!-- Indigo 300 -->
|
||||
<color name="decoration_2">#4DB6AC</color> <!-- Teal 300 -->
|
||||
<color name="decoration_3">#FFD54F</color> <!-- Amber 300 -->
|
||||
<color name="decoration_4">#64B5F6</color> <!-- Blue 300 -->
|
||||
<color name="decoration_5">#9E9E9E</color> <!-- Green 300 -->
|
||||
<!-- Teal 300 -->
|
||||
<!-- Deep Orange 300 -->
|
||||
<!-- Cyan 300 -->
|
||||
<!-- Light Green 300 -->
|
||||
<!-- Deep Purple 300 -->
|
||||
<!-- Orange 300 -->
|
||||
<!-- Light Blue 300 -->
|
||||
<!-- Lime 300 -->
|
||||
<!-- Indigo 300 -->
|
||||
<!-- Gray 500 -->
|
||||
|
||||
<color name="decoration_5">#DCE775</color> <!-- Lime 300 -->
|
||||
<color name="decoration_6">#E57373</color> <!-- Red 300 -->
|
||||
<color name="decoration_7">#4DD0E1</color> <!-- Cyan 300 -->
|
||||
<color name="decoration_8">#FFF176</color> <!-- Yellow 300 -->
|
||||
<color name="decoration_9">#81C784</color> <!-- Green 300 -->
|
||||
<color name="decoration_10">#A1887F</color> <!-- Brown 300 -->
|
||||
<color name="decoration_11">#AED581</color> <!-- Light Green 300 -->
|
||||
<color name="decoration_12">#FF8A65</color> <!-- Deep Orange 300 -->
|
||||
|
||||
<color name="decoration_end">#9E9E9E</color> <!-- Gray 300 -->
|
||||
</resources>
|
||||
|
|
|
@ -969,6 +969,8 @@
|
|||
<string name="SET_NOTIF_POLL" translatable="false">SET_NOTIF_POLL</string>
|
||||
<string name="SET_NOTIF_STATUS" translatable="false">SET_NOTIF_STATUS</string>
|
||||
<string name="SET_FONT_SCALE" translatable="false">SET_FONT_SCALE</string>
|
||||
<string name="SET_MAX_INDENTATION" translatable="false">SET_MAX_INDENTATION</string>
|
||||
|
||||
<string name="SET_FONT_SCALE_INT" translatable="false">SET_FONT_SCALE_INT</string>
|
||||
<string name="SET_FONT_SCALE_ICON" translatable="false">SET_FONT_SCALE_ICON</string>
|
||||
<string name="SET_FONT_SCALE_ICON_INT" translatable="false">SET_FONT_SCALE_ICON_INT</string>
|
||||
|
@ -1560,4 +1562,5 @@
|
|||
<string name="status_history">Message history</string>
|
||||
<string name="edited_message_at">Edited at %1$s</string>
|
||||
<string name="created_message_at">Created at %1$s</string>
|
||||
<string name="max_indentation_thread">Max indentation in threads</string>
|
||||
</resources>
|
||||
|
|
|
@ -50,6 +50,15 @@
|
|||
app:summary="@string/aggregate_notifications_summary"
|
||||
app:title="@string/aggregate_notifications" />
|
||||
|
||||
<androidx.preference.SeekBarPreference
|
||||
android:defaultValue="5"
|
||||
android:max="20"
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="@string/SET_MAX_INDENTATION"
|
||||
app:showSeekBarValue="true"
|
||||
app:singleLineTitle="false"
|
||||
app:title="@string/max_indentation_thread" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
app:defaultValue="true"
|
||||
app:iconSpaceReserved="false"
|
||||
|
|
Loading…
Reference in a new issue