From aeb48511f244a09ba334ada66eacbba79599f17e Mon Sep 17 00:00:00 2001 From: mrquincle Date: Wed, 21 Aug 2013 19:49:05 +0200 Subject: [PATCH 1/2] Add Replicator robot --- AndroidManifest.xml | 4 +- src/org/dobots/robots/RobotDeviceFactory.java | 5 ++- .../swarmcontrol/SwarmControlActivity.java | 37 +++++++++++++------ .../behaviours/dancing/RobotList.java | 2 +- .../behaviours/racing/Racing.java | 2 +- .../behaviours/racing/RacingRobot.java | 2 +- .../swarmcontrol/robots/RobotCalibration.java | 2 +- .../swarmcontrol/robots/RobotViewFactory.java | 5 ++- .../swarmcontrol/robots/nxt/NXTRobot.java | 2 +- .../robots/roomba/RoombaRobot.java | 6 +-- 10 files changed, 45 insertions(+), 22 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 0ae57d5..9e75a93 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -65,7 +65,9 @@ android:screenOrientation="portrait" > - + + diff --git a/src/org/dobots/robots/RobotDeviceFactory.java b/src/org/dobots/robots/RobotDeviceFactory.java index 1f1b596..fbc8b0a 100755 --- a/src/org/dobots/robots/RobotDeviceFactory.java +++ b/src/org/dobots/robots/RobotDeviceFactory.java @@ -10,9 +10,10 @@ import robots.RobotType; import robots.ctrl.IRobotDevice; -import robots.ispytank.ctrl.SpyTank; +import robots.replicator.ctrl.Replicator; import robots.rover.ac13.ctrl.AC13Rover; import robots.rover.rover2.ctrl.Rover2; +import robots.spytank.ctrl.SpyTank; public class RobotDeviceFactory { @@ -39,6 +40,8 @@ public static IRobotDevice getRobotDevice(RobotType robot) throws Exception return new Robo40(); case RBT_SPYTANK: return new SpyTank(); + case RBT_REPLICATOR: + return new Replicator(); default: throw new Exception(); } diff --git a/src/org/dobots/swarmcontrol/SwarmControlActivity.java b/src/org/dobots/swarmcontrol/SwarmControlActivity.java index 4f16810..929c182 100644 --- a/src/org/dobots/swarmcontrol/SwarmControlActivity.java +++ b/src/org/dobots/swarmcontrol/SwarmControlActivity.java @@ -15,9 +15,9 @@ import org.dobots.utilities.Utils; import org.dobots.utility.ImprovedArrayAdapter; -import robots.RobotInventory; import robots.RobotType; import robots.ctrl.IRobotDevice; +import robots.gui.RobotInventory; import robots.gui.RobotView; import android.app.AlertDialog; import android.app.Dialog; @@ -33,6 +33,7 @@ import android.text.TextUtils; import android.text.style.BulletSpan; import android.text.style.RelativeSizeSpan; +import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; @@ -81,6 +82,8 @@ public class SwarmControlActivity extends BaseActivity { private boolean m_bHideActionBar = false; private boolean m_bIsLiked = false; + private final boolean m_bSocializeEnabled = false; + private Entity m_oEntity; // set to true if Socialize Entities need to be created @@ -91,6 +94,8 @@ public class SwarmControlActivity extends BaseActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + Log.w(TAG, "Start SwarmControl app"); + CONTEXT = this; Utils.setContext(this); @@ -105,7 +110,9 @@ public void onCreate(Bundle savedInstanceState) { m_laySocializeActionBar = (LinearLayout) findViewById(R.id.laySocializeActionBar); loadPreferences(); - setupSocialize(); + + if (m_bSocializeEnabled) + setupSocialize(); getWindow().addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON); @@ -163,7 +170,7 @@ public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, ABOUT_ID, ABOUT_ID, getResources().getString(R.string.about)) .setIcon(R.drawable.ic_menu_about); menu.add(0, EXIT_ID, EXIT_ID, "Exit"); - menu.add(1, SOCIALIZE_SETTINGS, SOCIALIZE_SETTINGS, "Socialize"); + if (m_bSocializeEnabled) menu.add(1, SOCIALIZE_SETTINGS, SOCIALIZE_SETTINGS, "Socialize"); menu.add(2, PREFERENCES, PREFERENCES, "Preferences"); return true; } @@ -179,7 +186,10 @@ public boolean onMenuItemSelected(int featureId, MenuItem item) { finish(); return true; case SOCIALIZE_SETTINGS: - showSocializeSettings(); + if (m_bSocializeEnabled) + showSocializeSettings(); + else + Log.w(TAG, "Huh? Socialize is not enabled"); return true; case PREFERENCES: showDialog(PREFERENCES_DLG); @@ -191,7 +201,7 @@ public boolean onMenuItemSelected(int featureId, MenuItem item) { @Override public boolean onPrepareOptionsMenu(Menu menu) { - menu.setGroupVisible(1, m_bSocializeConnected); + if (m_bSocializeEnabled) menu.setGroupVisible(1, m_bSocializeConnected); menu.setGroupVisible(2, m_bIsLiked); // so long as only the show/hide action bar is in the preferences we only show the preferences if we already got the like return true; @@ -282,19 +292,22 @@ public void showBehaviour(SwarmAction eAction) { protected void onPause() { super.onPause(); - Socialize.onPause(this); + if (m_bSocializeEnabled) + Socialize.onPause(this); } @Override protected void onResume() { super.onResume(); - Socialize.onResume(this); + if (m_bSocializeEnabled) + Socialize.onResume(this); } @Override public void onDestroy() { - Socialize.onDestroy(this); + if (m_bSocializeEnabled) + Socialize.onDestroy(this); unregisterReceiver(mReceiver); super.onDestroy(); @@ -311,8 +324,10 @@ public void onReceive(Context context, Intent intent) { if (RobotView.VIEW_LOADED.equals(action)) { RobotType eRobot = (RobotType) intent.getExtras().get("RobotType"); BaseActivity currentActivity = ((BaseApplication)context.getApplicationContext()).getCurrentActivity(); - SocializeHelper.setupComments(currentActivity, eRobot); - SocializeHelper.registerRobotView(SwarmControlActivity.this, eRobot); + if (m_bSocializeEnabled) { + SocializeHelper.setupComments(currentActivity, eRobot); + SocializeHelper.registerRobotView(SwarmControlActivity.this, eRobot); + } }; } }; @@ -364,7 +379,7 @@ private void adjustPreferences(Dialog dialog) { CheckBox cbxHideActionBar = (CheckBox) dialog.findViewById(R.id.cbxHideActionBar); m_bHideActionBar = cbxHideActionBar.isChecked(); - hideSocializeActionBar(m_bHideActionBar); + if (m_bSocializeEnabled) hideSocializeActionBar(m_bHideActionBar); SharedPreferences prefs = getPreferences(MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); diff --git a/src/org/dobots/swarmcontrol/behaviours/dancing/RobotList.java b/src/org/dobots/swarmcontrol/behaviours/dancing/RobotList.java index b190efc..3d5930c 100755 --- a/src/org/dobots/swarmcontrol/behaviours/dancing/RobotList.java +++ b/src/org/dobots/swarmcontrol/behaviours/dancing/RobotList.java @@ -11,10 +11,10 @@ import org.dobots.utilities.IActivityResultListener; import org.dobots.utilities.Utils; -import robots.RobotInventory; import robots.RobotType; import robots.ctrl.IRobotDevice; import robots.gui.IConnectListener; +import robots.gui.RobotInventory; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; diff --git a/src/org/dobots/swarmcontrol/behaviours/racing/Racing.java b/src/org/dobots/swarmcontrol/behaviours/racing/Racing.java index ff026de..dc4a821 100644 --- a/src/org/dobots/swarmcontrol/behaviours/racing/Racing.java +++ b/src/org/dobots/swarmcontrol/behaviours/racing/Racing.java @@ -14,10 +14,10 @@ import org.dobots.utilities.BaseActivity; import org.dobots.utilities.Utils; -import robots.RobotInventory; import robots.RobotType; import robots.ctrl.IRobotDevice; import robots.gui.IConnectListener; +import robots.gui.RobotInventory; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.content.Intent; diff --git a/src/org/dobots/swarmcontrol/behaviours/racing/RacingRobot.java b/src/org/dobots/swarmcontrol/behaviours/racing/RacingRobot.java index 6a77a07..0eda05f 100644 --- a/src/org/dobots/swarmcontrol/behaviours/racing/RacingRobot.java +++ b/src/org/dobots/swarmcontrol/behaviours/racing/RacingRobot.java @@ -9,8 +9,8 @@ import org.dobots.utilities.joystick.IJoystickListener; import org.dobots.utilities.joystick.Joystick; -import robots.RobotInventory; import robots.ctrl.IRobotDevice; +import robots.gui.RobotInventory; import android.os.Bundle; import android.os.SystemClock; import android.util.Log; diff --git a/src/org/dobots/swarmcontrol/robots/RobotCalibration.java b/src/org/dobots/swarmcontrol/robots/RobotCalibration.java index 238b06b..9de6883 100644 --- a/src/org/dobots/swarmcontrol/robots/RobotCalibration.java +++ b/src/org/dobots/swarmcontrol/robots/RobotCalibration.java @@ -6,10 +6,10 @@ import org.dobots.swarmcontrol.utility.CalibrationDialogUser; import org.dobots.utilities.BaseActivity; -import robots.RobotInventory; import robots.RobotType; import robots.ctrl.IRobotDevice; import robots.gui.MessageTypes; +import robots.gui.RobotInventory; import android.app.Activity; import android.content.Intent; import android.os.Bundle; diff --git a/src/org/dobots/swarmcontrol/robots/RobotViewFactory.java b/src/org/dobots/swarmcontrol/robots/RobotViewFactory.java index 9dbfa77..4ecb46a 100755 --- a/src/org/dobots/swarmcontrol/robots/RobotViewFactory.java +++ b/src/org/dobots/swarmcontrol/robots/RobotViewFactory.java @@ -16,11 +16,12 @@ import org.dobots.swarmcontrol.robots.spykee.SpykeeRobot; import robots.RobotType; -import robots.ispytank.gui.SpyTankRobot; +import robots.replicator.gui.ReplicatorRobot; import robots.rover.ac13.ctrl.AC13RoverTypes; import robots.rover.ac13.gui.AC13RoverRobot; import robots.rover.rover2.ctrl.Rover2Types; import robots.rover.rover2.gui.Rover2Robot; +import robots.spytank.gui.SpyTankRobot; public class RobotViewFactory { @@ -46,6 +47,8 @@ public static Class getRobotViewClass(RobotType i_eRobot) { return Robo40Robot.class; case RBT_SPYTANK: return SpyTankRobot.class; + case RBT_REPLICATOR: + return ReplicatorRobot.class; default: return UnimplementedRobot.class; } diff --git a/src/org/dobots/swarmcontrol/robots/nxt/NXTRobot.java b/src/org/dobots/swarmcontrol/robots/nxt/NXTRobot.java index 8c86ab3..c17f818 100755 --- a/src/org/dobots/swarmcontrol/robots/nxt/NXTRobot.java +++ b/src/org/dobots/swarmcontrol/robots/nxt/NXTRobot.java @@ -14,10 +14,10 @@ import org.dobots.utilities.BaseActivity; import org.dobots.utilities.Utils; -import robots.RobotInventory; import robots.RobotType; import robots.gui.IConnectListener; import robots.gui.MessageTypes; +import robots.gui.RobotInventory; import robots.gui.SensorGatherer; import android.bluetooth.BluetoothDevice; import android.content.Intent; diff --git a/src/org/dobots/swarmcontrol/robots/roomba/RoombaRobot.java b/src/org/dobots/swarmcontrol/robots/roomba/RoombaRobot.java index 9ec23f0..8b65bc3 100755 --- a/src/org/dobots/swarmcontrol/robots/roomba/RoombaRobot.java +++ b/src/org/dobots/swarmcontrol/robots/roomba/RoombaRobot.java @@ -14,10 +14,10 @@ import org.dobots.utilities.BaseActivity; import org.dobots.utilities.Utils; -import robots.RobotInventory; import robots.RobotType; import robots.gui.IConnectListener; import robots.gui.MessageTypes; +import robots.gui.RobotInventory; import robots.gui.SensorGatherer; import android.bluetooth.BluetoothDevice; import android.content.Intent; @@ -451,7 +451,7 @@ public void onClick(View v) { } }); - m_btnAccelerometer = (Button) m_oActivity.findViewById(R.id.btnAccelerometer); +/* m_btnAccelerometer = (Button) m_oActivity.findViewById(R.id.btnAccelerometer); m_btnAccelerometer.setOnClickListener(new OnClickListener() { @Override @@ -471,7 +471,7 @@ public void onClick(View v) { } } }); - +*/ } public static String getMacFilter() { From 5c482415822f5c96060a49f7f0b47e2c69df89c5 Mon Sep 17 00:00:00 2001 From: mrquincle Date: Thu, 22 Aug 2013 17:36:37 +0200 Subject: [PATCH 2/2] Do not start Replicator robot at startup --- src/org/dobots/swarmcontrol/SwarmControlActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/org/dobots/swarmcontrol/SwarmControlActivity.java b/src/org/dobots/swarmcontrol/SwarmControlActivity.java index 929c182..118fd5b 100644 --- a/src/org/dobots/swarmcontrol/SwarmControlActivity.java +++ b/src/org/dobots/swarmcontrol/SwarmControlActivity.java @@ -158,7 +158,7 @@ public void onClick(View v) { writeChangeLog(); -// showRobot(RobotType.RBT_ROOMBA); + //showRobot(RobotType.RBT_REPLICATOR); // showBehaviour(SwarmAction.sa_Dance); }