mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-12-30 21:07:11 +01:00
New option: Default Link Post Layout.
This commit is contained in:
parent
f68e4aad09
commit
568aa7a78f
@ -148,6 +148,7 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
private boolean canStartActivity = true;
|
private boolean canStartActivity = true;
|
||||||
private int mPostType;
|
private int mPostType;
|
||||||
private int mPostLayout;
|
private int mPostLayout;
|
||||||
|
private int mDefaultLinkPostLayout;
|
||||||
private int mColorPrimaryLightTheme;
|
private int mColorPrimaryLightTheme;
|
||||||
private int mColorAccent;
|
private int mColorAccent;
|
||||||
private int mCardViewBackgroundColor;
|
private int mCardViewBackgroundColor;
|
||||||
@ -295,6 +296,7 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
mHideTheNumberOfComments = sharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_THE_NUMBER_OF_COMMENTS, false);
|
mHideTheNumberOfComments = sharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_THE_NUMBER_OF_COMMENTS, false);
|
||||||
|
|
||||||
mPostLayout = postLayout;
|
mPostLayout = postLayout;
|
||||||
|
mDefaultLinkPostLayout = Integer.parseInt(sharedPreferences.getString(SharedPreferencesUtils.DEFAULT_LINK_POST_LAYOUT_KEY, "-1"));
|
||||||
|
|
||||||
mColorPrimaryLightTheme = customThemeWrapper.getColorPrimaryLightTheme();
|
mColorPrimaryLightTheme = customThemeWrapper.getColorPrimaryLightTheme();
|
||||||
mColorAccent = customThemeWrapper.getColorAccent();
|
mColorAccent = customThemeWrapper.getColorAccent();
|
||||||
@ -382,8 +384,24 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
case Post.IMAGE_TYPE:
|
case Post.IMAGE_TYPE:
|
||||||
return VIEW_TYPE_POST_CARD_IMAGE_AND_GIF_AUTOPLAY_TYPE;
|
return VIEW_TYPE_POST_CARD_IMAGE_AND_GIF_AUTOPLAY_TYPE;
|
||||||
case Post.LINK_TYPE:
|
case Post.LINK_TYPE:
|
||||||
|
switch (mDefaultLinkPostLayout) {
|
||||||
|
case SharedPreferencesUtils.POST_LAYOUT_COMPACT:
|
||||||
|
return VIEW_TYPE_POST_COMPACT;
|
||||||
|
case SharedPreferencesUtils.POST_LAYOUT_GALLERY:
|
||||||
|
return VIEW_TYPE_POST_GALLERY;
|
||||||
|
case SharedPreferencesUtils.POST_LAYOUT_CARD_2:
|
||||||
|
return VIEW_TYPE_POST_CARD_2_WITH_PREVIEW;
|
||||||
|
}
|
||||||
return VIEW_TYPE_POST_CARD_LINK_TYPE;
|
return VIEW_TYPE_POST_CARD_LINK_TYPE;
|
||||||
case Post.NO_PREVIEW_LINK_TYPE:
|
case Post.NO_PREVIEW_LINK_TYPE:
|
||||||
|
switch (mDefaultLinkPostLayout) {
|
||||||
|
case SharedPreferencesUtils.POST_LAYOUT_COMPACT:
|
||||||
|
return VIEW_TYPE_POST_COMPACT;
|
||||||
|
case SharedPreferencesUtils.POST_LAYOUT_GALLERY:
|
||||||
|
return VIEW_TYPE_POST_GALLERY;
|
||||||
|
case SharedPreferencesUtils.POST_LAYOUT_CARD_2:
|
||||||
|
return VIEW_TYPE_POST_CARD_2_WITH_PREVIEW;
|
||||||
|
}
|
||||||
return VIEW_TYPE_POST_CARD_NO_PREVIEW_LINK_TYPE;
|
return VIEW_TYPE_POST_CARD_NO_PREVIEW_LINK_TYPE;
|
||||||
case Post.GALLERY_TYPE:
|
case Post.GALLERY_TYPE:
|
||||||
return VIEW_TYPE_POST_CARD_GALLERY_TYPE;
|
return VIEW_TYPE_POST_CARD_GALLERY_TYPE;
|
||||||
@ -393,6 +411,23 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
}
|
}
|
||||||
return VIEW_TYPE_POST_CARD_TEXT_TYPE;
|
return VIEW_TYPE_POST_CARD_TEXT_TYPE;
|
||||||
} else if (mPostLayout == SharedPreferencesUtils.POST_LAYOUT_COMPACT) {
|
} else if (mPostLayout == SharedPreferencesUtils.POST_LAYOUT_COMPACT) {
|
||||||
|
Post post = getItem(position);
|
||||||
|
if (post != null) {
|
||||||
|
if (post.getPostType() == Post.LINK_TYPE || post.getPostType() == Post.NO_PREVIEW_LINK_TYPE) {
|
||||||
|
switch (mDefaultLinkPostLayout) {
|
||||||
|
case SharedPreferencesUtils.POST_LAYOUT_CARD:
|
||||||
|
if (post.getPostType() == Post.LINK_TYPE) {
|
||||||
|
return VIEW_TYPE_POST_CARD_LINK_TYPE;
|
||||||
|
} else {
|
||||||
|
return VIEW_TYPE_POST_CARD_NO_PREVIEW_LINK_TYPE;
|
||||||
|
}
|
||||||
|
case SharedPreferencesUtils.POST_LAYOUT_GALLERY:
|
||||||
|
return VIEW_TYPE_POST_GALLERY;
|
||||||
|
case SharedPreferencesUtils.POST_LAYOUT_CARD_2:
|
||||||
|
return VIEW_TYPE_POST_CARD_2_WITH_PREVIEW;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return VIEW_TYPE_POST_COMPACT;
|
return VIEW_TYPE_POST_COMPACT;
|
||||||
} else if (mPostLayout == SharedPreferencesUtils.POST_LAYOUT_GALLERY) {
|
} else if (mPostLayout == SharedPreferencesUtils.POST_LAYOUT_GALLERY) {
|
||||||
return VIEW_TYPE_POST_GALLERY;
|
return VIEW_TYPE_POST_GALLERY;
|
||||||
@ -410,10 +445,22 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
return VIEW_TYPE_POST_CARD_2_WITH_PREVIEW;
|
return VIEW_TYPE_POST_CARD_2_WITH_PREVIEW;
|
||||||
case Post.GIF_TYPE:
|
case Post.GIF_TYPE:
|
||||||
case Post.IMAGE_TYPE:
|
case Post.IMAGE_TYPE:
|
||||||
case Post.LINK_TYPE:
|
|
||||||
case Post.NO_PREVIEW_LINK_TYPE:
|
|
||||||
case Post.GALLERY_TYPE:
|
case Post.GALLERY_TYPE:
|
||||||
return VIEW_TYPE_POST_CARD_2_WITH_PREVIEW;
|
return VIEW_TYPE_POST_CARD_2_WITH_PREVIEW;
|
||||||
|
case Post.LINK_TYPE:
|
||||||
|
case Post.NO_PREVIEW_LINK_TYPE:
|
||||||
|
switch (mDefaultLinkPostLayout) {
|
||||||
|
case SharedPreferencesUtils.POST_LAYOUT_CARD:
|
||||||
|
if (post.getPostType() == Post.LINK_TYPE) {
|
||||||
|
return VIEW_TYPE_POST_CARD_LINK_TYPE;
|
||||||
|
} else {
|
||||||
|
return VIEW_TYPE_POST_CARD_NO_PREVIEW_LINK_TYPE;
|
||||||
|
}
|
||||||
|
case SharedPreferencesUtils.POST_LAYOUT_GALLERY:
|
||||||
|
return VIEW_TYPE_POST_GALLERY;
|
||||||
|
case SharedPreferencesUtils.POST_LAYOUT_COMPACT:
|
||||||
|
return VIEW_TYPE_POST_COMPACT;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return VIEW_TYPE_POST_CARD_2_TEXT_TYPE;
|
return VIEW_TYPE_POST_CARD_2_TEXT_TYPE;
|
||||||
}
|
}
|
||||||
@ -1846,6 +1893,10 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
mHideTheNumberOfComments = hideTheNumberOfComments;
|
mHideTheNumberOfComments = hideTheNumberOfComments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setDefaultLinkPostLayout(int defaultLinkPostLayout) {
|
||||||
|
mDefaultLinkPostLayout = defaultLinkPostLayout;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onViewRecycled(@NonNull RecyclerView.ViewHolder holder) {
|
public void onViewRecycled(@NonNull RecyclerView.ViewHolder holder) {
|
||||||
super.onViewRecycled(holder);
|
super.onViewRecycled(holder);
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
package ml.docilealligator.infinityforreddit.events;
|
||||||
|
|
||||||
|
public class ChangeDefaultLinkPostLayoutEvent {
|
||||||
|
public int defaultLinkPostLayout;
|
||||||
|
|
||||||
|
public ChangeDefaultLinkPostLayoutEvent(int defaultLinkPostLayout) {
|
||||||
|
this.defaultLinkPostLayout = defaultLinkPostLayout;
|
||||||
|
}
|
||||||
|
}
|
@ -82,6 +82,7 @@ import ml.docilealligator.infinityforreddit.customviews.CustomToroContainer;
|
|||||||
import ml.docilealligator.infinityforreddit.events.ChangeAutoplayNsfwVideosEvent;
|
import ml.docilealligator.infinityforreddit.events.ChangeAutoplayNsfwVideosEvent;
|
||||||
import ml.docilealligator.infinityforreddit.events.ChangeCompactLayoutToolbarHiddenByDefaultEvent;
|
import ml.docilealligator.infinityforreddit.events.ChangeCompactLayoutToolbarHiddenByDefaultEvent;
|
||||||
import ml.docilealligator.infinityforreddit.events.ChangeDataSavingModeEvent;
|
import ml.docilealligator.infinityforreddit.events.ChangeDataSavingModeEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.events.ChangeDefaultLinkPostLayoutEvent;
|
||||||
import ml.docilealligator.infinityforreddit.events.ChangeDefaultPostLayoutEvent;
|
import ml.docilealligator.infinityforreddit.events.ChangeDefaultPostLayoutEvent;
|
||||||
import ml.docilealligator.infinityforreddit.events.ChangeDisableImagePreviewEvent;
|
import ml.docilealligator.infinityforreddit.events.ChangeDisableImagePreviewEvent;
|
||||||
import ml.docilealligator.infinityforreddit.events.ChangeEnableSwipeActionSwitchEvent;
|
import ml.docilealligator.infinityforreddit.events.ChangeEnableSwipeActionSwitchEvent;
|
||||||
@ -1672,6 +1673,14 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onChangeDefaultLinkPostLayoutEvent(ChangeDefaultLinkPostLayoutEvent event) {
|
||||||
|
if (mAdapter != null) {
|
||||||
|
mAdapter.setDefaultLinkPostLayout(event.defaultLinkPostLayout);
|
||||||
|
refreshAdapter();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onChangeShowAbsoluteNumberOfVotesEvent(ChangeShowAbsoluteNumberOfVotesEvent changeShowAbsoluteNumberOfVotesEvent) {
|
public void onChangeShowAbsoluteNumberOfVotesEvent(ChangeShowAbsoluteNumberOfVotesEvent changeShowAbsoluteNumberOfVotesEvent) {
|
||||||
if (mAdapter != null) {
|
if (mAdapter != null) {
|
||||||
|
@ -11,6 +11,7 @@ import org.greenrobot.eventbus.EventBus;
|
|||||||
|
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.events.ChangeCompactLayoutToolbarHiddenByDefaultEvent;
|
import ml.docilealligator.infinityforreddit.events.ChangeCompactLayoutToolbarHiddenByDefaultEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.events.ChangeDefaultLinkPostLayoutEvent;
|
||||||
import ml.docilealligator.infinityforreddit.events.ChangeDefaultPostLayoutEvent;
|
import ml.docilealligator.infinityforreddit.events.ChangeDefaultPostLayoutEvent;
|
||||||
import ml.docilealligator.infinityforreddit.events.ChangeHidePostFlairEvent;
|
import ml.docilealligator.infinityforreddit.events.ChangeHidePostFlairEvent;
|
||||||
import ml.docilealligator.infinityforreddit.events.ChangeHidePostTypeEvent;
|
import ml.docilealligator.infinityforreddit.events.ChangeHidePostTypeEvent;
|
||||||
@ -31,6 +32,7 @@ public class PostPreferenceFragment extends PreferenceFragmentCompat {
|
|||||||
setPreferencesFromResource(R.xml.post_preferences, rootKey);
|
setPreferencesFromResource(R.xml.post_preferences, rootKey);
|
||||||
|
|
||||||
ListPreference defaultPostLayoutList = findPreference(SharedPreferencesUtils.DEFAULT_POST_LAYOUT_KEY);
|
ListPreference defaultPostLayoutList = findPreference(SharedPreferencesUtils.DEFAULT_POST_LAYOUT_KEY);
|
||||||
|
ListPreference defaultLinkPostLayoutList = findPreference(SharedPreferencesUtils.DEFAULT_LINK_POST_LAYOUT_KEY);
|
||||||
SwitchPreference showDividerInCompactLayoutSwitch = findPreference(SharedPreferencesUtils.SHOW_DIVIDER_IN_COMPACT_LAYOUT);
|
SwitchPreference showDividerInCompactLayoutSwitch = findPreference(SharedPreferencesUtils.SHOW_DIVIDER_IN_COMPACT_LAYOUT);
|
||||||
SwitchPreference showThumbnailOnTheRightInCompactLayoutSwitch = findPreference(SharedPreferencesUtils.SHOW_THUMBNAIL_ON_THE_LEFT_IN_COMPACT_LAYOUT);
|
SwitchPreference showThumbnailOnTheRightInCompactLayoutSwitch = findPreference(SharedPreferencesUtils.SHOW_THUMBNAIL_ON_THE_LEFT_IN_COMPACT_LAYOUT);
|
||||||
SwitchPreference showAbsoluteNumberOfVotesSwitch = findPreference(SharedPreferencesUtils.SHOW_ABSOLUTE_NUMBER_OF_VOTES);
|
SwitchPreference showAbsoluteNumberOfVotesSwitch = findPreference(SharedPreferencesUtils.SHOW_ABSOLUTE_NUMBER_OF_VOTES);
|
||||||
@ -50,6 +52,13 @@ public class PostPreferenceFragment extends PreferenceFragmentCompat {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (defaultLinkPostLayoutList != null) {
|
||||||
|
defaultLinkPostLayoutList.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
|
EventBus.getDefault().post(new ChangeDefaultLinkPostLayoutEvent(Integer.parseInt((String) newValue)));
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (showDividerInCompactLayoutSwitch != null) {
|
if (showDividerInCompactLayoutSwitch != null) {
|
||||||
showDividerInCompactLayoutSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
|
showDividerInCompactLayoutSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
EventBus.getDefault().post(new ShowDividerInCompactLayoutPreferenceEvent((Boolean) newValue));
|
EventBus.getDefault().post(new ShowDividerInCompactLayoutPreferenceEvent((Boolean) newValue));
|
||||||
|
@ -184,6 +184,7 @@ public class SharedPreferencesUtils {
|
|||||||
public static final String APPLY_MATERIAL_YOU = "apply_material_you";
|
public static final String APPLY_MATERIAL_YOU = "apply_material_you";
|
||||||
public static final String VIDEO_PLAYER_AUTOMATIC_LANDSCAPE_ORIENTATION = "video_player_automatic_landscape_orientation";
|
public static final String VIDEO_PLAYER_AUTOMATIC_LANDSCAPE_ORIENTATION = "video_player_automatic_landscape_orientation";
|
||||||
public static final String REMEMBER_MUTING_OPTION_IN_POST_FEED = "remember_muting_option_in_post_feed";
|
public static final String REMEMBER_MUTING_OPTION_IN_POST_FEED = "remember_muting_option_in_post_feed";
|
||||||
|
public static final String DEFAULT_LINK_POST_LAYOUT_KEY = "default_link_post_layout";
|
||||||
|
|
||||||
public static final String DEFAULT_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit_preferences";
|
public static final String DEFAULT_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit_preferences";
|
||||||
public static final String MAIN_PAGE_TABS_SHARED_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit.main_page_tabs";
|
public static final String MAIN_PAGE_TABS_SHARED_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit.main_page_tabs";
|
||||||
|
@ -55,6 +55,22 @@
|
|||||||
<item>2</item>
|
<item>2</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<string-array name="settings_default_link_post_layout">
|
||||||
|
<item>@string/link_post_layout_auto</item>
|
||||||
|
<item>@string/post_layout_card</item>
|
||||||
|
<item>@string/post_layout_card_2</item>
|
||||||
|
<item>@string/post_layout_compact</item>
|
||||||
|
<item>@string/post_layout_gallery</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
|
<string-array name="settings_default_link_post_layout_values">
|
||||||
|
<item>-1</item>
|
||||||
|
<item>0</item>
|
||||||
|
<item>3</item>
|
||||||
|
<item>1</item>
|
||||||
|
<item>2</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
<string-array name="settings_video_autoplay">
|
<string-array name="settings_video_autoplay">
|
||||||
<item>@string/always_on</item>
|
<item>@string/always_on</item>
|
||||||
<item>@string/only_on_wifi</item>
|
<item>@string/only_on_wifi</item>
|
||||||
|
@ -401,6 +401,7 @@
|
|||||||
<string name="settings_time_format_title">Time Format</string>
|
<string name="settings_time_format_title">Time Format</string>
|
||||||
<string name="settings_category_post_title">Post</string>
|
<string name="settings_category_post_title">Post</string>
|
||||||
<string name="settings_default_post_layout">Default Post Layout</string>
|
<string name="settings_default_post_layout">Default Post Layout</string>
|
||||||
|
<string name="settings_default_link_post_layout">Default Link Post Layout</string>
|
||||||
<string name="settings_show_divider_in_compact_layout">Show Divider</string>
|
<string name="settings_show_divider_in_compact_layout">Show Divider</string>
|
||||||
<string name="settings_show_thumbnail_on_the_left_in_compact_layout">Show Thumbnail on the Left</string>
|
<string name="settings_show_thumbnail_on_the_left_in_compact_layout">Show Thumbnail on the Left</string>
|
||||||
<string name="settings_number_of_columns_in_post_feed_title">The Number of Columns in Post Feed</string>
|
<string name="settings_number_of_columns_in_post_feed_title">The Number of Columns in Post Feed</string>
|
||||||
@ -619,6 +620,7 @@
|
|||||||
<string name="favorites">Favorites</string>
|
<string name="favorites">Favorites</string>
|
||||||
<string name="all">All</string>
|
<string name="all">All</string>
|
||||||
|
|
||||||
|
<string name="link_post_layout_auto">Auto</string>
|
||||||
<string name="post_layout_card">Card Layout</string>
|
<string name="post_layout_card">Card Layout</string>
|
||||||
<string name="post_layout_compact">Compact Layout</string>
|
<string name="post_layout_compact">Compact Layout</string>
|
||||||
<string name="post_layout_gallery">Gallery Layout</string>
|
<string name="post_layout_gallery">Gallery Layout</string>
|
||||||
|
@ -10,6 +10,14 @@
|
|||||||
app:title="@string/settings_default_post_layout"
|
app:title="@string/settings_default_post_layout"
|
||||||
app:useSimpleSummaryProvider="true" />
|
app:useSimpleSummaryProvider="true" />
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
app:defaultValue="-1"
|
||||||
|
android:entries="@array/settings_default_link_post_layout"
|
||||||
|
app:entryValues="@array/settings_default_link_post_layout_values"
|
||||||
|
app:key="default_link_post_layout"
|
||||||
|
app:title="@string/settings_default_link_post_layout"
|
||||||
|
app:useSimpleSummaryProvider="true" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
app:title="@string/settings_number_of_columns_in_post_feed_title"
|
app:title="@string/settings_number_of_columns_in_post_feed_title"
|
||||||
app:fragment="ml.docilealligator.infinityforreddit.settings.NumberOfColumnsInPostFeedPreferenceFragment" />
|
app:fragment="ml.docilealligator.infinityforreddit.settings.NumberOfColumnsInPostFeedPreferenceFragment" />
|
||||||
|
Loading…
Reference in New Issue
Block a user