1845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen/* 2845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * Copyright (C) 2016 Google Inc. All Rights Reserved. 3845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * 4845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * Licensed under the Apache License, Version 2.0 (the "License"); 5845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * you may not use this file except in compliance with the License. 6845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * You may obtain a copy of the License at 7845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * 8845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * http://www.apache.org/licenses/LICENSE-2.0 9845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * 10845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * Unless required by applicable law or agreed to in writing, software 11845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * distributed under the License is distributed on an "AS IS" BASIS, 12845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * See the License for the specific language governing permissions and 14845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * limitations under the License 15845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen */ 16845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen 17845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yenpackage com.android.phone.vvm.omtp.sms; 18845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen 19845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yenimport android.content.Context; 20845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yenimport android.content.Intent; 21845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yenimport android.os.Bundle; 22845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yenimport android.provider.VoicemailContract; 23845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yenimport android.telecom.PhoneAccountHandle; 24845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen 25845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yenimport com.android.internal.telephony.Phone; 26845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yenimport com.android.phone.PhoneUtils; 27845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yenimport com.android.phone.vvm.omtp.OmtpConstants; 28845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yenimport com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper; 2999282e0eb8f04d03c9464bea94fa2d8959edbd13Ta-wei Yenimport com.android.phone.vvm.omtp.VvmLog; 30845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen 31845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen/** 32845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * Class ot handle voicemail SMS under legacy mode 33845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * 34845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen * @see OmtpVvmCarrierConfigHelper#isLegacyModeEnabled() 35845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen */ 36845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yenpublic class LegacyModeSmsHandler { 37845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen 38845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen private static final String TAG = "LegacyModeSmsHandler"; 39845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen 40845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen public static void handle(Context context, Intent intent, PhoneAccountHandle handle) { 4199282e0eb8f04d03c9464bea94fa2d8959edbd13Ta-wei Yen VvmLog.v(TAG, "processing VVM SMS on legacy mode"); 42845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen String eventType = intent.getExtras() 43845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen .getString(VoicemailContract.EXTRA_VOICEMAIL_SMS_PREFIX); 44845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen Bundle data = intent.getExtras().getBundle(VoicemailContract.EXTRA_VOICEMAIL_SMS_FIELDS); 45845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen 46845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen if (eventType.equals(OmtpConstants.SYNC_SMS_PREFIX)) { 47845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen SyncMessage message = new SyncMessage(data); 4899282e0eb8f04d03c9464bea94fa2d8959edbd13Ta-wei Yen VvmLog.v(TAG, "Received SYNC sms for " + handle.getId() + 49845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen " with event " + message.getSyncTriggerEvent()); 50845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen 51845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen switch (message.getSyncTriggerEvent()) { 52845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen case OmtpConstants.NEW_MESSAGE: 53845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen case OmtpConstants.MAILBOX_UPDATE: 54845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen // The user has called into the voicemail and the new message count could 55845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen // change. 56845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen // For some carriers new message count could be set to 0 even if there are still 57845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen // unread messages, to clear the message waiting indicator. 5899282e0eb8f04d03c9464bea94fa2d8959edbd13Ta-wei Yen VvmLog.v(TAG, "updating MWI"); 59845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen Phone phone = PhoneUtils.getPhoneForPhoneAccountHandle(handle); 60845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen // Setting voicemail message count to non-zero will show the telephony voicemail 61845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen // notification, and zero will clear it. 62845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen phone.setVoiceMessageCount(message.getNewMessageCount()); 63845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen break; 64845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen default: 65845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen break; 66845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen } 67845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen } 68845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen } 69845f699e273a2490faec1bd13843e90f23413cc8Ta-wei Yen} 70