diff options
author | John Reck <jreck@google.com> | 2013-03-06 16:36:45 -0800 |
---|---|---|
committer | John Reck <jreck@google.com> | 2013-03-06 16:38:37 -0800 |
commit | dc0bb6232a45a646799db8a79e9d678c494fc956 (patch) | |
tree | bc018452463c82a5b3b9054ee5478ae4954018be /src/com/android/photos/data | |
parent | 1bf3f3238727cc73a156e3eb61a2d2343ac3bdc0 (diff) | |
download | android_packages_apps_Snap-dc0bb6232a45a646799db8a79e9d678c494fc956.tar.gz android_packages_apps_Snap-dc0bb6232a45a646799db8a79e9d678c494fc956.tar.bz2 android_packages_apps_Snap-dc0bb6232a45a646799db8a79e9d678c494fc956.zip |
Data provider shim
Bolt the new UI framework on top of the old data model temporarily
to unblock UI work
Change-Id: I2f61f70647faca1f6a95b1f02f719ec4277fa5fb
Diffstat (limited to 'src/com/android/photos/data')
-rw-r--r-- | src/com/android/photos/data/MediaSetLoader.java | 89 | ||||
-rw-r--r-- | src/com/android/photos/data/PhotoSetLoader.java | 22 |
2 files changed, 20 insertions, 91 deletions
diff --git a/src/com/android/photos/data/MediaSetLoader.java b/src/com/android/photos/data/MediaSetLoader.java deleted file mode 100644 index 4afb7d922..000000000 --- a/src/com/android/photos/data/MediaSetLoader.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.photos.data; - -import android.content.AsyncTaskLoader; -import android.content.Context; - -import com.android.gallery3d.data.ContentListener; -import com.android.gallery3d.data.DataManager; -import com.android.gallery3d.data.MediaSet; -import com.android.gallery3d.data.MediaSet.SyncListener; -import com.android.gallery3d.util.Future; - -/** - * Proof of concept, don't use - */ -public class MediaSetLoader extends AsyncTaskLoader<MediaSet> { - - private static final SyncListener sNullListener = new SyncListener() { - @Override - public void onSyncDone(MediaSet mediaSet, int resultCode) { - } - }; - - private MediaSet mMediaSet; - private Future<Integer> mSyncTask = null; - private ContentListener mObserver = new ContentListener() { - @Override - public void onContentDirty() { - onContentChanged(); - } - }; - - public MediaSetLoader(Context context, String path) { - super(context); - mMediaSet = DataManager.from(getContext()).getMediaSet(path); - } - - @Override - protected void onStartLoading() { - super.onStartLoading(); - mMediaSet.addContentListener(mObserver); - mSyncTask = mMediaSet.requestSync(sNullListener); - forceLoad(); - } - - @Override - protected boolean onCancelLoad() { - if (mSyncTask != null) { - mSyncTask.cancel(); - mSyncTask = null; - } - return super.onCancelLoad(); - } - - @Override - protected void onStopLoading() { - super.onStopLoading(); - cancelLoad(); - mMediaSet.removeContentListener(mObserver); - } - - @Override - protected void onReset() { - super.onReset(); - onStopLoading(); - } - - @Override - public MediaSet loadInBackground() { - mMediaSet.loadIfDirty(); - return mMediaSet; - } - -} diff --git a/src/com/android/photos/data/PhotoSetLoader.java b/src/com/android/photos/data/PhotoSetLoader.java index 8c511a525..21da90694 100644 --- a/src/com/android/photos/data/PhotoSetLoader.java +++ b/src/com/android/photos/data/PhotoSetLoader.java @@ -19,15 +19,20 @@ package com.android.photos.data; import android.content.Context; import android.content.CursorLoader; import android.database.ContentObserver; +import android.database.Cursor; +import android.graphics.drawable.Drawable; import android.net.Uri; import android.provider.MediaStore; import android.provider.MediaStore.Files; import android.provider.MediaStore.Files.FileColumns; -public class PhotoSetLoader extends CursorLoader { +import com.android.photos.drawables.DataUriThumbnailDrawable; +import com.android.photos.drawables.DrawableFactory; + +public class PhotoSetLoader extends CursorLoader implements DrawableFactory<Cursor> { private static final Uri CONTENT_URI = Files.getContentUri("external"); - private static final String[] PROJECTION = new String[] { + public static final String[] PROJECTION = new String[] { FileColumns._ID, FileColumns.DATA, FileColumns.WIDTH, @@ -67,4 +72,17 @@ public class PhotoSetLoader extends CursorLoader { super.onReset(); getContext().getContentResolver().unregisterContentObserver(mGlobalObserver); } + + @Override + public Drawable drawableForItem(Cursor item, Drawable recycle) { + DataUriThumbnailDrawable drawable = null; + if (recycle == null || !(recycle instanceof DataUriThumbnailDrawable)) { + drawable = new DataUriThumbnailDrawable(); + } else { + drawable = (DataUriThumbnailDrawable) recycle; + } + drawable.setImage(item.getString(INDEX_DATA), + item.getInt(INDEX_WIDTH), item.getInt(INDEX_HEIGHT)); + return drawable; + } } |