Change Preview Pager and Pager Indicator order for
RTL environment Bug: 28025982 Change-Id: Ia80220f9e4c4a22a10e7cd857dc4e3573ee7b51d
This commit is contained in:
@@ -45,19 +45,23 @@ public class PreviewPagerAdapter extends PagerAdapter {
|
||||
/** Interpolator to use when cross-fading between previews. */
|
||||
private static final Interpolator FADE_OUT_INTERPOLATOR = new AccelerateInterpolator();
|
||||
|
||||
private final FrameLayout[] mPreviewFrames;
|
||||
private FrameLayout[] mPreviewFrames;
|
||||
|
||||
private boolean mIsLayoutRtl;
|
||||
|
||||
private Runnable mAnimationEndAction;
|
||||
|
||||
private int mAnimationCounter;
|
||||
|
||||
public PreviewPagerAdapter(Context context, int[] previewSampleResIds,
|
||||
Configuration[] configurations) {
|
||||
public PreviewPagerAdapter(Context context, boolean isLayoutRtl,
|
||||
int[] previewSampleResIds, Configuration[] configurations) {
|
||||
mIsLayoutRtl = isLayoutRtl;
|
||||
mPreviewFrames = new FrameLayout[previewSampleResIds.length];
|
||||
|
||||
for (int i = 0; i < previewSampleResIds.length; ++i) {
|
||||
mPreviewFrames[i] = new FrameLayout(context);
|
||||
mPreviewFrames[i].setLayoutParams(new LinearLayout.LayoutParams(
|
||||
int p = mIsLayoutRtl ? previewSampleResIds.length - 1 - i : i;
|
||||
mPreviewFrames[p] = new FrameLayout(context);
|
||||
mPreviewFrames[p].setLayoutParams(new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT,
|
||||
LinearLayout.LayoutParams.MATCH_PARENT));
|
||||
|
||||
@@ -69,10 +73,10 @@ public class PreviewPagerAdapter extends PagerAdapter {
|
||||
|
||||
final LayoutInflater configInflater = LayoutInflater.from(configContext);
|
||||
final View sampleView = configInflater.inflate(previewSampleResIds[i],
|
||||
mPreviewFrames[i], false);
|
||||
mPreviewFrames[p], false);
|
||||
sampleView.setAlpha(0);
|
||||
sampleView.setVisibility(View.INVISIBLE);
|
||||
mPreviewFrames[i].addView(sampleView);
|
||||
mPreviewFrames[p].addView(sampleView);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -21,6 +21,7 @@ import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.support.v4.view.ViewPager.OnPageChangeListener;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
@@ -29,9 +30,11 @@ import android.view.accessibility.AccessibilityEvent;
|
||||
import android.widget.SeekBar;
|
||||
import android.widget.SeekBar.OnSeekBarChangeListener;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.settings.widget.DotsPageIndicator;
|
||||
import com.android.settings.widget.LabeledSeekBar;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* Preference fragment shows a preview and a seek bar to adjust a specific settings.
|
||||
@@ -146,6 +149,7 @@ public abstract class PreviewSeekBarPreferenceFragment extends SettingsPreferenc
|
||||
|
||||
final Context context = getPrefContext();
|
||||
final Configuration origConfig = context.getResources().getConfiguration();
|
||||
final boolean isLayoutRtl = origConfig.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
|
||||
Configuration[] configurations = new Configuration[mEntries.length];
|
||||
for (int i = 0; i < mEntries.length; ++i) {
|
||||
configurations[i] = createConfig(origConfig, i);
|
||||
@@ -153,9 +157,10 @@ public abstract class PreviewSeekBarPreferenceFragment extends SettingsPreferenc
|
||||
|
||||
mPreviewPager = (ViewPager) content.findViewById(R.id.preview_pager);
|
||||
if (mPreviewPager != null) {
|
||||
mPreviewPagerAdapter = new PreviewPagerAdapter(context, mPreviewSampleResIds,
|
||||
configurations);
|
||||
mPreviewPagerAdapter = new PreviewPagerAdapter(context, isLayoutRtl,
|
||||
mPreviewSampleResIds, configurations);
|
||||
mPreviewPager.setAdapter(mPreviewPagerAdapter);
|
||||
mPreviewPager.setCurrentItem(isLayoutRtl ? mPreviewSampleResIds.length - 1 : 0);
|
||||
mPreviewPager.addOnPageChangeListener(mPreviewPageChangeListener);
|
||||
|
||||
mPageIndicator = (DotsPageIndicator) content.findViewById(R.id.page_indicator);
|
||||
|
Reference in New Issue
Block a user