Loading src/com/android/launcher3/Launcher.java +54 −34 Original line number Diff line number Diff line Loading @@ -1560,8 +1560,7 @@ public class Launcher extends Activity ItemInfo info = mPendingAddInfo; if (appWidgetInfo == null) { appWidgetInfo = LauncherAppWidgetProviderInfo.fromProviderInfo(this, mAppWidgetManager.getAppWidgetInfo(appWidgetId)); appWidgetInfo = mAppWidgetManager.getLauncherAppWidgetInfo(appWidgetId); } if (appWidgetInfo.isCustomWidget) { Loading Loading @@ -2558,10 +2557,10 @@ public class Launcher extends Activity final LauncherAppWidgetInfo info = (LauncherAppWidgetInfo) v.getTag(); if (v.isReadyForClickSetup()) { int widgetId = info.appWidgetId; AppWidgetProviderInfo appWidgetInfo = mAppWidgetManager.getAppWidgetInfo(widgetId); LauncherAppWidgetProviderInfo appWidgetInfo = mAppWidgetManager.getLauncherAppWidgetInfo(widgetId); if (appWidgetInfo != null) { mPendingAddWidgetInfo = LauncherAppWidgetProviderInfo.fromProviderInfo( this, appWidgetInfo); mPendingAddWidgetInfo = appWidgetInfo; mPendingAddInfo.copyFrom(info); mPendingAddWidgetId = widgetId; Loading Loading @@ -3538,10 +3537,6 @@ public class Launcher extends Activity // TODO } protected void disableVoiceButtonProxy(boolean disable) { // NO-OP } public boolean launcherCallbacksProvidesSearch() { return (mLauncherCallbacks != null && mLauncherCallbacks.providesSearch()); } Loading Loading @@ -3955,6 +3950,16 @@ public class Launcher extends Activity sFolders = folders.clone(); } private void bindSafeModeWidget(LauncherAppWidgetInfo item) { PendingAppWidgetHostView view = new PendingAppWidgetHostView(this, item, true); view.updateIcon(mIconCache); item.hostView = view; item.hostView.updateAppWidget(null); item.hostView.setOnClickListener(this); addAppWidgetToWorkspace(item, null, false); mWorkspace.requestLayout(); } /** * Add the views for a widget to the workspace. * Loading @@ -3970,19 +3975,31 @@ public class Launcher extends Activity return; } if (mIsSafeModeEnabled) { bindSafeModeWidget(item); return; } final long start = DEBUG_WIDGETS ? SystemClock.uptimeMillis() : 0; if (DEBUG_WIDGETS) { Log.d(TAG, "bindAppWidget: " + item); } final Workspace workspace = mWorkspace; LauncherAppWidgetProviderInfo appWidgetInfo = LauncherModel.getProviderInfo(this, item.providerName, item.user); final LauncherAppWidgetProviderInfo appWidgetInfo; if (!mIsSafeModeEnabled && ((item.restoreStatus & LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY) == 0) && (item.restoreStatus != LauncherAppWidgetInfo.RESTORE_COMPLETED)) { if (item.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY)) { // If the provider is not ready, bind as a pending widget. appWidgetInfo = null; } else if (item.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_ID_NOT_VALID)) { // The widget id is not valid. Try to find the widget based on the provider info. appWidgetInfo = mAppWidgetManager.findProvider(item.providerName, item.user); } else { appWidgetInfo = mAppWidgetManager.getLauncherAppWidgetInfo(item.appWidgetId); } // If the provider is ready, but the width is not yet restored, try to restore it. if (!item.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY) && (item.restoreStatus != LauncherAppWidgetInfo.RESTORE_COMPLETED)) { if (appWidgetInfo == null) { if (DEBUG_WIDGETS) { Log.d(TAG, "Removing restored widget: id=" + item.appWidgetId Loading @@ -3994,7 +4011,7 @@ public class Launcher extends Activity } // If we do not have a valid id, try to bind an id. if ((item.restoreStatus & LauncherAppWidgetInfo.FLAG_ID_NOT_VALID) != 0) { if (item.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_ID_NOT_VALID)) { // Note: This assumes that the id remap broadcast is received before this step. // If that is not the case, the id remap will be ignored and user may see the // click to setup view. Loading Loading @@ -4030,46 +4047,42 @@ public class Launcher extends Activity : LauncherAppWidgetInfo.FLAG_UI_NOT_READY; LauncherModel.updateItemInDatabase(this, item); } else if (((item.restoreStatus & LauncherAppWidgetInfo.FLAG_UI_NOT_READY) != 0) } else if (item.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_UI_NOT_READY) && (appWidgetInfo.configure == null)) { // If the ID is already valid, verify if we need to configure or not. // The widget was marked as UI not ready, but there is no configure activity to // update the UI. item.restoreStatus = LauncherAppWidgetInfo.RESTORE_COMPLETED; LauncherModel.updateItemInDatabase(this, item); } } if (!mIsSafeModeEnabled && item.restoreStatus == LauncherAppWidgetInfo.RESTORE_COMPLETED) { final int appWidgetId = item.appWidgetId; if (item.restoreStatus == LauncherAppWidgetInfo.RESTORE_COMPLETED) { if (DEBUG_WIDGETS) { Log.d(TAG, "bindAppWidget: id=" + item.appWidgetId + " belongs to component " + appWidgetInfo.provider); } // Verify that we own the widget AppWidgetProviderInfo info = mAppWidgetManager.getAppWidgetInfo(appWidgetId); if (info == null || appWidgetInfo == null || !info.provider.equals(appWidgetInfo.provider)) { Log.e(TAG, "Removing invalid widget: id=" + item.appWidgetId + " info=" + info + " appWidgetInfo=" + appWidgetInfo); if (appWidgetInfo == null) { Log.e(TAG, "Removing invalid widget: id=" + item.appWidgetId); deleteWidgetInfo(item); return; } item.hostView = mAppWidgetHost.createView(this, appWidgetId, appWidgetInfo); item.hostView = mAppWidgetHost.createView(this, item.appWidgetId, appWidgetInfo); item.minSpanX = appWidgetInfo.minSpanX; item.minSpanY = appWidgetInfo.minSpanY; addAppWidgetToWorkspace(item, appWidgetInfo, false); } else { appWidgetInfo = null; PendingAppWidgetHostView view = new PendingAppWidgetHostView(this, item, mIsSafeModeEnabled); view.updateIcon(mIconCache); item.hostView = view; item.hostView.updateAppWidget(null); item.hostView.setOnClickListener(this); addAppWidgetToWorkspace(item, null, false); } addAppWidgetToWorkspace(item, appWidgetInfo, false); workspace.requestLayout(); mWorkspace.requestLayout(); if (DEBUG_WIDGETS) { Log.d(TAG, "bound widget id="+item.appWidgetId+" in " Loading Loading @@ -4407,15 +4420,15 @@ public class Launcher extends Activity } } private Runnable mBindPackagesUpdatedRunnable = new Runnable() { private Runnable mBindWidgetModelRunnable = new Runnable() { public void run() { bindAllPackages(mWidgetsModel); bindWidgetsModel(mWidgetsModel); } }; @Override public void bindAllPackages(final WidgetsModel model) { if (waitUntilResume(mBindPackagesUpdatedRunnable, true)) { public void bindWidgetsModel(WidgetsModel model) { if (waitUntilResume(mBindWidgetModelRunnable, true)) { mWidgetsModel = model; return; } Loading @@ -4426,6 +4439,13 @@ public class Launcher extends Activity } } @Override public void notifyWidgetProvidersChanged() { if (mWorkspace.getState().shouldUpdateWidget) { mModel.refreshAndBindWidgetsAndShortcuts(this, mWidgetsView.isEmpty()); } } private int mapConfigurationOriActivityInfoOri(int configOri) { final Display d = getWindowManager().getDefaultDisplay(); int naturalOri = Configuration.ORIENTATION_LANDSCAPE; Loading src/com/android/launcher3/LauncherAppWidgetHost.java +4 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,10 @@ public class LauncherAppWidgetHost extends AppWidgetHost { callback.run(); } } if (Utilities.ATLEAST_MARSHMALLOW) { mLauncher.notifyWidgetProvidersChanged(); } } public AppWidgetHostView createView(Context context, int appWidgetId, Loading src/com/android/launcher3/LauncherBackupHelper.java +14 −11 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ import com.android.launcher3.backup.nano.BackupProtos.Key; import com.android.launcher3.backup.nano.BackupProtos.Resource; import com.android.launcher3.backup.nano.BackupProtos.Screen; import com.android.launcher3.backup.nano.BackupProtos.Widget; import com.android.launcher3.compat.AppWidgetManagerCompat; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.compat.UserManagerCompat; import com.android.launcher3.model.GridSizeMigrationTask; Loading Loading @@ -660,12 +661,14 @@ public class LauncherBackupHelper implements BackupHelper { + getUserSelectionArg(); Cursor cursor = cr.query(Favorites.CONTENT_URI, FAVORITE_PROJECTION, where, null, null); AppWidgetManagerCompat widgetManager = AppWidgetManagerCompat.getInstance(mContext); try { cursor.moveToPosition(-1); while(cursor.moveToNext()) { final long id = cursor.getLong(ID_INDEX); final String providerName = cursor.getString(APPWIDGET_PROVIDER_INDEX); final ComponentName provider = ComponentName.unflattenFromString(providerName); Key key = null; String backupKey = null; if (provider != null) { Loading @@ -684,11 +687,14 @@ public class LauncherBackupHelper implements BackupHelper { } else if (backupKey != null) { if (DEBUG) Log.d(TAG, "I can count this high: " + backupWidgetCount); if (backupWidgetCount < MAX_WIDGETS_PER_PASS) { LauncherAppWidgetProviderInfo widgetInfo = widgetManager .getLauncherAppWidgetInfo(cursor.getInt(APPWIDGET_ID_INDEX)); if (widgetInfo != null) { if (DEBUG) Log.d(TAG, "saving widget " + backupKey); UserHandleCompat user = UserHandleCompat.myUserHandle(); writeRowToBackup(key, packWidget(dpi, provider, user), data); writeRowToBackup(key, packWidget(dpi, widgetInfo), data); mKeys.add(key); backupWidgetCount ++; } } else { if (VERBOSE) Log.v(TAG, "deferring widget backup " + backupKey); // too many widgets for this pass, request another. Loading Loading @@ -1004,16 +1010,14 @@ public class LauncherBackupHelper implements BackupHelper { } /** Serialize a widget for persistence, including a checksum wrapper. */ private Widget packWidget(int dpi, ComponentName provider, UserHandleCompat user) { final LauncherAppWidgetProviderInfo info = LauncherModel.getProviderInfo(mContext, provider, user); private Widget packWidget(int dpi, LauncherAppWidgetProviderInfo info) { Widget widget = new Widget(); widget.provider = provider.flattenToShortString(); widget.provider = info.provider.flattenToShortString(); widget.label = info.label; widget.configure = info.configure != null; if (info.icon != 0) { widget.icon = new Resource(); Drawable fullResIcon = mIconCache.getFullResIcon(provider.getPackageName(), info.icon); Drawable fullResIcon = mIconCache.getFullResIcon(info.provider.getPackageName(), info.icon); Bitmap icon = Utilities.createIconBitmap(fullResIcon, mContext); widget.icon.data = Utilities.flattenBitmap(icon); widget.icon.dpi = dpi; Loading @@ -1022,7 +1026,6 @@ public class LauncherBackupHelper implements BackupHelper { Point spans = info.getMinSpans(mIdp, mContext); widget.minSpanX = spans.x; widget.minSpanY = spans.y; return widget; } Loading src/com/android/launcher3/LauncherModel.java +41 −172 File changed.Preview size limit exceeded, changes collapsed. Show changes src/com/android/launcher3/LauncherStateTransitionAnimation.java +1 −1 Original line number Diff line number Diff line Loading @@ -403,7 +403,7 @@ public class LauncherStateTransitionAnimation { // Animate the search bar final SearchDropTargetBar.State toSearchBarState = toWorkspaceState.getSearchDropTargetBarState(); toWorkspaceState.searchDropTargetBarState; mLauncher.getSearchDropTargetBar().animateToState(toSearchBarState, animated ? revealDuration : 0, animation); Loading Loading
src/com/android/launcher3/Launcher.java +54 −34 Original line number Diff line number Diff line Loading @@ -1560,8 +1560,7 @@ public class Launcher extends Activity ItemInfo info = mPendingAddInfo; if (appWidgetInfo == null) { appWidgetInfo = LauncherAppWidgetProviderInfo.fromProviderInfo(this, mAppWidgetManager.getAppWidgetInfo(appWidgetId)); appWidgetInfo = mAppWidgetManager.getLauncherAppWidgetInfo(appWidgetId); } if (appWidgetInfo.isCustomWidget) { Loading Loading @@ -2558,10 +2557,10 @@ public class Launcher extends Activity final LauncherAppWidgetInfo info = (LauncherAppWidgetInfo) v.getTag(); if (v.isReadyForClickSetup()) { int widgetId = info.appWidgetId; AppWidgetProviderInfo appWidgetInfo = mAppWidgetManager.getAppWidgetInfo(widgetId); LauncherAppWidgetProviderInfo appWidgetInfo = mAppWidgetManager.getLauncherAppWidgetInfo(widgetId); if (appWidgetInfo != null) { mPendingAddWidgetInfo = LauncherAppWidgetProviderInfo.fromProviderInfo( this, appWidgetInfo); mPendingAddWidgetInfo = appWidgetInfo; mPendingAddInfo.copyFrom(info); mPendingAddWidgetId = widgetId; Loading Loading @@ -3538,10 +3537,6 @@ public class Launcher extends Activity // TODO } protected void disableVoiceButtonProxy(boolean disable) { // NO-OP } public boolean launcherCallbacksProvidesSearch() { return (mLauncherCallbacks != null && mLauncherCallbacks.providesSearch()); } Loading Loading @@ -3955,6 +3950,16 @@ public class Launcher extends Activity sFolders = folders.clone(); } private void bindSafeModeWidget(LauncherAppWidgetInfo item) { PendingAppWidgetHostView view = new PendingAppWidgetHostView(this, item, true); view.updateIcon(mIconCache); item.hostView = view; item.hostView.updateAppWidget(null); item.hostView.setOnClickListener(this); addAppWidgetToWorkspace(item, null, false); mWorkspace.requestLayout(); } /** * Add the views for a widget to the workspace. * Loading @@ -3970,19 +3975,31 @@ public class Launcher extends Activity return; } if (mIsSafeModeEnabled) { bindSafeModeWidget(item); return; } final long start = DEBUG_WIDGETS ? SystemClock.uptimeMillis() : 0; if (DEBUG_WIDGETS) { Log.d(TAG, "bindAppWidget: " + item); } final Workspace workspace = mWorkspace; LauncherAppWidgetProviderInfo appWidgetInfo = LauncherModel.getProviderInfo(this, item.providerName, item.user); final LauncherAppWidgetProviderInfo appWidgetInfo; if (!mIsSafeModeEnabled && ((item.restoreStatus & LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY) == 0) && (item.restoreStatus != LauncherAppWidgetInfo.RESTORE_COMPLETED)) { if (item.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY)) { // If the provider is not ready, bind as a pending widget. appWidgetInfo = null; } else if (item.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_ID_NOT_VALID)) { // The widget id is not valid. Try to find the widget based on the provider info. appWidgetInfo = mAppWidgetManager.findProvider(item.providerName, item.user); } else { appWidgetInfo = mAppWidgetManager.getLauncherAppWidgetInfo(item.appWidgetId); } // If the provider is ready, but the width is not yet restored, try to restore it. if (!item.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY) && (item.restoreStatus != LauncherAppWidgetInfo.RESTORE_COMPLETED)) { if (appWidgetInfo == null) { if (DEBUG_WIDGETS) { Log.d(TAG, "Removing restored widget: id=" + item.appWidgetId Loading @@ -3994,7 +4011,7 @@ public class Launcher extends Activity } // If we do not have a valid id, try to bind an id. if ((item.restoreStatus & LauncherAppWidgetInfo.FLAG_ID_NOT_VALID) != 0) { if (item.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_ID_NOT_VALID)) { // Note: This assumes that the id remap broadcast is received before this step. // If that is not the case, the id remap will be ignored and user may see the // click to setup view. Loading Loading @@ -4030,46 +4047,42 @@ public class Launcher extends Activity : LauncherAppWidgetInfo.FLAG_UI_NOT_READY; LauncherModel.updateItemInDatabase(this, item); } else if (((item.restoreStatus & LauncherAppWidgetInfo.FLAG_UI_NOT_READY) != 0) } else if (item.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_UI_NOT_READY) && (appWidgetInfo.configure == null)) { // If the ID is already valid, verify if we need to configure or not. // The widget was marked as UI not ready, but there is no configure activity to // update the UI. item.restoreStatus = LauncherAppWidgetInfo.RESTORE_COMPLETED; LauncherModel.updateItemInDatabase(this, item); } } if (!mIsSafeModeEnabled && item.restoreStatus == LauncherAppWidgetInfo.RESTORE_COMPLETED) { final int appWidgetId = item.appWidgetId; if (item.restoreStatus == LauncherAppWidgetInfo.RESTORE_COMPLETED) { if (DEBUG_WIDGETS) { Log.d(TAG, "bindAppWidget: id=" + item.appWidgetId + " belongs to component " + appWidgetInfo.provider); } // Verify that we own the widget AppWidgetProviderInfo info = mAppWidgetManager.getAppWidgetInfo(appWidgetId); if (info == null || appWidgetInfo == null || !info.provider.equals(appWidgetInfo.provider)) { Log.e(TAG, "Removing invalid widget: id=" + item.appWidgetId + " info=" + info + " appWidgetInfo=" + appWidgetInfo); if (appWidgetInfo == null) { Log.e(TAG, "Removing invalid widget: id=" + item.appWidgetId); deleteWidgetInfo(item); return; } item.hostView = mAppWidgetHost.createView(this, appWidgetId, appWidgetInfo); item.hostView = mAppWidgetHost.createView(this, item.appWidgetId, appWidgetInfo); item.minSpanX = appWidgetInfo.minSpanX; item.minSpanY = appWidgetInfo.minSpanY; addAppWidgetToWorkspace(item, appWidgetInfo, false); } else { appWidgetInfo = null; PendingAppWidgetHostView view = new PendingAppWidgetHostView(this, item, mIsSafeModeEnabled); view.updateIcon(mIconCache); item.hostView = view; item.hostView.updateAppWidget(null); item.hostView.setOnClickListener(this); addAppWidgetToWorkspace(item, null, false); } addAppWidgetToWorkspace(item, appWidgetInfo, false); workspace.requestLayout(); mWorkspace.requestLayout(); if (DEBUG_WIDGETS) { Log.d(TAG, "bound widget id="+item.appWidgetId+" in " Loading Loading @@ -4407,15 +4420,15 @@ public class Launcher extends Activity } } private Runnable mBindPackagesUpdatedRunnable = new Runnable() { private Runnable mBindWidgetModelRunnable = new Runnable() { public void run() { bindAllPackages(mWidgetsModel); bindWidgetsModel(mWidgetsModel); } }; @Override public void bindAllPackages(final WidgetsModel model) { if (waitUntilResume(mBindPackagesUpdatedRunnable, true)) { public void bindWidgetsModel(WidgetsModel model) { if (waitUntilResume(mBindWidgetModelRunnable, true)) { mWidgetsModel = model; return; } Loading @@ -4426,6 +4439,13 @@ public class Launcher extends Activity } } @Override public void notifyWidgetProvidersChanged() { if (mWorkspace.getState().shouldUpdateWidget) { mModel.refreshAndBindWidgetsAndShortcuts(this, mWidgetsView.isEmpty()); } } private int mapConfigurationOriActivityInfoOri(int configOri) { final Display d = getWindowManager().getDefaultDisplay(); int naturalOri = Configuration.ORIENTATION_LANDSCAPE; Loading
src/com/android/launcher3/LauncherAppWidgetHost.java +4 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,10 @@ public class LauncherAppWidgetHost extends AppWidgetHost { callback.run(); } } if (Utilities.ATLEAST_MARSHMALLOW) { mLauncher.notifyWidgetProvidersChanged(); } } public AppWidgetHostView createView(Context context, int appWidgetId, Loading
src/com/android/launcher3/LauncherBackupHelper.java +14 −11 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ import com.android.launcher3.backup.nano.BackupProtos.Key; import com.android.launcher3.backup.nano.BackupProtos.Resource; import com.android.launcher3.backup.nano.BackupProtos.Screen; import com.android.launcher3.backup.nano.BackupProtos.Widget; import com.android.launcher3.compat.AppWidgetManagerCompat; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.compat.UserManagerCompat; import com.android.launcher3.model.GridSizeMigrationTask; Loading Loading @@ -660,12 +661,14 @@ public class LauncherBackupHelper implements BackupHelper { + getUserSelectionArg(); Cursor cursor = cr.query(Favorites.CONTENT_URI, FAVORITE_PROJECTION, where, null, null); AppWidgetManagerCompat widgetManager = AppWidgetManagerCompat.getInstance(mContext); try { cursor.moveToPosition(-1); while(cursor.moveToNext()) { final long id = cursor.getLong(ID_INDEX); final String providerName = cursor.getString(APPWIDGET_PROVIDER_INDEX); final ComponentName provider = ComponentName.unflattenFromString(providerName); Key key = null; String backupKey = null; if (provider != null) { Loading @@ -684,11 +687,14 @@ public class LauncherBackupHelper implements BackupHelper { } else if (backupKey != null) { if (DEBUG) Log.d(TAG, "I can count this high: " + backupWidgetCount); if (backupWidgetCount < MAX_WIDGETS_PER_PASS) { LauncherAppWidgetProviderInfo widgetInfo = widgetManager .getLauncherAppWidgetInfo(cursor.getInt(APPWIDGET_ID_INDEX)); if (widgetInfo != null) { if (DEBUG) Log.d(TAG, "saving widget " + backupKey); UserHandleCompat user = UserHandleCompat.myUserHandle(); writeRowToBackup(key, packWidget(dpi, provider, user), data); writeRowToBackup(key, packWidget(dpi, widgetInfo), data); mKeys.add(key); backupWidgetCount ++; } } else { if (VERBOSE) Log.v(TAG, "deferring widget backup " + backupKey); // too many widgets for this pass, request another. Loading Loading @@ -1004,16 +1010,14 @@ public class LauncherBackupHelper implements BackupHelper { } /** Serialize a widget for persistence, including a checksum wrapper. */ private Widget packWidget(int dpi, ComponentName provider, UserHandleCompat user) { final LauncherAppWidgetProviderInfo info = LauncherModel.getProviderInfo(mContext, provider, user); private Widget packWidget(int dpi, LauncherAppWidgetProviderInfo info) { Widget widget = new Widget(); widget.provider = provider.flattenToShortString(); widget.provider = info.provider.flattenToShortString(); widget.label = info.label; widget.configure = info.configure != null; if (info.icon != 0) { widget.icon = new Resource(); Drawable fullResIcon = mIconCache.getFullResIcon(provider.getPackageName(), info.icon); Drawable fullResIcon = mIconCache.getFullResIcon(info.provider.getPackageName(), info.icon); Bitmap icon = Utilities.createIconBitmap(fullResIcon, mContext); widget.icon.data = Utilities.flattenBitmap(icon); widget.icon.dpi = dpi; Loading @@ -1022,7 +1026,6 @@ public class LauncherBackupHelper implements BackupHelper { Point spans = info.getMinSpans(mIdp, mContext); widget.minSpanX = spans.x; widget.minSpanY = spans.y; return widget; } Loading
src/com/android/launcher3/LauncherModel.java +41 −172 File changed.Preview size limit exceeded, changes collapsed. Show changes
src/com/android/launcher3/LauncherStateTransitionAnimation.java +1 −1 Original line number Diff line number Diff line Loading @@ -403,7 +403,7 @@ public class LauncherStateTransitionAnimation { // Animate the search bar final SearchDropTargetBar.State toSearchBarState = toWorkspaceState.getSearchDropTargetBarState(); toWorkspaceState.searchDropTargetBarState; mLauncher.getSearchDropTargetBar().animateToState(toSearchBarState, animated ? revealDuration : 0, animation); Loading