package org.pyload.android.client.dialogs;
import org.apache.commons.codec.binary.Base64;
import org.pyload.android.client.R;
import org.pyload.android.client.pyLoad;
import org.pyload.thrift.CaptchaTask;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class CaptchaDialog extends DialogFragment {
private OnDismissListener listener;
private CaptchaTask task;
private TextView text;
public static CaptchaDialog newInstance(CaptchaTask task) {
CaptchaDialog dialog = new CaptchaDialog();
Bundle args = new Bundle();
args.putSerializable("task", task);
dialog.setArguments(args);
return dialog;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
task = (CaptchaTask) getArguments().getSerializable("task");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View dialog = inflater.inflate(R.layout.captcha_dialog, container,
false);
text = (TextView) dialog.findViewById(R.id.text);
ImageView image = (ImageView) dialog.findViewById(R.id.image);
byte[] decoded = Base64.decodeBase64(task.getData());
Bitmap bm = BitmapFactory.decodeByteArray(decoded, 0, decoded.length);
image.setImageBitmap(bm);
Button enter = (Button) dialog.findViewById(R.id.enter);
enter.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
CaptchaDialog.this.onClick();
dismiss();
}
});
Button cancel = (Button) dialog.findViewById(R.id.cancel);
cancel.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
dismiss();
}
});
return dialog;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.setTitle(getString(R.string.captcha_dialog_titel));
return dialog;
}
public void onClick(){
((pyLoad) getActivity()).setCaptchaResult(task.tid, text.getText().toString());
}
public void setOnDismissListener(OnDismissListener listener) {
this.listener = listener;
}
@Override
public void onDismiss(DialogInterface dialog) {
if (listener != null) {
listener.onDismiss(dialog);
// clear reference
listener = null;
}
}
}