summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest_cm.xml1
-rw-r--r--src/com/android/dialer/discovery/DiscoverySignalReceiver.java25
-rw-r--r--src/com/android/dialer/discovery/WifiCallStatusNudgeListener.java25
3 files changed, 20 insertions, 31 deletions
diff --git a/AndroidManifest_cm.xml b/AndroidManifest_cm.xml
index 0eda7afd8..398d7b208 100644
--- a/AndroidManifest_cm.xml
+++ b/AndroidManifest_cm.xml
@@ -48,7 +48,6 @@
<receiver android:name=".discovery.DiscoverySignalReceiver">
<intent-filter>
- <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
<action android:name="com.android.dialer.discovery.DiscoverySignalReceiver.ON_SHOW" />
<action android:name="com.android.dialer.discovery.DiscoverySignalReceiver.ON_DISMISS" />
diff --git a/src/com/android/dialer/discovery/DiscoverySignalReceiver.java b/src/com/android/dialer/discovery/DiscoverySignalReceiver.java
index bd448fc4a..680426543 100644
--- a/src/com/android/dialer/discovery/DiscoverySignalReceiver.java
+++ b/src/com/android/dialer/discovery/DiscoverySignalReceiver.java
@@ -55,25 +55,6 @@ public class DiscoverySignalReceiver extends BroadcastReceiver {
}
switch (action) {
- case ConnectivityManager.CONNECTIVITY_ACTION:
- ConnectivityManager connManager = (ConnectivityManager)
- context.getSystemService(Context.CONNECTIVITY_SERVICE);
-
- NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
-
- TelephonyManager tm =
- (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
-
- if ((mWifi.isConnected() && tm.isNetworkRoaming()) || DEBUG_CONNECTIVITY) {
- SharedPreferences preferences = context
- .getSharedPreferences(DialtactsActivity.SHARED_PREFS_NAME,
- Context.MODE_PRIVATE);
- int currentCount = preferences.getInt(CallMethodUtils.PREF_ROAMING_CALLS, 0);
- preferences.edit().putInt(CallMethodUtils.PREF_ROAMING_CALLS,
- ++currentCount).apply();
- startServiceForConnectivityChanged(context);
- }
- break;
case Intent.ACTION_NEW_OUTGOING_CALL:
String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
SharedPreferences preferences = context
@@ -172,19 +153,19 @@ public class DiscoverySignalReceiver extends BroadcastReceiver {
return false;
}
- private void startServiceForInternationalCallMade(Context context) {
+ private static void startServiceForInternationalCallMade(Context context) {
Intent serviceIntent = getIntentForDiscoveryService(context);
serviceIntent.setAction(Intent.ACTION_NEW_OUTGOING_CALL);
context.startService(serviceIntent);
}
- private void startServiceForConnectivityChanged(Context context) {
+ public static void startServiceForConnectivityChanged(Context context) {
Intent serviceIntent = getIntentForDiscoveryService(context);
serviceIntent.setAction(ConnectivityManager.CONNECTIVITY_ACTION);
context.startService(serviceIntent);
}
- private Intent getIntentForDiscoveryService(Context context) {
+ private static Intent getIntentForDiscoveryService(Context context) {
return new Intent(context, DiscoveryService.class);
}
diff --git a/src/com/android/dialer/discovery/WifiCallStatusNudgeListener.java b/src/com/android/dialer/discovery/WifiCallStatusNudgeListener.java
index 9b57aa195..3990d27f4 100644
--- a/src/com/android/dialer/discovery/WifiCallStatusNudgeListener.java
+++ b/src/com/android/dialer/discovery/WifiCallStatusNudgeListener.java
@@ -34,6 +34,7 @@ public class WifiCallStatusNudgeListener {
private final static int PRECISE_CALL_STATE_DIALING = 2;
private static Context mContext;
+ private static TelephonyManager mTelephonyManager;
private static BroadcastReceiver mWifiListener = new BroadcastReceiver() {
@Override
@@ -114,9 +115,8 @@ public class WifiCallStatusNudgeListener {
mContext = c;
mReceiverRegistered.set(false);
- TelephonyManager telephony
- = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
- telephony.listen(mPhoneStateListener, PhoneStateListener.LISTEN_PRECISE_CALL_STATE);
+ mTelephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
+ mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_PRECISE_CALL_STATE);
}
private static void startReceiver() {
@@ -143,11 +143,20 @@ public class WifiCallStatusNudgeListener {
SharedPreferences preferences = mContext
.getSharedPreferences(DialtactsActivity.SHARED_PREFS_NAME, Context.MODE_PRIVATE);
- int currentCount = preferences.getInt(CallMethodUtils.PREF_WIFI_CALL, 0);
- preferences.edit().putInt(CallMethodUtils.PREF_WIFI_CALL, ++currentCount).apply();
-
- new DiscoveryEventHandler(mContext).getNudgeProvidersWithKey(
- NudgeKey.NOTIFICATION_WIFI_CALL);
+ int currentCount;
+ // If the network is roaming and we are on wifi,
+ // then we want to show a potential roaming nudge instead of a wifi nudge.
+ if (mTelephonyManager.isNetworkRoaming()) {
+ currentCount = preferences.getInt(CallMethodUtils.PREF_ROAMING_CALLS, 0);
+ preferences.edit().putInt(CallMethodUtils.PREF_ROAMING_CALLS, ++currentCount).apply();
+ DiscoverySignalReceiver.startServiceForConnectivityChanged(mContext);
+ } else {
+ currentCount = preferences.getInt(CallMethodUtils.PREF_WIFI_CALL, 0);
+ preferences.edit().putInt(CallMethodUtils.PREF_WIFI_CALL, ++currentCount).apply();
+
+ new DiscoveryEventHandler(mContext).getNudgeProvidersWithKey(
+ NudgeKey.NOTIFICATION_WIFI_CALL);
+ }
}
private static void callOnWifiFailure() {