diff options
Diffstat (limited to 'app/src/main/java/org/eu/zajc/xheadset/XHeadsetStateCommunicator.java')
-rw-r--r-- | app/src/main/java/org/eu/zajc/xheadset/XHeadsetStateCommunicator.java | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/app/src/main/java/org/eu/zajc/xheadset/XHeadsetStateCommunicator.java b/app/src/main/java/org/eu/zajc/xheadset/XHeadsetStateCommunicator.java new file mode 100644 index 0000000..b028b8d --- /dev/null +++ b/app/src/main/java/org/eu/zajc/xheadset/XHeadsetStateCommunicator.java | |||
@@ -0,0 +1,57 @@ | |||
1 | package org.eu.zajc.xheadset; | ||
2 | |||
3 | import java.io.*; | ||
4 | import android.os.*; | ||
5 | import android.util.*; | ||
6 | import android.content.*; | ||
7 | import android.app.*; | ||
8 | |||
9 | public class XHeadsetStateCommunicator { | ||
10 | |||
11 | protected IXHeadsetStateService service = null; | ||
12 | |||
13 | public void bind(Context context) { | ||
14 | if (service == null) | ||
15 | context.bindService(createIntent(), connection, Context.BIND_AUTO_CREATE); | ||
16 | } | ||
17 | |||
18 | public static Intent createIntent() { | ||
19 | return new Intent("org.eu.zajc.xheadset.XHeadsetStateService.BIND").setPackage("org.eu.zajc.xheadset"); | ||
20 | } | ||
21 | |||
22 | public void unbind(Context context) { | ||
23 | if (service != null) | ||
24 | context.unbindService(connection); | ||
25 | } | ||
26 | |||
27 | public boolean setEnabled(boolean enabled) { | ||
28 | try { | ||
29 | return service.setEnabled(enabled); | ||
30 | } catch (RemoteException e) { | ||
31 | Log.e("XHeadset", "An exception has occurred", e); | ||
32 | return false; | ||
33 | } | ||
34 | } | ||
35 | |||
36 | public boolean isEnabled() { | ||
37 | try { | ||
38 | return service.isEnabled(); | ||
39 | } catch (RemoteException e) { | ||
40 | Log.e("XHeadset", "An exception has occurred", e); | ||
41 | return XHeadsetStateService.DEFAULT_STATE; | ||
42 | } | ||
43 | } | ||
44 | |||
45 | private ServiceConnection connection = new ServiceConnection() { | ||
46 | @Override | ||
47 | public void onServiceConnected(ComponentName name, IBinder service) { | ||
48 | XHeadsetStateCommunicator.this.service = IXHeadsetStateService.Stub.asInterface(service); | ||
49 | } | ||
50 | |||
51 | @Override | ||
52 | public void onServiceDisconnected(ComponentName name) { | ||
53 | XHeadsetStateCommunicator.this.service = null; | ||
54 | } | ||
55 | }; | ||
56 | |||
57 | } | ||