summaryrefslogtreecommitdiffstats
path: root/src/com/android/email/provider/FolderPickerDialog.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/email/provider/FolderPickerDialog.java')
-rw-r--r--src/com/android/email/provider/FolderPickerDialog.java158
1 files changed, 0 insertions, 158 deletions
diff --git a/src/com/android/email/provider/FolderPickerDialog.java b/src/com/android/email/provider/FolderPickerDialog.java
deleted file mode 100644
index 37a7ed71f..000000000
--- a/src/com/android/email/provider/FolderPickerDialog.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (C) 2012 Google Inc.
- * Licensed to The Android Open Source Project.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.email.provider;
-
-import android.app.AlertDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnCancelListener;
-import android.content.DialogInterface.OnClickListener;
-import android.content.DialogInterface.OnMultiChoiceClickListener;
-import android.database.Cursor;
-import android.net.Uri;
-import android.view.View;
-import android.widget.AdapterView;
-import android.widget.Button;
-
-import com.android.mail.R;
-import com.android.mail.providers.Folder;
-import com.android.mail.providers.UIProvider;
-import com.android.mail.ui.FolderSelectorAdapter;
-import com.android.mail.ui.FolderSelectorAdapter.FolderRow;
-import com.android.mail.ui.SeparatedFolderListAdapter;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map.Entry;
-
-public class FolderPickerDialog implements OnClickListener, OnMultiChoiceClickListener,
- OnCancelListener {
- private final AlertDialog mDialog;
- private final HashMap<Folder, Boolean> mCheckedState;
- private final SeparatedFolderListAdapter mAdapter;
- private final FolderPickerCallback mCallback;
-
- public FolderPickerDialog(final Context context, Uri uri,
- FolderPickerCallback callback, String header, boolean cancelable) {
- mCallback = callback;
- // Mapping of a folder's uri to its checked state
- mCheckedState = new HashMap<Folder, Boolean>();
- AlertDialog.Builder builder = new AlertDialog.Builder(context);
- builder.setTitle(header);
- builder.setPositiveButton(R.string.ok, this);
- builder.setCancelable(cancelable);
- builder.setOnCancelListener(this);
- // TODO: Do this on a background thread
- final Cursor foldersCursor = context.getContentResolver().query(
- uri, UIProvider.FOLDERS_PROJECTION, null, null, null);
- try {
- mAdapter = new SeparatedFolderListAdapter();
- mAdapter.addSection(new FolderPickerSelectorAdapter(context, foldersCursor,
- new HashSet<String>(), R.layout.multi_folders_view));
- builder.setAdapter(mAdapter, this);
- } finally {
- foldersCursor.close();
- }
- mDialog = builder.create();
- }
-
- public void show() {
- mDialog.show();
- mDialog.getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- 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);
- }
- }
-
- /**
- * Call this to update the state of folders as a result of them being
- * selected / de-selected.
- *
- * @param row The item being updated.
- */
- public void update(FolderSelectorAdapter.FolderRow row) {
- // Update the UI
- final boolean add = !row.isSelected();
- if (!add) {
- // This would remove the check on a single radio button, so just
- // return.
- return;
- }
- // Clear any other checked items.
- mAdapter.getCount();
- for (int i = 0; i < mAdapter.getCount(); i++) {
- Object item = mAdapter.getItem(i);
- if (item instanceof FolderRow) {
- ((FolderRow)item).setIsSelected(false);
- }
- }
- mCheckedState.clear();
- row.setIsSelected(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
- public void onClick(DialogInterface dialog, int which) {
- switch (which) {
- case DialogInterface.BUTTON_POSITIVE:
- Folder folder = null;
- for (Entry<Folder, Boolean> entry : mCheckedState.entrySet()) {
- if (entry.getValue()) {
- folder = entry.getKey();
- break;
- }
- }
- mCallback.select(folder);
- break;
- default:
- onClick(dialog, which, true);
- break;
- }
- }
-
- @Override
- public void onClick(DialogInterface dialog, int which, boolean isChecked) {
- final FolderRow row = (FolderRow) mAdapter.getItem(which);
- // Clear any other checked items.
- mCheckedState.clear();
- isChecked = true;
- mCheckedState.put(row.getFolder(), isChecked);
- mDialog.getListView().setItemChecked(which, false);
- }
-
- @Override
- public void onCancel(DialogInterface dialog) {
- mCallback.cancel();
- }
-}