Fix the problem that the SIM status and IMEI after the "Build number".
- Adding the SIM status and IMEI items of SIM2 to the PreferenceScreen can not put these items in the correct categories. We have to put these items directly into the correct categories. Bug: 193384705 Test: robotest and see the UI Change-Id: I2de7ee72fc1315eeef01288b386f8756ca366e33
This commit is contained in:
@@ -29,6 +29,8 @@
|
|||||||
settings:isPreferenceVisible="false"/>
|
settings:isPreferenceVisible="false"/>
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
|
android:key="basic_info_category"
|
||||||
|
android:selectable="false"
|
||||||
android:title="@string/my_device_info_basic_info_category_title">
|
android:title="@string/my_device_info_basic_info_category_title">
|
||||||
|
|
||||||
<!-- Device name -->
|
<!-- Device name -->
|
||||||
@@ -88,6 +90,8 @@
|
|||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
|
android:key="device_detail_category"
|
||||||
|
android:selectable="false"
|
||||||
android:title="@string/my_device_info_device_details_category_title">
|
android:title="@string/my_device_info_device_details_category_title">
|
||||||
|
|
||||||
<!-- SIM status -->
|
<!-- SIM status -->
|
||||||
|
@@ -29,6 +29,7 @@ import android.widget.Toast;
|
|||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
import androidx.preference.PreferenceCategory;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -40,7 +41,8 @@ import java.util.List;
|
|||||||
|
|
||||||
public class PhoneNumberPreferenceController extends BasePreferenceController {
|
public class PhoneNumberPreferenceController extends BasePreferenceController {
|
||||||
|
|
||||||
private final static String KEY_PHONE_NUMBER = "phone_number";
|
private static final String KEY_PHONE_NUMBER = "phone_number";
|
||||||
|
private static final String KEY_PREFERENCE_CATEGORY = "basic_info_category";
|
||||||
|
|
||||||
private final TelephonyManager mTelephonyManager;
|
private final TelephonyManager mTelephonyManager;
|
||||||
private final SubscriptionManager mSubscriptionManager;
|
private final SubscriptionManager mSubscriptionManager;
|
||||||
@@ -66,6 +68,7 @@ public class PhoneNumberPreferenceController extends BasePreferenceController {
|
|||||||
public void displayPreference(PreferenceScreen screen) {
|
public void displayPreference(PreferenceScreen screen) {
|
||||||
super.displayPreference(screen);
|
super.displayPreference(screen);
|
||||||
final Preference preference = screen.findPreference(getPreferenceKey());
|
final Preference preference = screen.findPreference(getPreferenceKey());
|
||||||
|
final PreferenceCategory category = screen.findPreference(KEY_PREFERENCE_CATEGORY);
|
||||||
mPreferenceList.add(preference);
|
mPreferenceList.add(preference);
|
||||||
|
|
||||||
final int phonePreferenceOrder = preference.getOrder();
|
final int phonePreferenceOrder = preference.getOrder();
|
||||||
@@ -76,7 +79,7 @@ public class PhoneNumberPreferenceController extends BasePreferenceController {
|
|||||||
multiSimPreference.setOrder(phonePreferenceOrder + simSlotNumber);
|
multiSimPreference.setOrder(phonePreferenceOrder + simSlotNumber);
|
||||||
multiSimPreference.setKey(KEY_PHONE_NUMBER + simSlotNumber);
|
multiSimPreference.setKey(KEY_PHONE_NUMBER + simSlotNumber);
|
||||||
multiSimPreference.setSelectable(false);
|
multiSimPreference.setSelectable(false);
|
||||||
screen.addPreference(multiSimPreference);
|
category.addPreference(multiSimPreference);
|
||||||
mPreferenceList.add(multiSimPreference);
|
mPreferenceList.add(multiSimPreference);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -27,6 +27,7 @@ import android.telephony.TelephonyManager;
|
|||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
import androidx.preference.PreferenceCategory;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -42,6 +43,8 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class ImeiInfoPreferenceController extends BasePreferenceController {
|
public class ImeiInfoPreferenceController extends BasePreferenceController {
|
||||||
|
|
||||||
|
private static final String KEY_PREFERENCE_CATEGORY = "device_detail_category";
|
||||||
|
|
||||||
private final boolean mIsMultiSim;
|
private final boolean mIsMultiSim;
|
||||||
private final TelephonyManager mTelephonyManager;
|
private final TelephonyManager mTelephonyManager;
|
||||||
private final List<Preference> mPreferenceList = new ArrayList<>();
|
private final List<Preference> mPreferenceList = new ArrayList<>();
|
||||||
@@ -61,6 +64,7 @@ public class ImeiInfoPreferenceController extends BasePreferenceController {
|
|||||||
public void displayPreference(PreferenceScreen screen) {
|
public void displayPreference(PreferenceScreen screen) {
|
||||||
super.displayPreference(screen);
|
super.displayPreference(screen);
|
||||||
final Preference preference = screen.findPreference(getPreferenceKey());
|
final Preference preference = screen.findPreference(getPreferenceKey());
|
||||||
|
final PreferenceCategory category = screen.findPreference(KEY_PREFERENCE_CATEGORY);
|
||||||
|
|
||||||
mPreferenceList.add(preference);
|
mPreferenceList.add(preference);
|
||||||
updatePreference(preference, 0 /* simSlot */);
|
updatePreference(preference, 0 /* simSlot */);
|
||||||
@@ -72,7 +76,7 @@ public class ImeiInfoPreferenceController extends BasePreferenceController {
|
|||||||
final Preference multiSimPreference = createNewPreference(screen.getContext());
|
final Preference multiSimPreference = createNewPreference(screen.getContext());
|
||||||
multiSimPreference.setOrder(imeiPreferenceOrder + simSlotNumber);
|
multiSimPreference.setOrder(imeiPreferenceOrder + simSlotNumber);
|
||||||
multiSimPreference.setKey(getPreferenceKey() + simSlotNumber);
|
multiSimPreference.setKey(getPreferenceKey() + simSlotNumber);
|
||||||
screen.addPreference(multiSimPreference);
|
category.addPreference(multiSimPreference);
|
||||||
mPreferenceList.add(multiSimPreference);
|
mPreferenceList.add(multiSimPreference);
|
||||||
updatePreference(multiSimPreference, simSlotNumber);
|
updatePreference(multiSimPreference, simSlotNumber);
|
||||||
}
|
}
|
||||||
|
@@ -24,6 +24,7 @@ import android.telephony.TelephonyManager;
|
|||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
import androidx.preference.PreferenceCategory;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -37,6 +38,7 @@ public class SimStatusPreferenceController extends
|
|||||||
AbstractSimStatusImeiInfoPreferenceController implements PreferenceControllerMixin {
|
AbstractSimStatusImeiInfoPreferenceController implements PreferenceControllerMixin {
|
||||||
|
|
||||||
private static final String KEY_SIM_STATUS = "sim_status";
|
private static final String KEY_SIM_STATUS = "sim_status";
|
||||||
|
private static final String KEY_PREFERENCE_CATEGORY = "device_detail_category";
|
||||||
|
|
||||||
private final TelephonyManager mTelephonyManager;
|
private final TelephonyManager mTelephonyManager;
|
||||||
private final SubscriptionManager mSubscriptionManager;
|
private final SubscriptionManager mSubscriptionManager;
|
||||||
@@ -64,6 +66,7 @@ public class SimStatusPreferenceController extends
|
|||||||
if (!isAvailable() || preference == null || !preference.isVisible()) {
|
if (!isAvailable() || preference == null || !preference.isVisible()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
final PreferenceCategory category = screen.findPreference(KEY_PREFERENCE_CATEGORY);
|
||||||
|
|
||||||
mPreferenceList.add(preference);
|
mPreferenceList.add(preference);
|
||||||
|
|
||||||
@@ -74,7 +77,7 @@ public class SimStatusPreferenceController extends
|
|||||||
final Preference multiSimPreference = createNewPreference(screen.getContext());
|
final Preference multiSimPreference = createNewPreference(screen.getContext());
|
||||||
multiSimPreference.setOrder(simStatusOrder + simSlotNumber);
|
multiSimPreference.setOrder(simStatusOrder + simSlotNumber);
|
||||||
multiSimPreference.setKey(KEY_SIM_STATUS + simSlotNumber);
|
multiSimPreference.setKey(KEY_SIM_STATUS + simSlotNumber);
|
||||||
screen.addPreference(multiSimPreference);
|
category.addPreference(multiSimPreference);
|
||||||
mPreferenceList.add(multiSimPreference);
|
mPreferenceList.add(multiSimPreference);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -39,6 +39,7 @@ import android.telephony.TelephonyManager;
|
|||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
import androidx.preference.PreferenceCategory;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -68,6 +69,8 @@ public class ImeiInfoPreferenceControllerTest {
|
|||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
@Mock
|
@Mock
|
||||||
private Fragment mFragment;
|
private Fragment mFragment;
|
||||||
|
@Mock
|
||||||
|
private PreferenceCategory mCategory;
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private ImeiInfoPreferenceController mController;
|
private ImeiInfoPreferenceController mController;
|
||||||
@@ -82,6 +85,8 @@ public class ImeiInfoPreferenceControllerTest {
|
|||||||
doReturn(AVAILABLE).when(mController).getAvailabilityStatus();
|
doReturn(AVAILABLE).when(mController).getAvailabilityStatus();
|
||||||
when(mScreen.getContext()).thenReturn(mContext);
|
when(mScreen.getContext()).thenReturn(mContext);
|
||||||
doReturn(mSecondSimPreference).when(mController).createNewPreference(mContext);
|
doReturn(mSecondSimPreference).when(mController).createNewPreference(mContext);
|
||||||
|
final String categoryKey = "device_detail_category";
|
||||||
|
when(mScreen.findPreference(categoryKey)).thenReturn(mCategory);
|
||||||
ReflectionHelpers.setField(mController, "mTelephonyManager", mTelephonyManager);
|
ReflectionHelpers.setField(mController, "mTelephonyManager", mTelephonyManager);
|
||||||
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
|
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
|
||||||
final String prefKey = mController.getPreferenceKey();
|
final String prefKey = mController.getPreferenceKey();
|
||||||
@@ -97,7 +102,7 @@ public class ImeiInfoPreferenceControllerTest {
|
|||||||
|
|
||||||
mController.displayPreference(mScreen);
|
mController.displayPreference(mScreen);
|
||||||
|
|
||||||
verify(mScreen).addPreference(mSecondSimPreference);
|
verify(mCategory).addPreference(mSecondSimPreference);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@@ -30,6 +30,7 @@ import android.telephony.TelephonyManager;
|
|||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
import androidx.preference.PreferenceCategory;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -59,6 +60,8 @@ public class SimStatusPreferenceControllerTest {
|
|||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
@Mock
|
@Mock
|
||||||
private Fragment mFragment;
|
private Fragment mFragment;
|
||||||
|
@Mock
|
||||||
|
private PreferenceCategory mCategory;
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private SimStatusPreferenceController mController;
|
private SimStatusPreferenceController mController;
|
||||||
@@ -71,6 +74,8 @@ public class SimStatusPreferenceControllerTest {
|
|||||||
mController = spy(new SimStatusPreferenceController(mContext, mFragment));
|
mController = spy(new SimStatusPreferenceController(mContext, mFragment));
|
||||||
doReturn(true).when(mController).isAvailable();
|
doReturn(true).when(mController).isAvailable();
|
||||||
when(mScreen.getContext()).thenReturn(mContext);
|
when(mScreen.getContext()).thenReturn(mContext);
|
||||||
|
final String categoryKey = "device_detail_category";
|
||||||
|
when(mScreen.findPreference(categoryKey)).thenReturn(mCategory);
|
||||||
doReturn(mSecondSimPreference).when(mController).createNewPreference(mContext);
|
doReturn(mSecondSimPreference).when(mController).createNewPreference(mContext);
|
||||||
ReflectionHelpers.setField(mController, "mTelephonyManager", mTelephonyManager);
|
ReflectionHelpers.setField(mController, "mTelephonyManager", mTelephonyManager);
|
||||||
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
|
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
|
||||||
@@ -85,7 +90,7 @@ public class SimStatusPreferenceControllerTest {
|
|||||||
|
|
||||||
mController.displayPreference(mScreen);
|
mController.displayPreference(mScreen);
|
||||||
|
|
||||||
verify(mScreen).addPreference(mSecondSimPreference);
|
verify(mCategory).addPreference(mSecondSimPreference);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@@ -36,6 +36,7 @@ import android.telephony.SubscriptionManager;
|
|||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
|
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
import androidx.preference.PreferenceCategory;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
import androidx.test.annotation.UiThreadTest;
|
import androidx.test.annotation.UiThreadTest;
|
||||||
@@ -67,6 +68,7 @@ public class PhoneNumberPreferenceControllerTest {
|
|||||||
private SubscriptionInfo mSubscriptionInfo;
|
private SubscriptionInfo mSubscriptionInfo;
|
||||||
@Mock
|
@Mock
|
||||||
private SubscriptionManager mSubscriptionManager;
|
private SubscriptionManager mSubscriptionManager;
|
||||||
|
private PreferenceCategory mCategory;
|
||||||
private PreferenceScreen mScreen;
|
private PreferenceScreen mScreen;
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
@@ -92,6 +94,10 @@ public class PhoneNumberPreferenceControllerTest {
|
|||||||
mPreference.setKey(mController.getPreferenceKey());
|
mPreference.setKey(mController.getPreferenceKey());
|
||||||
mPreference.setVisible(true);
|
mPreference.setVisible(true);
|
||||||
mScreen.addPreference(mPreference);
|
mScreen.addPreference(mPreference);
|
||||||
|
final String categoryKey = "basic_info_category";
|
||||||
|
mCategory = new PreferenceCategory(mContext);
|
||||||
|
mCategory.setKey(categoryKey);
|
||||||
|
mScreen.addPreference(mCategory);
|
||||||
|
|
||||||
doReturn(mSubscriptionInfo).when(mController).getSubscriptionInfo(anyInt());
|
doReturn(mSubscriptionInfo).when(mController).getSubscriptionInfo(anyInt());
|
||||||
doReturn(mSecondPreference).when(mController).createNewPreference(mContext);
|
doReturn(mSecondPreference).when(mController).createNewPreference(mContext);
|
||||||
@@ -117,9 +123,11 @@ public class PhoneNumberPreferenceControllerTest {
|
|||||||
public void displayPreference_multiSim_shouldAddSecondPreference() {
|
public void displayPreference_multiSim_shouldAddSecondPreference() {
|
||||||
when(mTelephonyManager.getPhoneCount()).thenReturn(2);
|
when(mTelephonyManager.getPhoneCount()).thenReturn(2);
|
||||||
|
|
||||||
|
final Preference sim1Preference = new Preference(mContext);
|
||||||
|
mCategory.addItemFromInflater(sim1Preference);
|
||||||
mController.displayPreference(mScreen);
|
mController.displayPreference(mScreen);
|
||||||
|
|
||||||
assertThat(mScreen.getPreferenceCount()).isEqualTo(2);
|
assertThat(mCategory.getPreferenceCount()).isEqualTo(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user