mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-12-28 11:58:23 +01:00
Customize tabs in main page for logged-in users.
This commit is contained in:
parent
8533a2bcca
commit
cf4395ed5c
@ -922,9 +922,9 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
}
|
||||
|
||||
private class SectionsPagerAdapter extends FragmentPagerAdapter {
|
||||
private PostFragment frontPagePostFragment;
|
||||
private PostFragment popularPostFragment;
|
||||
private PostFragment allPostFragment;
|
||||
private PostFragment tab1;
|
||||
private PostFragment tab2;
|
||||
private PostFragment tab3;
|
||||
|
||||
SectionsPagerAdapter(FragmentManager fm) {
|
||||
super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
|
||||
@ -956,6 +956,22 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
}
|
||||
|
||||
if (position == 0) {
|
||||
String postType = mSharedPreferences.getString(SharedPreferencesUtils.MAIN_PAGE_TAB_1_POST_TYPE, SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_HOME);
|
||||
String name = mSharedPreferences.getString(SharedPreferencesUtils.MAIN_PAGE_TAB_1_NAME, "");
|
||||
return generatePostFragment(postType, name);
|
||||
} else if (position == 1) {
|
||||
String postType = mSharedPreferences.getString(SharedPreferencesUtils.MAIN_PAGE_TAB_2_POST_TYPE, SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_HOME);
|
||||
String name = mSharedPreferences.getString(SharedPreferencesUtils.MAIN_PAGE_TAB_2_NAME, "");
|
||||
return generatePostFragment(postType, name);
|
||||
} else {
|
||||
String postType = mSharedPreferences.getString(SharedPreferencesUtils.MAIN_PAGE_TAB_3_POST_TYPE, SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_HOME);
|
||||
String name = mSharedPreferences.getString(SharedPreferencesUtils.MAIN_PAGE_TAB_3_NAME, "");
|
||||
return generatePostFragment(postType, name);
|
||||
}
|
||||
}
|
||||
|
||||
private Fragment generatePostFragment(String postType, String name) {
|
||||
if (postType.equals(SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_HOME)) {
|
||||
PostFragment fragment = new PostFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_FRONT_PAGE);
|
||||
@ -963,11 +979,39 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
fragment.setArguments(bundle);
|
||||
return fragment;
|
||||
} else if (position == 1) {
|
||||
} else if (postType.equals(SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_ALL)) {
|
||||
PostFragment fragment = new PostFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_SUBREDDIT);
|
||||
bundle.putString(PostFragment.EXTRA_NAME, "popular");
|
||||
bundle.putString(PostFragment.EXTRA_NAME, "all");
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
fragment.setArguments(bundle);
|
||||
return fragment;
|
||||
} else if (postType.equals(SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_SUBREDDIT)) {
|
||||
PostFragment fragment = new PostFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_SUBREDDIT);
|
||||
bundle.putString(PostFragment.EXTRA_NAME, name);
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
fragment.setArguments(bundle);
|
||||
return fragment;
|
||||
} else if (postType.equals(SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_MULTIREDDIT)) {
|
||||
PostFragment fragment = new PostFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(PostFragment.EXTRA_NAME, name);
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_MULTI_REDDIT);
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
fragment.setArguments(bundle);
|
||||
return fragment;
|
||||
} else if (postType.equals(SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_USER)) {
|
||||
PostFragment fragment = new PostFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_USER);
|
||||
bundle.putString(PostFragment.EXTRA_USER_NAME, name);
|
||||
bundle.putString(PostFragment.EXTRA_USER_WHERE, PostDataSource.USER_WHERE_SUBMITTED);
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
fragment.setArguments(bundle);
|
||||
@ -976,7 +1020,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
PostFragment fragment = new PostFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_SUBREDDIT);
|
||||
bundle.putString(PostFragment.EXTRA_NAME, "all");
|
||||
bundle.putString(PostFragment.EXTRA_NAME, "popular");
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
fragment.setArguments(bundle);
|
||||
@ -1004,11 +1048,11 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
} else {
|
||||
switch (position) {
|
||||
case 0:
|
||||
return "Home";
|
||||
return mSharedPreferences.getString(SharedPreferencesUtils.MAIN_PAGE_TAB_1_TITLE, getString(R.string.home));
|
||||
case 1:
|
||||
return "Popular";
|
||||
return mSharedPreferences.getString(SharedPreferencesUtils.MAIN_PAGE_TAB_2_TITLE, getString(R.string.popular));
|
||||
case 2:
|
||||
return "All";
|
||||
return mSharedPreferences.getString(SharedPreferencesUtils.MAIN_PAGE_TAB_3_TITLE, getString(R.string.all));
|
||||
}
|
||||
}
|
||||
return null;
|
||||
@ -1021,21 +1065,21 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
if (mAccessToken == null) {
|
||||
switch (position) {
|
||||
case 0:
|
||||
popularPostFragment = (PostFragment) fragment;
|
||||
tab2 = (PostFragment) fragment;
|
||||
break;
|
||||
case 1:
|
||||
allPostFragment = (PostFragment) fragment;
|
||||
tab3 = (PostFragment) fragment;
|
||||
}
|
||||
} else {
|
||||
switch (position) {
|
||||
case 0:
|
||||
frontPagePostFragment = (PostFragment) fragment;
|
||||
tab1 = (PostFragment) fragment;
|
||||
break;
|
||||
case 1:
|
||||
popularPostFragment = (PostFragment) fragment;
|
||||
tab2 = (PostFragment) fragment;
|
||||
break;
|
||||
case 2:
|
||||
allPostFragment = (PostFragment) fragment;
|
||||
tab3 = (PostFragment) fragment;
|
||||
}
|
||||
}
|
||||
return fragment;
|
||||
@ -1045,18 +1089,18 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
if (mAccessToken == null) {
|
||||
switch (viewPager.getCurrentItem()) {
|
||||
case 0:
|
||||
return popularPostFragment.handleKeyDown(keyCode);
|
||||
return tab2.handleKeyDown(keyCode);
|
||||
case 1:
|
||||
return allPostFragment.handleKeyDown(keyCode);
|
||||
return tab3.handleKeyDown(keyCode);
|
||||
}
|
||||
} else {
|
||||
switch (viewPager.getCurrentItem()) {
|
||||
case 0:
|
||||
return frontPagePostFragment.handleKeyDown(keyCode);
|
||||
return tab1.handleKeyDown(keyCode);
|
||||
case 1:
|
||||
return popularPostFragment.handleKeyDown(keyCode);
|
||||
return tab2.handleKeyDown(keyCode);
|
||||
case 2:
|
||||
return allPostFragment.handleKeyDown(keyCode);
|
||||
return tab3.handleKeyDown(keyCode);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@ -1066,18 +1110,18 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
if (mAccessToken == null) {
|
||||
switch (viewPager.getCurrentItem()) {
|
||||
case 0:
|
||||
return popularPostFragment.startLazyMode();
|
||||
return tab2.startLazyMode();
|
||||
case 1:
|
||||
return allPostFragment.startLazyMode();
|
||||
return tab3.startLazyMode();
|
||||
}
|
||||
} else {
|
||||
switch (viewPager.getCurrentItem()) {
|
||||
case 0:
|
||||
return frontPagePostFragment.startLazyMode();
|
||||
return tab1.startLazyMode();
|
||||
case 1:
|
||||
return popularPostFragment.startLazyMode();
|
||||
return tab2.startLazyMode();
|
||||
case 2:
|
||||
return allPostFragment.startLazyMode();
|
||||
return tab3.startLazyMode();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1088,22 +1132,22 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
if (mAccessToken == null) {
|
||||
switch (getCurrentLazyModeFragmentPosition()) {
|
||||
case 0:
|
||||
popularPostFragment.stopLazyMode();
|
||||
tab2.stopLazyMode();
|
||||
break;
|
||||
case 1:
|
||||
allPostFragment.stopLazyMode();
|
||||
tab3.stopLazyMode();
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch (getCurrentLazyModeFragmentPosition()) {
|
||||
case 0:
|
||||
frontPagePostFragment.stopLazyMode();
|
||||
tab1.stopLazyMode();
|
||||
break;
|
||||
case 1:
|
||||
popularPostFragment.stopLazyMode();
|
||||
tab2.stopLazyMode();
|
||||
break;
|
||||
case 2:
|
||||
allPostFragment.stopLazyMode();
|
||||
tab3.stopLazyMode();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1113,22 +1157,22 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
if (mAccessToken == null) {
|
||||
switch (getCurrentLazyModeFragmentPosition()) {
|
||||
case 0:
|
||||
popularPostFragment.resumeLazyMode(false);
|
||||
tab2.resumeLazyMode(false);
|
||||
break;
|
||||
case 1:
|
||||
allPostFragment.resumeLazyMode(false);
|
||||
tab3.resumeLazyMode(false);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch (getCurrentLazyModeFragmentPosition()) {
|
||||
case 0:
|
||||
frontPagePostFragment.resumeLazyMode(false);
|
||||
tab1.resumeLazyMode(false);
|
||||
break;
|
||||
case 1:
|
||||
popularPostFragment.resumeLazyMode(false);
|
||||
tab2.resumeLazyMode(false);
|
||||
break;
|
||||
case 2:
|
||||
allPostFragment.resumeLazyMode(false);
|
||||
tab3.resumeLazyMode(false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1138,21 +1182,21 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
if (mAccessToken == null) {
|
||||
switch (getCurrentLazyModeFragmentPosition()) {
|
||||
case 0:
|
||||
popularPostFragment.pauseLazyMode(false);
|
||||
tab2.pauseLazyMode(false);
|
||||
break;
|
||||
case 1:
|
||||
allPostFragment.pauseLazyMode(false);
|
||||
tab3.pauseLazyMode(false);
|
||||
}
|
||||
} else {
|
||||
switch (getCurrentLazyModeFragmentPosition()) {
|
||||
case 0:
|
||||
frontPagePostFragment.pauseLazyMode(false);
|
||||
tab1.pauseLazyMode(false);
|
||||
break;
|
||||
case 1:
|
||||
popularPostFragment.pauseLazyMode(false);
|
||||
tab2.pauseLazyMode(false);
|
||||
break;
|
||||
case 2:
|
||||
allPostFragment.pauseLazyMode(false);
|
||||
tab3.pauseLazyMode(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1161,9 +1205,9 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
if (mAccessToken == null) {
|
||||
if (!isInLazyMode) {
|
||||
return -1;
|
||||
} else if (popularPostFragment != null && popularPostFragment.isInLazyMode()) {
|
||||
} else if (tab2 != null && tab2.isInLazyMode()) {
|
||||
return 0;
|
||||
} else if (allPostFragment != null && allPostFragment.isInLazyMode()) {
|
||||
} else if (tab3 != null && tab3.isInLazyMode()) {
|
||||
return 1;
|
||||
} else {
|
||||
return -1;
|
||||
@ -1171,11 +1215,11 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
} else {
|
||||
if (!isInLazyMode) {
|
||||
return -1;
|
||||
} else if (frontPagePostFragment != null && frontPagePostFragment.isInLazyMode()) {
|
||||
} else if (tab1 != null && tab1.isInLazyMode()) {
|
||||
return 0;
|
||||
} else if (popularPostFragment != null && popularPostFragment.isInLazyMode()) {
|
||||
} else if (tab2 != null && tab2.isInLazyMode()) {
|
||||
return 1;
|
||||
} else if (allPostFragment != null && allPostFragment.isInLazyMode()) {
|
||||
} else if (tab3 != null && tab3.isInLazyMode()) {
|
||||
return 2;
|
||||
} else {
|
||||
return -1;
|
||||
@ -1186,9 +1230,9 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
void changeSortType(SortType sortType) {
|
||||
if (mAccessToken == null) {
|
||||
if (viewPager.getCurrentItem() == 0) {
|
||||
popularPostFragment.changeSortType(sortType);
|
||||
tab2.changeSortType(sortType);
|
||||
} else {
|
||||
allPostFragment.changeSortType(sortType);
|
||||
tab3.changeSortType(sortType);
|
||||
}
|
||||
} else {
|
||||
switch (viewPager.getCurrentItem()) {
|
||||
@ -1198,7 +1242,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
mSortTypeSharedPreferences.edit().putString(SharedPreferencesUtils.SORT_TIME_BEST_POST, sortType.getTime().name()).apply();
|
||||
}
|
||||
|
||||
frontPagePostFragment.changeSortType(sortType);
|
||||
tab1.changeSortType(sortType);
|
||||
break;
|
||||
case 1:
|
||||
mSortTypeSharedPreferences.edit().putString(SharedPreferencesUtils.SORT_TYPE_POPULAR_POST, sortType.getType().name()).apply();
|
||||
@ -1206,7 +1250,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
mSortTypeSharedPreferences.edit().putString(SharedPreferencesUtils.SORT_TIME_POPULAR_POST, sortType.getTime().name()).apply();
|
||||
}
|
||||
|
||||
popularPostFragment.changeSortType(sortType);
|
||||
tab2.changeSortType(sortType);
|
||||
break;
|
||||
case 2:
|
||||
mSortTypeSharedPreferences.edit().putString(SharedPreferencesUtils.SORT_TYPE_ALL_POST, sortType.getType().name()).apply();
|
||||
@ -1214,7 +1258,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
mSortTypeSharedPreferences.edit().putString(SharedPreferencesUtils.SORT_TIME_ALL_POST, sortType.getTime().name()).apply();
|
||||
}
|
||||
|
||||
allPostFragment.changeSortType(sortType);
|
||||
tab3.changeSortType(sortType);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1222,77 +1266,77 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
public void refresh() {
|
||||
if (mAccessToken == null) {
|
||||
if (viewPager.getCurrentItem() == 0) {
|
||||
if (popularPostFragment != null) {
|
||||
popularPostFragment.refresh();
|
||||
if (tab2 != null) {
|
||||
tab2.refresh();
|
||||
}
|
||||
} else {
|
||||
if (allPostFragment != null) {
|
||||
allPostFragment.refresh();
|
||||
if (tab3 != null) {
|
||||
tab3.refresh();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
switch (viewPager.getCurrentItem()) {
|
||||
case 0:
|
||||
if (frontPagePostFragment != null) {
|
||||
frontPagePostFragment.refresh();
|
||||
if (tab1 != null) {
|
||||
tab1.refresh();
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (popularPostFragment != null) {
|
||||
popularPostFragment.refresh();
|
||||
if (tab2 != null) {
|
||||
tab2.refresh();
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (allPostFragment != null) {
|
||||
allPostFragment.refresh();
|
||||
if (tab3 != null) {
|
||||
tab3.refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void changeNSFW(boolean nsfw) {
|
||||
if (frontPagePostFragment != null) {
|
||||
frontPagePostFragment.changeNSFW(nsfw);
|
||||
if (tab1 != null) {
|
||||
tab1.changeNSFW(nsfw);
|
||||
}
|
||||
if (popularPostFragment != null) {
|
||||
popularPostFragment.changeNSFW(nsfw);
|
||||
if (tab2 != null) {
|
||||
tab2.changeNSFW(nsfw);
|
||||
}
|
||||
if (allPostFragment != null) {
|
||||
allPostFragment.changeNSFW(nsfw);
|
||||
if (tab3 != null) {
|
||||
tab3.changeNSFW(nsfw);
|
||||
}
|
||||
}
|
||||
|
||||
void changePostLayout(int postLayout) {
|
||||
if (mAccessToken == null) {
|
||||
if (viewPager.getCurrentItem() == 0) {
|
||||
if (popularPostFragment != null) {
|
||||
if (tab2 != null) {
|
||||
mPostLayoutSharedPreferences.edit().putInt(SharedPreferencesUtils.POST_LAYOUT_POPULAR_POST, postLayout).apply();
|
||||
popularPostFragment.changePostLayout(postLayout);
|
||||
tab2.changePostLayout(postLayout);
|
||||
}
|
||||
} else {
|
||||
if (allPostFragment != null) {
|
||||
if (tab3 != null) {
|
||||
mPostLayoutSharedPreferences.edit().putInt(SharedPreferencesUtils.POST_LAYOUT_ALL_POST, postLayout).apply();
|
||||
allPostFragment.changePostLayout(postLayout);
|
||||
tab3.changePostLayout(postLayout);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
switch (viewPager.getCurrentItem()) {
|
||||
case 0:
|
||||
if (frontPagePostFragment != null) {
|
||||
if (tab1 != null) {
|
||||
mPostLayoutSharedPreferences.edit().putInt(SharedPreferencesUtils.POST_LAYOUT_FRONT_PAGE_POST, postLayout).apply();
|
||||
frontPagePostFragment.changePostLayout(postLayout);
|
||||
tab1.changePostLayout(postLayout);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (popularPostFragment != null) {
|
||||
if (tab2 != null) {
|
||||
mPostLayoutSharedPreferences.edit().putInt(SharedPreferencesUtils.POST_LAYOUT_POPULAR_POST, postLayout).apply();
|
||||
popularPostFragment.changePostLayout(postLayout);
|
||||
tab2.changePostLayout(postLayout);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (allPostFragment != null) {
|
||||
if (tab3 != null) {
|
||||
mPostLayoutSharedPreferences.edit().putInt(SharedPreferencesUtils.POST_LAYOUT_ALL_POST, postLayout).apply();
|
||||
allPostFragment.changePostLayout(postLayout);
|
||||
tab3.changePostLayout(postLayout);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -51,6 +51,7 @@ import ml.docilealligator.infinityforreddit.Fragment.SubscribedSubredditsListing
|
||||
import ml.docilealligator.infinityforreddit.Fragment.UserListingFragment;
|
||||
import ml.docilealligator.infinityforreddit.Service.SubmitPostService;
|
||||
import ml.docilealligator.infinityforreddit.Settings.AdvancedPreferenceFragment;
|
||||
import ml.docilealligator.infinityforreddit.Settings.CustomizeMainPageTabsFragment;
|
||||
import ml.docilealligator.infinityforreddit.Settings.GesturesAndButtonsPreferenceFragment;
|
||||
import ml.docilealligator.infinityforreddit.Settings.MainPreferenceFragment;
|
||||
import ml.docilealligator.infinityforreddit.Settings.NotificationPreferenceFragment;
|
||||
@ -164,4 +165,6 @@ public interface AppComponent {
|
||||
void inject(SelectedSubredditsActivity selectedSubredditsActivity);
|
||||
|
||||
void inject(ReportActivity reportActivity);
|
||||
|
||||
void inject(CustomizeMainPageTabsFragment customizeMainPageTabsFragment);
|
||||
}
|
||||
|
@ -0,0 +1,174 @@
|
||||
package ml.docilealligator.infinityforreddit.Settings;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.preference.EditTextPreference;
|
||||
import androidx.preference.ListPreference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.Activity.SettingsActivity;
|
||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
||||
import ml.docilealligator.infinityforreddit.Infinity;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
import ml.docilealligator.infinityforreddit.Utils.SharedPreferencesUtils;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
*/
|
||||
public class CustomizeMainPageTabsFragment extends PreferenceFragmentCompat {
|
||||
|
||||
@Inject
|
||||
@Named("default")
|
||||
SharedPreferences mSharedPreferences;
|
||||
@Inject
|
||||
CustomThemeWrapper customThemeWrapper;
|
||||
private SettingsActivity activity;
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
setPreferencesFromResource(R.xml.customize_main_page_tabs_preferences, rootKey);
|
||||
|
||||
((Infinity) activity.getApplication()).getAppComponent().inject(this);
|
||||
|
||||
EditTextPreference tab1TitlePreference = findPreference(SharedPreferencesUtils.MAIN_PAGE_TAB_1_TITLE);
|
||||
EditTextPreference tab2TitlePreference = findPreference(SharedPreferencesUtils.MAIN_PAGE_TAB_2_TITLE);
|
||||
EditTextPreference tab3TitlePreference = findPreference(SharedPreferencesUtils.MAIN_PAGE_TAB_3_TITLE);
|
||||
ListPreference tab1PostTypePreference = findPreference(SharedPreferencesUtils.MAIN_PAGE_TAB_1_POST_TYPE);
|
||||
ListPreference tab2PostTypePreference = findPreference(SharedPreferencesUtils.MAIN_PAGE_TAB_2_POST_TYPE);
|
||||
ListPreference tab3PostTypePreference = findPreference(SharedPreferencesUtils.MAIN_PAGE_TAB_3_POST_TYPE);
|
||||
EditTextPreference tab1NamePreference = findPreference(SharedPreferencesUtils.MAIN_PAGE_TAB_1_NAME);
|
||||
EditTextPreference tab2NamePreference = findPreference(SharedPreferencesUtils.MAIN_PAGE_TAB_2_NAME);
|
||||
EditTextPreference tab3NamePreference = findPreference(SharedPreferencesUtils.MAIN_PAGE_TAB_3_NAME);
|
||||
|
||||
if (tab1TitlePreference != null && tab1PostTypePreference != null && tab1NamePreference != null) {
|
||||
String string = mSharedPreferences.getString(SharedPreferencesUtils.MAIN_PAGE_TAB_1_POST_TYPE,
|
||||
SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_HOME);
|
||||
if (SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_SUBREDDIT.equals(string)) {
|
||||
tab1NamePreference.setVisible(true);
|
||||
tab1NamePreference.setTitle(R.string.settings_tab_subreddit_name);
|
||||
} else if (SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_MULTIREDDIT.equals(string)) {
|
||||
tab1NamePreference.setVisible(true);
|
||||
tab1NamePreference.setTitle(R.string.settings_tab_multi_reddit_name);
|
||||
} else if (SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_USER.equals(string)) {
|
||||
tab1NamePreference.setVisible(true);
|
||||
tab1NamePreference.setTitle(R.string.settings_tab_username);
|
||||
}
|
||||
|
||||
tab1PostTypePreference.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
switch ((String) newValue) {
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_HOME:
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_POPULAR:
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_ALL:
|
||||
tab1NamePreference.setVisible(false);
|
||||
break;
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_SUBREDDIT:
|
||||
tab1NamePreference.setVisible(true);
|
||||
tab1NamePreference.setTitle(R.string.settings_tab_subreddit_name);
|
||||
break;
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_MULTIREDDIT:
|
||||
tab1NamePreference.setVisible(true);
|
||||
tab1NamePreference.setTitle(R.string.settings_tab_multi_reddit_name);
|
||||
break;
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_USER:
|
||||
tab1NamePreference.setVisible(true);
|
||||
tab1NamePreference.setTitle(R.string.settings_tab_username);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
if (tab2TitlePreference != null && tab2PostTypePreference != null && tab2NamePreference != null) {
|
||||
String string = mSharedPreferences.getString(SharedPreferencesUtils.MAIN_PAGE_TAB_2_POST_TYPE,
|
||||
SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_HOME);
|
||||
if (SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_SUBREDDIT.equals(string)) {
|
||||
tab2NamePreference.setVisible(true);
|
||||
tab2NamePreference.setTitle(R.string.settings_tab_subreddit_name);
|
||||
} else if (SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_MULTIREDDIT.equals(string)) {
|
||||
tab2NamePreference.setVisible(true);
|
||||
tab2NamePreference.setTitle(R.string.settings_tab_multi_reddit_name);
|
||||
} else if (SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_USER.equals(string)) {
|
||||
tab2NamePreference.setVisible(true);
|
||||
tab2NamePreference.setTitle(R.string.settings_tab_username);
|
||||
}
|
||||
|
||||
tab2PostTypePreference.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
switch ((String) newValue) {
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_HOME:
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_POPULAR:
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_ALL:
|
||||
tab2NamePreference.setVisible(false);
|
||||
break;
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_SUBREDDIT:
|
||||
tab2NamePreference.setVisible(true);
|
||||
tab2NamePreference.setTitle(R.string.settings_tab_subreddit_name);
|
||||
break;
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_MULTIREDDIT:
|
||||
tab2NamePreference.setVisible(true);
|
||||
tab2NamePreference.setTitle(R.string.settings_tab_multi_reddit_name);
|
||||
break;
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_USER:
|
||||
tab2NamePreference.setVisible(true);
|
||||
tab2NamePreference.setTitle(R.string.settings_tab_username);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
if (tab3TitlePreference != null && tab3PostTypePreference != null && tab3NamePreference != null) {
|
||||
String string = mSharedPreferences.getString(SharedPreferencesUtils.MAIN_PAGE_TAB_3_POST_TYPE,
|
||||
SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_HOME);
|
||||
if (SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_SUBREDDIT.equals(string)) {
|
||||
tab3NamePreference.setVisible(true);
|
||||
tab3NamePreference.setTitle(R.string.settings_tab_subreddit_name);
|
||||
} else if (SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_MULTIREDDIT.equals(string)) {
|
||||
tab3NamePreference.setVisible(true);
|
||||
tab3NamePreference.setTitle(R.string.settings_tab_multi_reddit_name);
|
||||
} else if (SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_USER.equals(string)) {
|
||||
tab3NamePreference.setVisible(true);
|
||||
tab3NamePreference.setTitle(R.string.settings_tab_username);
|
||||
}
|
||||
|
||||
tab3PostTypePreference.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
switch ((String) newValue) {
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_HOME:
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_POPULAR:
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_ALL:
|
||||
tab3NamePreference.setVisible(false);
|
||||
break;
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_SUBREDDIT:
|
||||
tab3NamePreference.setVisible(true);
|
||||
tab3NamePreference.setTitle(R.string.settings_tab_subreddit_name);
|
||||
break;
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_MULTIREDDIT:
|
||||
tab3NamePreference.setVisible(true);
|
||||
tab3NamePreference.setTitle(R.string.settings_tab_multi_reddit_name);
|
||||
break;
|
||||
case SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_USER:
|
||||
tab3NamePreference.setVisible(true);
|
||||
tab3NamePreference.setTitle(R.string.settings_tab_username);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(@NonNull Context context) {
|
||||
super.onAttach(context);
|
||||
activity = (SettingsActivity) context;
|
||||
}
|
||||
}
|
@ -100,4 +100,19 @@ public class SharedPreferencesUtils {
|
||||
public static final String DELETE_ALL_POST_LAYOUT_DATA_IN_DATABASE = "delete_all_post_layout_data_in_database";
|
||||
public static final String DELETE_ALL_THEMES_IN_DATABASE = "delete_all_themes_in_database";
|
||||
public static final String RESET_ALL_SETTINGS = "reset_all_settings";
|
||||
public static final String MAIN_PAGE_TAB_1_TITLE = "main_page_tab_1_title";
|
||||
public static final String MAIN_PAGE_TAB_2_TITLE = "main_page_tab_2_title";
|
||||
public static final String MAIN_PAGE_TAB_3_TITLE = "main_page_tab_3_title";
|
||||
public static final String MAIN_PAGE_TAB_1_POST_TYPE = "main_page_tab_1_post_type";
|
||||
public static final String MAIN_PAGE_TAB_2_POST_TYPE = "main_page_tab_2_post_type";
|
||||
public static final String MAIN_PAGE_TAB_3_POST_TYPE = "main_page_tab_3_post_type";
|
||||
public static final String MAIN_PAGE_TAB_1_NAME = "main_page_tab_1_name";
|
||||
public static final String MAIN_PAGE_TAB_2_NAME = "main_page_tab_2_name";
|
||||
public static final String MAIN_PAGE_TAB_3_NAME = "main_page_tab_3_name";
|
||||
public static final String MAIN_PAGE_TAB_POST_TYPE_HOME = "0";
|
||||
public static final String MAIN_PAGE_TAB_POST_TYPE_POPULAR = "1";
|
||||
public static final String MAIN_PAGE_TAB_POST_TYPE_ALL = "2";
|
||||
public static final String MAIN_PAGE_TAB_POST_TYPE_SUBREDDIT = "3";
|
||||
public static final String MAIN_PAGE_TAB_POST_TYPE_MULTIREDDIT = "4";
|
||||
public static final String MAIN_PAGE_TAB_POST_TYPE_USER = "5";
|
||||
}
|
||||
|
@ -122,4 +122,22 @@
|
||||
<item>XLarge</item>
|
||||
<item>XXLarge</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="settings_tab_post_type">
|
||||
<item>Home</item>
|
||||
<item>Popular</item>
|
||||
<item>All</item>
|
||||
<item>Subreddit</item>
|
||||
<item>MultiReddit</item>
|
||||
<item>User</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="settings_tab_post_type_values">
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
<item>3</item>
|
||||
<item>4</item>
|
||||
<item>5</item>
|
||||
</string-array>
|
||||
</resources>
|
@ -321,6 +321,8 @@
|
||||
<string name="settings_immersive_interface_title">Immersive Interface</string>
|
||||
<string name="settings_immersive_interface_ignore_nav_bar_title">Ignore Navigation Bar in Immersive Interface</string>
|
||||
<string name="settings_immersive_interface_ignore_nav_bar_summary">Prevent the Bottom Navigation Bar Having Extra Padding</string>
|
||||
<string name="settings_customize_tabs_in_main_page_title">Customize Tabs in Main Page</string>
|
||||
<string name="settings_customize_tabs_in_main_page_summary">Only for Logged-in User</string>
|
||||
<string name="settings_enable_bottom_app_bar_title">Enable Bottom Navigation</string>
|
||||
<string name="settings_enable_bottom_app_bar_summary">Has No Effect in Anonymous Mode</string>
|
||||
<string name="settings_vote_buttons_on_the_right_title">Vote Buttons on the Right</string>
|
||||
@ -393,6 +395,15 @@
|
||||
<string name="settings_delete_all_themes_in_database_title">Delete All Themes in Database</string>
|
||||
<string name="settings_reset_all_settings_title">Reset All Settings</string>
|
||||
<string name="settings_advanced_settings_summary">Clean the database and shared preferences</string>
|
||||
<string name="settings_tab_info">Restart the app to see the changes</string>
|
||||
<string name="settings_tab_1_summary">Tab 1</string>
|
||||
<string name="settings_tab_2_summary">Tab 2</string>
|
||||
<string name="settings_tab_3_summary">Tab 3</string>
|
||||
<string name="settings_tab_title">Title</string>
|
||||
<string name="settings_tab_post_type">Type</string>
|
||||
<string name="settings_tab_subreddit_name">Subreddit Name</string>
|
||||
<string name="settings_tab_multi_reddit_name">MultiReddit Name</string>
|
||||
<string name="settings_tab_username">Username</string>
|
||||
|
||||
<string name="no_link_available">Cannot get the link</string>
|
||||
|
||||
@ -711,10 +722,13 @@
|
||||
<string name="report_successful">Reported</string>
|
||||
<string name="report_failed">Report failed</string>
|
||||
<string name="report_reason_not_selected">You haven\'t selected a reason</string>
|
||||
|
||||
|
||||
<string name="report_reason_general_spam">It Is Spam</string>
|
||||
<string name="report_reason_general_copyright_issue">It Contains Copyright Issue</string>
|
||||
<string name="report_reason_general_child_pornography">It Contains Child Pornography</string>
|
||||
<string name="report_reason_general_abusive_content">It Contains Abusive Content</string>
|
||||
|
||||
<string name="home">Home</string>
|
||||
<string name="popular">Best</string>
|
||||
|
||||
</resources>
|
||||
|
@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<Preference
|
||||
android:icon="@drawable/ic_info_preference_24dp"
|
||||
app:summary="@string/settings_tab_info"
|
||||
app:enabled="false" />
|
||||
|
||||
<PreferenceCategory
|
||||
app:title="@string/settings_tab_1_summary" />
|
||||
|
||||
<EditTextPreference
|
||||
app:defaultValue="@string/home"
|
||||
app:key="main_page_tab_1_title"
|
||||
app:title="@string/settings_tab_title"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<ListPreference
|
||||
app:defaultValue="0"
|
||||
android:entries="@array/settings_tab_post_type"
|
||||
app:entryValues="@array/settings_tab_post_type_values"
|
||||
app:key="main_page_tab_1_post_type"
|
||||
app:title="@string/settings_tab_post_type"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<EditTextPreference
|
||||
app:key="main_page_tab_1_name"
|
||||
app:isPreferenceVisible="false"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<PreferenceCategory
|
||||
app:title="@string/settings_tab_2_summary" />
|
||||
|
||||
<EditTextPreference
|
||||
app:defaultValue="@string/popular"
|
||||
app:key="main_page_tab_2_title"
|
||||
app:title="@string/settings_tab_title"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<ListPreference
|
||||
app:defaultValue="1"
|
||||
android:entries="@array/settings_tab_post_type"
|
||||
app:entryValues="@array/settings_tab_post_type_values"
|
||||
app:key="main_page_tab_2_post_type"
|
||||
app:title="@string/settings_tab_post_type"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<EditTextPreference
|
||||
app:key="main_page_tab_2_name"
|
||||
app:isPreferenceVisible="false"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<PreferenceCategory
|
||||
app:title="@string/settings_tab_3_summary" />
|
||||
|
||||
<EditTextPreference
|
||||
app:defaultValue="@string/all"
|
||||
app:key="main_page_tab_3_title"
|
||||
app:title="@string/settings_tab_title"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<ListPreference
|
||||
app:defaultValue="2"
|
||||
android:entries="@array/settings_tab_post_type"
|
||||
app:entryValues="@array/settings_tab_post_type_values"
|
||||
app:key="main_page_tab_3_post_type"
|
||||
app:title="@string/settings_tab_post_type"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<EditTextPreference
|
||||
app:key="main_page_tab_3_name"
|
||||
app:isPreferenceVisible="false"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
</PreferenceScreen>
|
@ -20,6 +20,11 @@
|
||||
app:summary="@string/settings_immersive_interface_ignore_nav_bar_summary"
|
||||
app:isPreferenceVisible="false" />
|
||||
|
||||
<Preference
|
||||
app:title="@string/settings_customize_tabs_in_main_page_title"
|
||||
app:summary="@string/settings_customize_tabs_in_main_page_summary"
|
||||
app:fragment="ml.docilealligator.infinityforreddit.Settings.CustomizeMainPageTabsFragment" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="false"
|
||||
app:key="bottom_app_bar"
|
||||
|
Loading…
Reference in New Issue
Block a user