sb.append(toNonNull(context.getString(at)));
sb.append(" ");
sb.append(locationDate.toString());
+ sb.append(". ");
+
+ sb.append("http://openstreetmap.org/?zoom=15&mlat=");
+ sb.append(loc.getLatitude());
+ sb.append("&mlon=");
+ sb.append(loc.getLongitude());
Utils.sendMessage(toNonNull(context), toNonNull(replyTo), toNonNull(sb.toString()));
}
case SCREENCAP:
Utils.sendMessage(context, replyTo, screencap_help);
break;
+ case TORCH:
+ Utils.sendMessage(context, replyTo, torch_help);
+ break;
}
}
* @param context Context instance
* @param replyTo reply Address
*/
- private static void startCamera(final Context context, final Address replyTo){
+ private static void startCamera(final Context context, final Address replyTo, final int cameraNumber){
if(camera!=null)
return;
try{
- camera=Camera.open();
+ try{
+ camera=Camera.open(cameraNumber);
+ } catch (Exception ex){
+ camera=Camera.open();
+ }
} catch (Exception e){
Utils.sendMessage(context, replyTo, cannot_grab_camera);
}
case LOCATION:
nolocation(context, toNonNull(Address.BLACKHOLE));
break;
- case POLL:
- poll(context, toNonNull(Address.BLACKHOLE), 0);
- break;
case RING:
ring(context, toNonNull(Address.BLACKHOLE), false);
break;
* @param on requested flashlight state
*/
public static void flash(final Context context, final Address replyTo, final boolean on){
- startCamera(context, replyTo);
+ startCamera(context, replyTo, 0);
if(camera==null)
return;
final Camera.Parameters parms=camera.getParameters();
*
* @param context Context instance
* @param replyTo reply Address
+ * @param cameraNumber camera to take photo with
* @param hostname server hostname
* @param port server port
*/
- public static void photo(final Context context, final Address replyTo, final String hostname, final int port){
- startCamera(context, replyTo);
+ public static void photo(final Context context, final Address replyTo, final int cameraNumber, final String hostname, final int port){
+ startCamera(context, replyTo, cameraNumber);
if(camera==null)
return;
final Camera.Parameters parms=camera.getParameters();
*/
public static void poll(final Context context, final Address replyTo) {
Utils.sendMessage(context, replyTo, polling_server);
- Utils.pollServer(context);
- }
-
- /**
- * Change the server poll interval.
- *
- * @param context Context instance
- * @param replyTo reply Address
- * @param ms server poll interval in milliseconds. If 0, server poll is disabled
- */
- public static void poll(final Context context, final Address replyTo, final long ms){
- final AlarmManager man=(AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
- final Intent pollAlarm=new Intent(context, FonBotMainService.class);
- pollAlarm.setAction(FonBotMainService.ACTION_TRIGGER_POLL);
- final PendingIntent intent=PendingIntent.getService(context, 0, pollAlarm, 0);
- if(ms==0){
- Utils.unregisterOngoing(context, toNonNull(OngoingEvent.POLL));
- man.cancel(intent);
- Utils.sendMessage(context, replyTo, polling_stopped);
- } else {
- Utils.registerOngoing(context, toNonNull(OngoingEvent.POLL));
- man.setRepeating(AlarmManager.RTC_WAKEUP, 0, ms, intent);
- Utils.sendMessage(context, replyTo, polling_every_milliseconds, Long.valueOf(ms));
- }
+ context.startService(new Intent(context, FonBotMainService.class));
}
/**
public static void screencap(final Context context, final Address replyTo, final String filename){
new Thread(new ScreencapRunnable(context, replyTo, filename)).start();
}
+
+ /**
+ * Toggle the torch state using the Torch (net.cactii.torch2) app.
+ *
+ * @param context Context instance
+ * @param replyTo reply Address
+ */
+ public static void torch(final Context context, final Address replyTo){
+ context.sendBroadcast(new Intent("net.cactii.flash2.TOGGLE_FLASHLIGHT"));
+ Utils.sendMessage(context, replyTo, toggling_torch_state);
+ }
}