From b486570c283e79f6f49896103aba1c24b9051571 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 4 Jan 2018 14:08:52 -0500 Subject: [PATCH] Made PlatformFunction an interface, changed permission requests --- .../io/anuke/mindustry/AndroidLauncher.java | 31 ++++++++++--------- core/src/io/anuke/mindustry/Mindustry.java | 13 +------- .../anuke/mindustry/io/PlatformFunction.java | 18 +++++------ .../io/anuke/mindustry/ui/FileChooser.java | 4 +-- .../mindustry/desktop/DesktopLauncher.java | 5 --- .../anuke/mindustry/client/HtmlLauncher.java | 7 ----- 6 files changed, 27 insertions(+), 51 deletions(-) diff --git a/android/src/io/anuke/mindustry/AndroidLauncher.java b/android/src/io/anuke/mindustry/AndroidLauncher.java index c3edf774b1..06b3ec011a 100644 --- a/android/src/io/anuke/mindustry/AndroidLauncher.java +++ b/android/src/io/anuke/mindustry/AndroidLauncher.java @@ -5,8 +5,8 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; -import android.os.Bundle; import android.os.Build; +import android.os.Bundle; import android.telephony.TelephonyManager; import com.badlogic.gdx.backends.android.AndroidApplication; import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; @@ -31,12 +31,6 @@ public class AndroidLauncher extends AndroidApplication{ protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (this.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - this.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_REQUEST_CODE); - } - } - AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); config.useImmersiveMode = true; @@ -66,12 +60,6 @@ public class AndroidLauncher extends AndroidApplication{ TextFieldDialogListener.add(field); } - @Override - public void updateRPC() { } - - @Override - public void onGameExit() { } - @Override public void openDonations() { showDonations(); @@ -80,13 +68,26 @@ public class AndroidLauncher extends AndroidApplication{ @Override public void requestWritePerms() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_REQUEST_CODE); + if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED && + checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.READ_EXTERNAL_STORAGE}, WRITE_REQUEST_CODE); + }else{ + + if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_REQUEST_CODE); + } + + if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, WRITE_REQUEST_CODE); + } } } } }; + Mindustry.platforms.requestWritePerms(); + if(doubleScaleTablets && isTablet(this.getContext())){ Unit.dp.addition = 0.5f; } diff --git a/core/src/io/anuke/mindustry/Mindustry.java b/core/src/io/anuke/mindustry/Mindustry.java index e9bd4d5b58..c4786e8eb2 100644 --- a/core/src/io/anuke/mindustry/Mindustry.java +++ b/core/src/io/anuke/mindustry/Mindustry.java @@ -14,24 +14,13 @@ import io.anuke.ucore.core.Core; import io.anuke.ucore.core.Inputs; import io.anuke.ucore.core.Timers; import io.anuke.ucore.modules.ModuleCore; -import io.anuke.ucore.scene.ui.TextField; -import java.util.Date; import java.util.Locale; public class Mindustry extends ModuleCore { public static boolean hasDiscord = true; public static Array args = new Array<>(); - public static PlatformFunction platforms = new PlatformFunction(){ - @Override public String format(Date date){ return "invalid date"; } - @Override public String format(int number){ return number + ""; } - @Override public void openLink(String link){ } - @Override public void addDialog(TextField field){} - @Override public void updateRPC() {} - @Override public void onGameExit() {} - @Override public void openDonations() {} - @Override public void requestWritePerms() {} - }; + public static PlatformFunction platforms = new PlatformFunction(){}; public static OrderedMap idMap = new OrderedMap<>(); public static boolean externalBundle = false; diff --git a/core/src/io/anuke/mindustry/io/PlatformFunction.java b/core/src/io/anuke/mindustry/io/PlatformFunction.java index efcf49af2e..4062ac1517 100644 --- a/core/src/io/anuke/mindustry/io/PlatformFunction.java +++ b/core/src/io/anuke/mindustry/io/PlatformFunction.java @@ -4,13 +4,13 @@ import io.anuke.ucore.scene.ui.TextField; import java.util.Date; -public interface PlatformFunction{ - public String format(Date date); - public String format(int number); - public void openLink(String link); - public void addDialog(TextField field); - public void updateRPC(); - public void onGameExit(); - public void openDonations(); - public void requestWritePerms(); +public abstract class PlatformFunction{ + public String format(Date date){return "invalid";} + public String format(int number){return "invalid";} + public void openLink(String link){} + public void addDialog(TextField field){} + public void updateRPC(){} + public void onGameExit(){} + public void openDonations(){} + public void requestWritePerms(){} } diff --git a/core/src/io/anuke/mindustry/ui/FileChooser.java b/core/src/io/anuke/mindustry/ui/FileChooser.java index 18b2fdb556..f968c7d89b 100644 --- a/core/src/io/anuke/mindustry/ui/FileChooser.java +++ b/core/src/io/anuke/mindustry/ui/FileChooser.java @@ -40,9 +40,7 @@ public class FileChooser extends FloatingDialog{ this.selectListener = result; setupWidgets(); - if(!open){ - Mindustry.platforms.requestWritePerms(); - } + Mindustry.platforms.requestWritePerms(); } private void setupWidgets(){ diff --git a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java index df1b04dffa..2cf66f7660 100644 --- a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java +++ b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java @@ -14,7 +14,6 @@ import io.anuke.mindustry.core.GameState; import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.io.PlatformFunction; import io.anuke.mindustry.net.Net; -import io.anuke.ucore.scene.ui.TextField; import io.anuke.ucore.util.Strings; import javax.swing.*; @@ -67,10 +66,6 @@ public class DesktopLauncher { } } - @Override public void addDialog(TextField field){} - @Override public void openDonations(){} - @Override public void requestWritePerms(){} - @Override public void updateRPC() { DiscordRichPresence presence = new DiscordRichPresence(); diff --git a/html/src/io/anuke/mindustry/client/HtmlLauncher.java b/html/src/io/anuke/mindustry/client/HtmlLauncher.java index d844c68402..808dc291cf 100644 --- a/html/src/io/anuke/mindustry/client/HtmlLauncher.java +++ b/html/src/io/anuke/mindustry/client/HtmlLauncher.java @@ -17,7 +17,6 @@ import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.*; import io.anuke.mindustry.Mindustry; import io.anuke.mindustry.io.PlatformFunction; -import io.anuke.ucore.scene.ui.TextField; import java.util.Date; @@ -109,12 +108,6 @@ public class HtmlLauncher extends GwtApplication { public void openLink(String link){ Window.open(link, "_blank", ""); } - - @Override public void updateRPC() {} - @Override public void onGameExit() {} - @Override public void addDialog(TextField field){} - @Override public void openDonations(){} - @Override public void requestWritePerms() {} }; return new Mindustry();