ToastBarOperation.java revision 4f9a4c5ccb1370f583639e763b1c529fe6762271
14f9a4c5ccb1370f583639e763b1c529fe6762271Vikram Aggarwal/*******************************************************************************
24f9a4c5ccb1370f583639e763b1c529fe6762271Vikram Aggarwal *      Copyright (C) 2011 Google Inc.
34f9a4c5ccb1370f583639e763b1c529fe6762271Vikram Aggarwal *      Licensed to The Android Open Source Project.
4fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira *
54f9a4c5ccb1370f583639e763b1c529fe6762271Vikram Aggarwal *      Licensed under the Apache License, Version 2.0 (the "License");
64f9a4c5ccb1370f583639e763b1c529fe6762271Vikram Aggarwal *      you may not use this file except in compliance with the License.
74f9a4c5ccb1370f583639e763b1c529fe6762271Vikram Aggarwal *      You may obtain a copy of the License at
8fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira *
94f9a4c5ccb1370f583639e763b1c529fe6762271Vikram Aggarwal *           http://www.apache.org/licenses/LICENSE-2.0
10fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira *
114f9a4c5ccb1370f583639e763b1c529fe6762271Vikram Aggarwal *      Unless required by applicable law or agreed to in writing, software
124f9a4c5ccb1370f583639e763b1c529fe6762271Vikram Aggarwal *      distributed under the License is distributed on an "AS IS" BASIS,
134f9a4c5ccb1370f583639e763b1c529fe6762271Vikram Aggarwal *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
144f9a4c5ccb1370f583639e763b1c529fe6762271Vikram Aggarwal *      See the License for the specific language governing permissions and
154f9a4c5ccb1370f583639e763b1c529fe6762271Vikram Aggarwal *      limitations under the License.
164f9a4c5ccb1370f583639e763b1c529fe6762271Vikram Aggarwal *******************************************************************************/
1730e2c24b056542f3b1b438aeb798305d1226d0c8Andy Huangpackage com.android.mail;
18fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira
19fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereiraimport android.os.Bundle;
20fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira
21fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereiraimport java.util.Collection;
22fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira
23fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira/**
24fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira * A simple holder class that stores the information to undo the application of a label.
25fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira */
26fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereirapublic class UndoOperation {
27fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira    private static final String ACCOUNT = "undo-account";
28fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira    private static final String DESCRIPTION = "undo-description";
29fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira    private static final String CONVERSATIONS = "undo-conversations";
30fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira
31fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira    public Collection<ConversationInfo> mConversations;
32fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira    public String mDescription;
33fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira    public String mAccount;
34fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira
35fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira    public UndoOperation(String account, Collection<ConversationInfo> conversations,
36fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira            String description) {
37fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira        this(account, conversations, description, true /* undoAction */);
38fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira    }
39fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira
40fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira    /**
41fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira     * Create an UndoOperation
42fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira     * @param account Account that this operation is associated with
43fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira     * @param conversations Collection of ConversationInfo objects that this operation
44fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira     *        should be applied to
45fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira     * @param description Desctiption text that should be shown to the user
46fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira     * @param undoAction  Boolean indicating whether the operations should be reversed
47fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira     *        in order to perform the action.  This is only false when un-marshaling a
48fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira     *        previously existing UndoOperation
49fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira     */
50fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira    private UndoOperation(String account, Collection<ConversationInfo> conversations,
51fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira            String description, boolean undoAction) {
52fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira        mAccount = account;
53fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira        mConversations = conversations;
54fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira        mDescription = description;
55fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira    }
56fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira
57fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira    /**
58fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira     * Save this object into an extra object.
59fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira     */
60fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira    public void saveToExtras(Bundle extras) {
61fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira        extras.putString(ACCOUNT, mAccount);
62fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira        extras.putString(DESCRIPTION, mDescription);
63fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira        extras.putParcelableArray(CONVERSATIONS,
64fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira                mConversations.toArray(new ConversationInfo[mConversations.size()]));
65fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira    }
66fdd984b69cabc5951eec269a23d42898ea70360fMindy Pereira}
67