Merge changes Ib59efe76,I316e3649

* changes:
  Move RadioButtonPreference to generic widget package
  Another attempt fix for account preference screen.
This commit is contained in:
Fan Zhang
2017-01-15 17:46:05 +00:00
committed by Android (Google) Code Review
5 changed files with 16 additions and 10 deletions

View File

@@ -17,15 +17,15 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/location_mode_screen_title"> android:title="@string/location_mode_screen_title">
<com.android.settings.location.RadioButtonPreference <com.android.settings.widget.RadioButtonPreference
android:key="high_accuracy" android:key="high_accuracy"
android:title="@string/location_mode_high_accuracy_title" android:title="@string/location_mode_high_accuracy_title"
android:summary="@string/location_mode_high_accuracy_description" /> android:summary="@string/location_mode_high_accuracy_description" />
<com.android.settings.location.RadioButtonPreference <com.android.settings.widget.RadioButtonPreference
android:key="battery_saving" android:key="battery_saving"
android:title="@string/location_mode_battery_saving_title" android:title="@string/location_mode_battery_saving_title"
android:summary="@string/location_mode_battery_saving_description" /> android:summary="@string/location_mode_battery_saving_description" />
<com.android.settings.location.RadioButtonPreference <com.android.settings.widget.RadioButtonPreference
android:key="sensors_only" android:key="sensors_only"
android:title="@string/location_mode_sensors_only_title" android:title="@string/location_mode_sensors_only_title"
android:summary="@string/location_mode_sensors_only_description" /> android:summary="@string/location_mode_sensors_only_description" />

View File

@@ -63,7 +63,6 @@ import java.util.List;
import static android.content.Intent.EXTRA_USER; import static android.content.Intent.EXTRA_USER;
import static android.os.UserManager.DISALLOW_MODIFY_ACCOUNTS; import static android.os.UserManager.DISALLOW_MODIFY_ACCOUNTS;
import static android.os.UserManager.DISALLOW_REMOVE_MANAGED_PROFILE; import static android.os.UserManager.DISALLOW_REMOVE_MANAGED_PROFILE;
import static android.os.UserManager.DISALLOW_REMOVE_USER;
import static android.provider.Settings.EXTRA_AUTHORITIES; import static android.provider.Settings.EXTRA_AUTHORITIES;
public class AccountPreferenceController extends PreferenceController public class AccountPreferenceController extends PreferenceController
@@ -405,7 +404,8 @@ public class AccountPreferenceController extends PreferenceController
} }
private void updateAccountTypes(ProfileData profileData) { private void updateAccountTypes(ProfileData profileData) {
if (mParent.getPreferenceManager() == null) { if (mParent.getPreferenceManager() == null
|| profileData.preferenceGroup.getPreferenceManager() == null) {
// This could happen if activity is finishing // This could happen if activity is finishing
return; return;
} }

View File

@@ -21,6 +21,7 @@ import android.support.v7.preference.PreferenceScreen;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.widget.RadioButtonPreference;
/** /**
* A page with 3 radio buttons to choose the location mode. * A page with 3 radio buttons to choose the location mode.

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2013 The Android Open Source Project * Copyright (C) 2017 The Android Open Source Project
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -14,9 +14,10 @@
* limitations under the License. * limitations under the License.
*/ */
package com.android.settings.location; package com.android.settings.widget;
import android.content.Context; import android.content.Context;
import android.support.v4.content.res.TypedArrayUtils;
import android.support.v7.preference.CheckBoxPreference; import android.support.v7.preference.CheckBoxPreference;
import android.support.v7.preference.PreferenceViewHolder; import android.support.v7.preference.PreferenceViewHolder;
import android.util.AttributeSet; import android.util.AttributeSet;
@@ -36,7 +37,7 @@ import com.android.settings.R;
*/ */
public class RadioButtonPreference extends CheckBoxPreference { public class RadioButtonPreference extends CheckBoxPreference {
public interface OnClickListener { public interface OnClickListener {
public abstract void onRadioButtonClicked(RadioButtonPreference emiter); void onRadioButtonClicked(RadioButtonPreference emiter);
} }
private OnClickListener mListener = null; private OnClickListener mListener = null;
@@ -47,14 +48,16 @@ public class RadioButtonPreference extends CheckBoxPreference {
} }
public RadioButtonPreference(Context context, AttributeSet attrs) { public RadioButtonPreference(Context context, AttributeSet attrs) {
this(context, attrs, com.android.internal.R.attr.checkBoxPreferenceStyle); this(context, attrs, TypedArrayUtils.getAttr(context,
android.support.v7.preference.R.attr.preferenceStyle,
android.R.attr.preferenceStyle));
} }
public RadioButtonPreference(Context context) { public RadioButtonPreference(Context context) {
this(context, null); this(context, null);
} }
void setOnClickListener(OnClickListener listener) { public void setOnClickListener(OnClickListener listener) {
mListener = listener; mListener = listener;
} }

View File

@@ -25,6 +25,7 @@ import android.os.UserManager;
import android.support.v14.preference.PreferenceFragment; import android.support.v14.preference.PreferenceFragment;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup; import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceManager;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import com.android.settings.AccessiblePreferenceCategory; import com.android.settings.AccessiblePreferenceCategory;
@@ -324,6 +325,7 @@ public class AccountPreferenceControllerTest {
when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(authDescs); when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(authDescs);
AccessiblePreferenceCategory preferenceGroup = mock(AccessiblePreferenceCategory.class); AccessiblePreferenceCategory preferenceGroup = mock(AccessiblePreferenceCategory.class);
when(preferenceGroup.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
when(mAccountHelper.createAccessiblePreferenceCategory(any(Context.class))).thenReturn( when(mAccountHelper.createAccessiblePreferenceCategory(any(Context.class))).thenReturn(
preferenceGroup); preferenceGroup);