Loading src/com/android/settings/accessibility/TextReadingPreferenceFragment.java +32 −10 Original line number Diff line number Diff line Loading @@ -64,7 +64,12 @@ public class TextReadingPreferenceFragment extends DashboardFragment { static final String RESET_KEY = "reset"; private static final String PREVIEW_KEY = "preview"; private static final String NEED_RESET_SETTINGS = "need_reset_settings"; private static final String LAST_PREVIEW_INDEX = "last_preview_index"; private static final int UNKNOWN_INDEX = -1; private FontWeightAdjustmentPreferenceController mFontWeightAdjustmentController; private TextReadingPreviewController mPreviewController; private int mLastPreviewIndex = UNKNOWN_INDEX; private int mEntryPoint = EntryPoint.UNKNOWN_ENTRY; /** Loading Loading @@ -95,15 +100,21 @@ public class TextReadingPreferenceFragment extends DashboardFragment { boolean mNeedResetSettings; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mNeedResetSettings = false; mResetStateListeners = getResetStateListeners(); if (icicle != null && icicle.getBoolean(NEED_RESET_SETTINGS)) { if (savedInstanceState != null) { if (savedInstanceState.getBoolean(NEED_RESET_SETTINGS)) { mResetStateListeners.forEach(ResetStateListener::resetState); } if (savedInstanceState.containsKey(LAST_PREVIEW_INDEX)) { mLastPreviewIndex = savedInstanceState.getInt(LAST_PREVIEW_INDEX); } } } @Override Loading Loading @@ -139,19 +150,19 @@ public class TextReadingPreferenceFragment extends DashboardFragment { final FontSizeData fontSizeData = new FontSizeData(context); final DisplaySizeData displaySizeData = createDisplaySizeData(context); final TextReadingPreviewController previewController = new TextReadingPreviewController( context, PREVIEW_KEY, fontSizeData, displaySizeData); previewController.setEntryPoint(mEntryPoint); controllers.add(previewController); mPreviewController = new TextReadingPreviewController(context, PREVIEW_KEY, fontSizeData, displaySizeData); mPreviewController.setEntryPoint(mEntryPoint); controllers.add(mPreviewController); final PreviewSizeSeekBarController fontSizeController = new PreviewSizeSeekBarController( context, FONT_SIZE_KEY, fontSizeData); fontSizeController.setInteractionListener(previewController); fontSizeController.setInteractionListener(mPreviewController); controllers.add(fontSizeController); final PreviewSizeSeekBarController displaySizeController = new PreviewSizeSeekBarController( context, DISPLAY_SIZE_KEY, displaySizeData); displaySizeController.setInteractionListener(previewController); displaySizeController.setInteractionListener(mPreviewController); controllers.add(displaySizeController); mFontWeightAdjustmentController = Loading Loading @@ -206,6 +217,17 @@ public class TextReadingPreferenceFragment extends DashboardFragment { if (mNeedResetSettings) { outState.putBoolean(NEED_RESET_SETTINGS, true); } outState.putInt(LAST_PREVIEW_INDEX, mPreviewController.getCurrentItem()); } @Override public void onStart() { super.onStart(); if (mLastPreviewIndex != UNKNOWN_INDEX) { mPreviewController.setCurrentItem(mLastPreviewIndex); } } @VisibleForTesting Loading src/com/android/settings/accessibility/TextReadingPreviewController.java +8 −0 Original line number Diff line number Diff line Loading @@ -133,6 +133,14 @@ class TextReadingPreviewController extends BasePreferenceController implements postCommitDelayed(CHANGE_BY_SEEKBAR_DELAY_MS); } void setCurrentItem(int index) { mPreviewPreference.setCurrentItem(index); } int getCurrentItem() { return mPreviewPreference.getCurrentItem(); } /** * The entry point is used for logging. * Loading src/com/android/settings/accessibility/TextReadingPreviewPreference.java +19 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,24 @@ public class TextReadingPreviewPreference extends Preference { private int mLastLayerIndex; private PreviewPagerAdapter mPreviewAdapter; private final ViewPager.OnPageChangeListener mPageChangeListener = new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int i, float v, int i1) { // Do nothing } @Override public void onPageSelected(int i) { mCurrentItem = i; } @Override public void onPageScrollStateChanged(int i) { // Do nothing } }; TextReadingPreviewPreference(Context context) { super(context); init(); Loading @@ -63,6 +81,7 @@ public class TextReadingPreviewPreference extends Preference { super.onBindViewHolder(holder); final ViewPager viewPager = (ViewPager) holder.findViewById(R.id.preview_pager); viewPager.addOnPageChangeListener(mPageChangeListener); final DotsPageIndicator pageIndicator = (DotsPageIndicator) holder.findViewById(R.id.page_indicator); updateAdapterIfNeeded(viewPager, pageIndicator, mPreviewAdapter); Loading tests/robotests/src/com/android/settings/accessibility/TextReadingPreviewPreferenceTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,17 @@ public class TextReadingPreviewPreferenceTest { verify(mPreviewPagerAdapter).setPreviewLayer(eq(index), anyInt(), anyInt(), anyBoolean()); } @Test public void afterPagerChange_updateCurrentItem() { final int currentItem = 2; mTextReadingPreviewPreference.setPreviewAdapter(mPreviewPagerAdapter); mTextReadingPreviewPreference.onBindViewHolder(mHolder); mViewPager.setCurrentItem(currentItem); assertThat(mTextReadingPreviewPreference.getCurrentItem()).isEqualTo(currentItem); } private static Configuration[] createConfigurations(int count) { final Configuration[] configurations = new Configuration[count]; for (int i = 0; i < count; i++) { Loading Loading
src/com/android/settings/accessibility/TextReadingPreferenceFragment.java +32 −10 Original line number Diff line number Diff line Loading @@ -64,7 +64,12 @@ public class TextReadingPreferenceFragment extends DashboardFragment { static final String RESET_KEY = "reset"; private static final String PREVIEW_KEY = "preview"; private static final String NEED_RESET_SETTINGS = "need_reset_settings"; private static final String LAST_PREVIEW_INDEX = "last_preview_index"; private static final int UNKNOWN_INDEX = -1; private FontWeightAdjustmentPreferenceController mFontWeightAdjustmentController; private TextReadingPreviewController mPreviewController; private int mLastPreviewIndex = UNKNOWN_INDEX; private int mEntryPoint = EntryPoint.UNKNOWN_ENTRY; /** Loading Loading @@ -95,15 +100,21 @@ public class TextReadingPreferenceFragment extends DashboardFragment { boolean mNeedResetSettings; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mNeedResetSettings = false; mResetStateListeners = getResetStateListeners(); if (icicle != null && icicle.getBoolean(NEED_RESET_SETTINGS)) { if (savedInstanceState != null) { if (savedInstanceState.getBoolean(NEED_RESET_SETTINGS)) { mResetStateListeners.forEach(ResetStateListener::resetState); } if (savedInstanceState.containsKey(LAST_PREVIEW_INDEX)) { mLastPreviewIndex = savedInstanceState.getInt(LAST_PREVIEW_INDEX); } } } @Override Loading Loading @@ -139,19 +150,19 @@ public class TextReadingPreferenceFragment extends DashboardFragment { final FontSizeData fontSizeData = new FontSizeData(context); final DisplaySizeData displaySizeData = createDisplaySizeData(context); final TextReadingPreviewController previewController = new TextReadingPreviewController( context, PREVIEW_KEY, fontSizeData, displaySizeData); previewController.setEntryPoint(mEntryPoint); controllers.add(previewController); mPreviewController = new TextReadingPreviewController(context, PREVIEW_KEY, fontSizeData, displaySizeData); mPreviewController.setEntryPoint(mEntryPoint); controllers.add(mPreviewController); final PreviewSizeSeekBarController fontSizeController = new PreviewSizeSeekBarController( context, FONT_SIZE_KEY, fontSizeData); fontSizeController.setInteractionListener(previewController); fontSizeController.setInteractionListener(mPreviewController); controllers.add(fontSizeController); final PreviewSizeSeekBarController displaySizeController = new PreviewSizeSeekBarController( context, DISPLAY_SIZE_KEY, displaySizeData); displaySizeController.setInteractionListener(previewController); displaySizeController.setInteractionListener(mPreviewController); controllers.add(displaySizeController); mFontWeightAdjustmentController = Loading Loading @@ -206,6 +217,17 @@ public class TextReadingPreferenceFragment extends DashboardFragment { if (mNeedResetSettings) { outState.putBoolean(NEED_RESET_SETTINGS, true); } outState.putInt(LAST_PREVIEW_INDEX, mPreviewController.getCurrentItem()); } @Override public void onStart() { super.onStart(); if (mLastPreviewIndex != UNKNOWN_INDEX) { mPreviewController.setCurrentItem(mLastPreviewIndex); } } @VisibleForTesting Loading
src/com/android/settings/accessibility/TextReadingPreviewController.java +8 −0 Original line number Diff line number Diff line Loading @@ -133,6 +133,14 @@ class TextReadingPreviewController extends BasePreferenceController implements postCommitDelayed(CHANGE_BY_SEEKBAR_DELAY_MS); } void setCurrentItem(int index) { mPreviewPreference.setCurrentItem(index); } int getCurrentItem() { return mPreviewPreference.getCurrentItem(); } /** * The entry point is used for logging. * Loading
src/com/android/settings/accessibility/TextReadingPreviewPreference.java +19 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,24 @@ public class TextReadingPreviewPreference extends Preference { private int mLastLayerIndex; private PreviewPagerAdapter mPreviewAdapter; private final ViewPager.OnPageChangeListener mPageChangeListener = new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int i, float v, int i1) { // Do nothing } @Override public void onPageSelected(int i) { mCurrentItem = i; } @Override public void onPageScrollStateChanged(int i) { // Do nothing } }; TextReadingPreviewPreference(Context context) { super(context); init(); Loading @@ -63,6 +81,7 @@ public class TextReadingPreviewPreference extends Preference { super.onBindViewHolder(holder); final ViewPager viewPager = (ViewPager) holder.findViewById(R.id.preview_pager); viewPager.addOnPageChangeListener(mPageChangeListener); final DotsPageIndicator pageIndicator = (DotsPageIndicator) holder.findViewById(R.id.page_indicator); updateAdapterIfNeeded(viewPager, pageIndicator, mPreviewAdapter); Loading
tests/robotests/src/com/android/settings/accessibility/TextReadingPreviewPreferenceTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,17 @@ public class TextReadingPreviewPreferenceTest { verify(mPreviewPagerAdapter).setPreviewLayer(eq(index), anyInt(), anyInt(), anyBoolean()); } @Test public void afterPagerChange_updateCurrentItem() { final int currentItem = 2; mTextReadingPreviewPreference.setPreviewAdapter(mPreviewPagerAdapter); mTextReadingPreviewPreference.onBindViewHolder(mHolder); mViewPager.setCurrentItem(currentItem); assertThat(mTextReadingPreviewPreference.getCurrentItem()).isEqualTo(currentItem); } private static Configuration[] createConfigurations(int count) { final Configuration[] configurations = new Configuration[count]; for (int i = 0; i < count; i++) { Loading