aboutsummaryrefslogtreecommitdiff
path: root/app/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/org/pacien/tincapp/context/StorageMigrator.kt9
-rw-r--r--app/src/main/play/listings/en-US/graphics/feature-graphic/tincapp-featuregraphic.pngbin51954 -> 50635 bytes
-rw-r--r--app/src/main/play/listings/en-US/graphics/tincapp-featuregraphic.svg843
3 files changed, 63 insertions, 789 deletions
diff --git a/app/src/main/java/org/pacien/tincapp/context/StorageMigrator.kt b/app/src/main/java/org/pacien/tincapp/context/StorageMigrator.kt
index 6bde2f6..b920522 100644
--- a/app/src/main/java/org/pacien/tincapp/context/StorageMigrator.kt
+++ b/app/src/main/java/org/pacien/tincapp/context/StorageMigrator.kt
@@ -1,6 +1,6 @@
1/* 1/*
2 * Tinc Mesh VPN: Android client and user interface 2 * Tinc Mesh VPN: Android client and user interface
3 * Copyright (C) 2017-2023 Euxane P. TRAN-GIRARD 3 * Copyright (C) 2017-2024 Euxane P. TRAN-GIRARD
4 * 4 *
5 * This program is free software: you can redistribute it and/or modify 5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by 6 * it under the terms of the GNU General Public License as published by
@@ -40,11 +40,12 @@ class StorageMigrator {
40 } 40 }
41 41
42 private fun migrateConfigurationDirectory() { 42 private fun migrateConfigurationDirectory() {
43 val oldConfigDir = context.getExternalFilesDir(null) 43 val externalStorageDir = context.getExternalFilesDir(null) ?: return
44 if (oldConfigDir == null || oldConfigDir.listFiles().isNullOrEmpty()) return // nothing to do 44 val oldConfigDir = File(externalStorageDir, "networks")
45 if (!oldConfigDir.exists()) return
45 46
46 try { 47 try {
47 val newConfigDir = context.filesDir 48 val newConfigDir = AppPaths.confDir()
48 log.info( 49 log.info(
49 "Migrating files present in old configuration directory at {} to {}", 50 "Migrating files present in old configuration directory at {} to {}",
50 oldConfigDir.absolutePath, 51 oldConfigDir.absolutePath,
diff --git a/app/src/main/play/listings/en-US/graphics/feature-graphic/tincapp-featuregraphic.png b/app/src/main/play/listings/en-US/graphics/feature-graphic/tincapp-featuregraphic.png
index 9355a45..2d2565a 100644
--- a/app/src/main/play/listings/en-US/graphics/feature-graphic/tincapp-featuregraphic.png
+++ b/app/src/main/play/listings/en-US/graphics/feature-graphic/tincapp-featuregraphic.png
Binary files differ
diff --git a/app/src/main/play/listings/en-US/graphics/tincapp-featuregraphic.svg b/app/src/main/play/listings/en-US/graphics/tincapp-featuregraphic.svg
index c131096..7d87164 100644
--- a/app/src/main/play/listings/en-US/graphics/tincapp-featuregraphic.svg
+++ b/app/src/main/play/listings/en-US/graphics/tincapp-featuregraphic.svg
@@ -2,23 +2,23 @@
2<!-- Created with Inkscape (http://www.inkscape.org/) --> 2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3 3
4<svg 4<svg
5 xmlns:dc="http://purl.org/dc/elements/1.1/" 5 width="1024"
6 xmlns:cc="http://creativecommons.org/ns#" 6 height="500"
7 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8 xmlns:svg="http://www.w3.org/2000/svg"
9 xmlns="http://www.w3.org/2000/svg"
10 xmlns:xlink="http://www.w3.org/1999/xlink"
11 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
12 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13 width="1092.2667"
14 height="533.33331"
15 id="svg2" 7 id="svg2"
16 version="1.1" 8 version="1.1"
17 inkscape:version="0.92.4 (5da689c313, 2019-01-14)" 9 inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
18 sodipodi:docname="tincapp-featuregraphic.svg" 10 sodipodi:docname="tincapp-featuregraphic.svg"
19 inkscape:export-filename="/home/kea/code/tincapp/app/src/main/play/listings/en-US/graphics/feature-graphic/tincapp-featuregraphic.png" 11 inkscape:export-filename="/home/kea/code/tincapp/app/src/main/play/listings/en-US/graphics/feature-graphic/tincapp-featuregraphic.png"
20 inkscape:export-xdpi="90" 12 inkscape:export-xdpi="90"
21 inkscape:export-ydpi="90"> 13 inkscape:export-ydpi="90"
14 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
15 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
16 xmlns:xlink="http://www.w3.org/1999/xlink"
17 xmlns="http://www.w3.org/2000/svg"
18 xmlns:svg="http://www.w3.org/2000/svg"
19 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
20 xmlns:cc="http://creativecommons.org/ns#"
21 xmlns:dc="http://purl.org/dc/elements/1.1/">
22 <defs 22 <defs
23 id="defs4"> 23 id="defs4">
24 <filter 24 <filter
@@ -90,16 +90,19 @@
90 inkscape:pageopacity="1" 90 inkscape:pageopacity="1"
91 inkscape:pageshadow="2" 91 inkscape:pageshadow="2"
92 inkscape:zoom="0.7" 92 inkscape:zoom="0.7"
93 inkscape:cx="111.98117" 93 inkscape:cx="557.85714"
94 inkscape:cy="287.66872" 94 inkscape:cy="287.85714"
95 inkscape:document-units="px" 95 inkscape:document-units="px"
96 inkscape:current-layer="layer1" 96 inkscape:current-layer="svg2"
97 showgrid="false" 97 showgrid="false"
98 inkscape:window-width="1483" 98 inkscape:window-width="1667"
99 inkscape:window-height="1561" 99 inkscape:window-height="754"
100 inkscape:window-x="3875" 100 inkscape:window-x="0"
101 inkscape:window-y="18" 101 inkscape:window-y="0"
102 inkscape:window-maximized="0" /> 102 inkscape:window-maximized="0"
103 inkscape:showpageshadow="2"
104 inkscape:pagecheckerboard="0"
105 inkscape:deskcolor="#d1d1d1" />
103 <metadata 106 <metadata
104 id="metadata7"> 107 id="metadata7">
105 <rdf:RDF> 108 <rdf:RDF>
@@ -108,776 +111,46 @@
108 <dc:format>image/svg+xml</dc:format> 111 <dc:format>image/svg+xml</dc:format>
109 <dc:type 112 <dc:type
110 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 113 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
111 <dc:title />
112 </cc:Work> 114 </cc:Work>
113 </rdf:RDF> 115 </rdf:RDF>
114 </metadata> 116 </metadata>
115 <g 117 <g
116 inkscape:label="Layer 1" 118 id="g1"
117 inkscape:groupmode="layer" 119 transform="translate(-10.993266,-13.357307)">
118 id="layer1" 120 <g
119 transform="translate(0,-589.18631)"> 121 inkscape:label="Layer 1"
120 <text 122 inkscape:groupmode="layer"
121 xml:space="preserve" 123 id="layer1"
122 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672" 124 transform="translate(0,-589.18631)">
123 x="326.92648" 125 <text
124 y="823.72235" 126 xml:space="preserve"
125 id="text3096"><tspan 127 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.8px;line-height:0%;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06667"
126 sodipodi:role="line"
127 id="tspan3098"
128 x="326.92648" 128 x="326.92648"
129 y="823.72235" 129 y="823.72235"
130 style="font-size:59.73333359px;line-height:1.25;stroke-width:1.06666672">Tinc Mesh VPN</tspan><tspan 130 id="text3096"><tspan
131 sodipodi:role="line" 131 sodipodi:role="line"
132 x="326.92648" 132 id="tspan3098"
133 y="879.51404" 133 x="326.92648"
134 style="font-style:normal;font-size:38.40000153px;line-height:1.25;-inkscape-font-specification:'Droid Sans';stroke-width:1.06666672" 134 y="823.72235"
135 id="tspan3100">Android client and user interface</tspan><tspan 135 style="font-size:59.7333px;line-height:1.25;stroke-width:1.06667">Tinc Mesh VPN</tspan><tspan
136 sodipodi:role="line" 136 sodipodi:role="line"
137 x="326.92648" 137 x="326.92648"
138 y="927.51404" 138 y="879.51398"
139 style="font-style:normal;font-size:38.40000153px;line-height:1.25;-inkscape-font-specification:'Droid Sans';stroke-width:1.06666672" 139 style="font-style:normal;font-size:38.4px;line-height:1.25;-inkscape-font-specification:'Droid Sans';stroke-width:1.06667"
140 id="tspan3102">for the tinc mesh VPN daemon.</tspan></text> 140 id="tspan3100">Android client and user interface</tspan><tspan
141 <image 141 sodipodi:role="line"
142 y="750.14362" 142 x="326.92648"
143 x="91.084999" 143 y="927.51404"
144 id="image838" 144 style="font-style:normal;font-size:38.4px;line-height:1.25;-inkscape-font-specification:'Droid Sans';stroke-width:1.06667"
145 xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AACAAElEQVR42uydB1hUZ9bHsyWb3W/b 145 id="tspan3102">for the tinc mesh VPN daemon.</tspan></text>
146t/slURGRJvZeUo1pG5NNNmU37qZssunZ9JiYYpoaY+8oMENTQSzY6E1EkN4FVLqFIl0pAlLM+d73 146 <image
147MhjEmWEG7szcO/M/z/N/xuw+MTAM9/c/5z3nvDfdhEAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgE 147 y="750.14362"
148AoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQC 148 x="91.084999"
149gUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKB 149 id="image838"
150QEg5/P1/MSzS57fDDrndPizIw84qWDluRKhiFnu9d1iw4qFhQW4Pql6fGBHk9o++4v/bSP7/hbk9 150 xlink:href="data:image/png;base64,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 9mMX1U+APYBv