Skip to content

Commit

Permalink
Processing storage permissions at startup
Browse files Browse the repository at this point in the history
  • Loading branch information
mike-lambert committed Dec 2, 2018
1 parent 7a499d7 commit 154e1bc
Showing 1 changed file with 29 additions and 8 deletions.
37 changes: 29 additions & 8 deletions mobile/iitcm/src/main/java/com/cradle/iitc_mobile/IITC_Mobile.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.cradle.iitc_mobile;

import android.Manifest;
import android.app.ActionBar;
import android.app.AlertDialog;
import android.app.DownloadManager;
Expand All @@ -24,6 +25,7 @@
import android.os.Handler;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.SearchView;
Expand Down Expand Up @@ -68,6 +70,7 @@
public class IITC_Mobile extends AppCompatActivity
implements OnSharedPreferenceChangeListener, NfcAdapter.CreateNdefMessageCallback, OnItemLongClickListener {
private static final String mIntelUrl = "https://intel.ingress.com/intel";
private static final int REQ_PERMISSIONS_STORAGE = 0x0000FF02;

private SharedPreferences mSharedPrefs;
private IITC_FileManager mFileManager;
Expand Down Expand Up @@ -111,7 +114,7 @@ protected void onCreate(final Bundle savedInstanceState) {
// enable progress bar above action bar
// must be called BEFORE calling parent method
requestWindowFeature(Window.FEATURE_PROGRESS);

requestStoragePermissions();
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);
Expand Down Expand Up @@ -196,6 +199,15 @@ public boolean onEditorAction(final TextView v, final int actionId, final KeyEve
handleIntent(getIntent(), true);
}

private void requestStoragePermissions() {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED ||
ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQ_PERMISSIONS_STORAGE);
}
}

@Override
public void onSharedPreferenceChanged(final SharedPreferences sharedPreferences, final String key) {
if (key.equals("pref_force_desktop")) {
Expand Down Expand Up @@ -1031,16 +1043,25 @@ public boolean onMenuItemClick(final MenuItem menuitem) {
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == IITC_UserLocation.REQ_PERMISSIONS_LOCATION && mUserLocation != null) {
int grantedCount = 0;
for (int i = 0; i < grantResults.length; i++) {
if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
grantedCount++;
}
}
if (grantedCount > 0) {
if (grantedCount(grantResults) > 0) {
mUserLocation.onRuntimePermissionsGranted();
}
}
if (requestCode == REQ_PERMISSIONS_STORAGE) {
if (grantedCount(grantResults) > 0) {
Toast.makeText(this, "Storage permissions acquired", Toast.LENGTH_SHORT).show();
}
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}

private int grantedCount(int[] grantResults) {
int grantedCount = 0;
for (int i = 0; i < grantResults.length; i++) {
if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
grantedCount++;
}
}
return grantedCount;
}
}

0 comments on commit 154e1bc

Please sign in to comment.