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