diff options
Diffstat (limited to 'firmware/target/hosted/android/powermgmt-android.c')
-rw-r--r-- | firmware/target/hosted/android/powermgmt-android.c | 28 |
1 files changed, 7 insertions, 21 deletions
diff --git a/firmware/target/hosted/android/powermgmt-android.c b/firmware/target/hosted/android/powermgmt-android.c index dcbd7a6214..1e70a81753 100644 --- a/firmware/target/hosted/android/powermgmt-android.c +++ b/firmware/target/hosted/android/powermgmt-android.c | |||
@@ -28,10 +28,10 @@ extern JNIEnv *env_ptr; | |||
28 | extern jclass RockboxService_class; | 28 | extern jclass RockboxService_class; |
29 | extern jobject RockboxService_instance; | 29 | extern jobject RockboxService_instance; |
30 | 30 | ||
31 | static jfieldID _battery_level; | 31 | static jfieldID __battery_level; |
32 | static jobject BatteryMonitor_instance; | 32 | static jobject BatteryMonitor_instance; |
33 | 33 | ||
34 | void powermgmt_init_target(void) | 34 | static void new_battery_monitor(void) |
35 | { | 35 | { |
36 | JNIEnv e = *env_ptr; | 36 | JNIEnv e = *env_ptr; |
37 | jclass class = e->FindClass(env_ptr, "org/rockbox/monitors/BatteryMonitor"); | 37 | jclass class = e->FindClass(env_ptr, "org/rockbox/monitors/BatteryMonitor"); |
@@ -43,29 +43,15 @@ void powermgmt_init_target(void) | |||
43 | RockboxService_instance); | 43 | RockboxService_instance); |
44 | 44 | ||
45 | /* cache the battery level field id */ | 45 | /* cache the battery level field id */ |
46 | _battery_level = (*env_ptr)->GetFieldID(env_ptr, | 46 | __battery_level = (*env_ptr)->GetFieldID(env_ptr, |
47 | class, | 47 | class, |
48 | "mBattLevel", "I"); | 48 | "mBattLevel", "I"); |
49 | } | 49 | } |
50 | 50 | ||
51 | int battery_level(void) | 51 | int _battery_level(void) |
52 | { | 52 | { |
53 | return (*env_ptr)->GetIntField(env_ptr, BatteryMonitor_instance, _battery_level); | 53 | if (!BatteryMonitor_instance) |
54 | new_battery_monitor(); | ||
55 | return (*env_ptr)->GetIntField(env_ptr, BatteryMonitor_instance, __battery_level); | ||
54 | } | 56 | } |
55 | 57 | ||
56 | int battery_time(void) | ||
57 | { /* cannot calculate yet */ | ||
58 | return 0; | ||
59 | } | ||
60 | |||
61 | /* should always be safe on android targets, the host shuts us down before */ | ||
62 | bool battery_level_safe(void) | ||
63 | { | ||
64 | return true; | ||
65 | } | ||
66 | |||
67 | /* TODO */ | ||
68 | unsigned battery_voltage(void) | ||
69 | { | ||
70 | return 0; | ||
71 | } | ||