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

Commit e861ea92 authored by Candice Lo's avatar Candice Lo Committed by Android (Google) Code Review
Browse files

Merge "Tapping settings button for opening/closing panel" into udc-qpr-dev

parents 23a2a804 e22f8e2b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2390,6 +2390,8 @@
    <string name="magnification_mode_switch_state_window">Magnify part of screen</string>
    <!-- Click action label for magnification settings panel. [CHAR LIMIT=NONE] -->
    <string name="magnification_open_settings_click_label">Open magnification settings</string>
    <!-- Click action label for magnification settings panel. [CHAR LIMIT=NONE] -->
    <string name="magnification_close_settings_click_label">Close magnification settings</string>
    <!-- Label of the corner of a rectangle that you can tap and drag to resize the magnification area. [CHAR LIMIT=NONE] -->
    <string name="magnification_drag_corner_to_resize">Drag corner to resize</string>

+4 −3
Original line number Diff line number Diff line
@@ -87,14 +87,15 @@ public class MagnificationSettingsController implements ComponentCallbacks {
    }

    /**
     * Shows magnification settings panel {@link WindowMagnificationSettings}.
     * Toggles the visibility of magnification settings panel {@link WindowMagnificationSettings}.
     * We show the panel if it is not visible. Otherwise, hide the panel.
     */
    void showMagnificationSettings() {
    void toggleSettingsPanelVisibility() {
        if (!mWindowMagnificationSettings.isSettingPanelShowing()) {
            onConfigurationChanged(mContext.getResources().getConfiguration());
            mContext.registerComponentCallbacks(this);
        }
        mWindowMagnificationSettings.showSettingPanel();
        mWindowMagnificationSettings.toggleSettingsPanelVisibility();
    }

    void closeMagnificationSettings() {
+4 −4
Original line number Diff line number Diff line
@@ -171,7 +171,7 @@ public class WindowMagnification implements CoreStartable, CommandQueue.Callback

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

@@ -254,11 +254,11 @@ public class WindowMagnification implements CoreStartable, CommandQueue.Callback
    }

    @MainThread
    void showMagnificationSettingsPanel(int displayId) {
    void toggleSettingsPanelVisibility(int displayId) {
        final MagnificationSettingsController magnificationSettingsController =
                mMagnificationSettingsSupplier.get(displayId);
        if (magnificationSettingsController != null) {
            magnificationSettingsController.showMagnificationSettings();
            magnificationSettingsController.toggleSettingsPanelVisibility();
        }
    }

@@ -335,7 +335,7 @@ public class WindowMagnification implements CoreStartable, CommandQueue.Callback
        @Override
        public void onClickSettingsButton(int displayId) {
            mHandler.post(() -> {
                showMagnificationSettingsPanel(displayId);
                toggleSettingsPanelVisibility(displayId);
            });
        }
    };
+12 −2
Original line number Diff line number Diff line
@@ -221,6 +221,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold

    private boolean mAllowDiagonalScrolling = false;
    private boolean mEditSizeEnable = false;
    private boolean mSettingsPanelVisibility = false;

    @Nullable
    private final MirrorWindowControl mMirrorWindowControl;
@@ -1399,6 +1400,8 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
            return;
        }

        mSettingsPanelVisibility = settingsPanelIsShown;

        mDragView.setBackground(mContext.getResources().getDrawable(settingsPanelIsShown
                ? R.drawable.accessibility_window_magnification_drag_handle_background_change
                : R.drawable.accessibility_window_magnification_drag_handle_background));
@@ -1439,12 +1442,19 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold

    private class MirrorWindowA11yDelegate extends View.AccessibilityDelegate {

        private CharSequence getClickAccessibilityActionLabel() {
            return mSettingsPanelVisibility
                    ? mContext.getResources().getString(
                            R.string.magnification_close_settings_click_label)
                    : mContext.getResources().getString(
                            R.string.magnification_open_settings_click_label);
        }

        @Override
        public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
            super.onInitializeAccessibilityNodeInfo(host, info);
            final AccessibilityAction clickAction = new AccessibilityAction(
                    AccessibilityAction.ACTION_CLICK.getId(), mContext.getResources().getString(
                    R.string.magnification_open_settings_click_label));
                    AccessibilityAction.ACTION_CLICK.getId(), getClickAccessibilityActionLabel());
            info.addAction(clickAction);
            info.setClickable(true);
            info.addAction(
+8 −0
Original line number Diff line number Diff line
@@ -311,6 +311,14 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
        mCallback.onSettingsPanelVisibilityChanged(/* shown= */ false);
    }

    public void toggleSettingsPanelVisibility() {
        if (!mIsVisible) {
            showSettingPanel();
        } else {
            hideSettingPanel();
        }
    }

    public void showSettingPanel() {
        showSettingPanel(true);
    }
Loading