package com.fastaccess.ui.modules.repos.pull_requests.pull_request.merge;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.TextInputLayout;
import android.view.View;
import com.fastaccess.R;
import com.fastaccess.helper.BundleConstant;
import com.fastaccess.helper.Bundler;
import com.fastaccess.helper.InputHelper;
import com.fastaccess.ui.base.BaseDialogFragment;
import butterknife.BindView;
import butterknife.OnClick;
/**
* Created by Kosh on 18 Mar 2017, 12:13 PM
*/
public class MergePullRequestDialogFragment extends BaseDialogFragment<MergePullReqeustMvp.View, MergePullRequestPresenter>
implements MergePullReqeustMvp.View {
@BindView(R.id.title) TextInputLayout title;
private MergePullReqeustMvp.MergeCallback mergeCallback;
public static MergePullRequestDialogFragment newInstance(@Nullable String title) {
MergePullRequestDialogFragment view = new MergePullRequestDialogFragment();
view.setArguments(Bundler.start()
.put(BundleConstant.EXTRA, title)
.end());
return view;
}
@Override public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof MergePullReqeustMvp.MergeCallback) {
mergeCallback = (MergePullReqeustMvp.MergeCallback) context;
} else if (getParentFragment() instanceof MergePullReqeustMvp.MergeCallback) {
mergeCallback = (MergePullReqeustMvp.MergeCallback) getParentFragment();
}
}
@Override public void onDetach() {
mergeCallback = null;
super.onDetach();
}
@Override protected int fragmentLayout() {
return R.layout.merge_dialog_layout;
}
@Override protected void onFragmentCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
if (savedInstanceState == null) {
String titleMsg = getArguments().getString(BundleConstant.EXTRA);
if (!InputHelper.isEmpty(titleMsg)) {
if (title.getEditText() != null) title.getEditText().setText(titleMsg);
}
}
}
@NonNull @Override public MergePullRequestPresenter providePresenter() {
return new MergePullRequestPresenter();
}
@OnClick({R.id.cancel, R.id.ok}) public void onClick(View view) {
if (view.getId() == R.id.ok) {
boolean isEmpty = InputHelper.isEmpty(title);
title.setError(isEmpty ? getString(R.string.required_field) : null);
if (isEmpty) return;
mergeCallback.onMerge(InputHelper.toString(title));
}
dismiss();
}
}