1d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian/* 2d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * Copyright (C) 2015 The Android Open Source Project 3d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * 4d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * Licensed under the Apache License, Version 2.0 (the "License"); 5d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * you may not use this file except in compliance with the License. 6d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * You may obtain a copy of the License at 7d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * 8d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * http://www.apache.org/licenses/LICENSE-2.0 9d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * 10d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * Unless required by applicable law or agreed to in writing, software 11d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * distributed under the License is distributed on an "AS IS" BASIS, 12d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * See the License for the specific language governing permissions and 14d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * limitations under the License 15d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian */ 16d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianpackage com.android.voicemail.impl.sms; 17d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 18d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianimport android.os.Bundle; 19d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianimport com.android.voicemail.impl.NeededForTesting; 20d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianimport com.android.voicemail.impl.OmtpConstants; 21d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianimport com.android.voicemail.impl.VisualVoicemailPreferences; 22d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianimport com.android.voicemail.impl.VvmLog; 23d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 24d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian/** 25d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * Structured data representation of OMTP STATUS message. 26d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * 27d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * <p>The getters will return null if the field was not set in the message body or it could not be 28d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * parsed. 29d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian */ 30d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianpublic class StatusMessage { 31d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian // NOTE: Following Status SMS fields are not yet parsed, as they do not seem 32d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian // to be useful for initial omtp source implementation. 33d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian // lang, g_len, vs_len, pw_len, pm, gm, vtc, vt 34d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 35d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian private final String mProvisioningStatus; 36d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian private final String mStatusReturnCode; 37d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian private final String mSubscriptionUrl; 38d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian private final String mServerAddress; 39d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian private final String mTuiAccessNumber; 40d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian private final String mClientSmsDestinationNumber; 41d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian private final String mImapPort; 42d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian private final String mImapUserName; 43d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian private final String mImapPassword; 44d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian private final String mSmtpPort; 45d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian private final String mSmtpUserName; 46d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian private final String mSmtpPassword; 47d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian private final String mTuiPasswordLength; 48d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 49d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian @Override 50d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public String toString() { 51d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return "StatusMessage [mProvisioningStatus=" 52d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + mProvisioningStatus 53d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + ", mStatusReturnCode=" 54d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + mStatusReturnCode 55d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + ", mSubscriptionUrl=" 56d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + mSubscriptionUrl 57d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + ", mServerAddress=" 58d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + mServerAddress 59d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + ", mTuiAccessNumber=" 60d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + mTuiAccessNumber 61d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + ", mClientSmsDestinationNumber=" 62d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + mClientSmsDestinationNumber 63d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + ", mImapPort=" 64d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + mImapPort 65d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + ", mImapUserName=" 66d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + mImapUserName 67d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + ", mImapPassword=" 68d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + VvmLog.pii(mImapPassword) 69d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + ", mSmtpPort=" 70d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + mSmtpPort 71d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + ", mSmtpUserName=" 72d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + mSmtpUserName 73d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + ", mSmtpPassword=" 74d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + VvmLog.pii(mSmtpPassword) 75d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + ", mTuiPasswordLength=" 76d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + mTuiPasswordLength 77d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian + "]"; 78d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 79d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 80d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public StatusMessage(Bundle wrappedData) { 81d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian mProvisioningStatus = unquote(getString(wrappedData, OmtpConstants.PROVISIONING_STATUS)); 82d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian mStatusReturnCode = getString(wrappedData, OmtpConstants.RETURN_CODE); 83d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian mSubscriptionUrl = getString(wrappedData, OmtpConstants.SUBSCRIPTION_URL); 84d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian mServerAddress = getString(wrappedData, OmtpConstants.SERVER_ADDRESS); 85d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian mTuiAccessNumber = getString(wrappedData, OmtpConstants.TUI_ACCESS_NUMBER); 86d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian mClientSmsDestinationNumber = 87d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian getString(wrappedData, OmtpConstants.CLIENT_SMS_DESTINATION_NUMBER); 88d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian mImapPort = getString(wrappedData, OmtpConstants.IMAP_PORT); 89d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian mImapUserName = getString(wrappedData, OmtpConstants.IMAP_USER_NAME); 90d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian mImapPassword = getString(wrappedData, OmtpConstants.IMAP_PASSWORD); 91d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian mSmtpPort = getString(wrappedData, OmtpConstants.SMTP_PORT); 92d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian mSmtpUserName = getString(wrappedData, OmtpConstants.SMTP_USER_NAME); 93d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian mSmtpPassword = getString(wrappedData, OmtpConstants.SMTP_PASSWORD); 94d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian mTuiPasswordLength = getString(wrappedData, OmtpConstants.TUI_PASSWORD_LENGTH); 95d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 96d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 97d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian private static String unquote(String string) { 98d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian if (string.length() < 2) { 99d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return string; 100d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 101d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian if (string.startsWith("\"") && string.endsWith("\"")) { 102d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return string.substring(1, string.length() - 1); 103d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 104d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return string; 105d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 106d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 107d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian /** @return the subscriber's VVM provisioning status. */ 108d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public String getProvisioningStatus() { 109d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return mProvisioningStatus; 110d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 111d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 112d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian /** @return the return-code of the status SMS. */ 113d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public String getReturnCode() { 114d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return mStatusReturnCode; 115d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 116d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 117d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian /** 118d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * @return the URL of the voicemail server. This is the URL to send the users to for subscribing 119d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * to the visual voicemail service. 120d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian */ 121d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian @NeededForTesting 122d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public String getSubscriptionUrl() { 123d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return mSubscriptionUrl; 124d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 125d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 126d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian /** 127d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * @return the voicemail server address. Either server IP address or fully qualified domain name. 128d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian */ 129d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public String getServerAddress() { 130d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return mServerAddress; 131d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 132d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 133d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian /** 134d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * @return the Telephony User Interface number to call to access voicemails directly from the IVR. 135d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian */ 136d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian @NeededForTesting 137d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public String getTuiAccessNumber() { 138d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return mTuiAccessNumber; 139d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 140d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 141d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian /** @return the number to which client originated SMSes should be sent to. */ 142d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian @NeededForTesting 143d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public String getClientSmsDestinationNumber() { 144d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return mClientSmsDestinationNumber; 145d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 146d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 147d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian /** @return the IMAP server port to talk to. */ 148d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public String getImapPort() { 149d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return mImapPort; 150d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 151d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 152d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian /** @return the IMAP user name to be used for authentication. */ 153d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public String getImapUserName() { 154d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return mImapUserName; 155d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 156d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 157d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian /** @return the IMAP password to be used for authentication. */ 158d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public String getImapPassword() { 159d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return mImapPassword; 160d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 161d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 162d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian /** @return the SMTP server port to talk to. */ 163d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian @NeededForTesting 164d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public String getSmtpPort() { 165d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return mSmtpPort; 166d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 167d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 168d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian /** @return the SMTP user name to be used for SMTP authentication. */ 169d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian @NeededForTesting 170d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public String getSmtpUserName() { 171d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return mSmtpUserName; 172d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 173d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 174d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian /** @return the SMTP password to be used for SMTP authentication. */ 175d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian @NeededForTesting 176d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public String getSmtpPassword() { 177d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return mSmtpPassword; 178d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 179d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 180d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public String getTuiPasswordLength() { 181d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return mTuiPasswordLength; 182d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 183d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 184d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian private static String getString(Bundle bundle, String key) { 185d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian String value = bundle.getString(key); 186d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian if (value == null) { 187d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return ""; 188d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 189d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return value; 190d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 191d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 192d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian /** Saves a StatusMessage to the {@link VisualVoicemailPreferences}. Not all fields are saved. */ 193d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public VisualVoicemailPreferences.Editor putStatus(VisualVoicemailPreferences.Editor editor) { 194d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return editor 195d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian .putString(OmtpConstants.IMAP_PORT, getImapPort()) 196d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian .putString(OmtpConstants.SERVER_ADDRESS, getServerAddress()) 197d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian .putString(OmtpConstants.IMAP_USER_NAME, getImapUserName()) 198d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian .putString(OmtpConstants.IMAP_PASSWORD, getImapPassword()) 199d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian .putString(OmtpConstants.TUI_PASSWORD_LENGTH, getTuiPasswordLength()); 200d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 201d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian} 202