Fix title clipped for "Custom settings for schedule"
Set rule to header, switch and action buttons controllers before their isAvailable() is called in onCreate(). Fix: 228262001 Test: manual Change-Id: Idc0ea779ab768497a8426ac847c4bbb2c6c4faea
This commit is contained in:
@@ -38,10 +38,8 @@ import com.android.settingslib.widget.LayoutPreference;
|
||||
public class ZenAutomaticRuleHeaderPreferenceController extends AbstractZenModePreferenceController
|
||||
implements PreferenceControllerMixin {
|
||||
|
||||
private final String KEY = PREF_KEY_APP_HEADER;
|
||||
private final PreferenceFragmentCompat mFragment;
|
||||
private AutomaticZenRule mRule;
|
||||
private String mId;
|
||||
private EntityHeaderController mController;
|
||||
|
||||
public ZenAutomaticRuleHeaderPreferenceController(Context context,
|
||||
@@ -52,7 +50,11 @@ public class ZenAutomaticRuleHeaderPreferenceController extends AbstractZenModeP
|
||||
|
||||
@Override
|
||||
public String getPreferenceKey() {
|
||||
return KEY;
|
||||
return PREF_KEY_APP_HEADER;
|
||||
}
|
||||
|
||||
void setRule(AutomaticZenRule rule) {
|
||||
mRule = rule;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -96,9 +98,4 @@ public class ZenAutomaticRuleHeaderPreferenceController extends AbstractZenModeP
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
protected void onResume(AutomaticZenRule rule, String id) {
|
||||
mRule = rule;
|
||||
mId = id;
|
||||
}
|
||||
}
|
||||
|
@@ -48,6 +48,11 @@ public class ZenAutomaticRuleSwitchPreferenceController extends
|
||||
return KEY;
|
||||
}
|
||||
|
||||
void setIdAndRule(String id, AutomaticZenRule rule) {
|
||||
mId = id;
|
||||
mRule = rule;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return mRule != null && mId != null;
|
||||
@@ -74,11 +79,6 @@ public class ZenAutomaticRuleSwitchPreferenceController extends
|
||||
}
|
||||
}
|
||||
|
||||
public void onResume(AutomaticZenRule rule, String id) {
|
||||
mRule = rule;
|
||||
mId = id;
|
||||
}
|
||||
|
||||
public void updateState(Preference preference) {
|
||||
if (mRule != null) {
|
||||
mSwitchBar.updateStatus(mRule.isEnabled());
|
||||
|
@@ -43,7 +43,6 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase {
|
||||
|
||||
private final String CUSTOM_BEHAVIOR_KEY = "zen_custom_setting";
|
||||
|
||||
protected Context mContext;
|
||||
protected boolean mDisableListeners;
|
||||
protected AutomaticZenRule mRule;
|
||||
protected String mId;
|
||||
@@ -58,9 +57,8 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase {
|
||||
abstract protected void updateControlsInternal();
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
mContext = getActivity();
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
|
||||
final Intent intent = getActivity().getIntent();
|
||||
if (DEBUG) Log.d(TAG, "onCreate getIntent()=" + intent);
|
||||
@@ -78,7 +76,14 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase {
|
||||
}
|
||||
|
||||
if (DEBUG) Log.d(TAG, "mId=" + mId);
|
||||
if (refreshRuleOrFinish()) {
|
||||
refreshRuleOrFinish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
|
||||
if (isFinishingOrDestroyed()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -128,15 +133,12 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase {
|
||||
protected void updateHeader() {
|
||||
final PreferenceScreen screen = getPreferenceScreen();
|
||||
|
||||
mSwitch.onResume(mRule, mId);
|
||||
mSwitch.displayPreference(screen);
|
||||
updatePreference(mSwitch);
|
||||
|
||||
mHeader.onResume(mRule, mId);
|
||||
mHeader.displayPreference(screen);
|
||||
updatePreference(mHeader);
|
||||
|
||||
mActionButtons.onResume(mRule, mId);
|
||||
mActionButtons.displayPreference(screen);
|
||||
updatePreference(mActionButtons);
|
||||
}
|
||||
@@ -157,6 +159,9 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase {
|
||||
private boolean refreshRuleOrFinish() {
|
||||
mRule = getZenRule();
|
||||
if (DEBUG) Log.d(TAG, "mRule=" + mRule);
|
||||
mHeader.setRule(mRule);
|
||||
mSwitch.setIdAndRule(mId, mRule);
|
||||
mActionButtons.setIdAndRule(mId, mRule);
|
||||
if (!setRule(mRule)) {
|
||||
toastAndFinish();
|
||||
return true;
|
||||
|
@@ -39,11 +39,9 @@ public class ZenRuleButtonsPreferenceController extends AbstractZenModePreferenc
|
||||
implements PreferenceControllerMixin {
|
||||
public static final String KEY = "zen_action_buttons";
|
||||
|
||||
private AutomaticZenRule mRule;
|
||||
private final PreferenceFragmentCompat mFragment;
|
||||
private String mId;
|
||||
private PreferenceFragmentCompat mFragment;
|
||||
private ActionButtonsPreference mButtonsPref;
|
||||
|
||||
private AutomaticZenRule mRule;
|
||||
|
||||
public ZenRuleButtonsPreferenceController(Context context, PreferenceFragmentCompat fragment,
|
||||
Lifecycle lc) {
|
||||
@@ -51,6 +49,10 @@ public class ZenRuleButtonsPreferenceController extends AbstractZenModePreferenc
|
||||
mFragment = fragment;
|
||||
}
|
||||
|
||||
void setIdAndRule(String id, AutomaticZenRule rule) {
|
||||
mId = id;
|
||||
mRule = rule;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
@@ -60,7 +62,7 @@ public class ZenRuleButtonsPreferenceController extends AbstractZenModePreferenc
|
||||
@Override
|
||||
public void displayPreference(PreferenceScreen screen) {
|
||||
if (isAvailable()) {
|
||||
mButtonsPref = ((ActionButtonsPreference) screen.findPreference(KEY))
|
||||
((ActionButtonsPreference) screen.findPreference(KEY))
|
||||
.setButton1Text(R.string.zen_mode_rule_name_edit)
|
||||
.setButton1Icon(com.android.internal.R.drawable.ic_mode_edit)
|
||||
.setButton1OnClickListener(new EditRuleNameClickListener())
|
||||
@@ -116,9 +118,4 @@ public class ZenRuleButtonsPreferenceController extends AbstractZenModePreferenc
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
protected void onResume(AutomaticZenRule rule, String id) {
|
||||
mRule = rule;
|
||||
mId = id;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user