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

Commit 2abf4fed authored by Roy Chou's avatar Roy Chou
Browse files

feat(#MagSettingsPanel)!: support WindowMagnificationSettings for fullscreen magnifier

We adjust the MagnificationModeSwitch onSwitch callback to onClick. When tapping on MagnificationModeSwitch, we changed to open WindowMagnificationSettings. Originally it would just transit to window mode directly.

According to the adjustment, we can open settings panel for fullscreen mode. We can still transit to window mode by clicking the panel size buttons. Also, we can directly change the fullscreen magnifier scale with the panel scale seek bar.

Bug: 271127581
Test: manually
      atest MagnificationModeSwitchTest
      atest ModeSwitchesControllerTest
      atest WindowMagnificationTest
      atest WindowMagnificationSettingsTest
      atest MagnificationControllerTest
Change-Id: Ibd1f914f5ba08939280be3cf9c33554ea4d520ca
parent 672511cf
Loading
Loading
Loading
Loading
+8 −18
Original line number Original line Diff line number Diff line
@@ -77,7 +77,7 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL
    private final SfVsyncFrameCallbackProvider mSfVsyncFrameProvider;
    private final SfVsyncFrameCallbackProvider mSfVsyncFrameProvider;
    private int mMagnificationMode = ACCESSIBILITY_MAGNIFICATION_MODE_NONE;
    private int mMagnificationMode = ACCESSIBILITY_MAGNIFICATION_MODE_NONE;
    private final LayoutParams mParams;
    private final LayoutParams mParams;
    private final SwitchListener mSwitchListener;
    private final ClickListener mClickListener;
    private final Configuration mConfiguration;
    private final Configuration mConfiguration;
    @VisibleForTesting
    @VisibleForTesting
    final Rect mDraggableWindowBounds = new Rect();
    final Rect mDraggableWindowBounds = new Rect();
@@ -86,30 +86,28 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL
    private boolean mSingleTapDetected = false;
    private boolean mSingleTapDetected = false;
    private boolean mToLeftScreenEdge = false;
    private boolean mToLeftScreenEdge = false;


    public interface SwitchListener {
    public interface ClickListener {
        /**
        /**
         * Called when the switch is clicked to change the magnification mode.
         * Called when the switch is clicked to change the magnification mode.
         * @param displayId the display id of the display to which the view's window has been
         * @param displayId the display id of the display to which the view's window has been
         *                  attached
         *                  attached
         * @param magnificationMode the magnification mode
         */
         */
        void onSwitch(int displayId, int magnificationMode);
        void onClick(int displayId);
    }
    }


    MagnificationModeSwitch(@UiContext Context context,
    MagnificationModeSwitch(@UiContext Context context, ClickListener clickListener) {
            SwitchListener switchListener) {
        this(context, createView(context), new SfVsyncFrameCallbackProvider(), clickListener);
        this(context, createView(context), new SfVsyncFrameCallbackProvider(), switchListener);
    }
    }


    @VisibleForTesting
    @VisibleForTesting
    MagnificationModeSwitch(Context context, @NonNull ImageView imageView,
    MagnificationModeSwitch(Context context, @NonNull ImageView imageView,
            SfVsyncFrameCallbackProvider sfVsyncFrameProvider, SwitchListener switchListener) {
            SfVsyncFrameCallbackProvider sfVsyncFrameProvider, ClickListener clickListener) {
        mContext = context;
        mContext = context;
        mConfiguration = new Configuration(context.getResources().getConfiguration());
        mConfiguration = new Configuration(context.getResources().getConfiguration());
        mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class);
        mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class);
        mWindowManager = mContext.getSystemService(WindowManager.class);
        mWindowManager = mContext.getSystemService(WindowManager.class);
        mSfVsyncFrameProvider = sfVsyncFrameProvider;
        mSfVsyncFrameProvider = sfVsyncFrameProvider;
        mSwitchListener = switchListener;
        mClickListener = clickListener;
        mParams = createLayoutParams(context);
        mParams = createLayoutParams(context);
        mImageView = imageView;
        mImageView = imageView;
        mImageView.setOnTouchListener(this::onTouch);
        mImageView.setOnTouchListener(this::onTouch);
@@ -396,17 +394,9 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL
        }
        }
    }
    }


    private void toggleMagnificationMode() {
        final int newMode =
                mMagnificationMode ^ Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_ALL;
        mMagnificationMode = newMode;
        mImageView.setImageResource(getIconResId(newMode));
        mSwitchListener.onSwitch(mContext.getDisplayId(), newMode);
    }

    private void handleSingleTap() {
    private void handleSingleTap() {
        removeButton();
        removeButton();
        toggleMagnificationMode();
        mClickListener.onClick(mContext.getDisplayId());
    }
    }


    private static ImageView createView(Context context) {
    private static ImageView createView(Context context) {
+17 −18
Original line number Original line Diff line number Diff line
@@ -18,7 +18,7 @@ package com.android.systemui.accessibility;


import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY;
import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY;


import static com.android.systemui.accessibility.MagnificationModeSwitch.SwitchListener;
import static com.android.systemui.accessibility.MagnificationModeSwitch.ClickListener;


import android.annotation.MainThread;
import android.annotation.MainThread;
import android.content.Context;
import android.content.Context;
@@ -37,19 +37,18 @@ import javax.inject.Inject;
 *   <li> Both full-screen and window magnification mode are capable.</li>
 *   <li> Both full-screen and window magnification mode are capable.</li>
 *   <li> The magnification scale is changed by a user.</li>
 *   <li> The magnification scale is changed by a user.</li>
 * <ol>
 * <ol>
 * The switch action will be handled by {@link #mSwitchListenerDelegate} which informs the system
 * The click action will be handled by {@link #mClickListenerDelegate} which opens the
 * server about the changed mode.
 * {@link WindowMagnificationSettings} panel.
 */
 */
@SysUISingleton
@SysUISingleton
public class ModeSwitchesController implements SwitchListener {
public class ModeSwitchesController implements ClickListener {


    private final DisplayIdIndexSupplier<MagnificationModeSwitch> mSwitchSupplier;
    private final DisplayIdIndexSupplier<MagnificationModeSwitch> mSwitchSupplier;
    private SwitchListener mSwitchListenerDelegate;
    private ClickListener mClickListenerDelegate;


    @Inject
    @Inject
    public ModeSwitchesController(Context context) {
    public ModeSwitchesController(Context context, DisplayManager displayManager) {
        mSwitchSupplier = new SwitchSupplier(context,
        mSwitchSupplier = new SwitchSupplier(context, displayManager, this::onClick);
                context.getSystemService(DisplayManager.class), this::onSwitch);
    }
    }


    @VisibleForTesting
    @VisibleForTesting
@@ -102,40 +101,40 @@ public class ModeSwitchesController implements SwitchListener {
    }
    }


    @Override
    @Override
    public void onSwitch(int displayId, int magnificationMode) {
    public void onClick(int displayId) {
        if (mSwitchListenerDelegate != null) {
        if (mClickListenerDelegate != null) {
            mSwitchListenerDelegate.onSwitch(displayId, magnificationMode);
            mClickListenerDelegate.onClick(displayId);
        }
        }
    }
    }


    public void setSwitchListenerDelegate(SwitchListener switchListenerDelegate) {
    public void setClickListenerDelegate(ClickListener clickListenerDelegate) {
        mSwitchListenerDelegate = switchListenerDelegate;
        mClickListenerDelegate = clickListenerDelegate;
    }
    }


    private static class SwitchSupplier extends DisplayIdIndexSupplier<MagnificationModeSwitch> {
    private static class SwitchSupplier extends DisplayIdIndexSupplier<MagnificationModeSwitch> {


        private final Context mContext;
        private final Context mContext;
        private final SwitchListener mSwitchListener;
        private final ClickListener mClickListener;


        /**
        /**
         * Supplies the switch for the given display.
         * Supplies the switch for the given display.
         *
         *
         * @param context        Context
         * @param context        Context
         * @param displayManager DisplayManager
         * @param displayManager DisplayManager
         * @param switchListener The callback that will run when the switch is clicked
         * @param clickListener The callback that will run when the switch is clicked
         */
         */
        SwitchSupplier(Context context, DisplayManager displayManager,
        SwitchSupplier(Context context, DisplayManager displayManager,
                SwitchListener switchListener) {
                ClickListener clickListener) {
            super(displayManager);
            super(displayManager);
            mContext = context;
            mContext = context;
            mSwitchListener = switchListener;
            mClickListener = clickListener;
        }
        }


        @Override
        @Override
        protected MagnificationModeSwitch createInstance(Display display) {
        protected MagnificationModeSwitch createInstance(Display display) {
            final Context uiContext = mContext.createWindowContext(display,
            final Context uiContext = mContext.createWindowContext(display,
                    TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, /* options */ null);
                    TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, /* options */ null);
            return new MagnificationModeSwitch(uiContext, mSwitchListener);
            return new MagnificationModeSwitch(uiContext, mClickListener);
        }
        }
    }
    }
}
}
+4 −4
Original line number Original line Diff line number Diff line
@@ -165,6 +165,9 @@ public class WindowMagnification implements CoreStartable, CommandQueue.Callback
                displayManager, sysUiState, secureSettings);
                displayManager, sysUiState, secureSettings);
        mMagnificationSettingsSupplier = new SettingsSupplier(context,
        mMagnificationSettingsSupplier = new SettingsSupplier(context,
                mMagnificationSettingsControllerCallback, displayManager, secureSettings);
                mMagnificationSettingsControllerCallback, displayManager, secureSettings);

        mModeSwitchesController.setClickListenerDelegate(
                displayId -> mHandler.post(() -> showMagnificationSettingsPanel(displayId)));
    }
    }


    @Override
    @Override
