Loading src/java/com/android/internal/telephony/DefaultPhoneNotifier.java +10 −0 Original line number Diff line number Diff line Loading @@ -309,6 +309,16 @@ public class DefaultPhoneNotifier implements PhoneNotifier { } } @Override public void notifyUserMobileDataStateChanged(Phone sender, boolean state) { try { mRegistry.notifyUserMobileDataStateChangedForPhoneId( sender.getPhoneId(), sender.getSubId(), state); } catch (RemoteException ex) { // system process is dead } } /** * Convert the {@link Phone.DataActivityState} enum into the TelephonyManager.DATA_* constants * for the public API. Loading src/java/com/android/internal/telephony/Phone.java +4 −0 Original line number Diff line number Diff line Loading @@ -2120,6 +2120,10 @@ public abstract class Phone extends Handler implements PhoneInternalInterface { mNotifier.notifyDataActivationStateChanged(this, state); } public void notifyUserMobileDataStateChanged(boolean state) { mNotifier.notifyUserMobileDataStateChanged(this, state); } public void notifySignalStrength() { mNotifier.notifySignalStrength(this); } Loading src/java/com/android/internal/telephony/PhoneNotifier.java +2 −0 Original line number Diff line number Diff line Loading @@ -62,4 +62,6 @@ public interface PhoneNotifier { public void notifyVoiceActivationStateChanged(Phone sender, int activationState); public void notifyDataActivationStateChanged(Phone sender, int activationState); public void notifyUserMobileDataStateChanged(Phone sender, boolean state); } src/java/com/android/internal/telephony/dataconnection/DcTracker.java +2 −0 Original line number Diff line number Diff line Loading @@ -812,6 +812,8 @@ public class DcTracker extends Handler { } } mPhone.notifyUserMobileDataStateChanged(enabled); // TODO: We should register for DataEnabledSetting's data enabled/disabled event and // handle the rest from there. if (enabled) { Loading tests/telephonytests/src/com/android/internal/telephony/PhoneStateListenerTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import android.test.suitebuilder.annotation.SmallTest; import org.junit.After; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.lang.reflect.Field; import static org.mockito.Mockito.verify; Loading @@ -29,6 +31,7 @@ public class PhoneStateListenerTest extends TelephonyTest { private PhoneStateListener mPhoneStateListenerUT; private PhoneStateListenerHandler mPhoneStateListenerHandler; private boolean mUserMobileDataState = false; private class PhoneStateListenerHandler extends HandlerThread { private PhoneStateListenerHandler(String name) { Loading @@ -45,6 +48,13 @@ public class PhoneStateListenerTest extends TelephonyTest { mServiceState.setDataRegState(serviceState.getDataRegState()); setReady(true); } @Override public void onUserMobileDataStateChanged(boolean state) { logd("User Mobile Data State Changed"); mUserMobileDataState = true; setReady(true); } }; setReady(true); } Loading Loading @@ -81,4 +91,18 @@ public class PhoneStateListenerTest extends TelephonyTest { verify(mServiceState).setVoiceRegState(ServiceState.STATE_EMERGENCY_ONLY); } @Test @SmallTest public void testTriggerUserMobileDataStateChanged() throws Exception { Field field = PhoneStateListener.class.getDeclaredField("callback"); field.setAccessible(true); assertFalse(mUserMobileDataState); setReady(false); ((IPhoneStateListener) field.get(mPhoneStateListenerUT)).onUserMobileDataStateChanged(true); waitUntilReady(); assertTrue(mUserMobileDataState); } } Loading
src/java/com/android/internal/telephony/DefaultPhoneNotifier.java +10 −0 Original line number Diff line number Diff line Loading @@ -309,6 +309,16 @@ public class DefaultPhoneNotifier implements PhoneNotifier { } } @Override public void notifyUserMobileDataStateChanged(Phone sender, boolean state) { try { mRegistry.notifyUserMobileDataStateChangedForPhoneId( sender.getPhoneId(), sender.getSubId(), state); } catch (RemoteException ex) { // system process is dead } } /** * Convert the {@link Phone.DataActivityState} enum into the TelephonyManager.DATA_* constants * for the public API. Loading
src/java/com/android/internal/telephony/Phone.java +4 −0 Original line number Diff line number Diff line Loading @@ -2120,6 +2120,10 @@ public abstract class Phone extends Handler implements PhoneInternalInterface { mNotifier.notifyDataActivationStateChanged(this, state); } public void notifyUserMobileDataStateChanged(boolean state) { mNotifier.notifyUserMobileDataStateChanged(this, state); } public void notifySignalStrength() { mNotifier.notifySignalStrength(this); } Loading
src/java/com/android/internal/telephony/PhoneNotifier.java +2 −0 Original line number Diff line number Diff line Loading @@ -62,4 +62,6 @@ public interface PhoneNotifier { public void notifyVoiceActivationStateChanged(Phone sender, int activationState); public void notifyDataActivationStateChanged(Phone sender, int activationState); public void notifyUserMobileDataStateChanged(Phone sender, boolean state); }
src/java/com/android/internal/telephony/dataconnection/DcTracker.java +2 −0 Original line number Diff line number Diff line Loading @@ -812,6 +812,8 @@ public class DcTracker extends Handler { } } mPhone.notifyUserMobileDataStateChanged(enabled); // TODO: We should register for DataEnabledSetting's data enabled/disabled event and // handle the rest from there. if (enabled) { Loading
tests/telephonytests/src/com/android/internal/telephony/PhoneStateListenerTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import android.test.suitebuilder.annotation.SmallTest; import org.junit.After; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.lang.reflect.Field; import static org.mockito.Mockito.verify; Loading @@ -29,6 +31,7 @@ public class PhoneStateListenerTest extends TelephonyTest { private PhoneStateListener mPhoneStateListenerUT; private PhoneStateListenerHandler mPhoneStateListenerHandler; private boolean mUserMobileDataState = false; private class PhoneStateListenerHandler extends HandlerThread { private PhoneStateListenerHandler(String name) { Loading @@ -45,6 +48,13 @@ public class PhoneStateListenerTest extends TelephonyTest { mServiceState.setDataRegState(serviceState.getDataRegState()); setReady(true); } @Override public void onUserMobileDataStateChanged(boolean state) { logd("User Mobile Data State Changed"); mUserMobileDataState = true; setReady(true); } }; setReady(true); } Loading Loading @@ -81,4 +91,18 @@ public class PhoneStateListenerTest extends TelephonyTest { verify(mServiceState).setVoiceRegState(ServiceState.STATE_EMERGENCY_ONLY); } @Test @SmallTest public void testTriggerUserMobileDataStateChanged() throws Exception { Field field = PhoneStateListener.class.getDeclaredField("callback"); field.setAccessible(true); assertFalse(mUserMobileDataState); setReady(false); ((IPhoneStateListener) field.get(mPhoneStateListenerUT)).onUserMobileDataStateChanged(true); waitUntilReady(); assertTrue(mUserMobileDataState); } }