Merge "Amend "Reset notification importance" list item style"

This commit is contained in:
Treehugger Robot
2023-01-11 10:31:55 +00:00
committed by Gerrit Code Review
4 changed files with 15 additions and 62 deletions

View File

@@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2020 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:id="@+id/reset_importance_button"
style="@style/ActionPrimaryButton"
android:layout_marginStart="@dimen/screen_margin_sides"
android:text="@string/asst_importance_reset_title"
android:layout_gravity="start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>

View File

@@ -609,11 +609,9 @@
android:title="@string/show_notification_channel_warnings" android:title="@string/show_notification_channel_warnings"
android:summary="@string/show_notification_channel_warnings_summary" /> android:summary="@string/show_notification_channel_warnings_summary" />
<com.android.settingslib.widget.LayoutPreference <Preference
android:key="asst_importance_reset" android:key="asst_importance_reset"
android:title="@string/asst_importance_reset_title" android:title="@string/asst_importance_reset_title"
android:selectable="false"
android:layout="@layout/reset_importance_button"
settings:controller="com.android.settings.notification.ImportanceResetPreferenceController" /> settings:controller="com.android.settings.notification.ImportanceResetPreferenceController" />
<Preference <Preference

View File

@@ -17,24 +17,20 @@
package com.android.settings.notification; package com.android.settings.notification;
import android.content.Context; import android.content.Context;
import android.view.View; import android.text.TextUtils;
import android.widget.Button;
import android.widget.Toast; import android.widget.Toast;
import androidx.preference.Preference; import androidx.preference.Preference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.widget.LayoutPreference;
public class ImportanceResetPreferenceController extends BasePreferenceController implements public class ImportanceResetPreferenceController extends BasePreferenceController {
View.OnClickListener {
public static final String KEY = "asst_importance_reset"; public static final String KEY = "asst_importance_reset";
private static final String TAG = "ResetImportanceButton"; private static final String TAG = "ResetImportanceButton";
private NotificationBackend mBackend; private NotificationBackend mBackend;
private Button mButton;
public ImportanceResetPreferenceController(Context context, String key) { public ImportanceResetPreferenceController(Context context, String key) {
super(context, key); super(context, key);
@@ -47,19 +43,14 @@ public class ImportanceResetPreferenceController extends BasePreferenceControlle
} }
@Override @Override
public void updateState(Preference preference) { public boolean handlePreferenceTreeClick(Preference preference) {
super.updateState(preference); if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
return false;
mButton = ((LayoutPreference) preference) }
.findViewById(R.id.reset_importance_button);
mButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
mBackend.resetNotificationImportance(); mBackend.resetNotificationImportance();
Toast.makeText(mContext, R.string.reset_importance_completed, Toast.LENGTH_SHORT) Toast.makeText(mContext, R.string.reset_importance_completed, Toast.LENGTH_SHORT)
.show(); .show();
return true;
} }
@Override @Override

View File

@@ -26,10 +26,10 @@ import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.view.View; import android.view.View;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settingslib.widget.LayoutPreference;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -43,12 +43,11 @@ import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class ImportanceResetPreferenceControllerTest { public class ImportanceResetPreferenceControllerTest {
private static final String KEY = "asst_importance_reset";
private ImportanceResetPreferenceController mController; private ImportanceResetPreferenceController mController;
@Mock @Mock
private PreferenceScreen mScreen; private PreferenceScreen mScreen;
private LayoutPreference mPreference; private Preference mPreference;
private Context mContext; private Context mContext;
@Mock @Mock
private NotificationBackend mBackend; private NotificationBackend mBackend;
@@ -58,9 +57,10 @@ public class ImportanceResetPreferenceControllerTest {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application; mContext = RuntimeEnvironment.application;
mPreference = new LayoutPreference(mContext, R.layout.reset_importance_button); mPreference = new Preference(mContext);
mPreference.setKey(ImportanceResetPreferenceController.KEY);
when(mScreen.findPreference(anyString())).thenReturn(mPreference); when(mScreen.findPreference(anyString())).thenReturn(mPreference);
mController = new ImportanceResetPreferenceController(mContext, KEY); mController = new ImportanceResetPreferenceController(mContext, "some_key");
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
ReflectionHelpers.setField(mController, "mBackend", mBackend); ReflectionHelpers.setField(mController, "mBackend", mBackend);
@@ -68,10 +68,7 @@ public class ImportanceResetPreferenceControllerTest {
@Test @Test
public void onClick_callReset() { public void onClick_callReset() {
final View view = mPreference.findViewById(R.id.reset_importance_button); mController.handlePreferenceTreeClick(mPreference);
mController.updateState(mPreference);
assertThat(view.getVisibility()).isEqualTo(View.VISIBLE);
view.performClick();
verify(mBackend, times(1)).resetNotificationImportance(); verify(mBackend, times(1)).resetNotificationImportance();
} }