Loading robolectric_tests/src/com/android/launcher3/model/DbDowngradeHelperTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -130,7 +130,7 @@ public class DbDowngradeHelperTest { } helper.close(); helper = new DatabaseHelper(mContext, null, DB_FILE) { helper = new DatabaseHelper(mContext, DB_FILE) { @Override public void onOpen(SQLiteDatabase db) { } }; Loading Loading @@ -161,7 +161,7 @@ public class DbDowngradeHelperTest { DbDowngradeHelper.updateSchemaFile(mSchemaFile, LauncherProvider.SCHEMA_VERSION, mContext); DatabaseHelper dbHelper = new DatabaseHelper(mContext, null, DB_FILE) { DatabaseHelper dbHelper = new DatabaseHelper(mContext, DB_FILE) { @Override public void onOpen(SQLiteDatabase db) { } }; Loading robolectric_tests/src/com/android/launcher3/util/TestLauncherProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ public class TestLauncherProvider extends LauncherProvider { private static class MyDatabaseHelper extends DatabaseHelper { public MyDatabaseHelper(Context context) { super(context, null, null); super(context, null); initIds(); } Loading src/com/android/launcher3/Launcher.java +1 −8 Original line number Diff line number Diff line Loading @@ -173,7 +173,7 @@ import java.util.function.Supplier; * Default launcher application. */ public class Launcher extends BaseDraggingActivity implements LauncherExterns, Callbacks, LauncherProviderChangeListener, UserEventDelegate, Callbacks, UserEventDelegate, InvariantDeviceProfile.OnIDPChangeListener, PluginListener<OverlayPlugin> { public static final String TAG = "Launcher"; Loading Loading @@ -614,13 +614,6 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, return mLauncherView.findViewById(id); } @Override public void onAppWidgetHostReset() { if (mAppWidgetHost != null) { mAppWidgetHost.startListening(); } } private LauncherCallbacks mLauncherCallbacks; /** Loading src/com/android/launcher3/LauncherAppState.java +5 −15 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import static com.android.launcher3.util.Executors.MODEL_EXECUTOR; import static com.android.launcher3.util.SecureSettingsObserver.newNotificationSettingsObserver; import android.content.ComponentName; import android.content.ContentProviderClient; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; Loading Loading @@ -71,10 +70,6 @@ public class LauncherAppState { } private LauncherAppState(Context context) { if (getLocalProvider(context) == null) { throw new RuntimeException( "Initializing LauncherAppState in the absence of LauncherProvider"); } Log.v(Launcher.TAG, "LauncherAppState initiated"); Preconditions.assertUIThread(); mContext = context; Loading @@ -99,7 +94,10 @@ public class LauncherAppState { if (FeatureFlags.IS_DOGFOOD_BUILD) { filter.addAction(ACTION_FORCE_ROLOAD); } // TODO: remove listener on terminate FeatureFlags.APP_SEARCH_IMPROVEMENTS.addChangeListener(context, mModel::forceReload); CustomWidgetManager.INSTANCE.get(mContext) .setWidgetRefreshCallback(mModel::refreshAndBindWidgetsAndShortcuts); mContext.registerReceiver(mModel, filter); UserManagerCompat.getInstance(mContext).enableAndResetCache(); Loading Loading @@ -149,16 +147,15 @@ public class LauncherAppState { final LauncherAppsCompat launcherApps = LauncherAppsCompat.getInstance(mContext); launcherApps.removeOnAppsChangedCallback(mModel); mInstallSessionTracker.unregister(); CustomWidgetManager.INSTANCE.get(mContext).setWidgetRefreshCallback(null); if (mNotificationDotsObserver != null) { mNotificationDotsObserver.unregister(); } } LauncherModel setLauncher(Launcher launcher) { getLocalProvider(mContext).setLauncherProviderChangeListener(launcher); mModel.initialize(launcher); CustomWidgetManager.INSTANCE.get(launcher) .setWidgetRefreshCallback(mModel::refreshAndBindWidgetsAndShortcuts); return mModel; } Loading @@ -184,11 +181,4 @@ public class LauncherAppState { public static InvariantDeviceProfile getIDP(Context context) { return InvariantDeviceProfile.INSTANCE.get(context); } private static LauncherProvider getLocalProvider(Context context) { try (ContentProviderClient cl = context.getContentResolver() .acquireContentProviderClient(LauncherProvider.AUTHORITY)) { return (LauncherProvider) cl.getLocalContentProvider(); } } } src/com/android/launcher3/LauncherProvider.java +4 −50 Original line number Diff line number Diff line Loading @@ -45,8 +45,6 @@ import android.net.Uri; import android.os.Binder; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.Process; import android.os.UserHandle; import android.provider.BaseColumns; Loading @@ -69,7 +67,6 @@ import com.android.launcher3.util.IntArray; import com.android.launcher3.util.IntSet; import com.android.launcher3.util.NoLocaleSQLiteHelper; import com.android.launcher3.util.PackageManagerHelper; import com.android.launcher3.util.Preconditions; import com.android.launcher3.util.Thunk; import org.xmlpull.v1.XmlPullParser; Loading Loading @@ -100,9 +97,6 @@ public class LauncherProvider extends ContentProvider { static final String EMPTY_DATABASE_CREATED = "EMPTY_DATABASE_CREATED"; private final ChangeListenerWrapper mListenerWrapper = new ChangeListenerWrapper(); private Handler mListenerHandler; protected DatabaseHelper mOpenHelper; /** Loading @@ -122,7 +116,6 @@ public class LauncherProvider extends ContentProvider { if (FeatureFlags.IS_DOGFOOD_BUILD) { Log.d(TAG, "Launcher process started"); } mListenerHandler = new Handler(mListenerWrapper); // The content provider exists for the entire duration of the launcher main process and // is the first component to get created. Loading @@ -130,14 +123,6 @@ public class LauncherProvider extends ContentProvider { return true; } /** * Sets a provider listener. */ public void setLauncherProviderChangeListener(LauncherProviderChangeListener listener) { Preconditions.assertUIThread(); mListenerWrapper.mListener = listener; } @Override public String getType(Uri uri) { SqlArguments args = new SqlArguments(uri, null, null); Loading @@ -153,7 +138,7 @@ public class LauncherProvider extends ContentProvider { */ protected synchronized void createDbIfNotExists() { if (mOpenHelper == null) { mOpenHelper = new DatabaseHelper(getContext(), mListenerHandler); mOpenHelper = new DatabaseHelper(getContext()); if (RestoreDbTask.isPending(getContext())) { if (!RestoreDbTask.performRestore(getContext(), mOpenHelper, Loading Loading @@ -552,15 +537,13 @@ public class LauncherProvider extends ContentProvider { * The class is subclassed in tests to create an in-memory db. */ public static class DatabaseHelper extends NoLocaleSQLiteHelper implements LayoutParserCallback { private final BackupManager mBackupManager; private final Handler mWidgetHostResetHandler; private final Context mContext; private int mMaxItemId = -1; private int mMaxScreenId = -1; private boolean mBackupTableExists; DatabaseHelper(Context context, Handler widgetHostResetHandler) { this(context, widgetHostResetHandler, LauncherFiles.LAUNCHER_DB); DatabaseHelper(Context context) { this(context, LauncherFiles.LAUNCHER_DB); // Table creation sometimes fails silently, which leads to a crash loop. // This way, we will try to create a table every time after crash, so the device // would eventually be able to recover. Loading @@ -577,12 +560,9 @@ public class LauncherProvider extends ContentProvider { /** * Constructor used in tests and for restore. */ public DatabaseHelper( Context context, Handler widgetHostResetHandler, String tableName) { public DatabaseHelper(Context context, String tableName) { super(context, tableName, SCHEMA_VERSION); mContext = context; mWidgetHostResetHandler = widgetHostResetHandler; mBackupManager = new BackupManager(mContext); } protected void initIds() { Loading Loading @@ -621,13 +601,6 @@ public class LauncherProvider extends ContentProvider { * Overriden in tests. */ protected void onEmptyDbCreated() { // Database was just created, so wipe any previous widgets if (mWidgetHostResetHandler != null) { newLauncherWidgetHost().deleteHost(); mWidgetHostResetHandler.sendEmptyMessage( ChangeListenerWrapper.MSG_APP_WIDGET_HOST_RESET); } // Set the flag for empty DB Utilities.getPrefs(mContext).edit().putBoolean(EMPTY_DATABASE_CREATED, true).commit(); } Loading Loading @@ -1027,23 +1000,4 @@ public class LauncherProvider extends ContentProvider { } } } private static class ChangeListenerWrapper implements Handler.Callback { private static final int MSG_APP_WIDGET_HOST_RESET = 2; private LauncherProviderChangeListener mListener; @Override public boolean handleMessage(Message msg) { if (mListener != null) { switch (msg.what) { case MSG_APP_WIDGET_HOST_RESET: mListener.onAppWidgetHostReset(); break; } } return true; } } } Loading
robolectric_tests/src/com/android/launcher3/model/DbDowngradeHelperTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -130,7 +130,7 @@ public class DbDowngradeHelperTest { } helper.close(); helper = new DatabaseHelper(mContext, null, DB_FILE) { helper = new DatabaseHelper(mContext, DB_FILE) { @Override public void onOpen(SQLiteDatabase db) { } }; Loading Loading @@ -161,7 +161,7 @@ public class DbDowngradeHelperTest { DbDowngradeHelper.updateSchemaFile(mSchemaFile, LauncherProvider.SCHEMA_VERSION, mContext); DatabaseHelper dbHelper = new DatabaseHelper(mContext, null, DB_FILE) { DatabaseHelper dbHelper = new DatabaseHelper(mContext, DB_FILE) { @Override public void onOpen(SQLiteDatabase db) { } }; Loading
robolectric_tests/src/com/android/launcher3/util/TestLauncherProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ public class TestLauncherProvider extends LauncherProvider { private static class MyDatabaseHelper extends DatabaseHelper { public MyDatabaseHelper(Context context) { super(context, null, null); super(context, null); initIds(); } Loading
src/com/android/launcher3/Launcher.java +1 −8 Original line number Diff line number Diff line Loading @@ -173,7 +173,7 @@ import java.util.function.Supplier; * Default launcher application. */ public class Launcher extends BaseDraggingActivity implements LauncherExterns, Callbacks, LauncherProviderChangeListener, UserEventDelegate, Callbacks, UserEventDelegate, InvariantDeviceProfile.OnIDPChangeListener, PluginListener<OverlayPlugin> { public static final String TAG = "Launcher"; Loading Loading @@ -614,13 +614,6 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, return mLauncherView.findViewById(id); } @Override public void onAppWidgetHostReset() { if (mAppWidgetHost != null) { mAppWidgetHost.startListening(); } } private LauncherCallbacks mLauncherCallbacks; /** Loading
src/com/android/launcher3/LauncherAppState.java +5 −15 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import static com.android.launcher3.util.Executors.MODEL_EXECUTOR; import static com.android.launcher3.util.SecureSettingsObserver.newNotificationSettingsObserver; import android.content.ComponentName; import android.content.ContentProviderClient; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; Loading Loading @@ -71,10 +70,6 @@ public class LauncherAppState { } private LauncherAppState(Context context) { if (getLocalProvider(context) == null) { throw new RuntimeException( "Initializing LauncherAppState in the absence of LauncherProvider"); } Log.v(Launcher.TAG, "LauncherAppState initiated"); Preconditions.assertUIThread(); mContext = context; Loading @@ -99,7 +94,10 @@ public class LauncherAppState { if (FeatureFlags.IS_DOGFOOD_BUILD) { filter.addAction(ACTION_FORCE_ROLOAD); } // TODO: remove listener on terminate FeatureFlags.APP_SEARCH_IMPROVEMENTS.addChangeListener(context, mModel::forceReload); CustomWidgetManager.INSTANCE.get(mContext) .setWidgetRefreshCallback(mModel::refreshAndBindWidgetsAndShortcuts); mContext.registerReceiver(mModel, filter); UserManagerCompat.getInstance(mContext).enableAndResetCache(); Loading Loading @@ -149,16 +147,15 @@ public class LauncherAppState { final LauncherAppsCompat launcherApps = LauncherAppsCompat.getInstance(mContext); launcherApps.removeOnAppsChangedCallback(mModel); mInstallSessionTracker.unregister(); CustomWidgetManager.INSTANCE.get(mContext).setWidgetRefreshCallback(null); if (mNotificationDotsObserver != null) { mNotificationDotsObserver.unregister(); } } LauncherModel setLauncher(Launcher launcher) { getLocalProvider(mContext).setLauncherProviderChangeListener(launcher); mModel.initialize(launcher); CustomWidgetManager.INSTANCE.get(launcher) .setWidgetRefreshCallback(mModel::refreshAndBindWidgetsAndShortcuts); return mModel; } Loading @@ -184,11 +181,4 @@ public class LauncherAppState { public static InvariantDeviceProfile getIDP(Context context) { return InvariantDeviceProfile.INSTANCE.get(context); } private static LauncherProvider getLocalProvider(Context context) { try (ContentProviderClient cl = context.getContentResolver() .acquireContentProviderClient(LauncherProvider.AUTHORITY)) { return (LauncherProvider) cl.getLocalContentProvider(); } } }
src/com/android/launcher3/LauncherProvider.java +4 −50 Original line number Diff line number Diff line Loading @@ -45,8 +45,6 @@ import android.net.Uri; import android.os.Binder; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.Process; import android.os.UserHandle; import android.provider.BaseColumns; Loading @@ -69,7 +67,6 @@ import com.android.launcher3.util.IntArray; import com.android.launcher3.util.IntSet; import com.android.launcher3.util.NoLocaleSQLiteHelper; import com.android.launcher3.util.PackageManagerHelper; import com.android.launcher3.util.Preconditions; import com.android.launcher3.util.Thunk; import org.xmlpull.v1.XmlPullParser; Loading Loading @@ -100,9 +97,6 @@ public class LauncherProvider extends ContentProvider { static final String EMPTY_DATABASE_CREATED = "EMPTY_DATABASE_CREATED"; private final ChangeListenerWrapper mListenerWrapper = new ChangeListenerWrapper(); private Handler mListenerHandler; protected DatabaseHelper mOpenHelper; /** Loading @@ -122,7 +116,6 @@ public class LauncherProvider extends ContentProvider { if (FeatureFlags.IS_DOGFOOD_BUILD) { Log.d(TAG, "Launcher process started"); } mListenerHandler = new Handler(mListenerWrapper); // The content provider exists for the entire duration of the launcher main process and // is the first component to get created. Loading @@ -130,14 +123,6 @@ public class LauncherProvider extends ContentProvider { return true; } /** * Sets a provider listener. */ public void setLauncherProviderChangeListener(LauncherProviderChangeListener listener) { Preconditions.assertUIThread(); mListenerWrapper.mListener = listener; } @Override public String getType(Uri uri) { SqlArguments args = new SqlArguments(uri, null, null); Loading @@ -153,7 +138,7 @@ public class LauncherProvider extends ContentProvider { */ protected synchronized void createDbIfNotExists() { if (mOpenHelper == null) { mOpenHelper = new DatabaseHelper(getContext(), mListenerHandler); mOpenHelper = new DatabaseHelper(getContext()); if (RestoreDbTask.isPending(getContext())) { if (!RestoreDbTask.performRestore(getContext(), mOpenHelper, Loading Loading @@ -552,15 +537,13 @@ public class LauncherProvider extends ContentProvider { * The class is subclassed in tests to create an in-memory db. */ public static class DatabaseHelper extends NoLocaleSQLiteHelper implements LayoutParserCallback { private final BackupManager mBackupManager; private final Handler mWidgetHostResetHandler; private final Context mContext; private int mMaxItemId = -1; private int mMaxScreenId = -1; private boolean mBackupTableExists; DatabaseHelper(Context context, Handler widgetHostResetHandler) { this(context, widgetHostResetHandler, LauncherFiles.LAUNCHER_DB); DatabaseHelper(Context context) { this(context, LauncherFiles.LAUNCHER_DB); // Table creation sometimes fails silently, which leads to a crash loop. // This way, we will try to create a table every time after crash, so the device // would eventually be able to recover. Loading @@ -577,12 +560,9 @@ public class LauncherProvider extends ContentProvider { /** * Constructor used in tests and for restore. */ public DatabaseHelper( Context context, Handler widgetHostResetHandler, String tableName) { public DatabaseHelper(Context context, String tableName) { super(context, tableName, SCHEMA_VERSION); mContext = context; mWidgetHostResetHandler = widgetHostResetHandler; mBackupManager = new BackupManager(mContext); } protected void initIds() { Loading Loading @@ -621,13 +601,6 @@ public class LauncherProvider extends ContentProvider { * Overriden in tests. */ protected void onEmptyDbCreated() { // Database was just created, so wipe any previous widgets if (mWidgetHostResetHandler != null) { newLauncherWidgetHost().deleteHost(); mWidgetHostResetHandler.sendEmptyMessage( ChangeListenerWrapper.MSG_APP_WIDGET_HOST_RESET); } // Set the flag for empty DB Utilities.getPrefs(mContext).edit().putBoolean(EMPTY_DATABASE_CREATED, true).commit(); } Loading Loading @@ -1027,23 +1000,4 @@ public class LauncherProvider extends ContentProvider { } } } private static class ChangeListenerWrapper implements Handler.Callback { private static final int MSG_APP_WIDGET_HOST_RESET = 2; private LauncherProviderChangeListener mListener; @Override public boolean handleMessage(Message msg) { if (mListener != null) { switch (msg.what) { case MSG_APP_WIDGET_HOST_RESET: mListener.onAppWidgetHostReset(); break; } } return true; } } }