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
This commit is contained in:
Jason Chiu
2020-02-13 15:39:54 +08:00
parent c9d9888465
commit cd5267c3c9
3 changed files with 12 additions and 21 deletions

View File

@@ -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,
pref.findViewById(R.id.entity_header));
}
pref = 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);
if (mController == null) {
final LayoutPreference pref = (LayoutPreference) preference;
mController = EntityHeaderController.newInstance(mFragment.getActivity(), mFragment,
pref.findViewById(R.id.entity_header));
}
mController.setIcon(getIcon())
.setLabel(mRule.getName())
.done(mFragment.getActivity(), false /* rebindActions */);
}
private Drawable getIcon() {