Merge "Change Preview Pager and Pager Indicator order for RTL environment Bug: 28025982" into nyc-dev
diff --git a/src/com/android/settings/PreviewPagerAdapter.java b/src/com/android/settings/PreviewPagerAdapter.java
index 20d1761..7e4ebf3 100644
--- a/src/com/android/settings/PreviewPagerAdapter.java
+++ b/src/com/android/settings/PreviewPagerAdapter.java
@@ -45,19 +45,23 @@
/** 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 @@
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);
}
}
}
diff --git a/src/com/android/settings/PreviewSeekBarPreferenceFragment.java b/src/com/android/settings/PreviewSeekBarPreferenceFragment.java
index a7763f7..ff9e035 100644
--- a/src/com/android/settings/PreviewSeekBarPreferenceFragment.java
+++ b/src/com/android/settings/PreviewSeekBarPreferenceFragment.java
@@ -21,6 +21,7 @@
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.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 @@
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 @@
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);