mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-11-10 20:57:25 +01:00
New option: Show avatar on the right in the navigation drawer.
This commit is contained in:
parent
a6289f4c1f
commit
c2b6066c7e
@ -95,6 +95,7 @@ import ml.docilealligator.infinityforreddit.events.ChangeDisableSwipingBetweenTa
|
|||||||
import ml.docilealligator.infinityforreddit.events.ChangeLockBottomAppBarEvent;
|
import ml.docilealligator.infinityforreddit.events.ChangeLockBottomAppBarEvent;
|
||||||
import ml.docilealligator.infinityforreddit.events.ChangeNSFWEvent;
|
import ml.docilealligator.infinityforreddit.events.ChangeNSFWEvent;
|
||||||
import ml.docilealligator.infinityforreddit.events.ChangeRequireAuthToAccountSectionEvent;
|
import ml.docilealligator.infinityforreddit.events.ChangeRequireAuthToAccountSectionEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.events.ChangeShowAvatarOnTheRightInTheNavigationDrawerEvent;
|
||||||
import ml.docilealligator.infinityforreddit.events.RecreateActivityEvent;
|
import ml.docilealligator.infinityforreddit.events.RecreateActivityEvent;
|
||||||
import ml.docilealligator.infinityforreddit.events.SwitchAccountEvent;
|
import ml.docilealligator.infinityforreddit.events.SwitchAccountEvent;
|
||||||
import ml.docilealligator.infinityforreddit.fragments.PostFragment;
|
import ml.docilealligator.infinityforreddit.fragments.PostFragment;
|
||||||
@ -1162,7 +1163,30 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
|||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onChangeRequireAuthToAccountSectionEvent(ChangeRequireAuthToAccountSectionEvent changeRequireAuthToAccountSectionEvent) {
|
public void onChangeRequireAuthToAccountSectionEvent(ChangeRequireAuthToAccountSectionEvent changeRequireAuthToAccountSectionEvent) {
|
||||||
adapter.setRequireAuthToAccountSection(changeRequireAuthToAccountSectionEvent.requireAuthToAccountSection);
|
if (adapter != null) {
|
||||||
|
adapter.setRequireAuthToAccountSection(changeRequireAuthToAccountSectionEvent.requireAuthToAccountSection);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onChangeShowAvatarOnTheRightInTheNavigationDrawerEvent(ChangeShowAvatarOnTheRightInTheNavigationDrawerEvent event) {
|
||||||
|
if (adapter != null) {
|
||||||
|
adapter.setShowAvatarOnTheRightInTheNavigationDrawer(event.showAvatarOnTheRightInTheNavigationDrawer);
|
||||||
|
int previousPosition = -1;
|
||||||
|
if (navDrawerRecyclerView.getLayoutManager() != null) {
|
||||||
|
previousPosition = ((LinearLayoutManager) navDrawerRecyclerView.getLayoutManager()).findFirstVisibleItemPosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
RecyclerView.LayoutManager layoutManager = navDrawerRecyclerView.getLayoutManager();
|
||||||
|
navDrawerRecyclerView.setAdapter(null);
|
||||||
|
navDrawerRecyclerView.setLayoutManager(null);
|
||||||
|
navDrawerRecyclerView.setAdapter(adapter);
|
||||||
|
navDrawerRecyclerView.setLayoutManager(layoutManager);
|
||||||
|
|
||||||
|
if (previousPosition > 0) {
|
||||||
|
navDrawerRecyclerView.scrollToPosition(previousPosition);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -7,6 +7,7 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
import android.widget.RelativeLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@ -64,6 +65,7 @@ public class NavigationDrawerRecyclerViewAdapter extends RecyclerView.Adapter<Re
|
|||||||
private int karma;
|
private int karma;
|
||||||
private boolean isNSFWEnabled;
|
private boolean isNSFWEnabled;
|
||||||
private boolean requireAuthToAccountSection;
|
private boolean requireAuthToAccountSection;
|
||||||
|
private boolean showAvatarOnTheRightInTheNavigationDrawer;
|
||||||
private ItemClickListener itemClickListener;
|
private ItemClickListener itemClickListener;
|
||||||
private boolean isLoggedIn;
|
private boolean isLoggedIn;
|
||||||
private boolean isInMainPage = true;
|
private boolean isInMainPage = true;
|
||||||
@ -86,6 +88,7 @@ public class NavigationDrawerRecyclerViewAdapter extends RecyclerView.Adapter<Re
|
|||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
isNSFWEnabled = nsfwAndSpoilerSharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.NSFW_BASE, false);
|
isNSFWEnabled = nsfwAndSpoilerSharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.NSFW_BASE, false);
|
||||||
requireAuthToAccountSection = sharedPreferences.getBoolean(SharedPreferencesUtils.REQUIRE_AUTHENTICATION_TO_GO_TO_ACCOUNT_SECTION_IN_NAVIGATION_DRAWER, false);
|
requireAuthToAccountSection = sharedPreferences.getBoolean(SharedPreferencesUtils.REQUIRE_AUTHENTICATION_TO_GO_TO_ACCOUNT_SECTION_IN_NAVIGATION_DRAWER, false);
|
||||||
|
showAvatarOnTheRightInTheNavigationDrawer = sharedPreferences.getBoolean(SharedPreferencesUtils.SHOW_AVATAR_ON_THE_RIGHT_IN_THE_NAVIGATION_DRAWER, false);
|
||||||
isLoggedIn = accountName != null;
|
isLoggedIn = accountName != null;
|
||||||
this.itemClickListener = itemClickListener;
|
this.itemClickListener = itemClickListener;
|
||||||
primaryTextColor = customThemeWrapper.getPrimaryTextColor();
|
primaryTextColor = customThemeWrapper.getPrimaryTextColor();
|
||||||
@ -173,6 +176,15 @@ public class NavigationDrawerRecyclerViewAdapter extends RecyclerView.Adapter<Re
|
|||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||||
if (holder instanceof NavHeaderViewHolder) {
|
if (holder instanceof NavHeaderViewHolder) {
|
||||||
|
if (showAvatarOnTheRightInTheNavigationDrawer) {
|
||||||
|
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) ((NavHeaderViewHolder) holder).profileImageView.getLayoutParams();
|
||||||
|
params.addRule(RelativeLayout.ALIGN_PARENT_END);
|
||||||
|
((NavHeaderViewHolder) holder).profileImageView.setLayoutParams(params);
|
||||||
|
} else {
|
||||||
|
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) ((NavHeaderViewHolder) holder).profileImageView.getLayoutParams();
|
||||||
|
params.removeRule(RelativeLayout.ALIGN_PARENT_END);
|
||||||
|
((NavHeaderViewHolder) holder).profileImageView.setLayoutParams(params);
|
||||||
|
}
|
||||||
if (isLoggedIn) {
|
if (isLoggedIn) {
|
||||||
((NavHeaderViewHolder) holder).karmaTextView.setText(appCompatActivity.getString(R.string.karma_info, karma));
|
((NavHeaderViewHolder) holder).karmaTextView.setText(appCompatActivity.getString(R.string.karma_info, karma));
|
||||||
((NavHeaderViewHolder) holder).accountNameTextView.setText(accountName);
|
((NavHeaderViewHolder) holder).accountNameTextView.setText(accountName);
|
||||||
@ -564,6 +576,10 @@ public class NavigationDrawerRecyclerViewAdapter extends RecyclerView.Adapter<Re
|
|||||||
this.requireAuthToAccountSection = requireAuthToAccountSection;
|
this.requireAuthToAccountSection = requireAuthToAccountSection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setShowAvatarOnTheRightInTheNavigationDrawer(boolean showAvatarOnTheRightInTheNavigationDrawer) {
|
||||||
|
this.showAvatarOnTheRightInTheNavigationDrawer = showAvatarOnTheRightInTheNavigationDrawer;
|
||||||
|
}
|
||||||
|
|
||||||
class NavHeaderViewHolder extends RecyclerView.ViewHolder {
|
class NavHeaderViewHolder extends RecyclerView.ViewHolder {
|
||||||
@BindView(R.id.name_text_view_nav_header_main)
|
@BindView(R.id.name_text_view_nav_header_main)
|
||||||
TextView accountNameTextView;
|
TextView accountNameTextView;
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
package ml.docilealligator.infinityforreddit.events;
|
||||||
|
|
||||||
|
public class ChangeShowAvatarOnTheRightInTheNavigationDrawerEvent {
|
||||||
|
public boolean showAvatarOnTheRightInTheNavigationDrawer;
|
||||||
|
|
||||||
|
public ChangeShowAvatarOnTheRightInTheNavigationDrawerEvent(boolean showAvatarOnTheRightInTheNavigationDrawer) {
|
||||||
|
this.showAvatarOnTheRightInTheNavigationDrawer = showAvatarOnTheRightInTheNavigationDrawer;
|
||||||
|
}
|
||||||
|
}
|
@ -11,6 +11,7 @@ import androidx.preference.SwitchPreference;
|
|||||||
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.EventBus;
|
||||||
|
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
|
import ml.docilealligator.infinityforreddit.events.ChangeShowAvatarOnTheRightInTheNavigationDrawerEvent;
|
||||||
import ml.docilealligator.infinityforreddit.events.ChangeVoteButtonsPositionEvent;
|
import ml.docilealligator.infinityforreddit.events.ChangeVoteButtonsPositionEvent;
|
||||||
import ml.docilealligator.infinityforreddit.events.RecreateActivityEvent;
|
import ml.docilealligator.infinityforreddit.events.RecreateActivityEvent;
|
||||||
import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;
|
||||||
@ -23,6 +24,7 @@ public class InterfacePreferenceFragment extends PreferenceFragmentCompat {
|
|||||||
|
|
||||||
Preference immersiveInterfaceEntryPreference = findPreference(SharedPreferencesUtils.IMMERSIVE_INTERFACE_ENTRY_KEY);
|
Preference immersiveInterfaceEntryPreference = findPreference(SharedPreferencesUtils.IMMERSIVE_INTERFACE_ENTRY_KEY);
|
||||||
SwitchPreference bottomAppBarSwitch = findPreference(SharedPreferencesUtils.BOTTOM_APP_BAR_KEY);
|
SwitchPreference bottomAppBarSwitch = findPreference(SharedPreferencesUtils.BOTTOM_APP_BAR_KEY);
|
||||||
|
SwitchPreference showAvatarOnTheRightInTheNavigationDrawer = findPreference(SharedPreferencesUtils.SHOW_AVATAR_ON_THE_RIGHT_IN_THE_NAVIGATION_DRAWER);
|
||||||
SwitchPreference voteButtonsOnTheRightSwitch = findPreference(SharedPreferencesUtils.VOTE_BUTTONS_ON_THE_RIGHT_KEY);
|
SwitchPreference voteButtonsOnTheRightSwitch = findPreference(SharedPreferencesUtils.VOTE_BUTTONS_ON_THE_RIGHT_KEY);
|
||||||
|
|
||||||
if (immersiveInterfaceEntryPreference != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (immersiveInterfaceEntryPreference != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
@ -36,6 +38,13 @@ public class InterfacePreferenceFragment extends PreferenceFragmentCompat {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (showAvatarOnTheRightInTheNavigationDrawer != null) {
|
||||||
|
showAvatarOnTheRightInTheNavigationDrawer.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
|
EventBus.getDefault().post(new ChangeShowAvatarOnTheRightInTheNavigationDrawerEvent((Boolean) newValue));
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (voteButtonsOnTheRightSwitch != null) {
|
if (voteButtonsOnTheRightSwitch != null) {
|
||||||
voteButtonsOnTheRightSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
|
voteButtonsOnTheRightSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
EventBus.getDefault().post(new ChangeVoteButtonsPositionEvent((Boolean) newValue));
|
EventBus.getDefault().post(new ChangeVoteButtonsPositionEvent((Boolean) newValue));
|
||||||
|
@ -38,6 +38,7 @@ public class SharedPreferencesUtils {
|
|||||||
public static final String DISABLE_IMMERSIVE_INTERFACE_IN_LANDSCAPE_MODE = "disable_immersive_interface_in_landscape_mode";
|
public static final String DISABLE_IMMERSIVE_INTERFACE_IN_LANDSCAPE_MODE = "disable_immersive_interface_in_landscape_mode";
|
||||||
public static final String BOTTOM_APP_BAR_KEY = "bottom_app_bar";
|
public static final String BOTTOM_APP_BAR_KEY = "bottom_app_bar";
|
||||||
public static final String VOTE_BUTTONS_ON_THE_RIGHT_KEY = "vote_buttons_on_the_right";
|
public static final String VOTE_BUTTONS_ON_THE_RIGHT_KEY = "vote_buttons_on_the_right";
|
||||||
|
public static final String SHOW_AVATAR_ON_THE_RIGHT_IN_THE_NAVIGATION_DRAWER = "show_avatar_on_the_right_in_the_navigation_drawer";
|
||||||
|
|
||||||
public static final String SORT_TYPE_SHARED_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit.sort_type";
|
public static final String SORT_TYPE_SHARED_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit.sort_type";
|
||||||
public static final String SORT_TYPE_BEST_POST = "sort_type_best_post";
|
public static final String SORT_TYPE_BEST_POST = "sort_type_best_post";
|
||||||
|
BIN
app/src/main/res/drawable/subreddit_default_icon.png
Normal file
BIN
app/src/main/res/drawable/subreddit_default_icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
@ -540,6 +540,7 @@
|
|||||||
<string name="settings_hide_subreddit_and_user_prefix">Hide Subreddit and User Prefix</string>
|
<string name="settings_hide_subreddit_and_user_prefix">Hide Subreddit and User Prefix</string>
|
||||||
<string name="settings_hide_the_number_of_votes">Hide the Number of Votes</string>
|
<string name="settings_hide_the_number_of_votes">Hide the Number of Votes</string>
|
||||||
<string name="settings_hide_the_number_of_comments">Hide the Number of Comments</string>
|
<string name="settings_hide_the_number_of_comments">Hide the Number of Comments</string>
|
||||||
|
<string name="settings_show_avatar_on_the_right_in_the_navigation_drawer">Show Avatar on the Left in the Navigation Drawer</string>
|
||||||
|
|
||||||
<string name="no_link_available">Cannot get the link</string>
|
<string name="no_link_available">Cannot get the link</string>
|
||||||
|
|
||||||
|
@ -29,6 +29,11 @@
|
|||||||
app:title="@string/settings_enable_bottom_app_bar_title"
|
app:title="@string/settings_enable_bottom_app_bar_title"
|
||||||
app:summary="@string/settings_enable_bottom_app_bar_summary" />
|
app:summary="@string/settings_enable_bottom_app_bar_summary" />
|
||||||
|
|
||||||
|
<SwitchPreference
|
||||||
|
app:defaultValue="false"
|
||||||
|
app:key="show_avatar_on_the_right_in_the_navigation_drawer"
|
||||||
|
app:title="@string/settings_show_avatar_on_the_right_in_the_navigation_drawer" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
app:title="@string/settings_time_format_title"
|
app:title="@string/settings_time_format_title"
|
||||||
app:fragment="ml.docilealligator.infinityforreddit.settings.TimeFormatPreferenceFragment" />
|
app:fragment="ml.docilealligator.infinityforreddit.settings.TimeFormatPreferenceFragment" />
|
||||||
|
Loading…
Reference in New Issue
Block a user