diff options
author | Stephen Bird <sbird@cyngn.com> | 2016-03-13 13:28:51 -0700 |
---|---|---|
committer | Stephen Bird <sbird@cyngn.com> | 2016-04-27 15:55:36 -0700 |
commit | 7efc03f403159b934b95bd5b0e7350d745407ef7 (patch) | |
tree | 7cf7643a230511b7efbe1243461944756eafa298 /src/com | |
parent | 38fec3be7540938f3d6a02d6e4fe8b39f5fa815f (diff) | |
download | android_packages_apps_Dialer-7efc03f403159b934b95bd5b0e7350d745407ef7.tar.gz android_packages_apps_Dialer-7efc03f403159b934b95bd5b0e7350d745407ef7.tar.bz2 android_packages_apps_Dialer-7efc03f403159b934b95bd5b0e7350d745407ef7.zip |
[4/4] Update dialer for CallMethodHelper refactor
Change-Id: I79f5e6285de5237f5a50a5cc1534f590e03a6996
Diffstat (limited to 'src/com')
23 files changed, 133 insertions, 163 deletions
diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java index 8a4cd7590..d9e3088fa 100644 --- a/src/com/android/dialer/CallDetailActivity.java +++ b/src/com/android/dialer/CallDetailActivity.java @@ -26,30 +26,22 @@ import android.content.Intent; import android.content.res.Resources; import android.net.Uri; import android.os.Bundle; -import android.os.PowerManager; import android.provider.ContactsContract.CommonDataKinds.Phone; -import android.provider.VoicemailContract.Voicemails; -import android.telecom.PhoneAccount; import android.telecom.PhoneAccountHandle; -import android.telephony.TelephonyManager; import android.text.BidiFormatter; import android.text.TextDirectionHeuristics; import android.text.TextUtils; import android.util.Log; -import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; -import android.widget.LinearLayout; import android.widget.ListView; -import android.widget.QuickContactBadge; import android.widget.TextView; import android.widget.Toast; import com.android.contacts.common.ContactPhotoManager; import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest; -import com.android.contacts.common.util.PermissionsUtil; import com.android.contacts.common.GeoUtil; import com.android.contacts.common.CallUtil; import com.android.contacts.common.activity.fragment.BlockContactDialogFragment; @@ -59,24 +51,19 @@ import com.android.dialer.calllog.CallDetailHistoryAdapter; import com.android.dialer.calllog.CallLogAsyncTaskUtil.CallLogAsyncTaskListener; import com.android.dialer.calllog.CallLogAsyncTaskUtil; import com.android.dialer.calllog.CallTypeHelper; -import com.android.dialer.calllog.ContactInfo; import com.android.dialer.calllog.ContactInfoHelper; import com.android.dialer.calllog.PhoneAccountUtils; -import com.android.dialer.calllog.PhoneNumberDisplayUtil; -import com.android.dialer.util.DialerUtils; import com.android.dialer.util.IntentUtil; import com.android.dialer.util.PhoneNumberUtil; import com.android.dialer.util.TelecomUtil; +import com.android.phone.common.incall.DialerDataSubscription; import com.android.services.callrecorder.CallRecordingDataStore; import com.android.dialer.widget.DialerQuickContact; -import com.android.phone.common.incall.CallMethodHelper; import com.android.phone.common.incall.CallMethodInfo; import com.cyanogen.ambient.incall.extension.OriginCodes; import com.cyanogen.lookup.phonenumber.provider.LookupProviderImpl; -import java.util.List; - /** * Displays the details of a specific call log entry. * <p> @@ -275,7 +262,8 @@ public class CallDetailActivity extends Activity @Override public void onClick(View view) { if (mInCallComponentName != null) { - CallMethodInfo cmi = CallMethodHelper.getCallMethod(mInCallComponentName); + CallMethodInfo cmi = DialerDataSubscription.get(mContext) + .getPluginIfExists(mInCallComponentName); if (cmi != null) { cmi.placeCall(OriginCodes.CALL_LOG_CALL, mNumber, mContext); return; @@ -366,7 +354,7 @@ public class CallDetailActivity extends Activity if (cn == null) { mDialerQuickContact.setAttributionBadge(null); } else { - CallMethodInfo cmi = CallMethodHelper.getCallMethod(cn); + CallMethodInfo cmi = DialerDataSubscription.get(mContext).getPluginIfExists(cn); if (cmi == null) { mDialerQuickContact.setAttributionBadge(null); if (DEBUG) Log.d(TAG, "Call Method was Null for: " + cn.toShortString()); diff --git a/src/com/android/dialer/DialerApplication.java b/src/com/android/dialer/DialerApplication.java index 3b5bfb6b9..e8e52e481 100644 --- a/src/com/android/dialer/DialerApplication.java +++ b/src/com/android/dialer/DialerApplication.java @@ -23,7 +23,7 @@ import com.android.contacts.common.extensions.ExtensionsFactory; import com.android.contacts.commonbind.analytics.AnalyticsUtil; import com.android.dialer.discovery.WifiCallStatusNudgeListener; import com.android.dialer.incall.InCallMetricsHelper; -import com.android.phone.common.incall.CallMethodHelper; +import com.android.phone.common.incall.DialerDataSubscription; import com.android.dialer.util.MetricsHelper; @@ -44,7 +44,7 @@ public class DialerApplication extends Application { AnalyticsUtil.initialize(this); Trace.endSection(); - CallMethodHelper.init(this); + DialerDataSubscription.init(this); MetricsHelper.init(this); WifiCallStatusNudgeListener.init(this); InCallMetricsHelper.init(this); diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java index 2ccb8cc84..ee8c6cab6 100644 --- a/src/com/android/dialer/DialtactsActivity.java +++ b/src/com/android/dialer/DialtactsActivity.java @@ -17,7 +17,6 @@ package com.android.dialer; import android.app.ActionBar; -import android.app.Activity; import android.app.Fragment; import android.app.FragmentTransaction; import android.content.ActivityNotFoundException; @@ -31,7 +30,6 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.Configuration; import android.content.res.Resources; -import android.graphics.Rect; import android.net.ConnectivityManager; import android.net.Uri; import android.os.Bundle; @@ -40,7 +38,6 @@ import android.os.Looper; import android.os.Trace; import android.provider.CallLog.Calls; import android.preference.PreferenceManager; -import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.CommonDataKinds.SipAddress; import android.speech.RecognizerIntent; @@ -49,7 +46,6 @@ import android.telecom.PhoneAccount; import android.telecom.PhoneAccountHandle; import android.telecom.TelecomManager; import android.telephony.PhoneNumberUtils; -import android.telephony.TelephonyManager; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; @@ -66,12 +62,10 @@ import android.view.ViewTreeObserver; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.AbsListView.OnScrollListener; -import android.widget.AdapterView; import android.widget.EditText; import android.widget.FrameLayout; import android.widget.ImageButton; import android.widget.PopupMenu; -import android.widget.Spinner; import android.widget.Toast; import com.android.contacts.common.activity.TransactionSafeActivity; @@ -111,9 +105,10 @@ import com.android.phone.common.animation.AnimUtils; import com.android.phone.common.ambient.AmbientConnection; import com.android.phone.common.incall.CreditBarHelper; import com.android.phone.common.incall.CallMethodInfo; -import com.android.phone.common.incall.CallMethodHelper; +import com.android.phone.common.incall.DialerDataSubscription; import com.android.phone.common.incall.CallMethodSpinnerAdapter; -import com.android.phone.common.incall.CallMethodUtils; +import com.android.phone.common.incall.StartInCallCallReceiver; +import com.android.phone.common.incall.utils.CallMethodFilters; import com.android.phone.common.util.SettingsUtil; import com.android.phone.common.animation.AnimationListenerAdapter; @@ -121,7 +116,6 @@ import com.cyanogen.ambient.incall.InCallServices; import com.cyanogen.ambient.incall.extension.StartCallRequest; import com.cyanogen.ambient.incall.extension.OriginCodes; -import com.android.phone.common.util.StartInCallCallReceiver; import junit.framework.Assert; import java.util.ArrayList; @@ -290,11 +284,11 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O private CallMethodInfo mCurrentCallMethod; private String AMBIENT_SUBSCRIPTION_ID = "DialtactsActivity"; - private CallMethodHelper.CallMethodReceiver pluginsUpdatedReceiver = - new CallMethodHelper.CallMethodReceiver() { + private DialerDataSubscription.PluginChanged<CallMethodInfo> pluginsUpdatedReceiver = + new DialerDataSubscription.PluginChanged<CallMethodInfo>() { @Override - public void onChanged(HashMap<ComponentName, CallMethodInfo> callMethodInfos) { - providersUpdated(callMethodInfos); + public void onChanged(HashMap<ComponentName, CallMethodInfo> pluginInfos) { + providersUpdated(pluginInfos); } }; @@ -363,7 +357,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O // we may miss some data. updateSmartDialDatabase(); mAvailableProviders.clear(); - CallMethodHelper.removeDisabled(availableCallMethods, mAvailableProviders); + CallMethodFilters.removeDisabled(availableCallMethods, mAvailableProviders); if (mSmartDialSearchFragment != null) { mSmartDialSearchFragment.setAvailableProviders(mAvailableProviders); } @@ -679,9 +673,10 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O Trace.beginSection(TAG + " onResume"); super.onResume(); - if (CallMethodHelper.subscribe(AMBIENT_SUBSCRIPTION_ID, pluginsUpdatedReceiver)) { - providersUpdated(CallMethodHelper.getAllCallMethods()); - CallMethodHelper.refreshDynamicItems(); + DialerDataSubscription subscription = DialerDataSubscription.get(this); + if (subscription.subscribe(AMBIENT_SUBSCRIPTION_ID, pluginsUpdatedReceiver)) { + providersUpdated(subscription.getPluginInfo()); + subscription.refreshDynamicItems(); } mStateSaved = false; diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java index 75d705f27..aceaea7c0 100644 --- a/src/com/android/dialer/calllog/CallLogFragment.java +++ b/src/com/android/dialer/calllog/CallLogFragment.java @@ -40,7 +40,6 @@ import android.view.ViewGroup; import com.android.contacts.common.GeoUtil; import com.android.contacts.common.activity.fragment.BlockContactDialogFragment; -import com.android.contacts.common.util.BlockContactHelper; import com.android.contacts.common.util.PermissionsUtil; import com.android.dialer.R; import com.android.dialer.util.EmptyLoader; @@ -48,15 +47,12 @@ import com.android.dialer.voicemail.VoicemailPlaybackPresenter; import com.android.dialer.widget.EmptyContentView; import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener; import com.android.dialerbind.ObjectFactory; -import com.android.phone.common.incall.CallMethodHelper; import com.android.phone.common.incall.CallMethodInfo; +import com.android.phone.common.incall.DialerDataSubscription; import com.cyanogen.ambient.incall.CallLogConstants; import java.util.HashMap; -import android.util.Log; -import com.cyanogen.lookup.phonenumber.provider.LookupProviderImpl; - /** * Displays a list of call log entries. To filter for a particular kind of call * (all, missed or voicemails), specify it in the constructor. @@ -144,10 +140,10 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis /* InCall Plugin Listener ID */ private static final String AMBIENT_SUBSCRIPTION_ID = "CallLogFragment"; - private CallMethodHelper.CallMethodReceiver pluginsUpdatedReceiver = - new CallMethodHelper.CallMethodReceiver() { + private DialerDataSubscription.PluginChanged<CallMethodInfo> pluginsUpdatedReceiver = + new DialerDataSubscription.PluginChanged<CallMethodInfo>() { @Override - public void onChanged(HashMap<ComponentName, CallMethodInfo> callMethodInfos) { + public void onChanged(HashMap<ComponentName, CallMethodInfo> pluginInfos) { // We moved this here because well, getting our call method data takes some time // we _should_cache this icon somewhere -> load that, then when this updates // we could update the icons. Currentlly the user has some ugly ugly flash @@ -353,7 +349,8 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis } mHasReadCallLogPermission = hasReadCallLogPermission; - if (CallMethodHelper.subscribe(AMBIENT_SUBSCRIPTION_ID, pluginsUpdatedReceiver)) { + if (DialerDataSubscription.get(getActivity()) + .subscribe(AMBIENT_SUBSCRIPTION_ID, pluginsUpdatedReceiver)) { refreshData(); mAdapter.startCache(); } @@ -366,7 +363,7 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis } mAdapter.pauseCache(); - CallMethodHelper.unsubscribe(AMBIENT_SUBSCRIPTION_ID); + DialerDataSubscription.get(getActivity()).unsubscribe(AMBIENT_SUBSCRIPTION_ID); super.onPause(); } diff --git a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java index 972addc32..c3e445969 100644 --- a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java +++ b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java @@ -17,12 +17,10 @@ package com.android.dialer.calllog; import android.app.Activity; -import android.app.DialogFragment; import android.content.ComponentName; import android.content.Context; import android.content.res.Resources; import android.content.Intent; -import android.graphics.PorterDuff.Mode; import android.net.Uri; import android.provider.CallLog.Calls; import android.provider.ContactsContract.CommonDataKinds.Phone; @@ -39,15 +37,12 @@ import android.widget.QuickContactBadge; import android.widget.ImageView; import android.widget.TextView; -import com.android.contacts.common.util.BlockContactHelper; import com.android.dialer.widget.DialerQuickContact; -import com.android.internal.telephony.util.BlacklistUtils; import com.android.contacts.common.ContactPhotoManager; import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest; import com.android.contacts.common.dialog.CallSubjectDialog; import com.android.contacts.common.testing.NeededForTesting; -import com.android.contacts.common.util.BlockContactHelper; import com.android.contacts.common.util.UriUtils; import com.android.dialer.R; import com.android.dialer.util.DialerUtils; @@ -55,10 +50,10 @@ import com.android.dialer.util.PhoneNumberUtil; import com.android.dialer.voicemail.VoicemailPlaybackPresenter; import com.android.dialer.voicemail.VoicemailPlaybackLayout; -import com.android.phone.common.incall.CallMethodHelper; import com.android.phone.common.incall.CallMethodInfo; +import com.android.phone.common.incall.DialerDataSubscription; +import com.android.phone.common.incall.utils.CallMethodFilters; import com.cyanogen.ambient.incall.extension.OriginCodes; -import com.cyanogen.lookup.phonenumber.provider.LookupProviderImpl; /** * This is an object containing references to views contained by the call log list item. This @@ -371,7 +366,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder CallMethodInfo cmi = null; if (inCallComponentName != null) { - cmi = CallMethodHelper.getCallMethod(inCallComponentName); + cmi = DialerDataSubscription.get(mContext).getPluginIfExists(inCallComponentName); } if (!TextUtils.isEmpty(voicemailUri) && canPlaceCallToNumber) { @@ -507,7 +502,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder if (cn == null) { dialerQuickContact.setAttributionBadge(null); } else { - CallMethodInfo cmi = CallMethodHelper.getCallMethod(cn); + CallMethodInfo cmi = DialerDataSubscription.get(mContext).getPluginIfExists(cn); if (cmi == null) { dialerQuickContact.setAttributionBadge(null); Log.v(TAG, "Call Method was Null for: " + cn.toShortString()); @@ -567,7 +562,8 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder } else { final String inCallAction = (String) view.getTag(R.id.incall_provider_action_type); if (inCallComponentName != null && !TextUtils.isEmpty(inCallAction)) { - CallMethodInfo cmi = CallMethodHelper.getCallMethod(inCallComponentName); + CallMethodInfo cmi = DialerDataSubscription.get(mContext) + .getPluginIfExists(inCallComponentName); if (cmi != null) { switch (inCallAction) { case INCALL_ACTION_TYPE_VIDEO: diff --git a/src/com/android/dialer/database/DialerDatabaseHelper.java b/src/com/android/dialer/database/DialerDatabaseHelper.java index fa958135b..400b2b2cf 100644 --- a/src/com/android/dialer/database/DialerDatabaseHelper.java +++ b/src/com/android/dialer/database/DialerDatabaseHelper.java @@ -36,14 +36,14 @@ import android.provider.ContactsContract.Directory; import android.text.TextUtils; import android.util.Log; -import com.android.contacts.common.list.PhoneNumberListAdapter; import com.android.contacts.common.util.PermissionsUtil; import com.android.contacts.common.util.StopWatch; import com.android.dialer.R; import com.android.dialer.dialpad.SmartDialNameMatcher; import com.android.dialer.dialpad.SmartDialPrefix; -import com.android.phone.common.incall.CallMethodHelper; +import com.android.phone.common.incall.DialerDataSubscription; +import com.android.phone.common.incall.utils.MimeTypeUtils; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Objects; import com.google.common.base.Preconditions; @@ -51,10 +51,6 @@ import com.google.common.collect.Lists; import java.lang.reflect.Method; import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import static com.cyanogen.ambient.incall.CallableConstants.ADDITIONAL_CALLABLE_MIMETYPES_PARAM_KEY; @@ -900,7 +896,7 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper { } // Get callable mimetypes from incall api, modify query uri accordingly - String mimeTypes = CallMethodHelper.getAllMimeTypes(); + String mimeTypes = MimeTypeUtils.getAllMimeTypes(DialerDataSubscription.get(mContext)); Uri uri = PhoneQuery.constructExtendedUri(mimeTypes); /** Queries the contact database to get contacts that have been updated since the last @@ -1046,7 +1042,8 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper { if (isCustomMimes) { if (selectMime != null - && CallMethodHelper.getAllEnabledMimeTypes().contains(selectMime)) { + && MimeTypeUtils.getAllEnabledMimeTypes( + DialerDataSubscription.get(mContext)).contains(selectMime)) { builder.append(SmartDialDbColumns.MIMETYPE + " = ?"); } else { builder.append(SmartDialDbColumns.MIMETYPE + " != ?"); @@ -1090,7 +1087,8 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper { ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE, ContactsContract.CommonDataKinds.SipAddress.CONTENT_ITEM_TYPE }; - String[] customMimes = CallMethodHelper.getAllEnabledMimeTypes().split(","); + String[] customMimes = MimeTypeUtils.getAllEnabledMimeTypes( + DialerDataSubscription.get(mContext)).split(","); String[] finalizedParams = new String[customMimes.length + defaultMimes.length + 1]; StringBuilder where = new StringBuilder(); diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java index 3d0045910..985ffd43e 100644 --- a/src/com/android/dialer/dialpad/DialpadFragment.java +++ b/src/com/android/dialer/dialpad/DialpadFragment.java @@ -91,10 +91,11 @@ import com.android.phone.common.CallLogAsync; import com.android.phone.common.animation.AnimUtils; import com.android.phone.common.dialpad.DialpadKeyButton; import com.android.phone.common.dialpad.DialpadView; -import com.android.phone.common.incall.CallMethodUtils; -import com.android.phone.common.incall.CallMethodHelper; import com.android.phone.common.incall.CallMethodInfo; import com.android.phone.common.incall.CreditBarHelper; +import com.android.phone.common.incall.StartInCallCallReceiver; +import com.android.phone.common.incall.utils.CallMethodFilters; +import com.android.phone.common.incall.utils.CallMethodUtils; import com.cyanogen.ambient.incall.extension.OriginCodes; import com.cyanogen.ambient.incall.extension.StatusCodes; import com.google.common.annotations.VisibleForTesting; @@ -481,7 +482,7 @@ public class DialpadFragment extends Fragment public void providersUpdated(String lastKnownCallMethod, HashMap<ComponentName, CallMethodInfo> callMethodInfos) { mAllAvailableProviders.clear(); - CallMethodHelper.removeDisabled(callMethodInfos, mAllAvailableProviders); + CallMethodFilters.removeDisabled(callMethodInfos, mAllAvailableProviders); updateSpinner(lastKnownCallMethod, callMethodInfos); if (mCurrentCallMethodInfo != null && @@ -499,7 +500,7 @@ public class DialpadFragment extends Fragment } else { SharedPreferences pref = act.getSharedPreferences( DialtactsActivity.SHARED_PREFS_NAME, Context.MODE_PRIVATE); - if (CoachMarkDrawableHelper.shouldShowCoachMark(pref) != null) { + if (CoachMarkDrawableHelper.shouldShowCoachMark(act, pref) != null) { // We would have shown the coachmark here, but some text is in our way // at this point the user will have seen the spinner so we should // hide the coachmark now and forever. @@ -1931,7 +1932,7 @@ public class DialpadFragment extends Fragment if (mCurrentCallMethodInfo != null && mCurrentCallMethodInfo.mIsInCallProvider && !PhoneNumberUtils.isEmergencyNumber(number)) { mCurrentCallMethodInfo.placeCall(origin, number, getActivity(), false, true, - new CallMethodHelper.InCallCallListener() { + new StartInCallCallReceiver.InCallCallListener() { @Override public void onResult(int resultCode) { if (resultCode == StatusCodes.StartCall.CALL_CONNECTED) { diff --git a/src/com/android/dialer/dialpad/SmartDialCursorLoader.java b/src/com/android/dialer/dialpad/SmartDialCursorLoader.java index 7f2d186a2..1cc56f1c3 100644 --- a/src/com/android/dialer/dialpad/SmartDialCursorLoader.java +++ b/src/com/android/dialer/dialpad/SmartDialCursorLoader.java @@ -17,12 +17,9 @@ package com.android.dialer.dialpad; import android.content.AsyncTaskLoader; -import android.content.ContentUris; import android.content.Context; -import android.content.Loader.ForceLoadContentObserver; import android.database.Cursor; import android.database.MatrixCursor; -import android.net.Uri; import android.provider.ContactsContract; import android.text.TextUtils; import android.util.Log; @@ -30,15 +27,11 @@ import android.util.Log; import com.android.contacts.common.list.PhoneNumberListAdapter.PhoneQuery; import com.android.contacts.common.util.PermissionsUtil; -import com.android.phone.common.incall.CallMethodHelper; - import com.android.dialer.database.DialerDatabaseHelper; import com.android.dialer.database.DialerDatabaseHelper.ContactNumber; import com.android.dialerbind.DatabaseHelperManager; import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; /** * Implements a Loader<Cursor> class to asynchronously load SmartDial search results. diff --git a/src/com/android/dialer/discovery/DiscoveryEventHandler.java b/src/com/android/dialer/discovery/DiscoveryEventHandler.java index 76ab5e4be..5c68f18c1 100644 --- a/src/com/android/dialer/discovery/DiscoveryEventHandler.java +++ b/src/com/android/dialer/discovery/DiscoveryEventHandler.java @@ -15,7 +15,7 @@ import android.util.Log; import com.android.dialer.DialtactsActivity; import com.android.phone.common.ambient.AmbientConnection; -import com.android.phone.common.incall.CallMethodUtils; +import com.android.phone.common.incall.utils.CallMethodUtils; import com.android.phone.common.util.ImageUtils; import com.cyanogen.ambient.common.api.AmbientApiClient; diff --git a/src/com/android/dialer/discovery/DiscoverySignalReceiver.java b/src/com/android/dialer/discovery/DiscoverySignalReceiver.java index 1a3362d46..207e6fc37 100644 --- a/src/com/android/dialer/discovery/DiscoverySignalReceiver.java +++ b/src/com/android/dialer/discovery/DiscoverySignalReceiver.java @@ -13,9 +13,8 @@ import android.text.TextUtils; import android.util.Log; import com.android.contacts.common.GeoUtil; import com.android.dialer.DialtactsActivity; -import com.android.dialer.discovery.DiscoveryService; import com.android.dialer.incall.InCallMetricsHelper; -import com.android.phone.common.incall.CallMethodUtils; +import com.android.phone.common.incall.utils.CallMethodUtils; import com.cyanogen.ambient.discovery.util.NudgeKey; import com.google.i18n.phonenumbers.NumberParseException; import com.google.i18n.phonenumbers.PhoneNumberUtil; diff --git a/src/com/android/dialer/discovery/WifiCallStatusNudgeListener.java b/src/com/android/dialer/discovery/WifiCallStatusNudgeListener.java index 696110114..9b57aa195 100644 --- a/src/com/android/dialer/discovery/WifiCallStatusNudgeListener.java +++ b/src/com/android/dialer/discovery/WifiCallStatusNudgeListener.java @@ -15,7 +15,7 @@ import android.telephony.PreciseCallState; import android.telephony.TelephonyManager; import android.util.Log; import com.android.dialer.DialtactsActivity; -import com.android.phone.common.incall.CallMethodUtils; +import com.android.phone.common.incall.utils.CallMethodUtils; import com.cyanogen.ambient.discovery.util.NudgeKey; import java.util.concurrent.atomic.AtomicBoolean; diff --git a/src/com/android/dialer/incall/CallMethodSpinnerHelper.java b/src/com/android/dialer/incall/CallMethodSpinnerHelper.java index 42a1e873d..b3d6bc508 100644 --- a/src/com/android/dialer/incall/CallMethodSpinnerHelper.java +++ b/src/com/android/dialer/incall/CallMethodSpinnerHelper.java @@ -9,10 +9,9 @@ import android.widget.Spinner; import com.android.dialer.util.TelecomUtil; import com.android.phone.common.incall.CallMethodInfo; -import com.android.phone.common.incall.CallMethodHelper; import com.android.phone.common.incall.CallMethodSpinnerAdapter; -import com.android.phone.common.incall.CallMethodUtils; import com.android.phone.common.util.VolteUtils; +import com.android.phone.common.incall.utils.CallMethodUtils; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/com/android/dialer/incall/CallMethodStatusReceiver.java b/src/com/android/dialer/incall/CallMethodStatusReceiver.java index 336cdc537..5d41ee6de 100644 --- a/src/com/android/dialer/incall/CallMethodStatusReceiver.java +++ b/src/com/android/dialer/incall/CallMethodStatusReceiver.java @@ -9,9 +9,8 @@ import android.os.Bundle; import com.android.dialer.DialtactsActivity; import com.android.dialer.discovery.NudgeItem; -import com.android.phone.common.incall.CallMethodHelper; -import com.android.phone.common.incall.CallMethodUtils; -import com.android.dialer.incall.InCallMetricsHelper; +import com.android.phone.common.incall.DialerDataSubscription; +import com.android.phone.common.incall.utils.CallMethodUtils; import com.android.dialer.discovery.DiscoverySignalReceiver; import com.cyanogen.ambient.discovery.util.NudgeKey; import com.cyanogen.ambient.plugin.PluginStatus; @@ -25,7 +24,7 @@ public class CallMethodStatusReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { Bundle b = intent.getExtras(); - CallMethodHelper.refresh(); + DialerDataSubscription.get(context).refresh(); SharedPreferences preferences = context .getSharedPreferences(DialtactsActivity.SHARED_PREFS_NAME, Context.MODE_PRIVATE); diff --git a/src/com/android/dialer/incall/InCallMetricsHelper.java b/src/com/android/dialer/incall/InCallMetricsHelper.java index 2a24ae19a..02ae104df 100644 --- a/src/com/android/dialer/incall/InCallMetricsHelper.java +++ b/src/com/android/dialer/incall/InCallMetricsHelper.java @@ -7,13 +7,11 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.util.Log; -import com.android.dialer.DialerApplication; import com.android.dialer.DialtactsActivity; -import com.android.dialer.incall.InCallMetricsReceiver; import com.android.internal.annotations.VisibleForTesting; import com.android.phone.common.ambient.AmbientConnection; -import com.android.phone.common.incall.CallMethodHelper; -import com.android.phone.common.incall.CallMethodInfo; +import com.android.phone.common.incall.DialerDataSubscription; +import com.android.phone.common.incall.api.InCallQueries; import com.cyanogen.ambient.analytics.AnalyticsServices; import com.cyanogen.ambient.analytics.Event; @@ -160,8 +158,8 @@ public class InCallMetricsHelper { * @param params fields that are part of the event * @param cn associated with the plugin */ - public static Event sendEvent(Categories category, Events action, - HashMap<Parameters, Object> params, ComponentName cn) { + public static Event sendEvent(Context c, Categories category, Events action, + HashMap<Parameters, Object> params, ComponentName cn) { Event.Builder event = new Event.Builder(CATEGORY_BASE + category.value(), action.value()); if (params != null && params.size() > 0) { for (Parameters p : params.keySet()) { @@ -169,7 +167,7 @@ public class InCallMetricsHelper { } } Event e = event.build(); - CallMethodHelper.shipAnalyticsToPlugin(cn, e); + InCallQueries.shipAnalyticsToPlugin(DialerDataSubscription.get(c).mClient, cn, e); getInstance().sendAmbientEvent(e); return e; } @@ -362,7 +360,7 @@ public class InCallMetricsHelper { /** * Prepares all our metrics for sending. */ - static void prepareToSend() { + static void prepareToSend(Context context) { SharedPreferences sp = getInstance().mContext.getSharedPreferences( METRICS_SHARED_PREFERENCES, Context.MODE_PRIVATE); HashMap<String, HashMap<Parameters, Object>> items = getHashOfHashOfItems(sp.getAll()); @@ -375,7 +373,7 @@ public class InCallMetricsHelper { Categories category = Categories.valueOf(keyParts[CATEGORY]); Events event = Events.valueOf(keyParts[EVENT]); HashMap<Parameters, Object> params = items.get(key); - sendEvent(category, event, params, component); + sendEvent(context, category, event, params, component); } } diff --git a/src/com/android/dialer/incall/InCallMetricsReceiver.java b/src/com/android/dialer/incall/InCallMetricsReceiver.java index 9de058d82..196202f6d 100644 --- a/src/com/android/dialer/incall/InCallMetricsReceiver.java +++ b/src/com/android/dialer/incall/InCallMetricsReceiver.java @@ -3,6 +3,7 @@ package com.android.dialer.incall; import android.app.IntentService; import android.content.ComponentName; import android.content.ContentResolver; +import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.net.Uri; @@ -59,13 +60,13 @@ public class InCallMetricsReceiver extends IntentService { d.setTime(calendar.getTime().getTime()); if (TelecomUtil.hasReadPhoneStatus(getApplicationContext())) { - lookupCallsSince(d.getTime(), getContentResolver()); + lookupCallsSince(d.getTime(), getContentResolver(), getApplicationContext()); } // Send stored Incall Specific events if (CMSettings.Secure.getInt(getApplicationContext().getContentResolver(), CMSettings.Secure.STATS_COLLECTION, 1) != 0) { - InCallMetricsHelper.prepareToSend(); + InCallMetricsHelper.prepareToSend(getApplicationContext()); } } @@ -75,7 +76,7 @@ public class InCallMetricsReceiver extends IntentService { @VisibleForTesting /* package */ static void lookupCallsSince(long time, - ContentResolver contentResolver) { + ContentResolver contentResolver, Context context) { Uri uri = CallLogConstants.CONTENT_ALL_URI.buildUpon().build(); @@ -218,8 +219,8 @@ public class InCallMetricsReceiver extends IntentService { } } - InCallMetricsHelper.sendEvent(InCallMetricsHelper.Categories.CALLS, event, params, - ComponentName.unflattenFromString(pluginComponent)); + InCallMetricsHelper.sendEvent(context, InCallMetricsHelper.Categories.CALLS, + event, params, ComponentName.unflattenFromString(pluginComponent)); } } diff --git a/src/com/android/dialer/interactions/PhoneNumberInteraction.java b/src/com/android/dialer/interactions/PhoneNumberInteraction.java index f24371d44..f32135591 100644 --- a/src/com/android/dialer/interactions/PhoneNumberInteraction.java +++ b/src/com/android/dialer/interactions/PhoneNumberInteraction.java @@ -58,7 +58,8 @@ import com.android.dialer.contact.ContactUpdateService; import com.android.dialer.util.IntentUtil; import com.android.dialer.util.DialerUtils; -import com.android.phone.common.incall.CallMethodHelper; +import com.android.phone.common.incall.DialerDataSubscription; +import com.android.phone.common.incall.utils.MimeTypeUtils; import com.cyanogen.ambient.incall.extension.OriginCodes; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Joiner; @@ -517,7 +518,8 @@ public class PhoneNumberInteraction implements OnLoadCompleteListener<Cursor> { */ public static void startInteractionForPhoneCall(TransactionSafeActivity activity, Uri uri) { (new PhoneNumberInteraction(activity, ContactDisplayUtils.INTERACTION_CALL, null)) - .startInteraction(uri, true, CallMethodHelper.getAllEnabledMimeTypes()); + .startInteraction(uri, true, MimeTypeUtils.getAllEnabledMimeTypes( + DialerDataSubscription.get(activity))); } /** @@ -538,7 +540,8 @@ public class PhoneNumberInteraction implements OnLoadCompleteListener<Cursor> { public static void startInteractionForPhoneCall(TransactionSafeActivity activity, Uri uri, boolean useDefault) { (new PhoneNumberInteraction(activity, ContactDisplayUtils.INTERACTION_CALL, null)) - .startInteraction(uri, useDefault, CallMethodHelper.getAllEnabledMimeTypes()); + .startInteraction(uri, useDefault, MimeTypeUtils.getAllEnabledMimeTypes( + DialerDataSubscription.get(activity))); } /** @@ -558,7 +561,8 @@ public class PhoneNumberInteraction implements OnLoadCompleteListener<Cursor> { String callOrigin, PhoneAccountHandle accountHandle) { (new PhoneNumberInteraction(activity, ContactDisplayUtils.INTERACTION_CALL, null, callOrigin, accountHandle)) - .startInteraction(uri, true, CallMethodHelper.getAllEnabledMimeTypes()); + .startInteraction(uri, true, MimeTypeUtils.getAllEnabledMimeTypes( + DialerDataSubscription.get(activity))); } /** @@ -575,7 +579,8 @@ public class PhoneNumberInteraction implements OnLoadCompleteListener<Cursor> { */ public static void startInteractionForTextMessage(TransactionSafeActivity activity, Uri uri) { (new PhoneNumberInteraction(activity, ContactDisplayUtils.INTERACTION_SMS, null)) - .startInteraction(uri, true, CallMethodHelper.getAllEnabledMimeTypes()); + .startInteraction(uri, true, MimeTypeUtils.getAllEnabledMimeTypes( + DialerDataSubscription.get(activity))); } @VisibleForTesting diff --git a/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java b/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java index e6261bef4..53d95e351 100644 --- a/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java +++ b/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java @@ -4,19 +4,15 @@ import android.content.ComponentName; import android.content.Context; import android.content.res.Resources; import android.database.Cursor; -import android.graphics.drawable.ScaleDrawable; import android.provider.ContactsContract; import android.telephony.PhoneNumberUtils; import android.text.BidiFormatter; import android.text.TextDirectionHeuristics; import android.text.TextUtils; -import android.util.Log; import android.graphics.drawable.Drawable; -import android.view.Gravity; import android.view.View; import android.view.ViewGroup; -import android.widget.TextView; import com.android.contacts.common.CallUtil; import com.android.contacts.common.GeoUtil; import com.android.contacts.common.list.ContactListItemView; @@ -24,8 +20,9 @@ import com.android.contacts.common.list.PhoneNumberListAdapter; import com.android.contacts.common.util.PhoneNumberHelper; import com.android.dialer.util.ImageUtils; import com.android.phone.common.incall.CallMethodInfo; -import com.android.phone.common.incall.CallMethodHelper; import com.android.dialer.R; +import com.android.phone.common.incall.DialerDataSubscription; +import com.android.phone.common.incall.utils.CallMethodFilters; import java.util.ArrayList; import java.util.HashMap; @@ -206,7 +203,8 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter { public String getLabelType(Cursor c, int type) { if (type == ContactsContract.CommonDataKinds.Phone.TYPE_CUSTOM) { final String providerLabel = c.getString(PhoneNumberListAdapter.PhoneQuery.PHONE_MIME_TYPE); - CallMethodInfo cmi = CallMethodHelper.getMethodForMimeType(providerLabel, false); + CallMethodInfo cmi = CallMethodFilters.getMethodForMimeType(providerLabel, false, + DialerDataSubscription.get(getContext())); if (cmi != null) { return cmi.mName; } else { diff --git a/src/com/android/dialer/list/RegularSearchFragment.java b/src/com/android/dialer/list/RegularSearchFragment.java index 74b620f39..bc44ab555 100644 --- a/src/com/android/dialer/list/RegularSearchFragment.java +++ b/src/com/android/dialer/list/RegularSearchFragment.java @@ -27,7 +27,6 @@ import com.android.contacts.common.list.ContactEntryListAdapter; import com.android.contacts.common.list.PinnedHeaderListView; import com.android.contacts.common.util.PermissionsUtil; import com.android.contacts.commonbind.analytics.AnalyticsUtil; -import com.android.dialer.DialtactsActivity; import com.android.dialerbind.ObjectFactory; import com.android.dialer.R; @@ -37,9 +36,9 @@ import com.android.dialer.service.CachedNumberLookupService; import com.android.dialer.widget.EmptyContentView; import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener; -import com.android.phone.common.incall.CallMethodHelper; -import com.android.phone.common.incall.CallMethodInfo; import com.android.phone.common.incall.CreditBarHelper; +import com.android.phone.common.incall.DialerDataSubscription; +import com.android.phone.common.incall.utils.CallMethodFilters; public class RegularSearchFragment extends SearchFragment implements OnEmptyViewActionButtonClickedListener, @@ -87,7 +86,8 @@ public class RegularSearchFragment extends SearchFragment RegularSearchListAdapter adapter = new RegularSearchListAdapter(getActivity()); adapter.setDisplayPhotos(true); adapter.setUseCallableUri(usesCallableUri()); - adapter.setAvailableCallMethods(CallMethodHelper.getAllEnabledCallMethods()); + adapter.setAvailableCallMethods(CallMethodFilters.getAllEnabledCallMethods( + DialerDataSubscription.get(getActivity()))); return adapter; } diff --git a/src/com/android/dialer/list/SearchFragment.java b/src/com/android/dialer/list/SearchFragment.java index ebdbfa6f8..869dc5fa6 100644 --- a/src/com/android/dialer/list/SearchFragment.java +++ b/src/com/android/dialer/list/SearchFragment.java @@ -22,14 +22,10 @@ import android.animation.AnimatorInflater; import android.animation.AnimatorListenerAdapter; import android.app.Activity; import android.app.DialogFragment; -import android.content.Context; import android.content.Intent; import android.content.res.Configuration; import android.content.res.Resources; -import android.net.Uri; import android.os.Bundle; -import android.provider.ContactsContract; -import android.telecom.PhoneAccountHandle; import android.telephony.PhoneNumberUtils; import android.text.TextUtils; import android.util.Log; @@ -49,7 +45,6 @@ import com.android.contacts.common.list.OnPhoneNumberPickerActionListener; import com.android.contacts.common.list.PhoneNumberPickerFragment; import com.android.contacts.common.util.PermissionsUtil; import com.android.contacts.common.util.ViewUtil; -import com.android.contacts.commonbind.analytics.AnalyticsUtil; import com.android.dialer.DialtactsActivity; import com.android.dialer.dialpad.DialpadFragment.ErrorDialogFragment; import com.android.dialer.R; @@ -59,9 +54,10 @@ import com.android.dialer.util.IntentUtil; import com.android.dialer.widget.EmptyContentView; import com.android.phone.common.animation.AnimUtils; import com.android.phone.common.incall.CallMethodInfo; -import com.android.phone.common.incall.CallMethodHelper; import com.android.phone.common.incall.CreditBarHelper; +import com.android.phone.common.incall.DialerDataSubscription; +import com.android.phone.common.incall.utils.CallMethodFilters; import com.cyanogen.ambient.incall.extension.OriginCodes; public class SearchFragment extends PhoneNumberPickerFragment @@ -262,7 +258,8 @@ public class SearchFragment extends PhoneNumberPickerFragment adapter.setDisplayPhotos(true); adapter.setUseCallableUri(super.usesCallableUri()); adapter.setSearchListner(this); - adapter.setAvailableCallMethods(CallMethodHelper.getAllEnabledCallMethods()); + adapter.setAvailableCallMethods(CallMethodFilters.getAllEnabledCallMethods( + DialerDataSubscription.get(getActivity()))); return adapter; } diff --git a/src/com/android/dialer/list/SmartDialSearchFragment.java b/src/com/android/dialer/list/SmartDialSearchFragment.java index fdeb35569..2ae1e947b 100644 --- a/src/com/android/dialer/list/SmartDialSearchFragment.java +++ b/src/com/android/dialer/list/SmartDialSearchFragment.java @@ -29,13 +29,10 @@ import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; import android.os.Bundle; -import android.telephony.ServiceState; import android.telephony.TelephonyManager; -import android.text.Html; import android.text.TextUtils; -import android.view.View; -import android.widget.TextView; + import com.android.contacts.common.list.ContactEntryListAdapter; import com.android.contacts.common.util.PermissionsUtil; import com.android.dialer.DialtactsActivity; @@ -43,9 +40,9 @@ import com.android.dialer.dialpad.SmartDialCursorLoader; import com.android.dialer.R; import com.android.dialer.incall.InCallMetricsHelper; import com.android.dialer.widget.EmptyContentView; -import com.android.internal.telephony.TelephonyIntents; import com.android.phone.common.incall.CallMethodInfo; -import com.android.phone.common.incall.CallMethodHelper; +import com.android.phone.common.incall.DialerDataSubscription; +import com.android.phone.common.incall.utils.CallMethodFilters; import java.util.ArrayList; import java.util.HashMap; @@ -75,7 +72,8 @@ public class SmartDialSearchFragment extends SearchFragment // Set adapter's query string to restore previous instance state. adapter.setQueryString(getQueryString()); adapter.setSearchListner(this); - adapter.setAvailableCallMethods(CallMethodHelper.getAllEnabledCallMethods()); + adapter.setAvailableCallMethods(CallMethodFilters.getAllEnabledCallMethods( + DialerDataSubscription.get(getActivity()))); return adapter; } @@ -142,10 +140,10 @@ public class SmartDialSearchFragment extends SearchFragment // Get Current InCall plugin specific call methods, we don't want to update this // suddenly so just the currently available ones are fine. - //setAvailableProviders(CallMethodHelper.getAllCallMethods()); if (mAvailableProviders == null) { mAvailableProviders = new HashMap<ComponentName, CallMethodInfo>(); - mAvailableProviders.putAll(CallMethodHelper.getAllEnabledCallMethods()); + mAvailableProviders.putAll(CallMethodFilters.getAllEnabledCallMethods( + DialerDataSubscription.get(getActivity()))); } if (mCurrentCallMethodInfo != null && mCurrentCallMethodInfo.mIsInCallProvider) { diff --git a/src/com/android/dialer/list/SpeedDialFragment.java b/src/com/android/dialer/list/SpeedDialFragment.java index f51039be2..f0b187e24 100644 --- a/src/com/android/dialer/list/SpeedDialFragment.java +++ b/src/com/android/dialer/list/SpeedDialFragment.java @@ -29,7 +29,6 @@ import android.content.CursorLoader; import android.content.Loader; import android.content.pm.PackageManager; import android.database.Cursor; -import android.database.DatabaseUtils; import android.graphics.Rect; import android.net.Uri; import android.os.Bundle; @@ -56,8 +55,9 @@ import com.android.contacts.common.list.OnPhoneNumberPickerActionListener; import com.android.contacts.common.util.PermissionsUtil; import com.android.dialer.R; import com.android.dialer.widget.EmptyContentView; -import com.android.phone.common.incall.CallMethodHelper; +import com.android.phone.common.incall.DialerDataSubscription; import com.android.phone.common.incall.CallMethodInfo; +import com.android.phone.common.incall.utils.MimeTypeUtils; import java.util.ArrayList; import java.util.HashMap; @@ -212,22 +212,27 @@ public class SpeedDialFragment extends Fragment implements OnItemClickListener, } private void providersUpdated(HashMap<ComponentName, CallMethodInfo> callMethodInfos) { - mCallableMimeTypes = CallMethodHelper.getAllEnabledMimeTypes(); + mCallableMimeTypes = MimeTypeUtils.getAllEnabledMimeTypes( + DialerDataSubscription.get(getContext())); loadSpeedDialFavorites(); } - CallMethodHelper.CallMethodReceiver pluginsUpdatedReceiver = - new CallMethodHelper.CallMethodReceiver() { + DialerDataSubscription.PluginChanged<CallMethodInfo> pluginsUpdatedReceiver = + new DialerDataSubscription.PluginChanged<CallMethodInfo>() { @Override - public void onChanged(HashMap<ComponentName, CallMethodInfo> callMethodInfos) { - providersUpdated(callMethodInfos); + public void onChanged(HashMap<ComponentName, CallMethodInfo> pluginInfos) { + providersUpdated(pluginInfos); } }; private void loadSpeedDialFavorites() { - Bundle bundle = new Bundle(); - bundle.putString(ADDITIONAL_CALLABLE_MIMETYPES_PARAM_KEY, mCallableMimeTypes); - getLoaderManager().initLoader(LOADER_ID_CONTACT_TILE, bundle, mContactTileLoaderListener); + if (mCallableMimeTypes != null) { + Bundle bundle = new Bundle(); + bundle.putString(ADDITIONAL_CALLABLE_MIMETYPES_PARAM_KEY, mCallableMimeTypes); + getLoaderManager().destroyLoader(LOADER_ID_CONTACT_TILE); + getLoaderManager().initLoader(LOADER_ID_CONTACT_TILE, bundle, + mContactTileLoaderListener); + } } @Override @@ -236,10 +241,10 @@ public class SpeedDialFragment extends Fragment implements OnItemClickListener, super.onResume(); if (PermissionsUtil.hasContactsPermissions(getActivity())) { - - if(CallMethodHelper.subscribe(AMBIENT_SUBSCRIPTION_ID, pluginsUpdatedReceiver)) { - providersUpdated(CallMethodHelper.getAllCallMethods()); - CallMethodHelper.refreshDynamicItems(); + DialerDataSubscription subscription = DialerDataSubscription.get(getContext()); + if(subscription.subscribe(AMBIENT_SUBSCRIPTION_ID, pluginsUpdatedReceiver)) { + providersUpdated(subscription.getPluginInfo()); + subscription.refreshDynamicItems(); } mEmptyView.setDescription(R.string.speed_dial_empty); @@ -348,7 +353,7 @@ public class SpeedDialFragment extends Fragment implements OnItemClickListener, @Override public void onPause() { - CallMethodHelper.unsubscribe(AMBIENT_SUBSCRIPTION_ID); + DialerDataSubscription.get(getContext()).unsubscribe(AMBIENT_SUBSCRIPTION_ID); super.onPause(); } diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java index b8c7d8aa3..27fa53416 100644 --- a/src/com/android/dialer/settings/DialerSettingsActivity.java +++ b/src/com/android/dialer/settings/DialerSettingsActivity.java @@ -13,13 +13,12 @@ import android.widget.CompoundButton; import android.widget.Switch; import com.android.internal.annotations.VisibleForTesting; import com.android.phone.common.ambient.AmbientConnection; -import com.android.phone.common.incall.CallMethodHelper; +import com.android.phone.common.incall.DialerDataSubscription; import com.android.phone.common.incall.CallMethodInfo; import com.cyanogen.ambient.callerinfo.CallerInfoServices; import com.cyanogen.ambient.callerinfo.results.IsAuthenticatedResult; import com.cyanogen.ambient.callerinfo.util.CallerInfoHelper; import com.cyanogen.ambient.callerinfo.util.ProviderInfo; -import com.cyanogen.ambient.common.api.AmbientApiClient; import com.cyanogen.ambient.common.api.PendingResult; import com.cyanogen.ambient.common.api.ResultCallback; import com.cyanogen.ambient.plugin.PluginStatus; @@ -76,11 +75,11 @@ public class DialerSettingsActivity extends PreferenceActivity { private static final String AMBIENT_SUBSCRIPTION_ID = "DialerSettingsActivity"; - CallMethodHelper.CallMethodReceiver pluginsUpdatedReceiver = - new CallMethodHelper.CallMethodReceiver() { + DialerDataSubscription.PluginChanged<CallMethodInfo> pluginsUpdatedReceiver = + new DialerDataSubscription.PluginChanged<CallMethodInfo>() { @Override - public void onChanged(HashMap<ComponentName, CallMethodInfo> callMethodInfos) { - providersUpdated(callMethodInfos); + public void onChanged(HashMap<ComponentName, CallMethodInfo> pluginInfos) { + providersUpdated(pluginInfos); } }; @@ -93,9 +92,10 @@ public class DialerSettingsActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { // Needs to be done prior to super's onCreate - if(CallMethodHelper.subscribe(AMBIENT_SUBSCRIPTION_ID, pluginsUpdatedReceiver)) { - providersUpdated(CallMethodHelper.getAllCallMethods()); - CallMethodHelper.refreshDynamicItems(); + DialerDataSubscription subscription = DialerDataSubscription.get(this); + if(subscription.subscribe(AMBIENT_SUBSCRIPTION_ID, pluginsUpdatedReceiver)) { + providersUpdated(subscription.getPluginInfo()); + subscription.refreshDynamicItems(); } if (CallerInfoHelper.getInstalledProviders(this).length > 0) { CallerInfoHelper.ResolvedProvider[] providers = @@ -303,7 +303,7 @@ public class DialerSettingsActivity extends PreferenceActivity { @Override protected void onPause() { super.onPause(); - CallMethodHelper.unsubscribe(AMBIENT_SUBSCRIPTION_ID); + DialerDataSubscription.get(this).unsubscribe(AMBIENT_SUBSCRIPTION_ID); } /** diff --git a/src/com/android/dialer/util/CoachMarkDrawableHelper.java b/src/com/android/dialer/util/CoachMarkDrawableHelper.java index dba3b9016..8d051d546 100644 --- a/src/com/android/dialer/util/CoachMarkDrawableHelper.java +++ b/src/com/android/dialer/util/CoachMarkDrawableHelper.java @@ -34,9 +34,9 @@ import com.android.dialer.DialtactsActivity; import com.android.dialer.R; import com.android.dialer.widget.CoachMarkDrawable; -import com.android.phone.common.incall.CallMethodUtils; +import com.android.phone.common.incall.DialerDataSubscription; +import com.android.phone.common.incall.utils.CallMethodUtils; import com.android.phone.common.incall.CallMethodInfo; -import com.android.phone.common.incall.CallMethodHelper; import com.cyanogen.ambient.plugin.PluginStatus; @@ -48,7 +48,7 @@ public class CoachMarkDrawableHelper { final String unformatted) { final SharedPreferences pref = act .getSharedPreferences(DialtactsActivity.SHARED_PREFS_NAME, Context.MODE_PRIVATE); - final CallMethodInfo cmi = shouldShowCoachMark(pref); + final CallMethodInfo cmi = shouldShowCoachMark(act, pref); if (cmi != null) { ViewTreeObserver vto = v.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @@ -72,7 +72,7 @@ public class CoachMarkDrawableHelper { final float fontWidthScale) { final SharedPreferences pref = act .getSharedPreferences(DialtactsActivity.SHARED_PREFS_NAME, Context.MODE_PRIVATE); - final CallMethodInfo cmi = shouldShowCoachMark(pref); + final CallMethodInfo cmi = shouldShowCoachMark(act, pref); if (cmi != null) { touch.clearFocus(); ViewTreeObserver vto = v.getViewTreeObserver(); @@ -89,7 +89,8 @@ public class CoachMarkDrawableHelper { } } - public static CallMethodInfo shouldShowCoachMark(SharedPreferences pref) { + public static CallMethodInfo shouldShowCoachMark(Context context, SharedPreferences pref) { + String lastProvider = pref.getString(CallMethodUtils.PREF_LAST_ENABLED_PROVIDER, null); boolean showCoachmark = pref.getBoolean(CallMethodUtils.PREF_SPINNER_COACHMARK_SHOW, false); @@ -100,8 +101,10 @@ public class CoachMarkDrawableHelper { if (cn == null) { return null; } - final CallMethodInfo cmi = CallMethodHelper.getCallMethod(cn); - if (showCoachmark && !CallMethodHelper.getAllCallMethods().isEmpty() && cmi != null) { + final CallMethodInfo cmi = DialerDataSubscription.get(context).getPluginIfExists(cn); + if (showCoachmark + && !DialerDataSubscription.get(context).getPluginInfo().isEmpty() + && cmi != null) { if (cmi.mStatus == PluginStatus.ENABLED) { return cmi; } |