9
9
import android .graphics .Bitmap ;
10
10
import android .os .Bundle ;
11
11
import android .provider .MediaStore ;
12
+ import android .support .annotation .NonNull ;
12
13
import android .support .v4 .app .ActivityCompat ;
13
14
import android .support .v4 .content .ContextCompat ;
14
15
import android .support .v7 .app .AlertDialog ;
@@ -38,6 +39,7 @@ public class MainActivity extends AppCompatActivity {
38
39
private CheckBox randomColoringCheckbox ;
39
40
private CheckBox customPaletteCheckbox ;
40
41
private Palette customPalette ;
42
+ private final int PERMISSION_CODE = 69 ;
41
43
public static final String PALETTE_COLOR_ARRAY = "Palette Color Array" ;
42
44
43
45
@ Override
@@ -57,7 +59,7 @@ protected void onCreate(Bundle savedInstanceState) {
57
59
varianceSeekBar .setOnSeekBarChangeListener (new SeekBar .OnSeekBarChangeListener () {
58
60
@ Override
59
61
public void onProgressChanged (SeekBar seekBar , int progress , boolean fromUser ) {
60
- trianglifyView .setVariance (progress + 1 );
62
+ trianglifyView .setVariance (progress + 1 );
61
63
trianglifyView .smartUpdate ();
62
64
}
63
65
@@ -80,7 +82,7 @@ public void onStopTrackingTouch(SeekBar seekBar) {
80
82
cellSizeSeekBar .setOnSeekBarChangeListener (new SeekBar .OnSeekBarChangeListener () {
81
83
@ Override
82
84
public void onProgressChanged (SeekBar seekBar , int progress , boolean fromUser ) {
83
- trianglifyView .setCellSize (progress + 100 );
85
+ trianglifyView .setCellSize (progress + 100 );
84
86
trianglifyView .smartUpdate ();
85
87
}
86
88
@@ -201,7 +203,7 @@ public void randomizeTrianglifyParameters(TrianglifyView trianglifyView) {
201
203
.setDrawStrokeEnabled (rnd .nextInt (2 ) == 0 )
202
204
.setVariance (rnd .nextInt (60 ));
203
205
204
- if ( !trianglifyView .isFillTriangle () && !trianglifyView .isDrawStrokeEnabled ()) {
206
+ if (!trianglifyView .isFillTriangle () && !trianglifyView .isDrawStrokeEnabled ()) {
205
207
trianglifyView .setDrawStrokeEnabled (true );
206
208
trianglifyView .setFillTriangle (true );
207
209
}
@@ -268,7 +270,13 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
268
270
269
271
private void exportImage () {
270
272
// Checks if permission is required for android version > 6
271
- if (askForWritePermission () == 0 ) {
273
+ if (ContextCompat .checkSelfPermission (this ,
274
+ Manifest .permission .WRITE_EXTERNAL_STORAGE )
275
+ != PackageManager .PERMISSION_GRANTED ) {
276
+ ActivityCompat .requestPermissions (this ,
277
+ new String []{Manifest .permission .WRITE_EXTERNAL_STORAGE },
278
+ PERMISSION_CODE );
279
+ } else {
272
280
Bitmap bitmap = trianglifyView .getBitmap ();
273
281
if (bitmap != null ) {
274
282
addImageToGallery (bitmap , this );
@@ -277,10 +285,9 @@ private void exportImage() {
277
285
Toast .makeText (this , "Unable to generate image, please try again" ,
278
286
Toast .LENGTH_LONG ).show ();
279
287
}
280
- } else {
281
- Toast .makeText (this , "Storage access failed, check permission" ,
282
- Toast .LENGTH_LONG ).show ();
283
288
}
289
+
290
+
284
291
}
285
292
286
293
public static void addImageToGallery (Bitmap bitmap , Context context ) {
@@ -293,13 +300,7 @@ public static void addImageToGallery(Bitmap bitmap, Context context) {
293
300
*/
294
301
public int askForWritePermission () {
295
302
int result = 0 ;
296
- if (ContextCompat .checkSelfPermission (this ,
297
- Manifest .permission .WRITE_EXTERNAL_STORAGE )
298
- != PackageManager .PERMISSION_GRANTED ) {
299
- ActivityCompat .requestPermissions (this ,
300
- new String []{Manifest .permission .WRITE_EXTERNAL_STORAGE },
301
- result );
302
- }
303
+
303
304
return result ;
304
305
}
305
306
@@ -328,4 +329,20 @@ public void onClick(DialogInterface dialog, int which) {
328
329
329
330
alertDgBuilder .create ().show ();
330
331
}
332
+
333
+ @ Override
334
+ public void onRequestPermissionsResult (int requestCode ,
335
+ @ NonNull String permissions [], @ NonNull int [] grantResults ) {
336
+ switch (requestCode ) {
337
+ case PERMISSION_CODE :
338
+ if (grantResults .length > 0
339
+ && grantResults [0 ] == PackageManager .PERMISSION_GRANTED ) {
340
+ exportImage ();
341
+ } else {
342
+ Toast .makeText (this , "Storage access failed, check permission" ,
343
+ Toast .LENGTH_LONG ).show ();
344
+ }
345
+ break ;
346
+ }
347
+ }
331
348
}
0 commit comments