Mercurial > 510Connectbot
comparison 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 |
comparison
equal
deleted
inserted
replaced
464:3ebfae9bc0bd | 465:7c8aebcc882a |
---|---|
68 import android.widget.ArrayAdapter; | 68 import android.widget.ArrayAdapter; |
69 import android.widget.ImageView; | 69 import android.widget.ImageView; |
70 import android.widget.ListView; | 70 import android.widget.ListView; |
71 import android.widget.Spinner; | 71 import android.widget.Spinner; |
72 import android.widget.TextView; | 72 import android.widget.TextView; |
73 import android.content.pm.PackageManager; | |
74 import android.os.Build; | |
75 import android.Manifest; | |
76 import android.support.v4.app.ActivityCompat; | |
77 import android.support.v4.content.ContextCompat; | |
73 | 78 |
74 public class HostListActivity extends ListActivity { | 79 public class HostListActivity extends ListActivity { |
75 protected static final String TAG = "ConnectBot.HostListActivity"; | 80 protected static final String TAG = "ConnectBot.HostListActivity"; |
76 public final static int REQUEST_EDIT = 1; | 81 public final static int REQUEST_EDIT = 1; |
77 public final static int REQUEST_EULA = 2; | 82 public final static int REQUEST_EULA = 2; |
165 setContentView(R.layout.act_hostlist); | 170 setContentView(R.layout.act_hostlist); |
166 this.setTitle(String.format("%s: %s", | 171 this.setTitle(String.format("%s: %s", |
167 getResources().getText(R.string.app_name), | 172 getResources().getText(R.string.app_name), |
168 getResources().getText(R.string.title_hosts_list))); | 173 getResources().getText(R.string.title_hosts_list))); |
169 this.prefs = PreferenceManager.getDefaultSharedPreferences(this); | 174 this.prefs = PreferenceManager.getDefaultSharedPreferences(this); |
175 | |
176 // ask for permissions, must match AndroidManifest.xml | |
177 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { | |
178 String [] perms = {Manifest.permission.INTERNET, | |
179 Manifest.permission.ACCESS_NETWORK_STATE, | |
180 Manifest.permission.WAKE_LOCK, | |
181 Manifest.permission.WRITE_EXTERNAL_STORAGE}; | |
182 checkp(perms); | |
183 } | |
170 | 184 |
171 // detect HTC Dream and apply special preferences | 185 // detect HTC Dream and apply special preferences |
172 if (Build.MANUFACTURER.equals("HTC") && Build.DEVICE.equals("dream")) { | 186 if (Build.MANUFACTURER.equals("HTC") && Build.DEVICE.equals("dream")) { |
173 if (!prefs.contains(PreferenceConstants.SHIFT_FKEYS) && | 187 if (!prefs.contains(PreferenceConstants.SHIFT_FKEYS) && |
174 !prefs.contains(PreferenceConstants.CTRL_FKEYS)) { | 188 !prefs.contains(PreferenceConstants.CTRL_FKEYS)) { |
248 } | 262 } |
249 public void onNothingSelected(AdapterView<?> arg0) { } | 263 public void onNothingSelected(AdapterView<?> arg0) { } |
250 }); | 264 }); |
251 transportSpinner.setAdapter(transportSelection); | 265 transportSpinner.setAdapter(transportSelection); |
252 this.inflater = LayoutInflater.from(this); | 266 this.inflater = LayoutInflater.from(this); |
267 } | |
268 | |
269 public void checkp(String [] perms) { | |
270 boolean need = false; | |
271 for (String perm : perms) { | |
272 if (ContextCompat.checkSelfPermission(this, perm) != PackageManager.PERMISSION_GRANTED) { | |
273 need = true; | |
274 } | |
275 } | |
276 if (need) ActivityCompat.requestPermissions(this, perms, 1); | |
253 } | 277 } |
254 | 278 |
255 @Override | 279 @Override |
256 public boolean onPrepareOptionsMenu(Menu menu) { | 280 public boolean onPrepareOptionsMenu(Menu menu) { |
257 super.onPrepareOptionsMenu(menu); | 281 super.onPrepareOptionsMenu(menu); |