diff options
author | Stephen Bird <sbird@cyngn.com> | 2016-06-07 16:18:31 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2016-06-08 17:38:56 -0700 |
commit | 52cab04f34c67b3e9e649fe1618a5161c90db1d2 (patch) | |
tree | 53acc67712bb9a31b1cf52dc57eb6aa9efdfc21c /src | |
parent | 6a2124a290adcafff813c7f8fb874b54ded8a120 (diff) | |
download | android_packages_apps_Dialer-52cab04f34c67b3e9e649fe1618a5161c90db1d2.tar.gz android_packages_apps_Dialer-52cab04f34c67b3e9e649fe1618a5161c90db1d2.tar.bz2 android_packages_apps_Dialer-52cab04f34c67b3e9e649fe1618a5161c90db1d2.zip |
Nudges: Move roaming nudge logic to wifi listener
When the call ends, if the user was on wifi the entire time and was roaming
then we will show the roaming text. Otherwise, this will count as a wifi
nudge.
Change-Id: Ic85a308d1860977fe4a62265fc293025ddb6a5a3
Ticket: CD-678
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/dialer/discovery/DiscoverySignalReceiver.java | 25 | ||||
-rw-r--r-- | src/com/android/dialer/discovery/WifiCallStatusNudgeListener.java | 25 |
2 files changed, 20 insertions, 30 deletions
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() { |