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

Commit 128140a9 authored by Mill Chen's avatar Mill Chen
Browse files

Explicitly set SliderPreference as not clickable

This change removes the custom AccessibilityDelegate and instead set
item view as not clickable to prevent click action on the
SliderPreference.

Fix: 431888539
Fix: 431889784
Fix: 431890794
Test: manual test with Talkback, keyboard and CtsVerifier
Flag: EXEMPT bugfix for accessibility
Change-Id: I8c9b97fd74cbf942bf8fbaff61385b15066eada1
parent eda5cd1c
Loading
Loading
Loading
Loading
+2 −11
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.ImageView;
import android.widget.TextView;

@@ -331,6 +330,8 @@ public class SliderPreference extends Preference {
    public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
        super.onBindViewHolder(holder);
        holder.itemView.setOnKeyListener(mSliderKeyListener);
        // SliderPreference is not clickable under normal conditions.
        holder.itemView.setClickable(false);
        mSlider = (Slider) holder.findViewById(R.id.slider);

        if (mSlider == null) {
@@ -410,16 +411,6 @@ public class SliderPreference extends Preference {

        ImageView iconEndView = (ImageView) holder.findViewById(R.id.icon_end);
        updateIconEndIfNeeded(iconEndView);

        // Remove the accessibility label of click action
        holder.itemView.getRootView().setAccessibilityDelegate(new View.AccessibilityDelegate() {
            @Override
            public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
                super.onInitializeAccessibilityNodeInfo(host, info);
                info.removeAction(AccessibilityNodeInfo.ACTION_CLICK);
                info.setClickable(false);
            }
        });
    }

    /**
+5 −0
Original line number Diff line number Diff line
@@ -75,6 +75,11 @@ public class RestrictedSliderPreference extends SliderPreference implements
    public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
        super.onBindViewHolder(holder);
        mHelper.onBindViewHolder(holder);
        if (mHelper.isDisabledByAdmin() || mHelper.isDisabledByEcm()) {
            // SliderPreference is not clickable under normal conditions, but it will become
            // clickable when the restriction is enabled.
            holder.itemView.setClickable(true);
        }
    }

    @SuppressLint("RestrictedApi")