diff options
Diffstat (limited to 'firmware/target/hosted/android/telephony-android.c')
-rw-r--r-- | firmware/target/hosted/android/telephony-android.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/firmware/target/hosted/android/telephony-android.c b/firmware/target/hosted/android/telephony-android.c index df89a56e14..63f0f05e39 100644 --- a/firmware/target/hosted/android/telephony-android.c +++ b/firmware/target/hosted/android/telephony-android.c | |||
@@ -21,11 +21,15 @@ | |||
21 | 21 | ||
22 | 22 | ||
23 | #include <jni.h> | 23 | #include <jni.h> |
24 | #include "system.h" | ||
24 | #include "kernel.h" | 25 | #include "kernel.h" |
25 | 26 | ||
26 | extern JNIEnv *env_ptr; | 27 | extern JNIEnv *env_ptr; |
27 | extern jobject RockboxService_instance; | 28 | extern jobject RockboxService_instance; |
28 | 29 | ||
30 | /* telephony_init_device() is currently called in system_init(). Thus, there is | ||
31 | * a small chance of the callbacks (and queue_broadcast) being called before | ||
32 | * the kernel is initialized (this happens after system_init(). */ | ||
29 | 33 | ||
30 | void telephony_init_device(void) | 34 | void telephony_init_device(void) |
31 | { | 35 | { |
@@ -44,7 +48,8 @@ Java_org_rockbox_monitors_TelephonyMonitor_postCallIncoming(JNIEnv *env, jobject | |||
44 | { | 48 | { |
45 | (void)env; | 49 | (void)env; |
46 | (void)this; | 50 | (void)this; |
47 | queue_broadcast(SYS_CALL_INCOMING, 0); | 51 | if (is_rockbox_ready()) |
52 | queue_broadcast(SYS_CALL_INCOMING, 0); | ||
48 | } | 53 | } |
49 | 54 | ||
50 | JNIEXPORT void JNICALL | 55 | JNIEXPORT void JNICALL |
@@ -52,5 +57,6 @@ Java_org_rockbox_monitors_TelephonyMonitor_postCallHungUp(JNIEnv *env, jobject t | |||
52 | { | 57 | { |
53 | (void)env; | 58 | (void)env; |
54 | (void)this; | 59 | (void)this; |
55 | queue_broadcast(SYS_CALL_HUNG_UP, 0); | 60 | if (is_rockbox_ready()) |
61 | queue_broadcast(SYS_CALL_HUNG_UP, 0); | ||
56 | } | 62 | } |