|
1 | 1 | package com.njlabs.showjava.ui; |
2 | 2 |
|
| 3 | +import android.Manifest; |
3 | 4 | import android.annotation.SuppressLint; |
4 | 5 | import android.content.DialogInterface; |
5 | 6 | import android.content.Intent; |
|
14 | 15 | import android.os.Build; |
15 | 16 | import android.os.Bundle; |
16 | 17 | import android.os.Environment; |
| 18 | +import android.support.annotation.NonNull; |
| 19 | +import android.support.v4.app.ActivityCompat; |
| 20 | +import android.support.v4.content.ContextCompat; |
17 | 21 | import android.support.v7.app.AlertDialog; |
18 | 22 | import android.view.View; |
19 | 23 | import android.view.ViewGroup; |
|
23 | 27 | import android.widget.LinearLayout; |
24 | 28 | import android.widget.ListView; |
25 | 29 | import android.widget.TextView; |
| 30 | +import android.widget.Toast; |
26 | 31 |
|
27 | 32 | import com.mikepenz.materialdrawer.Drawer; |
28 | 33 | import com.mikepenz.materialdrawer.DrawerBuilder; |
|
33 | 38 | import com.mikepenz.materialdrawer.model.ProfileDrawerItem; |
34 | 39 | import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem; |
35 | 40 | import com.njlabs.showjava.BuildConfig; |
| 41 | +import com.njlabs.showjava.Constants; |
36 | 42 | import com.njlabs.showjava.R; |
37 | 43 | import com.njlabs.showjava.utils.SourceInfo; |
38 | 44 | import com.njlabs.showjava.utils.Utils; |
@@ -113,11 +119,23 @@ public boolean onItemClick(AdapterView<?> parent, View view, int position, long |
113 | 119 | .withCloseOnClick(true) |
114 | 120 | .build(); |
115 | 121 |
|
| 122 | + if(isMarshmallow()){ |
| 123 | + if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { |
| 124 | + ActivityCompat.requestPermissions(this, new String[]{ Manifest.permission.WRITE_EXTERNAL_STORAGE }, Constants.STORAGE_PERMISSION_REQUEST); |
| 125 | + } else { |
| 126 | + initHistoryLoader(); |
| 127 | + } |
| 128 | + } else { |
| 129 | + initHistoryLoader(); |
| 130 | + } |
| 131 | + |
116 | 132 |
|
| 133 | + } |
| 134 | + |
| 135 | + public void initHistoryLoader(){ |
117 | 136 | HistoryLoader historyLoader = new HistoryLoader(); |
118 | 137 | historyLoader.execute(); |
119 | 138 | } |
120 | | - |
121 | 139 | public void SetupList(List<SourceInfo> AllPackages) { |
122 | 140 |
|
123 | 141 | if (AllPackages.size() < 1) { |
@@ -370,4 +388,19 @@ protected void onProgressUpdate(String... text) { |
370 | 388 | } |
371 | 389 | } |
372 | 390 |
|
| 391 | + @Override |
| 392 | + public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) { |
| 393 | + switch (requestCode) { |
| 394 | + case Constants.STORAGE_PERMISSION_REQUEST: { |
| 395 | + if (grantResults.length > 0 |
| 396 | + && grantResults[0] == PackageManager.PERMISSION_GRANTED) { |
| 397 | + initHistoryLoader(); |
| 398 | + } else { |
| 399 | + Toast.makeText(baseContext, "Storage permission is required to use this app", Toast.LENGTH_LONG).show(); |
| 400 | + finish(); |
| 401 | + } |
| 402 | + } |
| 403 | + |
| 404 | + } |
| 405 | + } |
373 | 406 | } |
0 commit comments