package com.gmail.charleszq.picorner.ui.flickr;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.gmail.charleszq.picorner.R;
import com.gmail.charleszq.picorner.task.IGeneralTaskDoneListener;
import com.gmail.charleszq.picorner.task.flickr.FetchGroupInfoTask;
import com.gmail.charleszq.picorner.task.flickr.JoinGroupTask;
import com.gmail.charleszq.picorner.utils.ModelUtils;
import com.googlecode.flickrjandroid.groups.Group;
public class FlickrGroupInfoDialog extends Activity {
public static final String F_GROUP_ID_KEY = "f.group.id"; //$NON-NLS-1$
public static final String F_GROUP_TITLE_KEY = "f.group.title"; //$NON-NLS-1$
public static final String F_GROUP_MY_GROUP_KEY = "f.group.my.group"; //$NON-NLS-1$
private String mGroupId;
private TextView mDescription, mRules;
private OnClickListener mListener = new OnClickListener() {
@Override
public void onClick(View v) {
int tag = (Integer) v.getTag();
switch (tag) {
case R.id.btn_flickr_group_cancel:
finish();
break;
case R.id.btn_join_flickr_group:
DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_NEGATIVE)
dialog.cancel();
else {
finish();
JoinGroupTask task = new JoinGroupTask(
FlickrGroupInfoDialog.this);
task.addTaskDoneListener(new IGeneralTaskDoneListener<String>() {
@Override
public void onTaskDone(String result) {
Toast.makeText(FlickrGroupInfoDialog.this,
result, Toast.LENGTH_LONG).show();
}
});
task.execute(mGroupId);
}
}
};
AlertDialog dialog = new AlertDialog.Builder(
FlickrGroupInfoDialog.this)
.setTitle(R.string.button_join_flickr_group)
.setMessage(R.string.msg_join_group_condition)
.setNegativeButton(android.R.string.no, listener)
.setPositiveButton(android.R.string.yes, listener)
.create();
dialog.show();
break;
}
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.flickr_group_info);
Intent intent = getIntent();
mGroupId = intent.getStringExtra(F_GROUP_ID_KEY);
String title = intent.getStringExtra(F_GROUP_TITLE_KEY);
boolean isMyGroup = intent.getBooleanExtra(F_GROUP_MY_GROUP_KEY, false);
TextView titleView = (TextView) findViewById(R.id.flickr_group_title);
titleView.setText(title);
Button btnJoin = (Button) findViewById(R.id.btn_join_flickr_group);
btnJoin.setTag(R.id.btn_join_flickr_group);
btnJoin.setVisibility(isMyGroup ? View.GONE : View.VISIBLE);
btnJoin.setOnClickListener(mListener);
Button cancelBtn = (Button) findViewById(R.id.btn_flickr_group_cancel);
cancelBtn.setTag(R.id.btn_flickr_group_cancel);
cancelBtn.setOnClickListener(mListener);
mDescription = (TextView) findViewById(R.id.flickr_group_desc);
mRules = (TextView) findViewById(R.id.flickr_group_rules);
}
@Override
protected void onResume() {
super.onResume();
FetchGroupInfoTask task = new FetchGroupInfoTask();
task.addTaskDoneListener(new IGeneralTaskDoneListener<Group>() {
@Override
public void onTaskDone(Group result) {
onGroupInfoFetch(result);
}
});
task.execute(mGroupId);
}
private void onGroupInfoFetch(Group result) {
if (result != null) {
if (mDescription != null && result.getDescription() != null && result.getDescription().trim().length() > 0) {
ModelUtils.formatHtmlString(result.getDescription(),
mDescription);
}
if (mRules != null && result.getRules() != null && result.getRules().trim().length() > 0 ) {
ModelUtils.formatHtmlString(result.getRules(), mRules);
}
}
}
}