diff --git a/res/values/non_localizable_strings.xml b/res/values/non_localizable_strings.xml index e816c1744..53e5e21fd 100644 --- a/res/values/non_localizable_strings.xml +++ b/res/values/non_localizable_strings.xml @@ -220,6 +220,7 @@ pref_device_ringtone_key pref_auto_answer_key pref_android_app_settings_key + pref_android_app_notif_settings_key pref_turn_username_key pref_turn_passwd_key diff --git a/res/values/strings.xml b/res/values/strings.xml index 401bcebee..9d08480fa 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -438,6 +438,7 @@ Incoming call hangup (in seconds) Remote provisioning Android app settings + Android notification settings Primary account Display name Username diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index db22cbe4e..5ff4dcfba 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -254,6 +254,11 @@ android:inputType="textUri" android:persistent="false"/> + + diff --git a/src/android/org/linphone/fragments/SettingsFragment.java b/src/android/org/linphone/fragments/SettingsFragment.java index 8265b9251..f233d9175 100644 --- a/src/android/org/linphone/fragments/SettingsFragment.java +++ b/src/android/org/linphone/fragments/SettingsFragment.java @@ -1095,6 +1095,9 @@ public class SettingsFragment extends PreferencesListFragment { private void initChatSettings() { setPreferenceDefaultValueAndSummary(R.string.pref_image_sharing_server_key, mPrefs.getSharingPictureServerUrl()); initLimeEncryptionPreference((ListPreference) findPreference(getString(R.string.pref_use_lime_encryption_key))); + if (Version.sdkStrictlyBelow(Version.API26_O_80)) { + findPreference(getString(R.string.pref_android_app_notif_settings_key)).setLayoutResource(R.layout.hidden); + } } private void setChatPreferencesListener() { @@ -1133,6 +1136,25 @@ public class SettingsFragment extends PreferencesListFragment { return true; } }); + + findPreference(getString(R.string.pref_android_app_notif_settings_key)).setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + synchronized (SettingsFragment.this) { + Context context = SettingsFragment.this.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_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); + context.startActivity(i); + } + return true; + } + }); } private void initNetworkSettings() {