diff --git a/samples/flickr/src/main/AndroidManifest.xml b/samples/flickr/src/main/AndroidManifest.xml index aed789656d438e9de7748f8af0ae4d18064d38b0..242d2cd15efdbe7ca788881af2281a5347cfcc6f 100644 --- a/samples/flickr/src/main/AndroidManifest.xml +++ b/samples/flickr/src/main/AndroidManifest.xml @@ -21,6 +21,8 @@ + + diff --git a/samples/flickr/src/main/java/com/bumptech/glide/samples/flickr/FlickrPhotoGrid.java b/samples/flickr/src/main/java/com/bumptech/glide/samples/flickr/FlickrPhotoGrid.java index 12a676f028ddd9a609cb1646a8f633fe31032157..b6393a7a09fbd648d1a81889d35aefa1fba05ca1 100644 --- a/samples/flickr/src/main/java/com/bumptech/glide/samples/flickr/FlickrPhotoGrid.java +++ b/samples/flickr/src/main/java/com/bumptech/glide/samples/flickr/FlickrPhotoGrid.java @@ -1,5 +1,6 @@ package com.bumptech.glide.samples.flickr; +import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; @@ -173,6 +174,14 @@ public class FlickrPhotoGrid extends Fragment implements PhotoViewer { .thumbnail(thumbnail ? thumbnailRequest.load(current) : null) .into(imageView); + imageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = FullscreenActivity.getIntent(getActivity(), current); + startActivity(intent); + } + }); + return imageView; } } diff --git a/samples/flickr/src/main/java/com/bumptech/glide/samples/flickr/FlickrPhotoList.java b/samples/flickr/src/main/java/com/bumptech/glide/samples/flickr/FlickrPhotoList.java index 2627f6602fac64c6ec715903e0b0dd3cfdcb36c9..90a03b4cce61531f1cb2d3d97546d37c04e78d05 100644 --- a/samples/flickr/src/main/java/com/bumptech/glide/samples/flickr/FlickrPhotoList.java +++ b/samples/flickr/src/main/java/com/bumptech/glide/samples/flickr/FlickrPhotoList.java @@ -1,5 +1,6 @@ package com.bumptech.glide.samples.flickr; +import android.content.Intent; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; @@ -190,6 +191,14 @@ public class FlickrPhotoList extends Fragment implements PhotoViewer { .load(current) .into(viewHolder.imageView); + viewHolder.imageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = FullscreenActivity.getIntent(getActivity(), current); + startActivity(intent); + } + }); + viewHolder.titleText.setText(current.getTitle()); return view; } diff --git a/samples/flickr/src/main/java/com/bumptech/glide/samples/flickr/FullscreenActivity.java b/samples/flickr/src/main/java/com/bumptech/glide/samples/flickr/FullscreenActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..cd78f10923d4f5e801ac38a39c8cff4a7f5bef5e --- /dev/null +++ b/samples/flickr/src/main/java/com/bumptech/glide/samples/flickr/FullscreenActivity.java @@ -0,0 +1,34 @@ +package com.bumptech.glide.samples.flickr; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.support.v4.app.FragmentActivity; +import android.widget.ImageView; +import com.bumptech.glide.Glide; +import com.bumptech.glide.samples.flickr.api.Photo; + +/** + * A simple activity for viewing a single photo. + */ +public class FullscreenActivity extends FragmentActivity { + private static final String ARG_PHOTO = "photo"; + + public static Intent getIntent(Context context, Photo photo) { + Intent intent = new Intent(context, FullscreenActivity.class); + intent.putExtra(ARG_PHOTO, photo); + return intent; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.fullscreen_activity); + ImageView fullscreenView = (ImageView) findViewById(R.id.fullscreen_view); + Photo photo = getIntent().getParcelableExtra(ARG_PHOTO); + Glide.with(this) + .load(photo) + .fitCenter() + .into(fullscreenView); + } +} diff --git a/samples/flickr/src/main/java/com/bumptech/glide/samples/flickr/api/Photo.java b/samples/flickr/src/main/java/com/bumptech/glide/samples/flickr/api/Photo.java index a74a075b8d8bbf23e61c0690b6308051efb4d1ee..9e73ae18b703f2c893c483e1a16f1804835b3bdb 100644 --- a/samples/flickr/src/main/java/com/bumptech/glide/samples/flickr/api/Photo.java +++ b/samples/flickr/src/main/java/com/bumptech/glide/samples/flickr/api/Photo.java @@ -1,12 +1,26 @@ package com.bumptech.glide.samples.flickr.api; +import android.os.Parcel; +import android.os.Parcelable; import org.json.JSONException; import org.json.JSONObject; /** * A POJO representing a JSON object returned from Flickr's api representing a single image. */ -public class Photo { +public class Photo implements Parcelable { + public static final Creator CREATOR = new Creator() { + @Override + public Photo createFromParcel(Parcel parcel) { + return new Photo(parcel); + } + + @Override + public Photo[] newArray(int i) { + return new Photo[i]; + } + }; + private final String id; private final String owner; private final String title; @@ -15,6 +29,7 @@ public class Photo { private final String secret; private String partialUrl = null; + public Photo(JSONObject jsonPhoto) throws JSONException { this.id = jsonPhoto.getString("id"); this.owner = jsonPhoto.getString("owner"); @@ -24,6 +39,25 @@ public class Photo { this.secret = jsonPhoto.getString("secret"); } + private Photo(Parcel in) { + id = in.readString(); + owner = in.readString(); + title = in.readString(); + server = in.readString(); + farm = in.readString(); + secret = in.readString(); + } + + @Override + public void writeToParcel(Parcel parcel, int i) { + parcel.writeString(id); + parcel.writeString(owner); + parcel.writeString(title); + parcel.writeString(server); + parcel.writeString(farm); + parcel.writeString(secret); + } + public String getPartialUrl() { if (partialUrl == null) { partialUrl = Api.getCacheableUrl(this); @@ -99,4 +133,9 @@ public class Photo { result = 31 * result + secret.hashCode(); return result; } + + @Override + public int describeContents() { + return 0; + } } diff --git a/samples/flickr/src/main/res/layout/fullscreen_activity.xml b/samples/flickr/src/main/res/layout/fullscreen_activity.xml new file mode 100644 index 0000000000000000000000000000000000000000..d4523c18a9ad1cf42b13667518d517b354d7a952 --- /dev/null +++ b/samples/flickr/src/main/res/layout/fullscreen_activity.xml @@ -0,0 +1,5 @@ + +