• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 BluetoothMapAccountItem implements Comparable<BluetoothMapAccountItem>{
27      private static final String TAG = "BluetoothMapAccountItem";
28  
29      private static final boolean D = BluetoothMapService.DEBUG;
30      private static final boolean V = BluetoothMapService.VERBOSE;
31  
32      protected boolean mIsChecked;
33      private final String mName;
34      private final String mPackageName;
35      private final String mId;
36      private final String mProviderAuthority;
37      private final Drawable mIcon;
38      private final BluetoothMapUtils.TYPE mType;
39      public final String mBase_uri;
40      public final String mBase_uri_no_account;
41      private final String mUci;
42      private final String mUciPrefix;
43  
BluetoothMapAccountItem(String id, String name, String packageName, String authority, Drawable icon, BluetoothMapUtils.TYPE appType, String uci, String uciPrefix)44      public BluetoothMapAccountItem(String id, String name, String packageName, String authority,
45              Drawable icon, BluetoothMapUtils.TYPE appType, String uci, String uciPrefix) {
46          this.mName = name;
47          this.mIcon = icon;
48          this.mPackageName = packageName;
49          this.mId = id;
50          this.mProviderAuthority = authority;
51          this.mType = appType;
52          this.mBase_uri_no_account = "content://" + authority;
53          this.mBase_uri = mBase_uri_no_account + "/"+id;
54          this.mUci = uci;
55          this.mUciPrefix = uciPrefix;
56      }
57  
create(String id, String name, String packageName, String authority, Drawable icon, BluetoothMapUtils.TYPE appType)58      public static BluetoothMapAccountItem create(String id, String name, String packageName,
59              String authority, Drawable icon, BluetoothMapUtils.TYPE appType) {
60          return new BluetoothMapAccountItem(id, name, packageName, authority,
61                  icon, appType, null, null);
62      }
63  
create(String id, String name, String packageName, String authority, Drawable icon, BluetoothMapUtils.TYPE appType, String uci, String uciPrefix)64      public static BluetoothMapAccountItem create(String id, String name, String packageName,
65              String authority, Drawable icon, BluetoothMapUtils.TYPE appType, String uci,
66              String uciPrefix) {
67          return new BluetoothMapAccountItem(id, name, packageName, authority,
68                  icon, appType, uci, uciPrefix);
69      }
getAccountId()70      public long getAccountId() {
71          if(mId != null) {
72              return Long.parseLong(mId);
73          }
74          return -1;
75      }
76  
getUci()77      public String getUci() {
78          return mUci;
79      }
80  
getUciPrefix()81      public String getUciPrefix(){
82          return mUciPrefix;
83      }
84  
getUciFull()85      public String getUciFull(){
86          if(mUci == null)
87              return null;
88          if(mUciPrefix == null)
89              return null;
90          return new StringBuilder(mUciPrefix).append(":").append(mUci).toString();
91      }
92  
93      @Override
compareTo(BluetoothMapAccountItem other)94      public int compareTo(BluetoothMapAccountItem other) {
95  
96          if(!other.mId.equals(this.mId)){
97              if(V) Log.d(TAG, "Wrong id : " + this.mId + " vs " + other.mId);
98              return -1;
99          }
100          if(!other.mName.equals(this.mName)){
101              if(V) Log.d(TAG, "Wrong name : " + this.mName + " vs " + other.mName);
102              return -1;
103          }
104          if(!other.mPackageName.equals(this.mPackageName)){
105              if(V) Log.d(TAG, "Wrong packageName : " + this.mPackageName + " vs "
106                      + other.mPackageName);
107               return -1;
108          }
109          if(!other.mProviderAuthority.equals(this.mProviderAuthority)){
110              if(V) Log.d(TAG, "Wrong providerName : " + this.mProviderAuthority + " vs "
111                      + other.mProviderAuthority);
112              return -1;
113          }
114          if(other.mIsChecked != this.mIsChecked){
115              if(V) Log.d(TAG, "Wrong isChecked : " + this.mIsChecked + " vs " + other.mIsChecked);
116              return -1;
117          }
118          if(!other.mType.equals(this.mType)){
119              if(V) Log.d(TAG, "Wrong appType : " + this.mType + " vs " + other.mType);
120               return -1;
121          }
122          return 0;
123      }
124  
125      @Override
hashCode()126      public int hashCode() {
127          final int prime = 31;
128          int result = 1;
129          result = prime * result + ((mId == null) ? 0 : mId.hashCode());
130          result = prime * result + ((mName == null) ? 0 : mName.hashCode());
131          result = prime * result
132                  + ((mPackageName == null) ? 0 : mPackageName.hashCode());
133          result = prime * result
134                  + ((mProviderAuthority == null) ? 0 : mProviderAuthority.hashCode());
135          return result;
136      }
137  
138      @Override
equals(Object obj)139      public boolean equals(Object obj) {
140          if (this == obj)
141              return true;
142          if (obj == null)
143              return false;
144          if (getClass() != obj.getClass())
145              return false;
146          BluetoothMapAccountItem other = (BluetoothMapAccountItem) obj;
147          if (mId == null) {
148              if (other.mId != null)
149                  return false;
150          } else if (!mId.equals(other.mId))
151              return false;
152          if (mName == null) {
153              if (other.mName != null)
154                  return false;
155          } else if (!mName.equals(other.mName))
156              return false;
157          if (mPackageName == null) {
158              if (other.mPackageName != null)
159                  return false;
160          } else if (!mPackageName.equals(other.mPackageName))
161              return false;
162          if (mProviderAuthority == null) {
163              if (other.mProviderAuthority != null)
164                  return false;
165          } else if (!mProviderAuthority.equals(other.mProviderAuthority))
166              return false;
167          if (mType == null) {
168              if (other.mType != null)
169                  return false;
170          } else if (!mType.equals(other.mType))
171              return false;
172          return true;
173      }
174  
175      @Override
toString()176      public String toString() {
177          return mName + " (" + mBase_uri + ")";
178      }
179  
getIcon()180      public Drawable getIcon() {
181          return mIcon;
182      }
183  
getName()184      public String getName() {
185          return mName;
186      }
187  
getId()188      public String getId() {
189          return mId;
190      }
191  
getPackageName()192      public String getPackageName() {
193          return mPackageName;
194      }
195  
getProviderAuthority()196      public String getProviderAuthority() {
197          return mProviderAuthority;
198      }
199  
getType()200      public BluetoothMapUtils.TYPE getType() {
201          return mType;
202      }
203  
204  }
205