1 package com.android.wallpaperpicker.common; 2 3 import android.app.AlertDialog; 4 import android.content.Context; 5 import android.content.DialogInterface; 6 import android.os.AsyncTask; 7 8 import com.android.wallpaperpicker.R; 9 10 /** 11 * Utility class used to show dialogs for things like picking which wallpaper to set. 12 */ 13 public class DialogUtils { 14 /** 15 * Calls cropTask.execute(), once the user has selected which wallpaper to set. On pre-N 16 * devices, the prompt is not displayed since there is no API to set the lockscreen wallpaper. 17 * 18 * TODO: Don't use CropAndSetWallpaperTask on N+, because the new API will handle cropping instead. 19 */ executeCropTaskAfterPrompt( Context context, final AsyncTask<Integer, ?, ?> cropTask, DialogInterface.OnCancelListener onCancelListener)20 public static void executeCropTaskAfterPrompt( 21 Context context, final AsyncTask<Integer, ?, ?> cropTask, 22 DialogInterface.OnCancelListener onCancelListener) { 23 if (Utilities.isAtLeastN()) { 24 new AlertDialog.Builder(context) 25 .setTitle(R.string.wallpaper_instructions) 26 .setItems(R.array.which_wallpaper_options, new DialogInterface.OnClickListener() { 27 @Override 28 public void onClick(DialogInterface dialog, int selectedItemIndex) { 29 int whichWallpaper; 30 if (selectedItemIndex == 0) { 31 whichWallpaper = WallpaperManagerCompat.FLAG_SET_SYSTEM; 32 } else if (selectedItemIndex == 1) { 33 whichWallpaper = WallpaperManagerCompat.FLAG_SET_LOCK; 34 } else { 35 whichWallpaper = WallpaperManagerCompat.FLAG_SET_SYSTEM 36 | WallpaperManagerCompat.FLAG_SET_LOCK; 37 } 38 cropTask.execute(whichWallpaper); 39 } 40 }) 41 .setOnCancelListener(onCancelListener) 42 .show(); 43 } else { 44 cropTask.execute(WallpaperManagerCompat.FLAG_SET_SYSTEM); 45 } 46 } 47 } 48