deploy gplay artifact on success as own QA flavor

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
This commit is contained in:
tobiasKaminsky 2019-05-15 08:59:06 +02:00
parent d16d2979d1
commit 17765573ac
No known key found for this signature in database
GPG Key ID: 0E00D4D47D0C5AF7
22 changed files with 2785 additions and 4 deletions

View File

@ -69,7 +69,7 @@ steps:
- ./gradlew combinedTestReport
- curl -o codecov.sh https://codecov.io/bash
- bash ./codecov.sh -t fc506ba4-33c3-43e4-a760-aada38c24fd5
- scripts/uploadArtifact.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
- name: notify
image: drillster/drone-email
host: $EMAIL_HOST
@ -160,3 +160,33 @@ trigger:
event:
- push
- pull_request
---
kind: pipeline
name: qa
steps:
- name: qa
image: nextcloudci/android:android-44
privileged: true
environment:
LOG_USERNAME:
from_secret: LOG_USERNAME
LOG_PASSWORD:
from_secret: LOG_PASSWORD
GIT_USERNAME:
from_secret: GIT_USERNAME
GIT_TOKEN:
from_secret: GIT_TOKEN
KS_PASS:
from_secret: KS_PASS
KEY_PASS:
from_secret: KEY_PASS
commands:
- sed -i "/qa/,/\}/ s/versionCode .*/versionCode $DRONE_BUILD_NUMBER/" build.gradle
- sed -i "/qa/,/\}/ s/versionName .*/versionName \"$DRONE_BUILD_NUMBER\"/" build.gradle
- ./gradlew assembleQaDebug
- /opt/android-sdk-linux/build-tools/*/apksigner sign --ks-pass pass:$KS_PASS --key-pass pass:$KEY_PASS --ks-key-alias key0 --ks scripts/QA_keystore.jks build/outputs/apk/qa/debug/qa-debug-*.apk
- scripts/uploadArtifact.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
trigger:
event:
- pull_request

View File

@ -147,6 +147,13 @@ android {
versionCode 20190515
versionName "20190515"
}
qa {
applicationId "com.nextcloud.android.qa"
dimension "default"
versionCode 1
versionName "1"
}
}
}
@ -254,6 +261,7 @@ dependencies {
genericImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT'
gplayImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT'
versionDevImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT'
qaImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.0.0'

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="898" height="850" viewBox="0 0 898 850"
version="1.1" xml:space="preserve"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41420996" id="svg15"
sodipodi:docname="logo_qa.svg" inkscape:version="0.92.4 5da689c313, 2019-01-14"><metadata
id="metadata21"><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></dc:title></cc:Work></rdf:RDF></metadata>
<defs id="defs19" />
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10"
gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2"
inkscape:window-width="1600" inkscape:window-height="835" id="namedview17" showgrid="false"
inkscape:zoom="0.15683947" inkscape:cx="-571.18742" inkscape:cy="822.76257" inkscape:window-x="1600"
inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="svg15" fit-margin-top="1"
fit-margin-left="1" fit-margin-right="1" fit-margin-bottom="1" />
<g aria-label="QA"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:163.70762634px;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:8.18538094px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="text828" transform="translate(-82.999998,-85.30353)"><path
d="m 521.96809,867.9572 q 0,11.35082 -3.99677,21.023 -3.99677,9.67218 -11.19095,16.38675 l 19.74403,18.62494 -10.79127,10.31166 -22.06216,-20.54339 q -4.47638,1.83851 -9.35244,2.7178 -4.79612,0.95923 -9.91199,0.95923 -20.38351,0 -33.17317,-14.06863 -12.70973,-14.06862 -12.70973,-35.41136 v -20.70326 q 0,-21.26281 12.70973,-35.41137 12.78966,-14.14856 33.17317,-14.14856 21.10294,0 34.29228,14.14856 13.26927,14.06863 13.26927,35.41137 z m -15.74727,-20.86313 q 0,-15.98708 -8.63302,-26.2188 -8.63302,-10.23173 -23.18126,-10.23173 -13.74888,0 -21.98222,10.23173 -8.15341,10.23172 -8.15341,26.2188 v 20.86313 q 0,16.14694 8.15341,26.37867 8.23334,10.23172 21.98222,10.23172 14.62818,0 23.18126,-10.15179 8.63302,-10.23172 8.63302,-26.4586 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Roboto;-inkscape-font-specification:Roboto;fill:#ffffff;stroke-width:8.18538094px"
id="path815"
inkscape:connector-curvature="0" />
<path
d="m 608.53808,885.78278 h -48.76057 l -11.03108,29.97576 h -16.06701 l 45.00361,-116.38589 h 13.50908 L 635.4763,915.75854 H 619.40929 Z M 564.65357,872.59345 H 603.8219 L 584.63741,819.5963 h -0.47961 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Roboto;-inkscape-font-specification:Roboto;fill:#ffffff;stroke-width:8.18538094px"
id="path817" inkscape:connector-curvature="0" /></g>
<g id="path6" transform="translate(-223,-211.36753)" style="fill:#ffffff"><path
d="M 672.681,456.07 C 579.33,456.08 500.945,519.999 476.995,605.988 456.091,559.995 410.078,527.4 356.617,527.394 283.844,527.404 224.009,587.243 224,660.022 c -0.014,72.793 59.829,132.645 132.617,132.654 53.467,-0.01 99.45,-32.621 120.351,-78.621 23.941,86.004 102.353,149.936 195.716,149.945 92.84,0.01 170.84,-63.23 195.277,-148.499 21.243,45.148 66.549,77.166 119.395,77.172 72.804,0.013 132.654,-59.846 132.644,-132.654 -0.01,-72.794 -59.86,-132.64 -132.644,-132.628 -52.849,0.01 -98.18,32.018 -119.422,77.172 -24.437,-85.266 -102.41,-148.505 -195.25,-148.499 z m 0,77.856 c 70.106,0 126.109,55.987 126.115,126.099 0,70.12 -56,126.131 -126.115,126.125 -70.106,-0.01 -126.094,-56.014 -126.088,-126.125 0.01,-70.103 55.991,-126.09 126.088,-126.099 z M 356.602,605.25 c 30.712,0 54.764,24.059 54.767,54.772 0,30.719 -24.05,54.795 -54.767,54.798 -30.718,0 -54.772,-24.079 -54.766,-54.798 0,-30.713 24.056,-54.769 54.766,-54.772 z m 630.754,0 c 30.714,-0.01 54.794,24.052 54.794,54.772 0.01,30.728 -24.07,54.804 -54.794,54.798 -30.718,0 -54.772,-24.079 -54.769,-54.798 0,-30.713 24.057,-54.769 54.769,-54.772 z"
style="fill:#ffffff;fill-rule:nonzero"
id="path12"
inkscape:connector-curvature="0" /></g></svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
scripts/QA_keystore.jks Normal file

Binary file not shown.

View File

@ -46,8 +46,8 @@ else
echo "New findbugs results at https://www.kaminsky.me/nc-dev/$repository-findbugs/$6.html"
curl 2>/dev/null -u $4:$5 -X PUT https://nextcloud.kaminsky.me/remote.php/webdav/$repository-findbugs/$6.html --upload-file build/reports/spotbugs/spotbugs.html
# delete all old comments
oldComments=$(curl 2>/dev/null -u $1:$2 -X GET https://api.github.com/repos/nextcloud/android/issues/$7/comments | jq '.[] | (.id |tostring) + "|" + (.user.login | test("nextcloud-android-bot") | tostring) ' | grep true | tr -d "\"" | cut -f1 -d"|")
# delete all old comments, starting with Codacy
oldComments=$(curl 2>/dev/null -u $1:$2 -X GET https://api.github.com/repos/nextcloud/android/issues/$7/comments | jq '.[] | (.id |tostring) + "|" + (.user.login | test("nextcloud-android-bot") | tostring) + "|" + (.body | test("<h1>Codacy.*") | tostring)' | grep "true|true" | tr -d "\"" | cut -f1 -d"|")
echo $oldComments | while read comment ; do
curl 2>/dev/null -u $1:$2 -X DELETE https://api.github.com/repos/nextcloud/android/issues/comments/$comment
@ -55,7 +55,7 @@ else
# check library, only if base branch is master
baseBranch=$(scripts/analysis/getBranchBase.sh $1 $2 $7 | tr -d "\"")
if [ $baseBranch = "master" -a $(grep "android-library:master" build.gradle -c) -ne 3 ]; then
if [ $baseBranch = "master" -a $(grep "android-library:master" build.gradle -c) -ne 4 ]; then
checkLibraryMessage="<h1>Android-library is not set to master branch in build.gradle</h1>"
checkLibrary=1
elif [ $baseBranch != "master" -a $baseBranch = $stableBranch -a $(grep "android-library:.*SNAPSHOT" build.gradle -c) -ne 0 ]; then

37
scripts/uploadArtifact.sh Executable file
View File

@ -0,0 +1,37 @@
#!/usr/bin/env bash
#1: LOG_USERNAME
#2: LOG_PASSWORD
#3: DRONE_BUILD_NUMBER
#4: DRONE_PULL_REQUEST
#5: GIT_USERNAME
#6: GIT_TOKEN
DAV_URL=https://nextcloud.kaminsky.me/remote.php/webdav/android-artifacts/
PUBLIC_URL=https://www.kaminsky.me/nc-dev/android-artifacts
USER=$1
PASS=$2
BUILD=$3
PR=$4
GIT_USERNAME=$5
GIT_TOKEN=$6
if ! test -e build/outputs/apk/qa/debug/qa-debug-*.apk ; then
exit 1
fi
echo "Uploaded artifact to $DAV_URL/$BUILD.apk"
# delete all old comments, starting with "APK file:"
oldComments=$(curl 2>/dev/null -u $GIT_USERNAME:$GIT_TOKEN -X GET https://api.github.com/repos/nextcloud/android/issues/$PR/comments | jq '.[] | (.id |tostring) + "|" + (.user.login | test("nextcloud-android-bot") | tostring) + "|" + (.body | test("APK file:.*") | tostring)' | grep "true|true" | tr -d "\"" | cut -f1 -d"|")
echo $oldComments | while read comment ; do
curl 2>/dev/null -u $GIT_USERNAME:$GIT_TOKEN -X DELETE https://api.github.com/repos/nextcloud/android/issues/comments/$comment
done
apt-get -y install qrencode
qrencode -o $PR.png "$PUBLIC_URL/$BUILD.apk"
curl -u $USER:$PASS -X PUT $DAV_URL/$BUILD.apk --upload-file build/outputs/apk/qa/debug/qa-debug-*.apk
curl -u $USER:$PASS -X PUT $DAV_URL/$BUILD.png --upload-file $PR.png
curl -u $GIT_USERNAME:$GIT_TOKEN -X POST https://api.github.com/repos/nextcloud/android/issues/$PR/comments -d "{ \"body\" : \"APK file: $PUBLIC_URL/$BUILD.apk <br/><br/> ![qrcode]($PUBLIC_URL/$BUILD.png) \" }"

View File

@ -0,0 +1,35 @@
{
"project_info": {
"project_number": "",
"project_id": ""
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "",
"android_client_info": {
"package_name": "com.nextcloud.android.beta"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": ""
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 1
}
}
}
],
"configuration_version": "1"
}

BIN
src/qa/ic_launcher-web.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View File

@ -0,0 +1,26 @@
/*
* Nextcloud Android client application
*
* @author Chris Narkiewicz
* Copyright (C) 2919 Chris Narkiewicz <hello@ezaquarii.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.nextcloud.client.di;
import dagger.Module;
@Module
abstract class VariantComponentsModule {
}

View File

@ -0,0 +1,58 @@
/**
* Nextcloud Android client application
*
* @author Mario Danic
* @author Chris Narkiewicz Copyright (C) 2017 Mario Danic Copyright (C) 2019 Chris Narkiewicz
* <p>
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
* Public License as published by the Free Software Foundation, either version 3 of the License, or at your option) any
* later version.
* <p>
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
* <p>
* You should have received a copy of the GNU Affero General Public License along with this program. If not, see
* <http://www.gnu.org/licenses/>.
*/
package com.owncloud.android.utils;
import android.content.Context;
import com.nextcloud.client.account.UserAccountManager;
import com.nextcloud.client.preferences.AppPreferencesImpl;
import com.owncloud.android.MainApp;
import com.owncloud.android.datamodel.SignatureVerification;
import java.security.Key;
public final class PushUtils {
public static final String KEY_PUSH = "push";
private PushUtils() {
}
public static void pushRegistrationToServer(
final UserAccountManager accountManager,
final String pushToken) {
// do nothing
}
public static void reinitKeys(final UserAccountManager accountManager) {
Context context = MainApp.getAppContext();
AppPreferencesImpl.fromContext(context).setKeysReInitEnabled();
}
public static Key readKeyFromFile(boolean readPublicKey) {
return null;
}
public static SignatureVerification verifySignature(
final Context context,
final UserAccountManager accountManager,
final byte[] signatureBytes, final byte[] subjectBytes
) {
return null;
}
}

