summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFan Zhang <zhfan@google.com>2017-05-15 11:28:25 -0700
committerFan Zhang <zhfan@google.com>2017-05-15 13:22:51 -0700
commit9834bd82da89cd777aaa5005760f90b95f0b292d (patch)
tree5e71c40be0c7d0ad29d54b3b2736cb67b8f3290f
parent5230ffe3a53a098c5d730d645418146c700ff601 (diff)
downloadpackages_apps_Settings-9834bd82da89cd777aaa5005760f90b95f0b292d.tar.gz
packages_apps_Settings-9834bd82da89cd777aaa5005760f90b95f0b292d.tar.bz2
packages_apps_Settings-9834bd82da89cd777aaa5005760f90b95f0b292d.zip
Update strings in special app access and dev options
- Change all yes/no or on/off strings in special app access to Allowed/Not allowed - Remove some dead code in related files - Add a toast string in DevelopmentSettingsDisabledActivity to prompt user enable dev options before use. - Add search in SpecialAccessSettings Change-Id: I8b2535e037a86e76bdbcd3fb6e1cf2e0347bedbf Fix: 38290299 Fix: 37469224 Test: make RunSettingsRoboTests
-rw-r--r--res/values/strings.xml27
-rw-r--r--src/com/android/settings/applications/DrawOverlayDetails.java31
-rw-r--r--src/com/android/settings/applications/ExternalSourcesDetails.java14
-rw-r--r--src/com/android/settings/applications/ManageApplications.java5
-rw-r--r--src/com/android/settings/applications/PictureInPictureDetails.java11
-rw-r--r--src/com/android/settings/applications/SpecialAccessSettings.java44
-rw-r--r--src/com/android/settings/applications/WriteSettingsDetails.java49
-rw-r--r--src/com/android/settings/datausage/BillingCyclePreference.java91
-rw-r--r--src/com/android/settings/development/DevelopmentSettingsDisabledActivity.java4
-rw-r--r--src/com/android/settings/search/SearchIndexableResources.java3
-rw-r--r--tests/robotests/assets/grandfather_not_implementing_indexable1
-rw-r--r--tests/robotests/src/com/android/settings/development/DevelopmentSettingsDisabledActivityTest.java44
12 files changed, 117 insertions, 207 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml
index afa207b8f0..3bd969112f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -43,6 +43,9 @@
<!-- [CHAR LIMIT=NONE] Device Info screen. Okay we get it, stop pressing, you already have it on -->
<string name="show_dev_already">No need, you are already a developer.</string>
+ <!-- [CHAR LIMIT=NONE] Toast message when user attemps to launch developer otions before enabling it. -->
+ <string name="dev_settings_disabled_warning">Please enable developer options first.</string>
+
<!-- Category headings in left-pane header menu --> <skip />
<!-- Settings main menu category heading. Wireless and networks (Wi-Fi, Bluetooth, data usage...). [CHAR LIMIT=40] -->
<string name="header_category_wireless_networks">Wireless &amp; networks</string>
@@ -6737,12 +6740,6 @@
<!-- Apps > App Details > Picture-in-picture > Description. [CHAR LIMIT=NONE] -->
<string name="picture_in_picture_app_detail_summary">Allow this app to create a picture-in-picture window while the app is open or after you leave it (for example, to continue watching a video). This window displays on top of other apps you're using.</string>
- <!-- Summary of app allowed to enter picture-in-picture. [CHAR LIMIT=60] -->
- <string name="picture_in_picture_on">Yes</string>
-
- <!-- Summary of app not allowed to enter picture-in-picture. [CHAR LIMIT=60] -->
- <string name="picture_in_picture_off">No</string>
-
<!-- Sound & notification > Advanced section: Title for managing Do Not Disturb access option. [CHAR LIMIT=40] -->
<string name="manage_zen_access_title">Do Not Disturb access</string>
@@ -7703,10 +7700,12 @@
<!-- Label for showing apps that can display over other apps [CHAR LIMIT=45] -->
<string name="filter_overlay_apps">Apps with permission</string>
- <!-- Summary of app allowed to display over other apps [CHAR LIMIT=60] -->
- <string name="system_alert_window_on">Yes</string>
- <!-- Summary of app not allowed to display over other apps [CHAR LIMIT=60] -->
- <string name="system_alert_window_off">No</string>
+
+ <!-- Preference summary text for an app when it is allowed for a permission. [CHAR LIMIT=45] -->
+ <string name="app_permission_summary_allowed">Allowed</string>
+
+ <!-- Preference summary text for an app when it is disallowed for a permission. [CHAR LIMIT=45] -->
+ <string name="app_permission_summary_not_allowed">Not allowed</string>
<!-- Title for settings screen for controlling apps that can install other apps on device [CHAR LIMIT=50] -->
<string name="install_other_apps">Install unknown apps</string>
@@ -7735,14 +7734,6 @@
<string name="permit_write_settings">Allow modify system settings</string>
<!-- Description of the write system settings [CHAR LIMIT=NONE] -->
<string name="write_settings_description">This permission allows an app to modify system settings.</string>
- <!-- Summary of app allowed to write system settings [CHAR LIMIT=45] -->
- <string name="write_settings_on">Yes</string>
- <!-- Summary of app not allowed to write system settings [CHAR LIMIT=45] -->
- <string name="write_settings_off">No</string>
- <!-- Summary of app trusted to install apps [CHAR LIMIT=45] -->
- <string name="external_source_trusted">Allowed</string>
- <!-- Summary of app not trusted to install apps [CHAR LIMIT=45] -->
- <string name="external_source_untrusted">Not allowed</string>
<!-- Title of switch preference that controls whether an external app source is trusted or not [CHAR LIMIT=50] -->
<string name="external_source_switch_title">Allow from this source</string>
diff --git a/src/com/android/settings/applications/DrawOverlayDetails.java b/src/com/android/settings/applications/DrawOverlayDetails.java
index 72564bc3f8..c6f3cc0c1e 100644
--- a/src/com/android/settings/applications/DrawOverlayDetails.java
+++ b/src/com/android/settings/applications/DrawOverlayDetails.java
@@ -20,8 +20,6 @@ import android.app.AppOpsManager;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.UserHandle;
import android.provider.Settings;
@@ -206,33 +204,6 @@ public class DrawOverlayDetails extends AppInfoWithHeader implements OnPreferenc
public static CharSequence getSummary(Context context, OverlayState overlayState) {
return context.getString(overlayState.isPermissible() ?
- R.string.system_alert_window_on : R.string.system_alert_window_off);
- }
-
- public static CharSequence getSummary(Context context, String pkg) {
- // first check if pkg is a system pkg
- PackageManager packageManager = context.getPackageManager();
- int uid = -1;
- try {
- ApplicationInfo appInfo = packageManager.getApplicationInfo(pkg, 0);
- uid = appInfo.uid;
- if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
- return context.getString(R.string.system_alert_window_on);
- }
- } catch (PackageManager.NameNotFoundException e) {
- // pkg doesn't even exist?
- Log.w(LOG_TAG, "Package " + pkg + " not found", e);
- return context.getString(R.string.system_alert_window_off);
- }
-
- AppOpsManager appOpsManager = (AppOpsManager) context.getSystemService(Context
- .APP_OPS_SERVICE);
- if (uid == -1) {
- return context.getString(R.string.system_alert_window_off);
- }
-
- int mode = appOpsManager.noteOpNoThrow(AppOpsManager.OP_SYSTEM_ALERT_WINDOW, uid, pkg);
- return context.getString((mode == AppOpsManager.MODE_ALLOWED) ?
- R.string.system_alert_window_on : R.string.system_alert_window_off);
+ R.string.app_permission_summary_allowed : R.string.app_permission_summary_not_allowed);
}
}
diff --git a/src/com/android/settings/applications/ExternalSourcesDetails.java b/src/com/android/settings/applications/ExternalSourcesDetails.java
index fe51a87ab7..7158900398 100644
--- a/src/com/android/settings/applications/ExternalSourcesDetails.java
+++ b/src/com/android/settings/applications/ExternalSourcesDetails.java
@@ -15,11 +15,6 @@
*/
package com.android.settings.applications;
-import static android.app.Activity.RESULT_CANCELED;
-import static android.app.Activity.RESULT_OK;
-
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-
import android.app.AlertDialog;
import android.app.AppOpsManager;
import android.content.Context;
@@ -29,12 +24,16 @@ import android.os.UserManager;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceChangeListener;
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settings.applications.AppStateInstallAppsBridge.InstallAppsState;
import com.android.settingslib.RestrictedSwitchPreference;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
+import static android.app.Activity.RESULT_CANCELED;
+import static android.app.Activity.RESULT_OK;
+
public class ExternalSourcesDetails extends AppInfoWithHeader
implements OnPreferenceChangeListener {
@@ -97,8 +96,9 @@ public class ExternalSourcesDetails extends AppInfoWithHeader
appsState = new AppStateInstallAppsBridge(context, null, null)
.createInstallAppsStateFor(entry.info.packageName, entry.info.uid);
}
- return context.getString(appsState.canInstallApps() ? R.string.external_source_trusted
- : R.string.external_source_untrusted);
+ return context.getString(appsState.canInstallApps()
+ ? R.string.app_permission_summary_allowed
+ : R.string.app_permission_summary_not_allowed);
}
private void setCanInstallApps(boolean newState) {
diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index cfa60420a4..b6b58616d9 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -1367,8 +1367,9 @@ public class ManageApplications extends InstrumentedPreferenceFragment
case LIST_TYPE_USAGE_ACCESS:
if (holder.entry.extraInfo != null) {
holder.summary.setText((new UsageState((PermissionState) holder.entry
- .extraInfo)).isPermissible() ? R.string.switch_on_text :
- R.string.switch_off_text);
+ .extraInfo)).isPermissible()
+ ? R.string.app_permission_summary_allowed
+ : R.string.app_permission_summary_not_allowed);
} else {
holder.summary.setText(null);
}
diff --git a/src/com/android/settings/applications/PictureInPictureDetails.java b/src/com/android/settings/applications/PictureInPictureDetails.java
index 41f006acb5..a886a3df55 100644
--- a/src/com/android/settings/applications/PictureInPictureDetails.java
+++ b/src/com/android/settings/applications/PictureInPictureDetails.java
@@ -15,10 +15,6 @@
*/
package com.android.settings.applications;
-import static android.app.AppOpsManager.MODE_ALLOWED;
-import static android.app.AppOpsManager.MODE_ERRORED;
-import static android.app.AppOpsManager.OP_PICTURE_IN_PICTURE;
-
import android.app.AlertDialog;
import android.app.AppOpsManager;
import android.content.Context;
@@ -34,6 +30,10 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
+import static android.app.AppOpsManager.MODE_ALLOWED;
+import static android.app.AppOpsManager.MODE_ERRORED;
+import static android.app.AppOpsManager.OP_PICTURE_IN_PICTURE;
+
public class PictureInPictureDetails extends AppInfoWithHeader
implements OnPreferenceChangeListener {
@@ -124,7 +124,8 @@ public class PictureInPictureDetails extends AppInfoWithHeader
static int getPreferenceSummary(Context context, int uid, String packageName) {
final boolean enabled = PictureInPictureDetails.getEnterPipStateForPackage(context, uid,
packageName);
- return enabled ? R.string.picture_in_picture_on : R.string.picture_in_picture_off;
+ return enabled ? R.string.app_permission_summary_allowed
+ : R.string.app_permission_summary_not_allowed;
}
@VisibleForTesting
diff --git a/src/com/android/settings/applications/SpecialAccessSettings.java b/src/com/android/settings/applications/SpecialAccessSettings.java
index 31f461c7e1..069db76de1 100644
--- a/src/com/android/settings/applications/SpecialAccessSettings.java
+++ b/src/com/android/settings/applications/SpecialAccessSettings.java
@@ -14,20 +14,54 @@
package com.android.settings.applications;
-import android.os.Bundle;
+import android.content.Context;
+import android.provider.SearchIndexableResource;
+
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
-import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class SpecialAccessSettings extends DashboardFragment {
-public class SpecialAccessSettings extends SettingsPreferenceFragment {
+ private static final String TAG = "SpecialAccessSettings";
+
+ @Override
+ protected String getLogTag() {
+ return TAG;
+ }
@Override
- public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
- addPreferencesFromResource(R.xml.special_access);
+ protected int getPreferenceScreenResId() {
+ return R.xml.special_access;
+ }
+
+ @Override
+ protected List<PreferenceController> getPreferenceControllers(Context context) {
+ return null;
}
@Override
public int getMetricsCategory() {
return MetricsEvent.SPECIAL_ACCESS;
}
+
+ public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
+ boolean enabled) {
+ final ArrayList<SearchIndexableResource> result = new ArrayList<>();
+
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.special_access;
+ result.add(sir);
+ return result;
+ }
+ };
}
diff --git a/src/com/android/settings/applications/WriteSettingsDetails.java b/src/com/android/settings/applications/WriteSettingsDetails.java
index aea05b3bbb..50e6948bbf 100644
--- a/src/com/android/settings/applications/WriteSettingsDetails.java
+++ b/src/com/android/settings/applications/WriteSettingsDetails.java
@@ -20,8 +20,6 @@ import android.app.AppOpsManager;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.UserHandle;
import android.provider.Settings;
@@ -38,8 +36,6 @@ import com.android.settings.applications.AppStateWriteSettingsBridge.WriteSettin
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
-import java.util.List;
-
public class WriteSettingsDetails extends AppInfoWithHeader implements OnPreferenceChangeListener,
OnPreferenceClickListener {
@@ -182,47 +178,8 @@ public class WriteSettingsDetails extends AppInfoWithHeader implements OnPrefere
}
public static CharSequence getSummary(Context context, WriteSettingsState writeSettingsState) {
- return context.getString(writeSettingsState.isPermissible() ? R.string.write_settings_on :
- R.string.write_settings_off);
- }
-
- public static CharSequence getSummary(Context context, String pkg) {
- // first check if pkg is a system pkg
- boolean isSystem = false;
- PackageManager packageManager = context.getPackageManager();
- try {
- ApplicationInfo appInfo = packageManager.getApplicationInfo(pkg, 0);
- if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
- isSystem = true;
- }
- } catch (PackageManager.NameNotFoundException e) {
- // pkg doesn't even exist?
- Log.w(LOG_TAG, "Package " + pkg + " not found", e);
- return context.getString(R.string.write_settings_off);
- }
-
- AppOpsManager appOpsManager = (AppOpsManager) context.getSystemService(Context
- .APP_OPS_SERVICE);
- List<AppOpsManager.PackageOps> packageOps = appOpsManager.getPackagesForOps(
- APP_OPS_OP_CODE);
- if (packageOps == null) {
- return context.getString(R.string.write_settings_off);
- }
-
- int uid = isSystem ? 0 : -1;
- for (AppOpsManager.PackageOps packageOp : packageOps) {
- if (pkg.equals(packageOp.getPackageName())) {
- uid = packageOp.getUid();
- break;
- }
- }
-
- if (uid == -1) {
- return context.getString(R.string.write_settings_off);
- }
-
- int mode = appOpsManager.noteOpNoThrow(AppOpsManager.OP_WRITE_SETTINGS, uid, pkg);
- return context.getString((mode == AppOpsManager.MODE_ALLOWED) ?
- R.string.write_settings_on : R.string.write_settings_off);
+ return context.getString(writeSettingsState.isPermissible()
+ ? R.string.app_permission_summary_allowed
+ : R.string.app_permission_summary_not_allowed);
}
}
diff --git a/src/com/android/settings/datausage/BillingCyclePreference.java b/src/com/android/settings/datausage/BillingCyclePreference.java
deleted file mode 100644
index beb0ba1453..0000000000
--- a/src/com/android/settings/datausage/BillingCyclePreference.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the
- * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package com.android.settings.datausage;
-
-import android.content.Context;
-import android.content.Intent;
-import android.net.NetworkPolicy;
-import android.net.NetworkTemplate;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.support.v7.preference.Preference;
-import android.util.AttributeSet;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settings.datausage.CellDataPreference.DataStateListener;
-
-public class BillingCyclePreference extends Preference implements TemplatePreference {
-
- private NetworkTemplate mTemplate;
- private NetworkServices mServices;
- private NetworkPolicy mPolicy;
- private int mSubId;
-
- public BillingCyclePreference(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- @Override
- public void onAttached() {
- super.onAttached();
- mListener.setListener(true, mSubId, getContext());
- }
-
- @Override
- public void onDetached() {
- mListener.setListener(false, mSubId, getContext());
- super.onDetached();
- }
-
- @Override
- public void setTemplate(NetworkTemplate template, int subId,
- NetworkServices services) {
- mTemplate = template;
- mSubId = subId;
- mServices = services;
- mPolicy = services.mPolicyEditor.getPolicy(mTemplate);
- setSummary(getContext().getString(R.string.billing_cycle_fragment_summary, mPolicy != null
- ? mPolicy.cycleDay
- : "1"));
- setIntent(getIntent());
- }
-
- private void updateEnabled() {
- try {
- setEnabled(mPolicy != null && mServices.mNetworkService.isBandwidthControlEnabled()
- && mServices.mTelephonyManager.getDataEnabled(mSubId)
- && mServices.mUserManager.isAdminUser());
- } catch (RemoteException e) {
- setEnabled(false);
- }
- }
-
- @Override
- public Intent getIntent() {
- Bundle args = new Bundle();
- args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate);
- return Utils.onBuildStartFragmentIntent(getContext(), BillingCycleSettings.class.getName(),
- args, null, 0, getTitle(), false, MetricsProto.MetricsEvent.VIEW_UNKNOWN);
- }
-
- private final DataStateListener mListener = new DataStateListener() {
- @Override
- public void onChange(boolean selfChange) {
- updateEnabled();
- }
- };
-}
diff --git a/src/com/android/settings/development/DevelopmentSettingsDisabledActivity.java b/src/com/android/settings/development/DevelopmentSettingsDisabledActivity.java
index 31f7a2018e..9ea24da2ce 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDisabledActivity.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDisabledActivity.java
@@ -18,11 +18,15 @@ package com.android.settings.development;
import android.app.Activity;
import android.os.Bundle;
+import android.widget.Toast;
+
+import com.android.settings.R;
public class DevelopmentSettingsDisabledActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ Toast.makeText(this, R.string.dev_settings_disabled_warning, Toast.LENGTH_SHORT).show();
finish();
}
}
diff --git a/src/com/android/settings/search/SearchIndexableResources.java b/src/com/android/settings/search/SearchIndexableResources.java
index 75ac350129..ce8135c33d 100644
--- a/src/com/android/settings/search/SearchIndexableResources.java
+++ b/src/com/android/settings/search/SearchIndexableResources.java
@@ -133,8 +133,7 @@ public final class SearchIndexableResources {
R.xml.battery_saver_settings, R.drawable.ic_settings_battery);
addIndex(AdvancedAppSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_applications);
addIndex(ManageAssist.class, NO_DATA_RES_ID, R.drawable.ic_settings_applications);
- addIndex(SpecialAccessSettings.class,
- R.xml.special_access, R.drawable.ic_settings_applications);
+ addIndex(SpecialAccessSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_applications);
addIndex(UserSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_multiuser);
addIndex(AssistGestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
addIndex(PickupGestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
diff --git a/tests/robotests/assets/grandfather_not_implementing_indexable b/tests/robotests/assets/grandfather_not_implementing_indexable
index 9ecc0b4488..544b2c7cbd 100644
--- a/tests/robotests/assets/grandfather_not_implementing_indexable
+++ b/tests/robotests/assets/grandfather_not_implementing_indexable
@@ -47,7 +47,6 @@ com.android.settings.notification.ZenModeScheduleRuleSettings
com.android.settings.datausage.BillingCycleSettings
com.android.settings.notification.NotificationStation
com.android.settings.print.PrintJobSettingsFragment
-com.android.settings.applications.SpecialAccessSettings
com.android.settings.accessibility.ToggleScreenReaderPreferenceFragmentForSetupWizard
com.android.settings.accessibility.ToggleSelectToSpeakPreferenceFragmentForSetupWizard
com.android.settings.accounts.AccountSyncSettings
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDisabledActivityTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDisabledActivityTest.java
new file mode 100644
index 0000000000..67733aa92c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDisabledActivityTest.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowToast;
+
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DevelopmentSettingsDisabledActivityTest {
+
+ @Test
+ public void launchActivity_shouldShowToast() {
+ Robolectric.setupActivity(DevelopmentSettingsDisabledActivity.class);
+
+ assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(
+ RuntimeEnvironment.application.getString(R.string.dev_settings_disabled_warning));
+ }
+}