Remove the preview screens from Display/Font size settings

when the activity height is smaller.
Also refactored for readability.
Bug: 27699996
Change-Id: Iff3c3ffdc1ccf82080cafdcedf392e499175acaf
This commit is contained in:
Noah Wang
2016-04-13 10:18:45 -07:00
parent 40c2e7adcf
commit 45393213da
6 changed files with 355 additions and 181 deletions

View File

@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2015 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.
-->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<include layout="@layout/preview_seek_bar_view_pager" />
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="16dp"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
<com.android.settings.widget.DotsPageIndicator
android:id="@+id/page_indicator"
style="@style/PreviewPagerPageIndicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:padding="6dp" />
<TextView
android:id="@+id/current_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:padding="6dp"
android:textAppearance="@android:style/TextAppearance.Material.Widget.TextView"
android:elevation="2dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingTop="8dp">
<ImageView
android:id="@+id/smaller"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_font_size_16dp"
android:tint="?android:attr/textColorPrimary"
android:tintMode="src_in"
android:scaleType="center"
android:focusable="true"
android:contentDescription="@string/font_size_make_smaller_desc" />
<com.android.settings.widget.LabeledSeekBar
android:id="@+id/seek_bar"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_weight="1"
style="@android:style/Widget.Material.SeekBar.Discrete"/>
<ImageView
android:id="@+id/larger"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_font_size_24dp"
android:tint="?android:attr/textColorPrimary"
android:tintMode="src_in"
android:scaleType="center"
android:focusable="true"
android:contentDescription="@string/font_size_make_larger_desc" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/font_size_summary"
android:layout_marginBottom="16dp"
android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
</LinearLayout>
</LinearLayout>
</ScrollView>

View File

@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2015 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.
-->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<include layout="@layout/preview_seek_bar_view_pager" />
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="16dp"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
<com.android.settings.widget.DotsPageIndicator
android:id="@+id/page_indicator"
style="@style/PreviewPagerPageIndicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:padding="6dp" />
<TextView
android:id="@+id/current_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:padding="6dp"
android:textAppearance="@android:style/TextAppearance.Material.Widget.TextView"
android:elevation="2dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<ImageView
android:id="@+id/smaller"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_remove_24dp"
android:tint="?android:attr/textColorPrimary"
android:tintMode="src_in"
android:scaleType="center"
android:focusable="true"
android:contentDescription="@string/screen_zoom_make_smaller_desc" />
<com.android.settings.widget.LabeledSeekBar
android:id="@+id/seek_bar"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_weight="1"
style="@android:style/Widget.Material.SeekBar.Discrete"/>
<ImageView
android:id="@+id/larger"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_add_24dp"
android:tint="?android:attr/textColorPrimary"
android:tintMode="src_in"
android:scaleType="center"
android:focusable="true"
android:contentDescription="@string/screen_zoom_make_larger_desc" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/screen_zoom_summary"
android:layout_marginBottom="16dp"
android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
</LinearLayout>
</LinearLayout>
</ScrollView>

View File

@@ -22,79 +22,63 @@
<LinearLayout <LinearLayout
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" > android:layout_height="wrap_content"
android:paddingTop="16dp"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
<include layout="@layout/preview_seek_bar_view_pager" /> <TextView
android:id="@+id/current_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:padding="6dp"
android:textAppearance="@android:style/TextAppearance.Material.Widget.TextView"
android:elevation="2dp" />
<LinearLayout <LinearLayout
android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="16dp" android:gravity="center_vertical"
android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingTop="8dp">
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
<com.android.settings.widget.DotsPageIndicator <ImageView
android:id="@+id/page_indicator" android:id="@+id/smaller"
style="@style/PreviewPagerPageIndicator" android:layout_width="48dp"
android:layout_width="wrap_content" android:layout_height="48dp"
android:layout_height="wrap_content" android:background="?android:attr/selectableItemBackgroundBorderless"
android:layout_gravity="center_horizontal" android:src="@drawable/ic_font_size_16dp"
android:padding="6dp" /> android:tint="?android:attr/textColorPrimary"
android:tintMode="src_in"
android:scaleType="center"
android:focusable="true"
android:contentDescription="@string/font_size_make_smaller_desc" />
<TextView <com.android.settings.widget.LabeledSeekBar
android:id="@+id/current_label" android:id="@+id/seek_bar"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="48dp"
android:layout_gravity="center_horizontal" android:layout_weight="1"
android:padding="6dp" style="@android:style/Widget.Material.SeekBar.Discrete"/>
android:textAppearance="@android:style/TextAppearance.Material.Widget.TextView"
android:elevation="2dp" />
<LinearLayout <ImageView
android:layout_width="match_parent" android:id="@+id/larger"
android:layout_height="wrap_content" android:layout_width="48dp"
android:gravity="center_vertical" android:layout_height="48dp"
android:paddingTop="8dp"> android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_font_size_24dp"
<ImageView android:tint="?android:attr/textColorPrimary"
android:id="@+id/smaller" android:tintMode="src_in"
android:layout_width="48dp" android:scaleType="center"
android:layout_height="48dp" android:focusable="true"
android:background="?android:attr/selectableItemBackgroundBorderless" android:contentDescription="@string/font_size_make_larger_desc" />
android:src="@drawable/ic_font_size_16dp"
android:tint="?android:attr/textColorPrimary"
android:tintMode="src_in"
android:scaleType="center"
android:focusable="true"
android:contentDescription="@string/font_size_make_smaller_desc" />
<com.android.settings.widget.LabeledSeekBar
android:id="@+id/seek_bar"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_weight="1"
style="@android:style/Widget.Material.SeekBar.Discrete"/>
<ImageView
android:id="@+id/larger"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_font_size_24dp"
android:tint="?android:attr/textColorPrimary"
android:tintMode="src_in"
android:scaleType="center"
android:focusable="true"
android:contentDescription="@string/font_size_make_larger_desc" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/font_size_summary"
android:layout_marginBottom="16dp"
android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
</LinearLayout> </LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/font_size_summary"
android:layout_marginBottom="16dp"
android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>

