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