From 4a8f77a65c303463b7cf3629c6039d8f7ef83052 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Garc=C3=ADa=20Amor?= Date: Wed, 24 Jan 2018 13:13:13 +0100 Subject: [PATCH 01/15] Added Transifex automation for localizations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Óscar García Amor --- .circleci/config.yml | 28 ++++++++++++++++++++++++++++ .tx/config | 10 ++++++++++ 2 files changed, 38 insertions(+) create mode 100644 .tx/config diff --git a/.circleci/config.yml b/.circleci/config.yml index fc710f6c..c2daf3ad 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -38,4 +38,32 @@ jobs: destination: reports - store_artifacts: path: build/reports/jacoco/jacocoFullReport/ + push_translations: + docker: + - image: circleci/python:3.6 + working_directory: ~/ultrasonic + steps: + - checkout + - run: + name: install transifex client + command: | + python -m venv ~/venv + . ~/venv/bin/activate + pip install transifex-client + - run: + name: configure transifex client + command: echo $'[https://www.transifex.com]\nhostname = https://www.transifex.com\nusername = api\npassword = '"${TRANSIFEX_PASSWORD}"$'\n' > ~/.transifexrc + - run: + name: push changes in translation files + command: | + . ~/venv/bin/activate + tx push -st +workflows: + version: 2 + build_and_push_translations: + jobs: + - build + - push_translations: + requires: + - build diff --git a/.tx/config b/.tx/config new file mode 100644 index 00000000..e17226d9 --- /dev/null +++ b/.tx/config @@ -0,0 +1,10 @@ +[main] +host = https://www.transifex.com +lang_map = fr_CA:fr-rCA,pt_BR:pt-rBR,pt_PT:pt,zh_CN:zh-rCN,zh_HK:zh-rHK,zh_TW:zh-rTW,da_DK:da-rDK,de_DE:de,tr_TR:tr,fr_FR:fr,es_ES:es,hu_HU:hu,sv_SE:sv-rSE,bg_BG:bg,el_GR:el,kn_IN:kn-rIN,cs_CZ:cs,sr:sr,he:iw,id:in,lt_LT:lt,km_KH:km-rKH,th_TH:th + +[ultrasonic.app] +file_filter = ultrasonic/src/main/res/values-/strings.xml +source_file = ultrasonic/src/main/res/values/strings.xml +source_lang = en +type = ANDROID + From fcc4ddca55177de0b77ce617e5eb57ba3981c756 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Garc=C3=ADa=20Amor?= Date: Wed, 24 Jan 2018 13:20:16 +0100 Subject: [PATCH 02/15] Fix language files to Transifex MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Óscar García Amor --- ultrasonic/src/main/res/values-es/strings.xml | 10 ++++------ ultrasonic/src/main/res/values-fr/strings.xml | 12 +++++------- ultrasonic/src/main/res/values-hu/strings.xml | 10 ++++------ ultrasonic/src/main/res/values-pt-rBR/strings.xml | 2 -- ultrasonic/src/main/res/values-pt/strings.xml | 6 ++---- 5 files changed, 15 insertions(+), 25 deletions(-) diff --git a/ultrasonic/src/main/res/values-es/strings.xml b/ultrasonic/src/main/res/values-es/strings.xml index 514f1875..9ef97bff 100644 --- a/ultrasonic/src/main/res/values-es/strings.xml +++ b/ultrasonic/src/main/res/values-es/strings.xml @@ -14,6 +14,9 @@ Chat Inicio de UltraSonic Reproduciendo ahora + Podcast + No hay canales de Podcasts registrados + Podcast Listas de reproducción Buscar Enviar un mensaje @@ -393,9 +396,7 @@ 12 Caratula del Álbum Múltiples años - - Ninguna canción 1 canción %d canciones @@ -423,9 +424,6 @@ Queda un día de periodo de prueba Quedan %d días de periodo de prueba - Podcast - Podcast - No hay canales de Podcasts registrados Error genérico de api: %1$s @@ -439,4 +437,4 @@ Versiones incompatibles. Por favor actualiza la aplicación de Android UltraSonic. Versiones incompatibles. Por favor actualiza el servidor de Subsonic. - \ No newline at end of file + diff --git a/ultrasonic/src/main/res/values-fr/strings.xml b/ultrasonic/src/main/res/values-fr/strings.xml index 0c6616f6..f2ca90fc 100644 --- a/ultrasonic/src/main/res/values-fr/strings.xml +++ b/ultrasonic/src/main/res/values-fr/strings.xml @@ -14,6 +14,9 @@ Salon de discussion Accueil Ultrasonic Lecture en cours + Podcast + No podcasts channels registered + Podcast Playlists Recherche Envoyer un message @@ -236,8 +239,8 @@ 60 secondes 75 secondes 90 secondes - Réseau Notifications + Réseau Autres paramètres Paramètres de contrôle de lecture Titres à pré-charger @@ -393,9 +396,7 @@ 12 albumArt Multiple Years - - Aucun titre Un titre %d titres @@ -423,9 +424,6 @@ Un jour restant à la période d\'essai %d jours restant à la période d\'essai - Podcast - Podcast - No podcasts channels registered Erreur api générique: %1$s @@ -439,4 +437,4 @@ Versions incompatible. Veuillez mette à jour l\'application Android UltraSonic. Versions incompatible. Veuillez mette à jour le serveur Subsonic. - \ No newline at end of file + diff --git a/ultrasonic/src/main/res/values-hu/strings.xml b/ultrasonic/src/main/res/values-hu/strings.xml index 571ad7fc..9bfe728e 100644 --- a/ultrasonic/src/main/res/values-hu/strings.xml +++ b/ultrasonic/src/main/res/values-hu/strings.xml @@ -14,6 +14,9 @@ Csevegés (Chat) UltraSonic főoldal Lejátszó + Podcast + No podcasts channels registered + Podcast Lejátszási listák Keresés Üzenet küldése @@ -393,9 +396,7 @@ 12 albumArt Multiple Years - - Nincsenek dalok 1 dal %d dal @@ -423,9 +424,6 @@ 1 nap van hátra a próba időszakból. %d nap van hátra a próba időszakból. - Podcast - Podcast - No podcasts channels registered Általános api hiba: %1$s @@ -439,4 +437,4 @@ Nem kompatibilis verzió. Kérjük, frissítse az UltraSonic Android alkalmazást! Nem kompatibilis verzió. Kérjük, frissítse a Subsonic kiszolgálót! - \ No newline at end of file + diff --git a/ultrasonic/src/main/res/values-pt-rBR/strings.xml b/ultrasonic/src/main/res/values-pt-rBR/strings.xml index 88dd330a..ad8364ba 100644 --- a/ultrasonic/src/main/res/values-pt-rBR/strings.xml +++ b/ultrasonic/src/main/res/values-pt-rBR/strings.xml @@ -396,9 +396,7 @@ 12 albumArt Múltiplos Anos - - Nenhuma música 1 música %d músicas diff --git a/ultrasonic/src/main/res/values-pt/strings.xml b/ultrasonic/src/main/res/values-pt/strings.xml index 9286d0e5..15e827a1 100644 --- a/ultrasonic/src/main/res/values-pt/strings.xml +++ b/ultrasonic/src/main/res/values-pt/strings.xml @@ -1,5 +1,5 @@ - + Carregando… Ocorreu um erro de rede. Verifique o endereço do servidor ou tente mais tarde. @@ -396,9 +396,7 @@ 12 albumArt Múltiplos Anos - - - Nenhuma música + %d música %d músicas From 143a4a2f377cecb3bbaaabacda831231b0fafce2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Garc=C3=ADa=20Amor?= Date: Wed, 24 Jan 2018 13:27:15 +0100 Subject: [PATCH 03/15] Fix plurals in source file for translations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Óscar García Amor --- ultrasonic/src/main/res/values/strings.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ultrasonic/src/main/res/values/strings.xml b/ultrasonic/src/main/res/values/strings.xml index 4748a3eb..b9edf0d0 100644 --- a/ultrasonic/src/main/res/values/strings.xml +++ b/ultrasonic/src/main/res/values/strings.xml @@ -401,7 +401,6 @@ http://example.com - No songs 1 song %d songs @@ -442,4 +441,4 @@ Incompatible versions. Please upgrade UltraSonic Android app. Incompatible versions. Please upgrade Subsonic server. - \ No newline at end of file + From 511c5482c13fc20dbb258e4e2d841d0d36020686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Garc=C3=ADa=20Amor?= Date: Wed, 24 Jan 2018 17:30:01 +0100 Subject: [PATCH 04/15] Added release folder to .gitignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Óscar García Amor --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index cfd6b30f..e519a2a6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# Release folder +ultrasonic/release/ + # Built application files *.apk *.ap_ From 769b29841582fb1d505dc8f1d22ca21b3585c196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Garc=C3=ADa=20Amor?= Date: Thu, 25 Jan 2018 08:57:19 +0100 Subject: [PATCH 05/15] Push translations only on develop and master MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Óscar García Amor --- .circleci/config.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index c2daf3ad..f699d294 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -66,4 +66,9 @@ workflows: - push_translations: requires: - build + filters: + branches: + only: + - develop + - master From 23d4715ff1099a9a3c212d912574da744b3df315 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Garc=C3=ADa=20Amor?= Date: Thu, 25 Jan 2018 18:46:23 +0100 Subject: [PATCH 06/15] Added Circle CI automatic builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now when adding a new tag, Circle CI automagically build a release signed apk and add it to assets. Signed-off-by: Óscar García Amor --- .circleci/config.yml | 56 ++++++++++++++++++++++++++++++++++++++++ ultrasonic-keystore.enc | Bin 0 -> 2224 bytes 2 files changed, 56 insertions(+) create mode 100644 ultrasonic-keystore.enc diff --git a/.circleci/config.yml b/.circleci/config.yml index f699d294..c7460064 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -58,6 +58,48 @@ jobs: command: | . ~/venv/bin/activate tx push -st + generate_signed_apk: + docker: + - image: circleci/android:api-27-alpha + working_directory: ~/ultrasonic + envoronment: + JVM_OPTS: -Xmx3200m + steps: + - checkout + - restore_cache: + key: gradle-cache-{{ checksum "dependencies.gradle" }} + - run: + name: decrypt ultrasonic-keystore + command: openssl aes-256-cbc -K ${ULTRASONIC_KEYSTORE_KEY} -iv ${ULTRASONIC_KEYSTORE_IV} -in ultrasonic-keystore.enc -out ultrasonic-keystore -d + - run: + name: build release apk + command: ./gradlew build assembleRelease + - run: + name: sign release apk + command: | + mkdir -p /tmp/ultrasonic-release + cd ultrasonic/build/outputs/apk/release/ + for apk in *.apk; do + jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/ultrasonic/ultrasonic-keystore -storepass ${ULTRASONIC_KEYSTORE_STOREPASS} -keypass ${ULTRASONIC_KEYSTORE_KEYPASS} ${apk} ultrasonic + jarsigner -verify ${apk} + ${ANDROID_HOME}/build-tools/27.0.0/zipalign -v 4 ${apk} /tmp/ultrasonic-release/${apk/-release/} + done + - persist_to_workspace: + root: /tmp/ultrasonic-release + paths: + - ultrasonic-*.apk + publish_signed_apk: + docker: + - image: circleci/golang + steps: + - attach_workspace: + at: /tmp/ultrasonic-release + - run: + name: install ghr + command: go get -v github.com/tcnksm/ghr + - run: + name: publish release on tag + command: ghr -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} ${CIRCLE_TAG} /tmp/ultrasonic-release workflows: version: 2 build_and_push_translations: @@ -71,4 +113,18 @@ workflows: only: - develop - master + - generate_signed_apk: + filters: + tags: + only: /^[0-9]+(\.[0-9]+)*/ + branches: + ignore: /.*/ + - publish_signed_apk: + requires: + - generate_signed_apk + filters: + tags: + only: /^[0-9]+(\.[0-9]+)*/ + branches: + ignore: /.*/ diff --git a/ultrasonic-keystore.enc b/ultrasonic-keystore.enc new file mode 100644 index 0000000000000000000000000000000000000000..3c818567d01e56a5b420e17895ea1593ecb6b262 GIT binary patch literal 2224 zcmV;h2v7I;XJh}Jv8t4c3rtl-jd8M0ot81R1a1&Kd)0k+vyRQ0NYL2D5G2<(ti$dw z*Nf)vVeBRgwqdV=Q@kmhy8+A^Df&=i+n|sB>W(0YK8~yaA5M`5KIGELD~Pcu*M_ys zAjFD`h}5`Pv)@VithSwoV=~{?mo#wdY8}r~05F=!LOXJjVAW6qSt02Zb#{>Usfsjf zce>rTE$$M|>@v>kI)e^aPPZUAK>hX6P*rcO4#as&na|^{TEm4UsZ&_YXG#qaRM8^0 zE6qQ&<+Z8XPy-*S?zyth%UK(8WGxGZcH}=Vhg7c<7Hb0ce2ztW+|Wpf=J=S)LuOai zjil2H=0AivvtGlSd#z3fnlp;cV3wSjy<-asfVuU?ZLlNRfKCE!9?1HnR;kVus)grqSmMwB$tAbyLWJ)KtflG>9B7dnN7FWm?8w4cm&^iYwPpDgCrb z9M32#>(nYoHEuX?xfl&00QRe!UAP{{_~^MCr31tu_lhvy)MR|IisNhald^lW{kV0; z#6mgh)~Tjqxd~KSmu&BlemMZCw>+ zCN()WDBNRR-Y4Shfr(~^f?EB}L2WEyDI(vU7JRCqac)hJab%}_&p%UG1zNW-5DUqf z{!tGA-dU$#|B=W_Z+dgaTnDyY1ub+b!6FXi(UFgA1#}}@k`Q*0wF?C{__nYft&N_{ zbR*uq`)y9r7^TCG1;R)S=M@1f-ei+2AN~Rg(S$t-~lGIaArS><=`fGD+|a0iy>06n1WVCF&NJO9*Hz&mHF z>Kr6tURX^B*a)DfkkfJ?&{-vV?Mfh^j}0|6J$^%dI0Ui4 z`|+NB(#&iIe}cOT{ENx;i2AsRtX#|X)FHM;u%T89$YJm;BtSYFKnU!dKGFo!ChX+} zHIf(FyQM2`{mi>jfS@rM@L+Fj@j-19=@mk?-pWP08Z5UE9va+@cEk!azkvva^T^9S zMDo+x1YyQs)uutE4~3RWAaLtI-jImzCEwdExv}y0wRnPLf)NHZ9;aS^TLl?Zxb_HF zv|(`fgAVjE*wH`pO5}<5tei=SILF#K2olt(rCb?gk6c{h^R%Luwk9MPvsn-!(6wq6*2SR-oOHK0Fz%G)q*2 zM1f5gYiW}VQv8Z%TkgG=;?FHTFq0fw?|Wj1`paRWV)u}Ht za_*3CVY?tBYtlM!J`H{7VWTv^_fP}V*b370W6O00<{<-pXaNv%>HX+6XP396QZP`h z8f4!d_1U4Rnp-OJ@nm3`^zV42>hgT_ey<}MY)JnZKuZO4sd%76fRfh2)DdTNX`d*e zbDC<=Hp2yIK;D=yhFs{4zu5-tU2J*~7mXI7HMy5;<45eHZ6NL7@-mvzW6DYjd2-y* z!e0rf*pWCH8Bl8;8Iol$z1eNO;TEXb_kkd)ja z4-w&X1}9WK`ez0Sgji}16C_&|><{AVL9_!ulZvh8>vJ?OWF7uQfwn|en1qq;6!#&C zLfyn4HW?O=u5`sZb@aQ7gb#&)n2ub56|fnajf7L-6adAGyZG#r7MvVn(P-utF_P(Lg{`Eca z-!eo>0O+gx7G#~J{vrJ-=D0b$j5M#2a1+g>g1=OU|RFf&*^ zQNR@2t Date: Thu, 25 Jan 2018 22:22:42 +0100 Subject: [PATCH 07/15] Improve Circle CI automatic builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Óscar García Amor --- .circleci/config.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c7460064..9c7e2e20 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -63,7 +63,7 @@ jobs: - image: circleci/android:api-27-alpha working_directory: ~/ultrasonic envoronment: - JVM_OPTS: -Xmx3200m + JAVA_TOOL_OPTIONS: "-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap" steps: - checkout - restore_cache: @@ -88,7 +88,7 @@ jobs: root: /tmp/ultrasonic-release paths: - ultrasonic-*.apk - publish_signed_apk: + publish_github_signed_apk: docker: - image: circleci/golang steps: @@ -98,7 +98,7 @@ jobs: name: install ghr command: go get -v github.com/tcnksm/ghr - run: - name: publish release on tag + name: publish release on github tag command: ghr -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} ${CIRCLE_TAG} /tmp/ultrasonic-release workflows: version: 2 @@ -119,7 +119,7 @@ workflows: only: /^[0-9]+(\.[0-9]+)*/ branches: ignore: /.*/ - - publish_signed_apk: + - publish_github_signed_apk: requires: - generate_signed_apk filters: From 60b03749529138138fc8064920f22a8fd4748de0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Garc=C3=ADa=20Amor?= Date: Mon, 29 Jan 2018 16:26:08 +0100 Subject: [PATCH 08/15] Revert "Add versioning plugin." This reverts commit c84482729d216d2b2f1c104f7b89de68806e17e5. --- build.gradle | 1 - dependencies.gradle | 12 +++++------- ultrasonic/build.gradle | 18 ------------------ ultrasonic/src/main/AndroidManifest.xml | 4 +++- ultrasonic/version.properties | 2 -- 5 files changed, 8 insertions(+), 29 deletions(-) delete mode 100644 ultrasonic/version.properties diff --git a/build.gradle b/build.gradle index 97610b36..25ea3d17 100644 --- a/build.gradle +++ b/build.gradle @@ -13,7 +13,6 @@ buildscript { classpath gradlePlugins.ktlintGradle classpath gradlePlugins.detekt classpath gradlePlugins.jacocoAndroid - classpath gradlePlugins.buildVersioning } } diff --git a/dependencies.gradle b/dependencies.gradle index 6c932026..75bf59c6 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -10,7 +10,6 @@ ext.versions = [ detekt : "1.0.0.RC6", jacoco : "0.7.9", jacocoAndroid : "0.1.2", - buildVersioning : "1.6.0", androidSupport : "22.2.1", @@ -28,12 +27,11 @@ ext.versions = [ ] ext.gradlePlugins = [ - androidTools : "com.android.tools.build:gradle:$versions.androidTools", - kotlin : "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin", - ktlintGradle : "gradle.plugin.org.jlleitschuh.gradle:ktlint-gradle:$versions.ktlintGradle", - detekt : "gradle.plugin.io.gitlab.arturbosch.detekt:detekt-gradle-plugin:$versions.detekt", - jacocoAndroid : "com.dicedmelon.gradle:jacoco-android:$versions.jacocoAndroid", - buildVersioning : "org.moallemi.gradle.advanced-build-version:gradle-plugin:$versions.buildVersioning", + androidTools : "com.android.tools.build:gradle:$versions.androidTools", + kotlin : "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin", + ktlintGradle : "gradle.plugin.org.jlleitschuh.gradle:ktlint-gradle:$versions.ktlintGradle", + detekt : "gradle.plugin.io.gitlab.arturbosch.detekt:detekt-gradle-plugin:$versions.detekt", + jacocoAndroid : "com.dicedmelon.gradle:jacoco-android:$versions.jacocoAndroid" ] ext.androidSupport = [ diff --git a/ultrasonic/build.gradle b/ultrasonic/build.gradle index 01a2d3c8..822c2243 100644 --- a/ultrasonic/build.gradle +++ b/ultrasonic/build.gradle @@ -1,31 +1,13 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'jacoco-android' -apply plugin: 'org.moallemi.advanced-build-version' apply from: "../gradle_scripts/code_quality.gradle" -advancedVersioning { - nameOptions { - versionMajor 2 - versionMinor 2 - versionPatch 1 - } - codeOptions { - versionCodeType org.moallemi.gradle.internal.VersionCodeType.AUTO_INCREMENT_ONE_STEP - } - outputOptions { - renameOutput true - } -} - android { compileSdkVersion versions.compileSdk defaultConfig { applicationId "org.moire.ultrasonic" - versionCode advancedVersioning.versionCode - versionName advancedVersioning.versionName - minSdkVersion versions.minSdk targetSdkVersion versions.targetSdk diff --git a/ultrasonic/src/main/AndroidManifest.xml b/ultrasonic/src/main/AndroidManifest.xml index 3d7bad42..d24a6d8d 100644 --- a/ultrasonic/src/main/AndroidManifest.xml +++ b/ultrasonic/src/main/AndroidManifest.xml @@ -1,7 +1,9 @@ + a:installLocation="auto" + a:versionCode="59" + a:versionName="2.0.0"> diff --git a/ultrasonic/version.properties b/ultrasonic/version.properties deleted file mode 100644 index 9ebbcbd4..00000000 --- a/ultrasonic/version.properties +++ /dev/null @@ -1,2 +0,0 @@ -#Tue Jan 23 22:14:32 CET 2018 -AI_VERSION_CODE=62 From e140e7fbcd0513c1f7edab16bff97888a7581824 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Garc=C3=ADa=20Amor?= Date: Mon, 29 Jan 2018 17:48:34 +0100 Subject: [PATCH 09/15] Set versions into dependencies.gradle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Óscar García Amor --- dependencies.gradle | 3 +++ ultrasonic/build.gradle | 3 +++ ultrasonic/src/main/AndroidManifest.xml | 6 ++---- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index 75bf59c6..d9f4c9d2 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,4 +1,7 @@ ext.versions = [ + versionCode : 62, + versionName : "2.2.1", + minSdk : 14, targetSdk : 22, compileSdk : 27, diff --git a/ultrasonic/build.gradle b/ultrasonic/build.gradle index 822c2243..0ba0a74b 100644 --- a/ultrasonic/build.gradle +++ b/ultrasonic/build.gradle @@ -8,6 +8,9 @@ android { defaultConfig { applicationId "org.moire.ultrasonic" + versionCode versions.versionCode + versionName versions.versionName + minSdkVersion versions.minSdk targetSdkVersion versions.targetSdk diff --git a/ultrasonic/src/main/AndroidManifest.xml b/ultrasonic/src/main/AndroidManifest.xml index d24a6d8d..c0c48bfc 100644 --- a/ultrasonic/src/main/AndroidManifest.xml +++ b/ultrasonic/src/main/AndroidManifest.xml @@ -1,9 +1,7 @@ + a:installLocation="auto"> @@ -204,4 +202,4 @@ - \ No newline at end of file + From cef2b2ad492aca24cfcb8a896c048a0b91a28ec6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Garc=C3=ADa=20Amor?= Date: Mon, 29 Jan 2018 21:04:04 +0100 Subject: [PATCH 10/15] Fix CI autobuild after apply #154 changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Óscar García Amor --- .circleci/config.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9c7e2e20..b1876534 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -78,12 +78,9 @@ jobs: name: sign release apk command: | mkdir -p /tmp/ultrasonic-release - cd ultrasonic/build/outputs/apk/release/ - for apk in *.apk; do - jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/ultrasonic/ultrasonic-keystore -storepass ${ULTRASONIC_KEYSTORE_STOREPASS} -keypass ${ULTRASONIC_KEYSTORE_KEYPASS} ${apk} ultrasonic - jarsigner -verify ${apk} - ${ANDROID_HOME}/build-tools/27.0.0/zipalign -v 4 ${apk} /tmp/ultrasonic-release/${apk/-release/} - done + jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/ultrasonic/ultrasonic-keystore -storepass ${ULTRASONIC_KEYSTORE_STOREPASS} -keypass ${ULTRASONIC_KEYSTORE_KEYPASS} ultrasonic/build/outputs/apk/release/ultrasonic-release-unsigned.apk ultrasonic + jarsigner -verify ultrasonic/build/outputs/apk/release/ultrasonic-release-unsigned.apk + ${ANDROID_HOME}/build-tools/27.0.0/zipalign -v 4 ultrasonic/build/outputs/apk/release/ultrasonic-release-unsigned.apk /tmp/ultrasonic-release/ultrasonic-${CIRCLE_TAG}.apk - persist_to_workspace: root: /tmp/ultrasonic-release paths: From b6c14c7541b54669ec8d79a5336beb4d494d48e1 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Thu, 8 Feb 2018 22:00:22 +0100 Subject: [PATCH 11/15] Fix stray ">" in songs list. Signed-off-by: Yahor Berdnikau --- .../src/main/java/org/moire/ultrasonic/view/SongView.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/view/SongView.java b/ultrasonic/src/main/java/org/moire/ultrasonic/view/SongView.java index 4336da1a..e17560e0 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/view/SongView.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/view/SongView.java @@ -21,6 +21,7 @@ package org.moire.ultrasonic.view; import android.content.Context; import android.graphics.drawable.AnimationDrawable; import android.graphics.drawable.Drawable; +import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -168,7 +169,10 @@ public class SongView extends UpdateView implements Checkable String suffix = song.getSuffix(); String transcodedSuffix = song.getTranscodedSuffix(); - fileFormat = transcodedSuffix == null || transcodedSuffix.equals(suffix) || (song.isVideo() && Util.getVideoPlayerType(this.context) != VideoPlayerType.FLASH) ? suffix : String.format("%s > %s", suffix, transcodedSuffix); + fileFormat = TextUtils.isEmpty(transcodedSuffix) || + transcodedSuffix.equals(suffix) || + (song.isVideo() && Util.getVideoPlayerType(this.context) != VideoPlayerType.FLASH) ? + suffix : String.format("%s > %s", suffix, transcodedSuffix); String artistName = song.getArtist(); From 009567c83e5083571b68dd518f20acee938894d4 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Sat, 10 Feb 2018 20:08:57 +0100 Subject: [PATCH 12/15] Fix app may use wrong folder to store music. Signed-off-by: Yahor Berdnikau --- .../src/main/java/org/moire/ultrasonic/util/FileUtil.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/util/FileUtil.java b/ultrasonic/src/main/java/org/moire/ultrasonic/util/FileUtil.java index e885d24f..2a64aa10 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/util/FileUtil.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/util/FileUtil.java @@ -22,6 +22,7 @@ import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Environment; +import android.text.TextUtils; import android.util.Log; import org.moire.ultrasonic.activity.SubsonicTabActivity; @@ -324,13 +325,10 @@ public class FileUtil File dir; - if (entry.getPath() != null) - { + if (!TextUtils.isEmpty(entry.getPath())) { File f = new File(fileSystemSafeDir(entry.getPath())); dir = new File(String.format("%s/%s", getMusicDirectory(context).getPath(), entry.isDirectory() ? f.getPath() : f.getParent())); - } - else - { + } else { String artist = fileSystemSafe(entry.getArtist()); String album = fileSystemSafe(entry.getAlbum()); From acde5b9473284a8409b46ec40c15671974bc0181 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Sat, 10 Feb 2018 20:11:17 +0100 Subject: [PATCH 13/15] Fix wrong support for empty cover art url. Signed-off-by: Yahor Berdnikau --- .../java/org/moire/ultrasonic/domain/MusicDirectory.java | 3 +++ .../java/org/moire/ultrasonic/service/DownloadFile.java | 4 ++-- .../org/moire/ultrasonic/service/RESTMusicService.java | 3 ++- .../main/java/org/moire/ultrasonic/util/ImageLoader.java | 7 +++---- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/domain/MusicDirectory.java b/ultrasonic/src/main/java/org/moire/ultrasonic/domain/MusicDirectory.java index 5d3d4786..e0a72f6a 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/domain/MusicDirectory.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/domain/MusicDirectory.java @@ -18,6 +18,8 @@ */ package org.moire.ultrasonic.domain; +import android.support.annotation.NonNull; + import java.io.Serializable; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -352,6 +354,7 @@ public class MusicDirectory this.bitRate = bitRate; } + @NonNull public String getCoverArt() { return coverArt; diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/DownloadFile.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/DownloadFile.java index 9364fb2f..3c7d9ef4 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/DownloadFile.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/DownloadFile.java @@ -21,6 +21,7 @@ package org.moire.ultrasonic.service; import android.content.Context; import android.net.wifi.WifiManager; import android.os.PowerManager; +import android.text.TextUtils; import android.util.Log; import org.moire.ultrasonic.domain.MusicDirectory; @@ -457,8 +458,7 @@ public class DownloadFile { try { - if (song.getCoverArt() != null) - { + if (!TextUtils.isEmpty(song.getCoverArt())) { int size = Util.getMinDisplayMetric(context); musicService.getCoverArt(context, song, size, true, true, null); } diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java index d9c7ca7d..43b7c9e7 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java @@ -23,6 +23,7 @@ import android.graphics.Bitmap; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.StringRes; +import android.text.TextUtils; import android.util.Log; import org.moire.ultrasonic.R; @@ -654,7 +655,7 @@ public class RESTMusicService implements MusicService { Log.d(TAG, "Loading cover art for: " + entry); final String id = entry.getCoverArt(); - if (id == null || id.isEmpty()) { + if (TextUtils.isEmpty(id)) { return null; // Can't load } diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/util/ImageLoader.java b/ultrasonic/src/main/java/org/moire/ultrasonic/util/ImageLoader.java index 6391e66d..60fe1b49 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/util/ImageLoader.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/util/ImageLoader.java @@ -25,6 +25,7 @@ import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.TransitionDrawable; import android.os.Handler; +import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.ImageView; @@ -179,8 +180,7 @@ public class ImageLoader implements Runnable String coverArt = entry.getCoverArt(); - if (coverArt == null) - { + if (TextUtils.isEmpty(coverArt)) { setUnknownImage(view, large); return; } @@ -230,8 +230,7 @@ public class ImageLoader implements Runnable String coverArt = entry.getCoverArt(); - if (coverArt == null) - { + if (TextUtils.isEmpty(coverArt)) { return null; } From e85aa610ab4e15d037bbe5f7279cce4d5615c565 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Sat, 10 Feb 2018 20:15:53 +0100 Subject: [PATCH 14/15] Bump version to 2.2.2 for new release. Signed-off-by: Yahor Berdnikau --- dependencies.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index d9f4c9d2..212ef992 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,6 +1,6 @@ ext.versions = [ - versionCode : 62, - versionName : "2.2.1", + versionCode : 63, + versionName : "2.2.2", minSdk : 14, targetSdk : 22, From b080c628438ffeb10735c973cfbcb7b00debc78a Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Sun, 11 Feb 2018 22:44:53 +0100 Subject: [PATCH 15/15] Fix app doesn't handle right transcoded suffix. Signed-off-by: Yahor Berdnikau --- .../src/main/java/org/moire/ultrasonic/util/FileUtil.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/util/FileUtil.java b/ultrasonic/src/main/java/org/moire/ultrasonic/util/FileUtil.java index 2a64aa10..c306cbb7 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/util/FileUtil.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/util/FileUtil.java @@ -75,12 +75,9 @@ public class FileUtil } fileName.append(fileSystemSafe(song.getTitle())).append('.'); - if (song.getTranscodedSuffix() != null) - { + if (!TextUtils.isEmpty(song.getTranscodedSuffix())) { fileName.append(song.getTranscodedSuffix()); - } - else - { + } else { fileName.append(song.getSuffix()); }