Move developer options related class to development package
Bug: 34203528 Test: none, purely moving classes around Change-Id: I3cd1d257f948729fda5c04632e7ce9114c40bd0c
This commit is contained in:
@@ -1890,7 +1890,7 @@
|
|||||||
<meta-data android:name="com.android.settings.category"
|
<meta-data android:name="com.android.settings.category"
|
||||||
android:value="com.android.settings.category.ia.system" />
|
android:value="com.android.settings.category.ia.system" />
|
||||||
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
||||||
android:value="com.android.settings.DevelopmentSettings" />
|
android:value="com.android.settings.development.DevelopmentSettings" />
|
||||||
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
|
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
|
||||||
android:value="true" />
|
android:value="true" />
|
||||||
</activity>
|
</activity>
|
||||||
|
@@ -1,102 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Copyright (C) 2013 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:minHeight="?android:attr/listPreferredItemHeight"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:paddingStart="@*android:dimen/preference_item_padding_side">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:id="@+id/home_app_pref"
|
|
||||||
android:focusable="true"
|
|
||||||
android:clickable="true"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:background="?android:attr/selectableItemBackground" >
|
|
||||||
|
|
||||||
<RadioButton
|
|
||||||
android:id="@+id/home_radio"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_marginStart="10dip"
|
|
||||||
android:layout_marginEnd="4dip"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:clickable="false"
|
|
||||||
android:focusable="false" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@android:id/icon"
|
|
||||||
android:layout_width="48dp"
|
|
||||||
android:layout_height="48dp"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:minWidth="48dp"
|
|
||||||
android:scaleType="centerInside"
|
|
||||||
android:layout_marginEnd="@*android:dimen/preference_item_padding_inner" />
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:focusable="true"
|
|
||||||
android:clickable="true"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@android:id/title"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:ellipsize="end" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@android:id/summary"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceSmall" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:id="@+id/home_divider"
|
|
||||||
android:layout_width="2dip"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_marginTop="5dip"
|
|
||||||
android:layout_marginBottom="5dip"
|
|
||||||
android:background="@android:drawable/divider_horizontal_dark" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/home_app_uninstall"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="fill_parent"
|
|
||||||
android:paddingStart="12dip"
|
|
||||||
android:paddingEnd="12dp"
|
|
||||||
android:src="@drawable/ic_menu_delete"
|
|
||||||
android:contentDescription="@string/home_app_uninstall_button"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:clickable="true"
|
|
||||||
android:focusable="true"
|
|
||||||
android:background="?android:attr/selectableItemBackground" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
@@ -5716,9 +5716,6 @@
|
|||||||
<!-- Applicaitons with restrictions - settings button [CHAR LIMIT=30] -->
|
<!-- Applicaitons with restrictions - settings button [CHAR LIMIT=30] -->
|
||||||
<string name="apps_with_restrictions_settings_button">Expand settings for application</string>
|
<string name="apps_with_restrictions_settings_button">Expand settings for application</string>
|
||||||
|
|
||||||
<!-- Home application selection - uninstall button [CHAR LIMIT=80] -->
|
|
||||||
<string name="home_app_uninstall_button">Uninstall this application</string>
|
|
||||||
|
|
||||||
<!-- Warning message when changing a global setting for a tablet.[CHAR LIMIT=none] -->
|
<!-- Warning message when changing a global setting for a tablet.[CHAR LIMIT=none] -->
|
||||||
<string name="global_change_warning" product="tablet">This setting affects all users on this tablet.</string>
|
<string name="global_change_warning" product="tablet">This setting affects all users on this tablet.</string>
|
||||||
<!-- Warning message when changing a global setting for a phone.[CHAR LIMIT=none] -->
|
<!-- Warning message when changing a global setting for a phone.[CHAR LIMIT=none] -->
|
||||||
|
@@ -69,7 +69,7 @@
|
|||||||
android:summary="@string/convert_to_file_encryption_enabled"
|
android:summary="@string/convert_to_file_encryption_enabled"
|
||||||
android:fragment="com.android.settings.applications.ConvertToFbe" />
|
android:fragment="com.android.settings.applications.ConvertToFbe" />
|
||||||
|
|
||||||
<com.android.settings.ColorModePreference
|
<com.android.settings.development.ColorModePreference
|
||||||
android:key="color_mode"
|
android:key="color_mode"
|
||||||
android:title="@string/picture_color_mode"
|
android:title="@string/picture_color_mode"
|
||||||
android:summary="@string/picture_color_mode_desc" />
|
android:summary="@string/picture_color_mode_desc" />
|
||||||
|
@@ -60,6 +60,7 @@ import com.android.settings.core.instrumentation.MetricsFeatureProvider;
|
|||||||
import com.android.settings.core.instrumentation.SharedPreferencesLogger;
|
import com.android.settings.core.instrumentation.SharedPreferencesLogger;
|
||||||
import com.android.settings.dashboard.DashboardFeatureProvider;
|
import com.android.settings.dashboard.DashboardFeatureProvider;
|
||||||
import com.android.settings.dashboard.DashboardSummary;
|
import com.android.settings.dashboard.DashboardSummary;
|
||||||
|
import com.android.settings.development.DevelopmentSettings;
|
||||||
import com.android.settings.enterprise.EnterprisePrivacySettings;
|
import com.android.settings.enterprise.EnterprisePrivacySettings;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.search.DynamicIndexableContentMonitor;
|
import com.android.settings.search.DynamicIndexableContentMonitor;
|
||||||
|
@@ -750,30 +750,6 @@ public final class Utils extends com.android.settingslib.Utils {
|
|||||||
|| um.getUserProfiles().contains(otherUser);
|
|| um.getUserProfiles().contains(otherUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns whether or not this device is able to be OEM unlocked.
|
|
||||||
*/
|
|
||||||
static boolean isOemUnlockEnabled(Context context) {
|
|
||||||
PersistentDataBlockManager manager =(PersistentDataBlockManager)
|
|
||||||
context.getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
|
|
||||||
return manager.getOemUnlockEnabled();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allows enabling or disabling OEM unlock on this device. OEM unlocked
|
|
||||||
* devices allow users to flash other OSes to them.
|
|
||||||
*/
|
|
||||||
static void setOemUnlockEnabled(Context context, boolean enabled) {
|
|
||||||
try {
|
|
||||||
PersistentDataBlockManager manager = (PersistentDataBlockManager)
|
|
||||||
context.getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
|
|
||||||
manager.setOemUnlockEnabled(enabled);
|
|
||||||
} catch (SecurityException e) {
|
|
||||||
Log.e(TAG, "Fail to set oem unlock.", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return whether or not the user should have a SIM Cards option in Settings.
|
* Return whether or not the user should have a SIM Cards option in Settings.
|
||||||
* TODO: Change back to returning true if count is greater than one after testing.
|
* TODO: Change back to returning true if count is greater than one after testing.
|
||||||
|
@@ -22,7 +22,6 @@ import com.android.settings.ChooseLockPassword;
|
|||||||
import com.android.settings.ChooseLockPattern;
|
import com.android.settings.ChooseLockPattern;
|
||||||
import com.android.settings.CryptKeeperSettings;
|
import com.android.settings.CryptKeeperSettings;
|
||||||
import com.android.settings.DateTimeSettings;
|
import com.android.settings.DateTimeSettings;
|
||||||
import com.android.settings.DevelopmentSettings;
|
|
||||||
import com.android.settings.DeviceAdminSettings;
|
import com.android.settings.DeviceAdminSettings;
|
||||||
import com.android.settings.DeviceInfoSettings;
|
import com.android.settings.DeviceInfoSettings;
|
||||||
import com.android.settings.DisplaySettings;
|
import com.android.settings.DisplaySettings;
|
||||||
@@ -65,6 +64,7 @@ import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
|
|||||||
import com.android.settings.dashboard.SupportFragment;
|
import com.android.settings.dashboard.SupportFragment;
|
||||||
import com.android.settings.datausage.DataUsageSummary;
|
import com.android.settings.datausage.DataUsageSummary;
|
||||||
import com.android.settings.deletionhelper.AutomaticStorageManagerSettings;
|
import com.android.settings.deletionhelper.AutomaticStorageManagerSettings;
|
||||||
|
import com.android.settings.development.DevelopmentSettings;
|
||||||
import com.android.settings.deviceinfo.ImeiInformation;
|
import com.android.settings.deviceinfo.ImeiInformation;
|
||||||
import com.android.settings.deviceinfo.PrivateVolumeForget;
|
import com.android.settings.deviceinfo.PrivateVolumeForget;
|
||||||
import com.android.settings.deviceinfo.PrivateVolumeSettings;
|
import com.android.settings.deviceinfo.PrivateVolumeSettings;
|
||||||
|
@@ -18,7 +18,6 @@ package com.android.settings.dashboard;
|
|||||||
|
|
||||||
import android.util.ArrayMap;
|
import android.util.ArrayMap;
|
||||||
|
|
||||||
import com.android.settings.DevelopmentSettings;
|
|
||||||
import com.android.settings.DisplaySettings;
|
import com.android.settings.DisplaySettings;
|
||||||
import com.android.settings.SecuritySettings;
|
import com.android.settings.SecuritySettings;
|
||||||
import com.android.settings.accounts.AccountDetailDashboardFragment;
|
import com.android.settings.accounts.AccountDetailDashboardFragment;
|
||||||
@@ -26,6 +25,7 @@ import com.android.settings.accounts.UserAndAccountDashboardFragment;
|
|||||||
import com.android.settings.applications.AdvancedAppSettings;
|
import com.android.settings.applications.AdvancedAppSettings;
|
||||||
import com.android.settings.applications.AppAndNotificationDashboardFragment;
|
import com.android.settings.applications.AppAndNotificationDashboardFragment;
|
||||||
import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
|
import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
|
||||||
|
import com.android.settings.development.DevelopmentSettings;
|
||||||
import com.android.settings.deviceinfo.StorageDashboardFragment;
|
import com.android.settings.deviceinfo.StorageDashboardFragment;
|
||||||
import com.android.settings.fuelgauge.PowerUsageSummary;
|
import com.android.settings.fuelgauge.PowerUsageSummary;
|
||||||
import com.android.settings.language.LanguageAndInputSettings;
|
import com.android.settings.language.LanguageAndInputSettings;
|
||||||
|
@@ -13,7 +13,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.android.settings;
|
package com.android.settings.development;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
@@ -25,6 +25,8 @@ import android.support.v14.preference.SwitchPreference;
|
|||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.Display;
|
import android.view.Display;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class ColorModePreference extends SwitchPreference implements DisplayListener {
|
public class ColorModePreference extends SwitchPreference implements DisplayListener {
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings;
|
package com.android.settings.development;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
@@ -55,7 +55,6 @@ import android.os.RemoteException;
|
|||||||
import android.os.ServiceManager;
|
import android.os.ServiceManager;
|
||||||
import android.os.StrictMode;
|
import android.os.StrictMode;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
import android.os.UserHandle;
|
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.os.storage.IStorageManager;
|
import android.os.storage.IStorageManager;
|
||||||
import android.provider.SearchIndexableResource;
|
import android.provider.SearchIndexableResource;
|
||||||
@@ -84,11 +83,12 @@ import android.widget.Toast;
|
|||||||
|
|
||||||
import com.android.internal.app.LocalePicker;
|
import com.android.internal.app.LocalePicker;
|
||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
|
import com.android.settings.ChooseLockSettingsHelper;
|
||||||
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.RestrictedSettingsFragment;
|
||||||
|
import com.android.settings.SettingsActivity;
|
||||||
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.dashboard.DashboardFeatureProvider;
|
import com.android.settings.dashboard.DashboardFeatureProvider;
|
||||||
import com.android.settings.development.AppPicker;
|
|
||||||
import com.android.settings.development.BugReportInPowerPreferenceController;
|
|
||||||
import com.android.settings.development.BugReportPreferenceController;
|
|
||||||
import com.android.settings.development.TelephonyMonitorPreferenceController;
|
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settings.search.Indexable;
|
import com.android.settings.search.Indexable;
|
||||||
@@ -1082,12 +1082,13 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean enableOemUnlockPreference() {
|
private boolean enableOemUnlockPreference() {
|
||||||
return !isBootloaderUnlocked() && isOemUnlockAllowed();
|
return !isBootloaderUnlocked() && OemUnlockUtils.isOemUnlockAllowed(mUm);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateOemUnlockOptions() {
|
private void updateOemUnlockOptions() {
|
||||||
if (mEnableOemUnlock != null) {
|
if (mEnableOemUnlock != null) {
|
||||||
updateSwitchPreference(mEnableOemUnlock, Utils.isOemUnlockEnabled(getActivity()));
|
updateSwitchPreference(mEnableOemUnlock,
|
||||||
|
OemUnlockUtils.isOemUnlockEnabled(getActivity()));
|
||||||
updateOemUnlockSettingDescription();
|
updateOemUnlockSettingDescription();
|
||||||
// Showing mEnableOemUnlock preference as device has persistent data block.
|
// Showing mEnableOemUnlock preference as device has persistent data block.
|
||||||
mEnableOemUnlock.setDisabledByAdmin(null);
|
mEnableOemUnlock.setDisabledByAdmin(null);
|
||||||
@@ -2297,7 +2298,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
|
|||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
if (which == DialogInterface.BUTTON_POSITIVE) {
|
if (which == DialogInterface.BUTTON_POSITIVE) {
|
||||||
Utils.setOemUnlockEnabled(getActivity(), true);
|
OemUnlockUtils.setOemUnlockEnabled(getActivity(), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -2369,7 +2370,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
|
|||||||
if (mEnableOemUnlock.isChecked()) {
|
if (mEnableOemUnlock.isChecked()) {
|
||||||
confirmEnableOemUnlock();
|
confirmEnableOemUnlock();
|
||||||
} else {
|
} else {
|
||||||
Utils.setOemUnlockEnabled(getActivity(), false);
|
OemUnlockUtils.setOemUnlockEnabled(getActivity(), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -2439,7 +2440,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
|
|||||||
confirmEnableOemUnlock();
|
confirmEnableOemUnlock();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Utils.setOemUnlockEnabled(getActivity(), false);
|
OemUnlockUtils.setOemUnlockEnabled(getActivity(), false);
|
||||||
}
|
}
|
||||||
} else if (preference == mMockLocationAppPref) {
|
} else if (preference == mMockLocationAppPref) {
|
||||||
Intent intent = new Intent(getActivity(), AppPicker.class);
|
Intent intent = new Intent(getActivity(), AppPicker.class);
|
||||||
@@ -2807,7 +2808,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
|
|||||||
oemUnlockSummary = R.string.oem_unlock_enable_disabled_summary_bootloader_unlocked;
|
oemUnlockSummary = R.string.oem_unlock_enable_disabled_summary_bootloader_unlocked;
|
||||||
} else if (isSimLockedDevice()) {
|
} else if (isSimLockedDevice()) {
|
||||||
oemUnlockSummary = R.string.oem_unlock_enable_disabled_summary_sim_locked_device;
|
oemUnlockSummary = R.string.oem_unlock_enable_disabled_summary_sim_locked_device;
|
||||||
} else if (!isOemUnlockAllowed()) {
|
} else if (!OemUnlockUtils.isOemUnlockAllowed(mUm)) {
|
||||||
// If the device isn't SIM-locked but OEM unlock is disabled by the system via the
|
// If the device isn't SIM-locked but OEM unlock is disabled by the system via the
|
||||||
// user restriction, this means either some other carrier restriction is in place or
|
// user restriction, this means either some other carrier restriction is in place or
|
||||||
// the device hasn't been able to confirm which restrictions (SIM-lock or otherwise)
|
// the device hasn't been able to confirm which restrictions (SIM-lock or otherwise)
|
||||||
@@ -2842,14 +2843,5 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
|
|||||||
return flashLockState == PersistentDataBlockManager.FLASH_LOCK_UNLOCKED;
|
return flashLockState == PersistentDataBlockManager.FLASH_LOCK_UNLOCKED;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns {@code true} if OEM unlock is disallowed by user restriction
|
|
||||||
* {@link UserManager#DISALLOW_FACTORY_RESET} or {@link UserManager#DISALLOW_OEM_UNLOCK}.
|
|
||||||
* Otherwise, returns {@code false}.
|
|
||||||
*/
|
|
||||||
private boolean isOemUnlockAllowed() {
|
|
||||||
UserHandle userHandle = UserHandle.of(UserHandle.myUserId());
|
|
||||||
return !(mUm.hasBaseUserRestriction(UserManager.DISALLOW_OEM_UNLOCK, userHandle)
|
|
||||||
|| mUm.hasBaseUserRestriction(UserManager.DISALLOW_FACTORY_RESET, userHandle));
|
|
||||||
}
|
|
||||||
}
|
}
|
61
src/com/android/settings/development/OemUnlockUtils.java
Normal file
61
src/com/android/settings/development/OemUnlockUtils.java
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
/*
|
||||||
|
* 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 android.content.Context;
|
||||||
|
import android.os.UserHandle;
|
||||||
|
import android.os.UserManager;
|
||||||
|
import android.service.persistentdata.PersistentDataBlockManager;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
public class OemUnlockUtils {
|
||||||
|
private static final String TAG = "OemUnlockUtils";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether or not this device is able to be OEM unlocked.
|
||||||
|
*/
|
||||||
|
static boolean isOemUnlockEnabled(Context context) {
|
||||||
|
PersistentDataBlockManager manager = (PersistentDataBlockManager)
|
||||||
|
context.getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
|
||||||
|
return manager.getOemUnlockEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allows enabling or disabling OEM unlock on this device. OEM unlocked
|
||||||
|
* devices allow users to flash other OSes to them.
|
||||||
|
*/
|
||||||
|
static void setOemUnlockEnabled(Context context, boolean enabled) {
|
||||||
|
try {
|
||||||
|
PersistentDataBlockManager manager = (PersistentDataBlockManager)
|
||||||
|
context.getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
|
||||||
|
manager.setOemUnlockEnabled(enabled);
|
||||||
|
} catch (SecurityException e) {
|
||||||
|
Log.e(TAG, "Fail to set oem unlock.", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns {@code true} if OEM unlock is disallowed by user restriction
|
||||||
|
* {@link UserManager#DISALLOW_FACTORY_RESET} or {@link UserManager#DISALLOW_OEM_UNLOCK}.
|
||||||
|
* Otherwise, returns {@code false}.
|
||||||
|
*/
|
||||||
|
static boolean isOemUnlockAllowed(UserManager um) {
|
||||||
|
final UserHandle userHandle = UserHandle.of(UserHandle.myUserId());
|
||||||
|
return !(um.hasBaseUserRestriction(UserManager.DISALLOW_OEM_UNLOCK, userHandle)
|
||||||
|
|| um.hasBaseUserRestriction(UserManager.DISALLOW_FACTORY_RESET, userHandle));
|
||||||
|
}
|
||||||
|
}
|
@@ -31,7 +31,6 @@ import android.widget.Toast;
|
|||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.ChooseLockSettingsHelper;
|
import com.android.settings.ChooseLockSettingsHelper;
|
||||||
import com.android.settings.DevelopmentSettings;
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.core.PreferenceController;
|
import com.android.settings.core.PreferenceController;
|
||||||
@@ -39,6 +38,7 @@ import com.android.settings.core.instrumentation.MetricsFeatureProvider;
|
|||||||
import com.android.settings.core.lifecycle.Lifecycle;
|
import com.android.settings.core.lifecycle.Lifecycle;
|
||||||
import com.android.settings.core.lifecycle.LifecycleObserver;
|
import com.android.settings.core.lifecycle.LifecycleObserver;
|
||||||
import com.android.settings.core.lifecycle.events.OnResume;
|
import com.android.settings.core.lifecycle.events.OnResume;
|
||||||
|
import com.android.settings.development.DevelopmentSettings;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.search2.SearchFeatureProvider;
|
import com.android.settings.search2.SearchFeatureProvider;
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
|
@@ -27,7 +27,7 @@ import android.view.View;
|
|||||||
import android.view.WindowManagerGlobal;
|
import android.view.WindowManagerGlobal;
|
||||||
|
|
||||||
import com.android.internal.app.LocalePicker;
|
import com.android.internal.app.LocalePicker;
|
||||||
import com.android.settings.DevelopmentSettings;
|
import com.android.settings.development.DevelopmentSettings;
|
||||||
|
|
||||||
public abstract class DevelopmentTiles extends TileService {
|
public abstract class DevelopmentTiles extends TileService {
|
||||||
|
|
||||||
|
@@ -22,7 +22,6 @@ import android.support.annotation.VisibleForTesting;
|
|||||||
import android.support.annotation.XmlRes;
|
import android.support.annotation.XmlRes;
|
||||||
|
|
||||||
import com.android.settings.DateTimeSettings;
|
import com.android.settings.DateTimeSettings;
|
||||||
import com.android.settings.DevelopmentSettings;
|
|
||||||
import com.android.settings.DeviceInfoSettings;
|
import com.android.settings.DeviceInfoSettings;
|
||||||
import com.android.settings.DisplaySettings;
|
import com.android.settings.DisplaySettings;
|
||||||
import com.android.settings.EncryptionAndCredential;
|
import com.android.settings.EncryptionAndCredential;
|
||||||
@@ -42,6 +41,7 @@ import com.android.settings.bluetooth.BluetoothSettings;
|
|||||||
import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
|
import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
|
||||||
import com.android.settings.datausage.DataUsageMeteredSettings;
|
import com.android.settings.datausage.DataUsageMeteredSettings;
|
||||||
import com.android.settings.datausage.DataUsageSummary;
|
import com.android.settings.datausage.DataUsageSummary;
|
||||||
|
import com.android.settings.development.DevelopmentSettings;
|
||||||
import com.android.settings.deviceinfo.StorageDashboardFragment;
|
import com.android.settings.deviceinfo.StorageDashboardFragment;
|
||||||
import com.android.settings.deviceinfo.StorageSettings;
|
import com.android.settings.deviceinfo.StorageSettings;
|
||||||
import com.android.settings.display.ScreenZoomSettings;
|
import com.android.settings.display.ScreenZoomSettings;
|
||||||
@@ -165,7 +165,8 @@ public final class SearchIndexableResources {
|
|||||||
R.drawable.ic_settings_notifications);
|
R.drawable.ic_settings_notifications);
|
||||||
addIndex(SystemDashboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
|
addIndex(SystemDashboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
|
||||||
addIndex(StorageDashboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_storage);
|
addIndex(StorageDashboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_storage);
|
||||||
addIndex(ConnectedDeviceDashboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_devices_other);
|
addIndex(ConnectedDeviceDashboardFragment.class, NO_DATA_RES_ID,
|
||||||
|
R.drawable.ic_devices_other);
|
||||||
addIndex(EnterprisePrivacySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
|
addIndex(EnterprisePrivacySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
|
||||||
addIndex(PaymentSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_nfc_payment);
|
addIndex(PaymentSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_nfc_payment);
|
||||||
addIndex(
|
addIndex(
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings;
|
package com.android.settings.development;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -22,6 +22,8 @@ import android.support.v7.preference.Preference;
|
|||||||
import android.support.v7.preference.PreferenceManager;
|
import android.support.v7.preference.PreferenceManager;
|
||||||
import android.support.v7.preference.PreferenceScreen;
|
import android.support.v7.preference.PreferenceScreen;
|
||||||
|
|
||||||
|
import com.android.settings.SettingsRobolectricTestRunner;
|
||||||
|
import com.android.settings.TestConfig;
|
||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
import com.android.settingslib.drawer.CategoryKey;
|
import com.android.settingslib.drawer.CategoryKey;
|
||||||
|
|
@@ -26,7 +26,7 @@ import android.support.v7.preference.Preference;
|
|||||||
import android.support.v7.preference.PreferenceScreen;
|
import android.support.v7.preference.PreferenceScreen;
|
||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto;
|
import com.android.internal.logging.nano.MetricsProto;
|
||||||
import com.android.settings.DevelopmentSettings;
|
import com.android.settings.development.DevelopmentSettings;
|
||||||
import com.android.settings.SettingsRobolectricTestRunner;
|
import com.android.settings.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.TestConfig;
|
import com.android.settings.TestConfig;
|
||||||
import com.android.settings.core.lifecycle.Lifecycle;
|
import com.android.settings.core.lifecycle.Lifecycle;
|
||||||
@@ -48,7 +48,6 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
import static org.mockito.Answers.RETURNS_DEEP_STUBS;
|
import static org.mockito.Answers.RETURNS_DEEP_STUBS;
|
||||||
import static org.mockito.Matchers.any;
|
import static org.mockito.Matchers.any;
|
||||||
import static org.mockito.Matchers.eq;
|
import static org.mockito.Matchers.eq;
|
||||||
import static org.mockito.Mockito.doReturn;
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
|
Reference in New Issue
Block a user