]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/data/DataPoint.java
Version 14, October 2012
[GpsPrune.git] / tim / prune / data / DataPoint.java
index e053e1ad14405add6a237b4e748884c8575fe3c4..34d7bd72055275f81339e1fe23c434d2008603c6 100644 (file)
@@ -19,8 +19,8 @@ public class DataPoint
        private Timestamp _timestamp = null;
        /** Attached photo */
        private Photo _photo = null;
-       /** Attached audio file */
-       private AudioFile _audio = null;
+       /** Attached audio clip */
+       private AudioClip _audio = null;
        private String _waypointName = null;
        private boolean _startOfSegment = false;
        private boolean _markedForDeletion = false;
@@ -38,6 +38,8 @@ public class DataPoint
                _fieldValues = inValueArray;
                // save list of fields
                _fieldList = inFieldList;
+               // Remove double quotes around values
+               removeQuotes(_fieldValues);
                // parse fields into objects
                parseFields(null, inAltFormat);
        }
@@ -164,7 +166,7 @@ public class DataPoint
                }
                else {
                        // use default altitude format from config
-                       parseFields(inField, Config.getConfigBoolean(Config.KEY_METRIC_UNITS)?Altitude.Format.METRES:Altitude.Format.FEET);
+                       parseFields(inField, Config.getUnitSet().getDefaultAltitudeFormat());
                }
        }
 
@@ -315,10 +317,10 @@ public class DataPoint
        }
 
        /**
-        * Set the audio file for this point
+        * Set the audio clip for this point
         * @param inAudio audio object
         */
-       public void setAudio(AudioFile inAudio) {
+       public void setAudio(AudioClip inAudio) {
                _audio = inAudio;
                _modifyCount++;
        }
@@ -326,23 +328,23 @@ public class DataPoint
        /**
         * @return associated audio object
         */
-       public AudioFile getAudio() {
+       public AudioClip getAudio() {
                return _audio;
        }
 
        /**
         * Attach the given media object according to type
-        * @param inMedia either a photo or an audio file
+        * @param inMedia either a photo or an audio clip
         */
-       public void attachMedia(MediaFile inMedia)
+       public void attachMedia(MediaObject inMedia)
        {
                if (inMedia != null) {
                        if (inMedia instanceof Photo) {
                                setPhoto((Photo) inMedia);
                                inMedia.setDataPoint(this);
                        }
-                       else if (inMedia instanceof AudioFile) {
-                               setAudio((AudioFile) inMedia);
+                       else if (inMedia instanceof AudioClip) {
+                               setAudio((AudioClip) inMedia);
                                inMedia.setDataPoint(this);
                        }
                }
@@ -363,6 +365,25 @@ public class DataPoint
                return _photo != null || _audio != null;
        }
 
+       /**
+        * @return name of attached photo and/or audio
+        */
+       public String getMediaName()
+       {
+               String mediaName = null;
+               if (_photo != null) mediaName = _photo.getName();
+               if (_audio != null)
+               {
+                       if (mediaName == null) {
+                               mediaName = _audio.getName();
+                       }
+                       else {
+                               mediaName = mediaName + ", " + _audio.getName();
+                       }
+               }
+               return mediaName;
+       }
+
        /**
         * Interpolate a set of points between this one and the given one
         * @param inEndPoint end point of interpolation
@@ -457,6 +478,41 @@ public class DataPoint
        }
 
 
+       /**
+        * Remove all single and double quotes surrounding each value
+        * @param inValues array of values
+        */
+       private static void removeQuotes(String[] inValues)
+       {
+               if (inValues == null) {return;}
+               for (int i=0; i<inValues.length; i++)
+               {
+                       inValues[i] = removeQuotes(inValues[i]);
+               }
+       }
+
+       /**
+        * Remove any single or double quotes surrounding a value
+        * @param inValue value to modify
+        * @return modified String
+        */
+       private static String removeQuotes(String inValue)
+       {
+               if (inValue == null) {return inValue;}
+               final int len = inValue.length();
+               if (len <= 1) {return inValue;}
+               // get the first and last characters
+               final char firstChar = inValue.charAt(0);
+               final char lastChar  = inValue.charAt(len-1);
+               if (firstChar == lastChar)
+               {
+                       if (firstChar == '\"' || firstChar == '\'') {
+                               return inValue.substring(1, len-1);
+                       }
+               }
+               return inValue;
+       }
+
        /**
         * Get string for debug
         * @see java.lang.Object#toString()