From 61b8df8fa86766b683ae673457c96eeadef0b1cf Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 15 Jun 2019 11:28:25 +0200 Subject: [PATCH] Added button to directly navigate to the notification channel settings --- .../email/FragmentOptionsNotifications.java | 16 +++++++++++++++- app/src/main/res/drawable/baseline_launch_24.xml | 10 ++++++++++ .../layout/fragment_options_notifications.xml | 12 ++++++++++-- 3 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 app/src/main/res/drawable/baseline_launch_24.xml diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java b/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java index c31b5ccd58..e1334888d8 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java @@ -37,6 +37,7 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; +import android.widget.ImageButton; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -56,6 +57,7 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared private CheckBox cbNotifyActionFlag; private CheckBox cbNotifyActionSeen; private Button btnManage; + private ImageButton ibManage; private SwitchCompat swLight; private Button btnSound; @@ -83,6 +85,7 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared cbNotifyActionFlag = view.findViewById(R.id.cbNotifyActionFlag); cbNotifyActionSeen = view.findViewById(R.id.cbNotifyActionSeen); btnManage = view.findViewById(R.id.btnManage); + ibManage = view.findViewById(R.id.ibManage); swLight = view.findViewById(R.id.swLight); btnSound = view.findViewById(R.id.btnSound); @@ -92,6 +95,7 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared // Wire controls + PackageManager pm = getContext().getPackageManager(); final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); swNotifyGroup.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @@ -144,7 +148,6 @@ 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 @@ -153,6 +156,17 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared } }); + final Intent channel = new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS) + .putExtra(Settings.EXTRA_APP_PACKAGE, getContext().getPackageName()) + .putExtra(Settings.EXTRA_CHANNEL_ID, "notification"); + ibManage.setVisibility(channel.resolveActivity(pm) == null ? View.GONE : View.VISIBLE); + ibManage.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + startActivity(channel); + } + }); + swLight.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { diff --git a/app/src/main/res/drawable/baseline_launch_24.xml b/app/src/main/res/drawable/baseline_launch_24.xml new file mode 100644 index 0000000000..7dfe555f6e --- /dev/null +++ b/app/src/main/res/drawable/baseline_launch_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/fragment_options_notifications.xml b/app/src/main/res/layout/fragment_options_notifications.xml index 637b256c74..e457ae7082 100644 --- a/app/src/main/res/layout/fragment_options_notifications.xml +++ b/app/src/main/res/layout/fragment_options_notifications.xml @@ -148,14 +148,22 @@ android:id="@+id/tvManageHint" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginEnd="48dp" android:text="@string/title_advanced_notify_manage_hint" android:textAppearance="@style/TextAppearance.AppCompat.Small" android:textStyle="italic" - app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintEnd_toStartOf="@+id/ibManage" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/btnManage" /> + +