Made PlatformFunction an interface, changed permission requests

This commit is contained in:
Anuken
2018-01-04 14:08:52 -05:00
parent 325453cce0
commit b486570c28
6 changed files with 27 additions and 51 deletions
@@ -5,8 +5,8 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle;
import android.os.Build; import android.os.Build;
import android.os.Bundle;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import com.badlogic.gdx.backends.android.AndroidApplication; import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
@@ -31,12 +31,6 @@ public class AndroidLauncher extends AndroidApplication{
protected void onCreate(Bundle savedInstanceState){ protected void onCreate(Bundle savedInstanceState){
super.onCreate(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(); AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.useImmersiveMode = true; config.useImmersiveMode = true;
@@ -66,12 +60,6 @@ public class AndroidLauncher extends AndroidApplication{
TextFieldDialogListener.add(field); TextFieldDialogListener.add(field);
} }
@Override
public void updateRPC() { }
@Override
public void onGameExit() { }
@Override @Override
public void openDonations() { public void openDonations() {
showDonations(); showDonations();
@@ -80,13 +68,26 @@ public class AndroidLauncher extends AndroidApplication{
@Override @Override
public void requestWritePerms() { public void requestWritePerms() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED &&
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_REQUEST_CODE); 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())){ if(doubleScaleTablets && isTablet(this.getContext())){
Unit.dp.addition = 0.5f; Unit.dp.addition = 0.5f;
} }
+1 -12
View File
@@ -14,24 +14,13 @@ import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Inputs; import io.anuke.ucore.core.Inputs;
import io.anuke.ucore.core.Timers; import io.anuke.ucore.core.Timers;
import io.anuke.ucore.modules.ModuleCore; import io.anuke.ucore.modules.ModuleCore;
import io.anuke.ucore.scene.ui.TextField;
import java.util.Date;
import java.util.Locale; import java.util.Locale;
public class Mindustry extends ModuleCore { public class Mindustry extends ModuleCore {
public static boolean hasDiscord = true; public static boolean hasDiscord = true;
public static Array<String> args = new Array<>(); public static Array<String> args = new Array<>();
public static PlatformFunction platforms = new PlatformFunction(){ 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 OrderedMap<String, Integer> idMap = new OrderedMap<>(); public static OrderedMap<String, Integer> idMap = new OrderedMap<>();
public static boolean externalBundle = false; public static boolean externalBundle = false;
@@ -4,13 +4,13 @@ import io.anuke.ucore.scene.ui.TextField;
import java.util.Date; import java.util.Date;
public interface PlatformFunction{ public abstract class PlatformFunction{
public String format(Date date); public String format(Date date){return "invalid";}
public String format(int number); public String format(int number){return "invalid";}
public void openLink(String link); public void openLink(String link){}
public void addDialog(TextField field); public void addDialog(TextField field){}
public void updateRPC(); public void updateRPC(){}
public void onGameExit(); public void onGameExit(){}
public void openDonations(); public void openDonations(){}
public void requestWritePerms(); public void requestWritePerms(){}
} }
@@ -40,9 +40,7 @@ public class FileChooser extends FloatingDialog{
this.selectListener = result; this.selectListener = result;
setupWidgets(); setupWidgets();
if(!open){ Mindustry.platforms.requestWritePerms();
Mindustry.platforms.requestWritePerms();
}
} }
private void setupWidgets(){ private void setupWidgets(){
@@ -14,7 +14,6 @@ import io.anuke.mindustry.core.GameState;
import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.io.PlatformFunction; import io.anuke.mindustry.io.PlatformFunction;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.ucore.scene.ui.TextField;
import io.anuke.ucore.util.Strings; import io.anuke.ucore.util.Strings;
import javax.swing.*; 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 @Override
public void updateRPC() { public void updateRPC() {
DiscordRichPresence presence = new DiscordRichPresence(); DiscordRichPresence presence = new DiscordRichPresence();
@@ -17,7 +17,6 @@ import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.*; import com.google.gwt.user.client.ui.*;
import io.anuke.mindustry.Mindustry; import io.anuke.mindustry.Mindustry;
import io.anuke.mindustry.io.PlatformFunction; import io.anuke.mindustry.io.PlatformFunction;
import io.anuke.ucore.scene.ui.TextField;
import java.util.Date; import java.util.Date;
@@ -109,12 +108,6 @@ public class HtmlLauncher extends GwtApplication {
public void openLink(String link){ public void openLink(String link){
Window.open(link, "_blank", ""); 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(); return new Mindustry();