Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37c95e41 authored by Noah Wang's avatar Noah Wang
Browse files

Change Preview Pager and Pager Indicator order for

RTL environment
Bug: 28025982

Change-Id: Ia80220f9e4c4a22a10e7cd857dc4e3573ee7b51d
parent bd666a17
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -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);
            }
        }
    }
+7 −2
Original line number Diff line number Diff line
@@ -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);