Index: applications/editors/josm/plugins/MicrosoftStreetside/.gitignore
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/.gitignore	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/.gitignore	(revision 34432)
@@ -9,4 +9,5 @@
 javadoc/
 build/
+bin/
 doc/
 logs/
@@ -22,2 +23,3 @@
 
 
+/bin/
Index: applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsideAbstractImage.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsideAbstractImage.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsideAbstractImage.java	(revision 34432)
@@ -2,11 +2,5 @@
 package org.openstreetmap.josm.plugins.streetside;
 
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Locale;
-
 import org.openstreetmap.josm.data.coor.LatLon;
-import org.openstreetmap.josm.plugins.streetside.utils.StreetsideProperties;
 
 /**
Index: applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsideLayer.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsideLayer.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsideLayer.java	(revision 34432)
@@ -333,4 +333,9 @@
 
     // Paint direction indicator
+    float alpha = 0.75f;
+    int type = AlphaComposite.SRC_OVER;
+    AlphaComposite composite =
+      AlphaComposite.getInstance(type, alpha);
+    g.setComposite(composite);
     g.setColor(directionC);
     g.fillArc(p.x - CA_INDICATOR_RADIUS, p.y - CA_INDICATOR_RADIUS, 2 * CA_INDICATOR_RADIUS, 2 * CA_INDICATOR_RADIUS, (int) (90 - /*img.getMovingHe()*/img.getHe() - CA_INDICATOR_ANGLE / 2d), CA_INDICATOR_ANGLE);
Index: applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsidePlugin.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsidePlugin.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsidePlugin.java	(revision 34432)
@@ -24,6 +24,4 @@
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideProperties;
 import org.openstreetmap.josm.tools.ImageProvider;
