Merge "Remove theme setting DO NOT MERGE" into mnc-dev
diff --git a/res/drawable-xxxhdpi/shortcut_base.png b/res/drawable-xxxhdpi/shortcut_base.png
index cd509df..c5fcae7 100644
--- a/res/drawable-xxxhdpi/shortcut_base.png
+++ b/res/drawable-xxxhdpi/shortcut_base.png
Binary files differ
diff --git a/res/layout/bluetooth_pin_confirm.xml b/res/layout/bluetooth_pin_confirm.xml
index 08f5d9f..2968b38 100644
--- a/res/layout/bluetooth_pin_confirm.xml
+++ b/res/layout/bluetooth_pin_confirm.xml
@@ -86,16 +86,15 @@
android:textColor="@*android:color/secondary_text_material_light"
android:visibility="gone" />
- <TextView
- android:id="@+id/phonebook_sharing_message"
+ <CheckBox
+ android:id="@+id/phonebook_sharing_message_confirm_pin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/bluetooth_dialog_padding"
android:layout_marginEnd="@dimen/bluetooth_dialog_padding"
- android:layout_marginBottom="@dimen/bluetooth_dialog_padding"
android:gravity="center_vertical"
- android:text="@string/bluetooth_pairing_will_share_phonebook"
- android:textSize="12sp" />
+ android:text="@string/bluetooth_pairing_shares_phonebook"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
diff --git a/res/layout/bluetooth_pin_entry.xml b/res/layout/bluetooth_pin_entry.xml
index 6f50cd4..aa9f187 100644
--- a/res/layout/bluetooth_pin_entry.xml
+++ b/res/layout/bluetooth_pin_entry.xml
@@ -87,16 +87,15 @@
android:textAppearance="@android:style/TextAppearance.Material.Subhead"
android:textColor="@*android:color/secondary_text_material_light"/>
- <TextView
- android:id="@+id/phonebook_sharing_message"
+ <CheckBox
+ android:id="@+id/phonebook_sharing_message_entry_pin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/bluetooth_dialog_padding"
android:layout_marginEnd="@dimen/bluetooth_dialog_padding"
- android:layout_marginBottom="@dimen/bluetooth_dialog_padding"
android:gravity="center_vertical"
- android:text="@string/bluetooth_pairing_will_share_phonebook"
- android:textSize="12sp" />
+ android:text="@string/bluetooth_pairing_shares_phonebook"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
diff --git a/res/layout/shortcut_badge.xml b/res/layout/shortcut_badge.xml
index 117b386..28f8652 100644
--- a/res/layout/shortcut_badge.xml
+++ b/res/layout/shortcut_badge.xml
@@ -28,6 +28,7 @@
android:id="@android:id/icon"
android:layout_width="@dimen/shortcut_size"
android:layout_height="@dimen/shortcut_size"
+ android:tint="@color/icon_accent"
android:padding="12dp"
android:scaleType="fitXY" />
diff --git a/res/values/colors.xml b/res/values/colors.xml
index c874970..0395989 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -100,4 +100,7 @@
<color name="zen_rule_name_warning">@color/system_warning_color</color>
+ <!-- Accent color that matches the settings launcher icon -->
+ <color name="icon_accent">#ffabffec</color>
+
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 789224c..3d74e5d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1155,8 +1155,6 @@
<!-- Message when bluetooth dialog when passkey or pin needs to be displayed. -->
<string name="bluetooth_display_passkey_pin_msg">To pair with:<xliff:g id="bold1"><br><b></xliff:g><xliff:g id="device_name">%1$s</xliff:g><xliff:g id="end_bold1"></b><br><br></xliff:g>Type on it:<xliff:g id="bold2"><br><b></xliff:g><xliff:g id="passkey">%2$s</xliff:g><xliff:g id="end_bold2"></b></xliff:g>, then press Return or Enter.</string>
- <!-- Message in pairing dialogs. [CHAR LIMIT=NONE] -->
- <string name="bluetooth_pairing_will_share_phonebook">Pairing grants access to your contacts and call history when connected.</string>
<!-- Checkbox message in pairing dialogs. [CHAR LIMIT=NONE] -->
<string name="bluetooth_pairing_shares_phonebook">Grant access to your contacts and call history when connected.</string>
diff --git a/src/com/android/settings/CreateShortcut.java b/src/com/android/settings/CreateShortcut.java
index 637bc6f..3c1bc6f0 100644
--- a/src/com/android/settings/CreateShortcut.java
+++ b/src/com/android/settings/CreateShortcut.java
@@ -73,7 +73,7 @@
}
private Bitmap createIcon(int resource) {
- Context context = new ContextThemeWrapper(this, android.R.style.Theme_Material_Light);
+ Context context = new ContextThemeWrapper(this, android.R.style.Theme_Material);
View view = LayoutInflater.from(context).inflate(R.layout.shortcut_badge, null);
((ImageView) view.findViewById(android.R.id.icon)).setImageResource(resource);
diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java
index a4ee9616..4b3a7f7 100644
--- a/src/com/android/settings/DataUsageSummary.java
+++ b/src/com/android/settings/DataUsageSummary.java
@@ -588,7 +588,7 @@
final MenuItem help = menu.findItem(R.id.data_usage_menu_help);
String helpUrl;
if (!TextUtils.isEmpty(helpUrl = getResources().getString(R.string.help_url_data_usage))) {
- HelpUtils.prepareHelpMenuItem(context, help, helpUrl, getClass().getName());
+ HelpUtils.prepareHelpMenuItem(getActivity(), help, helpUrl, getClass().getName());
} else {
help.setVisible(false);
}
diff --git a/src/com/android/settings/HelpUtils.java b/src/com/android/settings/HelpUtils.java
index 0e79c6d..3c36edb 100644
--- a/src/com/android/settings/HelpUtils.java
+++ b/src/com/android/settings/HelpUtils.java
@@ -16,6 +16,7 @@
package com.android.settings;
+import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -28,6 +29,7 @@
import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
+import android.view.MenuItem.OnMenuItemClickListener;
import java.net.URISyntaxException;
import java.util.Locale;
@@ -65,16 +67,16 @@
/** Static helper that is not instantiable*/
private HelpUtils() { }
- public static boolean prepareHelpMenuItem(Context context, Menu menu, String helpUri,
+ public static boolean prepareHelpMenuItem(Activity activity, Menu menu, String helpUri,
String backupContext) {
MenuItem helpItem = menu.add(0, MENU_HELP, 0, R.string.help_label);
- return prepareHelpMenuItem(context, helpItem, helpUri, backupContext);
+ return prepareHelpMenuItem(activity, helpItem, helpUri, backupContext);
}
- public static boolean prepareHelpMenuItem(Context context, Menu menu, int helpUriResource,
+ public static boolean prepareHelpMenuItem(Activity activity, Menu menu, int helpUriResource,
String backupContext) {
MenuItem helpItem = menu.add(0, MENU_HELP, 0, R.string.help_label);
- return prepareHelpMenuItem(context, helpItem, context.getString(helpUriResource),
+ return prepareHelpMenuItem(activity, helpItem, activity.getString(helpUriResource),
backupContext);
}
@@ -86,7 +88,7 @@
*
* @return returns whether the help menu item has been made visible.
*/
- public static boolean prepareHelpMenuItem(Context context, MenuItem helpMenuItem,
+ public static boolean prepareHelpMenuItem(final Activity activity, MenuItem helpMenuItem,
String helpUriString, String backupContext) {
if (TextUtils.isEmpty(helpUriString)) {
// The help url string is empty or null, so set the help menu item to be invisible.
@@ -95,12 +97,18 @@
// return that the help menu item is not visible (i.e. false)
return false;
} else {
- Intent intent = getHelpIntent(context, helpUriString, backupContext);
+ final Intent intent = getHelpIntent(activity, helpUriString, backupContext);
// Set the intent to the help menu item, show the help menu item in the overflow
// menu, and make it visible.
if (intent != null) {
- helpMenuItem.setIntent(intent);
+ helpMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ activity.startActivityForResult(intent, 0);
+ return true;
+ }
+ });
helpMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
helpMenuItem.setVisible(true);
} else {
diff --git a/src/com/android/settings/applications/AppStatePowerBridge.java b/src/com/android/settings/applications/AppStatePowerBridge.java
index 3b1707f..069c901 100644
--- a/src/com/android/settings/applications/AppStatePowerBridge.java
+++ b/src/com/android/settings/applications/AppStatePowerBridge.java
@@ -19,6 +19,7 @@
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
import com.android.settingslib.applications.ApplicationsState.AppFilter;
+import com.android.settingslib.applications.ApplicationsState.CompoundFilter;
import java.util.ArrayList;
@@ -54,7 +55,8 @@
public boolean isSystemHighPower;
}
- public static final AppFilter FILTER_POWER_WHITELISTED = new AppFilter() {
+ public static final AppFilter FILTER_POWER_WHITELISTED = new CompoundFilter(
+ ApplicationsState.FILTER_PERSONAL, new AppFilter() {
@Override
public void init() {
}
@@ -63,17 +65,5 @@
public boolean filterApp(AppEntry info) {
return info.extraInfo == Boolean.TRUE;
}
- };
-
- public static final AppFilter FILTER_POWER_NOT_WHITELISTED = new AppFilter() {
- @Override
- public void init() {
- }
-
- @Override
- public boolean filterApp(AppEntry info) {
- return info.extraInfo == Boolean.FALSE;
- }
- };
-
+ });
}
diff --git a/src/com/android/settings/applications/DefaultPhonePreference.java b/src/com/android/settings/applications/DefaultPhonePreference.java
index 657391f..3d9131e 100644
--- a/src/com/android/settings/applications/DefaultPhonePreference.java
+++ b/src/com/android/settings/applications/DefaultPhonePreference.java
@@ -19,6 +19,7 @@
import android.content.Context;
import android.os.UserManager;
import android.telecom.DefaultDialerManager;
+import android.telecom.TelecomManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.AttributeSet;
@@ -29,10 +30,12 @@
import java.util.Objects;
public class DefaultPhonePreference extends AppListPreference {
+ private final Context mContext;
public DefaultPhonePreference(Context context, AttributeSet attrs) {
super(context, attrs);
+ mContext = context.getApplicationContext();
if (isAvailable(context)) {
loadDialerApps();
}
@@ -41,7 +44,7 @@
@Override
protected boolean persistString(String value) {
if (!TextUtils.isEmpty(value) && !Objects.equals(value, getDefaultPackage())) {
- DefaultDialerManager.setDefaultDialerApplication(getContext(), value);
+ TelecomManager.from(mContext).setDefaultDialer(value);
}
setSummary(getEntry());
return true;
diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index 9afcff8..c1566d0 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -112,21 +112,23 @@
// Filter options used for displayed list of applications
// The order which they appear is the order they will show when spinner is present.
public static final int FILTER_APPS_POWER_WHITELIST = 0;
- public static final int FILTER_APPS_ALL = 1;
- public static final int FILTER_APPS_ENABLED = 2;
- public static final int FILTER_APPS_DISABLED = 3;
- public static final int FILTER_APPS_BLOCKED = 4;
- public static final int FILTER_APPS_PRIORITY = 5;
- public static final int FILTER_APPS_NO_PEEKING = 6;
- public static final int FILTER_APPS_SENSITIVE = 7;
- public static final int FILTER_APPS_PERSONAL = 8;
- public static final int FILTER_APPS_WORK = 9;
- public static final int FILTER_APPS_WITH_DOMAIN_URLS = 10;
- public static final int FILTER_APPS_USAGE_ACCESS = 11;
+ public static final int FILTER_APPS_POWER_WHITELIST_ALL = 1;
+ public static final int FILTER_APPS_ALL = 2;
+ public static final int FILTER_APPS_ENABLED = 3;
+ public static final int FILTER_APPS_DISABLED = 4;
+ public static final int FILTER_APPS_BLOCKED = 5;
+ public static final int FILTER_APPS_PRIORITY = 6;
+ public static final int FILTER_APPS_NO_PEEKING = 7;
+ public static final int FILTER_APPS_SENSITIVE = 8;
+ public static final int FILTER_APPS_PERSONAL = 9;
+ public static final int FILTER_APPS_WORK = 10;
+ public static final int FILTER_APPS_WITH_DOMAIN_URLS = 11;
+ public static final int FILTER_APPS_USAGE_ACCESS = 12;
// This is the string labels for the filter modes above, the order must be kept in sync.
public static final int[] FILTER_LABELS = new int[] {
- R.string.high_power_filter_on, // High power whitelist, on
+ R.string.high_power_filter_on, // High power whitelist, on
+ R.string.filter_all_apps, // All apps label, but personal filter (for high power);
R.string.filter_all_apps, // All apps
R.string.filter_enabled_apps, // Enabled
R.string.filter_apps_disabled, // Disabled
@@ -143,6 +145,7 @@
// be kept in sync.
public static final AppFilter[] FILTERS = new AppFilter[] {
AppStatePowerBridge.FILTER_POWER_WHITELISTED, // High power whitelist, on
+ ApplicationsState.FILTER_PERSONAL, // All apps label, but personal filter
ApplicationsState.FILTER_EVERYTHING, // All apps
ApplicationsState.FILTER_ALL_ENABLED, // Enabled
ApplicationsState.FILTER_DISABLED, // Disabled
@@ -333,7 +336,7 @@
mFilterAdapter.enableFilter(FILTER_APPS_NO_PEEKING);
}
if (mListType == LIST_TYPE_HIGH_POWER) {
- mFilterAdapter.enableFilter(FILTER_APPS_ALL);
+ mFilterAdapter.enableFilter(FILTER_APPS_POWER_WHITELIST_ALL);
}
if (mListType == LIST_TYPE_STORAGE) {
mApplications.setOverrideFilter(new VolumeFilter(mVolumeUuid));
diff --git a/src/com/android/settings/applications/UsageAccessDetails.java b/src/com/android/settings/applications/UsageAccessDetails.java
index f65c4be..6d5995b 100644
--- a/src/com/android/settings/applications/UsageAccessDetails.java
+++ b/src/com/android/settings/applications/UsageAccessDetails.java
@@ -17,6 +17,7 @@
import android.app.AlertDialog;
import android.app.AppOpsManager;
+import android.app.admin.DevicePolicyManager;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.Context;
@@ -33,7 +34,6 @@
import android.util.Log;
import com.android.internal.logging.MetricsLogger;
-import com.android.settings.InstrumentedFragment;
import com.android.settings.R;
import com.android.settings.applications.AppStateUsageBridge.UsageState;
@@ -51,6 +51,7 @@
private Preference mUsagePrefs;
private Intent mSettingsIntent;
private UsageState mUsageState;
+ private DevicePolicyManager mDpm;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -59,6 +60,7 @@
Context context = getActivity();
mUsageBridge = new AppStateUsageBridge(context, mState, null);
mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
+ mDpm = context.getSystemService(DevicePolicyManager.class);
addPreferencesFromResource(R.xml.usage_access_details);
mSwitchPref = (SwitchPreference) findPreference(KEY_USAGE_SWITCH);
@@ -91,6 +93,14 @@
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference == mSwitchPref) {
if (mUsageState != null && (Boolean) newValue != mUsageState.hasAccess()) {
+ if (mUsageState.hasAccess() && mDpm.isProfileOwnerApp(mPackageName)) {
+ new AlertDialog.Builder(getContext())
+ .setIcon(com.android.internal.R.drawable.ic_dialog_alert_material)
+ .setTitle(android.R.string.dialog_alert_title)
+ .setMessage(R.string.work_profile_usage_access_warning)
+ .setPositiveButton(R.string.okay, null)
+ .show();
+ }
setHasAccess(!mUsageState.hasAccess());
refreshUi();
}
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialog.java b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
index ffe4945..29cac62 100755
--- a/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
@@ -16,6 +16,7 @@
package com.android.settings.bluetooth;
+import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -186,6 +187,24 @@
TextView messageViewContent = (TextView) view.findViewById(R.id.message_subhead);
TextView messageView2 = (TextView) view.findViewById(R.id.message_below_pin);
CheckBox alphanumericPin = (CheckBox) view.findViewById(R.id.alphanumeric_pin);
+ CheckBox contactSharing = (CheckBox) view.findViewById(
+ R.id.phonebook_sharing_message_entry_pin);
+ contactSharing.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
+ if (isChecked) {
+ mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_ALLOWED);
+ } else {
+ mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_REJECTED);
+ }
+ }
+ });
+ if (mDevice.getBluetoothClass().getDeviceClass()
+ == BluetoothClass.Device.AUDIO_VIDEO_HANDSFREE) {
+ contactSharing.setVisibility(View.VISIBLE);
+ } else {
+ contactSharing.setVisibility(View.GONE);
+ }
mPairingView = (EditText) view.findViewById(R.id.text);
mPairingView.addTextChangedListener(this);
alphanumericPin.setOnCheckedChangeListener(this);
@@ -238,6 +257,24 @@
TextView pairingViewCaption = (TextView) view.findViewById(R.id.pairing_caption);
TextView pairingViewContent = (TextView) view.findViewById(R.id.pairing_subhead);
TextView messagePairing = (TextView) view.findViewById(R.id.pairing_code_message);
+ CheckBox contactSharing = (CheckBox) view.findViewById(
+ R.id.phonebook_sharing_message_confirm_pin);
+ contactSharing.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
+ if (isChecked) {
+ mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_ALLOWED);
+ } else {
+ mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_REJECTED);
+ }
+ }
+ });
+ if (mDevice.getBluetoothClass().getDeviceClass()
+ == BluetoothClass.Device.AUDIO_VIDEO_HANDSFREE) {
+ contactSharing.setVisibility(View.VISIBLE);
+ } else {
+ contactSharing.setVisibility(View.GONE);
+ }
String messageCaption = null;
String pairingContent = null;
diff --git a/src/com/android/settings/fingerprint/FingerprintSettings.java b/src/com/android/settings/fingerprint/FingerprintSettings.java
index fce46fa..b81607b 100644
--- a/src/com/android/settings/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/fingerprint/FingerprintSettings.java
@@ -576,7 +576,7 @@
Context ctx = widget.getContext();
Intent intent = HelpUtils.getHelpIntent(ctx, getURL(), ctx.getClass().getName());
try {
- ctx.startActivity(intent);
+ ((Activity) ctx).startActivityForResult(intent, 0);
} catch (ActivityNotFoundException e) {
Log.w(FingerprintSettingsFragment.TAG,
"Actvity was not found for intent, " + intent.toString());