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

Commit 87ec078d authored by Noah Wang's avatar Noah Wang Committed by Android (Google) Code Review
Browse files

Merge "Change Preview Pager and Pager Indicator order for RTL environment Bug:...

Merge "Change Preview Pager and Pager Indicator order for RTL environment Bug: 28025982" into nyc-dev
parents 697f3a6c 37c95e41
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);