summaryrefslogtreecommitdiff
path: root/java/com/android/voicemailomtp/sync/OmtpVvmSourceManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/voicemailomtp/sync/OmtpVvmSourceManager.java')
-rw-r--r--java/com/android/voicemailomtp/sync/OmtpVvmSourceManager.java120
1 files changed, 0 insertions, 120 deletions
diff --git a/java/com/android/voicemailomtp/sync/OmtpVvmSourceManager.java b/java/com/android/voicemailomtp/sync/OmtpVvmSourceManager.java
deleted file mode 100644
index ad3c025cf..000000000
--- a/java/com/android/voicemailomtp/sync/OmtpVvmSourceManager.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.voicemailomtp.sync;
-
-import android.content.Context;
-import android.telecom.PhoneAccountHandle;
-import android.telephony.PhoneStateListener;
-import android.telephony.TelephonyManager;
-
-import com.android.voicemailomtp.VoicemailStatus;
-import com.android.voicemailomtp.VvmPhoneStateListener;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * A singleton class designed to remember the active OMTP visual voicemail sources. Because a
- * voicemail source is tied 1:1 to a phone account, the phone account handle is used as the key
- * for each voicemail source and the associated data.
- */
-public class OmtpVvmSourceManager {
- public static final String TAG = "OmtpVvmSourceManager";
-
- private static OmtpVvmSourceManager sInstance = new OmtpVvmSourceManager();
-
- private Context mContext;
- private TelephonyManager mTelephonyManager;
- // Each phone account is associated with a phone state listener for updates to whether the
- // device is able to sync.
- private Set<PhoneAccountHandle> mActiveVvmSources;
- private Map<PhoneAccountHandle, PhoneStateListener> mPhoneStateListenerMap;
-
- /**
- * Private constructor. Instance should only be acquired through getInstance().
- */
- private OmtpVvmSourceManager() {}
-
- public static OmtpVvmSourceManager getInstance(Context context) {
- sInstance.setup(context);
- return sInstance;
- }
-
- /**
- * Set the context and system services so they do not need to be retrieved every time.
- * @param context The context to get the subscription and telephony manager for.
- */
- private void setup(Context context) {
- if (mContext == null) {
- mContext = context;
- mTelephonyManager = (TelephonyManager)
- mContext.getSystemService(Context.TELEPHONY_SERVICE);
- mActiveVvmSources = Collections.newSetFromMap(
- new ConcurrentHashMap<PhoneAccountHandle, Boolean>(8, 0.9f, 1));
- mPhoneStateListenerMap =
- new ConcurrentHashMap<PhoneAccountHandle, PhoneStateListener>(8, 0.9f, 1);
- }
- }
-
- public void addSource(PhoneAccountHandle phoneAccount) {
- mActiveVvmSources.add(phoneAccount);
- }
-
- public void removeSource(PhoneAccountHandle phoneAccount) {
- // TODO: should use OmtpVvmCarrierConfigHelper to handle the event. But currently it
- // couldn't handle events on removed SIMs
- VoicemailStatus.disable(mContext, phoneAccount);
- removePhoneStateListener(phoneAccount);
- mActiveVvmSources.remove(phoneAccount);
- }
-
- public void addPhoneStateListener(PhoneAccountHandle phoneAccount) {
- if (!mPhoneStateListenerMap.containsKey(phoneAccount)) {
- VvmPhoneStateListener phoneStateListener = new VvmPhoneStateListener(mContext,
- phoneAccount);
- mPhoneStateListenerMap.put(phoneAccount, phoneStateListener);
- mTelephonyManager.createForPhoneAccountHandle(phoneAccount)
- .listen(phoneStateListener, PhoneStateListener.LISTEN_SERVICE_STATE);
- }
- }
-
- public void removePhoneStateListener(PhoneAccountHandle phoneAccount) {
- PhoneStateListener phoneStateListener =
- mPhoneStateListenerMap.remove(phoneAccount);
- mTelephonyManager.createForPhoneAccountHandle(phoneAccount).listen(phoneStateListener, 0);
- }
-
- public Set<PhoneAccountHandle> getOmtpVvmSources() {
- return mActiveVvmSources;
- }
-
- /**
- * Check if a certain account is registered.
- *
- * @param phoneAccount The account to look for.
- * @return {@code true} if the account is in the list of registered OMTP voicemail sources.
- * {@code false} otherwise.
- */
- public boolean isVvmSourceRegistered(PhoneAccountHandle phoneAccount) {
- if (phoneAccount == null) {
- return false;
- }
-
- return mActiveVvmSources.contains(phoneAccount);
- }
-} \ No newline at end of file