package com.fastaccess.ui.widgets.dialog; import android.content.Context; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.StringRes; import android.view.View; import com.fastaccess.R; import com.fastaccess.helper.Bundler; import com.fastaccess.ui.base.BaseBottomSheetDialog; import com.fastaccess.ui.widgets.FontTextView; import butterknife.BindView; import butterknife.OnClick; /** * Created by Kosh on 16 Sep 2016, 2:15 PM */ public class MessageDialogView extends BaseBottomSheetDialog { public interface MessageDialogViewActionCallback { void onMessageDialogActionClicked(boolean isOk, int requestCode); void onDialogDismissed(); } @BindView(R.id.title) FontTextView title; @BindView(R.id.message) FontTextView message; @Nullable private MessageDialogViewActionCallback callback; @Override public void onAttach(Context context) { super.onAttach(context); if (getParentFragment() != null && getParentFragment() instanceof MessageDialogViewActionCallback) { callback = (MessageDialogViewActionCallback) getParentFragment(); } else if (context instanceof MessageDialogViewActionCallback) { callback = (MessageDialogViewActionCallback) context; } } @Override public void onDetach() { super.onDetach(); callback = null; } @OnClick({R.id.cancel, R.id.ok}) public void onClick(View view) { if (callback != null) { isAlreadyHidden = true; callback.onMessageDialogActionClicked(view.getId() == R.id.ok, getArguments().getInt("requestCode")); } dismiss(); } @Override protected int layoutRes() { return R.layout.message_dialog; } @Override protected void onViewCreated(@NonNull View view) { Bundle bundle = getArguments(); title.setText(bundle.getInt("bundleTitle")); message.setText(bundle.getInt("bundleMsg")); } @Override protected void onDismissedByScrolling() { super.onDismissedByScrolling(); if (callback != null) callback.onDialogDismissed(); } @Override protected void onHidden() { if (callback != null) callback.onDialogDismissed(); super.onHidden(); } @NonNull public static MessageDialogView newInstance(@StringRes int bundleTitle, @StringRes int bundleMsg) { return newInstance(bundleTitle, bundleMsg, 0); } @NonNull public static MessageDialogView newInstance(@StringRes int bundleTitle, @StringRes int bundleMsg, int requestCode) { MessageDialogView messageDialogView = new MessageDialogView(); messageDialogView.setArguments(Bundler .start() .put("bundleTitle", bundleTitle) .put("bundleMsg", bundleMsg) .put("requestCode", requestCode) .end()); return messageDialogView; } }