Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit caa52918 authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Using add/replace instead of update when updating an entry.

Update operation was not including version and updateTime columns
leading to a update operation getting called wheneven launcher loads.

Bug: 32004297
Change-Id: I5f1793633ce3bb72d5641a82502b3ba8b9cdff7d
parent 70a421e2
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -772,13 +772,15 @@ public class IconCache {
        public void run() {
            if (!mAppsToUpdate.isEmpty()) {
                LauncherActivityInfoCompat app = mAppsToUpdate.pop();
                String cn = app.getComponentName().flattenToString();
                String pkg = app.getComponentName().getPackageName();
                PackageInfo info = mPkgInfoMap.get(pkg);
                if (info != null) {
                    synchronized (IconCache.this) {
                        ContentValues values = updateCacheAndGetContentValues(app, true);
                mIconDb.update(values,
                        IconDB.COLUMN_COMPONENT + " = ? AND " + IconDB.COLUMN_USER + " = ?",
                        new String[]{cn, Long.toString(mUserSerial)});
                mUpdatedPackages.add(app.getComponentName().getPackageName());

                        addIconToDB(values, app.getComponentName(), info, mUserSerial);
                    }
                    mUpdatedPackages.add(pkg);
                }
                if (mAppsToUpdate.isEmpty() && !mUpdatedPackages.isEmpty()) {
                    // No more app to update. Notify model.
                    LauncherAppState.getInstance().getModel().onPackageIconsUpdated(
+0 −16
Original line number Diff line number Diff line
@@ -28,22 +28,6 @@ public abstract class SQLiteCacheHelper {
        mIgnoreWrites = false;
    }

    /**
     * @see SQLiteDatabase#update(String, ContentValues, String, String[])
     */
    public void update(ContentValues values, String whereClause, String[] whereArgs) {
        if (mIgnoreWrites) {
            return;
        }
        try {
            mOpenHelper.getWritableDatabase().update(mTableName, values, whereClause, whereArgs);
        } catch (SQLiteFullException e) {
            onDiskFull(e);
        } catch (SQLiteException e) {
            Log.d(TAG, "Ignoring sqlite exception", e);
        }
    }

    /**
     * @see SQLiteDatabase#delete(String, String, String[])
     */