diff options
Diffstat (limited to 'src/com/android/photos/PhotoSetFragment.java')
-rw-r--r-- | src/com/android/photos/PhotoSetFragment.java | 81 |
1 files changed, 14 insertions, 67 deletions
diff --git a/src/com/android/photos/PhotoSetFragment.java b/src/com/android/photos/PhotoSetFragment.java index c6ec0328d..961fd0bf2 100644 --- a/src/com/android/photos/PhotoSetFragment.java +++ b/src/com/android/photos/PhotoSetFragment.java @@ -16,8 +16,6 @@ package com.android.photos; -import android.app.Activity; -import android.app.Fragment; import android.app.LoaderManager.LoaderCallbacks; import android.content.Context; import android.content.Intent; @@ -25,15 +23,11 @@ import android.content.Loader; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; -import android.util.SparseBooleanArray; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemClickListener; import android.widget.GridView; -import com.android.gallery3d.R; import com.android.gallery3d.app.Gallery; import com.android.photos.adapters.PhotoThumbnailAdapter; import com.android.photos.data.PhotoSetLoader; @@ -42,18 +36,12 @@ import com.android.photos.shims.MediaItemsLoader; import java.util.ArrayList; -public class PhotoSetFragment extends Fragment implements OnItemClickListener, - LoaderCallbacks<Cursor>, MultiChoiceManager.Delegate { +public class PhotoSetFragment extends MultiSelectGridFragment implements LoaderCallbacks<Cursor> { private static final int LOADER_PHOTOSET = 1; - private GridView mPhotoSetView; - private View mEmptyView; - - private boolean mInitialLoadComplete = false; private LoaderCompatShim<Cursor> mLoaderCompatShim; private PhotoThumbnailAdapter mAdapter; - private GalleryFragmentHost mHost; @Override public void onCreate(Bundle savedInstanceState) { @@ -63,50 +51,27 @@ public class PhotoSetFragment extends Fragment implements OnItemClickListener, } @Override - public void onAttach(Activity activity) { - super.onAttach(activity); - mHost = (GalleryFragmentHost) activity; - } - - @Override - public void onDetach() { - super.onDetach(); - mHost = null; - } - - @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View root = inflater.inflate(R.layout.photo_set, container, false); - mPhotoSetView = (GridView) root.findViewById(android.R.id.list); - // TODO: Remove once UI stabilizes - mPhotoSetView.setColumnWidth(MediaItemsLoader.getThumbnailSize()); - mPhotoSetView.setOnItemClickListener(this); - mEmptyView = root.findViewById(android.R.id.empty); - mEmptyView.setVisibility(View.GONE); - mPhotoSetView.setAdapter(mAdapter); - mPhotoSetView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE_MODAL); - mPhotoSetView.setMultiChoiceModeListener(mHost.getMultiChoiceManager()); + View root = super.onCreateView(inflater, container, savedInstanceState); getLoaderManager().initLoader(LOADER_PHOTOSET, null, this); - updateEmptyStatus(); return root; } - private void updateEmptyStatus() { - boolean empty = (mAdapter == null || mAdapter.getCount() == 0); - mPhotoSetView.setVisibility(empty ? View.GONE : View.VISIBLE); - mEmptyView.setVisibility(empty && mInitialLoadComplete - ? View.VISIBLE : View.GONE); + @Override + public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + // TODO: Remove once UI stabilizes + getGridView().setColumnWidth(MediaItemsLoader.getThumbnailSize()); } @Override - public void onItemClick(AdapterView<?> parent, View view, int position, - long id) { + public void onGridItemClick(GridView g, View v, int position, long id) { if (mLoaderCompatShim == null) { // Not fully initialized yet, discard return; } - Cursor item = mAdapter.getItem(position); + Cursor item = (Cursor) getItemAtPosition(position); Uri uri = mLoaderCompatShim.uriForItem(item); Intent intent = new Intent(Intent.ACTION_VIEW, uri); intent.setClass(getActivity(), Gallery.class); @@ -117,7 +82,6 @@ public class PhotoSetFragment extends Fragment implements OnItemClickListener, public Loader<Cursor> onCreateLoader(int id, Bundle args) { // TODO: Switch to PhotoSetLoader MediaItemsLoader loader = new MediaItemsLoader(getActivity()); - mInitialLoadComplete = false; mLoaderCompatShim = loader; mAdapter.setDrawableFactory(mLoaderCompatShim); return loader; @@ -127,8 +91,7 @@ public class PhotoSetFragment extends Fragment implements OnItemClickListener, public void onLoadFinished(Loader<Cursor> loader, Cursor data) { mAdapter.swapCursor(data); - mInitialLoadComplete = true; - updateEmptyStatus(); + setAdapter(mAdapter); } @Override @@ -145,11 +108,6 @@ public class PhotoSetFragment extends Fragment implements OnItemClickListener, return ((Cursor) item).getInt(PhotoSetLoader.INDEX_SUPPORTED_OPERATIONS); } - @Override - public Object getItemAtPosition(int position) { - return mAdapter.getItem(position); - } - private ArrayList<Uri> mSubItemUriTemp = new ArrayList<Uri>(1); @Override public ArrayList<Uri> getSubItemUrisForItem(Object item) { @@ -158,29 +116,18 @@ public class PhotoSetFragment extends Fragment implements OnItemClickListener, return mSubItemUriTemp; } - - @Override - public Object getPathForItemAtPosition(int position) { - return mLoaderCompatShim.getPathForItem(mAdapter.getItem(position)); - } - @Override public void deleteItemWithPath(Object itemPath) { mLoaderCompatShim.deleteItemWithPath(itemPath); } @Override - public SparseBooleanArray getSelectedItemPositions() { - return mPhotoSetView.getCheckedItemPositions(); - } - - @Override - public int getSelectedItemCount() { - return mPhotoSetView.getCheckedItemCount(); + public Uri getItemUri(Object item) { + return mLoaderCompatShim.uriForItem((Cursor) item); } @Override - public Uri getItemUri(Object item) { - return mLoaderCompatShim.uriForItem((Cursor) item); + public Object getPathForItem(Object item) { + return mLoaderCompatShim.getPathForItem((Cursor) item); } } |