package com.quran.labs.androidquran; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.ActivityCompat; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.widget.Toast; import com.crashlytics.android.answers.Answers; import com.crashlytics.android.answers.CustomEvent; import com.quran.labs.androidquran.dao.BookmarkData; import com.quran.labs.androidquran.presenter.QuranImportPresenter; import javax.inject.Inject; public class QuranImportActivity extends AppCompatActivity implements ActivityCompat.OnRequestPermissionsResultCallback { private AlertDialog mDialog; @Inject QuranImportPresenter mPresenter; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { QuranApplication quranApp = ((QuranApplication) getApplication()); quranApp.refreshLocale(this, false); super.onCreate(savedInstanceState); quranApp.getApplicationComponent().inject(this); Answers.getInstance().logCustom(new CustomEvent("importData")); } @Override protected void onPause() { mPresenter.unbind(this); super.onPause(); } @Override protected void onResume() { super.onResume(); mPresenter.bind(this); } @Override protected void onDestroy() { mPresenter.unbind(this); if (mDialog != null) { mDialog.dismiss(); } super.onDestroy(); } public boolean isShowingDialog() { return mDialog != null; } public void showImportConfirmationDialog(final BookmarkData bookmarkData) { String message = getString(R.string.import_data_and_override, bookmarkData.getBookmarks().size(), bookmarkData.getTags().size()); AlertDialog.Builder builder = new AlertDialog.Builder(this) .setMessage(message) .setPositiveButton(R.string.import_data, (dialog, which) -> mPresenter.importData(bookmarkData)) .setNegativeButton(android.R.string.cancel, (dialog, which) -> finish()) .setOnCancelListener(dialog -> finish()); mDialog = builder.show(); } public void showImportComplete() { Answers.getInstance().logCustom(new CustomEvent("importDataSuccessful")); Toast.makeText(QuranImportActivity.this, R.string.import_successful, Toast.LENGTH_LONG).show(); finish(); } public void showError() { showErrorInternal(R.string.import_data_error); } public void showPermissionsError() { showErrorInternal(R.string.import_data_permissions_error); } private void showErrorInternal(int messageId) { AlertDialog.Builder builder = new AlertDialog.Builder(this) .setMessage(messageId) .setPositiveButton(android.R.string.ok, (dialog, which) -> finish()); mDialog = builder.show(); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { mPresenter.onPermissionsResult(requestCode, grantResults); } }