Added chat setting to go to Android's notification channel settings if version >= 8

This commit is contained in:
Sylvain Berfini 2018-10-12 11:15:36 +02:00
parent 9a2bdfc2c4
commit 4ed7ea0fa5
4 changed files with 29 additions and 0 deletions

View file

@ -220,6 +220,7 @@
<string name="pref_device_ringtone_key">pref_device_ringtone_key</string>
<string name="pref_auto_answer_key">pref_auto_answer_key</string>
<string name="pref_android_app_settings_key">pref_android_app_settings_key</string>
<string name="pref_android_app_notif_settings_key">pref_android_app_notif_settings_key</string>
<string name="pref_turn_username_key">pref_turn_username_key</string>
<string name="pref_turn_passwd_key">pref_turn_passwd_key</string>
</resources>

View file

@ -438,6 +438,7 @@
<string name="pref_incoming_call_timeout_title">Incoming call hangup (in seconds)</string>
<string name="pref_remote_provisioning_title">Remote provisioning</string>
<string name="pref_android_app_settings_title">Android app settings</string>
<string name="pref_android_app_notif_settings_title">Android notification settings</string>
<string name="pref_primary_account_title">Primary account</string>
<string name="pref_display_name_title">Display name</string>
<string name="pref_user_name_title">Username</string>

View file

@ -254,6 +254,11 @@
android:inputType="textUri"
android:persistent="false"/>
<Preference
android:title="@string/pref_android_app_notif_settings_title"
android:key="@string/pref_android_app_notif_settings_key"
android:persistent="false"/>
</PreferenceCategory>
</PreferenceScreen>

View file

@ -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() {