View File

@@ -22,78 +22,62 @@
<LinearLayout <LinearLayout
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" > android:layout_height="wrap_content"
android:paddingTop="16dp"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
<include layout="@layout/preview_seek_bar_view_pager" /> <TextView
android:id="@+id/current_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:padding="6dp"
android:textAppearance="@android:style/TextAppearance.Material.Widget.TextView"
android:elevation="2dp" />
<LinearLayout <LinearLayout
android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="16dp" android:gravity="center_vertical">
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
<com.android.settings.widget.DotsPageIndicator <ImageView
android:id="@+id/page_indicator" android:id="@+id/smaller"
style="@style/PreviewPagerPageIndicator" android:layout_width="48dp"
android:layout_width="wrap_content" android:layout_height="48dp"
android:layout_height="wrap_content" android:background="?android:attr/selectableItemBackgroundBorderless"
android:layout_gravity="center_horizontal" android:src="@drawable/ic_remove_24dp"
android:padding="6dp" /> android:tint="?android:attr/textColorPrimary"
android:tintMode="src_in"
android:scaleType="center"
android:focusable="true"
android:contentDescription="@string/screen_zoom_make_smaller_desc" />
<TextView <com.android.settings.widget.LabeledSeekBar
android:id="@+id/current_label" android:id="@+id/seek_bar"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="48dp"
android:layout_gravity="center_horizontal" android:layout_weight="1"
android:padding="6dp" style="@android:style/Widget.Material.SeekBar.Discrete"/>
android:textAppearance="@android:style/TextAppearance.Material.Widget.TextView"
android:elevation="2dp" />
<LinearLayout <ImageView
android:layout_width="match_parent" android:id="@+id/larger"
android:layout_height="wrap_content" android:layout_width="48dp"
android:gravity="center_vertical"> android:layout_height="48dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
<ImageView android:src="@drawable/ic_add_24dp"
android:id="@+id/smaller" android:tint="?android:attr/textColorPrimary"
android:layout_width="48dp" android:tintMode="src_in"
android:layout_height="48dp" android:scaleType="center"
android:background="?android:attr/selectableItemBackgroundBorderless" android:focusable="true"
android:src="@drawable/ic_remove_24dp" android:contentDescription="@string/screen_zoom_make_larger_desc" />
android:tint="?android:attr/textColorPrimary"
android:tintMode="src_in"
android:scaleType="center"
android:focusable="true"
android:contentDescription="@string/screen_zoom_make_smaller_desc" />
<com.android.settings.widget.LabeledSeekBar
android:id="@+id/seek_bar"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_weight="1"
style="@android:style/Widget.Material.SeekBar.Discrete"/>
<ImageView
android:id="@+id/larger"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_add_24dp"
android:tint="?android:attr/textColorPrimary"
android:tintMode="src_in"
android:scaleType="center"
android:focusable="true"
android:contentDescription="@string/screen_zoom_make_larger_desc" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/screen_zoom_summary"
android:layout_marginBottom="16dp"
android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
</LinearLayout> </LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/screen_zoom_summary"
android:layout_marginBottom="16dp"
android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>

View File

@@ -295,7 +295,7 @@
<!-- Display Size and Font Size preview screen --> <!-- Display Size and Font Size preview screen -->
<dimen name="preview_pager_padding">8dp</dimen> <dimen name="preview_pager_padding">8dp</dimen>
<dimen name="preview_pager_min_height">200dp</dimen> <dimen name="preview_pager_min_height">240dp</dimen>
<!-- Padding between the radio buttons/checkbox and text on the redaction interstitial --> <!-- Padding between the radio buttons/checkbox and text on the redaction interstitial -->
<dimen name="redaction_padding_start">16dp</dimen> <dimen name="redaction_padding_start">16dp</dimen>

