Add the condtions to show the pSIM conversion menu
if the value of carrier config and current SIM's carrier is matched, then the pSIM conversion menu will show Bug: b/319527964 Test: manual test (b/319527964#comment3) Change-Id: I82025447f43c0151ba58edd77c6f8b7e8aff660d
This commit is contained in:
@@ -793,4 +793,8 @@
|
|||||||
|
|
||||||
<!-- Whether to display pSIM conversion menu in Settings.-->
|
<!-- Whether to display pSIM conversion menu in Settings.-->
|
||||||
<bool name="config_psim_conversion_menu_enabled">false</bool>
|
<bool name="config_psim_conversion_menu_enabled">false</bool>
|
||||||
|
|
||||||
|
<!-- Array of carrier id to allow the pSIM conversion-->
|
||||||
|
<integer-array name="config_psim_conversion_menu_enabled_carrier" translatable="false">
|
||||||
|
</integer-array>
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -51,6 +51,7 @@ import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ConvertToEsimPreferenceController extends TelephonyBasePreferenceController implements
|
public class ConvertToEsimPreferenceController extends TelephonyBasePreferenceController implements
|
||||||
@@ -111,7 +112,8 @@ public class ConvertToEsimPreferenceController extends TelephonyBasePreferenceCo
|
|||||||
* To avoid showing users dialogs that can cause confusion,
|
* To avoid showing users dialogs that can cause confusion,
|
||||||
* add conditions to allow conversion in the absence of active eSIM.
|
* add conditions to allow conversion in the absence of active eSIM.
|
||||||
*/
|
*/
|
||||||
if (!mContext.getResources().getBoolean(R.bool.config_psim_conversion_menu_enabled)) {
|
if (!mContext.getResources().getBoolean(R.bool.config_psim_conversion_menu_enabled)
|
||||||
|
|| !isPsimConversionSupport(subId)) {
|
||||||
return CONDITIONALLY_UNAVAILABLE;
|
return CONDITIONALLY_UNAVAILABLE;
|
||||||
}
|
}
|
||||||
if (findConversionSupportComponent()) {
|
if (findConversionSupportComponent()) {
|
||||||
@@ -238,4 +240,16 @@ public class ConvertToEsimPreferenceController extends TelephonyBasePreferenceCo
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isPsimConversionSupport(int subId) {
|
||||||
|
SubscriptionManager subscriptionManager = mContext.getSystemService(
|
||||||
|
SubscriptionManager.class);
|
||||||
|
SubscriptionInfo subInfo = subscriptionManager.getActiveSubscriptionInfo(subId);
|
||||||
|
if (subInfo == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final int[] supportedCarriers = mContext.getResources().getIntArray(
|
||||||
|
R.array.config_psim_conversion_menu_enabled_carrier);
|
||||||
|
return Arrays.stream(supportedCarriers).anyMatch(id -> id == subInfo.getCarrierId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user