diff options
author | Scott Jackson <daneren2005@gmail.com> | 2016-09-01 16:28:48 -0700 |
---|---|---|
committer | Scott Jackson <daneren2005@gmail.com> | 2016-09-01 16:28:48 -0700 |
commit | d3cd581edd08ba9811aa4f87362ea81a02fe11db (patch) | |
tree | 434ca996c0bb21ec3005ecea064e5bdcf81cb2da /app/src/main/java/github/daneren2005/dsub/activity | |
parent | d8c5a9f8b4b58489e113c637d358ba64df899a42 (diff) | |
download | dsub-d3cd581edd08ba9811aa4f87362ea81a02fe11db.tar.gz dsub-d3cd581edd08ba9811aa4f87362ea81a02fe11db.tar.bz2 dsub-d3cd581edd08ba9811aa4f87362ea81a02fe11db.zip |
Fixes #732: Add support for runtime permissions
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/activity')
-rw-r--r-- | app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java index ab846ba0..d987f403 100644 --- a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java +++ b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java @@ -32,12 +32,15 @@ import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.support.design.widget.NavigationView; +import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; +import android.support.v7.app.AppCompatDelegate; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.KeyEvent; @@ -81,6 +84,8 @@ import github.daneren2005.dsub.util.Util; import github.daneren2005.dsub.view.UpdateView; import github.daneren2005.dsub.util.UserUtil; +import static android.Manifest.*; + public class SubsonicActivity extends AppCompatActivity implements OnItemSelectedListener { private static final String TAG = SubsonicActivity.class.getSimpleName(); private static ImageLoader IMAGE_LOADER; @@ -89,6 +94,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte protected static boolean actionbarColored; private static final int MENU_GROUP_SERVER = 10; private static final int MENU_ITEM_SERVER_BASE = 100; + private static final int PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE = 1; private final List<Runnable> afterServiceAvailable = new ArrayList<>(); private boolean drawerIdle = true; @@ -165,6 +171,25 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte }; Util.getPreferences(this).registerOnSharedPreferenceChangeListener(preferencesListener); } + + if (ContextCompat.checkSelfPermission(this, permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(this, new String[]{ permission.WRITE_EXTERNAL_STORAGE }, PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE); + } + } + + @Override + public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { + switch (requestCode) { + case PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE: { + // If request is cancelled, the result arrays are empty. + if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + + } else { + Util.toast(this, R.string.permission_external_storage_failed); + finish(); + } + } + } } @Override |