diff --git a/src/com/android/settings/PreviewPagerAdapter.java b/src/com/android/settings/PreviewPagerAdapter.java index 20d17617971..7e4ebf38411 100644 --- a/src/com/android/settings/PreviewPagerAdapter.java +++ b/src/com/android/settings/PreviewPagerAdapter.java @@ -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); } } } diff --git a/src/com/android/settings/PreviewSeekBarPreferenceFragment.java b/src/com/android/settings/PreviewSeekBarPreferenceFragment.java index a7763f71062..ff9e0352128 100644 --- a/src/com/android/settings/PreviewSeekBarPreferenceFragment.java +++ b/src/com/android/settings/PreviewSeekBarPreferenceFragment.java @@ -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);