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);