Mercurial > 510Connectbot
diff app/src/main/java/com/five_ten_sg/connectbot/HostListActivity.java @ 465:7c8aebcc882a
request permissions if not already granted
author | Carl Byington <carl@five-ten-sg.com> |
---|---|
date | Mon, 19 Aug 2019 11:12:40 -0700 |
parents | 105815cce146 |
children | 12e2d9dd95df |
line wrap: on
line diff
--- a/app/src/main/java/com/five_ten_sg/connectbot/HostListActivity.java Sun Apr 28 18:26:39 2019 -0700 +++ b/app/src/main/java/com/five_ten_sg/connectbot/HostListActivity.java Mon Aug 19 11:12:40 2019 -0700 @@ -70,6 +70,11 @@ import android.widget.ListView; import android.widget.Spinner; import android.widget.TextView; +import android.content.pm.PackageManager; +import android.os.Build; +import android.Manifest; +import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; public class HostListActivity extends ListActivity { protected static final String TAG = "ConnectBot.HostListActivity"; @@ -168,6 +173,15 @@ getResources().getText(R.string.title_hosts_list))); this.prefs = PreferenceManager.getDefaultSharedPreferences(this); + // ask for permissions, must match AndroidManifest.xml + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + String [] perms = {Manifest.permission.INTERNET, + Manifest.permission.ACCESS_NETWORK_STATE, + Manifest.permission.WAKE_LOCK, + Manifest.permission.WRITE_EXTERNAL_STORAGE}; + checkp(perms); + } + // detect HTC Dream and apply special preferences if (Build.MANUFACTURER.equals("HTC") && Build.DEVICE.equals("dream")) { if (!prefs.contains(PreferenceConstants.SHIFT_FKEYS) && @@ -252,6 +266,16 @@ this.inflater = LayoutInflater.from(this); } + public void checkp(String [] perms) { + boolean need = false; + for (String perm : perms) { + if (ContextCompat.checkSelfPermission(this, perm) != PackageManager.PERMISSION_GRANTED) { + need = true; + } + } + if (need) ActivityCompat.requestPermissions(this, perms, 1); + } + @Override public boolean onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu);