diff options
Diffstat (limited to 'java/com/android/voicemailomtp/Voicemail.java')
-rw-r--r-- | java/com/android/voicemailomtp/Voicemail.java | 330 |
1 files changed, 0 insertions, 330 deletions
diff --git a/java/com/android/voicemailomtp/Voicemail.java b/java/com/android/voicemailomtp/Voicemail.java deleted file mode 100644 index 9d8395142..000000000 --- a/java/com/android/voicemailomtp/Voicemail.java +++ /dev/null @@ -1,330 +0,0 @@ -/* - * Copyright (C) 2016 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 com.android.voicemailomtp; - -import android.net.Uri; -import android.os.Parcel; -import android.os.Parcelable; -import android.telecom.PhoneAccountHandle; -import android.text.TextUtils; - -/** - * Represents a single voicemail stored in the voicemail content provider. - */ -public class Voicemail implements Parcelable { - - private final Long mTimestamp; - private final String mNumber; - private final PhoneAccountHandle mPhoneAccount; - private final Long mId; - private final Long mDuration; - private final String mSource; - private final String mProviderData; - private final Uri mUri; - private final Boolean mIsRead; - private final Boolean mHasContent; - private final String mTranscription; - - private Voicemail(Long timestamp, String number, PhoneAccountHandle phoneAccountHandle, Long id, - Long duration, String source, String providerData, Uri uri, Boolean isRead, - Boolean hasContent, String transcription) { - mTimestamp = timestamp; - mNumber = number; - mPhoneAccount = phoneAccountHandle; - mId = id; - mDuration = duration; - mSource = source; - mProviderData = providerData; - mUri = uri; - mIsRead = isRead; - mHasContent = hasContent; - mTranscription = transcription; - } - - /** - * Create a {@link Builder} for a new {@link Voicemail} to be inserted. <p> The number and the - * timestamp are mandatory for insertion. - */ - public static Builder createForInsertion(long timestamp, String number) { - return new Builder().setNumber(number).setTimestamp(timestamp); - } - - /** - * Create a {@link Builder} for a {@link Voicemail} to be updated (or deleted). <p> The id and - * source data fields are mandatory for update - id is necessary for updating the database and - * source data is necessary for updating the server. - */ - public static Builder createForUpdate(long id, String sourceData) { - return new Builder().setId(id).setSourceData(sourceData); - } - - /** - * Builder pattern for creating a {@link Voicemail}. The builder must be created with the {@link - * #createForInsertion(long, String)} method. <p> This class is <b>not thread safe</b> - */ - public static class Builder { - - private Long mBuilderTimestamp; - private String mBuilderNumber; - private PhoneAccountHandle mBuilderPhoneAccount; - private Long mBuilderId; - private Long mBuilderDuration; - private String mBuilderSourcePackage; - private String mBuilderSourceData; - private Uri mBuilderUri; - private Boolean mBuilderIsRead; - private boolean mBuilderHasContent; - private String mBuilderTranscription; - - /** - * You should use the correct factory method to construct a builder. - */ - private Builder() { - } - - public Builder setNumber(String number) { - mBuilderNumber = number; - return this; - } - - public Builder setTimestamp(long timestamp) { - mBuilderTimestamp = timestamp; - return this; - } - - public Builder setPhoneAccount(PhoneAccountHandle phoneAccount) { - mBuilderPhoneAccount = phoneAccount; - return this; - } - - public Builder setId(long id) { - mBuilderId = id; - return this; - } - - public Builder setDuration(long duration) { - mBuilderDuration = duration; - return this; - } - - public Builder setSourcePackage(String sourcePackage) { - mBuilderSourcePackage = sourcePackage; - return this; - } - - public Builder setSourceData(String sourceData) { - mBuilderSourceData = sourceData; - return this; - } - - public Builder setUri(Uri uri) { - mBuilderUri = uri; - return this; - } - - public Builder setIsRead(boolean isRead) { - mBuilderIsRead = isRead; - return this; - } - - public Builder setHasContent(boolean hasContent) { - mBuilderHasContent = hasContent; - return this; - } - - public Builder setTranscription(String transcription) { - mBuilderTranscription = transcription; - return this; - } - - public Voicemail build() { - mBuilderId = mBuilderId == null ? -1 : mBuilderId; - mBuilderTimestamp = mBuilderTimestamp == null ? 0 : mBuilderTimestamp; - mBuilderDuration = mBuilderDuration == null ? 0 : mBuilderDuration; - mBuilderIsRead = mBuilderIsRead == null ? false : mBuilderIsRead; - return new Voicemail(mBuilderTimestamp, mBuilderNumber, mBuilderPhoneAccount, - mBuilderId, mBuilderDuration, mBuilderSourcePackage, mBuilderSourceData, - mBuilderUri, mBuilderIsRead, mBuilderHasContent, mBuilderTranscription); - } - } - - /** - * The identifier of the voicemail in the content provider. <p> This may be missing in the case - * of a new {@link Voicemail} that we plan to insert into the content provider, since until it - * has been inserted we don't know what id it should have. If none is specified, we return -1. - */ - public long getId() { - return mId; - } - - /** - * The number of the person leaving the voicemail, empty string if unknown, null if not set. - */ - public String getNumber() { - return mNumber; - } - - /** - * The phone account associated with the voicemail, null if not set. - */ - public PhoneAccountHandle getPhoneAccount() { - return mPhoneAccount; - } - - /** - * The timestamp the voicemail was received, in millis since the epoch, zero if not set. - */ - public long getTimestampMillis() { - return mTimestamp; - } - - /** - * Gets the duration of the voicemail in millis, or zero if the field is not set. - */ - public long getDuration() { - return mDuration; - } - - /** - * Returns the package name of the source that added this voicemail, or null if this field is - * not set. - */ - public String getSourcePackage() { - return mSource; - } - - /** - * Returns the application-specific data type stored with the voicemail, or null if this field - * is not set. <p> Source data is typically used as an identifier to uniquely identify the - * voicemail against the voicemail server. This is likely to be something like the IMAP UID, or - * some other server-generated identifying string. - */ - public String getSourceData() { - return mProviderData; - } - - /** - * Gets the Uri that can be used to refer to this voicemail, and to make it play. <p> Returns - * null if we don't know the Uri. - */ - public Uri getUri() { - return mUri; - } - - /** - * Tells us if the voicemail message has been marked as read. <p> Always returns false if this - * field has not been set, i.e. if hasRead() returns false. - */ - public boolean isRead() { - return mIsRead; - } - - /** - * Tells us if there is content stored at the Uri. - */ - public boolean hasContent() { - return mHasContent; - } - - /** - * Returns the text transcription of this voicemail, or null if this field is not set. - */ - public String getTranscription() { - return mTranscription; - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeLong(mTimestamp); - writeCharSequence(dest, mNumber); - if (mPhoneAccount == null) { - dest.writeInt(0); - } else { - dest.writeInt(1); - mPhoneAccount.writeToParcel(dest, flags); - } - dest.writeLong(mId); - dest.writeLong(mDuration); - writeCharSequence(dest, mSource); - writeCharSequence(dest, mProviderData); - if (mUri == null) { - dest.writeInt(0); - } else { - dest.writeInt(1); - mUri.writeToParcel(dest, flags); - } - if (mIsRead) { - dest.writeInt(1); - } else { - dest.writeInt(0); - } - if (mHasContent) { - dest.writeInt(1); - } else { - dest.writeInt(0); - } - writeCharSequence(dest, mTranscription); - } - - public static final Creator<Voicemail> CREATOR - = new Creator<Voicemail>() { - @Override - public Voicemail createFromParcel(Parcel in) { - return new Voicemail(in); - } - - @Override - public Voicemail[] newArray(int size) { - return new Voicemail[size]; - } - }; - - private Voicemail(Parcel in) { - mTimestamp = in.readLong(); - mNumber = (String) readCharSequence(in); - if (in.readInt() > 0) { - mPhoneAccount = PhoneAccountHandle.CREATOR.createFromParcel(in); - } else { - mPhoneAccount = null; - } - mId = in.readLong(); - mDuration = in.readLong(); - mSource = (String) readCharSequence(in); - mProviderData = (String) readCharSequence(in); - if (in.readInt() > 0) { - mUri = Uri.CREATOR.createFromParcel(in); - } else { - mUri = null; - } - mIsRead = in.readInt() > 0 ? true : false; - mHasContent = in.readInt() > 0 ? true : false; - mTranscription = (String) readCharSequence(in); - } - - private static CharSequence readCharSequence(Parcel in) { - return TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); - } - - public static void writeCharSequence(Parcel dest, CharSequence val) { - TextUtils.writeToParcel(val, dest, 0); - } -} |