/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.ui.fragments;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.widget.ArrayAdapter;
import com.galaxy.meetup.client.android.R;
/**
*
* @author sihai
*
*/
public class ChoosePhotoDialog extends DialogFragment implements
OnClickListener {
private Long mCoverPhotoId;
private boolean mHasScrapbook;
private int mIndexToAction[];
private boolean mIsCameraSupported;
private boolean mIsForCoverPhoto;
private boolean mIsOnlyFromInstantUpload;
PhotoHandler mListener;
private int mTitle;
public ChoosePhotoDialog()
{
mIndexToAction = new int[5];
mTitle = R.string.menu_choose_photo_from_gallery;
}
public ChoosePhotoDialog(int i)
{
mIndexToAction = new int[5];
mTitle = R.string.menu_choose_photo_from_gallery;
mTitle = i;
}
public void onClick(DialogInterface dialoginterface, int i)
{
if(null != mListener) {
dismiss();
switch(mIndexToAction[i])
{
case 1: // '\001'
mListener.doRepositionCoverPhoto();
break;
case 2: // '\002'
mListener.doTakePhoto();
break;
case 3: // '\003'
mListener.doPickPhotoFromAlbums(0);
break;
case 4: // '\004'
mListener.doPickPhotoFromAlbums(1);
break;
case 5: // '\005'
mListener.doPickPhotoFromAlbums(2);
break;
}
}
}
public final Dialog onCreateDialog(Bundle bundle)
{
super.onCreateDialog(bundle);
if(bundle != null)
{
mIsCameraSupported = bundle.getBoolean("is_camera_supported");
mTitle = bundle.getInt("title");
mIsOnlyFromInstantUpload = bundle.getBoolean("only_instant_upload");
mIsForCoverPhoto = bundle.getBoolean("has_scrapbook");
mHasScrapbook = bundle.getBoolean("has_scrapbook");
if(bundle.containsKey("cover_photo_id"))
mCoverPhotoId = Long.valueOf(bundle.getLong("cover_photo_id"));
}
FragmentActivity fragmentactivity = getActivity();
int i;
int j;
String as[];
Long long1;
int k;
int i1;
android.app.AlertDialog.Builder builder;
if(mIsCameraSupported)
i = 1;
else
i = 0;
j = i + 1;
if(mIsForCoverPhoto)
{
j++;
if(mHasScrapbook)
j++;
if(mCoverPhotoId != null)
j++;
}
as = new String[j];
long1 = mCoverPhotoId;
k = 0;
if(long1 != null)
{
mIndexToAction[0] = 1;
k = 0 + 1;
as[0] = fragmentactivity.getString(R.string.change_photo_option_reposition);
}
if(mIsForCoverPhoto)
{
mIndexToAction[k] = 4;
int l1 = k + 1;
as[k] = fragmentactivity.getString(R.string.change_photo_option_select_gallery);
k = l1;
}
if(mIsCameraSupported)
{
mIndexToAction[k] = 2;
int k1 = k + 1;
as[k] = fragmentactivity.getString(R.string.change_photo_option_take_photo);
k = k1;
}
mIndexToAction[k] = 3;
if(mIsOnlyFromInstantUpload)
{
int j1 = k + 1;
as[k] = fragmentactivity.getString(R.string.change_photo_option_instant_upload);
i1 = j1;
} else
{
int l = k + 1;
as[k] = fragmentactivity.getString(R.string.change_photo_option_your_photos);
i1 = l;
}
if(mIsForCoverPhoto && mHasScrapbook)
{
mIndexToAction[i1] = 5;
as[i1] = fragmentactivity.getString(R.string.change_photo_option_select_cover_photo);
}
if(getTargetFragment() instanceof PhotoHandler)
mListener = (PhotoHandler)getTargetFragment();
builder = new android.app.AlertDialog.Builder(fragmentactivity);
builder.setTitle(mTitle);
builder.setAdapter(new ArrayAdapter(fragmentactivity, 0x1090011, as), this);
builder.setCancelable(true);
return builder.create();
}
public final void onSaveInstanceState(Bundle bundle)
{
super.onSaveInstanceState(bundle);
bundle.putBoolean("is_camera_supported", mIsCameraSupported);
bundle.putInt("title", mTitle);
bundle.putBoolean("only_instant_upload", mIsOnlyFromInstantUpload);
bundle.putBoolean("has_scrapbook", mIsForCoverPhoto);
bundle.putBoolean("has_scrapbook", mHasScrapbook);
if(mCoverPhotoId != null)
bundle.putLong("cover_photo_id", mCoverPhotoId.longValue());
}
public final void setIsCameraSupported(boolean flag)
{
mIsCameraSupported = flag;
}
public final void setIsForCoverPhoto(boolean flag, boolean flag1, Long long1)
{
mIsForCoverPhoto = true;
mHasScrapbook = flag1;
mCoverPhotoId = long1;
}
public final void show(FragmentManager fragmentmanager, String s) {
if(mIsCameraSupported && !mIsForCoverPhoto) {
super.show(fragmentmanager, s);
return;
}
if(mListener != null)
mListener.doPickPhotoFromAlbums(0);
}
public static interface PhotoHandler {
void doPickPhotoFromAlbums(int i);
void doRepositionCoverPhoto();
void doTakePhoto();
}
}