diff --git a/res/layout/accessibility_text_reading_reset_button_suw.xml b/res/layout/accessibility_text_reading_reset_button_suw.xml
deleted file mode 100644
index 97e12f38a6c..00000000000
--- a/res/layout/accessibility_text_reading_reset_button_suw.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java b/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java
index d1614ca6c6b..22bef288282 100644
--- a/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java
@@ -18,11 +18,11 @@ package com.android.settings.accessibility;
import static com.android.settings.accessibility.TextReadingResetController.ResetStateListener;
+import android.app.Activity;
import android.app.Dialog;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.DialogInterface;
-import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
@@ -44,7 +44,6 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.List;
-import java.util.Set;
import java.util.stream.Collectors;
/**
@@ -55,8 +54,7 @@ import java.util.stream.Collectors;
public class TextReadingPreferenceFragment extends DashboardFragment {
public static final String EXTRA_LAUNCHED_FROM = "launched_from";
private static final String TAG = "TextReadingPreferenceFragment";
- private static final String CATEGORY_FOR_ANYTHING_ELSE =
- "com.android.settings.suggested.category.DISPLAY_SETTINGS";
+ private static final String SETUP_WIZARD_PACKAGE = "setupwizard";
static final String FONT_SIZE_KEY = "font_size";
static final String DISPLAY_SIZE_KEY = "display_size";
static final String BOLD_TEXT_KEY = "toggle_force_bold_text";
@@ -179,10 +177,8 @@ public class TextReadingPreferenceFragment extends DashboardFragment {
new TextReadingResetController(context, RESET_KEY,
v -> showDialog(DialogEnums.DIALOG_RESET_SETTINGS));
resetController.setEntryPoint(mEntryPoint);
+ resetController.setVisible(!WizardManagerHelper.isAnySetupWizard(getIntent()));
controllers.add(resetController);
- if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
- resetController.setSetupWizardStyle();
- }
return controllers;
}
@@ -230,6 +226,13 @@ public class TextReadingPreferenceFragment extends DashboardFragment {
}
}
+ protected boolean isCallingFromAnythingElseEntryPoint() {
+ final Activity activity = getActivity();
+ final String callingPackage = activity != null ? activity.getCallingPackage() : null;
+
+ return callingPackage != null && callingPackage.contains(SETUP_WIZARD_PACKAGE);
+ }
+
@VisibleForTesting
DisplaySizeData createDisplaySizeData(Context context) {
return new DisplaySizeData(context);
@@ -242,14 +245,7 @@ public class TextReadingPreferenceFragment extends DashboardFragment {
return;
}
- final Intent intent = getIntent();
- if (intent == null) {
- mEntryPoint = EntryPoint.UNKNOWN_ENTRY;
- return;
- }
-
- final Set categories = intent.getCategories();
- mEntryPoint = categories != null && categories.contains(CATEGORY_FOR_ANYTHING_ELSE)
+ mEntryPoint = isCallingFromAnythingElseEntryPoint()
? EntryPoint.SUW_ANYTHING_ELSE : EntryPoint.UNKNOWN_ENTRY;
}
diff --git a/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizard.java
index b025cf5ff25..cdbfe5f73d8 100644
--- a/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizard.java
@@ -16,6 +16,10 @@
package com.android.settings.accessibility;
+import static android.app.Activity.RESULT_CANCELED;
+
+import static com.android.settings.accessibility.AccessibilityDialogUtils.DialogEnums.DIALOG_RESET_SETTINGS;
+
import android.app.settings.SettingsEnums;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
@@ -28,9 +32,10 @@ import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R;
import com.android.settingslib.Utils;
+import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupcompat.template.FooterButton;
import com.google.android.setupdesign.GlifPreferenceLayout;
-
/**
* A {@link androidx.preference.PreferenceFragmentCompat} that displays the settings page related
* to the text and reading option in the SetupWizard.
@@ -48,6 +53,28 @@ public class TextReadingPreferenceFragmentForSetupWizard extends TextReadingPref
icon.setTintList(Utils.getColorAttr(getContext(), android.R.attr.colorPrimary));
AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title,
/* description= */ null, icon);
+
+ final FooterBarMixin mixin = layout.getMixin(FooterBarMixin.class);
+ mixin.setSecondaryButton(
+ new FooterButton.Builder(getContext())
+ .setText(R.string.accessibility_text_reading_reset_button_title)
+ .setListener(l -> showDialog(DIALOG_RESET_SETTINGS))
+ .setButtonType(FooterButton.ButtonType.CLEAR)
+ .setTheme(R.style.SudGlifButton_Secondary)
+ .build());
+
+ if (isCallingFromAnythingElseEntryPoint()) {
+ mixin.setPrimaryButton(
+ new FooterButton.Builder(getContext())
+ .setText(R.string.done)
+ .setListener(l -> {
+ setResult(RESULT_CANCELED);
+ finish();
+ })
+ .setButtonType(FooterButton.ButtonType.DONE)
+ .setTheme(R.style.SudGlifButton_Primary)
+ .build());
+ }
}
@Override
diff --git a/src/com/android/settings/accessibility/TextReadingResetController.java b/src/com/android/settings/accessibility/TextReadingResetController.java
index 206090c7283..325052cbeba 100644
--- a/src/com/android/settings/accessibility/TextReadingResetController.java
+++ b/src/com/android/settings/accessibility/TextReadingResetController.java
@@ -23,7 +23,6 @@ import androidx.annotation.Nullable;
import androidx.preference.PreferenceScreen;
import com.android.settings.accessibility.TextReadingPreferenceFragment.EntryPoint;
-import com.android.settings.accessibility.TextReadingResetPreference.ButtonStyle;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.instrumentation.SettingsStatsLog;
@@ -31,8 +30,7 @@ import com.android.settings.core.instrumentation.SettingsStatsLog;
* The controller of the reset button in the text and reading options page.
*/
class TextReadingResetController extends BasePreferenceController {
- @ButtonStyle
- private int mButtonStyle;
+ private boolean mIsVisible;
private final View.OnClickListener mOnResetClickListener;
@EntryPoint
@@ -67,11 +65,11 @@ class TextReadingResetController extends BasePreferenceController {
}
});
- resetPreference.setSetupWizardStyle(mButtonStyle);
+ setVisible(screen, getPreferenceKey(), mIsVisible);
}
- void setSetupWizardStyle() {
- mButtonStyle = ButtonStyle.SUW;
+ void setVisible(boolean isVisible) {
+ mIsVisible = isVisible;
}
/**
diff --git a/src/com/android/settings/accessibility/TextReadingResetPreference.java b/src/com/android/settings/accessibility/TextReadingResetPreference.java
index 64f38344016..9518de23e09 100644
--- a/src/com/android/settings/accessibility/TextReadingResetPreference.java
+++ b/src/com/android/settings/accessibility/TextReadingResetPreference.java
@@ -20,15 +20,11 @@ import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
-import androidx.annotation.IntDef;
import androidx.preference.Preference;
import androidx.preference.PreferenceViewHolder;
import com.android.settings.R;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
/**
* The preference which is used for resetting the status of all preferences in the display size
* and text page.
@@ -36,20 +32,10 @@ import java.lang.annotation.RetentionPolicy;
public class TextReadingResetPreference extends Preference {
private View.OnClickListener mOnResetClickListener;
- @Retention(RetentionPolicy.SOURCE)
- @IntDef({
- ButtonStyle.DEFAULT,
- ButtonStyle.SUW,
- })
- @interface ButtonStyle {
- int DEFAULT = 0;
- int SUW = 1;
- }
-
public TextReadingResetPreference(Context context, AttributeSet attrs) {
super(context, attrs);
- setSetupWizardStyle(ButtonStyle.DEFAULT);
+ setLayoutResource(R.layout.accessibility_text_reading_reset_button);
}
@Override
@@ -60,13 +46,6 @@ public class TextReadingResetPreference extends Preference {
view.setOnClickListener(mOnResetClickListener);
}
- void setSetupWizardStyle(@ButtonStyle int style) {
- final int layoutResId = (style == ButtonStyle.SUW)
- ? R.layout.accessibility_text_reading_reset_button_suw
- : R.layout.accessibility_text_reading_reset_button;
- setLayoutResource(layoutResId);
- }
-
void setOnResetClickListener(View.OnClickListener resetClickListener) {
mOnResetClickListener = resetClickListener;
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizardTest.java b/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizardTest.java
index 4813c8075ce..7df24f1293d 100644
--- a/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizardTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizardTest.java
@@ -20,6 +20,7 @@ import static com.android.settings.accessibility.TextReadingPreferenceFragment.R
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -27,11 +28,13 @@ import static org.mockito.Mockito.verify;
import android.app.settings.SettingsEnums;
import android.content.Context;
+import androidx.fragment.app.FragmentActivity;
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
import com.android.settingslib.widget.LayoutPreference;
+import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupdesign.GlifPreferenceLayout;
import org.junit.Before;
@@ -50,8 +53,16 @@ public class TextReadingPreferenceFragmentForSetupWizardTest {
@Rule
public final MockitoRule mMockito = MockitoJUnit.rule();
+
@Mock
private GlifPreferenceLayout mGlifLayoutView;
+
+ @Mock
+ private FooterBarMixin mFooterBarMixin;
+
+ @Mock
+ private FragmentActivity mActivity;
+
@Spy
private final Context mContext = ApplicationProvider.getApplicationContext();
private TextReadingPreferenceFragmentForSetupWizard mFragment;
@@ -61,13 +72,14 @@ public class TextReadingPreferenceFragmentForSetupWizardTest {
mFragment = spy(new TextReadingPreferenceFragmentForSetupWizard());
final LayoutPreference resetPreference =
new LayoutPreference(mContext, R.layout.accessibility_text_reading_reset_button);
+ doReturn(mContext).when(mFragment).getContext();
doReturn(resetPreference).when(mFragment).findPreference(RESET_KEY);
+ doReturn(mFooterBarMixin).when(mGlifLayoutView).getMixin(FooterBarMixin.class);
}
@Test
public void setHeaderText_onViewCreated_verifyAction() {
final String title = "title";
- doReturn(mContext).when(mFragment).getContext();
doReturn(title).when(mContext).getString(
R.string.accessibility_text_reading_options_title);
@@ -86,4 +98,21 @@ public class TextReadingPreferenceFragmentForSetupWizardTest {
public void getHelpResource_shouldNotHaveHelpResource() {
assertThat(mFragment.getHelpResource()).isEqualTo(0);
}
+
+ @Test
+ public void onViewCreated_verifySetSecondaryButton() {
+ mFragment.onViewCreated(mGlifLayoutView, null);
+
+ verify(mFooterBarMixin).setSecondaryButton(any());
+ }
+
+ @Test
+ public void onViewCreated_verifySetPrimaryButton() {
+ doReturn(mActivity).when(mFragment).getActivity();
+ doReturn("setupwizard").when(mActivity).getCallingPackage();
+
+ mFragment.onViewCreated(mGlifLayoutView, null);
+
+ verify(mFooterBarMixin).setPrimaryButton(any());
+ }
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/TextReadingResetControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/TextReadingResetControllerTest.java
index 231c9caebda..d5b138a5ac2 100644
--- a/tests/robotests/src/com/android/settings/accessibility/TextReadingResetControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/TextReadingResetControllerTest.java
@@ -16,6 +16,8 @@
package com.android.settings.accessibility;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -70,4 +72,20 @@ public class TextReadingResetControllerTest {
verify(mResetPreference).setOnResetClickListener(any(View.OnClickListener.class));
}
+
+ @Test
+ public void setVisibleAsFalse_preferenceInvisible() {
+ mResetController.setVisible(false);
+ mResetController.displayPreference(mPreferenceScreen);
+
+ assertThat(mResetPreference.isVisible()).isFalse();
+ }
+
+ @Test
+ public void setVisibleAsTrue_preferenceVisible() {
+ mResetController.setVisible(true);
+ mResetController.displayPreference(mPreferenceScreen);
+
+ assertThat(mResetPreference.isVisible()).isTrue();
+ }
}