package com.stfalcon.frescoimageviewersample.utils; import android.content.Context; import android.content.DialogInterface; import android.support.v7.app.AlertDialog; import com.stfalcon.frescoimageviewersample.R; import java.util.Collection; import java.util.Map; import java.util.TreeMap; /* * Created by troy379 on 10.03.17. */ public class StylingOptions { private Map<Property, Boolean> options = new TreeMap<Property, Boolean>() {{ put(Property.HIDE_STATUS_BAR, true); put(Property.IMAGE_MARGIN, true); put(Property.CONTAINER_PADDING, false); put(Property.IMAGES_ROUNDING, false); put(Property.SWIPE_TO_DISMISS, true); put(Property.ZOOMING, true); put(Property.SHOW_OVERLAY, true); put(Property.RANDOM_BACKGROUND, false); put(Property.POST_PROCESSING, false); }}; public boolean get(Property property) { return options.get(property); } public void showDialog(Context context) { AlertDialog dialog = new AlertDialog.Builder(context) .setMultiChoiceItems( context.getResources().getStringArray(R.array.options), toPrimitiveBooleanArray(options.values()), new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int indexSelected, boolean isChecked) { options.put(Property.values()[indexSelected], isChecked); } }).create(); dialog.show(); } public enum Property { HIDE_STATUS_BAR, IMAGE_MARGIN, CONTAINER_PADDING, IMAGES_ROUNDING, SWIPE_TO_DISMISS, ZOOMING, SHOW_OVERLAY, RANDOM_BACKGROUND, POST_PROCESSING } private static boolean[] toPrimitiveBooleanArray(Collection<Boolean> collection) { boolean[] array = new boolean[collection.size()]; int i = 0; for (Boolean value : collection) { array[i] = value; i++; } return array; } }