deploy gplay artifact on success as own QA flavor
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
32
.drone.yml
|
@ -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
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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 |
|
@ -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
|
||||
|
|
|
@ -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) \" }"
|
|
@ -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"
|
||||
}
|
After Width: | Height: | Size: 41 KiB |
|
@ -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 {
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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 {
|
||||
}
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 7.7 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 17 KiB |
|
@ -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>
|
||||
|
||||
|