Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2020-06-10 11:39:16 +0300
committerStefan Niedermann <info@niedermann.it>2020-06-10 11:39:16 +0300
commit2b771d947baafed8c521fe4f44cea5ada63d2583 (patch)
tree418360385d76010bb97655723ce5a0266a9f768d /app/src
parent00e1b5d6f1aee60212b701a3a985eef62f6e70e9 (diff)
Make graphical preference for en/disabling GridView
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java11
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java14
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java1
-rw-r--r--app/src/main/res/drawable/ic_baseline_dashboard_24.xml5
-rw-r--r--app/src/main/res/values/strings.xml2
-rw-r--r--app/src/main/res/xml/preferences.xml6
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