diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-06-10 11:39:16 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-06-10 11:39:16 +0300 |
commit | 2b771d947baafed8c521fe4f44cea5ada63d2583 (patch) | |
tree | 418360385d76010bb97655723ce5a0266a9f768d /app/src | |
parent | 00e1b5d6f1aee60212b701a3a985eef62f6e70e9 (diff) |
Make graphical preference for en/disabling GridView
Diffstat (limited to 'app/src')
6 files changed, 34 insertions, 5 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java index 3523e35c..a309dc5d 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java @@ -83,6 +83,7 @@ import it.niedermann.owncloud.notes.util.NoteUtil; import static android.view.View.GONE; import static android.view.View.VISIBLE; +import static androidx.preference.PreferenceManager.getDefaultSharedPreferences; import static it.niedermann.owncloud.notes.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; import static it.niedermann.owncloud.notes.util.ColorUtil.contrastRatioIsSufficient; import static it.niedermann.owncloud.notes.util.SSOUtil.askForNewAccount; @@ -92,7 +93,7 @@ public class NotesListViewActivity extends LockedActivity implements NoteClickLi private static final String TAG = NotesListViewActivity.class.getSimpleName(); - public static final boolean FEATURE_TOGGLE_GRID_VIEW = true; + private boolean gridView = true; public static final String CREATED_NOTE = "it.niedermann.owncloud.notes.created_notes"; public static final String ADAPTER_KEY_RECENT = "recent"; @@ -181,6 +182,8 @@ public class NotesListViewActivity extends LockedActivity implements NoteClickLi db = NotesDatabase.getInstance(this); + gridView = getDefaultSharedPreferences(this).getBoolean(getString(R.string.pref_key_gridview), false); + setupToolbars(); setupNavigationList(categoryAdapterSelectedItem); setupNavigationMenu(); @@ -233,7 +236,7 @@ public class NotesListViewActivity extends LockedActivity implements NoteClickLi try { BrandingUtil.saveBrandColors(this, localAccount.getColor(), localAccount.getTextColor()); ssoAccount = SingleAccountHelper.getCurrentSingleSignOnAccount(getApplicationContext()); - new NotesListViewItemTouchHelper(ssoAccount, this, db, adapter, syncCallBack, this::refreshLists, swipeRefreshLayout, this, FEATURE_TOGGLE_GRID_VIEW) + new NotesListViewItemTouchHelper(ssoAccount, this, db, adapter, syncCallBack, this::refreshLists, swipeRefreshLayout, this, gridView) .attachToRecyclerView(listView); synchronize(); } catch (NextcloudFilesAppAccountNotFoundException | NoCurrentAccountSelectedException e) { @@ -594,13 +597,13 @@ public class NotesListViewActivity extends LockedActivity implements NoteClickLi } private void initList() { - adapter = new ItemAdapter(this, FEATURE_TOGGLE_GRID_VIEW); + adapter = new ItemAdapter(this, gridView); listView.setAdapter(adapter); final DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int spanCount = (int) ((displayMetrics.widthPixels / displayMetrics.density) / getResources().getInteger(R.integer.max_dp_grid_view)); listView.setLayoutManager( - FEATURE_TOGGLE_GRID_VIEW + gridView ? new StaggeredGridLayoutManager(spanCount, StaggeredGridLayoutManager.VERTICAL) : new LinearLayoutManager(this) ); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java index bebe3fee..db2d8ee5 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java @@ -30,6 +30,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra private BrandedSwitchPreference lockPref; private BrandedSwitchPreference wifiOnlyPref; private BrandedSwitchPreference brandingPref; + private BrandedSwitchPreference gridViewPref; @Override public void onCreate(@Nullable Bundle savedInstanceState) { @@ -56,6 +57,18 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra Log.e(TAG, "Could not find preference with key: \"" + getString(R.string.pref_key_branding) + "\""); } + gridViewPref = findPreference(getString(R.string.pref_key_gridview)); + if (gridViewPref != null) { + gridViewPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> { + final Boolean gridView = (Boolean) newValue; + Log.v(TAG, "gridView: " + gridView); + requireActivity().setResult(Activity.RESULT_OK); + return true; + }); + } else { + Log.e(TAG, "Could not find preference with key: \"" + getString(R.string.pref_key_branding) + "\""); + } + lockPref = findPreference(getString(R.string.pref_key_lock)); if (lockPref != null) { if (!DeviceCredentialUtil.areCredentialsAvailable(requireContext())) { @@ -119,5 +132,6 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra lockPref.applyBrand(mainColor, textColor); wifiOnlyPref.applyBrand(mainColor, textColor); brandingPref.applyBrand(mainColor, textColor); + gridViewPref.applyBrand(mainColor, textColor); } } diff --git a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java index f84bd8e4..878917fa 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java @@ -31,7 +31,6 @@ public class BrandingUtil { } - public static boolean isBrandingEnabled(@NonNull Context context) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); return prefs.getBoolean(context.getString(R.string.pref_key_branding), true); diff --git a/app/src/main/res/drawable/ic_baseline_dashboard_24.xml b/app/src/main/res/drawable/ic_baseline_dashboard_24.xml new file mode 100644 index 00000000..6c526e9c --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_dashboard_24.xml @@ -0,0 +1,5 @@ +<vector android:autoMirrored="true" android:height="24dp" + android:tint="#757575" android:viewportHeight="24" + android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M3,13h8L11,3L3,3v10zM3,21h8v-6L3,15v6zM13,21h8L21,11h-8v10zM13,3v6h8L21,3h-8z"/> +</vector> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fd222e89..e90e858b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -117,6 +117,7 @@ <string name="pref_key_theme" translatable="false">darkTheme</string> <string name="pref_key_font" translatable="false">font</string> <string name="pref_key_branding" translatable="false">branding</string> + <string name="pref_key_gridview" translatable="false">gridview</string> <string name="pref_key_font_size" translatable="false">fontSize</string> <string name="pref_key_wifi_only" translatable="false">wifiOnly</string> <string name="pref_key_lock" translatable="false">lock</string> @@ -191,6 +192,7 @@ <string name="shared_text_empty">Shared text was empty</string> <string name="append_to_note">Append to note</string> <string name="settings_branding">Branding</string> + <string name="settings_gridview">Grid view</string> <string name="simple_security">Security</string> <string name="simple_appearance">Appearance</string> <string name="simple_synchronization">Synchronization</string> diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 191d4819..06e1f1be 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -45,6 +45,12 @@ android:layout="@layout/item_pref" android:title="@string/settings_branding" /> + <it.niedermann.owncloud.notes.branding.BrandedSwitchPreference + android:icon="@drawable/ic_baseline_dashboard_24" + android:key="@string/pref_key_gridview" + android:layout="@layout/item_pref" + android:title="@string/settings_gridview" /> + </it.niedermann.owncloud.notes.branding.BrandedPreferenceCategory> <it.niedermann.owncloud.notes.branding.BrandedPreferenceCategory |