/**
*
*/
package com.gmail.charleszq.picorner.ui.command.flickr;
import java.util.Comparator;
import android.app.ActionBar;
import android.content.Context;
import com.gmail.charleszq.picorner.R;
import com.gmail.charleszq.picorner.SPUtil;
import com.gmail.charleszq.picorner.offline.FlickrOfflineParameter;
import com.gmail.charleszq.picorner.offline.IOfflineViewParameter;
import com.gmail.charleszq.picorner.offline.OfflineControlFileUtil;
import com.gmail.charleszq.picorner.offline.OfflinePhotoCollectionType;
import com.gmail.charleszq.picorner.service.IPhotoService;
import com.gmail.charleszq.picorner.service.flickr.FlickrPhotoSetPhotosService;
import com.gmail.charleszq.picorner.task.AbstractFetchIconUrlTask;
import com.gmail.charleszq.picorner.task.flickr.FetchFlickrPhotosetIconUrlTask;
import com.gmail.charleszq.picorner.ui.command.PhotoListCommand;
import com.gmail.charleszq.picorner.ui.flickr.MyPhotoSetsHiddenView;
import com.gmail.charleszq.picorner.ui.helper.IHiddenView;
import com.googlecode.flickrjandroid.photosets.Photoset;
/**
* Represents the command to show all my photo sets in a menu item back view.
*
* @author charles(charleszq@gmail.com)
*
*/
public class MyPhotosetsCommand extends PhotoListCommand {
private IHiddenView mHiddenView;
private Photoset mPhotoSet;
private IOfflineViewParameter mOfflineParameter;
/**
* @param context
*/
public MyPhotosetsCommand(Context context) {
super(context);
}
/*
* (non-Javadoc)
*
* @see com.gmail.charleszq.picorner.ui.command.ICommand#getIconResourceId()
*/
@Override
public int getIconResourceId() {
return R.drawable.ic_action_flickr_ps;
}
/*
* (non-Javadoc)
*
* @see com.gmail.charleszq.picorner.ui.command.ICommand#getLabel()
*/
@Override
public String getLabel() {
return mContext.getString(R.string.f_my_photo_sets);
}
@Override
public Object getAdapter(Class<?> adapterClass) {
if (adapterClass == IHiddenView.class) {
if (mHiddenView == null) {
mHiddenView = new MyPhotoSetsHiddenView();
}
return mHiddenView;
}
if (adapterClass == AbstractFetchIconUrlTask.class) {
FetchFlickrPhotosetIconUrlTask task = new FetchFlickrPhotosetIconUrlTask(
mContext);
return task;
}
if (adapterClass == IPhotoService.class) {
mCurrentPhotoService = new FlickrPhotoSetPhotosService(
SPUtil.getFlickrUserId(mContext),
SPUtil.getFlickrAuthToken(mContext),
SPUtil.getFlickrAuthTokenSecret(mContext),
mPhotoSet);
return mCurrentPhotoService;
}
if (adapterClass == IOfflineViewParameter.class) {
mOfflineParameter = new FlickrOfflineParameter(
OfflinePhotoCollectionType.PHOTO_SET, mPhotoSet.getId(), mPhotoSet.getTitle());
if (OfflineControlFileUtil.isOfflineViewEnabled(mContext,
mOfflineParameter)
&& OfflineControlFileUtil.isOfflineControlFileReady(
mContext, mOfflineParameter))
return mOfflineParameter;
else
return null;
}
if (adapterClass == Comparator.class) {
return mPhotoSet;
}
if( adapterClass == ActionBar.class ) {
return Boolean.FALSE.toString();
}
return super.getAdapter(adapterClass);
}
@Override
public boolean execute(Object... params) {
this.mPhotoSet = (Photoset) params[0];
return super.execute();
}
@Override
public String getDescription() {
String msg = mContext.getString(R.string.cd_flickr_photo_set_photos);
return String
.format(msg, mPhotoSet != null ? mPhotoSet.getTitle() : ""); //$NON-NLS-1$
}
}