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() {
try {
// GMS can disable this after logging in sometimes
SetupWizardUtils.enableGMSSetupWizard(mContext);
Intent intent = new Intent(ACTION_RESTORE);
intent.putExtra(SetupWizardApp.EXTRA_ALLOW_SKIP, true);
intent.putExtra(SetupWizardApp.EXTRA_USE_IMMERSIVE, true);
intent.putExtra(SetupWizardApp.EXTRA_FIRST_RUN, true);
intent.putExtra(SetupWizardApp.EXTRA_THEME, SetupWizardApp.EXTRA_MATERIAL_LIGHT);
// 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.
intent.putExtra("scriptUri", RESTORE_WIZARD_SCRIPT);
ActivityOptions options =
ActivityOptions.makeCustomAnimation(mContext,
android.R.anim.fade_in,
android.R.anim.fade_out);
SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
SetupStats.Label.PAGE, SetupStats.Label.RESTORE);
mFragment.startActivityForResult(
intent,
SetupWizardApp.REQUEST_CODE_RESTORE_GMS, options.toBundle());
if (SetupWizardUtils.enableGMSSetupWizard(mContext)) {
Intent intent = new Intent(ACTION_RESTORE);
intent.putExtra(SetupWizardApp.EXTRA_ALLOW_SKIP, true);
intent.putExtra(SetupWizardApp.EXTRA_USE_IMMERSIVE, true);
intent.putExtra(SetupWizardApp.EXTRA_FIRST_RUN, true);
intent.putExtra(SetupWizardApp.EXTRA_THEME, SetupWizardApp.EXTRA_MATERIAL_LIGHT);
// 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.
intent.putExtra("scriptUri", RESTORE_WIZARD_SCRIPT);
ActivityOptions options =
ActivityOptions.makeCustomAnimation(mContext,
android.R.anim.fade_in,
android.R.anim.fade_out);
SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
SetupStats.Label.PAGE, SetupStats.Label.RESTORE);
mFragment.startActivityForResult(
intent,
SetupWizardApp.REQUEST_CODE_RESTORE_GMS, options.toBundle());
return;
}
} catch (Exception e) {
e.printStackTrace();
// XXX: In open source, we don't know what gms version a user has.
// Bail if the restore activity is not found.
getCallbacks().onNextPage();
}
getCallbacks().onNextPage();
}
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 {
PackageInfo packageInfo = context.getPackageManager()
.getPackageInfo(GOOGLE_SETUPWIZARD_PACKAGE,
@ -172,8 +172,10 @@ public class SetupWizardUtils {
enableComponentArray(context, packageInfo.activities);
enableComponentArray(context, packageInfo.services);
enableComponentArray(context, packageInfo.receivers);
return true;
} catch (PackageManager.NameNotFoundException e) {
Log.e(TAG, "Unable to disable GMS");
Log.e(TAG, "Unable to enable GMS");
return false;
}
}