Merge "[Settings] Avoid from EUICC access blocking main thread" am: bb750ad2d7
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1391158 Change-Id: Id5642816c285ca5fe0f0ea13d9e159bdacdcfd4f
This commit is contained in:
@@ -29,6 +29,7 @@ import android.graphics.drawable.ColorDrawable;
|
|||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.LayerDrawable;
|
import android.graphics.drawable.LayerDrawable;
|
||||||
import android.os.PersistableBundle;
|
import android.os.PersistableBundle;
|
||||||
|
import android.os.SystemClock;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.telecom.PhoneAccountHandle;
|
import android.telecom.PhoneAccountHandle;
|
||||||
@@ -60,9 +61,12 @@ import com.android.settings.core.BasePreferenceController;
|
|||||||
import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
|
import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
|
||||||
import com.android.settingslib.development.DevelopmentSettingsEnabler;
|
import com.android.settingslib.development.DevelopmentSettingsEnabler;
|
||||||
import com.android.settingslib.graph.SignalDrawable;
|
import com.android.settingslib.graph.SignalDrawable;
|
||||||
|
import com.android.settingslib.utils.ThreadUtils;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
|
import java.util.concurrent.Future;
|
||||||
|
|
||||||
public class MobileNetworkUtils {
|
public class MobileNetworkUtils {
|
||||||
|
|
||||||
@@ -290,6 +294,18 @@ public class MobileNetworkUtils {
|
|||||||
* the user has enabled development mode.
|
* the user has enabled development mode.
|
||||||
*/
|
*/
|
||||||
public static boolean showEuiccSettings(Context context) {
|
public static boolean showEuiccSettings(Context context) {
|
||||||
|
long timeForAccess = SystemClock.elapsedRealtime();
|
||||||
|
try {
|
||||||
|
return ((Future<Boolean>) ThreadUtils.postOnBackgroundThread(()
|
||||||
|
-> showEuiccSettingsDetecting(context))).get();
|
||||||
|
} catch (ExecutionException | InterruptedException exception) {
|
||||||
|
timeForAccess = SystemClock.elapsedRealtime() - timeForAccess;
|
||||||
|
Log.w(TAG, "Accessing Euicc takes too long: +" + timeForAccess + "ms");
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Boolean showEuiccSettingsDetecting(Context context) {
|
||||||
final EuiccManager euiccManager =
|
final EuiccManager euiccManager =
|
||||||
(EuiccManager) context.getSystemService(EuiccManager.class);
|
(EuiccManager) context.getSystemService(EuiccManager.class);
|
||||||
if (!euiccManager.isEnabled()) {
|
if (!euiccManager.isEnabled()) {
|
||||||
|
Reference in New Issue
Block a user