package com.mairos.twisterblog.gui.fragments; import android.app.DialogFragment; import android.support.v4.widget.SwipeRefreshLayout; import android.widget.EditText; import android.widget.Toast; import com.mairos.twisterblog.R; import com.mairos.twisterblog.model.RequestResult; import com.mairos.twisterblog.network.AddPostRequest; import com.mairos.twisterblog.network.RequestStatusObject; import com.mairos.twisterblog.network.TwisterBlogService; import com.octo.android.robospice.SpiceManager; import com.octo.android.robospice.persistence.DurationInMillis; import com.octo.android.robospice.persistence.exception.SpiceException; import com.octo.android.robospice.request.listener.RequestListener; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.Click; import org.androidannotations.annotations.EFragment; import org.androidannotations.annotations.ViewById; @EFragment(R.layout.fragment_add_post_dialog) public class AddPostDialogFragment extends DialogFragment { private AddPostRequest mAddPostRequest; private SpiceManager mSpiceManager = new SpiceManager(TwisterBlogService.class); protected SpiceManager getSpiceManager() { return mSpiceManager; } @ViewById(R.id.text_title) protected EditText mPostTitle; @ViewById(R.id.text_body) protected EditText mPostBody; public AddPostDialogFragment() { // Required empty public constructor } public static AddPostDialogFragment newInstance() { return AddPostDialogFragment_.builder().build(); } @Override public void onStart() { super.onStart(); mSpiceManager.start(getActivity()); } @Override public void onStop() { super.onStop(); mSpiceManager.shouldStop(); } @AfterViews protected void init(){ getDialog().setTitle("Add new post to blog"); } @Click(R.id.button_add) protected void onAddClick(){ mAddPostRequest = new AddPostRequest(mPostTitle.getText().toString(), mPostBody.getText().toString()); if (getTargetFragment() instanceof PostsListFragment){ RequestStatusObject.getInstance().setStarted(); } getSpiceManager().execute(mAddPostRequest, "add_post", DurationInMillis.ONE_SECOND, new AddPostRequestListener()); } public final class AddPostRequestListener implements RequestListener<RequestResult> { @Override public void onRequestFailure(SpiceException spiceException) { Toast.makeText(getActivity(), "failure add post", Toast.LENGTH_SHORT).show(); } @Override public void onRequestSuccess(final RequestResult result) { Toast.makeText(getActivity(), "success add post", Toast.LENGTH_SHORT).show(); if (getTargetFragment() instanceof SwipeRefreshLayout.OnRefreshListener){ ((SwipeRefreshLayout.OnRefreshListener) getTargetFragment()).onRefresh(); } dismiss(); } } }