Merge "Add APIs to indicate which subscriptions should be hidden from user"
This commit is contained in:
@@ -53,6 +53,7 @@ import android.os.RemoteException;
|
|||||||
import android.os.ServiceManager;
|
import android.os.ServiceManager;
|
||||||
import android.telephony.euicc.EuiccManager;
|
import android.telephony.euicc.EuiccManager;
|
||||||
import android.telephony.ims.ImsMmTelManager;
|
import android.telephony.ims.ImsMmTelManager;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.util.DisplayMetrics;
|
import android.util.DisplayMetrics;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -68,6 +69,7 @@ import java.util.List;
|
|||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SubscriptionManager is the application interface to SubscriptionController
|
* SubscriptionManager is the application interface to SubscriptionController
|
||||||
@@ -2514,6 +2516,42 @@ public class SubscriptionManager {
|
|||||||
(iSub)-> iSub.setMetered(isMetered, subId));
|
(iSub)-> iSub.setMetered(isMetered, subId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether system UI should hide a subscription. If it's a bundled opportunistic
|
||||||
|
* subscription, it shouldn't show up in anywhere in Settings app, dialer app,
|
||||||
|
* or status bar.
|
||||||
|
*
|
||||||
|
* @param info the subscriptionInfo to check against.
|
||||||
|
* @return true if this subscription should be hidden.
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public static boolean shouldHideSubscription(SubscriptionInfo info) {
|
||||||
|
return (info != null && !TextUtils.isEmpty(info.getGroupUuid()) && info.isOpportunistic());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a list of subscriptions that are available and visible to the user.
|
||||||
|
* Used by Settings app to show a list of subscriptions for user to pick.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Permissions android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE is required
|
||||||
|
* for getSelectableSubscriptionInfoList to be invoked.
|
||||||
|
* @return list of user selectable subscriptions.
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public @Nullable List<SubscriptionInfo> getSelectableSubscriptionInfoList() {
|
||||||
|
List<SubscriptionInfo> availableList = getAvailableSubscriptionInfoList();
|
||||||
|
if (availableList == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return getAvailableSubscriptionInfoList().stream()
|
||||||
|
.filter(subInfo -> !shouldHideSubscription(subInfo))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private interface CallISubMethodHelper {
|
private interface CallISubMethodHelper {
|
||||||
int callMethod(ISub iSub) throws RemoteException;
|
int callMethod(ISub iSub) throws RemoteException;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user