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" />
+
+