Fix NPE when proceeding without selecting trash folder

Bug: 6948677
Change-Id: Iac846a8c4e992a02f5f5974ac623a99bee218b13
This commit is contained in:
Paul Westbrook 2012-08-07 23:50:38 -07:00
parent 532bcf4a52
commit 9439595e58
1 changed files with 16 additions and 5 deletions

View File

@ -25,6 +25,7 @@ import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.database.Cursor;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import com.android.mail.R;
import com.android.mail.providers.Account;
@ -40,10 +41,10 @@ import java.util.HashSet;
import java.util.Map.Entry;
public class FolderSelectionDialog implements OnClickListener, OnMultiChoiceClickListener {
private AlertDialog mDialog;
private HashMap<Folder, Boolean> mCheckedState;
private SeparatedFolderListAdapter mAdapter;
final private FolderPickerCallback mCallback;
private final AlertDialog mDialog;
private final HashMap<Folder, Boolean> mCheckedState;
private final SeparatedFolderListAdapter mAdapter;
private final FolderPickerCallback mCallback;
public FolderSelectionDialog(final Context context, Account account,
FolderPickerCallback callback, int headerId) {
@ -75,12 +76,18 @@ public class FolderSelectionDialog implements OnClickListener, OnMultiChoiceClic
mDialog.getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Object item = mAdapter.getItem(position);
final Object item = mAdapter.getItem(position);
if (item instanceof FolderRow) {
update((FolderRow) item);
}
}
});
final Button button = mDialog.getButton(AlertDialog.BUTTON_POSITIVE);
if (mCheckedState.size() == 0) {
// No items are selected, so disable the OK button.
button.setEnabled(false);
}
}
/**
@ -109,6 +116,10 @@ public class FolderSelectionDialog implements OnClickListener, OnMultiChoiceClic
row.setIsPresent(add);
mAdapter.notifyDataSetChanged();
mCheckedState.put(row.getFolder(), add);
// Since we know that an item is selected in the list, enable the OK button
final Button button = mDialog.getButton(AlertDialog.BUTTON_POSITIVE);
button.setEnabled(true);
}
@Override