Improve app store screenshot designs

Separate app store screenshot text into bold heading and regular subline

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
This commit is contained in:
Jan-Christoph Borchardt 2019-06-26 14:38:00 +02:00 committed by tobiasKaminsky
parent 92e9fabf4b
commit a2cf6bc408
No known key found for this signature in database
GPG Key ID: 0E00D4D47D0C5AF7
9 changed files with 396 additions and 386 deletions

View File

@ -1,6 +1,39 @@
# This is the minimum version number required.
fastlane_version "2.58.0"
lane :screenshots do
screengrab
lane :screenshotsPhone do
build_for_screengrab()
screengrab(
device_type: "phone",
app_apk_path: APK_LOCATION,
tests_apk_path: TEST_APK_LOCATION
)
end
lane :screenshotsTablet do
build_for_screengrab()
screengrab(
device_type: "sevenInch",
app_apk_path: APK_LOCATION,
tests_apk_path: TEST_APK_LOCATION
)
end
desc "Build debug and test APK for screenshots"
private_lane :build_for_screengrab do
build_android_app(
task: 'assemble',
flavor: 'Generic',
build_type: 'Debug'
)
APK_LOCATION = lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS].select{ |i| i[/00/] }[0]
build_android_app(
task: 'assemble',
flavor: 'Generic',
build_type: 'DebugAndroidTest'
)
TEST_APK_LOCATION = lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS].select{ |i| i[/androidTest/] }[0]
end

View File

@ -1,12 +1,9 @@
app_package_name 'com.nextcloud.client'
use_tests_in_packages ['com.owncloud.android.screenshots']
test_instrumentation_runner 'androidx.test.runner.AndroidJUnitRunner'
app_apk_path 'build/outputs/apk/generic/debug/android4-generic-debug.apk'
tests_apk_path 'build/outputs/apk/androidTest/generic/debug/android4-generic-debug-androidTest.apk'
# locales ['en-US']
# locales ['pt-PT', 'sv-SE', 'sq-AL', 'sq-MK', 'iw-IL', 'ar-AR', 'bg-BG', 'da-DK', 'fi-FI', 'gl-ES', 'uk-UK', 'vi-VI', 'ro-RO', 'pl-PL', 'el-GR', ja-JP', 'eu-ES', 'lt-LT', 'es-419', 'zh-HK', 'zk-CN', 'is-IS', 'sr-SR', 'id-ID', 'cs-CZ', 'sl-SL', 'fa-FA' ]
locales ['en-GB', 'de-DE', 'es-MX', 'es-ES', 'fr-FR', 'hu-HU', 'it-IT', 'ka-GE', 'ko-KR', 'no-NO', 'nl-NL', 'pt-BR', 'ru-RU', 'sr-SR', 'tr-TR', 'en-US']
locales(['en-US'])
# locales(['en-GB', 'de-DE', 'es-MX', 'es-ES', 'fr-FR', 'hu-HU', 'it-IT', 'ka-GE', 'ko-KR', 'no-NO', 'nl-NL', 'pt-BR', 'ru-RU', 'sr-SR', 'tr-TR', 'en-US', 'pt-PT', 'sv-SE', 'sq-AL', 'sq-MK', 'iw-IL', 'ar-AR', 'bg-BG', 'da-DK', 'fi-FI', 'gl-ES', 'uk-UK', 'vi-VI', 'ro-RO', 'pl-PL', 'el-GR', 'ja-JP', 'eu-ES', 'lt-LT', 'es-419', 'zh-HK', 'zk-CN', 'is-IS', 'sr-SR', 'id-ID', 'cs-CZ', 'sl-SL'])
# clear all previously generated screenshots in your local output directory before creating new ones
clear_previous_screenshots true

View File

