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. | ||||||