summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/dialer/CallDetailActivity.java20
-rw-r--r--src/com/android/dialer/DialerApplication.java4
-rw-r--r--src/com/android/dialer/DialtactsActivity.java29
-rw-r--r--src/com/android/dialer/calllog/CallLogFragment.java17
-rw-r--r--src/com/android/dialer/calllog/CallLogListItemViewHolder.java16
-rw-r--r--src/com/android/dialer/database/DialerDatabaseHelper.java16
-rw-r--r--src/com/android/dialer/dialpad/DialpadFragment.java11
-rw-r--r--src/com/android/dialer/dialpad/SmartDialCursorLoader.java7
-rw-r--r--src/com/android/dialer/discovery/DiscoveryEventHandler.java2
-rw-r--r--src/com/android/dialer/discovery/DiscoverySignalReceiver.java3
-rw-r--r--src/com/android/dialer/discovery/WifiCallStatusNudgeListener.java2
-rw-r--r--src/com/android/dialer/incall/CallMethodSpinnerHelper.java3
-rw-r--r--src/com/android/dialer/incall/CallMethodStatusReceiver.java7
-rw-r--r--src/com/android/dialer/incall/InCallMetricsHelper.java16
-rw-r--r--src/com/android/dialer/incall/InCallMetricsReceiver.java11
-rw-r--r--src/com/android/dialer/interactions/PhoneNumberInteraction.java15
-rw-r--r--src/com/android/dialer/list/DialerPhoneNumberListAdapter.java10
-rw-r--r--src/com/android/dialer/list/RegularSearchFragment.java8
-rw-r--r--src/com/android/dialer/list/SearchFragment.java11
-rw-r--r--src/com/android/dialer/list/SmartDialSearchFragment.java16
-rw-r--r--src/com/android/dialer/list/SpeedDialFragment.java35
-rw-r--r--src/com/android/dialer/settings/DialerSettingsActivity.java20
-rw-r--r--src/com/android/dialer/util/CoachMarkDrawableHelper.java17
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;
}