mirror of https://github.com/minetest/minetest.git
78 lines
2.3 KiB
Java
78 lines
2.3 KiB
Java
package net.minetest.minetest;
|
|
|
|
import android.Manifest;
|
|
import android.app.Activity;
|
|
import android.content.Intent;
|
|
import android.content.pm.PackageManager;
|
|
import android.os.Build;
|
|
import android.os.Bundle;
|
|
import android.widget.Toast;
|
|
|
|
import androidx.annotation.NonNull;
|
|
import androidx.core.app.ActivityCompat;
|
|
import androidx.core.content.ContextCompat;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
|
|
public class MainActivity extends Activity {
|
|
private final static int PERMISSIONS = 1;
|
|
private static final String[] REQUIRED_SDK_PERMISSIONS = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
|
|
|
@Override
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
|
checkPermission();
|
|
} else {
|
|
next();
|
|
}
|
|
}
|
|
|
|
private void checkPermission() {
|
|
final List<String> missingPermissions = new ArrayList<>();
|
|
// check required permission
|
|
for (final String permission : REQUIRED_SDK_PERMISSIONS) {
|
|
final int result = ContextCompat.checkSelfPermission(this, permission);
|
|
if (result != PackageManager.PERMISSION_GRANTED) {
|
|
missingPermissions.add(permission);
|
|
}
|
|
}
|
|
if (!missingPermissions.isEmpty()) {
|
|
// request permission
|
|
final String[] permissions = missingPermissions
|
|
.toArray(new String[0]);
|
|
ActivityCompat.requestPermissions(this, permissions, PERMISSIONS);
|
|
} else {
|
|
final int[] grantResults = new int[REQUIRED_SDK_PERMISSIONS.length];
|
|
Arrays.fill(grantResults, PackageManager.PERMISSION_GRANTED);
|
|
onRequestPermissionsResult(PERMISSIONS, REQUIRED_SDK_PERMISSIONS,
|
|
grantResults);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
|
|
@NonNull int[] grantResults) {
|
|
if (requestCode == PERMISSIONS) {
|
|
for (int index = 0; index < permissions.length; index++) {
|
|
if (grantResults[index] != PackageManager.PERMISSION_GRANTED) {
|
|
// permission not granted - toast and exit
|
|
Toast.makeText(this, R.string.not_granted, Toast.LENGTH_LONG).show();
|
|
finish();
|
|
return;
|
|
}
|
|
}
|
|
// permission were granted - run
|
|
next();
|
|
}
|
|
}
|
|
|
|
private void next() {
|
|
Intent intent = new Intent(this, MtNativeActivity.class);
|
|
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
|
startActivity(intent);
|
|
}
|
|
}
|