diff options
author | cretin45 <cretin45@gmail.com> | 2015-02-23 13:52:37 -0800 |
---|---|---|
committer | cretin45 <cretin45@gmail.com> | 2015-02-25 14:59:06 -0800 |
commit | 01f21da16bc6c958ee237a6fa9170f7e11fda2c7 (patch) | |
tree | d8d20ece00d73fe751c4170f3bb74bd401c33383 /src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java | |
parent | 1d54e5207a6e8e63dc19e5392bf9cfab967310bf (diff) | |
download | packages_apps_SetupWizard-01f21da16bc6c958ee237a6fa9170f7e11fda2c7.zip packages_apps_SetupWizard-01f21da16bc6c958ee237a6fa9170f7e11fda2c7.tar.gz packages_apps_SetupWizard-01f21da16bc6c958ee237a6fa9170f7e11fda2c7.tar.bz2 |
SetupWizard: Add option to apply default theme if one exists
* A bunch of code cleanup/refactoring to make this work
Change-Id: I059fb5fa5bcd7dd8821e993218a320554f10a314
Diffstat (limited to 'src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java')
-rw-r--r-- | src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java | 45 |
1 files changed, 32 insertions, 13 deletions
diff --git a/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java b/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java index 4a526b3..2dc2c94 100644 --- a/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java +++ b/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java @@ -18,8 +18,8 @@ package com.cyanogenmod.setupwizard.setup; import android.app.Activity; import android.app.ActivityOptions; -import android.app.Fragment; import android.app.FragmentManager; +import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.os.Bundle; @@ -30,7 +30,7 @@ import android.util.Log; import com.cyanogenmod.setupwizard.R; import com.cyanogenmod.setupwizard.SetupWizardApp; import com.cyanogenmod.setupwizard.ui.LoadingFragment; -import com.cyanogenmod.setupwizard.ui.SetupWizardActivity; +import com.cyanogenmod.setupwizard.ui.SetupPageFragment; import com.cyanogenmod.setupwizard.util.SetupWizardUtils; import java.io.IOException; @@ -59,10 +59,9 @@ public class WifiSetupPage extends SetupPage { private Runnable mFinishCaptivePortalCheckRunnable = new Runnable() { @Override public void run() { - final SetupWizardActivity activity = mContext; if (mIsCaptivePortal) { try { - int netId = ConnectivityManager.from(activity) + int netId = ConnectivityManager.from(mContext) .getNetworkForType(ConnectivityManager.TYPE_WIFI).netId; Intent intent = new Intent(CAPTIVE_PORTAL_LOGIN_ACTION); intent.putExtra(Intent.EXTRA_TEXT, String.valueOf(netId)); @@ -76,25 +75,25 @@ public class WifiSetupPage extends SetupPage { ActivityOptions.makeCustomAnimation(mContext, android.R.anim.fade_in, android.R.anim.fade_out); - activity.startActivityForResult(intent, + mLoadingFragment.startActivityForResult(intent, SetupWizardApp.REQUEST_CODE_SETUP_CAPTIVE_PORTAL, options.toBundle()); } catch (Exception e) { //Oh well Log.e(TAG, "No captive portal activity found" + e); - if (activity.isCurrentPage(WifiSetupPage.this)) { + if (getCallbacks().isCurrentPage(WifiSetupPage.this)) { getCallbacks().onNextPage(); } } } else { - if (activity.isCurrentPage(WifiSetupPage.this)) { + if (getCallbacks().isCurrentPage(WifiSetupPage.this)) { getCallbacks().onNextPage(); } } } }; - public WifiSetupPage(SetupWizardActivity context, SetupDataCallbacks callbacks) { + public WifiSetupPage(Context context, SetupDataCallbacks callbacks) { super(context, callbacks); String server = Settings.Global.getString(context.getContentResolver(), "captive_portal_server"); if (server == null) server = DEFAULT_SERVER; @@ -106,7 +105,7 @@ public class WifiSetupPage extends SetupPage { } @Override - public Fragment getFragment(FragmentManager fragmentManager, int action) { + public SetupPageFragment getFragment(FragmentManager fragmentManager, int action) { mLoadingFragment = (LoadingFragment)fragmentManager.findFragmentByTag(getKey()); if (mLoadingFragment == null) { Bundle args = new Bundle(); @@ -134,9 +133,8 @@ public class WifiSetupPage extends SetupPage { } @Override - public void doLoadAction(SetupWizardActivity context, int action) { - super.doLoadAction(context, action); - SetupWizardUtils.launchWifiSetup(context); + public void onFragmentReady() { + launchWifiSetup(); } @Override @@ -151,7 +149,7 @@ public class WifiSetupPage extends SetupPage { } } else if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_CAPTIVE_PORTAL) { if (resultCode == Activity.RESULT_CANCELED) { - SetupWizardUtils.launchWifiSetup(mContext); + launchWifiSetup(); } else { getCallbacks().onNextPage(); } @@ -183,6 +181,11 @@ public class WifiSetupPage extends SetupPage { urlConnection.setUseCaches(false); urlConnection.getInputStream(); // We got a valid response, but not from the real google + final int responseCode = urlConnection.getResponseCode(); + if (responseCode == 408 || responseCode == 504) { + // If we timeout here, we'll try and go through captive portal login + return true; + } return urlConnection.getResponseCode() != 204; } catch (IOException e) { Log.e(TAG, "Captive portal check - probably not a portal: exception " @@ -194,4 +197,20 @@ public class WifiSetupPage extends SetupPage { } } } + + private void launchWifiSetup() { + SetupWizardUtils.tryEnablingWifi(mContext); + Intent intent = new Intent(SetupWizardApp.ACTION_SETUP_WIFI); + intent.putExtra(SetupWizardApp.EXTRA_FIRST_RUN, true); + intent.putExtra(SetupWizardApp.EXTRA_ALLOW_SKIP, true); + intent.putExtra(SetupWizardApp.EXTRA_USE_IMMERSIVE, true); + intent.putExtra(SetupWizardApp.EXTRA_THEME, SetupWizardApp.EXTRA_MATERIAL_LIGHT); + intent.putExtra(SetupWizardApp.EXTRA_AUTO_FINISH, false); + ActivityOptions options = + ActivityOptions.makeCustomAnimation(mContext, + android.R.anim.fade_in, + android.R.anim.fade_out); + mLoadingFragment.startActivityForResult(intent, + SetupWizardApp.REQUEST_CODE_SETUP_WIFI, options.toBundle()); + } } |