package ngvl.android.exrecyclerview;
import android.app.Dialog;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.view.View;
import android.widget.EditText;
import ngvl.android.exrecyclerview.db.MensagemContract;
public class MensagemFragment extends DialogFragment
implements DialogInterface.OnClickListener {
private static final String EXTRA_ID = "id";
EditText mEdtTitulo;
EditText mEdtDescricao;
long id;
public static MensagemFragment newInstance(long id){
Bundle bundle = new Bundle();
bundle.putLong(EXTRA_ID, id);
MensagemFragment mensagemFragment = new MensagemFragment();
mensagemFragment.setArguments(bundle);
return mensagemFragment;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
View view = getActivity().getLayoutInflater()
.inflate(R.layout.fragment_mensagem, null);
mEdtTitulo = (EditText)view.findViewById(R.id.edtTitulo);
mEdtDescricao = (EditText)view.findViewById(R.id.edtDescricao);
boolean novaMensagem = true;
if (getArguments() != null && getArguments().getLong(EXTRA_ID) != 0){
id = getArguments().getLong(EXTRA_ID);
Uri uri = Uri.withAppendedPath(
MensagemContract.URI_MENSAGENS, String.valueOf(id));
Cursor cursor = getActivity().getContentResolver()
.query( uri, null, null, null, null);
if (cursor.moveToNext()) {
novaMensagem = false;
mEdtTitulo.setText(cursor.getString(
cursor.getColumnIndex(MensagemContract.TITULO)));
mEdtDescricao.setText(cursor.getString(
cursor.getColumnIndex(MensagemContract.DESCRICAO)));
}
cursor.close();
}
return new AlertDialog.Builder(getActivity())
.setTitle(novaMensagem ?
R.string.nova_mensagem : R.string.editar_mensagem)
.setView(view)
.setPositiveButton(R.string.salvar, this)
.setNegativeButton(R.string.cancelar, null)
.create();
}
@Override
public void onClick(DialogInterface dialog, int which) {
ContentValues values = new ContentValues();
values.put(MensagemContract.TITULO,
mEdtTitulo.getText().toString());
values.put(MensagemContract.DESCRICAO,
mEdtDescricao.getText().toString());
if (id != 0){
Uri uri = Uri.withAppendedPath(
MensagemContract.URI_MENSAGENS, String.valueOf(id));
getContext().getContentResolver().update(uri, values, null, null);
} else {
getContext().getContentResolver().insert(
MensagemContract.URI_MENSAGENS, values);
}
}
}