Short first attempt at a user manual for Subsurface-mobile
Signed-off-by: Willem Ferguson <willemferguson@zoology.up.ac.za> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
							
								
								
									
										
											BIN
										
									
								
								Documentation/mobile-images/banner.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 24 KiB | 
							
								
								
									
										
											BIN
										
									
								
								Documentation/mobile-images/divelist.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 40 KiB | 
							
								
								
									
										
											BIN
										
									
								
								Documentation/mobile-images/editdive.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 18 KiB | 
							
								
								
									
										
											BIN
										
									
								
								Documentation/mobile-images/gpsmanagement.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 72 KiB | 
							
								
								
									
										
											BIN
										
									
								
								Documentation/mobile-images/gpssetup.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 30 KiB | 
							
								
								
									
										
											BIN
										
									
								
								Documentation/mobile-images/landingscreen.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 42 KiB | 
							
								
								
									
										
											BIN
										
									
								
								Documentation/mobile-images/managedive.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 52 KiB | 
							
								
								
									
										
											BIN
										
									
								
								Documentation/mobile-images/map.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 25 KiB | 
							
								
								
									
										702
									
								
								Documentation/mobile-manual.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,702 @@ | |||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | ||||
|     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | ||||
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | ||||
| <head> | ||||
| <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> | ||||
| <meta name="generator" content="AsciiDoc 8.6.9" /> | ||||
| <title></title> | ||||
| <style type="text/css"> | ||||
| /* | ||||
|  * compact_subsurface.css, a special style sheet for Subsurface, | ||||
|  *  modified by Willem Ferguson and derived from: | ||||
|  *		compact.css, version 1.3 by Alex Efros <powerman@powerman.name> | ||||
|  * Licence: Public Domain | ||||
|  * | ||||
|  * Usage: asciidoc -a theme=compact_subsurface ... | ||||
|  */ | ||||
| 
 | ||||
| *   { padding: 0;  margin: 0; } | ||||
| img { border: 0; } | ||||
| 
 | ||||
| /*** Layout ***/ | ||||
| 
 | ||||
| body                        { margin: 10px 20px; } | ||||
| #header br                  { display: none; } | ||||
| #revnumber                  { display: block; } | ||||
| #toc                        { margin: 1em 0; } | ||||
| .toclevel2                  { margin-left: 1em; } | ||||
| .toclevel3		    { margin-left: 2em; } | ||||
| #footer                     { margin-top: 2em; } | ||||
| 
 | ||||
| #preamble .sectionbody, | ||||
| h2, | ||||
| h3, | ||||
| h4, | ||||
| h5                          { margin: 1em 0 0 0; } | ||||
| 
 | ||||
| .admonitionblock, | ||||
| .listingblock, | ||||
| .sidebarblock, | ||||
| .exampleblock, | ||||
| .tableblock, | ||||
| .literalblock               { margin: 1em 0; } | ||||
| .admonitionblock td.icon    { padding-right: 0.5em; } | ||||
| .admonitionblock td.content { padding-left:  0.5em; } | ||||
| .listingblock .content      { padding: 0.5em; } | ||||
| .sidebarblock > .content    { padding: 0.5em; } | ||||
| .exampleblock > .content    { padding: 0 0.5em; } | ||||
| .tableblock caption         { padding: 0 0 0.5em 0; } | ||||
| .tableblock thead th, | ||||
| .tableblock tbody td, | ||||
| .tableblock tfoot td        { padding: 0 0.5em; } | ||||
| .quoteblock                 { padding: 0 2.0em; } | ||||
| 
 | ||||
| .paragraph                  { margin: 1em 0 0 0; } | ||||
| .sidebarblock .paragraph:first-child, | ||||
| .exampleblock .paragraph:first-child, | ||||
| .admonitionblock .paragraph:first-child  { margin: 0; } | ||||
| 
 | ||||
|    .ulist,    .olist,    .dlist,    .hdlist,    .qlist   { margin: 1em 0; } | ||||
| li .ulist, li .olist, li .dlist, li .hdlist, li .qlist, | ||||
| dd .ulist, dd .olist, dd .dlist, dd .hdlist, dd .qlist   { margin: 0; } | ||||
| ul                          { margin-left: 1.5em; } | ||||
| ol                          { margin-left: 2em; } | ||||
| dd                          { margin-left: 3em; } | ||||
| td.hdlist1                  { padding-right: 1em; } | ||||
| 
 | ||||
| /*** Fonts ***/ | ||||
| 
 | ||||
| body                        { font-family: Verdana, sans-serif; } | ||||
| #header                     { font-family: Arial,   sans-serif; } | ||||
| #header h1                  { font-family: Arial,   sans-serif; } | ||||
| #footer                     { font-family: Georgia, serif;      } | ||||
| #email                      { font-size: 0.85em; } | ||||
| #revnumber                  { font-size: 0.75em; } | ||||
| #toc                        { font-size: 0.9em;  } | ||||
| #toctitle                   { font-weight: bold; } | ||||
| #footer                     { font-size: 0.8em; } | ||||
| 
 | ||||
| h2, h3, h4, h5, .title      { font-family: Arial,   sans-serif; } | ||||
| h2                          { font-size: 1.5em; } | ||||
| .sectionbody                { font-size: 0.85em; } | ||||
| .sectionbody .sectionbody   { font-size: inherit; } | ||||
| h3                          { font-size: 159%; } /* 1.35em */ | ||||
| h4                          { font-size: 141%; } /* 1.2em */ | ||||
| h5                          { font-size: 118%; } /* 1em */ | ||||
| .title                      { font-size: 106%;   /* 0.9em */ | ||||
| 			      font-weight: bold; | ||||
| 			    } | ||||
| 
 | ||||
| tt, .monospaced             { font-family: monospace; font-size: 106%; } /* 0.9em */ | ||||
| dt, td.hdlist1, .qlist em   { font-family: Times New Roman, serif; | ||||
| 			      font-size: 118%;   /* 1em */ | ||||
| 			      font-style: italic; | ||||
| 			    } | ||||
| .tableblock tfoot td        { font-weight: bold; } | ||||
| 
 | ||||
