Loading services/tests/servicestests/src/com/android/server/uwb/UwbServiceImplTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,7 @@ public class UwbServiceImplTest { when(mUwbInjector.getVendorService()).thenReturn(mVendorService); when(mUwbInjector.checkUwbRangingPermissionForDataDelivery(any(), any())).thenReturn(true); when(mUwbInjector.isPersistedUwbStateEnabled()).thenReturn(true); when(mUwbInjector.isAirplaneModeOn()).thenReturn(false); when(mVendorService.asBinder()).thenReturn(mVendorServiceBinder); mUwbServiceImpl = new UwbServiceImpl(mContext, mUwbInjector); } Loading services/uwb/java/com/android/server/uwb/UwbInjector.java +6 −0 Original line number Diff line number Diff line Loading @@ -96,4 +96,10 @@ public class UwbInjector { return true; } } /** Returns true if airplane mode is turned on. */ public boolean isAirplaneModeOn() { return Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0) == 1; } } services/uwb/java/com/android/server/uwb/UwbServiceImpl.java +27 −2 Original line number Diff line number Diff line Loading @@ -18,8 +18,11 @@ package com.android.server.uwb; import android.annotation.NonNull; import android.content.AttributionSource; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Binder; import android.os.IBinder; import android.os.PersistableBundle; Loading Loading @@ -238,7 +241,7 @@ public class UwbServiceImpl extends IUwbAdapter.Stub implements IBinder.DeathRec Log.i(TAG, "Retrieved vendor service"); long token = Binder.clearCallingIdentity(); try { mVendorUwbAdapter.setEnabled(mUwbInjector.isPersistedUwbStateEnabled()); mVendorUwbAdapter.setEnabled(isEnabled()); } finally { Binder.restoreCallingIdentity(token); } Loading @@ -249,6 +252,7 @@ public class UwbServiceImpl extends IUwbAdapter.Stub implements IBinder.DeathRec UwbServiceImpl(@NonNull Context context, @NonNull UwbInjector uwbInjector) { mContext = context; mUwbInjector = uwbInjector; registerAirplaneModeReceiver(); } private void enforceUwbPrivilegedPermission() { Loading Loading @@ -331,7 +335,7 @@ public class UwbServiceImpl extends IUwbAdapter.Stub implements IBinder.DeathRec @Override public synchronized void setEnabled(boolean enabled) throws RemoteException { persistUwbState(enabled); getVendorUwbAdapter().setEnabled(enabled); getVendorUwbAdapter().setEnabled(isEnabled()); } private void persistUwbState(boolean enabled) { Loading @@ -339,4 +343,25 @@ public class UwbServiceImpl extends IUwbAdapter.Stub implements IBinder.DeathRec int state = enabled ? AdapterState.STATE_ENABLED_ACTIVE : AdapterState.STATE_DISABLED; Settings.Global.putInt(cr, Settings.Global.UWB_ENABLED, state); } private void registerAirplaneModeReceiver() { mContext.registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { handleAirplaneModeEvent(); } }, new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED)); } private void handleAirplaneModeEvent() { try { getVendorUwbAdapter().setEnabled(isEnabled()); } catch (RemoteException e) { Log.e(TAG, "Unable to set UWB Adapter state.", e); } } private boolean isEnabled() { return mUwbInjector.isPersistedUwbStateEnabled() && !mUwbInjector.isAirplaneModeOn(); } } Loading
services/tests/servicestests/src/com/android/server/uwb/UwbServiceImplTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,7 @@ public class UwbServiceImplTest { when(mUwbInjector.getVendorService()).thenReturn(mVendorService); when(mUwbInjector.checkUwbRangingPermissionForDataDelivery(any(), any())).thenReturn(true); when(mUwbInjector.isPersistedUwbStateEnabled()).thenReturn(true); when(mUwbInjector.isAirplaneModeOn()).thenReturn(false); when(mVendorService.asBinder()).thenReturn(mVendorServiceBinder); mUwbServiceImpl = new UwbServiceImpl(mContext, mUwbInjector); } Loading
services/uwb/java/com/android/server/uwb/UwbInjector.java +6 −0 Original line number Diff line number Diff line Loading @@ -96,4 +96,10 @@ public class UwbInjector { return true; } } /** Returns true if airplane mode is turned on. */ public boolean isAirplaneModeOn() { return Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0) == 1; } }
services/uwb/java/com/android/server/uwb/UwbServiceImpl.java +27 −2 Original line number Diff line number Diff line Loading @@ -18,8 +18,11 @@ package com.android.server.uwb; import android.annotation.NonNull; import android.content.AttributionSource; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Binder; import android.os.IBinder; import android.os.PersistableBundle; Loading Loading @@ -238,7 +241,7 @@ public class UwbServiceImpl extends IUwbAdapter.Stub implements IBinder.DeathRec Log.i(TAG, "Retrieved vendor service"); long token = Binder.clearCallingIdentity(); try { mVendorUwbAdapter.setEnabled(mUwbInjector.isPersistedUwbStateEnabled()); mVendorUwbAdapter.setEnabled(isEnabled()); } finally { Binder.restoreCallingIdentity(token); } Loading @@ -249,6 +252,7 @@ public class UwbServiceImpl extends IUwbAdapter.Stub implements IBinder.DeathRec UwbServiceImpl(@NonNull Context context, @NonNull UwbInjector uwbInjector) { mContext = context; mUwbInjector = uwbInjector; registerAirplaneModeReceiver(); } private void enforceUwbPrivilegedPermission() { Loading Loading @@ -331,7 +335,7 @@ public class UwbServiceImpl extends IUwbAdapter.Stub implements IBinder.DeathRec @Override public synchronized void setEnabled(boolean enabled) throws RemoteException { persistUwbState(enabled); getVendorUwbAdapter().setEnabled(enabled); getVendorUwbAdapter().setEnabled(isEnabled()); } private void persistUwbState(boolean enabled) { Loading @@ -339,4 +343,25 @@ public class UwbServiceImpl extends IUwbAdapter.Stub implements IBinder.DeathRec int state = enabled ? AdapterState.STATE_ENABLED_ACTIVE : AdapterState.STATE_DISABLED; Settings.Global.putInt(cr, Settings.Global.UWB_ENABLED, state); } private void registerAirplaneModeReceiver() { mContext.registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { handleAirplaneModeEvent(); } }, new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED)); } private void handleAirplaneModeEvent() { try { getVendorUwbAdapter().setEnabled(isEnabled()); } catch (RemoteException e) { Log.e(TAG, "Unable to set UWB Adapter state.", e); } } private boolean isEnabled() { return mUwbInjector.isPersistedUwbStateEnabled() && !mUwbInjector.isAirplaneModeOn(); } }