@@ -416,7 +419,7 @@ public class WindowMagnification implements CoreStartable, CommandQueue.Callback
    private void onSettingsPanelVisibilityChangedInternal(int displayId, boolean shown) {
    private void onSettingsPanelVisibilityChangedInternal(int displayId, boolean shown) {
        final WindowMagnificationController windowMagnificationController =
        final WindowMagnificationController windowMagnificationController =
                mMagnificationControllerSupplier.get(displayId);
                mMagnificationControllerSupplier.get(displayId);
        if (windowMagnificationController != null) {
        if (windowMagnificationController != null && windowMagnificationController.isActivated()) {
            windowMagnificationController.updateDragHandleResourcesIfNeeded(shown);
            windowMagnificationController.updateDragHandleResourcesIfNeeded(shown);
        }
        }
    }
    }
@@ -442,15 +445,12 @@ public class WindowMagnification implements CoreStartable, CommandQueue.Callback
            mWindowMagnificationConnectionImpl = new WindowMagnificationConnectionImpl(this,
            mWindowMagnificationConnectionImpl = new WindowMagnificationConnectionImpl(this,
                    mHandler);
                    mHandler);
        }
        }
        mModeSwitchesController.setSwitchListenerDelegate(
                mWindowMagnificationConnectionImpl::onChangeMagnificationMode);
        mAccessibilityManager.setWindowMagnificationConnection(
        mAccessibilityManager.setWindowMagnificationConnection(
                mWindowMagnificationConnectionImpl);
                mWindowMagnificationConnectionImpl);
    }
    }


    private void clearWindowMagnificationConnection() {
    private void clearWindowMagnificationConnection() {
        mAccessibilityManager.setWindowMagnificationConnection(null);
        mAccessibilityManager.setWindowMagnificationConnection(null);
        mModeSwitchesController.setSwitchListenerDelegate(null);
        //TODO: destroy controllers.
        //TODO: destroy controllers.
    }
    }
}
}
+19 −2
Original line number Original line Diff line number Diff line
@@ -51,6 +51,7 @@ import android.provider.Settings;
import android.util.Log;
import android.util.Log;
import android.util.Range;
import android.util.Range;
import android.util.Size;
import android.util.Size;
import android.util.SparseArray;
import android.util.TypedValue;
import android.util.TypedValue;
import android.view.Choreographer;
import android.view.Choreographer;
import android.view.Display;
import android.view.Display;
@@ -103,7 +104,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
    private static final Range<Float> A11Y_ACTION_SCALE_RANGE = new Range<>(1.0f, 8.0f);
    private static final Range<Float> A11Y_ACTION_SCALE_RANGE = new Range<>(1.0f, 8.0f);
    private static final float A11Y_CHANGE_SCALE_DIFFERENCE = 1.0f;
    private static final float A11Y_CHANGE_SCALE_DIFFERENCE = 1.0f;
    private static final float ANIMATION_BOUNCE_EFFECT_SCALE = 1.05f;
    private static final float ANIMATION_BOUNCE_EFFECT_SCALE = 1.05f;
    private static final float[] MAGNIFICATION_SCALE_OPTIONS = {1.0f, 1.4f, 1.8f, 2.5f};
    private final SparseArray<Float> mMagnificationSizeScaleOptions = new SparseArray<>();


    private final Context mContext;
    private final Context mContext;
    private final Resources mResources;
    private final Resources mResources;