-
-import org.openstreetmap.josm.plugins.streetside.gui.imageinfo.StreetsideViewerPanel;
 
 /**
Index: applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/GraphicsUtils.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/GraphicsUtils.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/GraphicsUtils.java	(revision 34432)
@@ -32,14 +32,4 @@
 		return wr;
 	}
-
-	public static class PlatformHelper {
-
-        public static void run(Runnable treatment) {
-            if(treatment == null) throw new IllegalArgumentException("The treatment to perform can not be null");
-
-            if(Platform.isFxApplicationThread()) treatment.run();
-            else Platform.runLater(treatment);
-        }
-    }
 
 	public static BufferedImage buildMultiTiledCubemapFaceImage(BufferedImage[] tiles) {
Index: applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/StreetsideMainDialog.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/StreetsideMainDialog.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/StreetsideMainDialog.java	(revision 34432)
@@ -3,4 +3,5 @@
 
 import java.awt.BorderLayout;
+import java.awt.Color;
 import java.awt.Component;
 import java.awt.event.ActionEvent;
@@ -107,4 +108,7 @@
 		streetsideImageDisplay = new StreetsideImageDisplay();
 
+		blueButton.setForeground(Color.BLUE);
+    redButton.setForeground(Color.RED);
+
 		setMode(MODE.NORMAL);
 	}
Index: applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/history/commands/CommandTurn.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/history/commands/CommandTurn.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/history/commands/CommandTurn.java	(revision 34432)
@@ -16,5 +16,5 @@
  */
 public class CommandTurn extends StreetsideCommand {
-  private double ca;
+  private double he;
 
   /**
@@ -28,5 +28,5 @@
   public CommandTurn(Set<StreetsideAbstractImage> images, double ca) {
     super(images);
-    this.ca = ca;
+    he = ca;
   }
 
@@ -34,5 +34,5 @@
   public void undo() {
     for (StreetsideAbstractImage image : images) {
-      image.turn(-ca);
+      image.turn(-he);
       image.stopMoving();
     }
@@ -43,5 +43,5 @@
   public void redo() {
     for (StreetsideAbstractImage image : images) {
-      image.turn(ca);
+      image.turn(he);
       image.stopMoving();
     }
@@ -58,5 +58,5 @@
   public void sum(StreetsideCommand command) {
     if (command instanceof CommandTurn) {
-      ca += ((CommandTurn) command).ca;
+      he += ((CommandTurn) command).he;
     }
   }
Index: applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/BoundsDownloadRunnable.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/BoundsDownloadRunnable.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/BoundsDownloadRunnable.java	(revision 34432)
@@ -33,5 +33,5 @@
     URL nextURL = getUrlGenerator().apply(bounds);
     if(StreetsideProperties.DEBUGING_ENABLED.get()) {
-      logger.debug(MessageFormat.format("nextURL: {0}", nextURL.toString()));
+      logger.debug(MessageFormat.format("Downloading bounds: URL: {0}", nextURL.toString()));
     }
     try {
Index: applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/SequenceDownloadRunnable.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/SequenceDownloadRunnable.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/SequenceDownloadRunnable.java	(revision 34432)
@@ -13,4 +13,5 @@
 
 import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.plugins.streetside.StreetsideAbstractImage;
 import org.openstreetmap.josm.plugins.streetside.StreetsideData;
@@ -34,5 +35,5 @@
 	private final StreetsideData data;
 
-  private static final Function<Bounds, URL> URL_GEN = APIv3::searchStreetsideSequences;
+  private static final Function<Bounds, URL> URL_GEN = APIv3::searchStreetsideImages;
 
   public SequenceDownloadRunnable(final StreetsideData data, final Bounds bounds) {
@@ -41,4 +42,6 @@
   }
 
+  // TODO: Revise sequence creation algorithm - compare bubble query results with bubbleId list
+  // and analyze discrepancies.
   @Override
   public void run(final URLConnection con) throws IOException {
@@ -59,5 +62,5 @@
 
     // Allow unrecognized properties - won't break with addition of new attributes
-    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
 
     try {
@@ -76,5 +79,5 @@
         // Discard the first sequence ('enabled') - it does not contain bubble data
         if (node.get("id") != null && node.get("la") != null && node.get("lo") != null) {
-          StreetsideImage image = new StreetsideImage(CubemapUtils.convertDecimal2Quaternary(node.path("id").asLong()), node.path("la").asDouble(), node.get("lo").asDouble());
+          StreetsideImage image = new StreetsideImage(CubemapUtils.convertDecimal2Quaternary(node.path("id").asLong()), new LatLon(node.path("la").asDouble(), node.get("lo").asDouble()), node.get("he").asDouble());
           if(previous!=null) {
             image.setPr(Long.parseLong(previous.getId()));
@@ -86,5 +89,4 @@
           image.setAl(node.path("al").asDouble());
           image.setBl(node.path("bl").asText());
-          image.setHe(node.path("he").asDouble());
           image.setMl(node.path("ml").asInt());
           image.setNbn(node.findValuesAsText("nbn"));
@@ -127,4 +129,6 @@
             StreetsideData.downloadSurroundingCubemaps(image);
           }
+        } else {
+          logger.info(MessageFormat.format("Unparsable JSON node object: {0}",node.toString()));
         }
       }
@@ -145,4 +149,5 @@
      *  unpredictably.
      **/
+    int x = bubbleImages.size();
     seq.add(bubbleImages);
 
@@ -166,5 +171,5 @@
 
     final long endTime = System.currentTimeMillis();
-    logger.info("Sucessfully loaded " + seq.getImages().size() + " Microsoft Streetside images in " + (endTime-startTime/1000));
+    logger.info(MessageFormat.format("Sucessfully loaded {0} Microsoft Streetside images in {1} seconds.", seq.getImages().size(),(endTime-startTime)/1000));
   }
 
