mirror of
https://github.com/moparisthebest/k-9
synced 2024-11-28 04:02:19 -05:00
85 lines
2.0 KiB
Java
85 lines
2.0 KiB
Java
package com.fsck.k9.preferences;
|
|
|
|
import android.app.AlertDialog.Builder;
|
|
import android.content.Context;
|
|
import android.content.DialogInterface;
|
|
import android.preference.DialogPreference;
|
|
import android.util.AttributeSet;
|
|
|
|
public class CheckBoxListPreference extends DialogPreference
|
|
{
|
|
|
|
private CharSequence[] mItems;
|
|
|
|
private boolean[] mCheckedItems;
|
|
|
|
/**
|
|
* checkboxes state when the dialog is displayed
|
|
*/
|
|
private boolean[] mPendingItems;
|
|
|
|
/**
|
|
* @param context
|
|
* @param attrs
|
|
* @param defStyle
|
|
*/
|
|
public CheckBoxListPreference(Context context, AttributeSet attrs, int defStyle)
|
|
{
|
|
super(context, attrs, defStyle);
|
|
}
|
|
|
|
/**
|
|
* @param context
|
|
* @param attrs
|
|
*/
|
|
public CheckBoxListPreference(Context context, AttributeSet attrs)
|
|
{
|
|
super(context, attrs);
|
|
}
|
|
|
|
@Override
|
|
protected void onPrepareDialogBuilder(final Builder builder)
|
|
{
|
|
mPendingItems = new boolean[mItems.length];
|
|
|
|
System.arraycopy(mCheckedItems, 0, mPendingItems, 0, mCheckedItems.length);
|
|
|
|
builder.setMultiChoiceItems(mItems, mPendingItems,
|
|
new DialogInterface.OnMultiChoiceClickListener()
|
|
{
|
|
@Override
|
|
public void onClick(final DialogInterface dialog, final int which,
|
|
final boolean isChecked)
|
|
{
|
|
mPendingItems[which] = isChecked;
|
|
}
|
|
});
|
|
}
|
|
|
|
@Override
|
|
protected void onDialogClosed(boolean positiveResult)
|
|
{
|
|
if (positiveResult)
|
|
{
|
|
System.arraycopy(mPendingItems, 0, mCheckedItems, 0, mPendingItems.length);
|
|
}
|
|
mPendingItems = null;
|
|
}
|
|
|
|
public void setItems(final CharSequence[] items)
|
|
{
|
|
mItems = items;
|
|
}
|
|
|
|
public void setCheckedItems(final boolean[] items)
|
|
{
|
|
mCheckedItems = items;
|
|
}
|
|
|
|
public boolean[] getCheckedItems()
|
|
{
|
|
return mCheckedItems;
|
|
}
|
|
|
|
}
|