/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.ui.fragments; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.text.Editable; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import com.galaxy.meetup.client.android.R; import com.galaxy.meetup.client.android.ui.view.MentionMultiAutoCompleteTextView; /** * * @author sihai * */ public class CommentEditFragmentDialog extends AlertFragmentDialog implements TextWatcher { private MentionMultiAutoCompleteTextView mInputTextView; public CommentEditFragmentDialog() { } private void checkPositiveButtonEnabled() { AlertDialog alertdialog = (AlertDialog)getDialog(); if(alertdialog != null) { Button button = alertdialog.getButton(-1); boolean flag; if(!TextUtils.isEmpty(mInputTextView.getText().toString().trim())) flag = true; else flag = false; button.setEnabled(flag); } } public static CommentEditFragmentDialog newInstance(int i) { Bundle bundle = new Bundle(); bundle.putString("comment_id", ""); bundle.putString("comment_text", ""); bundle.putInt("title_id", i); CommentEditFragmentDialog commenteditfragmentdialog = new CommentEditFragmentDialog(); commenteditfragmentdialog.setArguments(bundle); return commenteditfragmentdialog; } public void afterTextChanged(Editable editable) { } public void beforeTextChanged(CharSequence charsequence, int i, int j, int k) { } public void onClick(DialogInterface dialoginterface, int i) { if(i == -1) { SpannableStringBuilder spannablestringbuilder; for(spannablestringbuilder = new SpannableStringBuilder(mInputTextView.getText()); spannablestringbuilder.length() > 0 && Character.isWhitespace(spannablestringbuilder.charAt(0)); spannablestringbuilder.delete(0, 1)); for(; spannablestringbuilder.length() > 0 && Character.isWhitespace(spannablestringbuilder.charAt(-1 + spannablestringbuilder.length())); spannablestringbuilder.delete(-1 + spannablestringbuilder.length(), spannablestringbuilder.length())); CommentEditDialogListener commenteditdialoglistener = (CommentEditDialogListener)getTargetFragment(); getArguments().getString("comment_id"); commenteditdialoglistener.onCommentEditComplete(spannablestringbuilder); } super.onClick(dialoginterface, i); } public final Dialog onCreateDialog(Bundle bundle) { Bundle bundle1 = getArguments(); android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(getActivity()); View view = ((LayoutInflater)getActivity().getSystemService("layout_inflater")).inflate(R.layout.comment_edit_dialog, null); mInputTextView = (MentionMultiAutoCompleteTextView)view.findViewById(R.id.text); mInputTextView.addTextChangedListener(this); if(bundle != null) mInputTextView.setText(bundle.getCharSequence("comment_text")); else mInputTextView.setHtml(bundle1.getString("comment_text")); builder.setView(view); builder.setTitle(bundle1.getInt("title_id", R.string.menu_edit_comment)); builder.setPositiveButton(R.string.ok, this); builder.setNegativeButton(R.string.cancel, this); return builder.create(); } public final void onSaveInstanceState(Bundle bundle) { bundle.putCharSequence("comment_text", mInputTextView.getText()); } public final void onStart() { super.onStart(); checkPositiveButtonEnabled(); } public void onTextChanged(CharSequence charsequence, int i, int j, int k) { checkPositiveButtonEnabled(); } public static interface CommentEditDialogListener { public abstract void onCommentEditComplete(Spannable spannable); } }