@@ -258,6 +259,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
                mResources.getInteger(R.integer.magnification_default_scale),
                mResources.getInteger(R.integer.magnification_default_scale),
                UserHandle.USER_CURRENT);
                UserHandle.USER_CURRENT);


        setupMagnificationSizeScaleOptions();


        mBounceEffectDuration = mResources.getInteger(
        mBounceEffectDuration = mResources.getInteger(
                com.android.internal.R.integer.config_shortAnimTime);
                com.android.internal.R.integer.config_shortAnimTime);
@@ -328,6 +330,13 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
        mWindowInsetChangeRunnable = this::onWindowInsetChanged;
        mWindowInsetChangeRunnable = this::onWindowInsetChanged;
    }
    }


    private void setupMagnificationSizeScaleOptions() {
        mMagnificationSizeScaleOptions.clear();
        mMagnificationSizeScaleOptions.put(MagnificationSize.SMALL, 1.4f);
        mMagnificationSizeScaleOptions.put(MagnificationSize.MEDIUM, 1.8f);
        mMagnificationSizeScaleOptions.put(MagnificationSize.LARGE, 2.5f);
    }

    private void updateDimensions() {
    private void updateDimensions() {
        mMirrorSurfaceMargin = mResources.getDimensionPixelSize(
        mMirrorSurfaceMargin = mResources.getDimensionPixelSize(
                R.dimen.magnification_mirror_surface_margin);
                R.dimen.magnification_mirror_surface_margin);
@@ -362,8 +371,12 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
    }
    }


    void changeMagnificationSize(@MagnificationSize int index) {
    void changeMagnificationSize(@MagnificationSize int index) {
        if (!mMagnificationSizeScaleOptions.contains(index)) {
            return;
        }
        final float scale = mMagnificationSizeScaleOptions.get(index, 1.0f);
        final int initSize = Math.min(mWindowBounds.width(), mWindowBounds.height()) / 3;
        final int initSize = Math.min(mWindowBounds.width(), mWindowBounds.height()) / 3;
        int size = (int) (initSize * MAGNIFICATION_SCALE_OPTIONS[index]);
        int size = (int) (initSize * scale);
        setWindowSize(size, size);
        setWindowSize(size, size);
    }
    }


