diff options
author | Tyler Gunn <tgunn@google.com> | 2014-09-12 22:16:17 -0700 |
---|---|---|
committer | Tyler Gunn <tgunn@google.com> | 2014-09-12 22:16:17 -0700 |
commit | ef9f6f957d897ea0ed82114185b8fa3fefd4917b (patch) | |
tree | 4aff42f3d54f4454e598f27829c4983ba808afa7 /telecomm/java/android/telecom/PhoneAccountHandle.java | |
parent | 4b5c2d3cfc8aec4ab90097734a3556a0d0c0e68d (diff) | |
download | frameworks_base-ef9f6f957d897ea0ed82114185b8fa3fefd4917b.zip frameworks_base-ef9f6f957d897ea0ed82114185b8fa3fefd4917b.tar.gz frameworks_base-ef9f6f957d897ea0ed82114185b8fa3fefd4917b.tar.bz2 |
Renaming Telecomm to Telecom.
- Changing package from android.telecomm to android.telecom
- Changing package from com.android.telecomm to
com.android.server.telecomm.
- Renaming TelecommManager to TelecomManager.
Bug: 17364651
Change-Id: I192cb5d189f55db012ea72ee82ccc5aedbc21638
Diffstat (limited to 'telecomm/java/android/telecom/PhoneAccountHandle.java')
-rw-r--r-- | telecomm/java/android/telecom/PhoneAccountHandle.java | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/telecomm/java/android/telecom/PhoneAccountHandle.java b/telecomm/java/android/telecom/PhoneAccountHandle.java new file mode 100644 index 0000000..e13df76 --- /dev/null +++ b/telecomm/java/android/telecom/PhoneAccountHandle.java @@ -0,0 +1,120 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.telecom; + +import android.content.ComponentName; +import android.os.Parcel; +import android.os.Parcelable; + +import java.util.Objects; + +/** + * The unique identifier for a {@link PhoneAccount}. + */ +public class PhoneAccountHandle implements Parcelable { + private ComponentName mComponentName; + private String mId; + + public PhoneAccountHandle( + ComponentName componentName, + String id) { + mComponentName = componentName; + mId = id; + } + + /** + * The {@code ComponentName} of the {@link android.telecom.ConnectionService} which is + * responsible for making phone calls using this {@code PhoneAccountHandle}. + * + * @return A suitable {@code ComponentName}. + */ + public ComponentName getComponentName() { + return mComponentName; + } + + /** + * A string that uniquely distinguishes this particular {@code PhoneAccountHandle} from all the + * others supported by the {@link ConnectionService} that created it. + * <p> + * A {@code ConnectionService} must select identifiers that are stable for the lifetime of + * their users' relationship with their service, across many Android devices. For example, a + * good set of identifiers might be the email addresses with which with users registered for + * their accounts with a particular service. Depending on how a service chooses to operate, + * a bad set of identifiers might be an increasing series of integers + * ({@code 0}, {@code 1}, {@code 2}, ...) that are generated locally on each phone and could + * collide with values generated on other phones or after a data wipe of a given phone. + * + * @return A service-specific unique identifier for this {@code PhoneAccountHandle}. + */ + public String getId() { + return mId; + } + + @Override + public int hashCode() { + return Objects.hashCode(mComponentName) + Objects.hashCode(mId); + } + + @Override + public String toString() { + return new StringBuilder().append(mComponentName) + .append(", ") + .append(mId) + .toString(); + } + + @Override + public boolean equals(Object other) { + return other != null && + other instanceof PhoneAccountHandle && + Objects.equals(((PhoneAccountHandle) other).getComponentName(), + getComponentName()) && + Objects.equals(((PhoneAccountHandle) other).getId(), getId()); + } + + // + // Parcelable implementation. + // + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + out.writeParcelable(mComponentName, flags); + out.writeString(mId); + } + + public static final Creator<PhoneAccountHandle> CREATOR = new Creator<PhoneAccountHandle>() { + @Override + public PhoneAccountHandle createFromParcel(Parcel in) { + return new PhoneAccountHandle(in); + } + + @Override + public PhoneAccountHandle[] newArray(int size) { + return new PhoneAccountHandle[size]; + } + }; + + private PhoneAccountHandle(Parcel in) { + mComponentName = in.readParcelable(getClass().getClassLoader()); + mId = in.readString(); + } +} |