Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f3b222c authored by Mill Chen's avatar Mill Chen
Browse files

Clean up in-code preference controllers from accessibility

Bug: 135056871
Test: manual, robotests
Change-Id: I0c1358657d3f57ddae2b8f2b12ee610e7363f41f
parent 68aa24d3
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -40,8 +40,7 @@
            android:key="tts_settings_preference"
            android:title="@string/tts_settings_title"
            android:fragment="com.android.settings.tts.TextToSpeechSettings"
            settings:controller="com.android.settings.language.TtsPreferenceController"
            settings:searchable="false"/>
            settings:controller="com.android.settings.language.TtsPreferenceController"/>
    </PreferenceCategory>

    <PreferenceCategory
@@ -102,7 +101,6 @@
            android:persistent="false"
            settings:controller="com.android.settings.accessibility.PowerButtonEndsCallPreferenceController"/>
        

        <SwitchPreference
            android:key="toggle_lock_screen_rotation_preference"
            android:title="@string/accelerometer_title"
@@ -156,7 +154,8 @@
        <Preference
            android:key="hearing_aid_preference"
            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
            android:key="captioning_preference_screen"
+8 −8
Original line number Diff line number Diff line
@@ -31,9 +31,6 @@ import android.util.Log;

import androidx.annotation.VisibleForTesting;
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.PreferenceScreen;

@@ -43,6 +40,9 @@ import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.SubSettingLauncher;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
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.List;
@@ -53,7 +53,7 @@ import java.util.concurrent.FutureTask;
 * Controller that shows and updates the bluetooth device name
 */
