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/PhotoSetFragment.java | |
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/PhotoSetFragment.java')
-rw-r--r-- | src/com/android/photos/PhotoSetFragment.java | 66 |
1 files changed, 31 insertions, 35 deletions
diff --git a/src/com/android/photos/PhotoSetFragment.java b/src/com/android/photos/PhotoSetFragment.java index 0e9efa4b1..1de8de5a7 100644 --- a/src/com/android/photos/PhotoSetFragment.java +++ b/src/com/android/photos/PhotoSetFragment.java @@ -19,22 +19,22 @@ package com.android.photos; import android.app.Fragment; import android.app.LoaderManager.LoaderCallbacks; import android.content.Context; -import android.content.Intent; import android.content.Loader; import android.database.Cursor; -import android.net.Uri; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; -import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.view.ViewGroup.LayoutParams; import android.widget.CursorAdapter; +import android.widget.GridView; import android.widget.ImageView; import com.android.gallery3d.R; import com.android.photos.data.PhotoSetLoader; -import com.android.photos.drawables.DataUriThumbnailDrawable; -import com.android.photos.views.GalleryThumbnailView; +import com.android.photos.drawables.DrawableFactory; +import com.android.photos.shims.MediaItemsLoader; import com.android.photos.views.GalleryThumbnailView.GalleryThumbnailAdapter; @@ -42,7 +42,7 @@ public class PhotoSetFragment extends Fragment implements LoaderCallbacks<Cursor private static final int LOADER_PHOTOSET = 1; - private GalleryThumbnailView mPhotoSetView; + private GridView mPhotoSetView; private View mEmptyView; private ThumbnailAdapter mAdapter; @@ -50,7 +50,9 @@ public class PhotoSetFragment extends Fragment implements LoaderCallbacks<Cursor public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.photo_set, container, false); - mPhotoSetView = (GalleryThumbnailView) root.findViewById(android.R.id.list); + mPhotoSetView = (GridView) root.findViewById(android.R.id.list); + // TODO: Remove once UI stabilizes + mPhotoSetView.setColumnWidth(MediaItemsLoader.getThumbnailSize()); mEmptyView = root.findViewById(android.R.id.empty); mEmptyView.setVisibility(View.GONE); mAdapter = new ThumbnailAdapter(getActivity()); @@ -68,7 +70,10 @@ public class PhotoSetFragment extends Fragment implements LoaderCallbacks<Cursor @Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { - return new PhotoSetLoader(getActivity()); + // TODO: Switch to PhotoSetLoader + MediaItemsLoader loader = new MediaItemsLoader(getActivity()); + mAdapter.setDrawableFactory(loader); + return loader; } @Override @@ -82,46 +87,37 @@ public class PhotoSetFragment extends Fragment implements LoaderCallbacks<Cursor public void onLoaderReset(Loader<Cursor> loader) { } - private static class ShowFullScreen implements OnClickListener { - - @Override - public void onClick(View view) { - String path = (String) view.getTag(); - Intent intent = new Intent(view.getContext(), FullscreenViewer.class); - intent.setAction(Intent.ACTION_VIEW); - intent.setData(Uri.parse(path)); - view.getContext().startActivity(intent); - } - - } - private static class ThumbnailAdapter extends CursorAdapter implements GalleryThumbnailAdapter { - private static ShowFullScreen sShowFullscreenClickListener = new ShowFullScreen(); + private LayoutInflater mInflater; + private DrawableFactory<Cursor> mDrawableFactory; public ThumbnailAdapter(Context context) { super(context, null, false); + mInflater = LayoutInflater.from(context); + } + + public void setDrawableFactory(DrawableFactory<Cursor> factory) { + mDrawableFactory = factory; } @Override public void bindView(View view, Context context, Cursor cursor) { ImageView iv = (ImageView) view; - DataUriThumbnailDrawable drawable = (DataUriThumbnailDrawable) iv.getDrawable(); - int width = cursor.getInt(PhotoSetLoader.INDEX_WIDTH); - int height = cursor.getInt(PhotoSetLoader.INDEX_HEIGHT); - String path = cursor.getString(PhotoSetLoader.INDEX_DATA); - drawable.setImage(path, width, height); - iv.setTag(path); + Drawable recycle = iv.getDrawable(); + Drawable drawable = mDrawableFactory.drawableForItem(cursor, recycle); + if (recycle != drawable) { + iv.setImageDrawable(drawable); + } } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { - ImageView iv = new ImageView(context); - DataUriThumbnailDrawable drawable = new DataUriThumbnailDrawable(); - iv.setImageDrawable(drawable); - int padding = (int) Math.ceil(2 * context.getResources().getDisplayMetrics().density); - iv.setPadding(padding, padding, padding, padding); - iv.setOnClickListener(sShowFullscreenClickListener); - return iv; + View view = mInflater.inflate(R.layout.photo_set_item, parent, false); + LayoutParams params = view.getLayoutParams(); + int columnWidth = ((GridView) parent).getColumnWidth(); + params.height = columnWidth; + view.setLayoutParams(params); + return view; } @Override |