@ -1,18 +1,21 @@
#!/bin/bash
cd scripts/screenshots/
for i in $(find ../../fastlane | grep png | grep Screenshots) ; do
for i in $(find ../../fastlane | grep png | grep Screenshots) ; do
device=$(echo $i | cut -d"/" -f8 | sed s'#Screenshots##')
textID=$(echo $i | cut -d"/" -f9 | cut -d"_" -f1,2)
locale=$(echo $i | cut -d"/" -f6)
# handle some locales different
case $locale in
"en-US")
locale=""
;;
"en-GB")
locale="-b+en+001"
;;
"de-DE")
locale="-de-rDE"
locale="-de"
;;
"es-MX")
locale="-es-rMX"
@ -29,27 +32,63 @@ for i in $(find ../../fastlane | grep png | grep Screenshots) ; do
"pt-BR")
locale="-pt-rBR"
;;
"pt-PT")
locale="-pt-rPT"
;;
"bg-BG")
locale="-bg-rBG"
;;
"fi-FI")
locale="-fi-rFI"
;;
"uk-UK")
locale=""
;;
"ja-JP")
locale="-ja-rJP"
;;
"lt-LT")
locale="-lt-rLT"
;;
"zh-HK")
locale="-zh-rCN"
;;
"zk-CN")
locale="-zh-rCN"
;;
"id-ID")
locale="-in"
;;
"cs-CZ")
locale="-cs-rCZ"
;;
*)
locale="-"$(echo $locale | cut -d"-" -f1)
esac
if [ -e ../../src/main/res/values$locale/strings.xml ] ; then
text=$(grep $textID ../../src/main/res/values$locale/strings.xml | cut -d">" -f2 | cut -d"<" -f1 | sed s'#\&amp;#\\&#')
else
text=""
fi
# fallback to english if there is not translation
if [ -z "$text" ]; then
text=$(grep $textID ../../src/main/res/values/strings.xml | cut -d">" -f2 | cut -d"<" -f1 | sed s'#\&amp;#\\&#')
fi
sed "s#{image}#$i#;s#{text}#$text#g" $device.svg > temp.svg
if [ -e ../../src/main/res/values$locale/strings.xml ] ; then
heading=$(grep $textID"_heading" ../../src/main/res/values$locale/strings.xml | cut -d">" -f2 | cut -d"<" -f1 | sed s'#\&amp;#\\&#')
subline=$(grep $textID"_subline" ../../src/main/res/values$locale/strings.xml | cut -d">" -f2 | cut -d"<" -f1 | sed s'#\&amp;#\\&#')
else
heading=""
subline=""
fi
# fallback to english if there is not translation
if [ -z "$heading" ]; then
heading=$(grep $textID"_heading" ../../src/main/res/values/strings.xml | cut -d">" -f2 | cut -d"<" -f1 | sed s'#\&amp;#\\&#')
fi
if [ -z "$subline" ]; then
subline=$(grep $textID"_subline" ../../src/main/res/values/strings.xml | cut -d">" -f2 | cut -d"<" -f1 | sed s'#\&amp;#\\&#')
fi
sed "s#{image}#$i#;s#{heading}#$heading#;s#{subline}#$subline#g" $device.svg > temp.svg
if [ $textID == "06_davdroid" ] ; then
sed "s#display:none#display:visible#" -i temp.svg
fi
inkscape temp.svg -h 576 -e $i 2>/dev/null
done

Binary file not shown.

Before

Width:  |  Height:  |  Size: 627 KiB

View File