View File

@ -0,0 +1,20 @@
/**
* Nextcloud Android client application
*
* @author Mario Danic Copyright (C) 2018 Mario Danic
* <p>
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
* Public License as published by the Free Software Foundation, either version 3 of the License, or at your option) any
* later version.
* <p>
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
* <p>
* You should have received a copy of the GNU Affero General Public License along with this program. If not, see
* <http://www.gnu.org/licenses/>.
*/
package com.owncloud.android.utils;
public class SecurityUtils {
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,45 @@
<!--
Nextcloud Android client application
Copyright (C) 2017 Andy Scherzinger
Copyright (C) 2017 Nextcloud.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
License as published by the Free Software Foundation; either
version 3 of the License, or any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU AFFERO GENERAL PUBLIC LICENSE for more details.
You should have received a copy of the GNU Affero General Public
License along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="1636.9231"
android:viewportHeight="1636.9231">
<group
android:translateX="286.46155"
android:translateY="286.46155">
<path
android:pathData="m482.9,858.6c0,21.2 -5.9,37.4 -17.7,48.7 -11.8,11.2 -28.7,16.8 -50.9,16.8L378.4,924.1L378.4,795.6h39.7c20.4,0 36.4,5.5 47.7,16.5 11.4,11 17.1,26.5 17.1,46.5zM460.7,859.3c0,-30.8 -14.4,-46.1 -43.2,-46.1h-18.2v93.3h14.9c30.9,0 46.4,-15.7 46.4,-47.1z"
android:fillType="nonZero"
android:fillColor="#ffffff" />
<path
android:pathData="m550.8,925.9c-15.1,0 -27,-4.4 -35.5,-13.2 -8.5,-8.8 -12.7,-21 -12.7,-36.5 0,-15.9 4,-28.4 11.9,-37.4 7.9,-9.1 18.8,-13.6 32.6,-13.6 12.8,0 23,3.9 30.4,11.7 7.4,7.8 11.2,18.5 11.2,32.2v11.2h-64.8c0.3,9.4 2.8,16.7 7.6,21.8 4.8,5 11.6,7.6 20.3,7.6 5.7,0 11.1,-0.5 16,-1.6 5,-1.1 10.3,-2.9 16,-5.4v16.8c-5,2.4 -10.1,4.1 -15.3,5.1 -5.2,1 -11,1.5 -17.7,1.5zM547,840.8c-6.6,0 -11.8,2.1 -15.8,6.2 -3.9,4.2 -6.3,10.2 -7,18.2L568.3,865.2c-0.1,-8 -2.1,-14.1 -5.8,-18.2 -3.8,-4.2 -8.9,-6.2 -15.5,-6.2z"
android:fillType="nonZero"
android:fillColor="#ffffff" />
<path
android:pathData="m634.2,924.1 l-36.9,-97.2h21.8l19.8,56.5c3.4,9.5 5.4,17.2 6.2,23h0.7c0.5,-4.2 2.6,-11.9 6.2,-23l19.8,-56.5h22l-37.1,97.2z"
android:fillType="nonZero"
android:fillColor="#ffffff" />
<path
android:pathData="M532.7,320C439.3,320 360.9,383.9 337,469.9 316.1,423.9 270.1,391.3 216.6,391.3 143.8,391.3 84,451.2 84,524c-0,72.8 59.8,132.6 132.6,132.7 53.5,-0 99.4,-32.6 120.4,-78.6 23.9,86 102.4,149.9 195.7,149.9 92.8,0 170.8,-63.2 195.3,-148.5 21.2,45.1 66.5,77.2 119.4,77.2 72.8,0 132.7,-59.8 132.6,-132.7 -0,-72.8 -59.9,-132.6 -132.6,-132.6 -52.8,0 -98.2,32 -119.4,77.2 -24.4,-85.3 -102.4,-148.5 -195.3,-148.5zM532.7,397.9c70.1,0 126.1,56 126.1,126.1 0,70.1 -56,126.1 -126.1,126.1 -70.1,-0 -126.1,-56 -126.1,-126.1 0,-70.1 56,-126.1 126.1,-126.1zM216.6,469.2c30.7,0 54.8,24.1 54.8,54.8 0,30.7 -24,54.8 -54.8,54.8 -30.7,0 -54.8,-24.1 -54.8,-54.8 0,-30.7 24.1,-54.8 54.8,-54.8zM847.4,469.2c30.7,-0 54.8,24.1 54.8,54.8 0,30.7 -24.1,54.8 -54.8,54.8 -30.7,0 -54.8,-24.1 -54.8,-54.8 0,-30.7 24.1,-54.8 54.8,-54.8z"
android:fillType="nonZero"
android:fillColor="#ffffff" />
</group>
</vector>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,32 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="1910.6383"
android:viewportHeight="1910.6383">
<group
android:translateX="506.31915"
android:translateY="530.31915">
<path
android:pathData="m438.968,782.654q0,11.351 -3.997,21.023 -3.997,9.672 -11.191,16.387l19.744,18.625 -10.791,10.312 -22.062,-20.543q-4.476,1.839 -9.352,2.718 -4.796,0.959 -9.912,0.959 -20.384,0 -33.173,-14.069 -12.71,-14.069 -12.71,-35.411v-20.703q0,-21.263 12.71,-35.411 12.79,-14.149 33.173,-14.149 21.103,0 34.292,14.149 13.269,14.069 13.269,35.411zM423.221,761.791q0,-15.987 -8.633,-26.219 -8.633,-10.232 -23.181,-10.232 -13.749,0 -21.982,10.232 -8.153,10.232 -8.153,26.219v20.863q0,16.147 8.153,26.379 8.233,10.232 21.982,10.232 14.628,0 23.181,-10.152 8.633,-10.232 8.633,-26.459z"
android:strokeAlpha="1"
android:strokeLineJoin="miter"
android:strokeWidth="8.18538094"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillAlpha="1"
android:strokeLineCap="butt" />
<path
android:pathData="m525.538,800.479h-48.761l-11.031,29.976h-16.067l45.004,-116.386h13.509L552.476,830.455L536.409,830.455ZM481.654,787.29L520.822,787.29L501.637,734.293h-0.48z"
android:strokeAlpha="1"
android:strokeLineJoin="miter"
android:strokeWidth="8.18538094"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillAlpha="1"
android:strokeLineCap="butt" />
<path
android:pathData="M449.681,244.702C356.33,244.712 277.945,308.632 253.995,394.62 233.091,348.627 187.078,316.033 133.617,316.026 60.844,316.036 1.009,375.875 1,448.654c-0.014,72.793 59.829,132.645 132.617,132.654 53.467,-0.01 99.45,-32.621 120.351,-78.621 23.941,86.004 102.353,149.936 195.716,149.945 92.84,0.01 170.84,-63.23 195.277,-148.499 21.243,45.148 66.549,77.166 119.395,77.172 72.804,0.013 132.654,-59.846 132.644,-132.654 -0.01,-72.794 -59.86,-132.64 -132.644,-132.628 -52.849,0.01 -98.18,32.018 -119.422,77.172 -24.437,-85.266 -102.41,-148.505 -195.25,-148.499zM449.681,322.559c70.106,0 126.109,55.987 126.115,126.099 0,70.12 -56,126.131 -126.115,126.125 -70.106,-0.01 -126.094,-56.014 -126.088,-126.125 0.01,-70.103 55.991,-126.09 126.088,-126.099zM133.602,393.882c30.712,0 54.764,24.059 54.767,54.772 0,30.719 -24.05,54.795 -54.767,54.798 -30.718,0 -54.772,-24.079 -54.766,-54.798 0,-30.713 24.056,-54.769 54.766,-54.772zM764.356,393.882c30.714,-0.01 54.794,24.052 54.794,54.772 0.01,30.728 -24.07,54.804 -54.794,54.798 -30.718,0 -54.772,-24.079 -54.769,-54.798 0,-30.713 24.057,-54.769 54.769,-54.772z"
android:fillColor="#ffffff"
android:fillType="nonZero" />
</group>
</vector>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Beta indicator -->
<bool name="is_beta">true</bool>
<bool name="dev_version_direct_download_enabled">false</bool>
<!-- App name and other strings-->
<string name="app_name">Nextcloud QA</string>
<string name="account_type">nextcloud.qa</string> <!-- better if was a domain name; but changing it now would require migrate accounts when the app is updated -->
<string name="authority">org.nextcloud.qa.provider</string> <!-- better if was the app package with ".provider" appended ; it identifies the provider -->
<string name="users_and_groups_search_authority">org.nextcloud.qa.android.providers.UsersAndGroupsSearchProvider</string>
<string name="users_and_groups_share_with">org.nextcloud.qa.android.providers.UsersAndGroupsSearchProvider.action.SHARE_WITH</string>
<string name="document_provider_authority">org.nextcloud.qa.documents</string>
<string name="file_provider_authority">org.nextcloud.qa.files</string>
<string name="image_cache_provider_authority">org.nextcloud.qa.android.providers.imageCache</string>
<string name="default_display_name_for_root_folder">Nextcloud QA</string>
<bool name="logger_enabled">true</bool>
<string name="dev_changelog">https://github.com/nextcloud/android/commits/master</string>
<!--Destination mail for sending log files -->
<string name="mail_logger">android@nextcloud.com</string>
</resources>