SetupWizard: Give radio a 10 second chance to come up
Change-Id: Iadd817b200106783dd67edbc5ad03928ce2baa6b
diff --git a/src/com/cyanogenmod/setupwizard/SetupWizardApp.java b/src/com/cyanogenmod/setupwizard/SetupWizardApp.java
index 015e368..67e558b 100644
--- a/src/com/cyanogenmod/setupwizard/SetupWizardApp.java
+++ b/src/com/cyanogenmod/setupwizard/SetupWizardApp.java
@@ -21,6 +21,7 @@
import android.app.StatusBarManager;
import android.content.Context;
import android.content.pm.PackageManager;
+import android.os.Handler;
import android.provider.Settings;
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
@@ -59,8 +60,21 @@
public static final int REQUEST_CODE_SETUP_CYANOGEN= 3;
public static final int REQUEST_CODE_SETUP_CAPTIVE_PORTAL= 4;
+ public static final int RADIO_READY_TIMEOUT = 10 * 1000;
+
+ private boolean mIsRadioReady = false;
+
private StatusBarManager mStatusBarManager;
+ private final Handler mHandler = new Handler();
+
+ private final Runnable mRadioTimeoutRunnable = new Runnable() {
+ @Override
+ public void run() {
+ mIsRadioReady = true;
+ }
+ };
+
@Override
public void onCreate() {
super.onCreate();
@@ -84,6 +98,18 @@
// Continue with setup
disableCaptivePortalDetection();
}
+ mHandler.postDelayed(mRadioTimeoutRunnable, SetupWizardApp.RADIO_READY_TIMEOUT);
+ }
+
+ public boolean isRadioReady() {
+ return mIsRadioReady;
+ }
+
+ public void setRadioReady(boolean radioReady) {
+ if (!mIsRadioReady && radioReady) {
+ mHandler.removeCallbacks(mRadioTimeoutRunnable);
+ }
+ mIsRadioReady = radioReady;
}
public void disableStatusBar() {