@ -1,176 +1,125 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="483.30557mm"
height="800mm"
viewBox="0 0 483.30556 800.00003"
version="1.1"
id="svg4553"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="483.30557mm" height="800mm"
viewBox="0 0 483.30556 800.00003" version="1.1" id="svg4553" inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="phone.svg">
<defs
id="defs4547">
id="defs4547">
<linearGradient
inkscape:collect="always"
id="linearGradient832">
inkscape:collect="always"
id="linearGradient832">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop828"/>
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop828" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop830"/>
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop830" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient832"
id="radialGradient836"
cx="2564.2764"
cy="7303.2788"
fx="2564.2764"
fy="7303.2788"
r="115.44445"
gradientTransform="matrix(1,0,0,0.37896268,0,4535.6086)"
gradientUnits="userSpaceOnUse"/>
inkscape:collect="always"
xlink:href="#linearGradient832"
id="radialGradient836"
cx="2564.2764"
cy="7303.2788"
fx="2564.2764"
fy="7303.2788"
r="115.44445"
gradientTransform="matrix(1,0,0,0.37896268,0,4535.6086)"
gradientUnits="userSpaceOnUse" />
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter888"
x="-0.016423529"
width="1.0328471"
y="-0.044553191"
height="1.0891064">
style="color-interpolation-filters:sRGB;"
inkscape:label="Blur"
id="filter1432">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="1.5541406"
id="feGaussianBlur890"/>
stdDeviation="10 10"
result="blur"
id="feGaussianBlur1430" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#0082c9"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="0.45254834"
inkscape:cx="1294.7194"
inkscape:cy="2449.9551"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="80"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1600"
inkscape:window-height="871"
inkscape:window-x="1600"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:measure-start="0,0"
inkscape:measure-end="0,0"
showguides="true"
inkscape:guide-bbox="true">
<sodipodi:guide
position="479.4147,654.22571"
orientation="1,0"
id="guide838"
inkscape:locked="false"/>
<sodipodi:guide
position="439.29295,649.98698"
orientation="0,1"
id="guide840"
inkscape:locked="false"/>
</sodipodi:namedview>
id="base"
pagecolor="#0082c9"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2" inkscape:zoom="0.22627417" inkscape:cx="-541.25585" inkscape:cy="1016.1787"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="80"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" inkscape:window-width="1600" inkscape:window-height="835"
inkscape:window-x="0" inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:measure-start="0,0"
inkscape:measure-end="0,0"
showguides="true"
inkscape:guide-bbox="true" />
<metadata
id="metadata4550">
id="metadata4550">
<rdf:RDF>
<cc:Work
rdf:about="">
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-454.12732,1199.2512)">
<image
sodipodi:absref="/home/tobi/Daten/projekt/nextcloud/android4/scripts/screenshots/{image}"
xlink:href="{image}"
y="-928.13586"
x="502.9848"
id="image4495"
preserveAspectRatio="none"
height="679.41968"
width="382.17361"/>
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-454.12732,1199.2512)">
<rect
style="color:#000000;display:none;overflow:visible;visibility:visible;opacity:0.75;vector-effect:none;fill:#808080;fill-opacity:1;stroke:none;stroke-width:843.95349121;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect4493-5"
width="382.17361"
height="458.69916"
x="502.9848"
y="-751.86719"/>
ry="26.458334"
rx="26.458334"
y="-1027.2244"
x="481.59952"
height="761.53064"
width="428.36118"
id="rect1400"
style="opacity:1;fill:#323232;fill-opacity:0.39215687;stroke:none;stroke-width:2.9104166;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:9.99999905;stroke-opacity:1;paint-order:markers fill stroke;filter:url(#filter1432)" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.9104166;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:9.99999905;stroke-opacity:1;paint-order:markers fill stroke"
id="rect1446"
width="428.36118"
height="761.53064"
x="481.59952"
y="-1027.2244"
rx="26.458334"
ry="26.458334" />
<image
sodipodi:absref="/home/tobi/Daten/projekt/nextcloud/android4/scripts/screenshots/phone.png"
xlink:href="phone.png"
y="-1028.6078"
x="454.12732"
id="image10"
preserveAspectRatio="none"
height="893.9389"
width="483.30557"/>
xlink:href="{image}" width="382.17361" height="679.41968"
preserveAspectRatio="none" id="image4495" x="504.6933" y="-1005.3946" />
<rect
style="color:#000000;display:none;overflow:visible;visibility:visible;opacity:0.8;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:844.534729;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect4493-5" width="390.44183" height="449.6041"
x="502.9848" y="-820.65912" />
<flowRoot
transform="matrix(0.26458333,0,0,0.26458333,17.310326,-3068.1486)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:96px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;opacity:0.5;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter888)"
id="flowRoot846"
xml:space="preserve"><flowRegion
style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowRegion840"><rect
style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
y="7249.5762"
x="1669.7537"
height="380.95132"
width="1793.1692"
id="rect838" /></flowRegion><flowPara
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowPara842">{text}</flowPara><flowPara
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowPara844" /><flowPara
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowPara838" /></flowRoot> <flowRoot
xml:space="preserve"
id="flowRoot5145"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:96px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.26458333,0,0,0.26458333,17.310326,-3068.6775)"><flowRegion
transform="matrix(0.26458333,0,0,0.26458333,17.310326,-3058.0938)"><flowRegion
id="flowRegion5147"
style="text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"><rect
id="rect5149"
width="1808.9802"
height="486.15143"
width="1824.2622"
height="142.40137"
x="1654.2856"
y="7244.0518"
style="text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></flowRegion><flowPara
id="flowPara5151"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">{text}</flowPara><flowPara
id="flowPara5153"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><flowPara
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowPara836" /></flowRoot> <flowRoot
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:118.66667175px;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Bold';text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowPara836">{heading}</flowPara></flowRoot>
<flowRoot
xml:space="preserve"
id="flowRoot5174"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"><flowRegion
@ -179,14 +128,30 @@
width="5.7142859"
height="57.142857"
x="177.14285"
y="480.14975" /></flowRegion><flowPara
id="flowPara5180" /></flowRoot>
<rect
style="color:#000000;display:none;overflow:visible;visibility:visible;opacity:0.75;vector-effect:none;fill:#808080;fill-opacity:1;stroke:none;stroke-width:356.38705444;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect4493"
width="382.17358"
height="81.796532"
x="502.9848"
y="-928.13586"/>
</g>
y="480.14975" /></flowRegion><flowPara id="flowPara5180" /></flowRoot>
<flowRoot
transform="matrix(0.26458333,0,0,0.26458333,17.310326,-3021.0519)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:96px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowRoot845"
xml:space="preserve"><flowRegion
style="text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowRegion837"><rect
style="text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
y="7244.0518"
x="1654.2856"
height="151.77637"
width="1824.2622"
id="rect835" /></flowRegion><flowPara
id="flowPara843"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">{subline}</flowPara></flowRoot> <flowRoot
xml:space="preserve"
id="flowRoot856"
style="fill:black;fill-opacity:1;stroke:none;font-family:'Open Sans';font-style:normal;font-weight:normal;font-size:13.33333333px;line-height:1;letter-spacing:0px;word-spacing:0px;-inkscape-font-specification:'Open Sans';font-stretch:normal;font-variant:normal"><flowRegion
id="flowRegion858"><rect
id="rect860"
width="178.66393"
height="28.125"
x="1811.9611"
y="92.372047" /></flowRegion><flowPara
id="flowPara862" /></flowRoot> </g>
</svg>

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

