Merge "Fix title clipped for "Custom settings for schedule"" into tm-dev am: fbafdbdd8f
am: d9c7a49ce7
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/17607148 Change-Id: I8e962446f293aa5caca634a72a6346ed1f2cf450 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -38,10 +38,8 @@ import com.android.settingslib.widget.LayoutPreference;
|
|||||||
public class ZenAutomaticRuleHeaderPreferenceController extends AbstractZenModePreferenceController
|
public class ZenAutomaticRuleHeaderPreferenceController extends AbstractZenModePreferenceController
|
||||||
implements PreferenceControllerMixin {
|
implements PreferenceControllerMixin {
|
||||||
|
|
||||||
private final String KEY = PREF_KEY_APP_HEADER;
|
|
||||||
private final PreferenceFragmentCompat mFragment;
|
private final PreferenceFragmentCompat mFragment;
|
||||||
private AutomaticZenRule mRule;
|
private AutomaticZenRule mRule;
|
||||||
private String mId;
|
|
||||||
private EntityHeaderController mController;
|
private EntityHeaderController mController;
|
||||||
|
|
||||||
public ZenAutomaticRuleHeaderPreferenceController(Context context,
|
public ZenAutomaticRuleHeaderPreferenceController(Context context,
|
||||||
@@ -52,7 +50,11 @@ public class ZenAutomaticRuleHeaderPreferenceController extends AbstractZenModeP
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPreferenceKey() {
|
public String getPreferenceKey() {
|
||||||
return KEY;
|
return PREF_KEY_APP_HEADER;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setRule(AutomaticZenRule rule) {
|
||||||
|
mRule = rule;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -96,9 +98,4 @@ public class ZenAutomaticRuleHeaderPreferenceController extends AbstractZenModeP
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void onResume(AutomaticZenRule rule, String id) {
|
|
||||||
mRule = rule;
|
|
||||||
mId = id;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -48,6 +48,11 @@ public class ZenAutomaticRuleSwitchPreferenceController extends
|
|||||||
return KEY;
|
return KEY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setIdAndRule(String id, AutomaticZenRule rule) {
|
||||||
|
mId = id;
|
||||||
|
mRule = rule;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAvailable() {
|
public boolean isAvailable() {
|
||||||
return mRule != null && mId != null;
|
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) {
|
public void updateState(Preference preference) {
|
||||||
if (mRule != null) {
|
if (mRule != null) {
|
||||||
mSwitchBar.updateStatus(mRule.isEnabled());
|
mSwitchBar.updateStatus(mRule.isEnabled());
|
||||||
|
@@ -45,7 +45,6 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase {
|
|||||||
|
|
||||||
private final String CUSTOM_BEHAVIOR_KEY = "zen_custom_setting";
|
private final String CUSTOM_BEHAVIOR_KEY = "zen_custom_setting";
|
||||||
|
|
||||||
protected Context mContext;
|
|
||||||
protected boolean mDisableListeners;
|
protected boolean mDisableListeners;
|
||||||
protected AutomaticZenRule mRule;
|
protected AutomaticZenRule mRule;
|
||||||
protected String mId;
|
protected String mId;
|
||||||
@@ -60,9 +59,8 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase {
|
|||||||
abstract protected void updateControlsInternal();
|
abstract protected void updateControlsInternal();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onAttach(Context context) {
|
||||||
super.onCreate(icicle);
|
super.onAttach(context);
|
||||||
mContext = getActivity();
|
|
||||||
|
|
||||||
final Intent intent = getActivity().getIntent();
|
final Intent intent = getActivity().getIntent();
|
||||||
if (DEBUG) Log.d(TAG, "onCreate getIntent()=" + intent);
|
if (DEBUG) Log.d(TAG, "onCreate getIntent()=" + intent);
|
||||||
@@ -83,7 +81,14 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (DEBUG) Log.d(TAG, "mId=" + mId);
|
if (DEBUG) Log.d(TAG, "mId=" + mId);
|
||||||
if (refreshRuleOrFinish()) {
|
refreshRuleOrFinish();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle icicle) {
|
||||||
|
super.onCreate(icicle);
|
||||||
|
|
||||||
|
if (isFinishingOrDestroyed()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,15 +138,12 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase {
|
|||||||
protected void updateHeader() {
|
protected void updateHeader() {
|
||||||
final PreferenceScreen screen = getPreferenceScreen();
|
final PreferenceScreen screen = getPreferenceScreen();
|
||||||
|
|
||||||
mSwitch.onResume(mRule, mId);
|
|
||||||
mSwitch.displayPreference(screen);
|
mSwitch.displayPreference(screen);
|
||||||
updatePreference(mSwitch);
|
updatePreference(mSwitch);
|
||||||
|
|
||||||
mHeader.onResume(mRule, mId);
|
|
||||||
mHeader.displayPreference(screen);
|
mHeader.displayPreference(screen);
|
||||||
updatePreference(mHeader);
|
updatePreference(mHeader);
|
||||||
|
|
||||||
mActionButtons.onResume(mRule, mId);
|
|
||||||
mActionButtons.displayPreference(screen);
|
mActionButtons.displayPreference(screen);
|
||||||
updatePreference(mActionButtons);
|
updatePreference(mActionButtons);
|
||||||
}
|
}
|
||||||
@@ -162,6 +164,9 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase {
|
|||||||
private boolean refreshRuleOrFinish() {
|
private boolean refreshRuleOrFinish() {
|
||||||
mRule = getZenRule();
|
mRule = getZenRule();
|
||||||
if (DEBUG) Log.d(TAG, "mRule=" + mRule);
|
if (DEBUG) Log.d(TAG, "mRule=" + mRule);
|
||||||
|
mHeader.setRule(mRule);
|
||||||
|
mSwitch.setIdAndRule(mId, mRule);
|
||||||
|
mActionButtons.setIdAndRule(mId, mRule);
|
||||||
if (!setRule(mRule)) {
|
if (!setRule(mRule)) {
|
||||||
toastAndFinish();
|
toastAndFinish();
|
||||||
return true;
|
return true;
|
||||||
|
@@ -39,11 +39,9 @@ public class ZenRuleButtonsPreferenceController extends AbstractZenModePreferenc
|
|||||||
implements PreferenceControllerMixin {
|
implements PreferenceControllerMixin {
|
||||||
public static final String KEY = "zen_action_buttons";
|
public static final String KEY = "zen_action_buttons";
|
||||||
|
|
||||||
private AutomaticZenRule mRule;
|
private final PreferenceFragmentCompat mFragment;
|
||||||
private String mId;
|
private String mId;
|
||||||
private PreferenceFragmentCompat mFragment;
|
private AutomaticZenRule mRule;
|
||||||
private ActionButtonsPreference mButtonsPref;
|
|
||||||
|
|
||||||
|
|
||||||
public ZenRuleButtonsPreferenceController(Context context, PreferenceFragmentCompat fragment,
|
public ZenRuleButtonsPreferenceController(Context context, PreferenceFragmentCompat fragment,
|
||||||
Lifecycle lc) {
|
Lifecycle lc) {
|
||||||
@@ -51,6 +49,10 @@ public class ZenRuleButtonsPreferenceController extends AbstractZenModePreferenc
|
|||||||
mFragment = fragment;
|
mFragment = fragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setIdAndRule(String id, AutomaticZenRule rule) {
|
||||||
|
mId = id;
|
||||||
|
mRule = rule;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAvailable() {
|
public boolean isAvailable() {
|
||||||
@@ -60,7 +62,7 @@ public class ZenRuleButtonsPreferenceController extends AbstractZenModePreferenc
|
|||||||
@Override
|
@Override
|
||||||
public void displayPreference(PreferenceScreen screen) {
|
public void displayPreference(PreferenceScreen screen) {
|
||||||
if (isAvailable()) {
|
if (isAvailable()) {
|
||||||
mButtonsPref = ((ActionButtonsPreference) screen.findPreference(KEY))
|
((ActionButtonsPreference) screen.findPreference(KEY))
|
||||||
.setButton1Text(R.string.zen_mode_rule_name_edit)
|
.setButton1Text(R.string.zen_mode_rule_name_edit)
|
||||||
.setButton1Icon(com.android.internal.R.drawable.ic_mode_edit)
|
.setButton1Icon(com.android.internal.R.drawable.ic_mode_edit)
|
||||||
.setButton1OnClickListener(new EditRuleNameClickListener())
|
.setButton1OnClickListener(new EditRuleNameClickListener())
|
||||||
@@ -116,9 +118,4 @@ public class ZenRuleButtonsPreferenceController extends AbstractZenModePreferenc
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void onResume(AutomaticZenRule rule, String id) {
|
|
||||||
mRule = rule;
|
|
||||||
mId = id;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -18,31 +18,27 @@ package com.android.settings.notification.zen;
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import static org.mockito.Mockito.doReturn;
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
import static org.robolectric.RuntimeEnvironment.application;
|
|
||||||
|
|
||||||
import android.app.NotificationManager;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
|
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Ignore;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import org.robolectric.shadows.ShadowApplication;
|
|
||||||
import org.robolectric.shadows.ShadowToast;
|
import org.robolectric.shadows.ShadowToast;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -57,42 +53,32 @@ public class ZenModeEventRuleSettingsTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private Intent mIntent;
|
private Intent mIntent;
|
||||||
|
|
||||||
@Mock
|
private ZenModeEventRuleSettings mFragment;
|
||||||
private NotificationManager mNotificationManager;
|
|
||||||
|
|
||||||
private TestFragment mFragment;
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
|
|
||||||
ShadowApplication shadowApplication = ShadowApplication.getInstance();
|
mContext = ApplicationProvider.getApplicationContext();
|
||||||
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
|
|
||||||
mContext = application;
|
|
||||||
|
|
||||||
mFragment = spy(new TestFragment());
|
Resources res = mContext.getResources();
|
||||||
mFragment.onAttach(application);
|
|
||||||
|
|
||||||
doReturn(mActivity).when(mFragment).getActivity();
|
|
||||||
|
|
||||||
Resources res = application.getResources();
|
|
||||||
|
|
||||||
doReturn(res).when(mFragment).getResources();
|
|
||||||
when(mActivity.getTheme()).thenReturn(res.newTheme());
|
when(mActivity.getTheme()).thenReturn(res.newTheme());
|
||||||
when(mActivity.getIntent()).thenReturn(mIntent);
|
when(mActivity.getIntent()).thenReturn(mIntent);
|
||||||
when(mActivity.getResources()).thenReturn(res);
|
when(mActivity.getResources()).thenReturn(res);
|
||||||
when(mActivity.getMainLooper()).thenReturn(mock(Looper.class));
|
when(mActivity.getMainLooper()).thenReturn(mock(Looper.class));
|
||||||
|
|
||||||
|
mFragment = spy(new ZenModeEventRuleSettings());
|
||||||
|
when(mFragment.getActivity()).thenReturn(mActivity);
|
||||||
when(mFragment.getContext()).thenReturn(mContext);
|
when(mFragment.getContext()).thenReturn(mContext);
|
||||||
|
when(mFragment.getResources()).thenReturn(res);
|
||||||
|
mFragment.onAttach(mContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Ignore
|
public void onAttach_noRuleId_shouldToastAndFinishAndNoCrash() {
|
||||||
public void onCreate_noRuleId_shouldToastAndFinishAndNoCrash() {
|
|
||||||
final String expected = mContext.getString(R.string.zen_mode_rule_not_found_text);
|
final String expected = mContext.getString(R.string.zen_mode_rule_not_found_text);
|
||||||
|
|
||||||
mFragment.onCreate(null);
|
|
||||||
|
|
||||||
// verify the toast
|
// verify the toast
|
||||||
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(expected);
|
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(expected);
|
||||||
|
|
||||||
@@ -110,12 +96,4 @@ public class ZenModeEventRuleSettingsTest {
|
|||||||
mFragment.addCalendar(1234, "calName", 3, calendarsList);
|
mFragment.addCalendar(1234, "calName", 3, calendarsList);
|
||||||
assertThat(calendarsList.size()).isEqualTo(1);
|
assertThat(calendarsList.size()).isEqualTo(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class TestFragment extends ZenModeEventRuleSettings {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Object getSystemService(final String name) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user