From 8e852d7ff26b1e551d3e2658edafa4789f801ad5 Mon Sep 17 00:00:00 2001 From: vanitasvitae Date: Fri, 14 Oct 2016 12:57:17 +0200 Subject: [PATCH] Added notifications dropdown menu with settings --- .../activity/MainActivity.java | 22 +++++---- .../diaspora_android/data/AppSettings.java | 4 ++ app/src/main/res/menu/main__menu_top.xml | 31 +----------- ...main__menu_top__notifications_dropdown.xml | 48 +++++++++++++++++++ .../main/res/values/strings-preferences.xml | 5 ++ app/src/main/res/values/strings.xml | 9 ++++ app/src/main/res/xml/preferences.xml | 6 +++ 7 files changed, 87 insertions(+), 38 deletions(-) create mode 100644 app/src/main/res/menu/main__menu_top__notifications_dropdown.xml diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java index 8f7ff787..786e98eb 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java @@ -546,6 +546,7 @@ public class MainActivity extends ThemedActivity AppLog.v(this, "Register BroadcastReceivers"); LocalBroadcastManager.getInstance(this).registerReceiver(brSetTitle, new IntentFilter(ACTION_UPDATE_TITLE_FROM_URL)); LocalBroadcastManager.getInstance(this).registerReceiver(brOpenExternalLink, new IntentFilter(ACTION_OPEN_EXTERNAL_URL)); + invalidateOptionsMenu(); this.appSettings = getAppSettings(); if (appSettings.isIntellihideToolbars()) { this.enableToolbarHiding(); @@ -572,17 +573,16 @@ public class MainActivity extends ThemedActivity CustomFragment top = getTopFragment(); if (top != null) { - //Are we displaying a Fragment other than PodSelectionFragment? - if (!top.getFragmentTag().equals(PodSelectionFragment.TAG)) { - getMenuInflater().inflate(R.menu.main__menu_top, menu); + //PodSelectionFragment? + if (top.getFragmentTag().equals(PodSelectionFragment.TAG)) { + ///Hide bottom toolbar + toolbarBottom.setVisibility(View.GONE); + } else { + getMenuInflater().inflate(appSettings.isExtendedNotificationsActivated() ? + R.menu.main__menu_top__notifications_dropdown : R.menu.main__menu_top, menu); getMenuInflater().inflate(R.menu.main__menu_bottom, toolbarBottom.getMenu()); top.onCreateBottomOptionsMenu(toolbarBottom.getMenu(), getMenuInflater()); } - //PodSelectionFragment - else { - //Hide bottom toolbar - toolbarBottom.setVisibility(View.GONE); - } } return true; } @@ -620,6 +620,12 @@ public class MainActivity extends ThemedActivity public boolean onOptionsItemSelected(MenuItem item) { AppLog.i(this, "onOptionsItemSelected()"); switch (item.getItemId()) { + case R.id.action_notifications: { + if(appSettings.isExtendedNotificationsActivated()) { + return true; + } + //Otherwise we execute the action of action_notifications_all + } case R.id.action_notifications_all: { if (WebHelper.isOnline(MainActivity.this)) { openDiasporaUrl(urls.getNotificationsUrl()); diff --git a/app/src/main/java/com/github/dfa/diaspora_android/data/AppSettings.java b/app/src/main/java/com/github/dfa/diaspora_android/data/AppSettings.java index d105a8f0..0307765a 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/data/AppSettings.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/data/AppSettings.java @@ -374,4 +374,8 @@ public class AppSettings { public int getAccentColor() { return getInt(prefApp, R.string.pref_key__accent_color_shade, context.getResources().getColor(R.color.accent)); } + + public boolean isExtendedNotificationsActivated() { + return getBoolean(prefApp, R.string.pref_key__extended_notifications, false); + } } \ No newline at end of file diff --git a/app/src/main/res/menu/main__menu_top.xml b/app/src/main/res/menu/main__menu_top.xml index d6ce2f61..71750e4f 100644 --- a/app/src/main/res/menu/main__menu_top.xml +++ b/app/src/main/res/menu/main__menu_top.xml @@ -8,36 +8,7 @@ android:icon="@drawable/ic_notifications_white_48px__layer" android:orderInCategory="100" android:title="@string/notifications" - app:showAsAction="always"> - - - - - - - - - - - - - - - + app:showAsAction="always"/> + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings-preferences.xml b/app/src/main/res/values/strings-preferences.xml index a9641636..dafbf2ff 100644 --- a/app/src/main/res/values/strings-preferences.xml +++ b/app/src/main/res/values/strings-preferences.xml @@ -16,6 +16,7 @@ pref_key_clear_cache pref_key__chrome_custom_tabs_enabled pref_key__http_proxy_load_tor_preset + pref_key__extended_notifications pref_key_primary_color @@ -78,6 +79,10 @@ Accent Color Color of the progressbar + + Extended Notifications + Extend the notifications bell with a dropdown menu that shows notification categories + Font size diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f50da001..cbd47143 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -29,6 +29,15 @@ Public Search + + All Notifications + Also Commented + Comment on Post + Liked + Mentioned + Reshared + Started Sharing + Select Pod diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 9ba82cc4..b3b7c1d1 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -87,6 +87,12 @@ android:summary="@string/pref_desc__intellihide_toolbars" android:title="@string/pref_title__intellihide_toolbars"/> + +