From 7ab7f3c6d9927a9c833bfe3bd5c6d6819dbedb6d Mon Sep 17 00:00:00 2001 From: Matt Mower Date: Mon, 21 Dec 2015 10:55:35 -0600 Subject: [PATCH] SetupWizard: Conditionally run account setup If the package defined by cm_account_type (which can be overlayed) exists, then add CyanogenSettingsPage. Otherwise, omit. PS3: On the cyngn side, the account type and package name don't match. Added a new string to overlay. Change-Id: I15e032e21281aaf51ca32ac9cc0861e033201f19 --- res/values/strings.xml | 1 + .../setupwizard/setup/CMSetupWizardData.java | 5 ++++- .../cyanogenmod/setupwizard/util/SetupWizardUtils.java | 10 ++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 5f1f183..8791d7a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -21,6 +21,7 @@ Material com.cyanogenmod.account + com.cyanogenmod.account Next Skip diff --git a/src/com/cyanogenmod/setupwizard/setup/CMSetupWizardData.java b/src/com/cyanogenmod/setupwizard/setup/CMSetupWizardData.java index 79e2469..fa32537 100644 --- a/src/com/cyanogenmod/setupwizard/setup/CMSetupWizardData.java +++ b/src/com/cyanogenmod/setupwizard/setup/CMSetupWizardData.java @@ -26,6 +26,7 @@ import android.telephony.TelephonyManager; import android.util.Log; import com.android.internal.telephony.TelephonyIntents; +import com.cyanogenmod.setupwizard.R; import com.cyanogenmod.setupwizard.util.SetupWizardUtils; import java.util.ArrayList; @@ -66,7 +67,9 @@ public class CMSetupWizardData extends AbstractSetupData { if (SetupWizardUtils.hasGMS(mContext)) { pages.add(new GmsAccountPage(mContext, this).setHidden(true)); } - if (!SetupWizardUtils.hasLeanback(mContext)) { + if (!SetupWizardUtils.hasLeanback(mContext) && + SetupWizardUtils.isPackageInstalled(mContext, + mContext.getString(R.string.cm_account_package_name))) { pages.add(new CyanogenServicesPage(mContext, this).setHidden(true)); } if (SetupWizardUtils.hasFingerprint(mContext) && SetupWizardUtils.isOwner()) { diff --git a/src/com/cyanogenmod/setupwizard/util/SetupWizardUtils.java b/src/com/cyanogenmod/setupwizard/util/SetupWizardUtils.java index e7411ae..4918b11 100644 --- a/src/com/cyanogenmod/setupwizard/util/SetupWizardUtils.java +++ b/src/com/cyanogenmod/setupwizard/util/SetupWizardUtils.java @@ -199,6 +199,16 @@ public class SetupWizardUtils { return AccountManager.get(context).getAccountsByType(accountType).length > 0; } + public static boolean isPackageInstalled(Context context, String packageName) { + PackageManager pm = context.getPackageManager(); + try { + pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES); + return true; + } catch (PackageManager.NameNotFoundException e) { + return false; + } + } + public static void disableSetupWizard(Context context) { disableComponent(context, context.getPackageName(), "com.cyanogenmod.setupwizard.ui.SetupWizardActivity");