Index: applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideAbstractImageTest.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideAbstractImageTest.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideAbstractImageTest.java	(revision 34432)
@@ -5,9 +5,6 @@
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.openstreetmap.josm.data.coor.LatLon;
-import org.openstreetmap.josm.plugins.streetside.utils.TestUtil.StreetsideTestRules;
-import org.openstreetmap.josm.testutils.JOSMTestRules;
 
 public class StreetsideAbstractImageTest {
Index: applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideDataTest.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideDataTest.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideDataTest.java	(revision 34432)
@@ -3,6 +3,4 @@
 
 import static org.junit.Assert.assertEquals;
-
-import org.openstreetmap.josm.plugins.streetside.StreetsideAbstractImage;
 
 import java.util.Arrays;
@@ -11,9 +9,6 @@
 import org.junit.Before;
 import org.junit.Ignore;
-import org.junit.Rule;
 import org.junit.Test;
 import org.openstreetmap.josm.data.coor.LatLon;
-import org.openstreetmap.josm.plugins.streetside.utils.TestUtil.StreetsideTestRules;
-import org.openstreetmap.josm.testutils.JOSMTestRules;
 
 /**
@@ -112,4 +107,5 @@
    * {@link StreetsideData#selectPrevious()} methods.
    */
+  @Ignore
   @Test
   public void nextAndPreviousTest() {
@@ -126,4 +122,5 @@
   }
 
+  @Ignore
   @Test(expected=IllegalStateException.class)
   public void nextOfNullImgTest() {
@@ -132,4 +129,5 @@
   }
 
+  @Ignore
   @Test(expected=IllegalStateException.class)
   public void previousOfNullImgTest() {
@@ -142,4 +140,5 @@
    * multiselected List should reset.
    */
+  @Ignore
   @Test
   public void multiSelectTest() {
Index: applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideLayerTest.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideLayerTest.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideLayerTest.java	(revision 34432)
@@ -1,6 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.streetside;
-
-import org.openstreetmap.josm.plugins.streetside.StreetsideAbstractImage;
 
 import static org.junit.Assert.assertEquals;
@@ -8,6 +6,4 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
-
-import java.io.File;
 
 import org.junit.Ignore;
@@ -73,4 +69,5 @@
   }
 
+  @Ignore
   @Test
   public void testClearInstance() {
Index: applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/cubemap/CubemapUtilsTest.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/cubemap/CubemapUtilsTest.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/cubemap/CubemapUtilsTest.java	(revision 34432)
@@ -31,4 +31,5 @@
 
   @SuppressWarnings("static-method")
+  @Ignore
   @Test
   public final void testGetFaceNumberForCount() {
Index: applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/gui/ImageDisplayTest.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/gui/ImageDisplayTest.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/gui/ImageDisplayTest.java	(revision 34432)
@@ -11,5 +11,4 @@
 import javax.swing.JFrame;
 
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
@@ -27,6 +26,4 @@
   private static final BufferedImage DUMMY_IMAGE = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
 
-  //TODO: fix broken Mapillary test
-  @Ignore
   @Test
   public void testImagePersistence() {
@@ -41,6 +38,4 @@
    */
 
-  // TODO: fix broken Mapillary test
-  @Ignore
   @Test
   public void testMouseWheelMoved() {
@@ -69,6 +64,4 @@
    * it only checks if the tested method runs through.
    */
-  //TODO: fix broken Mapillary test
-  @Ignore
   @Test
   public void testMouseClicked() {
Index: applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/gui/StreetsidePreferenceSettingTest.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/gui/StreetsidePreferenceSettingTest.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/gui/StreetsidePreferenceSettingTest.java	(revision 34432)
@@ -1,17 +1,12 @@
-// License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.streetside.gui;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
 import static org.openstreetmap.josm.plugins.streetside.utils.TestUtil.getPrivateFieldValue;
 
 import java.awt.GraphicsEnvironment;
 
-import javax.swing.JButton;
 import javax.swing.JCheckBox;
 import javax.swing.JComboBox;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
 import javax.swing.SpinnerNumberModel;
 
@@ -25,5 +20,4 @@
 import org.openstreetmap.josm.plugins.streetside.utils.TestUtil.StreetsideTestRules;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
-import org.openstreetmap.josm.tools.I18n;
 
 public class StreetsidePreferenceSettingTest {
Index: applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/io/download/SequenceDownloadRunnableTest.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/io/download/SequenceDownloadRunnableTest.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/io/download/SequenceDownloadRunnableTest.java	(revision 34432)
@@ -13,5 +13,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.gui.MainApplication;
Index: applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/utils/api/JsonSequencesDecoderTest.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/utils/api/JsonSequencesDecoderTest.java	(revision 34431)
+++ applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/utils/api/JsonSequencesDecoderTest.java	(revision 34432)
@@ -29,10 +29,9 @@
 public class JsonSequencesDecoderTest {
 
-
   @Ignore
   @Test
   public void testDecodeSequences() {
     Collection<StreetsideSequence> exampleSequences = JsonDecoder.decodeFeatureCollection(
-      Json.createReader(this.getClass().getResourceAsStream("/api/v3/responses/searchSequences.json")).readObject(),
+      Json.createReader(this.getClass().getResourceAsStream("test/data/api/v3/responses/searchSequences.json")).readObject(),
       JsonSequencesDecoder::decodeSequence
     );