View File

@@ -151,51 +151,21 @@ public abstract class PreviewSeekBarPreferenceFragment extends SettingsPreferenc
configurations[i] = createConfig(origConfig, i); configurations[i] = createConfig(origConfig, i);
} }
mPreviewPagerAdapter = new PreviewPagerAdapter(context, mPreviewSampleResIds,
configurations);
mPreviewPager = (ViewPager) content.findViewById(R.id.preview_pager); mPreviewPager = (ViewPager) content.findViewById(R.id.preview_pager);
mPreviewPager.setAdapter(mPreviewPagerAdapter); if (mPreviewPager != null) {
mPreviewPager.addOnPageChangeListener(new OnPageChangeListener() { mPreviewPagerAdapter = new PreviewPagerAdapter(context, mPreviewSampleResIds,
@Override configurations);
public void onPageScrollStateChanged(int state) { mPreviewPager.setAdapter(mPreviewPagerAdapter);
// Do nothing. mPreviewPager.addOnPageChangeListener(mPreviewPageChangeListener);
mPageIndicator = (DotsPageIndicator) content.findViewById(R.id.page_indicator);
if (mPreviewSampleResIds.length > 1) {
mPageIndicator.setViewPager(mPreviewPager);
mPageIndicator.setVisibility(View.VISIBLE);
mPageIndicator.setOnPageChangeListener(mPageIndicatorPageChangeListener);
} else {
mPageIndicator.setVisibility(View.GONE);
} }
@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
// Do nothing.
}
@Override
public void onPageSelected(int position) {
mPreviewPager.sendAccessibilityEvent(AccessibilityEvent.TYPE_ANNOUNCEMENT);
}
});
mPageIndicator = (DotsPageIndicator) content.findViewById(R.id.page_indicator);
if (mPreviewSampleResIds.length > 1) {
mPageIndicator.setViewPager(mPreviewPager);
mPageIndicator.setVisibility(View.VISIBLE);
mPageIndicator.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageScrollStateChanged(int state) {
// Do nothing.
}
@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
// Do nothing.
}
@Override
public void onPageSelected(int position) {
setPagerIndicatorContentDescription(position);
}
});
} else {
mPageIndicator.setVisibility(View.GONE);
} }
setPreviewLayer(mInitialIndex, false); setPreviewLayer(mInitialIndex, false);
@@ -207,15 +177,21 @@ public abstract class PreviewSeekBarPreferenceFragment extends SettingsPreferenc
*/ */
protected abstract Configuration createConfig(Configuration origConfig, int index); protected abstract Configuration createConfig(Configuration origConfig, int index);
/**
* Persists the selected value and sends a configuration change.
*/
protected abstract void commit();
private void setPreviewLayer(int index, boolean animate) { private void setPreviewLayer(int index, boolean animate) {
mLabel.setText(mEntries[index]); mLabel.setText(mEntries[index]);
mSmaller.setEnabled(index > 0); mSmaller.setEnabled(index > 0);
mLarger.setEnabled(index < mEntries.length - 1); mLarger.setEnabled(index < mEntries.length - 1);
if (mPreviewPager != null) {
setPagerIndicatorContentDescription(mPreviewPager.getCurrentItem());
mPreviewPagerAdapter.setPreviewLayer(index, mCurrentIndex,
mPreviewPager.getCurrentItem(), animate);
}
setPagerIndicatorContentDescription(mPreviewPager.getCurrentItem());
mPreviewPagerAdapter.setPreviewLayer(index, mCurrentIndex, mPreviewPager.getCurrentItem(),
animate);
mCurrentIndex = index; mCurrentIndex = index;
} }
@@ -225,8 +201,39 @@ public abstract class PreviewSeekBarPreferenceFragment extends SettingsPreferenc
position + 1, mPreviewSampleResIds.length)); position + 1, mPreviewSampleResIds.length));
} }
/** private OnPageChangeListener mPreviewPageChangeListener = new OnPageChangeListener() {
* Persists the selected value and sends a configuration change. @Override
*/ public void onPageScrollStateChanged(int state) {
protected abstract void commit(); // Do nothing.
}
@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
// Do nothing.
}
@Override
public void onPageSelected(int position) {
mPreviewPager.sendAccessibilityEvent(AccessibilityEvent.TYPE_ANNOUNCEMENT);
}
};
private OnPageChangeListener mPageIndicatorPageChangeListener = new OnPageChangeListener() {
@Override
public void onPageScrollStateChanged(int state) {
// Do nothing.
}
@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
// Do nothing.
}
@Override
public void onPageSelected(int position) {
setPagerIndicatorContentDescription(position);
}
};
} }