@@ -1382,6 +1395,10 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
    }
    }


    void updateDragHandleResourcesIfNeeded(boolean settingsPanelIsShown) {
    void updateDragHandleResourcesIfNeeded(boolean settingsPanelIsShown) {
        if (!isActivated()) {
            return;
        }

        mDragView.setBackground(mContext.getResources().getDrawable(settingsPanelIsShown
        mDragView.setBackground(mContext.getResources().getDrawable(settingsPanelIsShown
                ? R.drawable.accessibility_window_magnification_drag_handle_background_change
                ? R.drawable.accessibility_window_magnification_drag_handle_background_change
                : R.drawable.accessibility_window_magnification_drag_handle_background));
                : R.drawable.accessibility_window_magnification_drag_handle_background));
+27 −10
Original line number Original line Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.accessibility;
package com.android.systemui.accessibility;


import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW;
import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;


import android.annotation.IntDef;
import android.annotation.IntDef;
@@ -91,7 +92,7 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
    private ImageButton mLargeButton;
    private ImageButton mLargeButton;
    private Button mDoneButton;
    private Button mDoneButton;
    private Button mEditButton;
    private Button mEditButton;
    private ImageButton mChangeModeButton;
    private ImageButton mFullScreenButton;
    private int mLastSelectedButtonIndex = MagnificationSize.NONE;
    private int mLastSelectedButtonIndex = MagnificationSize.NONE;
    private boolean mAllowDiagonalScrolling = false;
    private boolean mAllowDiagonalScrolling = false;
    private static final float A11Y_CHANGE_SCALE_DIFFERENCE = 1.0f;
    private static final float A11Y_CHANGE_SCALE_DIFFERENCE = 1.0f;
@@ -104,6 +105,7 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
            MagnificationSize.SMALL,
            MagnificationSize.SMALL,
            MagnificationSize.MEDIUM,
            MagnificationSize.MEDIUM,
            MagnificationSize.LARGE,
            MagnificationSize.LARGE,
            MagnificationSize.FULLSCREEN
    })
    })
    /** Denotes the Magnification size type. */
    /** Denotes the Magnification size type. */
    public @interface MagnificationSize {
    public @interface MagnificationSize {
@@ -111,6 +113,7 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
        int SMALL = 1;
        int SMALL = 1;
        int MEDIUM = 2;
        int MEDIUM = 2;
        int LARGE = 3;
        int LARGE = 3;
        int FULLSCREEN = 4;
    }
    }


    @VisibleForTesting
    @VisibleForTesting
