From 8975920035117fd09d45b8e153e65657899fe9b5 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 15 Nov 2019 10:24:16 +0100 Subject: [PATCH] Added a shortcut to call/service notifications channel settings --- .../settings/CallSettingsFragment.java | 32 ++++++++++++++++++- app/src/main/res/layout/settings_call.xml | 6 ++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/linphone/settings/CallSettingsFragment.java b/app/src/main/java/org/linphone/settings/CallSettingsFragment.java index d0ee874af..597af0fc1 100644 --- a/app/src/main/java/org/linphone/settings/CallSettingsFragment.java +++ b/app/src/main/java/org/linphone/settings/CallSettingsFragment.java @@ -20,9 +20,12 @@ package org.linphone.settings; import android.Manifest; +import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; +import android.os.Build; import android.os.Bundle; +import android.provider.Settings; import android.text.InputType; import android.view.LayoutInflater; import android.view.View; @@ -54,7 +57,7 @@ public class CallSettingsFragment extends SettingsFragment { mAutoAnswer; private ListSetting mMediaEncryption; private TextSetting mAutoAnswerTime, mIncomingCallTimeout, mVoiceMailUri; - private BasicSetting mDndPermissionSettings; + private BasicSetting mDndPermissionSettings, mAndroidNotificationSettings; @Nullable @Override @@ -90,6 +93,8 @@ public class CallSettingsFragment extends SettingsFragment { mMediaEncryption = mRootView.findViewById(R.id.pref_media_encryption); initMediaEncryptionList(); + mAndroidNotificationSettings = mRootView.findViewById(R.id.pref_android_app_notif_settings); + mAutoAnswerTime = mRootView.findViewById(R.id.pref_auto_answer_time); mAutoAnswerTime.setInputType(InputType.TYPE_CLASS_NUMBER); @@ -230,6 +235,27 @@ public class CallSettingsFragment extends SettingsFragment { mPrefs.setMediaEncryptionMandatory(newValue); } }); + + mAndroidNotificationSettings.setListener( + new SettingListenerBase() { + @Override + public void onClicked() { + if (Build.VERSION.SDK_INT >= Version.API26_O_80) { + Context context = getActivity(); + Intent i = new Intent(); + i.setAction(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS); + i.putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName()); + i.putExtra( + Settings.EXTRA_CHANNEL_ID, + context.getString(R.string.notification_service_channel_id)); + i.addCategory(Intent.CATEGORY_DEFAULT); + i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); + i.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); + startActivity(i); + } + } + }); } private void updateValues() { @@ -258,6 +284,10 @@ public class CallSettingsFragment extends SettingsFragment { mMediaEncryptionMandatory.setChecked(mPrefs.isMediaEncryptionMandatory()); mMediaEncryptionMandatory.setEnabled(mPrefs.getMediaEncryption() != MediaEncryption.None); + if (Version.sdkStrictlyBelow(Version.API26_O_80)) { + mAndroidNotificationSettings.setVisibility(View.GONE); + } + setListeners(); } diff --git a/app/src/main/res/layout/settings_call.xml b/app/src/main/res/layout/settings_call.xml index 75143a543..6c716502c 100644 --- a/app/src/main/res/layout/settings_call.xml +++ b/app/src/main/res/layout/settings_call.xml @@ -54,6 +54,12 @@ android:layout_height="wrap_content" linphone:title="@string/pref_rfc2833_dtmf" /> + +