80 lines
2.4 KiB
Java
80 lines
2.4 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.support.annotation.NonNull;
|
||
|
import android.support.v4.app.ActivityCompat;
|
||
|
import android.support.v4.content.ContextCompat;;
|
||
|
import android.widget.Toast;
|
||
|
|
||
|
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();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
protected void checkPermission() {
|
||
|
final List<String> missingPermissions = new ArrayList<String>();
|
||
|
// 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[missingPermissions.size()]);
|
||
|
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) {
|
||
|
switch (requestCode) {
|
||
|
case 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();
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void next() {
|
||
|
Intent intent = new Intent(this, MtNativeActivity.class);
|
||
|
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||
|
startActivity(intent);
|
||
|
}
|
||
|
}
|