From 50c3a7b6a95b84d85b752c194dbafe886763a5f8 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 14 Jun 2019 19:05:28 +0200 Subject: [PATCH] Moved manage notifications to tab page --- .../java/eu/faircode/email/ActivitySetup.java | 21 ----------------- .../email/FragmentOptionsNotifications.java | 23 +++++++++++++++++++ .../layout/fragment_options_notifications.xml | 14 ++++++++++- 3 files changed, 36 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java index fc0fec82b4..7b0da67262 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySetup.java +++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java @@ -40,7 +40,6 @@ import android.media.RingtoneManager; import android.net.Uri; import android.os.Build; import android.os.Bundle; -import android.provider.Settings; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.MenuItem; @@ -187,15 +186,6 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On } }).setSeparated()); - if (getIntentNotifications(this).resolveActivity(pm) != null) - menus.add(new NavMenuItem(R.drawable.baseline_notifications_24, R.string.title_setup_notifications, new Runnable() { - @Override - public void run() { - drawerLayout.closeDrawer(drawerContainer); - onManageNotifications(); - } - })); - menus.add(new NavMenuItem(R.drawable.baseline_reorder_24, R.string.title_setup_reorder_accounts, new Runnable() { @Override public void run() { @@ -441,10 +431,6 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On .show(); } - private void onManageNotifications() { - startActivity(getIntentNotifications(this)); - } - private void onMenuOrder(int title, Class clazz) { if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED)) getSupportFragmentManager().popBackStack("order", FragmentManager.POP_BACK_STACK_INCLUSIVE); @@ -557,13 +543,6 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On fragmentTransaction.commit(); } - private static Intent getIntentNotifications(Context context) { - return new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS) - .putExtra("app_package", context.getPackageName()) - .putExtra("app_uid", context.getApplicationInfo().uid) - .putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName()); - } - private static Intent getIntentExport() { Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java b/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java index 4e5e30f995..c31b5ccd58 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java @@ -19,12 +19,15 @@ package eu.faircode.email; Copyright 2018-2019 by Marcel Bokhorst (M66B) */ +import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.PackageManager; import android.media.RingtoneManager; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.provider.Settings; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -52,6 +55,7 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared private CheckBox cbNotifyActionReply; private CheckBox cbNotifyActionFlag; private CheckBox cbNotifyActionSeen; + private Button btnManage; private SwitchCompat swLight; private Button btnSound; @@ -78,6 +82,7 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared cbNotifyActionReply = view.findViewById(R.id.cbNotifyActionReply); cbNotifyActionFlag = view.findViewById(R.id.cbNotifyActionFlag); cbNotifyActionSeen = view.findViewById(R.id.cbNotifyActionSeen); + btnManage = view.findViewById(R.id.btnManage); swLight = view.findViewById(R.id.swLight); btnSound = view.findViewById(R.id.btnSound); @@ -138,6 +143,16 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared } }); + final Intent manage = getIntentNotifications(getContext()); + PackageManager pm = getContext().getPackageManager(); + btnManage.setVisibility(manage.resolveActivity(pm) == null ? View.GONE : View.VISIBLE); + btnManage.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + startActivity(manage); + } + }); + swLight.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -249,4 +264,12 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared prefs.edit().putString("sound", uri.toString()).apply(); } } + + private static Intent getIntentNotifications(Context context) { + return new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS) + .putExtra("app_package", context.getPackageName()) + .putExtra("app_uid", context.getApplicationInfo().uid) + .putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName()); + } + } diff --git a/app/src/main/res/layout/fragment_options_notifications.xml b/app/src/main/res/layout/fragment_options_notifications.xml index bf3dce6f57..909a0afdec 100644 --- a/app/src/main/res/layout/fragment_options_notifications.xml +++ b/app/src/main/res/layout/fragment_options_notifications.xml @@ -132,6 +132,18 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/tvNotifyActionsHint" /> +