Merge "Clean up in-code preference controllers from accessibility"

This commit is contained in:
Mill Chen
2019-07-10 09:21:22 +00:00
committed by Android (Google) Code Review
4 changed files with 20 additions and 68 deletions

View File

@@ -40,8 +40,7 @@
android:key="tts_settings_preference" android:key="tts_settings_preference"
android:title="@string/tts_settings_title" android:title="@string/tts_settings_title"
android:fragment="com.android.settings.tts.TextToSpeechSettings" android:fragment="com.android.settings.tts.TextToSpeechSettings"
settings:controller="com.android.settings.language.TtsPreferenceController" settings:controller="com.android.settings.language.TtsPreferenceController"/>
settings:searchable="false"/>
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory <PreferenceCategory
@@ -102,7 +101,6 @@
android:persistent="false" android:persistent="false"
settings:controller="com.android.settings.accessibility.PowerButtonEndsCallPreferenceController"/> settings:controller="com.android.settings.accessibility.PowerButtonEndsCallPreferenceController"/>
<SwitchPreference <SwitchPreference
android:key="toggle_lock_screen_rotation_preference" android:key="toggle_lock_screen_rotation_preference"
android:title="@string/accelerometer_title" android:title="@string/accelerometer_title"
@@ -156,7 +154,8 @@
<Preference <Preference
android:key="hearing_aid_preference" android:key="hearing_aid_preference"
android:summary="@string/accessibility_hearingaid_not_connected_summary" android:summary="@string/accessibility_hearingaid_not_connected_summary"
android:title="@string/accessibility_hearingaid_title"/> android:title="@string/accessibility_hearingaid_title"
settings:controller="com.android.settings.accessibility.AccessibilityHearingAidPreferenceController"/>
<Preference <Preference
android:key="captioning_preference_screen" android:key="captioning_preference_screen"

View File

