Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c63c415 authored by Stanley Wang's avatar Stanley Wang
Browse files

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
parent 1eddd355
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@
        settings:isPreferenceVisible="false"/>

    <PreferenceCategory
        android:key="basic_info_category"
        android:selectable="false"
        android:title="@string/my_device_info_basic_info_category_title">

        <!-- Device name -->
@@ -88,6 +90,8 @@
    </PreferenceCategory>

    <PreferenceCategory
        android:key="device_detail_category"
        android:selectable="false"
        android:title="@string/my_device_info_device_details_category_title">

        <!-- SIM status -->
+5 −2
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.widget.Toast;

import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;

import com.android.settings.R;
@@ -40,7 +41,8 @@ import java.util.List;

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 SubscriptionManager mSubscriptionManager;
@@ -66,6 +68,7 @@ public class PhoneNumberPreferenceController extends BasePreferenceController {
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        final Preference preference = screen.findPreference(getPreferenceKey());
        final PreferenceCategory category = screen.findPreference(KEY_PREFERENCE_CATEGORY);
        mPreferenceList.add(preference);

        final int phonePreferenceOrder = preference.getOrder();
@@ -76,7 +79,7 @@ public class PhoneNumberPreferenceController extends BasePreferenceController {
            multiSimPreference.setOrder(phonePreferenceOrder + simSlotNumber);
            multiSimPreference.setKey(KEY_PHONE_NUMBER + simSlotNumber);
            multiSimPreference.setSelectable(false);
            screen.addPreference(multiSimPreference);
            category.addPreference(multiSimPreference);
            mPreferenceList.add(multiSimPreference);
        }
    }
+5 −1
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.telephony.TelephonyManager;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;

import com.android.settings.R;
@@ -42,6 +43,8 @@ import java.util.List;
 */
public class ImeiInfoPreferenceController extends BasePreferenceController {

    private static final String KEY_PREFERENCE_CATEGORY = "device_detail_category";

    private final boolean mIsMultiSim;
    private final TelephonyManager mTelephonyManager;
    private final List<Preference> mPreferenceList = new ArrayList<>();
@@ -61,6 +64,7 @@ public class ImeiInfoPreferenceController extends BasePreferenceController {
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        final Preference preference = screen.findPreference(getPreferenceKey());
        final PreferenceCategory category = screen.findPreference(KEY_PREFERENCE_CATEGORY);

        mPreferenceList.add(preference);
        updatePreference(preference, 0 /* simSlot */);
@@ -72,7 +76,7 @@ public class ImeiInfoPreferenceController extends BasePreferenceController {
            final Preference multiSimPreference = createNewPreference(screen.getContext());
            multiSimPreference.setOrder(imeiPreferenceOrder + simSlotNumber);
            multiSimPreference.setKey(getPreferenceKey() + simSlotNumber);
            screen.addPreference(multiSimPreference);
            category.addPreference(multiSimPreference);
            mPreferenceList.add(multiSimPreference);
            updatePreference(multiSimPreference, simSlotNumber);
        }
+4 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.telephony.TelephonyManager;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;

import com.android.settings.R;
@@ -37,6 +38,7 @@ public class SimStatusPreferenceController extends
        AbstractSimStatusImeiInfoPreferenceController implements PreferenceControllerMixin {

    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 SubscriptionManager mSubscriptionManager;
@@ -64,6 +66,7 @@ public class SimStatusPreferenceController extends
        if (!isAvailable() || preference == null || !preference.isVisible()) {
            return;
        }
        final PreferenceCategory category = screen.findPreference(KEY_PREFERENCE_CATEGORY);

        mPreferenceList.add(preference);

@@ -74,7 +77,7 @@ public class SimStatusPreferenceController extends
            final Preference multiSimPreference = createNewPreference(screen.getContext());
            multiSimPreference.setOrder(simStatusOrder + simSlotNumber);
            multiSimPreference.setKey(KEY_SIM_STATUS + simSlotNumber);
            screen.addPreference(multiSimPreference);
            category.addPreference(multiSimPreference);
            mPreferenceList.add(multiSimPreference);
        }
    }
+6 −1
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import android.telephony.TelephonyManager;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;

import com.android.settings.R;
@@ -68,6 +69,8 @@ public class ImeiInfoPreferenceControllerTest {
    private UserManager mUserManager;
    @Mock
    private Fragment mFragment;
    @Mock
    private PreferenceCategory mCategory;

    private Context mContext;
    private ImeiInfoPreferenceController mController;
@@ -82,6 +85,8 @@ public class ImeiInfoPreferenceControllerTest {
        doReturn(AVAILABLE).when(mController).getAvailabilityStatus();
        when(mScreen.getContext()).thenReturn(mContext);
        doReturn(mSecondSimPreference).when(mController).createNewPreference(mContext);
        final String categoryKey = "device_detail_category";
        when(mScreen.findPreference(categoryKey)).thenReturn(mCategory);
        ReflectionHelpers.setField(mController, "mTelephonyManager", mTelephonyManager);
        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
        final String prefKey = mController.getPreferenceKey();
@@ -97,7 +102,7 @@ public class ImeiInfoPreferenceControllerTest {

        mController.displayPreference(mScreen);

        verify(mScreen).addPreference(mSecondSimPreference);
        verify(mCategory).addPreference(mSecondSimPreference);
    }

    @Test
Loading