| /*** Colors and Backgrounds ***/ | ||||
| 
 | ||||
| h1                          { color: #527bbd; border-bottom: 2px solid silver; } | ||||
| #footer                     {                 border-top:    2px solid silver; } | ||||
| 
 | ||||
| h2                          { color: #527bbd; border-bottom: 2px solid silver; } | ||||
| h3                          { color: #5D7EAE; border-bottom: 2px solid silver; } | ||||
| h3                          { display: inline-block; } | ||||
| h4,h5                       { color: #5D7EAE; } | ||||
| 
 | ||||
| .admonitionblock td.content { border-left: 2px solid silver; } | ||||
| .listingblock .content      { background: #f4f4f4;   border: 1px solid silver; border-left: 5px solid #e0e0e0; } | ||||
| .sidebarblock > .content    { background: #ffffee;   border: 1px solid silver; border-left: 5px solid #e0e0e0; } | ||||
| .exampleblock > .content    {                   border-left: 2px solid silver; } | ||||
| .quoteblock                 {                   border-left: 5px solid #e0e0e0; } | ||||
| .tableblock table { | ||||
|     border-collapse: collapse; | ||||
|     border-width: 3px; | ||||
|     border-color: #527bbd; | ||||
| } | ||||
| .tableblock table[frame=hsides] { border-style: solid none; } | ||||
| .tableblock table[frame=border] { border-style: solid;      } | ||||
| .tableblock table[frame=void]   { border-style: none;       } | ||||
| .tableblock table[frame=vsides] { border-style: none solid; } | ||||
| .tableblock table[rules=all] tbody tr *, | ||||
| .tableblock table[rules=rows] tbody tr * { | ||||
|     border-top: 1px solid #527bbd; | ||||
| } | ||||
| .tableblock table[rules=all] tr *, | ||||
| .tableblock table[rules=cols] tr * { | ||||
|     border-left: 1px solid #527bbd; | ||||
| } | ||||
| .tableblock table tbody tr:first-child * { | ||||
|     border-top: 1px solid white; /* none don't work here... %-[] */ | ||||
| } | ||||
| .tableblock table tr *:first-child { | ||||
|     border-left: none; | ||||
| } | ||||
| .tableblock table[frame] thead tr *, | ||||
| .tableblock table[frame] thead tr * { | ||||
|     border-top: 1px solid white; | ||||
|     border-bottom: 2px solid #527bbd; | ||||
| } | ||||
| .tableblock table tr td p.table, | ||||
| .tableblock table tr td p.table * { | ||||
|     border: 0px; | ||||
| } | ||||
| 
 | ||||
| tt, .monospaced             { color: navy; } | ||||
| 
 | ||||
| li                          { color: #a0a0a0; } | ||||
| li > *                      { color: black; } | ||||
| 
 | ||||
| span.aqua { color: aqua; } | ||||
| span.black { color: black; } | ||||
| span.blue { color: blue; } | ||||
| span.fuchsia { color: fuchsia; } | ||||
| span.gray { color: gray; } | ||||
| span.green { color: green; } | ||||
| span.lime { color: lime; } | ||||
| span.maroon { color: maroon; } | ||||
| span.navy { color: navy; } | ||||
| span.olive { color: olive; } | ||||
| span.purple { color: purple; } | ||||
| span.red { color: red; } | ||||
| span.silver { color: silver; } | ||||
| span.teal { color: teal; } | ||||
| span.white { color: white; } | ||||
| span.yellow { color: yellow; } | ||||
| 
 | ||||
| span.aqua-background { background: aqua; } | ||||
| span.black-background { background: black; } | ||||
| span.blue-background { background: blue; } | ||||
| span.fuchsia-background { background: fuchsia; } | ||||
| span.gray-background { background: gray; } | ||||
| span.green-background { background: green; } | ||||
| span.lime-background { background: lime; } | ||||
| span.maroon-background { background: maroon; } | ||||
| span.navy-background { background: navy; } | ||||
| span.olive-background { background: olive; } | ||||
| span.purple-background { background: purple; } | ||||
| span.red-background { background: red; } | ||||
| span.silver-background { background: silver; } | ||||
| span.teal-background { background: teal; } | ||||
| span.white-background { background: white; } | ||||
| span.yellow-background { background: yellow; } | ||||
| 
 | ||||
| span.big { font-size: 2em; } | ||||
| span.small { font-size: 0.6em; } | ||||
| 
 | ||||
| span.underline { text-decoration: underline; } | ||||
| span.overline { text-decoration: overline; } | ||||
| span.line-through { text-decoration: line-through; } | ||||
| 
 | ||||
| /*** Misc ***/ | ||||
| 
 | ||||
| .admonitionblock td.icon    { vertical-align: top; } | ||||
| .attribution                { text-align: right; } | ||||
| 
 | ||||
| ul                          { list-style-type: disc; } | ||||
| ol.arabic                   { list-style-type: decimal; } | ||||
| ol.loweralpha               { list-style-type: lower-alpha; } | ||||
| ol.upperalpha               { list-style-type: upper-alpha; } | ||||
| ol.lowerroman               { list-style-type: lower-roman; } | ||||
| ol.upperroman               { list-style-type: upper-roman; } | ||||
| .hdlist td                  { vertical-align: top; } | ||||
| 
 | ||||
| 
 | ||||
| </style> | ||||
| <script type="text/javascript"> | ||||
| /*<+'])'); | ||||
|     // Function that scans the DOM tree for header elements (the DOM2 | ||||
|     // nodeIterator API would be a better technique but not supported by all | ||||
|     // browsers). | ||||
|     var iterate = function (el) { | ||||
|       for (var i = el.firstChild; i != null; i = i.nextSibling) { | ||||
|         if (i.nodeType == 1 /* Node.ELEMENT_NODE */) { | ||||
|           var mo = re.exec(i.tagName); | ||||
|           if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") { | ||||
|             result[result.length] = new TocEntry(i, getText(i), mo[1]-1); | ||||
|           } | ||||
|           iterate(i); | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|     iterate(el); | ||||
|     return result; | ||||
|   } | ||||
| 
 | ||||
|   var toc = document.getElementById("toc"); | ||||
|   if (!toc) { | ||||
|     return; | ||||
|   } | ||||
| 
 | ||||
|   // Delete existing TOC entries in case we're reloading the TOC. | ||||
|   var tocEntriesToRemove = []; | ||||
|   var i; | ||||
|   for (i = 0; i < toc.childNodes.length; i++) { | ||||
|     var entry = toc.childNodes[i]; | ||||
|     if (entry.nodeName.toLowerCase() == 'div' | ||||
|      && entry.getAttribute("class") | ||||
|      && entry.getAttribute("class").match(/^toclevel/)) | ||||
|       tocEntriesToRemove.push(entry); | ||||
|   } | ||||
|   for (i = 0; i < tocEntriesToRemove.length; i++) { | ||||
|     toc.removeChild(tocEntriesToRemove[i]); | ||||
|   } | ||||
| 
 | ||||
|   // Rebuild TOC entries. | ||||
|   var entries = tocEntries(document.getElementById("content"), toclevels); | ||||
|   for (var i = 0; i < entries.length; ++i) { | ||||
|     var entry = entries[i]; | ||||
|     if (entry.element.id == "") | ||||
|       entry.element.id = "_toc_" + i; | ||||
|     var a = document.createElement("a"); | ||||
|     a.href = "#" + entry.element.id; | ||||
|     a.appendChild(document.createTextNode(entry.text)); | ||||
|     var div = document.createElement("div"); | ||||
|     div.appendChild(a); | ||||
|     div.className = "toclevel" + entry.toclevel; | ||||
|     toc.appendChild(div); | ||||
|   } | ||||
|   if (entries.length == 0) | ||||
|     toc.parentNode.removeChild(toc); | ||||
| }, | ||||
| 
 | ||||
| 
 | ||||
| ///////////////////////////////////////////////////////////////////// | ||||
| // Footnotes generator | ||||
| ///////////////////////////////////////////////////////////////////// | ||||
| 
 | ||||
| /* Based on footnote generation code from: | ||||
|  * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html | ||||
|  */ | ||||
| 
 | ||||
| footnotes: function () { | ||||
|   // Delete existing footnote entries in case we're reloading the footnodes. | ||||
|   var i; | ||||
|   var noteholder = document.getElementById("footnotes"); | ||||
|   if (!noteholder) { | ||||
|     return; | ||||
|   } | ||||
|   var entriesToRemove = []; | ||||
|   for (i = 0; i < noteholder.childNodes.length; i++) { | ||||
|     var entry = noteholder.childNodes[i]; | ||||
|     if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") | ||||
|       entriesToRemove.push(entry); | ||||
|   } | ||||
|   for (i = 0; i < entriesToRemove.length; i++) { | ||||
|     noteholder.removeChild(entriesToRemove[i]); | ||||
|   } | ||||
| 
 | ||||
|   // Rebuild footnote entries. | ||||
|   var cont = document.getElementById("content"); | ||||
|   var spans = cont.getElementsByTagName("span"); | ||||
|   var refs = {}; | ||||
|   var n = 0; | ||||
|   for (i=0; i<spans.length; i++) { | ||||
|     if (spans[i].className == "footnote") { | ||||
|       n++; | ||||
|       var note = spans[i].getAttribute("data-note"); | ||||
|       if (!note) { | ||||
|         // Use [\s\S] in place of . so multi-line matches work. | ||||
|         // Because JavaScript has no s (dotall) regex flag. | ||||
|         note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1]; | ||||
|         spans[i].innerHTML = | ||||
|           "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n + | ||||
|           "' title='View footnote' class='footnote'>" + n + "</a>]"; | ||||
|         spans[i].setAttribute("data-note", note); | ||||
|       } | ||||
|       noteholder.innerHTML += | ||||
|         "<div class='footnote' id='_footnote_" + n + "'>" + | ||||
|         "<a href='#_footnoteref_" + n + "' title='Return to text'>" + | ||||
|         n + "</a>. " + note + "</div>"; | ||||
|       var id =spans[i].getAttribute("id"); | ||||
|       if (id != null) refs["#"+id] = n; | ||||
|     } | ||||
|   } | ||||
|   if (n == 0) | ||||
|     noteholder.parentNode.removeChild(noteholder); | ||||
|   else { | ||||
|     // Process footnoterefs. | ||||
|     for (i=0; i<spans.length; i++) { | ||||
|       if (spans[i].className == "footnoteref") { | ||||
|         var href = spans[i].getElementsByTagName("a")[0].getAttribute("href"); | ||||
|         href = href.match(/#.*/)[0];  // Because IE return full URL. | ||||
|         n = refs[href]; | ||||
|         spans[i].innerHTML = | ||||
|           "[<a href='#_footnote_" + n + | ||||
|           "' title='View footnote' class='footnote'>" + n + "</a>]"; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| }, | ||||
| 
 | ||||
| install: function(toclevels) { | ||||
|   var timerId; | ||||
| 
 | ||||
|   function reinstall() { | ||||
|     asciidoc.footnotes(); | ||||
|     if (toclevels) { | ||||
|       asciidoc.toc(toclevels); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   function reinstallAndRemoveTimer() { | ||||
|     clearInterval(timerId); | ||||
|     reinstall(); | ||||
|   } | ||||
| 
 | ||||
|   timerId = setInterval(reinstall, 500); | ||||
|   if (document.addEventListener) | ||||
|     document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false); | ||||
|   else | ||||
|     window.onload = reinstallAndRemoveTimer; | ||||
| } | ||||
| 
 | ||||
| } | ||||
| asciidoc.install(3); | ||||
| /*]]>*/ | ||||
| </script> | ||||
| </head> | ||||
| <body class="article"> | ||||
| <div id="header"> | ||||
| </div> | ||||
| <div id="content"> | ||||
| <div class="imageblock" style="text-align:center;"> | ||||
| <div class="content"> | ||||
| <img src="mobile-images/banner.jpg" alt="Banner" /> | ||||
| </div> | ||||
| </div> | ||||
| <div class="paragraph"><p><span class="big">Subsurface-mobile for Android: USER MANUAL</span></p></div> | ||||
| <div class="paragraph"><p><strong>Manual author</strong>: Willem Ferguson</p></div> | ||||
| <div id="toc"> | ||||
|   <div id="toctitle">Table of Contents</div> | ||||
|   <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript> | ||||
| </div> | ||||
| <div class="paragraph"><p><span class="blue"><em>Beta release, February 2016</em></span></p></div> | ||||
| <div class="admonitionblock"> | ||||
| <table><tr> | ||||
| <td class="icon"> | ||||
| <img src="./images/icons/important.png" alt="Important" /> | ||||
| </td> | ||||
| <td class="content">For this BETA release it is critical that users report any problems | ||||
| with the use of the mobile software. After all, one of the objectives | ||||
| of a beta release is to distribute the software to a broader circle | ||||
| of users using different Android devices and configurations in order to | ||||
| iron out any bugs, errors or inconsistencies. Please report | ||||
| such issues by email to <a href="mailto:subsurface@subsurface-divelog.org">subsurface@subsurface-divelog.org</a></td> | ||||
| </tr></table> | ||||
| </div> | ||||
| <div class="paragraph"><p>Welcome as a user of <em>Subsurface</em>, an advanced dive logging program with | ||||
| extensive infrastructure to describe, organize, interpret and print scuba | ||||
| and free dives. <em>Subsurface</em> offers many advantages over other similar | ||||
| software solutions, including compatibility with Windows, Mac-OS/X, Linux (many | ||||
| distributions) as well as Android. In addition, <em>Subsurface</em> allows downloading dive | ||||
| information from most dive computers. <em>Subsurface</em> software is open-source.</p></div> | ||||
| <div class="sect1"> | ||||
| <h2 id="_introducing_subsurface_mobile">1. Introducing Subsurface-mobile</h2> | ||||
| <div class="sectionbody"> | ||||
| <div class="paragraph"><p><em>Subsurface-mobile</em> is an extension of <em>Subsurface</em> that runs on laptop and | ||||
| tabletop computers. It runs on Android smartphone and tablet devices and is a | ||||
| tool for viewing or sharing dive information at dive sites. It also allows | ||||
| the gathering of GPS locations where dives are performed.</p></div> | ||||
| <div class="paragraph"><p>While <em>Subsurface-mobile</em> allows one to enter and save dive information | ||||
| using an Android device, users of <em>Subsurface-mobile</em> typically use the | ||||
| mobile app as an extension of the laptop/desktop version of <em>Subsurface</em>. | ||||
| This allows the storage of dive logs on the Internet and which | ||||
| can be shared by the Android version as well as the desktop version. | ||||
| While the desktop version of <em>Subsurface</em> shows much more detailed information | ||||
| for each dive, the mobile version allows one to have a more accessible dive log | ||||
| on a dive trip, useful for proving dive experience to dive shops or to review | ||||
| previous dives. <em>Subsurface-mobile</em> allows one to:</p></div> | ||||
| <div class="ulist"><ul> | ||||
| <li> | ||||
| <p> | ||||
| Download existing dive log information from the Internet. | ||||
| </p> | ||||
| </li> | ||||
| <li> | ||||
| <p> | ||||
| View this information on an Android device. | ||||
| </p> | ||||
| </li> | ||||
| <li> | ||||
| <p> | ||||
| Edit many of the dive log data fields, e.g. divemaster, buddy, | ||||
|   equipment or notes about a dive. | ||||
| </p> | ||||
| </li> | ||||
| <li> | ||||
| <p> | ||||
| Create and add new dive records to one’s dive log. | ||||
| </p> | ||||
| </li> | ||||
| <li> | ||||
| <p> | ||||
| Store the updated dive log on the Internet. | ||||
| </p> | ||||
| </li> | ||||
| <li> | ||||
| <p> | ||||
| Record, store and apply GPS positions of dives. | ||||
| </p> | ||||
| </li> | ||||
| <li> | ||||
| <p> | ||||
| View the localities of recorded GPS positions and of dives | ||||
|   on a map. | ||||
| </p> | ||||
| </li> | ||||
| </ul></div> | ||||
| <div class="paragraph"><p>These items are discussed in greater detail in the following text.</p></div> | ||||
| </div> | ||||
| </div> | ||||
| <div class="sect1"> | ||||
| <h2 id="_installing_em_subsurface_mobile_em_on_an_android_device">2. Installing <em>Subsurface-mobile</em> on an Android device</h2> | ||||
| <div class="sectionbody"> | ||||
| <div class="paragraph"><p>Install <em>Subsurface-mobile</em> from the Google | ||||
| Play Store. Search for <em>Subsurface-mobile</em> and install it.</p></div> | ||||
| </div> | ||||
| </div> | ||||
| <div class="sect1"> | ||||
| <h2 id="_using_em_subsurface_mobile_em_for_the_first_time">3. Using <em>Subsurface-mobile</em> for the first time</h2> | ||||
| <div class="sectionbody"> | ||||
| <div class="paragraph"><p>Upon starting <em>Subsurface-mobile</em> for the first time, a Subsurface | ||||
| splash screen is shown while the program loads. On some devices this | ||||
| may take several seconds. After loading, the <em>landing screen</em> appears | ||||
| (see image on left, below). There are three options.</p></div> | ||||
| <div class="imageblock" style="text-align:center;"> | ||||
| <div class="content"> | ||||
| <img src="mobile-images/landingscreen.jpg" alt="FIGURE: Mobile landing screen" /> | ||||
| </div> | ||||
| </div> | ||||
| <div class="paragraph"><p>Since <em>Subsurface</em> is largely dependent on a dive log saved on the Internet, | ||||
| select the top option "Connect to Cloudstorage" and enter an email address | ||||
| and password for access to the <em>Subsurface</em> Internet storage server. If | ||||
| you do not have credentials to log in, this is obtained through the | ||||
| desktop version of <em>Subsurface</em>. When entering a password, it is possible to check | ||||
| a checkbox that enables the text of the password to be shown. Checking the | ||||
| check box labelled "Remember" allows <em>Susburface-mobile</em> to keep the | ||||
| credentials for subsequent logins (see image on right, above). | ||||
| Having entered the credentials, tap "Save". | ||||
| <em>Subsurface-mobile</em> attempts to download the existing dive log from the | ||||
| Internet server. Appropriate messages are shown onscreen. Finally | ||||
| a list of dives are shown (image on left, below).</p></div> | ||||
| <div class="paragraph"><p>For the beta release, do not choose the options "Transfer from dive computer" or "Add dive manually"</p></div> | ||||
| </div> | ||||
| </div> | ||||
| <div class="sect1"> | ||||
| <h2 id="_local_copy_of_the_dive_log_and_synchronisation_with_internet">4. Local copy of the dive log and synchronisation with Internet</h2> | ||||
| <div class="sectionbody"> | ||||
| <div class="paragraph"><p>Once the dive | ||||
| list has been downloaded from the Internet, <em>Subsurface-mobile</em> keeps a local | ||||
| copy on the Android device. This means that, if there is no Internet connection | ||||
| at a dive site, one can still access the local copy and view and manipulate | ||||
| dive information. If there is Internet connectivity, <em>Subsurface-mobile</em> accesses | ||||
| the Internet-based dive log to verify that the local copy is still the | ||||
| same as the Internet-stored copy. If not, the local copy is synchronised with the version on | ||||
| the Internet.</p></div> | ||||
| </div> | ||||
| </div> | ||||
| <div class="sect1"> | ||||
| <h2 id="_viewing_the_dive_list">5. Viewing the Dive List</h2> | ||||
| <div class="sectionbody"> | ||||
| <div class="paragraph"><p>Most of the actions of <em>Subsurface-mobile</em> center around the dives on the | ||||
| dive list. One can scroll up and down the dive list. Tapping a dive on | ||||
| the list brings up a display of <em>Details View</em> for that dive. | ||||
| This includes the dive profile as well as additional information and notes | ||||
| (see image on right, below).</p></div> | ||||
| <div class="paragraph"><p>One can view other dives by swiping the <em>Details view</em> to the right (for the | ||||
| previous dive) or to the left (following dive).</p></div> | ||||
| <div class="imageblock" style="text-align:center;"> | ||||
| <div class="content"> | ||||
| <img src="mobile-images/divelist.jpg" alt="FIGURE: Dive list screen" /> | ||||
| </div> | ||||
| </div> | ||||
| </div> | ||||
| </div> | ||||
| <div class="sect1"> | ||||
| <h2 id="_editing_dive_details">6. Editing dive details.</h2> | ||||
| <div class="sectionbody"> | ||||
| <div class="paragraph"><p>At the bottom of the screen an <em>Action Button</em> | ||||
| allows aditional actions with respect to a dive that is being shown. In the | ||||
| details screen (image on right, above) the action button shows a pencil. | ||||
| Tapping the button brings up a panel with edit boxes that allows one to | ||||
| change the existing dive information, e.g. adding text to the dive notes | ||||
| or changing the names or values of some of the information (see image below). | ||||
| It may be necessary to scroll the window to access all the information. | ||||
| At the bottom of the edit screen is a "Save" button. Tap this to save | ||||
| the new information. Having saved the data, the dive list screen is | ||||
| shown. To cancel any edits, tap the Action Button.</p></div> | ||||
| <div class="imageblock" style="text-align:center;"> | ||||
| <div class="content"> | ||||
| <img src="mobile-images/editdive.jpg" alt="FIGURE: Dive edit screen" /> | ||||
| </div> | ||||
| </div> | ||||
| </div> | ||||
| </div> | ||||
| <div class="sect1"> | ||||
| <h2 id="_dive_log_management">7. Dive log management</h2> | ||||
| <div class="sectionbody"> | ||||
| <div class="paragraph"><p>A central  part of <em>Subsurface-mobile</em> is the ability to store the dive log on the Internet. | ||||
| This provides security against loss or damage to the dive information caintained in a local copy of | ||||
| the dive log. This ability is accessed throug the Action Panel. Drag the Action Button to the right. | ||||
| (alternatively tap the Menu button at the top left of the Android screen). | ||||
| This brings up the Action Panel (image on left, below). Tap the option "Manage dives" (image below in middle).</p></div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_upload_dive_log_to_the_internet">7.1. Upload dive log to the Internet</h3> | ||||
| <div class="paragraph"><p>Assuming that the correct credentials have been specified, one can upload the dives contained on the Androis device | ||||
| to the Internet by tapping the option "Upload to cloud". This saves the local | ||||
| copy of the dive log to the cloud.</p></div> | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_download_dive_log_from_the_internet">7.2. Download dive log from the Internet</h3> | ||||
| <div class="paragraph"><p>In the dive management subpanel, tap the option "Refresh" (image below in middle). This causes | ||||
| the local divelog to be refreshed from the cloud so that the Internet and local versions are synchronised.</p></div> | ||||
| <div class="imageblock" style="text-align:center;"> | ||||
| <div class="content"> | ||||
| <img src="mobile-images/managedive.jpg" alt="FIGURE: Dive management subpanel" /> | ||||
| </div> | ||||
| </div> | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_add_dive_manually">7.3. Add dive manually</h3> | ||||
| <div class="paragraph"><p>Dives can easily be entered by hand. This allows one to describe a dive and add it to the dive log. | ||||
| In the dive management subpanel tap "Add dive manually". The edit screen opens (image above on right). | ||||
| Fill in all the appropriate information, then tap the "Save" button at the bottom of the screen. It may be | ||||
| necessary to scroll down to see the "Save" button. The dive is then saved as part of the dive log. In the | ||||
| details dive view, a profile of the dive is created.</p></div> | ||||
| </div> | ||||
| </div> | ||||
| </div> | ||||
| <div class="sect1"> | ||||
| <h2 id="_recording_dive_locations_using_gps">8. Recording dive locations using GPS.</h2> | ||||
| <div class="sectionbody"> | ||||
| <div class="paragraph"><p>The fact that most smartphones have GPS facilities allows one to record | ||||
| the locations of dives. One can take the smartphone on the dive boat | ||||
| during a dive and locations will be automatically recorded at regular intervals.</p></div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_setting_up_the_gps">8.1. Setting up the GPS</h3> | ||||
| <div class="paragraph"><p>Drag the Action Button to the right. This brings up the Action Panel (image | ||||
| on left, above). Select "Preferences". Now specify the way | ||||
| in which GPS data need to be automatically collected (image on left, below). One can specify that | ||||
| data are collected at regular intervals, e.g. every 10 minutes, or at regular | ||||
| distances, e.g. after the boat has moved more than 200m, or a combination of | ||||
| both of the above approaches. Provide the appropriate information and | ||||
| tap the "Save" button. The program is now ready to collect GPS positions.</p></div> | ||||
| <div class="imageblock" style="text-align:center;"> | ||||
| <div class="content"> | ||||
| <img src="mobile-images/gpssetup.jpg" alt="FIGURE: GPS setup screen" /> | ||||
| </div> | ||||
| </div> | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_collecting_gps_positions">8.2. Collecting GPS positions</h3> | ||||
| <div class="paragraph"><p>Ensure that the GPS on the Android device has been activated. At the bottom | ||||
| of the Action Panel is a check box "Run location service" (image on right, above). | ||||
| Check this box | ||||
| and <em>Subsurface-mobile</em> starts to collect GPS locations automatically, | ||||
| following the preferences specified as described above. After | ||||
| the dive one can deactivate the collection of GPS data by de-activating | ||||
| the same check box at the bottom of the Action Panel.</p></div> | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_storing_the_gps_data">8.3. Storing the GPS data</h3> | ||||
| <div class="paragraph"><p>Activate the Action Panel (image on right, above) by drawing the Action Button to the right. | ||||
| Select the "GPS" option that brings up a submenu of GPS-related actions | ||||
| (image on left, below). Tap "Upload GPS data" that saves the GPS data | ||||
| on the <em>Subsurface</em> Internet server. These GPS data are saved separately | ||||
| from the other dive log data. All collected GPS data are kept on the | ||||
| Android device, independent of whether they have been uploaded or not.</p></div> | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_viewing_gps_data">8.4. Viewing GPS data</h3> | ||||
| <div class="paragraph"><p>From the GPS submenu (image on left, below) select "Show GPS fixes". This brings | ||||
| up a list of GPS positions obtained using the location service (image | ||||
| in middle, below). Two actions are possible for each of the locations, enabled if | ||||
| one taps the handle (the three horisontal stripes on the right, see image in middle, below) and | ||||
| then drags the specific item to the left (image on right, below). This exposes two | ||||
| options. Tapping the dustbin deletes this particular GPS location. Tapping the | ||||
| teardrop-shaped icon (actually a Google Maps pin) opens up Google Maps with a pin | ||||
| indicating the exact map position of the record being viewed. The two above | ||||
| options can be hidden by drawing the GPS record to the right, again using the handle.</p></div> | ||||
| </div> | ||||
| </div> | ||||
| </div> | ||||
| <div class="sect1"> | ||||
| <h2 id="_saving_gps_positions_on_the_internet">9. Saving GPS positions on the Internet</h2> | ||||
| <div class="sectionbody"> | ||||
| <div class="paragraph"><p>One can save the collected GPS data on the Internet by | ||||
| selecting "Upload GPS Data" from the GPS submanu (Image on left, below).</p></div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_downloading_gps_data_from_the_internet">9.1. Downloading GPS data from the Internet</h3> | ||||
| <div class="paragraph"><p>One can download the GPS data that have been saved on the Internet by | ||||
| selecting "Download GPS Data" from the GPS subpanel (Image on left, below).</p></div> | ||||
| <div class="imageblock" style="text-align:center;"> | ||||
| <div class="content"> | ||||
| <img src="mobile-images/gpsmanagement.jpg" alt="FIGURE: GPS management" /> | ||||
| </div> | ||||
| </div> | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_applying_gps_data_to_dives_in_the_dive_log">9.2. Applying GPS data to dives in the dive log</h3> | ||||
| <div class="paragraph"><p>Assuming that all the dives have been entered into the dive log or have | ||||
| been downloaded from the Internet, one can apply the GPS positions to | ||||
| these dives. GPS positions can therefore only be applied to dives in the dive log. | ||||
| From the GPS subpanel, tap "Apply GPS fixes" (image on left, above). The dive log contains the start | ||||
| and end times of each dive. Now, <em>Subsurface-mobile</em> applies the first | ||||
| GPS position that falls within the dive period of each dive. This results | ||||
| in a GPS position for each dive that is saved as part of the dive log.</p></div> | ||||
| </div> | ||||
| </div> | ||||
| </div> | ||||
| </div> | ||||
| <div id="footnotes"><hr /></div> | ||||
| <div id="footer"> | ||||
| <div id="footer-text"> | ||||
| Last updated | ||||
|  2016-02-08 08:02:33 SAST | ||||
| </div> | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
							
								
								
									
										235
									
								
								Documentation/mobile-manual.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,235 @@ | |||
| // Subsurface-mobile User Manual | ||||
| // ============================= | ||||
| // :author: Manual authors: Jacco van Koll, Dirk Hohndel, Reinout Hoornweg, | ||||
| // Linus Torvalds, Miika Turkia, Amit Chaudhuri, Jan Schubert, Willem | ||||
| // Ferguson, Salvador Cuñat, Pedro Neves | ||||
| // :revnumber: 4.5 | ||||
| // :revdate: October 2015 | ||||
| :icons: | ||||
| :toc: | ||||
| :toc-placement: manual | ||||
| :numbered: | ||||
| // :website: http://subsurface-divelog.org | ||||
| 
 | ||||
| image::mobile-images/banner.jpg["Banner",align="center"] | ||||
| 
 | ||||
| [big]#Subsurface-mobile for Android: USER MANUAL# | ||||
| 
 | ||||
| *Manual author*: Willem Ferguson | ||||
| 
 | ||||
| toc::[] | ||||
| 
 | ||||
| [blue]#_Beta release, February 2016_# | ||||
| 
 | ||||
| IMPORTANT: For this BETA release it is critical that users report any problems | ||||
| with the use of the mobile software. After all, one of the objectives | ||||
| of a beta release is to distribute the software to a broader circle | ||||
| of users using different Android devices and configurations in order to | ||||
| iron out any bugs, errors or inconsistencies. Please report | ||||
| such issues by email to subsurface@subsurface-divelog.org | ||||
| 
 | ||||
| Welcome as a user of _Subsurface_, an advanced dive logging program with | ||||
| extensive infrastructure to describe, organize, interpret and print scuba | ||||
| and free dives. _Subsurface_ offers many advantages over other similar | ||||
| software solutions, including compatibility with Windows, Mac-OS/X, Linux (many | ||||
| distributions) as well as Android. In addition, _Subsurface_ allows downloading dive | ||||
| information from most dive computers. _Subsurface_ software is open-source. | ||||
| 
 | ||||
| Introducing Subsurface-mobile | ||||
| ----------------------------- | ||||
| 
 | ||||
| _Subsurface-mobile_ is an extension of _Subsurface_ that runs on laptop and | ||||
| tabletop computers. It runs on Android smartphone and tablet devices and is a | ||||
| tool for viewing or sharing dive information at dive sites. It also allows | ||||
| the gathering of GPS locations where dives are performed. | ||||
| 
 | ||||
| While _Subsurface-mobile_ allows one to enter and save dive information | ||||
| using an Android device, users of _Subsurface-mobile_ typically use the | ||||
| mobile app as an extension of the laptop/desktop version of _Subsurface_. | ||||
| This allows the storage of dive logs on the Internet and which | ||||
| can be shared by the Android version as well as the desktop version. | ||||
| While the desktop version of _Subsurface_ shows much more detailed information | ||||
| for each dive, the mobile version allows one to have a more accessible dive log | ||||
| on a dive trip, useful for proving dive experience to dive shops or to review | ||||
| previous dives. _Subsurface-mobile_ allows one to: | ||||
| 
 | ||||
| - Download existing dive log information from the Internet. | ||||
| - View this information on an Android device. | ||||
| - Edit many of the dive log data fields, e.g. divemaster, buddy, | ||||
|   equipment or notes about a dive. | ||||
| - Create and add new dive records to one's dive log. | ||||
| - Store the updated dive log on the Internet. | ||||
| - Record, store and apply GPS positions of dives. | ||||
| - View the localities of recorded GPS positions and of dives | ||||
|   on a map. | ||||
| 
 | ||||
| These items are discussed in greater detail in the following text. | ||||
| 
 | ||||
| == Installing _Subsurface-mobile_ on an Android device | ||||
| 
 | ||||
| Install _Subsurface-mobile_ from the Google | ||||
| Play Store. Search for _Subsurface-mobile_ and install it. | ||||
| 
 | ||||
| == Using _Subsurface-mobile_ for the first time | ||||
| 
 | ||||
| Upon starting _Subsurface-mobile_ for the first time, a Subsurface | ||||
| splash screen is shown while the program loads. On some devices this | ||||
| may take several seconds. After loading, the _landing screen_ appears | ||||
| (see image on left, below). There are three options. | ||||
| 
 | ||||
| image::mobile-images/landingscreen.jpg["FIGURE: Mobile landing screen",align="center"] | ||||
| 
 | ||||
| Since _Subsurface_ is largely dependent on a dive log saved on the Internet, | ||||
| select the top option "Connect to Cloudstorage" and enter an email address | ||||
| and password for access to the _Subsurface_ Internet storage server. If | ||||
| you do not have credentials to log in, this is obtained through the | ||||
| desktop version of _Subsurface_. When entering a password, it is possible to check | ||||
| a checkbox that enables the text of the password to be shown. Checking the | ||||
| check box labelled "Remember" allows _Susburface-mobile_ to keep the | ||||
| credentials for subsequent logins (see image on right, above). | ||||
| Having entered the credentials, tap "Save". | ||||
| _Subsurface-mobile_ attempts to download the existing dive log from the | ||||
| Internet server. Appropriate messages are shown onscreen. Finally | ||||
| a list of dives are shown (image on left, below). | ||||
| 
 | ||||
| For the beta release, do not choose the options "Transfer from dive computer" or "Add dive manually" | ||||
| 
 | ||||
| == Local copy of the dive log and synchronisation with Internet | ||||
| 
 | ||||
| Once the dive | ||||
| list has been downloaded from the Internet, _Subsurface-mobile_ keeps a local | ||||
| copy on the Android device. This means that, if there is no Internet connection | ||||
| at a dive site, one can still access the local copy and view and manipulate | ||||
| dive information. If there is Internet connectivity, _Subsurface-mobile_ accesses | ||||
| the Internet-based dive log to verify that the local copy is still the | ||||
| same as the Internet-stored copy. If not, the local copy is synchronised with the version on | ||||
| the Internet. | ||||
| 
 | ||||
| == Viewing the Dive List | ||||
| 
 | ||||
| Most of the actions of _Subsurface-mobile_ center around the dives on the | ||||
| dive list. One can scroll up and down the dive list. Tapping a dive on | ||||
| the list brings up a display of _Details View_ for that dive. | ||||
| This includes the dive profile as well as additional information and notes | ||||
| (see image on right, below). | ||||
| 
 | ||||
| One can view other dives by swiping the _Details view_ to the right (for the | ||||
| previous dive) or to the left (following dive). | ||||
| 
 | ||||
| image::mobile-images/divelist.jpg["FIGURE: Dive list screen",align="center"] | ||||
| 
 | ||||
| == Editing dive details. | ||||
| 
 | ||||
| At the bottom of the screen an _Action Button_ | ||||
| allows aditional actions with respect to a dive that is being shown. In the | ||||
| details screen (image on right, above) the action button shows a pencil. | ||||
| Tapping the button brings up a panel with edit boxes that allows one to | ||||
| change the existing dive information, e.g. adding text to the dive notes | ||||
| or changing the names or values of some of the information (see image below). | ||||
| It may be necessary to scroll the window to access all the information. | ||||
| At the bottom of the edit screen is a "Save" button. Tap this to save | ||||
| the new information. Having saved the data, the dive list screen is | ||||
| shown. To cancel any edits, tap the Action Button. | ||||
| 
 | ||||
| image::mobile-images/editdive.jpg["FIGURE: Dive edit screen",align="center"] | ||||
| 
 | ||||
| == Dive log management | ||||
| 
 | ||||
| A central  part of _Subsurface-mobile_ is the ability to store the dive log on the Internet. | ||||
| This provides security against loss or damage to the dive information caintained in a local copy of | ||||
| the dive log. This ability is accessed throug the Action Panel. Drag the Action Button to the right. | ||||
| (alternatively tap the Menu button at the top left of the Android screen). | ||||
| This brings up the Action Panel (image on left, below). Tap the option "Manage dives" (image below in middle). | ||||
| 
 | ||||
| === Upload dive log to the Internet | ||||
| 
 | ||||
| Assuming that the correct credentials have been specified, one can upload the dives contained on the Androis device | ||||
| to the Internet by tapping the option "Upload to cloud". This saves the local | ||||
| copy of the dive log to the cloud. | ||||
| 
 | ||||
| === Download dive log from the Internet | ||||
| 
 | ||||
| In the dive management subpanel, tap the option "Refresh" (image below in middle). This causes | ||||
| the local divelog to be refreshed from the cloud so that the Internet and local versions are synchronised. | ||||
| 
 | ||||
| 
 | ||||
| image::mobile-images/managedive.jpg["FIGURE: Dive management subpanel",align="center"] | ||||
| 
 | ||||
| === Add dive manually | ||||
| 
 | ||||
| Dives can easily be entered by hand. This allows one to describe a dive and add it to the dive log. | ||||
| In the dive management subpanel tap "Add dive manually". The edit screen opens (image above on right). | ||||
| Fill in all the appropriate information, then tap the "Save" button at the bottom of the screen. It may be | ||||
| necessary to scroll down to see the "Save" button. The dive is then saved as part of the dive log. In the | ||||
| details dive view, a profile of the dive is created. | ||||
| 
 | ||||
| == Recording dive locations using GPS. | ||||
| 
 | ||||
| The fact that most smartphones have GPS facilities allows one to record | ||||
| the locations of dives. One can take the smartphone on the dive boat | ||||
| during a dive and locations will be automatically recorded at regular intervals. | ||||
| 
 | ||||
| === Setting up the GPS | ||||
| 
 | ||||
| Drag the Action Button to the right. This brings up the Action Panel (image | ||||
| on left, above). Select "Preferences". Now specify the way | ||||
| in which GPS data need to be automatically collected (image on left, below). One can specify that | ||||
| data are collected at regular intervals, e.g. every 10 minutes, or at regular | ||||
| distances, e.g. after the boat has moved more than 200m, or a combination of | ||||
| both of the above approaches. Provide the appropriate information and | ||||
| tap the "Save" button. The program is now ready to collect GPS positions. | ||||
| 
 | ||||
| image::mobile-images/gpssetup.jpg["FIGURE: GPS setup screen",align="center"] | ||||
| 
 | ||||
| === Collecting GPS positions | ||||
| 
 | ||||
| Ensure that the GPS on the Android device has been activated. At the bottom | ||||
| of the Action Panel is a check box "Run location service" (image on right, above). | ||||
| Check this box | ||||
| and _Subsurface-mobile_ starts to collect GPS locations automatically, | ||||
| following the preferences specified as described above. After | ||||
| the dive one can deactivate the collection of GPS data by de-activating | ||||
| the same check box at the bottom of the Action Panel. | ||||
| 
 | ||||
| === Storing the GPS data | ||||
| 
 | ||||
| Activate the Action Panel (image on right, above) by drawing the Action Button to the right. | ||||
| Select the "GPS" option that brings up a submenu of GPS-related actions | ||||
| (image on left, below). Tap "Upload GPS data" that saves the GPS data | ||||
| on the _Subsurface_ Internet server. These GPS data are saved separately | ||||
| from the other dive log data. All collected GPS data are kept on the | ||||
| Android device, independent of whether they have been uploaded or not. | ||||
| 
 | ||||
| === Viewing GPS data | ||||
| 
 | ||||
| From the GPS submenu (image on left, below) select "Show GPS fixes". This brings | ||||
| up a list of GPS positions obtained using the location service (image | ||||
| in middle, below). Two actions are possible for each of the locations, enabled if | ||||
| one taps the handle (the three horisontal stripes on the right, see image in middle, below) and | ||||
| then drags the specific item to the left (image on right, below). This exposes two | ||||
| options. Tapping the dustbin deletes this particular GPS location. Tapping the | ||||
| teardrop-shaped icon (actually a Google Maps pin) opens up Google Maps with a pin | ||||
| indicating the exact map position of the record being viewed. The two above | ||||
| options can be hidden by drawing the GPS record to the right, again using the handle. | ||||
| 
 | ||||
| == Saving GPS positions on the Internet | ||||
| 
 | ||||
| One can save the collected GPS data on the Internet by | ||||
| selecting "Upload GPS Data" from the GPS submanu (Image on left, below). | ||||
| 
 | ||||
| === Downloading GPS data from the Internet | ||||
| 
 | ||||
| One can download the GPS data that have been saved on the Internet by | ||||
| selecting "Download GPS Data" from the GPS subpanel (Image on left, below). | ||||
| 
 | ||||
| image::mobile-images/gpsmanagement.jpg["FIGURE: GPS management",align="center"] | ||||
| 
 | ||||
| === Applying GPS data to dives in the dive log | ||||
| 
 | ||||
| Assuming that all the dives have been entered into the dive log or have | ||||
| been downloaded from the Internet, one can apply the GPS positions to | ||||
| these dives. GPS positions can therefore only be applied to dives in the dive log. | ||||
| From the GPS subpanel, tap "Apply GPS fixes" (image on left, above). The dive log contains the start | ||||
| and end times of each dive. Now, _Subsurface-mobile_ applies the first | ||||
| GPS position that falls within the dive period of each dive. This results | ||||
| in a GPS position for each dive that is saved as part of the dive log. | ||||