| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.services.device; | 5 package org.chromium.services.device; |
| 6 | 6 |
| 7 import android.content.Context; | 7 import android.content.Context; |
| 8 | 8 |
| 9 import org.chromium.base.ContextUtils; |
| 9 import org.chromium.base.annotations.CalledByNative; | 10 import org.chromium.base.annotations.CalledByNative; |
| 10 import org.chromium.base.annotations.JNINamespace; | 11 import org.chromium.base.annotations.JNINamespace; |
| 11 import org.chromium.device.battery.BatteryMonitorFactory; | 12 import org.chromium.device.battery.BatteryMonitorFactory; |
| 12 import org.chromium.device.mojom.BatteryMonitor; | 13 import org.chromium.device.mojom.BatteryMonitor; |
| 13 import org.chromium.device.mojom.VibrationManager; | 14 import org.chromium.device.mojom.VibrationManager; |
| 14 import org.chromium.device.nfc.NfcDelegate; | 15 import org.chromium.device.nfc.NfcDelegate; |
| 15 import org.chromium.device.nfc.NfcProviderImpl; | 16 import org.chromium.device.nfc.NfcProviderImpl; |
| 16 import org.chromium.device.nfc.mojom.NfcProvider; | 17 import org.chromium.device.nfc.mojom.NfcProvider; |
| 17 import org.chromium.device.vibration.VibrationManagerImpl; | 18 import org.chromium.device.vibration.VibrationManagerImpl; |
| 18 import org.chromium.mojo.system.impl.CoreImpl; | 19 import org.chromium.mojo.system.impl.CoreImpl; |
| 19 import org.chromium.services.service_manager.InterfaceRegistry; | 20 import org.chromium.services.service_manager.InterfaceRegistry; |
| 20 | 21 |
| 21 @JNINamespace("device") | 22 @JNINamespace("device") |
| 22 class InterfaceRegistrar { | 23 class InterfaceRegistrar { |
| 23 @CalledByNative | 24 @CalledByNative |
| 24 static void createInterfaceRegistryForContext( | 25 static void createInterfaceRegistryForContext( |
| 25 int nativeHandle, Context applicationContext, NfcDelegate nfcDelegat
e) { | 26 int nativeHandle, NfcDelegate nfcDelegate) { |
| 26 // Note: The bindings code manages the lifetime of this object, so it | 27 // Note: The bindings code manages the lifetime of this object, so it |
| 27 // is not necessary to hold on to a reference to it explicitly. | 28 // is not necessary to hold on to a reference to it explicitly. |
| 29 // TODO(wnwen): Move calls to ContextUtils down to the individual factor
ies. |
| 30 Context applicationContext = ContextUtils.getApplicationContext(); |
| 28 InterfaceRegistry registry = InterfaceRegistry.create( | 31 InterfaceRegistry registry = InterfaceRegistry.create( |
| 29 CoreImpl.getInstance().acquireNativeHandle(nativeHandle).toMessa
gePipeHandle()); | 32 CoreImpl.getInstance().acquireNativeHandle(nativeHandle).toMessa
gePipeHandle()); |
| 30 registry.addInterface( | 33 registry.addInterface( |
| 31 BatteryMonitor.MANAGER, new BatteryMonitorFactory(applicationCon
text)); | 34 BatteryMonitor.MANAGER, new BatteryMonitorFactory(applicationCon
text)); |
| 32 registry.addInterface( | 35 registry.addInterface( |
| 33 NfcProvider.MANAGER, new NfcProviderImpl.Factory(applicationCont
ext, nfcDelegate)); | 36 NfcProvider.MANAGER, new NfcProviderImpl.Factory(applicationCont
ext, nfcDelegate)); |
| 34 registry.addInterface( | 37 registry.addInterface( |
| 35 VibrationManager.MANAGER, new VibrationManagerImpl.Factory(appli
cationContext)); | 38 VibrationManager.MANAGER, new VibrationManagerImpl.Factory(appli
cationContext)); |
| 36 } | 39 } |
| 37 } | 40 } |
| OLD | NEW |