Setupwizard: Make sure to advance if GMS is absent

Change-Id: Ia0c4d83c9a9f7c581208d753024f55f48326afc7
(cherry picked from commit cb09e29e29e64032fba5cfd47e71c4db38b32f20)
This commit is contained in:
cretin45 2015-04-09 12:08:03 -07:00 committed by Ed Carrigan
parent 714be1a490
commit bfd7ca0545
2 changed files with 26 additions and 22 deletions

View File

@ -176,31 +176,33 @@ public class GmsAccountPage extends SetupPage {
private void launchGmsRestorePage() { private void launchGmsRestorePage() {
try { try {
// GMS can disable this after logging in sometimes // GMS can disable this after logging in sometimes
SetupWizardUtils.enableGMSSetupWizard(mContext); if (SetupWizardUtils.enableGMSSetupWizard(mContext)) {
Intent intent = new Intent(ACTION_RESTORE); Intent intent = new Intent(ACTION_RESTORE);
intent.putExtra(SetupWizardApp.EXTRA_ALLOW_SKIP, true); intent.putExtra(SetupWizardApp.EXTRA_ALLOW_SKIP, true);
intent.putExtra(SetupWizardApp.EXTRA_USE_IMMERSIVE, true); intent.putExtra(SetupWizardApp.EXTRA_USE_IMMERSIVE, true);
intent.putExtra(SetupWizardApp.EXTRA_FIRST_RUN, true); intent.putExtra(SetupWizardApp.EXTRA_FIRST_RUN, true);
intent.putExtra(SetupWizardApp.EXTRA_THEME, SetupWizardApp.EXTRA_MATERIAL_LIGHT); intent.putExtra(SetupWizardApp.EXTRA_THEME, SetupWizardApp.EXTRA_MATERIAL_LIGHT);
// XXX: Fool G's setup wizard into thinking it is their setup wizard. // XXX: Fool G's setup wizard into thinking it is their setup wizard.
// This is necessary to get the material theme on the restore page. // This is necessary to get the material theme on the restore page.
intent.putExtra("scriptUri", RESTORE_WIZARD_SCRIPT); intent.putExtra("scriptUri", RESTORE_WIZARD_SCRIPT);
ActivityOptions options = ActivityOptions options =
ActivityOptions.makeCustomAnimation(mContext, ActivityOptions.makeCustomAnimation(mContext,
android.R.anim.fade_in, android.R.anim.fade_in,
android.R.anim.fade_out); android.R.anim.fade_out);
SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
SetupStats.Action.EXTERNAL_PAGE_LAUNCH, SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
SetupStats.Label.PAGE, SetupStats.Label.RESTORE); SetupStats.Label.PAGE, SetupStats.Label.RESTORE);
mFragment.startActivityForResult( mFragment.startActivityForResult(
intent, intent,
SetupWizardApp.REQUEST_CODE_RESTORE_GMS, options.toBundle()); SetupWizardApp.REQUEST_CODE_RESTORE_GMS, options.toBundle());
return;
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
// XXX: In open source, we don't know what gms version a user has. // XXX: In open source, we don't know what gms version a user has.
// Bail if the restore activity is not found. // Bail if the restore activity is not found.
getCallbacks().onNextPage();
} }
getCallbacks().onNextPage();
} }
private void launchGmsAccountSetup() { private void launchGmsAccountSetup() {

View File

@ -163,7 +163,7 @@ public class SetupWizardUtils {
} }
} }
public static void enableGMSSetupWizard(Context context) { public static boolean enableGMSSetupWizard(Context context) {
try { try {
PackageInfo packageInfo = context.getPackageManager() PackageInfo packageInfo = context.getPackageManager()
.getPackageInfo(GOOGLE_SETUPWIZARD_PACKAGE, .getPackageInfo(GOOGLE_SETUPWIZARD_PACKAGE,
@ -172,8 +172,10 @@ public class SetupWizardUtils {
enableComponentArray(context, packageInfo.activities); enableComponentArray(context, packageInfo.activities);
enableComponentArray(context, packageInfo.services); enableComponentArray(context, packageInfo.services);
enableComponentArray(context, packageInfo.receivers); enableComponentArray(context, packageInfo.receivers);
return true;
} catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) {
Log.e(TAG, "Unable to disable GMS"); Log.e(TAG, "Unable to enable GMS");
return false;
} }
} }