diff options
author | Adnan Begovic <adnan@cyngn.com> | 2016-03-14 08:13:57 -0700 |
---|---|---|
committer | Adnan Begovic <adnan@cyngn.com> | 2016-03-15 14:09:04 -0700 |
commit | a335ba39c2304fc2ac971322cf8118a235769b85 (patch) | |
tree | 85db8196a1dfb645591f32a0b3f2b22fd97a9b1d /src/java/cyanogenmod/hardware | |
parent | 19b267dfff29400de5909fad62c0e962b821b804 (diff) | |
download | vendor_cmsdk-a335ba39c2304fc2ac971322cf8118a235769b85.zip vendor_cmsdk-a335ba39c2304fc2ac971322cf8118a235769b85.tar.gz vendor_cmsdk-a335ba39c2304fc2ac971322cf8118a235769b85.tar.bz2 |
cmsdk: Mandate cmhw feature xml's for service implementation.
The features xml plays two roles:
1) To allow sdk interface (constructor) to throw when system
service is unavailable. This allows for clearer platform
development debugging.
2) To allow for simpler disambiguation of what services to
instrument in a modular environment.
Change-Id: I41f4ac60af076743909c6090fd50c3ad045bc9e1
Diffstat (limited to 'src/java/cyanogenmod/hardware')
-rw-r--r-- | src/java/cyanogenmod/hardware/CMHardwareManager.java | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/java/cyanogenmod/hardware/CMHardwareManager.java b/src/java/cyanogenmod/hardware/CMHardwareManager.java index 7d97df6..5bfb858 100644 --- a/src/java/cyanogenmod/hardware/CMHardwareManager.java +++ b/src/java/cyanogenmod/hardware/CMHardwareManager.java @@ -154,6 +154,13 @@ public final class CMHardwareManager { mContext = context; } sService = getService(); + + if (context.getPackageManager().hasSystemFeature( + CMContextConstants.Features.HARDWARE_ABSTRACTION) && !checkService()) { + throw new RuntimeException("Unable to get CMHardwareService. The service either" + + " crashed, was not started, or the interface has been called to early in" + + " SystemServer init"); + } } /** @@ -440,7 +447,7 @@ public final class CMHardwareManager { public boolean writePersistentString(String key, String value) { try { if (checkService()) { - return getService().writePersistentBytes(key, + return sService.writePersistentBytes(key, value == null ? null : value.getBytes("UTF-8")); } } catch (RemoteException e) { @@ -460,7 +467,7 @@ public final class CMHardwareManager { public boolean writePersistentInt(String key, int value) { try { if (checkService()) { - return getService().writePersistentBytes(key, + return sService.writePersistentBytes(key, ByteBuffer.allocate(4).putInt(value).array()); } } catch (RemoteException e) { @@ -478,7 +485,7 @@ public final class CMHardwareManager { public boolean writePersistentBytes(String key, byte[] value) { try { if (checkService()) { - return getService().writePersistentBytes(key, value); + return sService.writePersistentBytes(key, value); } } catch (RemoteException e) { } @@ -494,7 +501,7 @@ public final class CMHardwareManager { public String readPersistentString(String key) { try { if (checkService()) { - byte[] bytes = getService().readPersistentBytes(key); + byte[] bytes = sService.readPersistentBytes(key); if (bytes != null) { return new String(bytes, "UTF-8"); } @@ -515,7 +522,7 @@ public final class CMHardwareManager { public int readPersistentInt(String key) { try { if (checkService()) { - byte[] bytes = getService().readPersistentBytes(key); + byte[] bytes = sService.readPersistentBytes(key); if (bytes != null) { return ByteBuffer.wrap(bytes).getInt(); } @@ -534,7 +541,7 @@ public final class CMHardwareManager { public byte[] readPersistentBytes(String key) { try { if (checkService()) { - return getService().readPersistentBytes(key); + return sService.readPersistentBytes(key); } } catch (RemoteException e) { } @@ -549,7 +556,7 @@ public final class CMHardwareManager { public boolean deletePersistentObject(String key) { try { if (checkService()) { - return getService().writePersistentBytes(key, null); + return sService.writePersistentBytes(key, null); } } catch (RemoteException e) { } |