1 /*
2 * Copyright (C) 2014 Samsung System LSI
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *      http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15 
16 package com.android.bluetooth.map;
17 
18 import android.graphics.drawable.Drawable;
19 import android.util.Log;
20 
21 /**
22  * Class to contain all the info about the items of the Map Email Settings Menu.
23  * It can be used for both Email Apps (group Parent item) and Accounts (Group child Item).
24  *
25  */
26 public class BluetoothMapEmailSettingsItem implements Comparable<BluetoothMapEmailSettingsItem>{
27     private static final String TAG = "BluetoothMapEmailSettingsItem";
28 
29     private static final boolean D = BluetoothMapService.DEBUG;
30     private static final boolean V = BluetoothMapService.VERBOSE;
31 
32     protected boolean mIsChecked;
33     private String mName;
34     private String mPackageName;
35     private String mId;
36     private String mProviderAuthority;
37     private Drawable mIcon;
38     public String mBase_uri;
39     public String mBase_uri_no_account;
BluetoothMapEmailSettingsItem(String id, String name, String packageName, String authority, Drawable icon)40     public BluetoothMapEmailSettingsItem(String id, String name, String packageName, String authority, Drawable icon) {
41         this.mName = name;
42         this.mIcon = icon;
43         this.mPackageName = packageName;
44         this.mId = id;
45         this.mProviderAuthority = authority;
46         this.mBase_uri_no_account = "content://" + authority;
47         this.mBase_uri = mBase_uri_no_account + "/"+id;
48     }
49 
getAccountId()50     public long getAccountId() {
51         if(mId != null) {
52             return Long.parseLong(mId);
53         }
54         return -1;
55     }
56 
57     @Override
compareTo(BluetoothMapEmailSettingsItem other)58     public int compareTo(BluetoothMapEmailSettingsItem other) {
59 
60         if(!other.mId.equals(this.mId)){
61             if(V) Log.d(TAG, "Wrong id : " + this.mId + " vs " + other.mId);
62             return -1;
63         }
64         if(!other.mName.equals(this.mName)){
65             if(V) Log.d(TAG, "Wrong name : " + this.mName + " vs " + other.mName);
66             return -1;
67         }
68         if(!other.mPackageName.equals(this.mPackageName)){
69             if(V) Log.d(TAG, "Wrong packageName : " + this.mPackageName + " vs " + other.mPackageName);
70              return -1;
71         }
72         if(!other.mProviderAuthority.equals(this.mProviderAuthority)){
73             if(V) Log.d(TAG, "Wrong providerName : " + this.mProviderAuthority + " vs " + other.mProviderAuthority);
74             return -1;
75         }
76         if(other.mIsChecked != this.mIsChecked){
77             if(V) Log.d(TAG, "Wrong isChecked : " + this.mIsChecked + " vs " + other.mIsChecked);
78             return -1;
79         }
80         return 0;
81     }
82 
83     @Override
hashCode()84     public int hashCode() {
85         final int prime = 31;
86         int result = 1;
87         result = prime * result + ((mId == null) ? 0 : mId.hashCode());
88         result = prime * result + ((mName == null) ? 0 : mName.hashCode());
89         result = prime * result
90                 + ((mPackageName == null) ? 0 : mPackageName.hashCode());
91         result = prime * result
92                 + ((mProviderAuthority == null) ? 0 : mProviderAuthority.hashCode());
93         return result;
94     }
95 
96     @Override
equals(Object obj)97     public boolean equals(Object obj) {
98         if (this == obj)
99             return true;
100         if (obj == null)
101             return false;
102         if (getClass() != obj.getClass())
103             return false;
104         BluetoothMapEmailSettingsItem other = (BluetoothMapEmailSettingsItem) obj;
105         if (mId == null) {
106             if (other.mId != null)
107                 return false;
108         } else if (!mId.equals(other.mId))
109             return false;
110         if (mName == null) {
111             if (other.mName != null)
112                 return false;
113         } else if (!mName.equals(other.mName))
114             return false;
115         if (mPackageName == null) {
116             if (other.mPackageName != null)
117                 return false;
118         } else if (!mPackageName.equals(other.mPackageName))
119             return false;
120         if (mProviderAuthority == null) {
121             if (other.mProviderAuthority != null)
122                 return false;
123         } else if (!mProviderAuthority.equals(other.mProviderAuthority))
124             return false;
125         return true;
126     }
127 
128     @Override
toString()129     public String toString() {
130         return mName + " (" + mBase_uri + ")";
131     }
132 
getIcon()133     public Drawable getIcon() {
134         return mIcon;
135     }
136 
setIcon(Drawable icon)137     public void setIcon(Drawable icon) {
138         this.mIcon = icon;
139     }
140 
getName()141     public String getName() {
142         return mName;
143     }
144 
setName(String name)145     public void setName(String name) {
146         this.mName = name;
147     }
148 
getId()149     public String getId() {
150         return mId;
151     }
152 
setId(String id)153     public void setId(String id) {
154         this.mId = id;
155     }
156 
getPackageName()157     public String getPackageName() {
158         return mPackageName;
159     }
160 
setPackageName(String packageName)161     public void setPackageName(String packageName) {
162         this.mPackageName = packageName;
163     }
164 
getProviderAuthority()165     public String getProviderAuthority() {
166         return mProviderAuthority;
167     }
168 
setProviderAuthority(String providerAuthority)169     public void setProviderAuthority(String providerAuthority) {
170         this.mProviderAuthority = providerAuthority;
171     }
172 }