package de.eisfeldj.augendiagnose.activities; import android.content.Intent; import android.net.Uri; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.View; import android.widget.Button; import java.util.ArrayList; import de.eisfeldj.augendiagnose.R; import de.jeisfeld.augendiagnoselib.activities.CameraActivity; import de.jeisfeld.augendiagnoselib.activities.ListFoldersForDisplayActivity; import de.jeisfeld.augendiagnoselib.activities.OrganizeNewPhotosActivity; import de.jeisfeld.augendiagnoselib.activities.OrganizeNewPhotosActivity.NextAction; import de.jeisfeld.augendiagnoselib.activities.StandardActivity; import de.jeisfeld.augendiagnoselib.util.DialogUtil; import de.jeisfeld.augendiagnoselib.util.PreferenceUtil; import de.jeisfeld.augendiagnoselib.util.SystemUtil; import de.jeisfeld.augendiagnoselib.util.imagefile.ImageUtil; import de.jeisfeld.augendiagnoselib.util.imagefile.MediaStoreUtil; /** * Main activity of the application. */ public class MainActivity extends StandardActivity { @Override protected final void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (isCreationFailed()) { return; } if (VERSION.SDK_INT >= VERSION_CODES.N && isInMultiWindowMode() && !SystemUtil.isTablet()) { setContentView(R.layout.activity_main_splitscreen); } else { setContentView(R.layout.activity_main); } PreferenceUtil.setSharedPreferenceBoolean(R.string.key_internal_organized_new_photo, false); // Track if AdMarvel has been clicked in the current session. boolean isAdMarvelClicked = false; if (savedInstanceState != null) { isAdMarvelClicked = savedInstanceState.getBoolean("isAdMarvelClicked"); } PreferenceUtil.setSharedPreferenceBoolean(R.string.key_admarvel_iscurrentlyclicked, isAdMarvelClicked); Intent intent = getIntent(); if (Intent.ACTION_SEND_MULTIPLE.equals(intent.getAction()) && intent.getType() != null) { // Application was started from other application by passing a list of images - open // OrganizeNewPhotosActivity. ArrayList<Uri> imageUris = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM); if (imageUris != null) { ArrayList<String> fileNames = new ArrayList<>(); for (int i = 0; i < imageUris.size(); i++) { if (ImageUtil.getMimeType(imageUris.get(i)).startsWith("image/")) { String fileName = MediaStoreUtil.getRealPathFromUri(imageUris.get(i)); if (fileName == null) { fileName = imageUris.get(i).getPath(); } fileNames.add(fileName); } } boolean rightEyeLast = PreferenceUtil.getSharedPreferenceBoolean(R.string.key_eye_sequence_choice); OrganizeNewPhotosActivity.startActivity(this, fileNames.toArray(new String[fileNames.size()]), rightEyeLast, NextAction.NEXT_IMAGES); } } if (!SystemUtil.isAppInstalled(getString(R.string.package_eyefi)) && !SystemUtil.isAppInstalled(getString(R.string.package_mobi))) { Button buttonEyeFi = (Button) findViewById(R.id.mainButtonOpenEyeFiApp); buttonEyeFi.setVisibility(View.GONE); } if (!SystemUtil.hasCamera()) { Button buttonTakePhotos = (Button) findViewById(R.id.mainButtonTakePictures); buttonTakePhotos.setVisibility(View.GONE); } if (savedInstanceState == null) { PreferenceUtil.incrementCounter(R.string.key_statistics_countmain); } requestBannerAdIfEligible(); } @Override protected final int getHelpResource() { return R.string.html_overview; } @Override protected final void onSaveInstanceState(@NonNull final Bundle outState) { super.onSaveInstanceState(outState); boolean isAdMarvelClicked = PreferenceUtil.getSharedPreferenceBoolean(R.string.key_admarvel_iscurrentlyclicked); outState.putBoolean("isAdMarvelClicked", isAdMarvelClicked); } /** * onClick action for Button to open the Eye-Fi app. * * @param view the button to open the Eye-Fi app. */ public final void openEyeFiApp(final View view) { if (SystemUtil.isAppInstalled(getString(R.string.package_mobi))) { startActivity(getPackageManager().getLaunchIntentForPackage(getString(R.string.package_mobi))); } else if (SystemUtil.isAppInstalled(getString(R.string.package_eyefi))) { startActivity(getPackageManager().getLaunchIntentForPackage(getString(R.string.package_eyefi))); } else { Intent googlePlayIntent = new Intent(Intent.ACTION_VIEW); googlePlayIntent.setData(Uri.parse("market://details?id=" + getString(R.string.package_mobi))); try { startActivity(googlePlayIntent); } catch (Exception e) { DialogUtil.displayError(this, R.string.message_dialog_failed_to_open_google_play, false); } } } /** * onClick action for Button to start the activity to take pictures. * * @param view the button to take pictures. */ public final void takePicturesActivity(final View view) { CameraActivity.startActivity(this, PreferenceUtil.getSharedPreferenceString(R.string.key_folder_input)); } /** * onClick action for Button to display eye photos. * * @param view the button to display the eye photos. */ public final void listFoldersForDisplayActivity(final View view) { ListFoldersForDisplayActivity.startActivity(this); } /** * onClick action for Button to organize new eye photos. * * @param view the button to organize new folders. */ public final void organizeNewFoldersActivity(final View view) { OrganizeNewPhotosActivity.startActivity(this, PreferenceUtil.getSharedPreferenceString(R.string.key_folder_input), PreferenceUtil.getSharedPreferenceBoolean(R.string.key_eye_sequence_choice), NextAction.NEXT_IMAGES); } }