Home | History | Annotate | Download | only in list
      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  */
     16 package com.android.contacts.list;
     17 
     18 import android.provider.ContactsContract.Directory;
     19 
     20 import com.android.common.widget.CompositeCursorAdapter;
     21 
     22 /**
     23  * Model object for a {@link Directory} row.
     24  */
     25 public 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