1ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen/*
2ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen * Copyright (C) 2016 The Android Open Source Project
3ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen *
4ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen * Licensed under the Apache License, Version 2.0 (the "License");
5ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen * you may not use this file except in compliance with the License.
6ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen * You may obtain a copy of the License at
7ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen *
8ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen *      http://www.apache.org/licenses/LICENSE-2.0
9ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen *
10ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen * Unless required by applicable law or agreed to in writing, software
11ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen * distributed under the License is distributed on an "AS IS" BASIS,
12ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen * See the License for the specific language governing permissions and
14ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen * limitations under the License
15ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen */
16ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen
17ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yenpackage com.android.phone.vvm.omtp.protocol;
18ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen
19ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yenimport android.annotation.Nullable;
20eb6ee5f75d09e7ac6fe5dad3b3be0dccec6310faTa-wei Yenimport android.content.res.Resources;
21ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yenimport android.telephony.TelephonyManager;
2299282e0eb8f04d03c9464bea94fa2d8959edbd13Ta-wei Yen
23eb6ee5f75d09e7ac6fe5dad3b3be0dccec6310faTa-wei Yenimport com.android.phone.R;
2499282e0eb8f04d03c9464bea94fa2d8959edbd13Ta-wei Yenimport com.android.phone.vvm.omtp.VvmLog;
25ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen
26ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yenpublic class VisualVoicemailProtocolFactory {
27ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen
28ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen    private static final String TAG = "VvmProtocolFactory";
29ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen
30ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen    private static final String VVM_TYPE_VVM3 = "vvm_type_vvm3";
31ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen
32ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen    @Nullable
33eb6ee5f75d09e7ac6fe5dad3b3be0dccec6310faTa-wei Yen    public static VisualVoicemailProtocol create(Resources resources, String type) {
34ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen        if (type == null) {
35ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen            return null;
36ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen        }
37ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen        switch (type) {
38ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen            case TelephonyManager.VVM_TYPE_OMTP:
39ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen                return new OmtpProtocol();
40ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen            case TelephonyManager.VVM_TYPE_CVVM:
41ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen                return new CvvmProtocol();
42ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen            case VVM_TYPE_VVM3:
43eb6ee5f75d09e7ac6fe5dad3b3be0dccec6310faTa-wei Yen                if (resources.getBoolean(R.bool.vvm3_enabled)) {
44eb6ee5f75d09e7ac6fe5dad3b3be0dccec6310faTa-wei Yen                    return new Vvm3Protocol();
45eb6ee5f75d09e7ac6fe5dad3b3be0dccec6310faTa-wei Yen                } else {
46eb6ee5f75d09e7ac6fe5dad3b3be0dccec6310faTa-wei Yen                    VvmLog.e(TAG, "VVM3 is disabled");
47eb6ee5f75d09e7ac6fe5dad3b3be0dccec6310faTa-wei Yen                    return null;
48eb6ee5f75d09e7ac6fe5dad3b3be0dccec6310faTa-wei Yen                }
49ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen            default:
5099282e0eb8f04d03c9464bea94fa2d8959edbd13Ta-wei Yen                VvmLog.e(TAG, "Unexpected visual voicemail type: " + type);
51ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen        }
52ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen        return null;
53ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen    }
54ce8d0fff0de34c3d982486dd8e92dbfa7b637e2bTa-wei Yen}
55