From 974c3864bb438fc924913e0017385f873332d052 Mon Sep 17 00:00:00 2001 From: Michael Jurka Date: Tue, 22 May 2012 22:00:31 -0700 Subject: Skip custom Play cling if no accounts are set up Bug: 6519934 Change-Id: Ic796b2fb03201a3c767f92b36edfdb4b2e41e5d4 --- AndroidManifest.xml | 1 + src/com/android/launcher2/Cling.java | 4 ++++ src/com/android/launcher2/Launcher.java | 17 ++++++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 47278bb83..dbeb7bce1 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -57,6 +57,7 @@ + diff --git a/src/com/android/launcher2/Cling.java b/src/com/android/launcher2/Cling.java index 5cde0b447..c83ee2fde 100644 --- a/src/com/android/launcher2/Cling.java +++ b/src/com/android/launcher2/Cling.java @@ -115,6 +115,10 @@ public class Cling extends FrameLayout { mIsInitialized = false; } + public String getDrawIdentifier() { + return mDrawIdentifier; + } + private int[] getPunchThroughPositions() { if (mDrawIdentifier.equals(WORKSPACE_PORTRAIT)) { return new int[]{getMeasuredWidth() / 2, getMeasuredHeight() - (mButtonBarHeight / 2)}; diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index 84b5003eb..d01de9c77 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -17,6 +17,8 @@ package com.android.launcher2; +import android.accounts.Account; +import android.accounts.AccountManager; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; @@ -3516,10 +3518,23 @@ public final class Launcher extends Activity }); } } + + private boolean skipCustomClingIfNoAccounts() { + Cling cling = (Cling) findViewById(R.id.workspace_cling); + boolean customCling = cling.getDrawIdentifier().equals("workspace_custom"); + if (customCling) { + AccountManager am = AccountManager.get(this); + Account[] accounts = am.getAccountsByType("com.google"); + return accounts.length == 0; + } + return false; + } + public void showFirstRunWorkspaceCling() { // Enable the clings only if they have not been dismissed before if (isClingsEnabled() && - !mSharedPrefs.getBoolean(Cling.WORKSPACE_CLING_DISMISSED_KEY, false)) { + !mSharedPrefs.getBoolean(Cling.WORKSPACE_CLING_DISMISSED_KEY, false) && + !skipCustomClingIfNoAccounts() ) { initCling(R.id.workspace_cling, null, false, 0); } else { removeCling(R.id.workspace_cling); -- cgit v1.2.3