diff --git a/app/src/main/java/org/linphone/settings/SettingsFragment.java b/app/src/main/java/org/linphone/settings/SettingsFragment.java
index f41cdaa90..54d3892f1 100644
--- a/app/src/main/java/org/linphone/settings/SettingsFragment.java
+++ b/app/src/main/java/org/linphone/settings/SettingsFragment.java
@@ -21,6 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
import android.Manifest;
import android.app.AlertDialog;
+import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -234,6 +235,10 @@ public class SettingsFragment extends PreferencesListFragment {
hidePreference(R.string.pref_push_notification_key);
}
+ if (!"huawei".equalsIgnoreCase(android.os.Build.MANUFACTURER)) {
+ hidePreference(R.string.pref_huawei_protected_settings_key);
+ }
+
if (!Version.isVideoCapable()
|| !LinphoneManager.getLcIfManagerNotDestroyedOrNull().videoSupported()) {
emptyAndHidePreference(R.string.pref_video_key);
@@ -1624,6 +1629,22 @@ public class SettingsFragment extends PreferencesListFragment {
}
});
+ findPreference(getString(R.string.pref_huawei_protected_settings_key))
+ .setOnPreferenceClickListener(
+ new OnPreferenceClickListener() {
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ LinphonePreferences.instance().huaweiDialogPrompted(true);
+ Intent intent = new Intent();
+ intent.setComponent(
+ new ComponentName(
+ "com.huawei.systemmanager",
+ "com.huawei.systemmanager.optimize.process.ProtectActivity"));
+ startActivity(intent);
+ return true;
+ }
+ });
+
findPreference(getString(R.string.pref_ipv6_key))
.setOnPreferenceChangeListener(
new OnPreferenceChangeListener() {
diff --git a/app/src/main/res/values/non_localizable_strings.xml b/app/src/main/res/values/non_localizable_strings.xml
index 3f24f87a2..eefc3d179 100644
--- a/app/src/main/res/values/non_localizable_strings.xml
+++ b/app/src/main/res/values/non_localizable_strings.xml
@@ -83,6 +83,7 @@
pref_friendlist_subscribe_key
pref_link_account_key
pref_proxy_push_notif_key
+ pref_huawei_protected_settings_key
pref_echo_cancellation_key
pref_autostart_key
Outbound proxy
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a4f2d6d6c..9629ba62c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -463,6 +463,8 @@
Media encryption
Enable push notifications
Allow IPv6
+ Huawei protected apps settings
+ This app must be enabled in order to receive push notifications
Advanced
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 263a37bb5..e8070e89d 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -348,6 +348,12 @@
android:persistent="false"
android:title="@string/pref_push_notification" />
+
+