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

Commit 82527ce3 authored by Annie Chin's avatar Annie Chin
Browse files

Modify accessibility click behavior in alarm firing screen.

Bug: 19729065

Allow snooze/dismiss on double-tap of respective icons.
Users can still two-finger swipe to dismiss in accessibility mode.
This has no effect on non-accessibility users.

Change-Id: I778460df8e665230f61626c044f462849a14e2eb
parent a69a03c8
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -78,7 +78,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/bg_circle_pink"
            android:contentDescription="@string/description_direction_left"
            android:contentDescription="@string/alarm_alert_snooze_text"
            android:src="@drawable/ic_snooze_white_80dp"
            ex:layout_row="2"
            ex:layout_column="0"
@@ -90,7 +90,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/bg_circle_white"
            android:contentDescription="@string/description_direction_right"
            android:contentDescription="@string/alarm_alert_dismiss_text"
            android:src="@drawable/ic_alarm_off_white_80dp"
            ex:layout_row="2"
            ex:layout_column="2"
@@ -102,7 +102,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            android:contentDescription="@string/description_direction_right"
            android:contentDescription="@string/description_direction_both"
            android:paddingBottom="@dimen/alarm_lockscreen_alarm_vertical_padding"
            android:paddingLeft="@dimen/alarm_lockscreen_alarm_horizontal_padding"
            android:paddingRight="@dimen/alarm_lockscreen_alarm_horizontal_padding"
+4 −0
Original line number Diff line number Diff line
@@ -781,6 +781,10 @@
         be on the left even on RTL languages so please do not reverse this during
         translation. -->
    <string name="description_direction_left">Swipe left to snooze</string>
    <!-- Text instruction for alarm icon on alarm lock screen. The snooze button will still
         be on the left even on RTL languages so please do not reverse this during
         translation. -->
    <string name="description_direction_both">Swipe left to snooze or right to dismiss</string>

    <!-- Notification title when timer is stopped. -->
    <string name="timer_stopped">Timer stopped</string>
+14 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.accessibility.AccessibilityManager;
import android.widget.ImageView;
import android.widget.TextClock;
import android.widget.TextView;
@@ -126,6 +127,7 @@ public class AlarmActivity extends AppCompatActivity
    /** Whether the AlarmService is currently bound */
    private boolean mServiceBound;

    private AccessibilityManager mAccessibilityManager;

    private ViewGroup mAlertView;
    private TextView mAlertTitleView;
@@ -188,6 +190,8 @@ public class AlarmActivity extends AppCompatActivity
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
        }

        mAccessibilityManager = (AccessibilityManager) getSystemService(ACCESSIBILITY_SERVICE);

        setContentView(R.layout.alarm_activity);

        mAlertView = (ViewGroup) findViewById(R.id.alert);
@@ -318,6 +322,16 @@ public class AlarmActivity extends AppCompatActivity
        }
        LogUtils.v(LOGTAG, "onClick: %s", view);

        // If in accessibility mode, allow snooze/dismiss by double tapping on respective icons.
        if (mAccessibilityManager != null && mAccessibilityManager.isTouchExplorationEnabled()) {
            if (view == mSnoozeButton) {
                snooze();
            } else if (view == mDismissButton) {
                dismiss();
            }
            return;
        }

        final int alarmLeft = mAlarmButton.getLeft() + mAlarmButton.getPaddingLeft();
        final int alarmRight = mAlarmButton.getRight() - mAlarmButton.getPaddingRight();
        final float translationX = Math.max(view.getLeft() - alarmRight, 0)