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