public class AccessibilityHearingAidPreferenceController extends BasePreferenceController
        implements LifecycleObserver {
        implements LifecycleObserver, OnStart, OnStop {
    private static final String TAG = "AccessibilityHearingAidPreferenceController";
    private Preference mHearingAidPreference;

@@ -104,8 +104,8 @@ public class AccessibilityHearingAidPreferenceController extends BasePreferenceC
        return mHearingAidProfileSupported ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
    }

    @OnLifecycleEvent(Event.ON_RESUME)
    public void onResume() {
    @Override
    public void onStart() {
        if (mHearingAidProfileSupported) {
            IntentFilter filter = new IntentFilter();
            filter.addAction(BluetoothHearingAid.ACTION_CONNECTION_STATE_CHANGED);
@@ -114,8 +114,8 @@ public class AccessibilityHearingAidPreferenceController extends BasePreferenceC
        }
    }

    @OnLifecycleEvent(Event.ON_PAUSE)
    public void onPause() {
    @Override
    public void onStop() {
        if (mHearingAidProfileSupported) {
            mContext.unregisterReceiver(mHearingAidChangedReceiver);
        }
+3 −50
Original line number Diff line number Diff line
@@ -94,17 +94,10 @@ public class AccessibilitySettings extends DashboardFragment {
    private static final String TOGGLE_LARGE_POINTER_ICON =
            "toggle_large_pointer_icon";
    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 =
            "magnification_preference_screen";
    private static final String DISPLAY_DALTONIZER_PREFERENCE_SCREEN =
            "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.
    static final String EXTRA_PREFERENCE_KEY = "preference_key";
@@ -178,13 +171,7 @@ public class AccessibilitySettings extends DashboardFragment {
    private SwitchPreference mToggleDisableAnimationsPreference;
    private Preference mDisplayMagnificationPreferenceScreen;
    private Preference mDisplayDaltonizerPreferenceScreen;
    private Preference mHearingAidPreference;
    private Preference mLiveCaptionPreference;
    private SwitchPreference mToggleInversionPreference;
    private AccessibilityHearingAidPreferenceController mHearingAidPreferenceController;
    private SwitchPreference mDarkUIModePreference;
    private DarkUIPreferenceController mDarkUIPreferenceController;
    private LiveCaptionPreferenceController mLiveCaptionPreferenceController;

    private DevicePolicyManager mDpm;

@@ -236,13 +223,9 @@ public class AccessibilitySettings extends DashboardFragment {
    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        mHearingAidPreferenceController = new AccessibilityHearingAidPreferenceController
                (context, HEARING_AID_PREFERENCE);
        mHearingAidPreferenceController.setFragmentManager(getFragmentManager());
        getLifecycle().addObserver(mHearingAidPreferenceController);

        mLiveCaptionPreferenceController = new LiveCaptionPreferenceController(context,
                LIVE_CAPTION_PREFERENCE_KEY);
        use(DarkUIPreferenceController.class).setParentFragment(this);
        use(AccessibilityHearingAidPreferenceController.class)
                .setFragmentManager(getFragmentManager());
    }

    @Override
@@ -261,14 +244,6 @@ public class AccessibilitySettings extends DashboardFragment {
        super.onStop();
    }

    @Override
    public boolean onPreferenceTreeClick(Preference preference) {
        if (mHearingAidPreferenceController.handlePreferenceTreeClick(preference)) {
            return true;
        }
        return super.onPreferenceTreeClick(preference);
    }

    @Override
    protected int getPreferenceScreenResId() {
        return R.xml.accessibility_settings;
@@ -318,27 +293,12 @@ public class AccessibilitySettings extends DashboardFragment {
        mToggleDisableAnimationsPreference =
                (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.
        mDisplayMagnificationPreferenceScreen = findPreference(
                DISPLAY_MAGNIFICATION_PREFERENCE_SCREEN);

        // Display color adjustments.
        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() {
@@ -544,13 +504,6 @@ public class AccessibilitySettings extends DashboardFragment {
            displayCategory.addPreference(mToggleInversionPreference);
            displayCategory.addPreference(mDisplayDaltonizerPreferenceScreen);
        }

        // Dark Mode
        mDarkUIPreferenceController.updateState(mDarkUIModePreference);

        mHearingAidPreferenceController.updateState(mHearingAidPreference);

        mLiveCaptionPreferenceController.updateState(mLiveCaptionPreference);
    }

    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+5 −5
Original line number Diff line number Diff line
@@ -111,7 +111,7 @@ public class AccessibilityHearingAidPreferenceControllerTest {
    @Test
    public void onHearingAidStateChanged_connected_updateHearingAidSummary() {
        when(mHearingAidProfile.getConnectedDevices()).thenReturn(generateHearingAidDeviceList());
        mPreferenceController.onResume();
        mPreferenceController.onStart();
        Intent intent = new Intent(BluetoothHearingAid.ACTION_CONNECTION_STATE_CHANGED);
        intent.putExtra(BluetoothHearingAid.EXTRA_STATE, BluetoothHearingAid.STATE_CONNECTED);
        sendIntent(intent);
@@ -121,7 +121,7 @@ public class AccessibilityHearingAidPreferenceControllerTest {

    @Test
    public void onHearingAidStateChanged_disconnected_updateHearingAidSummary() {
        mPreferenceController.onResume();
        mPreferenceController.onStart();
        Intent intent = new Intent(BluetoothHearingAid.ACTION_CONNECTION_STATE_CHANGED);
        intent.putExtra(BluetoothHearingAid.EXTRA_STATE, BluetoothHearingAid.STATE_DISCONNECTED);
        sendIntent(intent);
@@ -132,7 +132,7 @@ public class AccessibilityHearingAidPreferenceControllerTest {

    @Test
    public void onBluetoothStateChanged_bluetoothOff_updateHearingAidSummary() {
        mPreferenceController.onResume();
        mPreferenceController.onStart();
        Intent intent = new Intent(BluetoothAdapter.ACTION_STATE_CHANGED);
        intent.putExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.STATE_OFF);
        sendIntent(intent);
@@ -173,11 +173,11 @@ public class AccessibilityHearingAidPreferenceControllerTest {
                HEARING_AID_PREFERENCE);
        mPreferenceController.setPreference(mHearingAidPreference);
        //not call registerReceiver()
        mPreferenceController.onResume();
        mPreferenceController.onStart();
        verify(mContext, never()).registerReceiver(any(), any());

        //not call unregisterReceiver()
        mPreferenceController.onPause();
        mPreferenceController.onStop();
        verify(mContext, never()).unregisterReceiver(any());
    }