[Catalyst] Rebind preference immediately when restriction is changed
Bug: 377600992 Flag: com.android.settings.flags.catalyst Test: testdpc Change-Id: Iee382afb8395355ee77d604bd399972326557cc0
This commit is contained in:
@@ -48,11 +48,13 @@ import com.android.settings.core.CategoryMixin.CategoryListener;
|
||||
import com.android.settings.core.PreferenceControllerListHelper;
|
||||
import com.android.settings.flags.Flags;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.restriction.UserRestrictionBindingHelper;
|
||||
import com.android.settingslib.PrimarySwitchPreference;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.drawer.DashboardCategory;
|
||||
import com.android.settingslib.drawer.Tile;
|
||||
import com.android.settingslib.preference.PreferenceScreenBindingHelper;
|
||||
import com.android.settingslib.preference.PreferenceScreenCreator;
|
||||
import com.android.settingslib.search.Indexable;
|
||||
|
||||
@@ -92,6 +94,8 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
||||
private boolean mListeningToCategoryChange;
|
||||
private List<String> mSuppressInjectedTileKeys;
|
||||
|
||||
private @Nullable UserRestrictionBindingHelper mUserRestrictionBindingHelper;
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
@@ -178,6 +182,13 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
||||
// editing dialog is recreated (that would happen before onResume is called).
|
||||
updatePreferenceStates();
|
||||
}
|
||||
if (isCatalystEnabled()) {
|
||||
PreferenceScreenBindingHelper helper = getPreferenceScreenBindingHelper();
|
||||
if (helper != null) {
|
||||
mUserRestrictionBindingHelper = new UserRestrictionBindingHelper(requireContext(),
|
||||
helper);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -288,6 +299,15 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
if (mUserRestrictionBindingHelper != null) {
|
||||
mUserRestrictionBindingHelper.close();
|
||||
mUserRestrictionBindingHelper = null;
|
||||
}
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected final int getPreferenceScreenResId(@NonNull Context context) {
|
||||
return getPreferenceScreenResId();
|
||||
|
||||
Reference in New Issue
Block a user