mirror of
https://github.com/libretro/Play-.git
synced 2025-03-03 16:57:03 +00:00
Android:Added Runtime Permission Request
This commit is contained in:
parent
796c68b44f
commit
f357a24323
@ -3,4 +3,6 @@ package com.virtualapplications.play;
|
||||
public class Constants
|
||||
{
|
||||
public static String TAG = "Play!";
|
||||
public static final int READ_WRITE_PERMISSION = 0;
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.virtualapplications.play;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.*;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.ProgressDialog;
|
||||
@ -10,6 +11,8 @@ import android.graphics.Color;
|
||||
import android.graphics.drawable.GradientDrawable;
|
||||
import android.os.*;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v7.app.*;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
@ -22,11 +25,9 @@ import android.widget.GridView;
|
||||
import android.widget.TextView;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
import java.io.File;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.text.*;
|
||||
import java.util.*;
|
||||
import java.util.zip.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.virtualapplications.play.database.GameIndexer;
|
||||
import com.virtualapplications.play.database.GameInfo;
|
||||
@ -49,8 +50,8 @@ public class MainActivity extends AppCompatActivity implements NavigationDrawerF
|
||||
private int sortMethod = SORT_NONE;
|
||||
private String navSubtitle;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState)
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
super.onCreate(savedInstanceState);
|
||||
//Log.w(Constants.TAG, "MainActivity - onCreate");
|
||||
@ -65,6 +66,37 @@ public class MainActivity extends AppCompatActivity implements NavigationDrawerF
|
||||
setContentView(R.layout.main);
|
||||
}
|
||||
|
||||
// if (isAndroidTV(this)) {
|
||||
// // Load the menus for Android TV
|
||||
// } else {
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
toolbar.bringToFront();
|
||||
setUIcolor();
|
||||
|
||||
mNavigationDrawerFragment = (NavigationDrawerFragment)
|
||||
getFragmentManager().findFragmentById(R.id.navigation_drawer);
|
||||
|
||||
// Set up the drawer.
|
||||
mNavigationDrawerFragment.setUp(
|
||||
R.id.navigation_drawer,
|
||||
(DrawerLayout) findViewById(R.id.drawer_layout));
|
||||
|
||||
int attributeResourceId = getThemeColor(this, R.attr.colorPrimaryDark);
|
||||
findViewById(R.id.navigation_drawer).setBackgroundColor(Color.parseColor(
|
||||
("#" + Integer.toHexString(attributeResourceId)).replace("#ff", "#8e")
|
||||
));
|
||||
// }
|
||||
|
||||
|
||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
|
||||
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, Constants.READ_WRITE_PERMISSION);
|
||||
} else {
|
||||
Startup();
|
||||
}
|
||||
}
|
||||
|
||||
private void Startup() {
|
||||
NativeInterop.setFilesDirPath(Environment.getExternalStorageDirectory().getAbsolutePath());
|
||||
|
||||
EmulatorActivity.RegisterPreferences();
|
||||
@ -74,28 +106,6 @@ public class MainActivity extends AppCompatActivity implements NavigationDrawerF
|
||||
NativeInterop.createVirtualMachine();
|
||||
}
|
||||
|
||||
// if (isAndroidTV(this)) {
|
||||
// // Load the menus for Android TV
|
||||
// } else {
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
toolbar.bringToFront();
|
||||
setUIcolor();
|
||||
|
||||
mNavigationDrawerFragment = (NavigationDrawerFragment)
|
||||
getFragmentManager().findFragmentById(R.id.navigation_drawer);
|
||||
|
||||
// Set up the drawer.
|
||||
mNavigationDrawerFragment.setUp(
|
||||
R.id.navigation_drawer,
|
||||
(DrawerLayout) findViewById(R.id.drawer_layout));
|
||||
|
||||
int attributeResourceId = getThemeColor(this, R.attr.colorPrimaryDark);
|
||||
findViewById(R.id.navigation_drawer).setBackgroundColor(Color.parseColor(
|
||||
("#" + Integer.toHexString(attributeResourceId)).replace("#ff", "#8e")
|
||||
));
|
||||
// }
|
||||
|
||||
gameInfo = new GameInfo(MainActivity.this);
|
||||
getContentResolver().call(Games.GAMES_URI, "importDb", null, null);
|
||||
|
||||
@ -104,6 +114,36 @@ public class MainActivity extends AppCompatActivity implements NavigationDrawerF
|
||||
onNavigationDrawerItemSelected(sortMethod);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
|
||||
switch (requestCode) {
|
||||
case Constants.READ_WRITE_PERMISSION: {
|
||||
// If request is cancelled, the result arrays are empty.
|
||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
Startup();
|
||||
} else {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
|
||||
builder.setTitle("Permission Request");
|
||||
builder.setMessage("Please Grant Permission,\nWithout Read/Write Permission, PLAY! wouldn't be able to find your games or save your progress.");
|
||||
|
||||
builder.setPositiveButton("OK",
|
||||
new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
AlertDialog dialog = builder.create();
|
||||
dialog.show();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setUIcolor(){
|
||||
View content = findViewById(R.id.content_frame) ;
|
||||
if (content != null) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user