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

Commit c7e89dae authored by Chih-Chung Chang's avatar Chih-Chung Chang
Browse files

Update thumbnail if a picture is deleted in background.

Bug: 6712751
Change-Id: I17f56c9ff04441e51f28b3e3bec23b1ac308b70c
parent 6118af9d
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -16,9 +16,11 @@

package com.android.gallery3d.data;

import android.content.Intent;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
import android.support.v4.content.LocalBroadcastManager;

import com.android.gallery3d.app.GalleryApp;
import com.android.gallery3d.common.Utils;
@@ -78,6 +80,9 @@ public class DataManager {
    private static final String TOP_LOCAL_VIDEO_SET_PATH =
            "/local/video";

    private static final String ACTION_DELETE_PICTURE =
            "com.android.gallery3d.action.DELETE_PICTURE";

    public static final Comparator<MediaItem> sDateTakenComparator =
            new DateTakenComparator();

@@ -305,6 +310,15 @@ public class DataManager {
        }
    }

    // Sends a local broadcast if a local image or video is deleted. This is
    // used to update the thumbnail shown in the camera app.
    public void broadcastLocalDeletion() {
        LocalBroadcastManager manager = LocalBroadcastManager.getInstance(
                mApplication.getAndroidContext());
        Intent intent = new Intent(ACTION_DELETE_PICTURE);
        manager.sendBroadcast(intent);
    }

    private static class NotifyBroker extends ContentObserver {
        private WeakHashMap<ChangeNotifier, Object> mNotifiers =
                new WeakHashMap<ChangeNotifier, Object>();
+1 −0
Original line number Diff line number Diff line
@@ -260,6 +260,7 @@ public class LocalAlbum extends MediaSet {
        GalleryUtils.assertNotInRenderThread();
        mResolver.delete(mBaseUri, mWhereClause,
                new String[]{String.valueOf(mBucketId)});
        mApplication.getDataManager().broadcastLocalDeletion();
    }

    @Override
+1 −0
Original line number Diff line number Diff line
@@ -231,6 +231,7 @@ public class LocalImage extends LocalMediaItem {
        Uri baseUri = Images.Media.EXTERNAL_CONTENT_URI;
        mApplication.getContentResolver().delete(baseUri, "_id=?",
                new String[]{String.valueOf(id)});
        mApplication.getDataManager().broadcastLocalDeletion();
    }

    private static String getExifOrientation(int orientation) {
+1 −0
Original line number Diff line number Diff line
@@ -187,6 +187,7 @@ public class LocalVideo extends LocalMediaItem {
        Uri baseUri = Video.Media.EXTERNAL_CONTENT_URI;
        mApplication.getContentResolver().delete(baseUri, "_id=?",
                new String[]{String.valueOf(id)});
        mApplication.getDataManager().broadcastLocalDeletion();
    }

    @Override