From 0611b1a0d5e9939319f837d0b7c64adc12b28e52 Mon Sep 17 00:00:00 2001 From: Zukero Date: Sat, 8 Dec 2018 09:50:54 +0100 Subject: [PATCH] v0.7.3 released. --- AndorsTrail/AndroidManifest.xml | 4 +- AndorsTrail/res/values/strings.xml | 1 + .../AndorsTrail/AndorsTrailApplication.java | 4 +- .../activity/StartScreenActivity.java | 52 +++++++++++++++---- 4 files changed, 46 insertions(+), 15 deletions(-) diff --git a/AndorsTrail/AndroidManifest.xml b/AndorsTrail/AndroidManifest.xml index b3a36141d..f4838955e 100644 --- a/AndorsTrail/AndroidManifest.xml +++ b/AndorsTrail/AndroidManifest.xml @@ -3,8 +3,8 @@ Obsidian Changing UI theme requires restart. Andor\'s Trail has been closed. + Access to storage is mandatory for Andor\'s Trail to handle saved games and worldmap. Closing Andor\'s Trail. \ No newline at end of file diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java index ec97accb8..79653384d 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java @@ -28,8 +28,8 @@ public final class AndorsTrailApplication extends Application { public static final boolean DEVELOPMENT_VALIDATEDATA = false; public static final boolean DEVELOPMENT_DEBUGMESSAGES = false; public static final boolean DEVELOPMENT_INCOMPATIBLE_SAVEGAMES = DEVELOPMENT_DEBUGRESOURCES || DEVELOPMENT_DEBUGBUTTONS || DEVELOPMENT_FASTSPEED; - public static final int CURRENT_VERSION = DEVELOPMENT_INCOMPATIBLE_SAVEGAMES ? 999 : 43; - public static final String CURRENT_VERSION_DISPLAY = "0.7.2"; + public static final int CURRENT_VERSION = DEVELOPMENT_INCOMPATIBLE_SAVEGAMES ? 999 : 44; + public static final String CURRENT_VERSION_DISPLAY = "0.7.3"; public static final boolean IS_RELEASE_VERSION = !CURRENT_VERSION_DISPLAY.matches(".*[a-d].*"); private final AndorsTrailPreferences preferences = new AndorsTrailPreferences(); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/StartScreenActivity.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/StartScreenActivity.java index eaefb8619..604a77bb4 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/StartScreenActivity.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/StartScreenActivity.java @@ -1,8 +1,23 @@ package com.gpl.rpg.AndorsTrail.activity; + +import com.gpl.rpg.AndorsTrail.AndorsTrailApplication; +import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences; +import com.gpl.rpg.AndorsTrail.R; +import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_MainMenu; +import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_MainMenu.OnNewGameRequestedListener; +import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_NewGame; +import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_NewGame.GameCreationOverListener; +import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager; +import com.gpl.rpg.AndorsTrail.util.ThemeHelper; +import com.gpl.rpg.AndorsTrail.view.CloudsAnimatorView; +import android.Manifest; +import android.annotation.TargetApi; import android.content.Intent; +import android.content.pm.PackageManager; import android.content.res.Resources; import android.graphics.drawable.AnimationDrawable; +import android.os.Build; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; @@ -12,17 +27,7 @@ import android.view.ViewTreeObserver; import android.widget.ImageView; import android.widget.TextView; - -import com.gpl.rpg.AndorsTrail.AndorsTrailApplication; -import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences; -import com.gpl.rpg.AndorsTrail.R; -import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_MainMenu; -import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_MainMenu.OnNewGameRequestedListener; -import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_NewGame; -import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_NewGame.GameCreationOverListener; -import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager; -import com.gpl.rpg.AndorsTrail.util.ThemeHelper; -import com.gpl.rpg.AndorsTrail.view.CloudsAnimatorView; +import android.widget.Toast; public final class StartScreenActivity extends FragmentActivity implements OnNewGameRequestedListener, GameCreationOverListener, OnBackStackChangedListener { @@ -104,7 +109,32 @@ public void onClick(View v) { toggleUiVisibility(); app.getWorldSetup().startResourceLoader(res); + + checkAndRequestPermissions(); + } + + private static final int READ_EXTERNAL_STORAGE_REQUEST=1; + private static final int WRITE_EXTERNAL_STORAGE_REQUEST=2; + + @TargetApi(23) + private void checkAndRequestPermissions() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (getApplicationContext().checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + this.requestPermissions(new String[] {Manifest.permission.READ_EXTERNAL_STORAGE}, READ_EXTERNAL_STORAGE_REQUEST); + } + if (getApplicationContext().checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + this.requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_STORAGE_REQUEST); + } + } + } + @Override + public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { + if (grantResults.length > 0 && grantResults[0] != PackageManager.PERMISSION_GRANTED) { + Toast.makeText(this, R.string.storage_permissions_mandatory, Toast.LENGTH_LONG).show(); + ((AndorsTrailApplication)getApplication()).discardWorld(); + finish(); + } } private void toggleUiVisibility() {