Add config to disable app tray preview in display size.

Also move some files

Change-Id: I4636fcd81425991acadede0b703e09513c82543c
Merged-In: I4636fcd81425991acadede0b703e09513c82543c
Fixes: 113374067
Test: robotests
This commit is contained in:
Fan Zhang
2018-09-07 17:06:07 -07:00
parent 8a2c9e79b0
commit 18eecb1e67
15 changed files with 166 additions and 98 deletions

View File

@@ -55,6 +55,7 @@ import com.android.internal.view.RotationPolicy.RotationPolicyListener;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
import com.android.settings.display.ToggleFontSizePreferenceFragment;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
import com.android.settingslib.RestrictedLockUtils;

View File

@@ -18,7 +18,6 @@ import android.content.res.Resources;
import android.provider.Settings;
import com.android.settings.R;
import com.android.settings.accessibility.ToggleFontSizePreferenceFragment;
import com.android.settings.core.BasePreferenceController;
public class FontSizePreferenceController extends BasePreferenceController {

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2016 The Android Open Source Project
* Copyright (C) 2018 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.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.android.settings.accessibility;
package com.android.settings.display;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2016 The Android Open Source Project
* Copyright (C) 2018 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.
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings;
package com.android.settings.display;
import android.animation.Animator;
import android.animation.Animator.AnimatorListener;
@@ -32,6 +32,8 @@ import android.widget.LinearLayout;
import androidx.viewpager.widget.PagerAdapter;
import com.android.settings.support.actionbar.HelpResourceProvider;
/**
* A PagerAdapter used by PreviewSeekBarPreferenceFragment that for showing multiple preview screen
* regarding a single setting and allowing the user to swipe across them.
@@ -76,16 +78,12 @@ public class PreviewPagerAdapter extends PagerAdapter {
final Context configContext = context.createConfigurationContext(configurations[j]);
configContext.getTheme().setTo(context.getTheme());
final LayoutInflater configInflater = LayoutInflater.from(configContext);
final ViewStub sampleViewStub = new ViewStub(configContext);
sampleViewStub.setLayoutResource(previewSampleResIds[i]);
final int fi = i, fj = j;
sampleViewStub.setOnInflateListener(new OnInflateListener() {
@Override
public void onInflate(ViewStub stub, View inflated) {
inflated.setVisibility(stub.getVisibility());
mViewStubInflated[fi][fj] = true;
}
sampleViewStub.setOnInflateListener((stub, inflated) -> {
inflated.setVisibility(stub.getVisibility());
mViewStubInflated[fi][fj] = true;
});
mPreviewFrames[p].addView(sampleViewStub);
@@ -94,7 +92,7 @@ public class PreviewPagerAdapter extends PagerAdapter {
}
@Override
public void destroyItem (ViewGroup container, int position, Object object) {
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@@ -164,29 +162,29 @@ public class PreviewPagerAdapter extends PagerAdapter {
if (visibility == View.VISIBLE) {
// Fade in animation.
view.animate()
.alpha(alpha)
.setInterpolator(FADE_IN_INTERPOLATOR)
.setDuration(CROSS_FADE_DURATION_MS)
.setListener(new PreviewFrameAnimatorListener())
.withStartAction(new Runnable() {
@Override
public void run() {
view.setVisibility(visibility);
}
});
.alpha(alpha)
.setInterpolator(FADE_IN_INTERPOLATOR)
.setDuration(CROSS_FADE_DURATION_MS)
.setListener(new PreviewFrameAnimatorListener())
.withStartAction(new Runnable() {
@Override
public void run() {
view.setVisibility(visibility);
}
});
} else {
// Fade out animation.
view.animate()
.alpha(alpha)
.setInterpolator(FADE_OUT_INTERPOLATOR)
.setDuration(CROSS_FADE_DURATION_MS)
.setListener(new PreviewFrameAnimatorListener())
.withEndAction(new Runnable() {
@Override
public void run() {
view.setVisibility(visibility);
}
});
.alpha(alpha)
.setInterpolator(FADE_OUT_INTERPOLATOR)
.setDuration(CROSS_FADE_DURATION_MS)
.setListener(new PreviewFrameAnimatorListener())
.withEndAction(new Runnable() {
@Override
public void run() {
view.setVisibility(visibility);
}
});
}
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2015 The Android Open Source Project
* Copyright (C) 2018 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.
@@ -14,14 +14,13 @@
* limitations under the License.
*/
package com.android.settings;
package com.android.settings.display;
import android.content.Context;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
import android.widget.SeekBar;
@@ -31,6 +30,8 @@ import android.widget.TextView;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager.widget.ViewPager.OnPageChangeListener;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.widget.DotsPageIndicator;
import com.android.settings.widget.LabeledSeekBar;
@@ -48,12 +49,6 @@ public abstract class PreviewSeekBarPreferenceFragment extends SettingsPreferenc
/** Index of the entry corresponding to current value of the settings. */
protected int mCurrentIndex;
/** Resource id of the layout for this preference fragment. */
protected int mActivityLayoutResId;
/** Resource id of the layout that defines the contents inside preview screen. */
protected int[] mPreviewSampleResIds;
private ViewPager mPreviewPager;
private PreviewPagerAdapter mPreviewPagerAdapter;
private DotsPageIndicator mPageIndicator;
@@ -82,12 +77,7 @@ public abstract class PreviewSeekBarPreferenceFragment extends SettingsPreferenc
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
if (mPreviewPagerAdapter.isAnimating()) {
mPreviewPagerAdapter.setAnimationEndAction(new Runnable() {
@Override
public void run() {
commit();
}
});
mPreviewPagerAdapter.setAnimationEndAction(() -> commit());
} else {
commit();
}
@@ -102,39 +92,33 @@ public abstract class PreviewSeekBarPreferenceFragment extends SettingsPreferenc
final ViewGroup listContainer = (ViewGroup) root.findViewById(android.R.id.list_container);
listContainer.removeAllViews();
final View content = inflater.inflate(mActivityLayoutResId, listContainer, false);
final View content = inflater.inflate(getActivityLayoutResId(), listContainer, false);
listContainer.addView(content);
mLabel = (TextView) content.findViewById(R.id.current_label);
mLabel = content.findViewById(R.id.current_label);
// The maximum SeekBar value always needs to be non-zero. If there's
// only one available value, we'll handle this by disabling the
// seek bar.
final int max = Math.max(1, mEntries.length - 1);
mSeekBar = (LabeledSeekBar) content.findViewById(R.id.seek_bar);
mSeekBar = content.findViewById(R.id.seek_bar);
mSeekBar.setLabels(mEntries);
mSeekBar.setMax(max);
mSmaller = content.findViewById(R.id.smaller);
mSmaller.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
final int progress = mSeekBar.getProgress();
if (progress > 0) {
mSeekBar.setProgress(progress - 1, true);
}
mSmaller.setOnClickListener(v -> {
final int progress = mSeekBar.getProgress();
if (progress > 0) {
mSeekBar.setProgress(progress - 1, true);
}
});
mLarger = content.findViewById(R.id.larger);
mLarger.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
final int progress = mSeekBar.getProgress();
if (progress < mSeekBar.getMax()) {
mSeekBar.setProgress(progress + 1, true);
}
mLarger.setOnClickListener(v -> {
final int progress = mSeekBar.getProgress();
if (progress < mSeekBar.getMax()) {
mSeekBar.setProgress(progress + 1, true);
}
});
@@ -152,15 +136,16 @@ public abstract class PreviewSeekBarPreferenceFragment extends SettingsPreferenc
configurations[i] = createConfig(origConfig, i);
}
mPreviewPager = (ViewPager) content.findViewById(R.id.preview_pager);
final int[] previews = getPreviewSampleResIds();
mPreviewPager = content.findViewById(R.id.preview_pager);
mPreviewPagerAdapter = new PreviewPagerAdapter(context, isLayoutRtl,
mPreviewSampleResIds, configurations);
previews, configurations);
mPreviewPager.setAdapter(mPreviewPagerAdapter);
mPreviewPager.setCurrentItem(isLayoutRtl ? mPreviewSampleResIds.length - 1 : 0);
mPreviewPager.setCurrentItem(isLayoutRtl ? previews.length - 1 : 0);
mPreviewPager.addOnPageChangeListener(mPreviewPageChangeListener);
mPageIndicator = (DotsPageIndicator) content.findViewById(R.id.page_indicator);
if (mPreviewSampleResIds.length > 1) {
mPageIndicator = content.findViewById(R.id.page_indicator);
if (previews.length > 1) {
mPageIndicator.setViewPager(mPreviewPager);
mPageIndicator.setVisibility(View.VISIBLE);
mPageIndicator.setOnPageChangeListener(mPageIndicatorPageChangeListener);
@@ -187,6 +172,12 @@ public abstract class PreviewSeekBarPreferenceFragment extends SettingsPreferenc
mSeekBar.setOnSeekBarChangeListener(null);
}
/** Resource id of the layout for this preference fragment. */
protected abstract int getActivityLayoutResId();
/** Resource id of the layout that defines the contents inside preview screen. */
protected abstract int[] getPreviewSampleResIds();
/**
* Creates new configuration based on the current position of the SeekBar.
*/
@@ -210,8 +201,8 @@ public abstract class PreviewSeekBarPreferenceFragment extends SettingsPreferenc
private void setPagerIndicatorContentDescription(int position) {
mPageIndicator.setContentDescription(
getPrefContext().getString(R.string.preview_page_indicator_content_description,
position + 1, mPreviewSampleResIds.length));
getString(R.string.preview_page_indicator_content_description,
position + 1, getPreviewSampleResIds().length));
}
private OnPageChangeListener mPreviewPageChangeListener = new OnPageChangeListener() {

View File

@@ -18,8 +18,7 @@ package com.android.settings.display;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
public class ScreenZoomPreferenceFragmentForSetupWizard
extends ScreenZoomSettings {
public class ScreenZoomPreferenceFragmentForSetupWizard extends ScreenZoomSettings {
@Override
public int getMetricsCategory() {

View File

@@ -24,7 +24,6 @@ import android.os.Bundle;
import android.view.Display;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.PreviewSeekBarPreferenceFragment;
import com.android.settings.R;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
@@ -42,17 +41,26 @@ public class ScreenZoomSettings extends PreviewSeekBarPreferenceFragment impleme
private int mDefaultDensity;
private int[] mValues;
@Override
protected int getActivityLayoutResId() {
return R.layout.screen_zoom_activity;
}
@Override
protected int[] getPreviewSampleResIds() {
return getContext().getResources().getBoolean(
R.bool.config_enable_extra_screen_zoom_preview)
? new int[]{
R.layout.screen_zoom_preview_1,
R.layout.screen_zoom_preview_2,
R.layout.screen_zoom_preview_settings}
: new int[]{R.layout.screen_zoom_preview_1};
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivityLayoutResId = R.layout.screen_zoom_activity;
// This should be replaced once the final preview sample screen is in place.
mPreviewSampleResIds = new int[] {R.layout.screen_zoom_preview_1,
R.layout.screen_zoom_preview_2,
R.layout.screen_zoom_preview_settings};
final DisplayDensityUtils density = new DisplayDensityUtils(getContext());
final int initialIndex = density.getCurrentIndex();
@@ -61,8 +69,8 @@ public class ScreenZoomSettings extends PreviewSeekBarPreferenceFragment impleme
// connect to the window manager service. Just use the current
// density and don't let the user change anything.
final int densityDpi = getResources().getDisplayMetrics().densityDpi;
mValues = new int[] {densityDpi};
mEntries = new String[] {getString(DisplayDensityUtils.SUMMARY_DEFAULT)};
mValues = new int[]{densityDpi};
mEntries = new String[]{getString(DisplayDensityUtils.SUMMARY_DEFAULT)};
mInitialIndex = 0;
mDefaultDensity = densityDpi;
} else {
@@ -107,7 +115,7 @@ public class ScreenZoomSettings extends PreviewSeekBarPreferenceFragment impleme
}
/** Index provider used to expose this fragment in search. */
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
public List<SearchIndexableRaw> getRawDataToIndex(Context context,

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2015 The Android Open Source Project
* Copyright (C) 2018 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.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.android.settings.accessibility;
package com.android.settings.display;
import android.annotation.Nullable;
import android.content.ContentResolver;
@@ -24,7 +24,6 @@ import android.os.Bundle;
import android.provider.Settings;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.PreviewSeekBarPreferenceFragment;
import com.android.settings.R;
/**
@@ -34,14 +33,21 @@ public class ToggleFontSizePreferenceFragment extends PreviewSeekBarPreferenceFr
private float[] mValues;
@Override
protected int getActivityLayoutResId() {
return R.layout.font_size_activity;
}
@Override
protected int[] getPreviewSampleResIds() {
return new int[]{R.layout.font_size_preview};
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivityLayoutResId = R.layout.font_size_activity;
mPreviewSampleResIds = new int[]{R.layout.font_size_preview};
Resources res = getContext().getResources();
final Resources res = getContext().getResources();
final ContentResolver resolver = getContext().getContentResolver();
// Mark the appropriate item in the preferences list.
mEntries = res.getStringArray(R.array.entries_font_size);