diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7fe1ff7e3b6..cd473a296ba 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3621,6 +3621,8 @@
Network, apps, or device can be reset
+
+ Apps can be reset
diff --git a/src/com/android/settings/system/ResetPreferenceController.java b/src/com/android/settings/system/ResetPreferenceController.java
index 050efc4cd1c..bbb5323ae62 100644
--- a/src/com/android/settings/system/ResetPreferenceController.java
+++ b/src/com/android/settings/system/ResetPreferenceController.java
@@ -16,14 +16,23 @@
package com.android.settings.system;
import android.content.Context;
+import android.os.UserManager;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
+import com.android.settings.network.NetworkResetPreferenceController;
public class ResetPreferenceController extends BasePreferenceController {
+ private final UserManager mUm;
+ private final NetworkResetPreferenceController mNetworkReset;
+ private final FactoryResetPreferenceController mFactpruReset;
+
public ResetPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
+ mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
+ mNetworkReset = new NetworkResetPreferenceController(context);
+ mFactpruReset = new FactoryResetPreferenceController(context);
}
@Override
@@ -32,4 +41,13 @@ public class ResetPreferenceController extends BasePreferenceController {
? AVAILABLE_UNSEARCHABLE
: UNSUPPORTED_ON_DEVICE;
}
+
+ @Override
+ public CharSequence getSummary() {
+ if (!mNetworkReset.isAvailable() && !mFactpruReset.isAvailable()) {
+ return mContext.getText(R.string.reset_dashboard_summary_onlyApps);
+ }
+
+ return mContext.getText(R.string.reset_dashboard_summary);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/system/ResetPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/system/ResetPreferenceControllerTest.java
index 1aca4db9e62..35c0c7d3715 100644
--- a/tests/robotests/src/com/android/settings/system/ResetPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/system/ResetPreferenceControllerTest.java
@@ -18,6 +18,12 @@ package com.android.settings.system;
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
+import android.content.pm.UserInfo;
+import android.os.UserHandle;
+import android.provider.Settings;
+
+import com.android.settings.R;
+import com.android.settings.testutils.shadow.ShadowUserManager;
import org.junit.Before;
import org.junit.Test;
@@ -31,6 +37,7 @@ import org.robolectric.annotation.Config;
public class ResetPreferenceControllerTest {
private static final String KEY_RESET_DASHBOARD = "reset_dashboard";
+ private ShadowUserManager mShadowUserManager;
private Context mContext;
private ResetPreferenceController mController;
@@ -40,6 +47,7 @@ public class ResetPreferenceControllerTest {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
mController = new ResetPreferenceController(mContext, KEY_RESET_DASHBOARD);
+ mShadowUserManager = ShadowUserManager.getShadow();
}
@Test
@@ -52,4 +60,35 @@ public class ResetPreferenceControllerTest {
public void isAvailable_ifNotVisible_false() {
assertThat(mController.isAvailable()).isFalse();
}
+
+ @Test
+ public void getSummary_systemUser_shouldReturnFullSummary() {
+ mShadowUserManager.setIsAdminUser(true);
+
+ assertThat(mController.getSummary()).isEqualTo(
+ mContext.getString(R.string.reset_dashboard_summary));
+ }
+
+ @Test
+ public void getSummary_nonSystemUser_shouldReturnAppsSummary() {
+ mShadowUserManager.setIsAdminUser(false);
+ mShadowUserManager.setIsDemoUser(false);
+
+ assertThat(mController.getSummary()).isEqualTo(
+ mContext.getString(R.string.reset_dashboard_summary_onlyApps));
+ }
+
+ @Test
+ public void getSummary_demoUser_shouldReturnFullSummary() {
+ mShadowUserManager.setIsAdminUser(false);
+
+ // Place the device in demo mode.
+ Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEVICE_DEMO_MODE, 1);
+
+ // Indicate the user is a demo user.
+ mShadowUserManager.addUser(UserHandle.myUserId(), "test", UserInfo.FLAG_DEMO);
+
+ assertThat(mController.getSummary()).isEqualTo(
+ mContext.getString(R.string.reset_dashboard_summary));
+ }
}
\ No newline at end of file