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

Commit cd5267c3 authored by Jason Chiu's avatar Jason Chiu
Browse files

Fix the header talkback bug in DND schedule page

- set unselectable for LayoutPreference in xml
- use the correct done() API to modify the given LayoutPreference

Bug: 146848260
Test: robotest, manual
Change-Id: I29a00d788fbf87efd0b89e9b6bfa50d1ff24d466
parent c9d98884
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
    <com.android.settingslib.widget.LayoutPreference
        android:key="pref_app_header"
        android:layout="@layout/settings_entity_header"
        android:selectable="false"
        settings:allowDividerBelow="true" />

    <com.android.settingslib.widget.ActionButtonsPreference
+1 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
    <com.android.settingslib.widget.LayoutPreference
        android:key="pref_app_header"
        android:layout="@layout/settings_entity_header"
        android:selectable="false"
        settings:allowDividerBelow="true"/>

    <com.android.settingslib.widget.ActionButtonsPreference
+10 −21
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@ import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.service.notification.ZenModeConfig;
import android.util.Slog;
import android.view.View;

import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
@@ -61,31 +60,21 @@ public class ZenAutomaticRuleHeaderPreferenceController extends AbstractZenModeP
        return mRule != null;
    }

    @Override
    public void updateState(Preference preference) {
        if (mRule == null) {
        if (mRule == null || mFragment == null) {
            return;
        }

        if (mFragment != null) {
            LayoutPreference pref = (LayoutPreference) preference;

        if (mController == null) {
                mController = EntityHeaderController
                        .newInstance(mFragment.getActivity(), mFragment,
            final LayoutPreference pref = (LayoutPreference) preference;
            mController = EntityHeaderController.newInstance(mFragment.getActivity(), mFragment,
                    pref.findViewById(R.id.entity_header));
        }

            pref = mController.setIcon(getIcon())
        mController.setIcon(getIcon())
                .setLabel(mRule.getName())
                    .setPackageName(mRule.getOwner().getPackageName())
                    .setUid(mContext.getUserId())
                    .setHasAppInfoLink(false)
                    .setButtonActions(EntityHeaderController.ActionType.ACTION_EDIT_PREFERENCE,
                            EntityHeaderController.ActionType.ACTION_NONE)
                    .done(mFragment.getActivity(), mContext);

            pref.findViewById(R.id.entity_header).setVisibility(View.VISIBLE);
        }
                .done(mFragment.getActivity(), false /* rebindActions */);
    }

    private Drawable getIcon() {