|
@@ -1,8 +1,17 @@
|
|
|
package io.github.sdlpal;
|
|
|
|
|
|
+import android.Manifest;
|
|
|
+import android.content.DialogInterface;
|
|
|
import android.content.Intent;
|
|
|
+import android.content.pm.PackageManager;
|
|
|
import android.os.*;
|
|
|
+import android.support.annotation.NonNull;
|
|
|
+import android.support.v4.app.ActivityCompat;
|
|
|
+import android.support.v4.content.ContextCompat;
|
|
|
+import android.support.v7.app.AlertDialog;
|
|
|
import android.support.v7.app.AppCompatActivity;
|
|
|
+import android.widget.Toast;
|
|
|
+
|
|
|
import java.io.*;
|
|
|
|
|
|
public class MainActivity extends AppCompatActivity {
|
|
@@ -12,10 +21,56 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
|
|
public static boolean crashed = false;
|
|
|
|
|
|
+ private final static int REQUEST_FILESYSTEM_ACCESS_CODE = 101;
|
|
|
+
|
|
|
+ private boolean checkIfAlreadyhavePermission() {
|
|
|
+ int result = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
|
|
+ if (result == PackageManager.PERMISSION_GRANTED) {
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ private void requestForSpecificPermission() {
|
|
|
+ ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_FILESYSTEM_ACCESS_CODE);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
|
|
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
|
+ switch (requestCode) {
|
|
|
+ case REQUEST_FILESYSTEM_ACCESS_CODE:
|
|
|
+ if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
|
|
+ StartGame();
|
|
|
+ } else {
|
|
|
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
|
|
+ builder.setMessage(R.string.toast_requestpermission);
|
|
|
+ builder.setCancelable(false);
|
|
|
+ builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(DialogInterface dialogInterface, int i) {
|
|
|
+ requestForSpecificPermission();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ builder.create().show();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
|
|
+ int MyVersion = Build.VERSION.SDK_INT;
|
|
|
+ if (MyVersion < Build.VERSION_CODES.M || checkIfAlreadyhavePermission())
|
|
|
+ StartGame();
|
|
|
+ else
|
|
|
+ requestForSpecificPermission();
|
|
|
+ }
|
|
|
+
|
|
|
+ public void StartGame() {
|
|
|
+
|
|
|
System.loadLibrary("SDL2");
|
|
|
System.loadLibrary("main");
|
|
|
|