@@ -31,9 +31,6 @@ import android.util.Log;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.Lifecycle.Event;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -43,6 +40,9 @@ import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.SubSettingLauncher;
import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
@@ -53,7 +53,7 @@ import java.util.concurrent.FutureTask;
* Controller that shows and updates the bluetooth device name * Controller that shows and updates the bluetooth device name
*/ */
public class AccessibilityHearingAidPreferenceController extends BasePreferenceController public class AccessibilityHearingAidPreferenceController extends BasePreferenceController
implements LifecycleObserver { implements LifecycleObserver, OnStart, OnStop {
private static final String TAG = "AccessibilityHearingAidPreferenceController"; private static final String TAG = "AccessibilityHearingAidPreferenceController";
private Preference mHearingAidPreference; private Preference mHearingAidPreference;
@@ -104,8 +104,8 @@ public class AccessibilityHearingAidPreferenceController extends BasePreferenceC
return mHearingAidProfileSupported ? AVAILABLE : UNSUPPORTED_ON_DEVICE; return mHearingAidProfileSupported ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
} }
@OnLifecycleEvent(Event.ON_RESUME) @Override
public void onResume() { public void onStart() {
if (mHearingAidProfileSupported) { if (mHearingAidProfileSupported) {
IntentFilter filter = new IntentFilter(); IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothHearingAid.ACTION_CONNECTION_STATE_CHANGED); filter.addAction(BluetoothHearingAid.ACTION_CONNECTION_STATE_CHANGED);
@@ -114,8 +114,8 @@ public class AccessibilityHearingAidPreferenceController extends BasePreferenceC
} }
} }
@OnLifecycleEvent(Event.ON_PAUSE) @Override
public void onPause() { public void onStop() {
if (mHearingAidProfileSupported) { if (mHearingAidProfileSupported) {
mContext.unregisterReceiver(mHearingAidChangedReceiver); mContext.unregisterReceiver(mHearingAidChangedReceiver);
} }

View File

@@ -94,17 +94,10 @@ public class AccessibilitySettings extends DashboardFragment {
private static final String TOGGLE_LARGE_POINTER_ICON = private static final String TOGGLE_LARGE_POINTER_ICON =
"toggle_large_pointer_icon"; "toggle_large_pointer_icon";
private static final String TOGGLE_DISABLE_ANIMATIONS = "toggle_disable_animations"; private static final String TOGGLE_DISABLE_ANIMATIONS = "toggle_disable_animations";
private static final String HEARING_AID_PREFERENCE =
"hearing_aid_preference";
private static final String DISPLAY_MAGNIFICATION_PREFERENCE_SCREEN = private static final String DISPLAY_MAGNIFICATION_PREFERENCE_SCREEN =
"magnification_preference_screen"; "magnification_preference_screen";
private static final String DISPLAY_DALTONIZER_PREFERENCE_SCREEN = private static final String DISPLAY_DALTONIZER_PREFERENCE_SCREEN =
"daltonizer_preference"; "daltonizer_preference";
private static final String DARK_UI_MODE_PREFERENCE =
"dark_ui_mode_accessibility";
private static final String LIVE_CAPTION_PREFERENCE_KEY =
"live_caption";
// Extras passed to sub-fragments. // Extras passed to sub-fragments.
static final String EXTRA_PREFERENCE_KEY = "preference_key"; static final String EXTRA_PREFERENCE_KEY = "preference_key";
@@ -178,13 +171,7 @@ public class AccessibilitySettings extends DashboardFragment {
private SwitchPreference mToggleDisableAnimationsPreference; private SwitchPreference mToggleDisableAnimationsPreference;
private Preference mDisplayMagnificationPreferenceScreen; private Preference mDisplayMagnificationPreferenceScreen;
private Preference mDisplayDaltonizerPreferenceScreen; private Preference mDisplayDaltonizerPreferenceScreen;
private Preference mHearingAidPreference;
private Preference mLiveCaptionPreference;
private SwitchPreference mToggleInversionPreference; private SwitchPreference mToggleInversionPreference;
private AccessibilityHearingAidPreferenceController mHearingAidPreferenceController;
private SwitchPreference mDarkUIModePreference;
private DarkUIPreferenceController mDarkUIPreferenceController;
private LiveCaptionPreferenceController mLiveCaptionPreferenceController;
private DevicePolicyManager mDpm; private DevicePolicyManager mDpm;
@@ -236,13 +223,9 @@ public class AccessibilitySettings extends DashboardFragment {
@Override @Override
public void onAttach(Context context) { public void onAttach(Context context) {
super.onAttach(context); super.onAttach(context);
mHearingAidPreferenceController = new AccessibilityHearingAidPreferenceController use(DarkUIPreferenceController.class).setParentFragment(this);
(context, HEARING_AID_PREFERENCE); use(AccessibilityHearingAidPreferenceController.class)
mHearingAidPreferenceController.setFragmentManager(getFragmentManager()); .setFragmentManager(getFragmentManager());
getLifecycle().addObserver(mHearingAidPreferenceController);
mLiveCaptionPreferenceController = new LiveCaptionPreferenceController(context,
LIVE_CAPTION_PREFERENCE_KEY);
} }
@Override @Override
@@ -261,14 +244,6 @@ public class AccessibilitySettings extends DashboardFragment {
super.onStop(); super.onStop();
} }
@Override
public boolean onPreferenceTreeClick(Preference preference) {
if (mHearingAidPreferenceController.handlePreferenceTreeClick(preference)) {
return true;
}
return super.onPreferenceTreeClick(preference);
}
@Override @Override
protected int getPreferenceScreenResId() { protected int getPreferenceScreenResId() {
return R.xml.accessibility_settings; return R.xml.accessibility_settings;
@@ -318,27 +293,12 @@ public class AccessibilitySettings extends DashboardFragment {
mToggleDisableAnimationsPreference = mToggleDisableAnimationsPreference =
(SwitchPreference) findPreference(TOGGLE_DISABLE_ANIMATIONS); (SwitchPreference) findPreference(TOGGLE_DISABLE_ANIMATIONS);
// Hearing Aid.
mHearingAidPreference = findPreference(HEARING_AID_PREFERENCE);
mHearingAidPreferenceController.displayPreference(getPreferenceScreen());
// Live caption
mLiveCaptionPreference = findPreference(LIVE_CAPTION_PREFERENCE_KEY);
mLiveCaptionPreferenceController.displayPreference(getPreferenceScreen());
// Display magnification. // Display magnification.
mDisplayMagnificationPreferenceScreen = findPreference( mDisplayMagnificationPreferenceScreen = findPreference(
DISPLAY_MAGNIFICATION_PREFERENCE_SCREEN); DISPLAY_MAGNIFICATION_PREFERENCE_SCREEN);
// Display color adjustments. // Display color adjustments.
mDisplayDaltonizerPreferenceScreen = findPreference(DISPLAY_DALTONIZER_PREFERENCE_SCREEN); mDisplayDaltonizerPreferenceScreen = findPreference(DISPLAY_DALTONIZER_PREFERENCE_SCREEN);
// Dark Mode.
mDarkUIModePreference = findPreference(DARK_UI_MODE_PREFERENCE);
mDarkUIPreferenceController = new DarkUIPreferenceController(getContext(),
DARK_UI_MODE_PREFERENCE);
mDarkUIPreferenceController.setParentFragment(this);
mDarkUIPreferenceController.displayPreference(getPreferenceScreen());
} }
private void updateAllPreferences() { private void updateAllPreferences() {
@@ -544,13 +504,6 @@ public class AccessibilitySettings extends DashboardFragment {
displayCategory.addPreference(mToggleInversionPreference); displayCategory.addPreference(mToggleInversionPreference);
displayCategory.addPreference(mDisplayDaltonizerPreferenceScreen); displayCategory.addPreference(mDisplayDaltonizerPreferenceScreen);
} }
// Dark Mode
mDarkUIPreferenceController.updateState(mDarkUIModePreference);
mHearingAidPreferenceController.updateState(mHearingAidPreference);
mLiveCaptionPreferenceController.updateState(mLiveCaptionPreference);
} }
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =

View File

@@ -111,7 +111,7 @@ public class AccessibilityHearingAidPreferenceControllerTest {
@Test @Test
public void onHearingAidStateChanged_connected_updateHearingAidSummary() { public void onHearingAidStateChanged_connected_updateHearingAidSummary() {
when(mHearingAidProfile.getConnectedDevices()).thenReturn(generateHearingAidDeviceList()); when(mHearingAidProfile.getConnectedDevices()).thenReturn(generateHearingAidDeviceList());
mPreferenceController.onResume(); mPreferenceController.onStart();
Intent intent = new Intent(BluetoothHearingAid.ACTION_CONNECTION_STATE_CHANGED); Intent intent = new Intent(BluetoothHearingAid.ACTION_CONNECTION_STATE_CHANGED);
intent.putExtra(BluetoothHearingAid.EXTRA_STATE, BluetoothHearingAid.STATE_CONNECTED); intent.putExtra(BluetoothHearingAid.EXTRA_STATE, BluetoothHearingAid.STATE_CONNECTED);
sendIntent(intent); sendIntent(intent);
@@ -121,7 +121,7 @@ public class AccessibilityHearingAidPreferenceControllerTest {
@Test @Test
public void onHearingAidStateChanged_disconnected_updateHearingAidSummary() { public void onHearingAidStateChanged_disconnected_updateHearingAidSummary() {
mPreferenceController.onResume(); mPreferenceController.onStart();
Intent intent = new Intent(BluetoothHearingAid.ACTION_CONNECTION_STATE_CHANGED); Intent intent = new Intent(BluetoothHearingAid.ACTION_CONNECTION_STATE_CHANGED);
intent.putExtra(BluetoothHearingAid.EXTRA_STATE, BluetoothHearingAid.STATE_DISCONNECTED); intent.putExtra(BluetoothHearingAid.EXTRA_STATE, BluetoothHearingAid.STATE_DISCONNECTED);
sendIntent(intent); sendIntent(intent);
@@ -132,7 +132,7 @@ public class AccessibilityHearingAidPreferenceControllerTest {
@Test @Test
public void onBluetoothStateChanged_bluetoothOff_updateHearingAidSummary() { public void onBluetoothStateChanged_bluetoothOff_updateHearingAidSummary() {
mPreferenceController.onResume(); mPreferenceController.onStart();
Intent intent = new Intent(BluetoothAdapter.ACTION_STATE_CHANGED); Intent intent = new Intent(BluetoothAdapter.ACTION_STATE_CHANGED);
intent.putExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.STATE_OFF); intent.putExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.STATE_OFF);
sendIntent(intent); sendIntent(intent);
@@ -173,11 +173,11 @@ public class AccessibilityHearingAidPreferenceControllerTest {
HEARING_AID_PREFERENCE); HEARING_AID_PREFERENCE);
mPreferenceController.setPreference(mHearingAidPreference); mPreferenceController.setPreference(mHearingAidPreference);
//not call registerReceiver() //not call registerReceiver()
mPreferenceController.onResume(); mPreferenceController.onStart();
verify(mContext, never()).registerReceiver(any(), any()); verify(mContext, never()).registerReceiver(any(), any());
//not call unregisterReceiver() //not call unregisterReceiver()
mPreferenceController.onPause(); mPreferenceController.onStop();
verify(mContext, never()).unregisterReceiver(any()); verify(mContext, never()).unregisterReceiver(any());
} }