1/*
2 * Copyright (C) 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.mail.drawer;
18
19import android.view.View;
20import android.view.ViewGroup;
21
22import com.android.mail.R;
23import com.android.mail.providers.Folder;
24import com.android.mail.ui.ControllableActivity;
25import com.android.mail.ui.FolderItemView;
26import com.android.mail.utils.FolderUri;
27
28class FolderDrawerItem extends DrawerItem {
29    FolderDrawerItem(ControllableActivity activity, Folder folder,
30            @DrawerItemCategory int folderCategory) {
31        super(activity, folder,  folderCategory, null);
32    }
33
34    @Override
35    public String toString() {
36        return "[DrawerItem VIEW_FOLDER, mFolder=" + mFolder + ", mItemCategory=" +
37                mItemCategory + "]";
38    }
39
40    /**
41     * Return a folder: either a parent folder or a normal (child or flat)
42     * folder.
43     *
44     * @param convertView a view, possibly null, to be recycled.
45     * @return a view showing a folder at the given position.
46     */
47    @Override
48    public View getView(View convertView, ViewGroup parent) {
49        final FolderItemView folderItemView;
50        if (convertView != null) {
51            folderItemView = (FolderItemView) convertView;
52        } else {
53            folderItemView =
54                    (FolderItemView) mInflater.inflate(R.layout.folder_item, parent, false);
55        }
56        folderItemView.bind(mFolder, null /* parentUri */);
57        folderItemView.setIcon(mFolder);
58        return folderItemView;
59    }
60
61    @Override
62    public boolean isHighlighted(FolderUri currentFolder, int currentType) {
63        // True if folder types and URIs are the same
64        if (currentFolder != null && mFolder != null && mFolder.folderUri != null) {
65            return (mItemCategory == currentType) && mFolder.folderUri.equals(currentFolder);
66        }
67        return false;
68    }
69
70    @Override
71    public boolean isItemEnabled() {
72        return true;
73    }
74
75    @Override
76    public @DrawerItemType int getType() {
77        return VIEW_FOLDER;
78    }
79}
80