@ -1,194 +1,145 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="939.90002mm"
height="519mm"
viewBox="0 0 939.9 519.00002"
version="1.1"
id="svg4553"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="850mm" height="519mm"
viewBox="0 0 849.99998 519.00002" version="1.1" id="svg4553" inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="sevenInch.svg">
<defs
id="defs4547">
<linearGradient
inkscape:collect="always"
id="linearGradient832">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop828"/>
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop830"/>
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient832"
id="radialGradient836"
cx="2564.2764"
cy="7303.2788"
fx="2564.2764"
fy="7303.2788"
r="115.44445"
gradientTransform="matrix(1,0,0,0.37896268,0,4535.6086)"
gradientUnits="userSpaceOnUse"/>
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter888"
x="-0.016423529"
width="1.032847"
y="-0.04455319"
height="1.0891064">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="1.5541406"
id="feGaussianBlur890"/>
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#0082c9"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="0.45254836"
inkscape:cx="1796.9275"
inkscape:cy="1936.0988"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="80"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1600"
inkscape:window-height="835"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:measure-start="0,0"
inkscape:measure-end="0,0"
showguides="true"
inkscape:guide-bbox="true">
<sodipodi:guide
position="131.46484,422.5065"
orientation="1,0"
id="guide838"
inkscape:locked="false"/>
<sodipodi:guide
position="806.15231,377.03124"
orientation="1,0"
id="guide840"
inkscape:locked="false"/>
<sodipodi:guide
position="259.62239,482.86457"
orientation="0,1"
id="guide842"
inkscape:locked="false"/>
</sodipodi:namedview>
<metadata
id="metadata4550">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-205.9464,1011.8911)">
<image
sodipodi:absref="/home/tobi/Daten/projekt/nextcloud/android4/scripts/screenshots/{image}"
xlink:href="{image}"
y="-829.59448"
x="335.71039"
id="image4525"
preserveAspectRatio="none"
height="425.23251"
width="680.37207"/>
<flowRoot
transform="matrix(0.26458333,0,0,0.26458333,-0.98086763,-2877.1179)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:96px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;opacity:0.5;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter888)"
id="flowRoot846"
xml:space="preserve"><flowRegion
style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowRegion840"><rect
style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
y="7190.2515"
x="1284.9623"
height="298.2995"
width="2544"
id="rect838" /></flowRegion><flowPara
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowPara842">{text}</flowPara><flowPara
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowPara844" /></flowRoot> <flowRoot
xml:space="preserve"
id="flowRoot5145"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:96px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.26458333,0,0,0.26458333,-2.5683681,-2878.1763)"><flowRegion
id="flowRegion5147"
style="text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"><rect
id="rect5149"
width="2550"
height="261.64096"
x="1284.9623"
y="7191.5547"
style="text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
ry="0" /></flowRegion><flowPara
id="flowPara5153"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">{text}</flowPara><flowPara
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowPara849" /></flowRoot> <flowRoot
xml:space="preserve"
id="flowRoot5174"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"><flowRegion
<defs
id="defs4547">
<linearGradient
inkscape:collect="always"
id="linearGradient832">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop828" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop830" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient832"
id="radialGradient836"
cx="2564.2764"
cy="7303.2788"
fx="2564.2764"
fy="7303.2788"
r="115.44445"
gradientTransform="matrix(1,0,0,0.37896268,0,4535.6086)"
gradientUnits="userSpaceOnUse" />
<filter style="color-interpolation-filters:sRGB"
inkscape:label="Blur"
id="filter1438">
<feGaussianBlur
stdDeviation="10 10"
result="blur"
id="feGaussianBlur1436" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#0082c9"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="0.32000001" inkscape:cx="850.68372" inkscape:cy="683.7239"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="80"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" inkscape:window-width="1600" inkscape:window-height="835"
inkscape:window-x="0" inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:measure-start="0,0"
inkscape:measure-end="0,0"
showguides="true" inkscape:guide-bbox="true" />
<metadata
id="metadata4550">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-205.9464,1011.8911)">
<flowRoot xml:space="preserve" id="flowRoot5174"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"><flowRegion
id="flowRegion5176"><rect
id="rect5178"
width="5.7142859"
height="57.142857"
x="177.14285"
y="480.14975" /></flowRegion><flowPara
id="flowPara5180" /></flowRoot>
<image
sodipodi:absref="/home/tobi/Daten/projekt/nextcloud/android4/scripts/screenshots/tablet.png"
xlink:href="tablet.png"
width="977.90002"
height="521.75836"
preserveAspectRatio="none"
id="image4514"
x="186.9464"
y="-871.77393"/>
<rect
style="color:#000000;display:none;overflow:visible;visibility:visible;opacity:0.75;vector-effect:none;fill:#808080;fill-opacity:1;stroke:none;stroke-width:490.07928467;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect4493-2"
width="677.90411"
height="87.199898"
x="335.71039"
y="-829.59448"/>
<rect
style="color:#000000;display:none;overflow:visible;visibility:visible;opacity:0.75;vector-effect:none;fill:#808080;fill-opacity:1;stroke:none;stroke-width:794.79553223;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect4493-2-0"
width="677.90411"
height="229.34755"
x="335.71039"
y="-667.80133"/>
</g>
y="480.14975" /></flowRegion>
<flowPara id="flowPara5180" /></flowRoot>
<rect transform="matrix(0,1.0167232,-0.87178462,0,51.23532,10.618408)"
ry="28.895885"
rx="28.895885"
y="-1091.7408"
x="-868.86401"
height="831.68884"
width="467.82523"
id="rect1434"
style="opacity:1;fill:#323232;fill-opacity:0.39215686;stroke:none;stroke-width:2.91041636;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:9.99999905;stroke-opacity:1;paint-order:markers fill stroke;filter:url(#filter1438)" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.65647054;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:9.99999905;stroke-opacity:1;paint-order:markers fill stroke"
id="rect1446"
width="467.82523" height="692.88409"
x="-868.86401" y="-977.38843"
rx="28.895885" ry="24.073307"
transform="rotate(90)" />
<image sodipodi:absref="/home/tobi/projekt/nextcloud/android/scripts/screenshots/{image}"
xlink:href="{image}" y="-838.15137" x="360.16275"
id="image4525"
preserveAspectRatio="none" height="406.39999" width="541.86664" />
<rect
style="color:#000000;display:none;overflow:visible;visibility:visible;opacity:0.8;vector-effect:none;fill:#fff3f3;fill-opacity:1;stroke:none;stroke-width:377.62271118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect4493-2" width="541.86658" height="64.770226" x="360.16275" y="-838.15137" />
<rect
style="color:#000000;display:none;overflow:visible;visibility:visible;opacity:0.8;vector-effect:none;fill:#fffefe;fill-opacity:1;stroke:none;stroke-width:758.42236328;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect4493-2-0" width="542.58588" height="260.91876" x="360.16275" y="-718.66608" />
<flowRoot
xml:space="preserve"
id="flowRoot5145-3"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:96px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.26458333,0,0,0.26458333,-144.41453,-2883.2878)"><flowRegion
id="flowRegion5147-6"
style="text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"><rect
id="rect5149-7"
width="2550"
height="151.93109"
x="1655.498"
y="7245.5703"
style="text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></flowRegion><flowPara
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:118.66667175px;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Bold';text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowPara836">{heading}</flowPara></flowRoot> <flowRoot
transform="matrix(0.26458333,0,0,0.26458333,-144.41453,-2845.1875)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:96px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowRoot845"
xml:space="preserve"><flowRegion
style="text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowRegion837"><rect
style="text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
y="7242.4893"
x="1655.498"
height="159.96777"
width="2550"
id="rect835" /></flowRegion><flowPara
id="flowPara843"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">{subline}</flowPara></flowRoot> </g>
</svg>

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 765 KiB

