diff options
author | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-04-30 12:05:33 +0200 |
---|---|---|
committer | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-04-30 12:05:33 +0200 |
commit | 058f9ba7650927d755cf408027dd19f78c92b7c2 (patch) | |
tree | f1815ffb75bec6e6d92f1e4566f151ba3caa4f14 /same-android | |
parent | d87e94e9765c33ccf49d4743d2e4be94d65a5e76 (diff) |
Add "kill master" button.
Diffstat (limited to 'same-android')
3 files changed, 24 insertions, 10 deletions
diff --git a/same-android/res/layout/controller.xml b/same-android/res/layout/controller.xml index 79974ee..1acaa01 100644 --- a/same-android/res/layout/controller.xml +++ b/same-android/res/layout/controller.xml @@ -7,12 +7,6 @@ android:focusableInTouchMode="true" android:id="@+id/container_layout"> - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="Commands" - android:textAppearance="?android:attr/textAppearanceLarge" /> - <Button android:layout_width="match_parent" android:layout_height="wrap_content" @@ -41,7 +35,13 @@ android:layout_height="wrap_content" android:onClick="joinNetworkUrl" android:text="Join" /> - + + <Button + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:onClick="killMaster" + android:text="Kill master" /> + <Button android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/same-android/src/main/java/com/orbekk/same/android/SameControllerActivity.java b/same-android/src/main/java/com/orbekk/same/android/SameControllerActivity.java index 6e8d613..c0f60f8 100644 --- a/same-android/src/main/java/com/orbekk/same/android/SameControllerActivity.java +++ b/same-android/src/main/java/com/orbekk/same/android/SameControllerActivity.java @@ -63,8 +63,7 @@ public class SameControllerActivity extends Activity { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String networkName = networkNames.get(position); - int networkIndex = networkNames.indexOf(networkName); - String masterUrl = networkUrls.get(networkIndex); + String masterUrl = networkUrls.get(position); joinNetwork(masterUrl); } }; @@ -87,6 +86,16 @@ public class SameControllerActivity extends Activity { } } + public void killMaster(View unused) { + Message message = Message.obtain(null, SameService.KILL_MASTER); + try { + sameService.send(message); + } catch (RemoteException e) { + logger.error("Failed to kill master", e); + throw new RuntimeException(e); + } + } + public void joinNetworkUrl(View unused) { Intent intent = new Intent(this, SameService.class); intent.setAction("join"); diff --git a/same-android/src/main/java/com/orbekk/same/android/SameService.java b/same-android/src/main/java/com/orbekk/same/android/SameService.java index 559b521..c9ff39b 100644 --- a/same-android/src/main/java/com/orbekk/same/android/SameService.java +++ b/same-android/src/main/java/com/orbekk/same/android/SameService.java @@ -40,7 +40,7 @@ public class SameService extends Service { public final static int JOIN_NETWORK = 4; public final static int ADD_STATE_RECEIVER = 5; public final static int REMOVE_STATE_RECEIVER = 6; - + /** * arg1: Operation number. * bundle: A Bundle created with ComponentBundle @@ -58,6 +58,8 @@ public class SameService extends Service { * obj: Status message. */ public final static int OPERATION_STATUS_CALLBACK = 9; + + public final static int KILL_MASTER = 10; // TODO: Remove these and use messengers instead of broadcast intents. public final static String AVAILABLE_NETWORKS_UPDATE = @@ -137,6 +139,9 @@ public class SameService extends Service { operationStatusCallback(op, id, message.replyTo); logger.info("Callback sent."); break; + case KILL_MASTER: + logger.info("Kill master."); + sameController.killMaster(); default: super.handleMessage(message); } |