diff options
author | Bobby Georgescu <georgescu@google.com> | 2013-03-06 23:10:22 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-03-06 23:10:22 +0000 |
commit | 124225a1dbea6ea2c66879804f259d74e31ab4fc (patch) | |
tree | b879fc5249c8bcdf9ed8205c7577bf1f2d16f588 /src/com | |
parent | 556713fa25b492b6cba9ed8bf4ea6e2f56298fb5 (diff) | |
parent | 8485a62af07a376e6741ff7c6b8c7c6b6d9ebc61 (diff) | |
download | android_packages_apps_Snap-124225a1dbea6ea2c66879804f259d74e31ab4fc.tar.gz android_packages_apps_Snap-124225a1dbea6ea2c66879804f259d74e31ab4fc.tar.bz2 android_packages_apps_Snap-124225a1dbea6ea2c66879804f259d74e31ab4fc.zip |
Merge "Preliminary AlbumSet UI" into gb-ub-photos-bryce
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/photos/AlbumSetFragment.java | 91 | ||||
-rw-r--r-- | src/com/android/photos/data/AlbumSetLoader.java | 51 | ||||
-rw-r--r-- | src/com/android/photos/drawables/AutoThumbnailDrawable.java | 4 |
3 files changed, 144 insertions, 2 deletions
diff --git a/src/com/android/photos/AlbumSetFragment.java b/src/com/android/photos/AlbumSetFragment.java index 2d348c248..6a9520a5e 100644 --- a/src/com/android/photos/AlbumSetFragment.java +++ b/src/com/android/photos/AlbumSetFragment.java @@ -17,8 +17,97 @@ package com.android.photos; import android.app.Fragment; +import android.content.Context; +import android.database.Cursor; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.text.format.DateFormat; +import android.view.LayoutInflater; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.CursorAdapter; +import android.widget.GridView; +import android.widget.ImageView; +import android.widget.ProgressBar; +import android.widget.TextView; +import android.widget.Toast; +import com.android.gallery3d.R; +import com.android.photos.data.AlbumSetLoader; +import com.android.photos.drawables.DataUriThumbnailDrawable; -public class AlbumSetFragment extends Fragment { +import java.util.Date; + +public class AlbumSetFragment extends Fragment implements OnItemClickListener { + private GridView mAlbumSetView; + private View mEmptyView; + private CursorAdapter mAdapter; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View root = inflater.inflate(R.layout.album_set, container, false); + mAlbumSetView = (GridView) root.findViewById(android.R.id.list); + mEmptyView = root.findViewById(android.R.id.empty); + mEmptyView.setVisibility(View.GONE); + mAdapter = new AlbumSetCursorAdapter(getActivity()); + mAlbumSetView.setAdapter(mAdapter); + mAlbumSetView.setOnItemClickListener(this); + mAdapter.swapCursor(AlbumSetLoader.MOCK); + return root; + } + + @Override + public void onItemClick(AdapterView<?> av, View v, int pos, long id) { + Cursor c = (Cursor) av.getItemAtPosition(pos); + int albumId = c.getInt(AlbumSetLoader.INDEX_ID); + // TODO launch an activity showing the photos in the album + Toast.makeText(v.getContext(), "Clicked " + albumId, Toast.LENGTH_SHORT).show(); + } + + private static class AlbumSetCursorAdapter extends CursorAdapter { + + private Date mDate = new Date(); // Used for converting timestamps for display + + public AlbumSetCursorAdapter(Context context) { + super(context, null, false); + } + + @Override + public void bindView(View v, Context context, Cursor cursor) { + TextView titleTextView = (TextView) v.findViewById( + R.id.album_set_item_title); + titleTextView.setText(cursor.getString(AlbumSetLoader.INDEX_TITLE)); + + TextView dateTextView = (TextView) v.findViewById( + R.id.album_set_item_date); + mDate.setTime(cursor.getLong(AlbumSetLoader.INDEX_TIMESTAMP)); + dateTextView.setText(DateFormat.getMediumDateFormat(context).format(mDate)); + + ProgressBar uploadProgressBar = (ProgressBar) v.findViewById( + R.id.album_set_item_upload_progress); + if (cursor.getInt(AlbumSetLoader.INDEX_COUNT_PENDING_UPLOAD) > 0) { + uploadProgressBar.setVisibility(View.VISIBLE); + uploadProgressBar.setProgress(50); + } else { + uploadProgressBar.setVisibility(View.INVISIBLE); + } + + // TODO show the thumbnail + } + + @Override + public View newView(Context context, Cursor cursor, ViewGroup parent) { + View v = LayoutInflater.from(context).inflate( + R.layout.album_set_item, parent, false); + ImageView thumbImageView = (ImageView) v.findViewById( + R.id.album_set_item_image); + thumbImageView.setImageResource(android.R.color.darker_gray); + return v; + } + } } diff --git a/src/com/android/photos/data/AlbumSetLoader.java b/src/com/android/photos/data/AlbumSetLoader.java new file mode 100644 index 000000000..f5fc3b732 --- /dev/null +++ b/src/com/android/photos/data/AlbumSetLoader.java @@ -0,0 +1,51 @@ +package com.android.photos.data; + +import android.database.MatrixCursor; + + +public class AlbumSetLoader { + public static final int INDEX_ID = 0; + public static final int INDEX_TITLE = 1; + public static final int INDEX_TIMESTAMP = 2; + public static final int INDEX_THUMBNAIL_URI = 3; + public static final int INDEX_THUMBNAIL_WIDTH = 4; + public static final int INDEX_THUMBNAIL_HEIGHT = 5; + public static final int INDEX_COUNT_PENDING_UPLOAD = 6; + public static final int INDEX_COUNT = 7; + + public static final MatrixCursor MOCK = createRandomCursor(30); + + private static MatrixCursor createRandomCursor(int count) { + String[] rows = { + "_id", + "title", + "timestamp", + "thumb_uri", + "thumb_width", + "thumb_height", + "count_pending_upload", + "_count" + }; + MatrixCursor c = new MatrixCursor(rows, count); + for (int i = 0; i < count; i++) { + c.addRow(createRandomRow()); + } + return c; + } + + private static Object[] createRandomRow() { + double random = Math.random(); + int id = (int) (500 * random); + Object[] row = { + id, + "Fun times " + id, + (long) (System.currentTimeMillis() * random), + null, + 0, + 0, + (random < .3 ? 1 : 0), + 1 + }; + return row; + } +}
\ No newline at end of file diff --git a/src/com/android/photos/drawables/AutoThumbnailDrawable.java b/src/com/android/photos/drawables/AutoThumbnailDrawable.java index 09b344147..b51b6709f 100644 --- a/src/com/android/photos/drawables/AutoThumbnailDrawable.java +++ b/src/com/android/photos/drawables/AutoThumbnailDrawable.java @@ -167,7 +167,9 @@ public abstract class AutoThumbnailDrawable<T> extends Drawable { } private void refreshSampleSizeLocked() { - if (mBounds.isEmpty()) return; + if (mBounds.isEmpty() || mImageWidth == 0 || mImageHeight == 0) { + return; + } int sampleSize = calculateSampleSizeLocked(mImageWidth, mImageHeight); if (sampleSize != mSampleSize || mBitmap == null) { |