@@ -247,13 +250,12 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
                setMagnifierSize(MagnificationSize.MEDIUM);
                setMagnifierSize(MagnificationSize.MEDIUM);
            } else if (id == R.id.magnifier_large_button) {
            } else if (id == R.id.magnifier_large_button) {
                setMagnifierSize(MagnificationSize.LARGE);
                setMagnifierSize(MagnificationSize.LARGE);
            } else if (id == R.id.magnifier_full_button) {
                setMagnifierSize(MagnificationSize.FULLSCREEN);
            } else if (id == R.id.magnifier_edit_button) {
            } else if (id == R.id.magnifier_edit_button) {
                editMagnifierSizeMode(true);
                editMagnifierSizeMode(true);
            } else if (id == R.id.magnifier_done_button) {
            } else if (id == R.id.magnifier_done_button) {
                hideSettingPanel();
                hideSettingPanel();
            } else if (id == R.id.magnifier_full_button) {
                hideSettingPanel();
                toggleMagnificationMode();
            }
            }
        }
        }
    };
    };
@@ -330,8 +332,8 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
        setSeekbarProgress(scale);
        setSeekbarProgress(scale);
    }
    }


    private void toggleMagnificationMode() {
    private void transitToMagnificationMode(int mode) {
        mCallback.onModeSwitch(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN);
        mCallback.onModeSwitch(mode);
    }
    }


    /**
    /**
@@ -388,7 +390,7 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
        mLargeButton = mSettingView.findViewById(R.id.magnifier_large_button);
        mLargeButton = mSettingView.findViewById(R.id.magnifier_large_button);
        mDoneButton = mSettingView.findViewById(R.id.magnifier_done_button);
        mDoneButton = mSettingView.findViewById(R.id.magnifier_done_button);
        mEditButton = mSettingView.findViewById(R.id.magnifier_edit_button);
        mEditButton = mSettingView.findViewById(R.id.magnifier_edit_button);
        mChangeModeButton = mSettingView.findViewById(R.id.magnifier_full_button);
        mFullScreenButton = mSettingView.findViewById(R.id.magnifier_full_button);


        mZoomSeekbar = mSettingView.findViewById(R.id.magnifier_zoom_slider);
        mZoomSeekbar = mSettingView.findViewById(R.id.magnifier_zoom_slider);
        float scale = mSecureSettings.getFloatForUser(
        float scale = mSecureSettings.getFloatForUser(
@@ -416,8 +418,8 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
        mDoneButton.setAccessibilityDelegate(mButtonDelegate);
        mDoneButton.setAccessibilityDelegate(mButtonDelegate);
        mDoneButton.setOnClickListener(mButtonClickListener);
        mDoneButton.setOnClickListener(mButtonClickListener);


        mChangeModeButton.setAccessibilityDelegate(mButtonDelegate);
        mFullScreenButton.setAccessibilityDelegate(mButtonDelegate);
        mChangeModeButton.setOnClickListener(mButtonClickListener);
        mFullScreenButton.setOnClickListener(mButtonClickListener);


        mEditButton.setAccessibilityDelegate(mButtonDelegate);
        mEditButton.setAccessibilityDelegate(mButtonDelegate);
        mEditButton.setOnClickListener(mButtonClickListener);
        mEditButton.setOnClickListener(mButtonClickListener);
@@ -505,7 +507,18 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
    }
    }


    private void setMagnifierSize(@MagnificationSize int index) {
    private void setMagnifierSize(@MagnificationSize int index) {
        if (index == MagnificationSize.FULLSCREEN) {
            // transit to fullscreen magnifier if needed
            transitToMagnificationMode(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN);
        } else if (index != MagnificationSize.NONE) {
            // update the window magnifier size
            mCallback.onSetMagnifierSize(index);
            mCallback.onSetMagnifierSize(index);
            // transit to window magnifier if needed
            transitToMagnificationMode(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
        } else {
            return;
        }

        updateSelectedButton(index);
        updateSelectedButton(index);
    }
    }


@@ -577,6 +590,8 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
            mMediumButton.setSelected(false);
            mMediumButton.setSelected(false);
        } else if (mLastSelectedButtonIndex == MagnificationSize.LARGE) {
        } else if (mLastSelectedButtonIndex == MagnificationSize.LARGE) {
            mLargeButton.setSelected(false);
            mLargeButton.setSelected(false);
        } else if (mLastSelectedButtonIndex == MagnificationSize.FULLSCREEN) {
            mFullScreenButton.setSelected(false);
        }
        }


        // Set the state for selected button
        // Set the state for selected button
@@ -586,6 +601,8 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
            mMediumButton.setSelected(true);
            mMediumButton.setSelected(true);
        } else if (index == MagnificationSize.LARGE) {
        } else if (index == MagnificationSize.LARGE) {
            mLargeButton.setSelected(true);
            mLargeButton.setSelected(true);
        } else if (index == MagnificationSize.FULLSCREEN) {
            mFullScreenButton.setSelected(true);
        }
        }


        mLastSelectedButtonIndex = index;
        mLastSelectedButtonIndex = index;
Loading