package com.fastaccess.ui.modules.editor.popup; import android.app.Activity; import android.content.Context; import android.content.Intent; 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.ActivityHelper; import com.fastaccess.helper.BundleConstant; import com.fastaccess.helper.Bundler; import com.fastaccess.helper.FileHelper; import com.fastaccess.helper.InputHelper; import com.fastaccess.ui.base.BaseDialogFragment; import com.fastaccess.ui.widgets.FontButton; import java.io.File; import butterknife.BindView; import butterknife.OnClick; import es.dmoral.toasty.Toasty; /** * Created by Kosh on 15 Apr 2017, 9:14 PM */ public class EditorLinkImageDialogFragment extends BaseDialogFragment<EditorLinkImageMvp.View, EditorLinkImagePresenter> implements EditorLinkImageMvp.View { private EditorLinkImageMvp.EditorLinkCallback callback; @BindView(R.id.title) TextInputLayout title; @BindView(R.id.link) TextInputLayout link; @BindView(R.id.select) FontButton select; public static EditorLinkImageDialogFragment newInstance(boolean isLink) { EditorLinkImageDialogFragment fragment = new EditorLinkImageDialogFragment(); fragment.setArguments(Bundler .start() .put(BundleConstant.YES_NO_EXTRA, isLink) .end()); return fragment; } @Override public void onAttach(Context context) { super.onAttach(context); if (context instanceof EditorLinkImageMvp.EditorLinkCallback) { callback = (EditorLinkImageMvp.EditorLinkCallback) context; } } @Override public void onDetach() { callback = null; super.onDetach(); } @Override public void onUploaded(@Nullable String title, @Nullable String link) { hideProgress(); if (callback != null) { callback.onAppendLink(title, link, isLink()); } dismiss(); } @Override protected int fragmentLayout() { return R.layout.markdown_link_image_dialog_layout; } @Override protected void onFragmentCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { select.setVisibility(isLink() ? View.GONE : View.VISIBLE); } @NonNull @Override public EditorLinkImagePresenter providePresenter() { return new EditorLinkImagePresenter(); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == Activity.RESULT_OK && requestCode == BundleConstant.REQUEST_CODE) { if (data != null && data.getData() != null) { String path = FileHelper.getPath(getContext(), data.getData()); if (!InputHelper.isEmpty(path)) { getPresenter().onSubmit(InputHelper.toString(title), new File(path)); } else { Toasty.error(getContext(), getString(R.string.failed_selecting_image)).show(); } } } } @OnClick(R.id.select) public void onSelectClicked() { if (ActivityHelper.checkAndRequestReadWritePermission(getActivity())) { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, getString(R.string.select_picture)), BundleConstant.REQUEST_CODE); } } @OnClick(R.id.cancel) public void onCancelClicked() { dismiss(); } @OnClick(R.id.insert) public void onInsertClicked() { if (callback != null) { callback.onAppendLink(InputHelper.toString(title), InputHelper.toString(link), isLink()); } dismiss(); } private boolean isLink() { return getArguments() != null && getArguments().getBoolean(BundleConstant.YES_NO_EXTRA); } }