From a99b8799eeaa5e151c84ef10cbcb360f4a6b3646 Mon Sep 17 00:00:00 2001 From: Mill Chen Date: Mon, 15 Jun 2020 18:57:15 +0800 Subject: [PATCH] Make Telephony related PreferenceController un-sliceable Since the structure of Telephony is changed, some of Telephony related PreferenceController cannot be converted to slices smoothly whether devices have mobile data or not. So we decided to make them un-sliceable. Bug: 155846002 Test: robotests, manual 1. Settings -> Settings search -> search for roaming 2. Check that roaming result has no toggle widget. Change-Id: I7cba8f6a750d9780a59411942665f68dac61248c --- .../TelephonyTogglePreferenceController.java | 5 ++ ...lephonyTogglePreferenceControllerTest.java | 67 +++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 tests/robotests/src/com/android/settings/network/telephony/TelephonyTogglePreferenceControllerTest.java diff --git a/src/com/android/settings/network/telephony/TelephonyTogglePreferenceController.java b/src/com/android/settings/network/telephony/TelephonyTogglePreferenceController.java index 84aa0cb065a..c9ce9b04b76 100644 --- a/src/com/android/settings/network/telephony/TelephonyTogglePreferenceController.java +++ b/src/com/android/settings/network/telephony/TelephonyTogglePreferenceController.java @@ -59,6 +59,11 @@ public abstract class TelephonyTogglePreferenceController extends TogglePreferen mSetSessionCount.getAndDecrement(); } + @Override + public boolean isSliceable() { + return false; + } + /** * Get carrier config based on specific subscription id. * diff --git a/tests/robotests/src/com/android/settings/network/telephony/TelephonyTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/TelephonyTogglePreferenceControllerTest.java new file mode 100644 index 00000000000..75425123c4b --- /dev/null +++ b/tests/robotests/src/com/android/settings/network/telephony/TelephonyTogglePreferenceControllerTest.java @@ -0,0 +1,67 @@ +/* + * 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. + */ + +package com.android.settings.network.telephony; + +import static com.google.common.truth.Truth.assertThat; + +import android.content.Context; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; + +@RunWith(RobolectricTestRunner.class) +public class TelephonyTogglePreferenceControllerTest { + + private Context mContext; + private FakeTelephonyToggle mFakeTelephonyToggle; + + @Before + public void setUp() { + mContext = RuntimeEnvironment.application; + mFakeTelephonyToggle = new FakeTelephonyToggle(mContext, "key"); + } + + @Test + public void isSliceable_byDefault_shouldReturnFalse() { + assertThat(mFakeTelephonyToggle.isSliceable()).isFalse(); + } + + private static class FakeTelephonyToggle extends TelephonyTogglePreferenceController { + + private FakeTelephonyToggle(Context context, String preferenceKey) { + super(context, preferenceKey); + } + + @Override + public boolean isChecked() { + return false; + } + + @Override + public boolean setChecked(boolean isChecked) { + return false; + } + + @Override + public int getAvailabilityStatus(int subId) { + return 0; + } + } +}