chore(magnification suw): Hide feedback preference in setup wizard

Bug: 380346799
Flag: com.android.server.accessibility.enable_low_vision_hats
Test: atest MagnificationFeedbackPreferenceControllerTest
            MagnificationFollowTypingPreferenceControllerTest
            MagnificationJoystickPreferenceControllerTest
            MagnificationOneFingerPanningPreferenceControllerTest
            ToggleScreenMagnificationPreferenceFragmentTest
Change-Id: I84f673235a8a4d97667edaabf72d46b985f33351
This commit is contained in:
Menghan Li
2025-01-17 06:33:00 +00:00
parent e8dfb5d2fd
commit 4c9bf742bf
9 changed files with 68 additions and 10 deletions

View File

@@ -44,7 +44,7 @@ import com.android.settingslib.core.lifecycle.events.OnResume;
* to 100%. * to 100%.
*/ */
public class MagnificationAlwaysOnPreferenceController extends public class MagnificationAlwaysOnPreferenceController extends
MagnificationFeaturePreferenceController implements LifecycleObserver, OnResume, OnPause { MagnificationTogglePreferenceController implements LifecycleObserver, OnResume, OnPause {
private static final String TAG = private static final String TAG =
MagnificationAlwaysOnPreferenceController.class.getSimpleName(); MagnificationAlwaysOnPreferenceController.class.getSimpleName();

View File

@@ -0,0 +1,42 @@
/*
* Copyright (C) 2025 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.accessibility;
import android.content.Context;
import com.android.settings.core.BasePreferenceController;
/**
* A base preference controller of magnification feature with common methods.
*/
public abstract class MagnificationBasePreferenceController extends BasePreferenceController {
private boolean mInSetupWizard;
protected MagnificationBasePreferenceController(Context context,
String preferenceKey) {
super(context, preferenceKey);
}
protected final boolean isInSetupWizard() {
return mInSetupWizard;
}
protected final void setInSetupWizard(boolean inSetupWizard) {
mInSetupWizard = inSetupWizard;
}
}

View File

@@ -25,7 +25,6 @@ import androidx.lifecycle.DefaultLifecycleObserver;
import androidx.preference.Preference; import androidx.preference.Preference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.overlay.SurveyFeatureProvider; import com.android.settings.overlay.SurveyFeatureProvider;
@@ -35,7 +34,7 @@ import com.android.settings.overlay.SurveyFeatureProvider;
* visibility and click behavior of the preference based on the availability of a user survey * visibility and click behavior of the preference based on the availability of a user survey
* related to magnification. * related to magnification.
*/ */
public class MagnificationFeedbackPreferenceController extends BasePreferenceController public class MagnificationFeedbackPreferenceController extends MagnificationBasePreferenceController
implements DefaultLifecycleObserver { implements DefaultLifecycleObserver {
private static final String TAG = "MagnificationFeedbackPreferenceController"; private static final String TAG = "MagnificationFeedbackPreferenceController";
public static final String PREF_KEY = "magnification_feedback"; public static final String PREF_KEY = "magnification_feedback";
@@ -53,7 +52,7 @@ public class MagnificationFeedbackPreferenceController extends BasePreferenceCon
@Override @Override
public int getAvailabilityStatus() { public int getAvailabilityStatus() {
return AVAILABLE; return isInSetupWizard() ? CONDITIONALLY_UNAVAILABLE : AVAILABLE;
} }
@Override @Override

View File

@@ -26,7 +26,7 @@ import com.android.settings.R;
/** Controller that accesses and switches the preference status of following typing feature */ /** Controller that accesses and switches the preference status of following typing feature */
public class MagnificationFollowTypingPreferenceController extends public class MagnificationFollowTypingPreferenceController extends
MagnificationFeaturePreferenceController { MagnificationTogglePreferenceController {
private static final String TAG = private static final String TAG =
MagnificationFollowTypingPreferenceController.class.getSimpleName(); MagnificationFollowTypingPreferenceController.class.getSimpleName();

View File

@@ -28,7 +28,7 @@ import com.android.settings.R;
* Controller that accesses and switches the preference status of the magnification joystick feature * Controller that accesses and switches the preference status of the magnification joystick feature
*/ */
public class MagnificationJoystickPreferenceController extends public class MagnificationJoystickPreferenceController extends
MagnificationFeaturePreferenceController { MagnificationTogglePreferenceController {
private static final String TAG = private static final String TAG =
MagnificationJoystickPreferenceController.class.getSimpleName(); MagnificationJoystickPreferenceController.class.getSimpleName();

View File

@@ -41,7 +41,7 @@ import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnResume;
public class MagnificationOneFingerPanningPreferenceController extends public class MagnificationOneFingerPanningPreferenceController extends
MagnificationFeaturePreferenceController implements LifecycleObserver, OnResume, OnPause { MagnificationTogglePreferenceController implements LifecycleObserver, OnResume, OnPause {
static final String PREF_KEY = Settings.Secure.ACCESSIBILITY_SINGLE_FINGER_PANNING_ENABLED; static final String PREF_KEY = Settings.Secure.ACCESSIBILITY_SINGLE_FINGER_PANNING_ENABLED;
private TwoStatePreference mSwitchPreference; private TwoStatePreference mSwitchPreference;

View File

@@ -21,13 +21,13 @@ import android.content.Context;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
/** /**
* A base preference controller of magnification feature with common methods. * A base toggle preference controller of magnification feature with common methods.
*/ */
public abstract class MagnificationFeaturePreferenceController extends TogglePreferenceController { public abstract class MagnificationTogglePreferenceController extends TogglePreferenceController {
private boolean mInSetupWizard; private boolean mInSetupWizard;
protected MagnificationFeaturePreferenceController(Context context, protected MagnificationTogglePreferenceController(Context context,
String preferenceKey) { String preferenceKey) {
super(context, preferenceKey); super(context, preferenceKey);
} }

View File

@@ -387,6 +387,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends
final MagnificationFeedbackPreferenceController magnificationFeedbackPreferenceController = final MagnificationFeedbackPreferenceController magnificationFeedbackPreferenceController =
new MagnificationFeedbackPreferenceController(getContext(), this, new MagnificationFeedbackPreferenceController(getContext(), this,
MagnificationFeedbackPreferenceController.PREF_KEY); MagnificationFeedbackPreferenceController.PREF_KEY);
magnificationFeedbackPreferenceController.setInSetupWizard(mInSetupWizard);
magnificationFeedbackPreferenceController.displayPreference(getPreferenceScreen()); magnificationFeedbackPreferenceController.displayPreference(getPreferenceScreen());
addPreferenceController(magnificationFeedbackPreferenceController); addPreferenceController(magnificationFeedbackPreferenceController);
} }

View File

@@ -18,6 +18,8 @@ package com.android.settings.accessibility;
import static com.android.settings.accessibility.MagnificationFeedbackPreferenceController.FEEDBACK_KEY; import static com.android.settings.accessibility.MagnificationFeedbackPreferenceController.FEEDBACK_KEY;
import static com.android.settings.accessibility.MagnificationFeedbackPreferenceController.PREF_KEY; import static com.android.settings.accessibility.MagnificationFeedbackPreferenceController.PREF_KEY;
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
@@ -118,4 +120,18 @@ public class MagnificationFeedbackPreferenceControllerTest {
verify(mSurveyFeatureProvider).sendActivityIfAvailable(FEEDBACK_KEY); verify(mSurveyFeatureProvider).sendActivityIfAvailable(FEEDBACK_KEY);
} }
@Test
public void getAvailableStatus_notInSetupWizard_returnAvailable() {
mController.setInSetupWizard(false);
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
@Test
public void getAvailableStatus_inSetupWizard_returnConditionallyUnavailable() {
mController.setInSetupWizard(true);
assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
}
} }