Android Open Source - mvp-notes Note Details Dialog Fragment






From Project

Back to project page mvp-notes.

License

The source code is released under:

Apache License

If you think the Android project mvp-notes listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.corneliudascalu.mvpnotes.ui.view.details;
/*from  w w w .  j a  va  2  s .co  m*/
import com.corneliudascalu.mvpnotes.R;
import com.corneliudascalu.mvpnotes.common.InjectedDialogFragment;
import com.corneliudascalu.mvpnotes.data.model.Note;
import com.corneliudascalu.mvpnotes.ui.view.details.interfaces.NoteDetailsPresenter;
import com.corneliudascalu.mvpnotes.ui.view.details.interfaces.NoteDetailsView;

import org.joda.time.format.DateTimeFormatter;
import org.joda.time.format.DateTimeFormatterBuilder;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;

import java.util.Arrays;
import java.util.List;

import javax.inject.Inject;

import butterknife.ButterKnife;
import butterknife.InjectView;

/**
 * @author Corneliu Dascalu <corneliu.dascalu@gmail.com>
 */
public class NoteDetailsDialogFragment extends InjectedDialogFragment implements NoteDetailsView {

    public static final String TAG = "noteDetailsTag";

    @InjectView(R.id.noteText)
    TextView noteText;

    @InjectView(R.id.noteDate)
    TextView noteDateText;

    @InjectView(R.id.deleteNoteButton)
    ImageButton deleteButton;

    @Inject
    NoteDetailsPresenter mPresenter;

    private DateTimeFormatter mFormatter;

    public static NoteDetailsDialogFragment newInstance(Note note) {
        Bundle args = new Bundle();
        args.putParcelable(Note.EXTRA_NOTE, note);
        NoteDetailsDialogFragment fragment = new NoteDetailsDialogFragment();
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (getArguments() != null) {
            setData(getArguments());
        }

        DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
        mFormatter = builder
                .appendYear(4, 4).appendLiteral("-")
                .appendMonthOfYear(2).appendLiteral("-")
                .appendDayOfMonth(2).appendLiteral(" at ")
                .appendHourOfDay(2).appendLiteral(":")
                .appendMinuteOfHour(2)
                .toFormatter();
    }

    private void setData(Bundle arguments) {
        if (arguments != null) {
            Note note = arguments.getParcelable(Note.EXTRA_NOTE);
            mPresenter.setData(note);
        }
    }

    @Override
    protected List<Object> getModules() {
        return Arrays.<Object>asList(new NoteDetailsModule(this));
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.note_details, container, false);
        ButterKnife.inject(this, view);

        deleteButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mPresenter.deleteNote();
            }
        });

        return view;
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        mPresenter.viewReady();
    }

    @Override
    public void setNote(Note note) {
        getDialog().setTitle(note.title);
        noteText.setText(note.text);
        noteDateText.setText(note.createdDate.toString(mFormatter));
    }

    @Override
    public void close() {
        dismiss();
    }

    @Override
    public void showError(String error) {
        Toast.makeText(getActivity(), error, Toast.LENGTH_SHORT).show();
    }
}




Java Source Code List

com.corneliudascalu.mvpnotes.AppModule.java
com.corneliudascalu.mvpnotes.MVPNotesApp.java
com.corneliudascalu.mvpnotes.common.BaseInjectedActivity.java
com.corneliudascalu.mvpnotes.common.InjectedDialogFragment.java
com.corneliudascalu.mvpnotes.common.ObjectGraphCreator.java
com.corneliudascalu.mvpnotes.common.ObjectGraphHolder.java
com.corneliudascalu.mvpnotes.data.interactor.InteractorsModule.java
com.corneliudascalu.mvpnotes.data.interactor.NoteInteractor.java
com.corneliudascalu.mvpnotes.data.interactor.impl.NoteInteractorImpl.java
com.corneliudascalu.mvpnotes.data.model.DatabaseModule.java
com.corneliudascalu.mvpnotes.data.model.Note.java
com.corneliudascalu.mvpnotes.data.model.SimpleDatabase.java
com.corneliudascalu.mvpnotes.ui.view.details.NoteDetailsDialogFragment.java
com.corneliudascalu.mvpnotes.ui.view.details.NoteDetailsModule.java
com.corneliudascalu.mvpnotes.ui.view.details.SimpleNoteDetailsPresenter.java
com.corneliudascalu.mvpnotes.ui.view.details.interfaces.NoteDetailsPresenter.java
com.corneliudascalu.mvpnotes.ui.view.details.interfaces.NoteDetailsView.java
com.corneliudascalu.mvpnotes.ui.view.main.NotesActivity.java
com.corneliudascalu.mvpnotes.ui.view.main.NotesModule.java
com.corneliudascalu.mvpnotes.ui.view.main.NotesPresenter.java
com.corneliudascalu.mvpnotes.ui.view.main.NotesView.java
com.corneliudascalu.mvpnotes.ui.view.main.OnNoteOperationListener.java
com.corneliudascalu.mvpnotes.ui.view.main.SimpleNotesPresenter.java
com.corneliudascalu.mvpnotes.util.DateTimeDeserializer.java
com.corneliudascalu.mvpnotes.util.DateTimeSerializer.java