/**
*
*/
package com.gmail.charleszq.picorner.ui;
import java.util.List;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.gmail.charleszq.picorner.R;
import com.gmail.charleszq.picorner.dp.SinglePagePhotosProvider;
import com.gmail.charleszq.picorner.model.MediaObjectCollection;
import com.gmail.charleszq.picorner.task.IGeneralTaskDoneListener;
import com.gmail.charleszq.picorner.task.flickr.FlickrGetPhotoGeneralInfoTask;
import com.gmail.charleszq.picorner.task.px500.PxFetchPhotoExifTask;
import com.gmail.charleszq.picorner.utils.IConstants;
/**
* @author yayu
*
*/
public class RedirectActivity extends FragmentActivity {
/**
*
*/
public RedirectActivity() {
super();
}
/* (non-Javadoc)
* @see android.support.v4.app.FragmentActivity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.redirect_act);
Intent intent = getIntent();
if (IConstants.HTTP_SCHME.equals(intent.getScheme())) {
String host = intent.getData().getHost();
List<String> segments = intent.getData().getPathSegments();
if (IConstants.HOST_500PX.equals(host)) {
//500px
if (segments.size() > 1 && IConstants.SEGMENT_PHOTO.equals(segments.get(0))) {
//the second segment should be the photo ID
String photoId = segments.get(1);
PxFetchPhotoExifTask pxTask = new PxFetchPhotoExifTask();
pxTask.addTaskDoneListener(new IGeneralTaskDoneListener<com.github.yuyang226.j500px.photos.Photo>() {
@Override
public void onTaskDone(com.github.yuyang226.j500px.photos.Photo result) {
if (result != null) {
final MediaObjectCollection col = new MediaObjectCollection();
col.addPhoto(com.gmail.charleszq.picorner.utils.ModelUtils.convertPx500Photo(result));
startImageActivity(new SinglePagePhotosProvider(col));
}
}
});
pxTask.execute(photoId);
}
} else if (IConstants.HOST_FLICKR.equals(host) || IConstants.HOST_FLICKR_MOBILE.equals(host)) {
//Flickr
if (segments.size() > 2 && IConstants.SEGMENT_PHOTOS.equals(segments.get(0))) {
String photoId = segments.get(2);
FlickrGetPhotoGeneralInfoTask flickrTast = new FlickrGetPhotoGeneralInfoTask();
flickrTast.addTaskDoneListener(new IGeneralTaskDoneListener<com.googlecode.flickrjandroid.photos.Photo>() {
@Override
public void onTaskDone(com.googlecode.flickrjandroid.photos.Photo result) {
if (result != null) {
final MediaObjectCollection col = new MediaObjectCollection();
col.addPhoto(com.gmail.charleszq.picorner.utils.ModelUtils.convertFlickrPhoto(result, null));
startImageActivity(new SinglePagePhotosProvider(col));
}
}
});
flickrTast.execute(photoId);
}
}
}
}
private void startImageActivity(SinglePagePhotosProvider mPhotosProvider) {
final Intent i = new Intent(this, ImageDetailActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra(ImageDetailActivity.DP_KEY, mPhotosProvider);
startActivity(i);
finish();
}
}