DirectoryPartition.java revision d6bba124836ec2f528b329759e38fda6297fec49
1/*
2 * Copyright (C) 2010 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 */
16package com.android.contacts.common.list;
17
18import android.provider.ContactsContract.Directory;
19
20import com.android.common.widget.CompositeCursorAdapter;
21
22/**
23 * Model object for a {@link Directory} row.
24 */
25public final class DirectoryPartition extends CompositeCursorAdapter.Partition {
26
27    public static final int STATUS_NOT_LOADED = 0;
28    public static final int STATUS_LOADING = 1;
29    public static final int STATUS_LOADED = 2;
30
31    private long mDirectoryId;
32    private String mDirectoryType;
33    private String mDisplayName;
34    private int mStatus;
35    private boolean mPriorityDirectory;
36    private boolean mPhotoSupported;
37
38    public DirectoryPartition(boolean showIfEmpty, boolean hasHeader) {
39        super(showIfEmpty, hasHeader);
40    }
41
42    /**
43     * Directory ID, see {@link Directory}.
44     */
45    public long getDirectoryId() {
46        return mDirectoryId;
47    }
48
49    public void setDirectoryId(long directoryId) {
50        this.mDirectoryId = directoryId;
51    }
52
53    /**
54     * Directory type resolved from {@link Directory#PACKAGE_NAME} and
55     * {@link Directory#TYPE_RESOURCE_ID};
56     */
57    public String getDirectoryType() {
58        return mDirectoryType;
59    }
60
61    public void setDirectoryType(String directoryType) {
62        this.mDirectoryType = directoryType;
63    }
64
65    /**
66     * See {@link Directory#DISPLAY_NAME}.
67     */
68    public String getDisplayName() {
69        return mDisplayName;
70    }
71
72    public void setDisplayName(String displayName) {
73        this.mDisplayName = displayName;
74    }
75
76    public int getStatus() {
77        return mStatus;
78    }
79
80    public void setStatus(int status) {
81        mStatus = status;
82    }
83
84    public boolean isLoading() {
85        return mStatus == STATUS_NOT_LOADED || mStatus == STATUS_LOADING;
86    }
87
88    /**
89     * Returns true if this directory should be loaded before non-priority directories.
90     */
91    public boolean isPriorityDirectory() {
92        return mPriorityDirectory;
93    }
94
95    public void setPriorityDirectory(boolean priorityDirectory) {
96        mPriorityDirectory = priorityDirectory;
97    }
98
99    /**
100     * Returns true if this directory supports photos.
101     */
102    public boolean isPhotoSupported() {
103        return mPhotoSupported;
104    }
105
106    public void setPhotoSupported(boolean flag) {
107        this.mPhotoSupported = flag;
108    }
109}
110