Loading src/com/android/launcher3/Launcher.java +26 −3 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; Loading Loading @@ -478,12 +479,19 @@ public class Launcher extends Activity // On large interfaces, we want the screen to auto-rotate based on the current orientation unlockScreenOrientation(true); // The two first run cling paths are mutually exclusive, if the launcher is preinstalled // on the device, then we always show the first run cling experience (or if there is no // launcher2). Otherwise, we prompt the user upon started for migration showFirstRunActivity(); if (mModel.canMigrateFromOldLauncherDb()) { if (mLauncherClings.shouldShowFirstRunOrMigrationClings()) { if (mModel.canMigrateFromOldLauncherDb(this)) { mLauncherClings.showMigrationCling(); } else { mLauncherClings.showFirstRunCling(); } } else { mLauncherClings.removeFirstRunAndMigrationClings(); } } protected void onUserLeaveHint() { Loading Loading @@ -4280,6 +4288,21 @@ public class Launcher extends Activity mLauncherClings.updateSearchBarHint(hint); } protected boolean isLauncherPreinstalled() { PackageManager pm = getPackageManager(); try { ApplicationInfo ai = pm.getApplicationInfo(getComponentName().getPackageName(), 0); if ((ai.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { return true; } else { return false; } } catch (NameNotFoundException e) { e.printStackTrace(); return false; } } protected String getFirstRunClingSearchBarHint() { return ""; } Loading src/com/android/launcher3/LauncherClings.java +29 −17 Original line number Diff line number Diff line Loading @@ -200,14 +200,27 @@ class LauncherClings { } } /** Shows the first run cling */ public void showFirstRunCling() { public boolean shouldShowFirstRunOrMigrationClings() { SharedPreferences sharedPrefs = mLauncher.getSharedPrefs(); if (isClingsEnabled() && return isClingsEnabled() && !sharedPrefs.getBoolean(FIRST_RUN_CLING_DISMISSED_KEY, false) && !skipCustomClingIfNoAccounts() ) { !sharedPrefs.getBoolean(MIGRATION_CLING_DISMISSED_KEY, false); } public void removeFirstRunAndMigrationClings() { removeCling(R.id.first_run_cling); removeCling(R.id.migration_cling); } /** * Shows the first run cling. * * This flow is mutually exclusive with showMigrationCling, and only runs if this Launcher * package was preinstalled or there is no db to migrate from. */ public void showFirstRunCling() { if (!skipCustomClingIfNoAccounts()) { SharedPreferences sharedPrefs = mLauncher.getSharedPrefs(); // If we're not using the default workspace layout, replace workspace cling // with a custom workspace cling (usually specified in an overlay) // For now, only do this on tablets Loading Loading @@ -238,22 +251,22 @@ class LauncherClings { } initCling(R.id.first_run_cling, 0, false, true); } else { removeCling(R.id.first_run_cling); removeFirstRunAndMigrationClings(); } } /** * Shows the migration cling. * * This flow is mutually exclusive with showFirstRunCling, and only runs if this Launcher * package was not preinstalled and there exists a db to migrate from. */ public void showMigrationCling() { // Enable the clings only if they have not been dismissed before if (isClingsEnabled() && !mLauncher.getSharedPrefs().getBoolean( MIGRATION_CLING_DISMISSED_KEY, false)) { mLauncher.hideWorkspaceSearchAndHotseat(); Cling c = initCling(R.id.migration_cling, 0, false, true); c.bringScrimToFront(); c.bringToFront(); } else { removeCling(R.id.migration_cling); } } public void showMigrationWorkspaceCling() { Loading Loading @@ -300,7 +313,6 @@ class LauncherClings { } } /** Removes the cling outright from the DragLayer */ private void removeCling(int id) { final View cling = mLauncher.findViewById(id); Loading src/com/android/launcher3/LauncherModel.java +2 −2 Original line number Diff line number Diff line Loading @@ -227,8 +227,8 @@ public class LauncherModel extends BroadcastReceiver { } } boolean canMigrateFromOldLauncherDb() { return mOldContentProviderExists; boolean canMigrateFromOldLauncherDb(Launcher launcher) { return mOldContentProviderExists && !launcher.isLauncherPreinstalled() ; } static boolean findNextAvailableIconSpaceInScreen(ArrayList<ItemInfo> items, int[] xy, Loading Loading
src/com/android/launcher3/Launcher.java +26 −3 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; Loading Loading @@ -478,12 +479,19 @@ public class Launcher extends Activity // On large interfaces, we want the screen to auto-rotate based on the current orientation unlockScreenOrientation(true); // The two first run cling paths are mutually exclusive, if the launcher is preinstalled // on the device, then we always show the first run cling experience (or if there is no // launcher2). Otherwise, we prompt the user upon started for migration showFirstRunActivity(); if (mModel.canMigrateFromOldLauncherDb()) { if (mLauncherClings.shouldShowFirstRunOrMigrationClings()) { if (mModel.canMigrateFromOldLauncherDb(this)) { mLauncherClings.showMigrationCling(); } else { mLauncherClings.showFirstRunCling(); } } else { mLauncherClings.removeFirstRunAndMigrationClings(); } } protected void onUserLeaveHint() { Loading Loading @@ -4280,6 +4288,21 @@ public class Launcher extends Activity mLauncherClings.updateSearchBarHint(hint); } protected boolean isLauncherPreinstalled() { PackageManager pm = getPackageManager(); try { ApplicationInfo ai = pm.getApplicationInfo(getComponentName().getPackageName(), 0); if ((ai.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { return true; } else { return false; } } catch (NameNotFoundException e) { e.printStackTrace(); return false; } } protected String getFirstRunClingSearchBarHint() { return ""; } Loading
src/com/android/launcher3/LauncherClings.java +29 −17 Original line number Diff line number Diff line Loading @@ -200,14 +200,27 @@ class LauncherClings { } } /** Shows the first run cling */ public void showFirstRunCling() { public boolean shouldShowFirstRunOrMigrationClings() { SharedPreferences sharedPrefs = mLauncher.getSharedPrefs(); if (isClingsEnabled() && return isClingsEnabled() && !sharedPrefs.getBoolean(FIRST_RUN_CLING_DISMISSED_KEY, false) && !skipCustomClingIfNoAccounts() ) { !sharedPrefs.getBoolean(MIGRATION_CLING_DISMISSED_KEY, false); } public void removeFirstRunAndMigrationClings() { removeCling(R.id.first_run_cling); removeCling(R.id.migration_cling); } /** * Shows the first run cling. * * This flow is mutually exclusive with showMigrationCling, and only runs if this Launcher * package was preinstalled or there is no db to migrate from. */ public void showFirstRunCling() { if (!skipCustomClingIfNoAccounts()) { SharedPreferences sharedPrefs = mLauncher.getSharedPrefs(); // If we're not using the default workspace layout, replace workspace cling // with a custom workspace cling (usually specified in an overlay) // For now, only do this on tablets Loading Loading @@ -238,22 +251,22 @@ class LauncherClings { } initCling(R.id.first_run_cling, 0, false, true); } else { removeCling(R.id.first_run_cling); removeFirstRunAndMigrationClings(); } } /** * Shows the migration cling. * * This flow is mutually exclusive with showFirstRunCling, and only runs if this Launcher * package was not preinstalled and there exists a db to migrate from. */ public void showMigrationCling() { // Enable the clings only if they have not been dismissed before if (isClingsEnabled() && !mLauncher.getSharedPrefs().getBoolean( MIGRATION_CLING_DISMISSED_KEY, false)) { mLauncher.hideWorkspaceSearchAndHotseat(); Cling c = initCling(R.id.migration_cling, 0, false, true); c.bringScrimToFront(); c.bringToFront(); } else { removeCling(R.id.migration_cling); } } public void showMigrationWorkspaceCling() { Loading Loading @@ -300,7 +313,6 @@ class LauncherClings { } } /** Removes the cling outright from the DragLayer */ private void removeCling(int id) { final View cling = mLauncher.findViewById(id); Loading
src/com/android/launcher3/LauncherModel.java +2 −2 Original line number Diff line number Diff line Loading @@ -227,8 +227,8 @@ public class LauncherModel extends BroadcastReceiver { } } boolean canMigrateFromOldLauncherDb() { return mOldContentProviderExists; boolean canMigrateFromOldLauncherDb(Launcher launcher) { return mOldContentProviderExists && !launcher.isLauncherPreinstalled() ; } static boolean findNextAvailableIconSpaceInScreen(ArrayList<ItemInfo> items, int[] xy, Loading