]> iEval git - fonbot.git/blobdiff - src/ro/ieval/fonbot/Heavy.java
Let the user choose which camera to take photos with
[fonbot.git] / src / ro / ieval / fonbot / Heavy.java
index c5c6de7462450b04f5529aaf38dc6621216e7991..85aff17016325459fb3f1d748f1b169e76ded185 100644 (file)
@@ -168,6 +168,12 @@ final class Heavy {
                        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()));
                }
 
@@ -503,6 +509,9 @@ final class Heavy {
                case SCREENCAP:
                        Utils.sendMessage(context, replyTo, screencap_help);
                        break;
+               case TORCH:
+                       Utils.sendMessage(context, replyTo, torch_help);
+                       break;
                }
        }
 
@@ -631,11 +640,15 @@ final class Heavy {
         * @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);
                }
@@ -734,9 +747,6 @@ final class Heavy {
                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;
@@ -950,7 +960,7 @@ final class Heavy {
         * @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();
@@ -1097,11 +1107,12 @@ final class Heavy {
         *
         * @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();
@@ -1545,30 +1556,7 @@ final class Heavy {
         */
        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));
        }
 
        /**
@@ -1791,4 +1779,15 @@ final class Heavy {
        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);
+       }
 }
This page took 0.028362 seconds and 4 git commands to generate.