diff options
author | Adam Cohen <adamcohen@google.com> | 2014-07-23 18:21:20 -0700 |
---|---|---|
committer | Adam Cohen <adamcohen@google.com> | 2014-07-23 20:40:09 -0700 |
commit | 3ed316a71d5ec5be2e25ba0a993ebd71a260217c (patch) | |
tree | 64d66cdf5f43895da027ed4811381beb3b1c1a37 | |
parent | a043fa89211541c71b5bef052ebc49f722d338b9 (diff) | |
download | android_packages_apps_Trebuchet-3ed316a71d5ec5be2e25ba0a993ebd71a260217c.tar.gz android_packages_apps_Trebuchet-3ed316a71d5ec5be2e25ba0a993ebd71a260217c.tar.bz2 android_packages_apps_Trebuchet-3ed316a71d5ec5be2e25ba0a993ebd71a260217c.zip |
Adding broadcast to indicate first launcher load
-> fixing small thing from previous CL
issue 16191557
Change-Id: I015859f6028066e7c8664436f291ed226a539e29
-rw-r--r-- | AndroidManifest.xml | 4 | ||||
-rw-r--r-- | res/values/strings.xml | 3 | ||||
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 17 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherProvider.java | 7 |
4 files changed, 27 insertions, 4 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 49efc5d89..f391a19a2 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -50,11 +50,13 @@ android:protectionLevel="signatureOrSystem" android:label="@string/permlab_write_settings" android:description="@string/permdesc_write_settings"/> - <permission android:name="com.android.launcher3.permission.RECEIVE_LAUNCH_BROADCASTS" android:protectionLevel="signature" /> + <permission + android:name="com.android.launcher3.permission.RECEIVE_FIRST_LOAD_BROADCAST" + android:protectionLevel="signatureOrSystem" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.SET_WALLPAPER" /> diff --git a/res/values/strings.xml b/res/values/strings.xml index 1ee1be6fd..780dcd22a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -27,6 +27,9 @@ <!-- Permission to receive the com.android.launcher3.action.LAUNCH intent --> <string name="receive_launch_broadcasts_permission" translatable="false">com.android.launcher3.permission.RECEIVE_LAUNCH_BROADCASTS</string> + <!-- Permission to receive the com.android.launcher3.action.FIRST_LOAD_COMPLETE intent --> + <string name="receive_first_load_broadcast_permission" translatable="false">com.android.launcher3.permission.RECEIVE_FIRST_LOAD_BROADCAST</string> + <!-- Application name --> <string name="application_name">Launcher3</string> <!-- Accessibility-facing application name --> diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 65f9cbee8..718634d42 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -209,6 +209,10 @@ public class Launcher extends Activity static final String INTRO_SCREEN_DISMISSED = "launcher.intro_screen_dismissed"; static final String FIRST_RUN_ACTIVITY_DISPLAYED = "launcher.first_run_activity_displayed"; + static final String FIRST_LOAD_COMPLETE = "launcher.first_load_complete"; + static final String ACTION_FIRST_LOAD_COMPLETE = + "com.android.launcher3.action.FIRST_LOAD_COMPLETE"; + private static final String TOOLBAR_ICON_METADATA_NAME = "com.android.launcher.toolbar_icon"; private static final String TOOLBAR_SEARCH_ICON_METADATA_NAME = "com.android.launcher.toolbar_search_icon"; @@ -4454,6 +4458,7 @@ public class Launcher extends Activity } setWorkspaceLoading(false); + sendLoadingCompleteBroadcastIfNecessary(); // If we received the result of any pending adds while the loader was running (e.g. the // widget configuration forced an orientation change), process them now. @@ -4478,6 +4483,18 @@ public class Launcher extends Activity } } + private void sendLoadingCompleteBroadcastIfNecessary() { + if (!mSharedPrefs.getBoolean(FIRST_LOAD_COMPLETE, false)) { + String permission = + getResources().getString(R.string.receive_first_load_broadcast_permission); + Intent intent = new Intent(ACTION_FIRST_LOAD_COMPLETE); + sendBroadcast(intent, permission); + SharedPreferences.Editor editor = mSharedPrefs.edit(); + editor.putBoolean(FIRST_LOAD_COMPLETE, true); + editor.apply(); + } + } + public boolean isAllAppsButtonRank(int rank) { if (mHotseat != null) { return mHotseat.isAllAppsButtonRank(rank); diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java index 3ff617631..ac4a2063e 100644 --- a/src/com/android/launcher3/LauncherProvider.java +++ b/src/com/android/launcher3/LauncherProvider.java @@ -1275,14 +1275,15 @@ public class LauncherProvider extends ContentProvider { if (cn != null) { try { int appWidgetId = mAppWidgetHost.allocateAppWidgetId(); - if (!appWidgetManager.bindAppWidgetIdIfAllowed(appWidgetId,cn)) { - return false; + values.put(LauncherSettings.Favorites.APPWIDGET_ID, appWidgetId); + if (appWidgetManager.bindAppWidgetIdIfAllowed(appWidgetId,cn)) { + return true; } } catch (RuntimeException e) { Log.e(TAG, "Failed to initialize external widget", e); - return false; } } + return false; } return true; } |