diff options
| -rw-r--r-- | AndroidManifest_cm.xml | 1 | ||||
| -rw-r--r-- | src/com/android/dialer/discovery/DiscoverySignalReceiver.java | 25 | ||||
| -rw-r--r-- | src/com/android/dialer/discovery/WifiCallStatusNudgeListener.java | 25 |
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() { |
