/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.ui.fragments;
import java.io.Serializable;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentActivity;
import android.text.SpannableString;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import com.galaxy.meetup.client.android.R;
/**
*
* @author sihai
*
*/
public class BlockPersonDialog extends DialogFragment implements
OnClickListener {
public BlockPersonDialog()
{
this(false);
}
public BlockPersonDialog(boolean flag)
{
this(flag, null);
}
public BlockPersonDialog(boolean flag, Serializable serializable)
{
Bundle bundle = new Bundle();
bundle.putBoolean("plus_page", flag);
bundle.putSerializable("callback_data", serializable);
setArguments(bundle);
}
private void configureExplanationLink(TextView textview)
{
String s = getActivity().getString(R.string.what_does_this_mean_link);
SpannableString spannablestring = new SpannableString(s);
spannablestring.setSpan(new ClickableSpan() {
public final void onClick(View view)
{
// FIXME
Intent intent = new Intent("android.intent.action.VIEW", /*url*/null);
intent.addFlags(0x80000);
startActivity(intent);
}
}, 0, s.length(), 33);
textview.setText(spannablestring);
textview.setMovementMethod(LinkMovementMethod.getInstance());
textview.setClickable(true);
}
public void onClick(DialogInterface dialoginterface, int i) {
if(-2 == i) {
dialoginterface.dismiss();
} else if(-1 == i) {
Serializable serializable = getArguments().getSerializable("callback_data");
android.support.v4.app.Fragment fragment = getTargetFragment();
if(fragment instanceof PersonBlocker)
{
((PersonBlocker)fragment).blockPerson(serializable);
} else
{
FragmentActivity fragmentactivity = getActivity();
if(fragmentactivity instanceof PersonBlocker)
((PersonBlocker)fragmentactivity).blockPerson(serializable);
}
} else {
}
}
public final Dialog onCreateDialog(Bundle bundle)
{
boolean flag = getArguments().getBoolean("plus_page");
FragmentActivity fragmentactivity = getActivity();
android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(fragmentactivity);
int i;
View view;
TextView textview;
int j;
if(flag)
i = R.string.block_page_dialog_title;
else
i = R.string.block_person_dialog_title;
builder.setTitle(i);
builder.setPositiveButton(0x104000a, this);
builder.setNegativeButton(0x1040000, this);
builder.setCancelable(true);
view = LayoutInflater.from(fragmentactivity).inflate(R.layout.block_profile_confirm_dialog, null);
textview = (TextView)view.findViewById(R.id.message);
if(flag)
j = R.string.block_page_dialog_message;
else
j = R.string.block_person_dialog_message;
textview.setText(j);
configureExplanationLink((TextView)view.findViewById(R.id.explanation));
builder.setView(view);
return builder.create();
}
public final void onPause()
{
super.onPause();
Dialog dialog = getDialog();
if(dialog != null)
((TextView)dialog.findViewById(R.id.explanation)).setText(null);
}
public final void onResume()
{
super.onResume();
Dialog dialog = getDialog();
if(dialog != null)
configureExplanationLink((TextView)dialog.findViewById(R.id.explanation));
}
public static interface PersonBlocker {
void blockPerson(Serializable serializable);
}
}