View File

@ -1,10 +1,12 @@
package com.owncloud.android.screenshots;
package com.owncloud.android;
import android.content.Intent;
import android.Manifest;
import com.owncloud.android.R;
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.operations.CreateFolderOperation;
import com.owncloud.android.operations.common.SyncOperation;
import com.owncloud.android.ui.activity.FileDisplayActivity;
import com.owncloud.android.ui.activity.Preferences;
import com.owncloud.android.ui.activity.SettingsActivity;
import junit.framework.Assert;
@ -15,11 +17,14 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import androidx.test.core.app.ActivityScenario;
import androidx.test.espresso.Espresso;
import androidx.test.espresso.action.ViewActions;
import androidx.test.espresso.contrib.DrawerActions;
import androidx.test.espresso.contrib.RecyclerViewActions;
import androidx.test.espresso.matcher.PreferenceMatchers;
import androidx.test.rule.ActivityTestRule;
import androidx.test.filters.LargeTest;
import androidx.test.rule.GrantPermissionRule;
import tools.fastlane.screengrab.Screengrab;
import tools.fastlane.screengrab.UiAutomatorScreenshotStrategy;
import tools.fastlane.screengrab.locale.LocaleTestRule;
@ -29,28 +34,27 @@ import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
import static org.hamcrest.Matchers.anything;
import static org.hamcrest.core.AnyOf.anyOf;
import static org.junit.Assert.assertTrue;
@LargeTest
@RunWith(JUnit4.class)
public class ScreenshotsIT {
public class ScreenshotsIT extends AbstractIT {
@ClassRule
public static final LocaleTestRule localeTestRule = new LocaleTestRule();
@Rule
public ActivityTestRule<FileDisplayActivity> fileDisplayRule = new ActivityTestRule<>(FileDisplayActivity.class);
@Rule
public ActivityTestRule<Preferences> preferencesRule = new ActivityTestRule<>(Preferences.class, true, false);
public final GrantPermissionRule permissionRule = GrantPermissionRule.grant(
Manifest.permission.WRITE_EXTERNAL_STORAGE);
@BeforeClass
public static void beforeAll() {
public static void beforeScreenshot() {
Screengrab.setDefaultScreenshotStrategy(new UiAutomatorScreenshotStrategy());
}
@Test
public void gridViewScreenshot() throws InterruptedException {
fileDisplayRule.launchActivity(new Intent());
ActivityScenario.launch(FileDisplayActivity.class);
Espresso.openContextualActionModeOverflowMenu();
onView(anyOf(withText(R.string.action_switch_grid_view), withId(R.id.action_switch_view))).perform(click());
@ -66,11 +70,21 @@ public class ScreenshotsIT {
}
@Test
public void listViewScreenshot() throws InterruptedException {
fileDisplayRule.launchActivity(new Intent());
public void listViewScreenshot() {
String path = "/Camera/";
// folder does not exist yet
if (getStorageManager().getFileByPath(path) == null) {
SyncOperation syncOp = new CreateFolderOperation(path, true);
RemoteOperationResult result = syncOp.execute(client, getStorageManager());
assertTrue(result.isSuccess());
}
ActivityScenario.launch(FileDisplayActivity.class);
// go into work folder
onData(anything()).inAdapterView(withId(R.id.list_root)).atPosition(0).perform(click());
onView(withId(R.id.list_root)).perform(RecyclerViewActions.actionOnItemAtPosition(0, click()));
Screengrab.screenshot("02_listView");
@ -78,8 +92,8 @@ public class ScreenshotsIT {
}
@Test
public void drawerScreenshot() throws InterruptedException {
fileDisplayRule.launchActivity(new Intent());
public void drawerScreenshot() {
ActivityScenario.launch(FileDisplayActivity.class);
onView(withId(R.id.drawer_layout)).perform(DrawerActions.open());
@ -91,8 +105,8 @@ public class ScreenshotsIT {
}
@Test
public void multipleAccountsScreenshot() throws InterruptedException {
fileDisplayRule.launchActivity(new Intent());
public void multipleAccountsScreenshot() {
ActivityScenario.launch(FileDisplayActivity.class);
onView(withId(R.id.drawer_layout)).perform(DrawerActions.open());
onView(withId(R.id.drawer_active_user)).perform(click());
@ -105,8 +119,8 @@ public class ScreenshotsIT {
}
@Test
public void autoUploadScreenshot() throws InterruptedException {
fileDisplayRule.launchActivity(new Intent());
public void autoUploadScreenshot() {
ActivityScenario.launch(FileDisplayActivity.class);
onView(withId(R.id.drawer_layout)).perform(DrawerActions.open());
onView(anyOf(withText(R.string.drawer_synced_folders), withId(R.id.nav_synced_folders))).perform(click());
@ -118,7 +132,7 @@ public class ScreenshotsIT {
@Test
public void davdroidScreenshot() throws InterruptedException {
preferencesRule.launchActivity(new Intent());
ActivityScenario.launch(SettingsActivity.class);
onData(PreferenceMatchers.withTitle(R.string.prefs_category_more)).perform(ViewActions.scrollTo());

View File

@ -710,12 +710,23 @@
<string name="account_not_found">Account not found!</string>
<string name="screenshot_01_gridView">A safe home for all your data</string>
<string name="screenshot_02_listView">Browse and share your files easily</string>
<string name="screenshot_03_drawer">Quickly access activity, shares, offline files and more</string>
<string name="screenshot_04_accounts">Connect to different accounts</string>
<string name="screenshot_05_autoUpload">Automatically upload your photos &amp; videos</string>
<string name="screenshot_06_davdroid">Sync calendar &amp; contacts with DAVx5 (formerly known as DAVdroid)</string>
<string name="screenshot_01_gridView_heading">Protecting your data</string>
<string name="screenshot_01_gridView_subline">self-hosted productivity platform</string>
<string name="screenshot_02_listView_heading">Browse and share</string>
<string name="screenshot_02_listView_subline">all actions at your fingertips</string>
<string name="screenshot_03_drawer_heading">Activity, shares, offline files</string>
<string name="screenshot_03_drawer_subline">everything quickly accessible</string>
<string name="screenshot_04_accounts_heading">All your accounts</string>
<string name="screenshot_04_accounts_subline">in one place</string>
<string name="screenshot_05_autoUpload_heading">Automatic upload</string>
<string name="screenshot_05_autoUpload_subline">for your photos &amp; videos</string>
<string name="screenshot_06_davdroid_heading">Sync calendar &amp; contacts</string>
<string name="screenshot_06_davdroid_subline">with DAVx5 (formerly DAVdroid)</string>
<string name="userinfo_no_info_headline">No personal info set</string>
<string name="userinfo_no_info_text">Add name, picture and contact details on your profile page.</string>