1326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde/* 2326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde* Copyright (C) 2014 Samsung System LSI 3326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde* Licensed under the Apache License, Version 2.0 (the "License"); 4326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde* you may not use this file except in compliance with the License. 5326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde* You may obtain a copy of the License at 6326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde* 7326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde* http://www.apache.org/licenses/LICENSE-2.0 8326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde* 9326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde* Unless required by applicable law or agreed to in writing, software 10326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde* distributed under the License is distributed on an "AS IS" BASIS, 11326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde* See the License for the specific language governing permissions and 13326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde* limitations under the License. 14326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde*/ 15326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 16326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bondepackage com.android.bluetooth.map; 17326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 18326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bondeimport android.graphics.drawable.Drawable; 19326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bondeimport android.util.Log; 20326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 21326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde/** 22326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde * Class to contain all the info about the items of the Map Email Settings Menu. 23326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde * It can be used for both Email Apps (group Parent item) and Accounts (Group child Item). 24326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde * 25326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde */ 26326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bondepublic class BluetoothMapEmailSettingsItem implements Comparable<BluetoothMapEmailSettingsItem>{ 27326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde private static final String TAG = "BluetoothMapEmailSettingsItem"; 28326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 29326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde private static final boolean D = BluetoothMapService.DEBUG; 30326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde private static final boolean V = BluetoothMapService.VERBOSE; 31326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 32326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde protected boolean mIsChecked; 33326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde private String mName; 34326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde private String mPackageName; 35326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde private String mId; 36326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde private String mProviderAuthority; 37326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde private Drawable mIcon; 38326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public String mBase_uri; 39326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public String mBase_uri_no_account; 40326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public BluetoothMapEmailSettingsItem(String id, String name, String packageName, String authority, Drawable icon) { 41326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde this.mName = name; 42326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde this.mIcon = icon; 43326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde this.mPackageName = packageName; 44326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde this.mId = id; 45326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde this.mProviderAuthority = authority; 46326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde this.mBase_uri_no_account = "content://" + authority; 47326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde this.mBase_uri = mBase_uri_no_account + "/"+id; 48326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 49326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 50326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public long getAccountId() { 51326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if(mId != null) { 52326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return Long.parseLong(mId); 53326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 54326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return -1; 55326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 56326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 57326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde @Override 58326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public int compareTo(BluetoothMapEmailSettingsItem other) { 59326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 60326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if(!other.mId.equals(this.mId)){ 61326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if(V) Log.d(TAG, "Wrong id : " + this.mId + " vs " + other.mId); 62326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return -1; 63326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 64326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if(!other.mName.equals(this.mName)){ 65326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if(V) Log.d(TAG, "Wrong name : " + this.mName + " vs " + other.mName); 66326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return -1; 67326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 68326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if(!other.mPackageName.equals(this.mPackageName)){ 69326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if(V) Log.d(TAG, "Wrong packageName : " + this.mPackageName + " vs " + other.mPackageName); 70326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return -1; 71326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 72326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if(!other.mProviderAuthority.equals(this.mProviderAuthority)){ 73326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if(V) Log.d(TAG, "Wrong providerName : " + this.mProviderAuthority + " vs " + other.mProviderAuthority); 74326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return -1; 75326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 76326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if(other.mIsChecked != this.mIsChecked){ 77326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if(V) Log.d(TAG, "Wrong isChecked : " + this.mIsChecked + " vs " + other.mIsChecked); 78326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return -1; 79326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 80326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return 0; 81326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 82326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 83326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde @Override 84326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public int hashCode() { 85326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde final int prime = 31; 86326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde int result = 1; 87326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde result = prime * result + ((mId == null) ? 0 : mId.hashCode()); 88326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde result = prime * result + ((mName == null) ? 0 : mName.hashCode()); 89326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde result = prime * result 90326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde + ((mPackageName == null) ? 0 : mPackageName.hashCode()); 91326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde result = prime * result 92326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde + ((mProviderAuthority == null) ? 0 : mProviderAuthority.hashCode()); 93326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return result; 94326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 95326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 96326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde @Override 97326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public boolean equals(Object obj) { 98326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if (this == obj) 99326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return true; 100326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if (obj == null) 101326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return false; 102326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if (getClass() != obj.getClass()) 103326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return false; 104326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde BluetoothMapEmailSettingsItem other = (BluetoothMapEmailSettingsItem) obj; 105326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if (mId == null) { 106326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if (other.mId != null) 107326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return false; 108326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } else if (!mId.equals(other.mId)) 109326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return false; 110326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if (mName == null) { 111326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if (other.mName != null) 112326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return false; 113326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } else if (!mName.equals(other.mName)) 114326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return false; 115326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if (mPackageName == null) { 116326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if (other.mPackageName != null) 117326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return false; 118326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } else if (!mPackageName.equals(other.mPackageName)) 119326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return false; 120326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if (mProviderAuthority == null) { 121326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde if (other.mProviderAuthority != null) 122326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return false; 123326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } else if (!mProviderAuthority.equals(other.mProviderAuthority)) 124326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return false; 125326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return true; 126326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 127326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 128326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde @Override 129326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public String toString() { 130326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return mName + " (" + mBase_uri + ")"; 131326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 132326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 133326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public Drawable getIcon() { 134326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return mIcon; 135326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 136326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 137326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public void setIcon(Drawable icon) { 138326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde this.mIcon = icon; 139326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 140326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 141326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public String getName() { 142326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return mName; 143326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 144326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 145326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public void setName(String name) { 146326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde this.mName = name; 147326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 148326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 149326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public String getId() { 150326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return mId; 151326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 152326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 153326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public void setId(String id) { 154326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde this.mId = id; 155326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 156326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 157326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public String getPackageName() { 158326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return mPackageName; 159326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 160326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 161326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public void setPackageName(String packageName) { 162326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde this.mPackageName = packageName; 163326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 164326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 165326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public String getProviderAuthority() { 166326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde return mProviderAuthority; 167326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 168326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde 169326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde public void setProviderAuthority(String providerAuthority) { 170326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde this.mProviderAuthority = providerAuthority; 171326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde } 172326b5e610063ac24c0ba467ac585bd4c7f618a67Casper Bonde}