package com.moez.QKSMS.ui.compose; import android.app.FragmentManager; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.ViewGroup; import com.moez.QKSMS.R; import com.moez.QKSMS.mmssms.Utils; import com.moez.QKSMS.ui.base.QKSwipeBackActivity; import com.moez.QKSMS.ui.dialog.DefaultSmsHelper; import com.moez.QKSMS.ui.dialog.QKDialog; public class ComposeActivity extends QKSwipeBackActivity { private ComposeFragment mComposeFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTitle(R.string.title_compose); FragmentManager fm = getFragmentManager(); mComposeFragment = (ComposeFragment) fm.findFragmentByTag(ComposeFragment.TAG); if (mComposeFragment == null) { mComposeFragment = new ComposeFragment(); } fm.beginTransaction() .replace(R.id.content_frame, mComposeFragment, ComposeFragment.TAG) .commit(); } @Override public boolean onCreateOptionsMenu(Menu menu) { new MenuInflater(this).inflate(R.menu.compose, menu); return super.onCreateOptionsMenu(menu); } @Override public void onBackPressed() { // Check if we're not the default SMS app if (!Utils.isDefaultSmsApp(this)) { // Ask to become the default SMS app new DefaultSmsHelper(this, R.string.not_default_send) .showIfNotDefault((ViewGroup)getWindow().getDecorView().getRootView()); } else if (mComposeFragment != null && !mComposeFragment.isReplyTextEmpty() && mComposeFragment.getRecipientAddresses().length == 0) { // If there is Draft message and no recipients are set new QKDialog() .setContext(this) .setMessage(R.string.discard_message_reason) .setPositiveButton(R.string.yes, v -> { super.onBackPressed(); }) .setNegativeButton(R.string.cancel, null) .show(); } else { super.onBackPressed(); } } }