mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-12-29 04:17:12 +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 int mPostType;
|
||||
private int mPostLayout;
|
||||
private int mDefaultLinkPostLayout;
|
||||
private int mColorPrimaryLightTheme;
|
||||
private int mColorAccent;
|
||||
private int mCardViewBackgroundColor;
|
||||
@ -295,6 +296,7 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
||||
mHideTheNumberOfComments = sharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_THE_NUMBER_OF_COMMENTS, false);
|
||||
|
||||
mPostLayout = postLayout;
|
||||
mDefaultLinkPostLayout = Integer.parseInt(sharedPreferences.getString(SharedPreferencesUtils.DEFAULT_LINK_POST_LAYOUT_KEY, "-1"));
|
||||
|
||||
mColorPrimaryLightTheme = customThemeWrapper.getColorPrimaryLightTheme();
|
||||
mColorAccent = customThemeWrapper.getColorAccent();
|
||||
@ -382,8 +384,24 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
||||
case Post.IMAGE_TYPE:
|
||||
return VIEW_TYPE_POST_CARD_IMAGE_AND_GIF_AUTOPLAY_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;
|
||||
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;
|
||||
case Post.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;
|
||||
} 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;
|
||||
} else if (mPostLayout == SharedPreferencesUtils.POST_LAYOUT_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;
|
||||
case Post.GIF_TYPE:
|
||||
case Post.IMAGE_TYPE:
|
||||
case Post.LINK_TYPE:
|
||||
case Post.NO_PREVIEW_LINK_TYPE:
|
||||
case Post.GALLERY_TYPE:
|
||||
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:
|
||||
return VIEW_TYPE_POST_CARD_2_TEXT_TYPE;
|
||||
}
|
||||
@ -1846,6 +1893,10 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
||||
mHideTheNumberOfComments = hideTheNumberOfComments;
|
||||
}
|
||||
|
||||
public void setDefaultLinkPostLayout(int defaultLinkPostLayout) {
|
||||
mDefaultLinkPostLayout = defaultLinkPostLayout;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewRecycled(@NonNull RecyclerView.ViewHolder 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.ChangeCompactLayoutToolbarHiddenByDefaultEvent;
|
||||
import ml.docilealligator.infinityforreddit.events.ChangeDataSavingModeEvent;
|
||||
import ml.docilealligator.infinityforreddit.events.ChangeDefaultLinkPostLayoutEvent;
|
||||
import ml.docilealligator.infinityforreddit.events.ChangeDefaultPostLayoutEvent;
|
||||
import ml.docilealligator.infinityforreddit.events.ChangeDisableImagePreviewEvent;
|
||||
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
|
||||
public void onChangeShowAbsoluteNumberOfVotesEvent(ChangeShowAbsoluteNumberOfVotesEvent changeShowAbsoluteNumberOfVotesEvent) {
|
||||
if (mAdapter != null) {
|
||||
|
@ -11,6 +11,7 @@ import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
import ml.docilealligator.infinityforreddit.events.ChangeCompactLayoutToolbarHiddenByDefaultEvent;
|
||||
import ml.docilealligator.infinityforreddit.events.ChangeDefaultLinkPostLayoutEvent;
|
||||
import ml.docilealligator.infinityforreddit.events.ChangeDefaultPostLayoutEvent;
|
||||
import ml.docilealligator.infinityforreddit.events.ChangeHidePostFlairEvent;
|
||||
import ml.docilealligator.infinityforreddit.events.ChangeHidePostTypeEvent;
|
||||
@ -31,6 +32,7 @@ public class PostPreferenceFragment extends PreferenceFragmentCompat {
|
||||
setPreferencesFromResource(R.xml.post_preferences, rootKey);
|
||||
|
||||
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 showThumbnailOnTheRightInCompactLayoutSwitch = findPreference(SharedPreferencesUtils.SHOW_THUMBNAIL_ON_THE_LEFT_IN_COMPACT_LAYOUT);
|
||||
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) {
|
||||
showDividerInCompactLayoutSwitch.setOnPreferenceChangeListener((preference, 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 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 DEFAULT_LINK_POST_LAYOUT_KEY = "default_link_post_layout";
|
||||
|
||||
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";
|
||||
|
@ -55,6 +55,22 @@
|
||||
<item>2</item>
|
||||
</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">
|
||||
<item>@string/always_on</item>
|
||||
<item>@string/only_on_wifi</item>
|
||||
|
@ -401,6 +401,7 @@
|
||||
<string name="settings_time_format_title">Time Format</string>
|
||||
<string name="settings_category_post_title">Post</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_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>
|
||||
@ -619,6 +620,7 @@
|
||||
<string name="favorites">Favorites</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_compact">Compact Layout</string>
|
||||
<string name="post_layout_gallery">Gallery Layout</string>
|
||||
|
@ -10,6 +10,14 @@
|
||||
app:title="@string/settings_default_post_layout"
|
||||
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
|
||||
app:title="@string/settings_number_of_columns_in_post_feed_title"
|
||||
app:fragment="ml.docilealligator.infinityforreddit.settings.NumberOfColumnsInPostFeedPreferenceFragment" />
|
||||
|
Loading…
Reference in New Issue
Block a user