summaryrefslogtreecommitdiff
path: root/app/src/main/java/org/eu/zajc/xheadset/XHeadsetStateCommunicator.java
diff options
context:
space:
mode:
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.java57
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 @@
1package org.eu.zajc.xheadset;
2
3import java.io.*;
4import android.os.*;
5import android.util.*;
6import android.content.*;
7import android.app.*;
8
9public 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}