From a512b55457c3fb6e013299cf75e1c70d707d2655 Mon Sep 17 00:00:00 2001 From: Mohit Date: Mon, 20 Jan 2020 09:17:28 +0530 Subject: [PATCH 01/24] Change package name --- opentasks/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opentasks/build.gradle b/opentasks/build.gradle index de5be192..4e0a5786 100644 --- a/opentasks/build.gradle +++ b/opentasks/build.gradle @@ -15,7 +15,7 @@ def gitCommitNo = { ref -> android { compileSdkVersion COMPILE_SDK_VERSION.toInteger() defaultConfig { - applicationId "org.dmfs.tasks" + applicationId "foundation.e.tasks" minSdkVersion MIN_SDK_VERSION.toInteger() targetSdkVersion TARGET_SDK_VERSION.toInteger() // spread version code to allow inserting versions if necessary -- GitLab From 6b0b9d6c2b86a7504e991919c8c85f49ca041d7f Mon Sep 17 00:00:00 2001 From: Mohit Date: Tue, 21 Jan 2020 15:48:01 +0530 Subject: [PATCH 02/24] Change app name --- opentasks/src/main/res/values-cs/strings.xml | 2 +- opentasks/src/main/res/values-cy/strings.xml | 2 +- opentasks/src/main/res/values-da/strings.xml | 2 +- opentasks/src/main/res/values-de/strings.xml | 2 +- opentasks/src/main/res/values-es/strings.xml | 2 +- opentasks/src/main/res/values-fr/strings.xml | 2 +- opentasks/src/main/res/values-hu/strings.xml | 2 +- opentasks/src/main/res/values-it/strings.xml | 2 +- opentasks/src/main/res/values-ja/strings.xml | 2 +- opentasks/src/main/res/values-nl/strings.xml | 2 +- opentasks/src/main/res/values-pl/strings.xml | 2 +- opentasks/src/main/res/values-pt-rPT/strings.xml | 2 +- opentasks/src/main/res/values-pt-rbr/strings.xml | 2 +- opentasks/src/main/res/values-ru/strings.xml | 2 +- opentasks/src/main/res/values-sk/strings.xml | 2 +- opentasks/src/main/res/values-sr/strings.xml | 2 +- opentasks/src/main/res/values-sv-rSE/strings.xml | 2 +- opentasks/src/main/res/values-uk/strings.xml | 2 +- opentasks/src/main/res/values-zh-rCN/strings.xml | 2 +- opentasks/src/main/res/values/strings.xml | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) diff --git a/opentasks/src/main/res/values-cs/strings.xml b/opentasks/src/main/res/values-cs/strings.xml index 57e7b52a..20c45971 100644 --- a/opentasks/src/main/res/values-cs/strings.xml +++ b/opentasks/src/main/res/values-cs/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Přidat úkol diff --git a/opentasks/src/main/res/values-cy/strings.xml b/opentasks/src/main/res/values-cy/strings.xml index 6c663366..5133a3a0 100644 --- a/opentasks/src/main/res/values-cy/strings.xml +++ b/opentasks/src/main/res/values-cy/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Ychwanegu tasg diff --git a/opentasks/src/main/res/values-da/strings.xml b/opentasks/src/main/res/values-da/strings.xml index 64b5cb74..a3636706 100644 --- a/opentasks/src/main/res/values-da/strings.xml +++ b/opentasks/src/main/res/values-da/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Tilføj opgave diff --git a/opentasks/src/main/res/values-de/strings.xml b/opentasks/src/main/res/values-de/strings.xml index e6f1b7dd..63c9a71e 100644 --- a/opentasks/src/main/res/values-de/strings.xml +++ b/opentasks/src/main/res/values-de/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Neue Aufgabe diff --git a/opentasks/src/main/res/values-es/strings.xml b/opentasks/src/main/res/values-es/strings.xml index 10e74052..d4a8fb93 100644 --- a/opentasks/src/main/res/values-es/strings.xml +++ b/opentasks/src/main/res/values-es/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Añadir tarea diff --git a/opentasks/src/main/res/values-fr/strings.xml b/opentasks/src/main/res/values-fr/strings.xml index 2d0fcabf..6351fce6 100644 --- a/opentasks/src/main/res/values-fr/strings.xml +++ b/opentasks/src/main/res/values-fr/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Ajouter une tâche diff --git a/opentasks/src/main/res/values-hu/strings.xml b/opentasks/src/main/res/values-hu/strings.xml index edd5085f..4749f156 100644 --- a/opentasks/src/main/res/values-hu/strings.xml +++ b/opentasks/src/main/res/values-hu/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Feladat hozzáadása diff --git a/opentasks/src/main/res/values-it/strings.xml b/opentasks/src/main/res/values-it/strings.xml index f2498c29..50d52d7d 100644 --- a/opentasks/src/main/res/values-it/strings.xml +++ b/opentasks/src/main/res/values-it/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Aggiungi avvitià diff --git a/opentasks/src/main/res/values-ja/strings.xml b/opentasks/src/main/res/values-ja/strings.xml index a6d30ec8..fda5a41c 100644 --- a/opentasks/src/main/res/values-ja/strings.xml +++ b/opentasks/src/main/res/values-ja/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks すべてのタスク diff --git a/opentasks/src/main/res/values-nl/strings.xml b/opentasks/src/main/res/values-nl/strings.xml index 1985cf21..7546860f 100644 --- a/opentasks/src/main/res/values-nl/strings.xml +++ b/opentasks/src/main/res/values-nl/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Voeg taak toe diff --git a/opentasks/src/main/res/values-pl/strings.xml b/opentasks/src/main/res/values-pl/strings.xml index 9b54738c..b5f7cd4b 100644 --- a/opentasks/src/main/res/values-pl/strings.xml +++ b/opentasks/src/main/res/values-pl/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Dodaj zadanie diff --git a/opentasks/src/main/res/values-pt-rPT/strings.xml b/opentasks/src/main/res/values-pt-rPT/strings.xml index 686cd8ba..62f213d6 100644 --- a/opentasks/src/main/res/values-pt-rPT/strings.xml +++ b/opentasks/src/main/res/values-pt-rPT/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Adicionar tarefa diff --git a/opentasks/src/main/res/values-pt-rbr/strings.xml b/opentasks/src/main/res/values-pt-rbr/strings.xml index 6a2239d6..66801e8b 100644 --- a/opentasks/src/main/res/values-pt-rbr/strings.xml +++ b/opentasks/src/main/res/values-pt-rbr/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Adicionar tarefa diff --git a/opentasks/src/main/res/values-ru/strings.xml b/opentasks/src/main/res/values-ru/strings.xml index e07f9c5f..a37d51b1 100644 --- a/opentasks/src/main/res/values-ru/strings.xml +++ b/opentasks/src/main/res/values-ru/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Добавить задачу diff --git a/opentasks/src/main/res/values-sk/strings.xml b/opentasks/src/main/res/values-sk/strings.xml index 1860a18d..b215d9e1 100644 --- a/opentasks/src/main/res/values-sk/strings.xml +++ b/opentasks/src/main/res/values-sk/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Pridať úlohu diff --git a/opentasks/src/main/res/values-sr/strings.xml b/opentasks/src/main/res/values-sr/strings.xml index 0aa80a2a..774ec785 100644 --- a/opentasks/src/main/res/values-sr/strings.xml +++ b/opentasks/src/main/res/values-sr/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Додај задатак diff --git a/opentasks/src/main/res/values-sv-rSE/strings.xml b/opentasks/src/main/res/values-sv-rSE/strings.xml index 108a1970..e33901d0 100644 --- a/opentasks/src/main/res/values-sv-rSE/strings.xml +++ b/opentasks/src/main/res/values-sv-rSE/strings.xml @@ -16,7 +16,7 @@ --> - OpenTasks + Tasks Lägg till %1s skapad. %1s borttagen. diff --git a/opentasks/src/main/res/values-uk/strings.xml b/opentasks/src/main/res/values-uk/strings.xml index b3254bed..86e39d00 100644 --- a/opentasks/src/main/res/values-uk/strings.xml +++ b/opentasks/src/main/res/values-uk/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Додати завдання diff --git a/opentasks/src/main/res/values-zh-rCN/strings.xml b/opentasks/src/main/res/values-zh-rCN/strings.xml index 8a9997a4..52cfced6 100644 --- a/opentasks/src/main/res/values-zh-rCN/strings.xml +++ b/opentasks/src/main/res/values-zh-rCN/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks 添加任务 diff --git a/opentasks/src/main/res/values/strings.xml b/opentasks/src/main/res/values/strings.xml index 4821a104..aeaa7dff 100644 --- a/opentasks/src/main/res/values/strings.xml +++ b/opentasks/src/main/res/values/strings.xml @@ -2,7 +2,7 @@ - OpenTasks + Tasks Add task -- GitLab From 9770c3361130d22fcde792ffe3c42050a90f7b0d Mon Sep 17 00:00:00 2001 From: Mohit Mali Date: Tue, 21 Jan 2020 10:50:31 +0000 Subject: [PATCH 03/24] Set /e/ Tasks icon --- opentasks/src/main/AndroidManifest.xml | 1 - .../res/mipmap-anydpi-v26/ic_launcher.xml | 4 ---- .../mipmap-anydpi-v26/ic_launcher_round.xml | 4 ---- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2897 -> 2088 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 4414 -> 0 bytes .../src/main/res/mipmap-ldpi/ic_launcher.png | Bin 1410 -> 931 bytes .../res/mipmap-ldpi/ic_launcher_round.png | Bin 2048 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1812 -> 931 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 2771 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3830 -> 2644 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 6341 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 6112 -> 5207 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 10183 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 8494 -> 5974 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 14287 -> 0 bytes 15 files changed, 9 deletions(-) delete mode 100644 opentasks/src/main/res/mipmap-anydpi-v26/ic_launcher.xml delete mode 100644 opentasks/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml delete mode 100644 opentasks/src/main/res/mipmap-hdpi/ic_launcher_round.png delete mode 100644 opentasks/src/main/res/mipmap-ldpi/ic_launcher_round.png delete mode 100644 opentasks/src/main/res/mipmap-mdpi/ic_launcher_round.png delete mode 100644 opentasks/src/main/res/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 opentasks/src/main/res/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 opentasks/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/opentasks/src/main/AndroidManifest.xml b/opentasks/src/main/AndroidManifest.xml index ce40af08..3ac61a91 100644 --- a/opentasks/src/main/AndroidManifest.xml +++ b/opentasks/src/main/AndroidManifest.xml @@ -21,7 +21,6 @@ android:name=".TasksApplication" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" - android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="false" android:taskAffinity="org.dmfs.tasks.TaskListActivity" android:theme="@style/OpenTasksAppTheme"> diff --git a/opentasks/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/opentasks/src/main/res/mipmap-anydpi-v26/ic_launcher.xml deleted file mode 100644 index 19f8f2e0..00000000 --- a/opentasks/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/opentasks/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/opentasks/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index 19f8f2e0..00000000 --- a/opentasks/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/opentasks/src/main/res/mipmap-hdpi/ic_launcher.png b/opentasks/src/main/res/mipmap-hdpi/ic_launcher.png index 46751c7095abf7c764b96627ae7370061d8e5c20..0844fb5de5c06a69de8516df1039099c84180b36 100644 GIT binary patch delta 2076 zcmca8wnAWnay|QdPZ!6KinzCPs&j%vWsdKEey{AV#04WcY34R1X-Q#LCcCr{p{X-6 zSj>+2Byw8)`yi_NtNjSOPY9330v|JZ5oQ&_k)^ z)93qI7PZGK2;Z(zx%oGQeNsh3lh%8ur}ei~|I2)nV7+>Gf!+GM&Qrt#I2-;LPx-BU z&-{zSjrZKuy`Osi*f)B(-tywK>(g(2 zxijxv$lZBf`NHlRrJ0Y!6YDSDe_2~~fPrbrh3W2$`WjjqORIG}r}@9#*14QRvFh5b z<2{@&cIoOKy_%P|(_P`QDwmzqQ$`*Qk8Umn3q`?~Hz%&F+`Xvw7>7gf_N~?|`#%(w zT7T#0{=yy0#;`<{U2EYK?vgdqc7NEm|1)l9Oe#3H^XOLJxK9lpnL+VCPdYTzN4WfS zc$p?tuzx|j2%Ee9UERc!4%9jZ_C-Ocs2@;C3h zKYb0)q$O8nM5IbfnHO_p=KY#*a(CpTX^c7VA*)*$x_B5cFFw*cYZ4okE}9usJfq= z;h>Z0T`{pozgW)tuIDEohrQ1xiYSQOpWO4+FTZ=b%IpRuM#n|IM}Dp9W?STU`IlQ- zNhhN~J!j<8T`o3%<2}n+Yd8Wpop*=`2xO+@S^%unOv$K3QPD}bc zMRkL~(){TY1h?D|?Q}2Ml%!xGa7NaYH@iq&>FzUwIKEFEbz6Q|9T1k2G_zhKBfm8> z{$3rIs{8gfSH5Or?OY)=5?OC%3&w5D*ehN$M3)Ho%8(g ztWNqF|F*eD_C8I`_*QAzUj#P z{iBv~$DFwWM+3U`4;5XyzRQt8#(jcWl0lBy>RD$^Rwb@~pYI_0{B>ackK3~?9%o+^|G{%N zsGlu!Myh~V|8B|nt^Xtqqt1HH?=#)$+O_6i{9}WE42DWPm)g_oj!m8_-|m=H+N*JU z`6<=@u$PxV{z_5PuCBLO{gJcdWJJ9H^NoP*;`(#%wEA6Kex6H8#w;p#XPIX}*xw}E z)y_Qd{|_4@zI#%7Ykft0UO(rY8my|mA_+sAlv;*lrUeh5zsdpALG<)*0F z+XW;&`AR1`*6YS~)I0e2H>o6~KX%+x{fuFq?5x(*o5coNC*@WZ3t2W@NqTIgTQ4b5 zFR0>gtbhKOg75^J*&b8+lI+(Q7%QLXQHbrFIe~ZcgQU|()-|6A)Tx`!D6Q}L{X)Z= zUc-2u`xBXWn_jK3ed!(R@s67#qU@1y&8-rTyzVNn-&D)k4`Q@5`B_u9aM z@3g|26Z6`SCa0ggH>*lgja@ct{n2&LxR!h}6X`wc9(L*jheKW9fmM@t2VC2r?-Q1D z@KEt=8)ZQt)plhnR`O}*q$EAt~EjjEm9_A?V9z`;i#HS;e57e zW|6l^i$gR080Ds<9#x%Icp|JmK_+kg(Z|QPEk1Nt;9$G!xl?bPMEZkMr#2i@?4A?l z&;3k3u3yW4Gh63D&B>{z!7Gb}?tWYO(d6Ml<>-K`rDD!HnibDh?cP{%XYGat^Iqqr zY7+ylKXs{emo=K)p4gVmwB|^XRQtj!HVn0f#oA5=s&4U3>a%7?IvGFs@KcVvx_;Zt zqj&g3t(%^_4S3eJ>qf&9-qL5&&PX&|(Vh8h*}WMJQ+)S6+xB5agVXIpH!nXs$n-E> zq*Yeu0K-Z5;GWFbhZc^jgev(q%n!*f&WgZxPd^{^Ku&uA5b!d0ZHx_KeY+ zi?b?_UFYTQ$Y+AFT)dwrZ1=W(;@i8-#a``$sJvB;-}mSUKNbcC1_n=8KbLh*2~7Z{ Cbk?r` delta 2891 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 diff --git a/opentasks/src/main/res/mipmap-hdpi/ic_launcher_round.png b/opentasks/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 4214582c6907be9a234b6c6a4337c40c21d8b546..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4414 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 Sa0vqg1B0ilpUXO@geCw2m1oHS diff --git a/opentasks/src/main/res/mipmap-ldpi/ic_launcher.png b/opentasks/src/main/res/mipmap-ldpi/ic_launcher.png index 92a4b45041da17117a616990d0289ee4099d6019..65bf9c8b12371bf1ceb303397ddc9c8018ccb952 100644 GIT binary patch literal 931 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?FZ9(RbGt zj;95XBvj*DgVEJ^z*&y=XdASXWf1qcY|&B-MiJd-+%wJ^ZWNb=LL!E`DQw#>ST%SH9`+ z?Bk9+r<#<-#&pD7sYFyPBtFz&6-ycO{EGsYDjYZ?1Dn<*c{K@S)Y`n4;K<{bUaRi& zm~mF|B$aky#RGTwG#-iM-ki68GbC>cTG}R>@hj+XtIvIs z^S!QZpWBn@r+NCuLISQF1;07vH>-ZU7Q-|_b;7rq71LFY&AcVRzeDZUgMZ%(Cnars zRu`%DCfqA!)`6+~doTDOG?KFj;yXLsSKO;f(kl4<|vS1HVubI6{$ zzvS?rD3ymQc5gm39k{L%eqqUMhDF-)H~kJh{~&Z)J$9m`BZF<=LdA!xzc)2-&hDCY zNrP#|yxRMJE(FzZd3~y|OpH`sp#5z#i^*rMwW?oND`@WMmD;o>DTOb^S>xiNuxrek z8n48!Cj~q!Z!UPk!gKY$!E~v+tChIdyDhx(K5QvlFzeYzRXkqqS3@0EoYHRMOlOyt z<5+)W!IAas@&#oxR?F@9`jYd`pFbj6#g!apcLS&2HGJkBm)p2~;nUW>+^-BPdov3J zZzg_;)yRLLw8p#0F=%3T>w}rQ1>(97ZnXHo*cf#$=c_|Wtz_S?TUS_Ig*Iy^mdfke zdmg;Jw6M5Upvg%njF*$uma%@<GH*1`vbpY0%phaJwEp> z$993)&rMMptWg>(&0fdJCG0zRu%??+ImJF!%6QuhkIDR;2KUokg?!9+O?|n4U3%gN s-PQe48Y(mDZaD8ga^}=yvwB9w*+P@!R;;?gz`(%Z>FVdQ&MBb@0Ktu?LjV8( literal 1410 zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4mJh`hKCF@W-u@?uoOFahH!9jaMW<5bTBY5 za29w(7Bes~9R*>=&TIAW85kHOOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3 zkz!zA`S0oC7!uL?c6x5c)KHlN_0M;fhksu*d)v{RS4MAnm9}o5$vw;Upxx4E*_$r} zeOt)1a7Asf$f8CemRbWxUQ-<%p5zB}@(!Od^iht#v_v9Aq}F5Z-M4w)EuY_Sf4=j( z-TKd2b)0|V`JP+qpSRrqx!(GG>+MhW!lGBd|G3wmo_)oZA;V)pdPk8`fDOI#F}>9%zY*phpcapBh9 zlPhBuEm*X5>h($6FH59_hcsPFZkGJGvsY9`eEW|DG4+}~;tM{Vzh~N$82PruZ(UaE z={rBKw}0}ubo)Zo;v?Bo?~lp7l{i?fH{UXMc53jeo4YeqJx@PcdrU3h!?%~h3l?qa ziB~dt@{`jqWT$}=)2(O!E^)a??|5DGvAijRVG?;^7~Z#t4sIEx1Pxe45(YaP3PqAKK1z=O%jKv z?fjgXThX;Cq)R_8C($vqmpS#e&dRyx<~5|KtC8%cd_4s@b`tm38V>ot10T&mR)KXuv7X_VmYv7b}>>lustKbGkSyc8R>+Z|$a) zxbfG;%E}e%r|t96n)qdAW^g#W^uD)zhc)I{%`SZva`J}5Es2db6Q4E*B}{S6jyG4{ zwruM{!G=qdrsN;|HqVd!SXbl8sX1n!viN7}%$HzRGk(;v%TuLd^Zxd^>c5@3b6>q$ zu=e?c&1-}vNJubvH?DQemUljpqImYn{JAaWx|V(A@|jEihR8GR`86YX-`QB%n!lGT zx0&jfZPEO2uQRUh>=MVwM2V1;xKE5XqZTiEr!FXvm}TU8eUVsN*!2w`8rv(%?(4br zJiB#4fW6M<^uz0M=|z#1|MounEw?1|yBV92^F@O&2@NIwpNH+Hv%L~hm5JQaHS?+| z!xg_ZPcCc<|M8&2{ZZQTrBC}_IU8{4JiY92Vr8hpDS?IS zQe@n14J>CynRdPt&DQW=x>X zmF-*4e%$}BVbYTNJVPn2P7dkkXOa(JJ}-J$PW!ETRp#s0r6x~&naz2Yh)DnL-?(wL z^8K>86K^bGZ{-N$(&3)u>7jC{c&h08D}_b*rM%YD*QM1M8Q7jGck*?0yS?V6&55O7 zt{PN0bTMVESoQG1(an9wt7{f-sN7?0eO`<=_}!yR=bP(h%r?C_?|yybL6eS!6~?SS zS&@E{%*!kk3UcC28UJ}&mpke7bhUAwlYJa~ZTd=Yw)THLe)9zM1kSVNR+NdI|7Sdb&Z>IVTo0so0 zv>aR#Z;PGU+ioMD{?qQih7Zqw{*8J&G;$4 YK7Ccvwf6Vv3=9kmp00i_>zopr03{xhy8r+H diff --git a/opentasks/src/main/res/mipmap-ldpi/ic_launcher_round.png b/opentasks/src/main/res/mipmap-ldpi/ic_launcher_round.png deleted file mode 100644 index ee24d0262a8f38da9ec6294b253bbd0829e01247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2048 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 YA~iQ^H@i$U0|Nttr>mdKI;Vst0ELTktpET3 diff --git a/opentasks/src/main/res/mipmap-mdpi/ic_launcher_round.png b/opentasks/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index 0b26333447fd82270eb12fc88dda8e69e8fff502..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2771 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 diff --git a/opentasks/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/opentasks/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index e85e93c0151382c9f06dfd7d202e8b1cb8b42fde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6341 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 diff --git a/opentasks/src/main/res/mipmap-xxhdpi/ic_launcher.png b/opentasks/src/main/res/mipmap-xxhdpi/ic_launcher.png index e011f6cb37223dbb03473159e06d2ee0efe2a1dd..bf42e0e1b9613fd4ab4f2da803991445f5601435 100644 GIT binary patch literal 5207 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 diff --git a/opentasks/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/opentasks/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index e31ed7381464cf70c8cf29bbfa7477555f220395..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10183 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 diff --git a/opentasks/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/opentasks/src/main/res/mipmap-xxxhdpi/ic_launcher.png index e70bac25cc7bfc8e592b29088b7128f3fd1c8bd5..7a706a717600d1a78c3a0d5384b64a166f48a64e 100644 GIT binary patch literal 5974 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 PK?%{*)z4*}Q$iB}fUK~e literal 8494 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 z zaQygxHRGR*4FXMPr}sWsR(xOIN2!!yZB@q~bvIEddtLrd;tQI+dKf1O+_OBM{c4Ml z%%|dI6Y3w{-0^tR)`d@|OGMiAu!pU4JFD2+E25O){m=hT?z-0+)cBD$|Mg6?HSFcKi`i?r#71V3p}i7XgpDj)QrE zPo@`CHI>&dc+{d=LJ47x6W{QIRE%fq3hx+^)GpT6=e z``JW!jfo6R9rK<&t(>F%Z>hkie4FGzJxGxKzS_7^sby~ax8$SY?~i_utCT#wJ(o}B z!#pDk_Vagttn8Z<-z3m>PUQ}O|Ab;-vDcb{6KJ8LCdi(Pi-um9n zep08tR!wRUYO-FxN2+$K)xI5{k9#%keRe>QG4rf2!&G(qfJJf&dQQhh6W95j)|vy2 zol~YOem2eF2rzE2EPf+DTm0E8AMQlHwFiAqPifqE-St(M>?@|9>9=hh-W=R={dTh9 z?c?{kIBu7uZG1BQLuZ5L6GIIH3x6|T0$5`UTGhI*em)MFZ^*iO{ z_fIb{`fyt9|26F{_5DXW{$ASi_5M#OpCn&p;EpqjlCEAC zg_v^u1y_pvY;3x-K;?m&$RoMXs5(8@11_icuVn$H7o(og_ZHHSmcbw30*g5OuU;7;jV8=%|nrB?&Tx-_aU0?J#;8FD{_qtB4N%2jf_>O3o zp1$|`W5FN=_MeU?y8p2LS+dlmaSz9ywX34f-Me4%?BBg5@1CdN!6K??A5hB3aO23Mc9Bwl;iJ1;MCR<8 zGbM8(ucJ?~YuZ%d7$aXhlL)(Ih9}-eDt=-P6>HdYvDfb7{}<8>%nVxMOb$Mmj(qUh z;_dDG@52(aSKi_EaoH6sR|mLqe6X2%OS!3QqWp?Y3@RL%oez4G56OBlD6+`?IlNqL zzj^)<_PH59V?8aGvT~hL+h1d})kj(J{&tN|;tN_|aXNf8x8C?lPH=@S!-IFMR+m0a zKk??IO4-t{)7AQI^h@j)^jtXnZj$_pMGOrIf(#DxllVN(oi@>&qA~e|s)$B1`}M~6 z7rr{aDhgVr`qM8kGw^=rq_FBoxnH$?>K3eG;$UU3s%kjsxLf_hnTV`U+x>$-djto$ zZ8j>r5jfjE&wskmRS|~>l@&bg?^Y(?%v}EXt~#IU{23l4{mL8y*US9x-g2F37Px%t z$^+LAG3&p%-92~xdtp}NTSAS(4D9DCR!co$U!}#sd3Ddkj}CJl?wKt1;A5$@;qvY4 zcV9PmHn^Ab=u-Q($2aZwFa@w32;g|%-C8z3Cg~HiYP^snNB;G*SFXiR-p}#n`s<1> zt9&i~U%AYB|7z+ytv!2lPoCrt31krJ6WAdvR(0>>@{CX7Ebc7%mS^vOF3Q(`V5_74 zvr&tiVMD%M&L{l?kF!mGcDE=uZJ&2<*LQ|hUUdsTF$w%XXI;rCC%;pyxT<=0we4nx zzhAB7WOs(maAsKLQ@7w1lY-gL>oJQ@-gg8!pyaHn#s4eYcM5l@?JsNoRrukC;hg<% zxgQ%8pDHr)}Z;tnp_{Jyj*=GJig!_-)zQ8K~EK2LwRWN!HvM20s zUig>J=eit}#%ZJ)npknUiO<^soC0fg7Rd@-yxzUtgstG(ol3)Wt-bOp8x^UEHXchTHMVGiT=1*!K`lGph0d`Mn2i)li^9@~tG^CKfH(&gsu zePuPL=+2#Warb-<&Ohc>c<^uZ$Nla68W$IAYj*7AC=KBK#2h-GgZYlGee$e7tO*$j z0XFCUwg|sf|KP~k(Y#xHg}~27EiQ+zA5Z`Pw(Wz3@4rO`CI%g{(sq5WpZ&{b&v`4u zbFS{^2~gtGnj;zC*INAS(aqA?CO^54TsWXmwr0Ov_p|vd=?VdfpO~kLH~dgPBj@|i zFCimAz&`049;KU zYF>SGk9x?z>izxH`Ai>UyEy9_cHHYfVN|5#Ja0+Srr@KxUPs)HKL0HJ_rSwu#^)(J zrtwVzl`n6kzcxFsXI{Mcz>_J~LMB~*HtTLX{`Ic%rJDA6o_b#kJ6tMl7Jc8-H36hp zMMJRPk&$uPvYb!uEzZ+B|9B=fUGghxJ@%Yss&K)BtiNyhuOwI;uw@Jb6?h^J5e9b( zn-3T=`S>#`9NcK0s#Je`k=5Z-9zW(DYPuKl>2il+DknHwHpH_uSj;nK=((jdVeQna zzSTV!nuR9sZ`Q5fZSww2KI=*TkWhw(XqHbB8(bL@cD?j3?sMih`FVLs=#)PWQ&|~y zMAwTpGatCYVqj|Pd}98lIg3uN?_<6d>pf`;-=bSg6F7FwZ2tSGeb%|kyQ}hkPL2nO zFTN$5_}1V8|Cbx<)vrG3k90q?Mbe=zVHr0=K{tcL%99ID-Y+~;!^q&o^3}@Am(BOz zx`Z+gh7aFaQk9z3>aQCZvmGqFcwgZE>{ADJ+)lah{G9C|CVhJEnLQWpf8gm^cv8MBLg*7S!^0Yr_eP)JGwN)!e{aO?xR~+F z4Y37k^&b*DPw+Ds+DF&9hE5xGmn>9WvRzIx4K7@7IkR#T*Y~ZzUDKV$@()lxZpW_i5ho zDxcG*mfzu9c#-|e)Oik*_x}YM$7s7O^`m(G{~b>x9f~tkFLO2g{>I8K1WApQe&&*-+3oZ}H-OznbSa?=u(dXj70=bGasWVBMBuZ{r#mA6z>h z_ox5Zk1H<6Hd*((#h-Rvb#lI~uDZ!F_2X;j@BQ(fA*U};&w^c{`6qLSy6rO7%v^U4 zgZ2gIjSehd`Sa7gWZU$;U;B?aJXYEqwmK|5VD-Vu=LG^LKOZlB+OqGYreA#Z-}%Sn ztKPUTn5@Qg_)thc=bKc4^DDHQ85|mRiu@I0O%~bXHv9blPfPcyrb}(Ddb>AmZ=9{* z1_r^5PshDaGqx0e@%J%G{y#DLc;4RcegavIQEFMH!jo;q3VbH*U(Gb(Kc~U`giA|a zB(r1$E%00RKm9wmEw}&O+qWE#Vu!0KPz7MRY;j{?JrqX`jWRm*2*`1lzn=R9IRJAY5b=Oc&v|4FpW zTF}PXZ0hfx%&EAvezWQPd2DAG&gUt8dOq>lzXRuw&QLm~t7~oXd~(aj<~h;7 z*DPLaZ&Ls9RC4h7zYq8sHae`}OfpIIF-?^4m3f=V^xKy~EQ;yG749dB3_s_0y`3Uu z5P7&Tjdxlo`|H(>(WV7)%rhA8IWziQR6hUok-h$-Z&_2sj(lAu)0bJ$U@#$*Er7da zhC*8=f6eTQ#c52nY9D5C{$_lu;mEIWI-r`7Yfh4dQo{CV2DW6udOy{4Vh7?1Hpb2R;#6F4!v z%VBa|Sd)XIy#+@qL*jzTVjLTfEV#ab>BRh-UovBz>^@Yqgb12w_L=iWOk+H!DPep- z+KFL~@Nt$)y8m;UYc|c4y~V(1bkKo=d8ruB;X@B+v0jPf_&L?+lCu9L*3Jfo<$(!@ z7<9TGKecImt6Ai-;H15`;z@piLk=A5OL^LP*(7{+Sl6q2&bR*A_^0!^XrofwWex*h z#%|?p&-@q|80Lf40x*cNN*v^D&}CpOjZc2&#G9_x(tShj6zfY~zApw3%Hu9Q_p4hl zW7_rXOBF{QS|og|=Vo3ypLJrzIjQZQ@>>)i)az+Xs!4R>@VY$XE{9U(!Xwi)W;F!r z`T5rIiUuw`+q!ncD;3VguP!CcnA@RL<~~idY<9)nb@7X3R$P#Z;>87exgPvy?D?Wu VBphaC%fP_E;OXk;vd$@?2>>L=>xuvX diff --git a/opentasks/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/opentasks/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index 36a2915f78677696c6f1300f48bb70c7958e60d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14287 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 a&z!Z;m!)S8(^&=v1_n=8KbLh*2~7ZZRv(=J -- GitLab From e33fb97af34d3714ee0cb6ca85a3cea9ee9d8adc Mon Sep 17 00:00:00 2001 From: Mohit Date: Tue, 21 Jan 2020 16:48:18 +0530 Subject: [PATCH 04/24] add ci --- opentasks/.gitlab-ci.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 opentasks/.gitlab-ci.yml diff --git a/opentasks/.gitlab-ci.yml b/opentasks/.gitlab-ci.yml new file mode 100644 index 00000000..4dd21c74 --- /dev/null +++ b/opentasks/.gitlab-ci.yml @@ -0,0 +1,29 @@ +image: "registry.gitlab.e.foundation:5000/e/apps/docker-android-apps-cicd:latest" + +stages: + - build + +variables: + GRADLE_VERSION: "gradle-5.4.1" + GIT_SUBMODULE_STRATEGY: "recursive" + +before_script: + - export GRADLE_USER_HOME=$(pwd)/.gradle + - curl -sL https://services.gradle.org/distributions/${GRADLE_VERSION}-bin.zip -o /gradle.zip + - unzip /gradle.zip -d /gradle + - PATH="$PATH:/gradle/${GRADLE_VERSION}/bin" + - JAVA_TOOL_OPTIONS="${JAVA_TOOL_OPTIONS} -Dfile.encoding=UTF8" + - gradle dependencies + +cache: + key: ${CI_PROJECT_ID} + paths: + - .gradle/ + +build: + stage: build + script: + - gradle build + artifacts: + paths: + - build/outputs/apk -- GitLab From 12e7eab95ba0f3068092db022f014cc495f3dfdf Mon Sep 17 00:00:00 2001 From: Mohit Date: Tue, 21 Jan 2020 16:51:24 +0530 Subject: [PATCH 05/24] add ci --- opentasks/.gitlab-ci.yml => .gitlab-ci.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename opentasks/.gitlab-ci.yml => .gitlab-ci.yml (100%) diff --git a/opentasks/.gitlab-ci.yml b/.gitlab-ci.yml similarity index 100% rename from opentasks/.gitlab-ci.yml rename to .gitlab-ci.yml -- GitLab From cb6d9d2fe2504f19018e34145a364ffbea7032c6 Mon Sep 17 00:00:00 2001 From: Mohit Date: Tue, 21 Jan 2020 16:55:05 +0530 Subject: [PATCH 06/24] add ci --- opentasks/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opentasks/build.gradle b/opentasks/build.gradle index 4e0a5786..6f983605 100644 --- a/opentasks/build.gradle +++ b/opentasks/build.gradle @@ -19,7 +19,7 @@ android { minSdkVersion MIN_SDK_VERSION.toInteger() targetSdkVersion TARGET_SDK_VERSION.toInteger() // spread version code to allow inserting versions if necessary - versionCode gitCommitNo('refs/remotes/origin/master') * 99 + gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) + versionCode gitCommitNo('remotes/origin/master') * 99 + gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) versionName version testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } -- GitLab From 64141e314b2f158a79be01d9fde6ffcb5659792e Mon Sep 17 00:00:00 2001 From: Mohit Date: Tue, 21 Jan 2020 17:01:59 +0530 Subject: [PATCH 07/24] add ci --- opentasks/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opentasks/build.gradle b/opentasks/build.gradle index 6f983605..4e0a5786 100644 --- a/opentasks/build.gradle +++ b/opentasks/build.gradle @@ -19,7 +19,7 @@ android { minSdkVersion MIN_SDK_VERSION.toInteger() targetSdkVersion TARGET_SDK_VERSION.toInteger() // spread version code to allow inserting versions if necessary - versionCode gitCommitNo('remotes/origin/master') * 99 + gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) + versionCode gitCommitNo('refs/remotes/origin/master') * 99 + gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) versionName version testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } -- GitLab From 0df1c1dc01d705b00dfb79d66918913d2f0f9ff7 Mon Sep 17 00:00:00 2001 From: Mohit Date: Tue, 21 Jan 2020 17:09:08 +0530 Subject: [PATCH 08/24] add ci --- opentasks/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opentasks/build.gradle b/opentasks/build.gradle index 4e0a5786..50d5be91 100644 --- a/opentasks/build.gradle +++ b/opentasks/build.gradle @@ -19,7 +19,7 @@ android { minSdkVersion MIN_SDK_VERSION.toInteger() targetSdkVersion TARGET_SDK_VERSION.toInteger() // spread version code to allow inserting versions if necessary - versionCode gitCommitNo('refs/remotes/origin/master') * 99 + gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) + versionCode gitCommitNo('refs/remotes/origin/add_ci') * 99 + gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) versionName version testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } -- GitLab From 8c23c63a1d55146d5708fd7174dff87fac0d9002 Mon Sep 17 00:00:00 2001 From: Romain Hunault Date: Tue, 21 Jan 2020 10:56:37 +0000 Subject: [PATCH 09/24] Setup CI (cherry picked from commit 6b0932912e3a76a4653ee327db9b1bfd0b308762) --- .gitlab-ci.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..cfde3129 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,29 @@ +image: "registry.gitlab.e.foundation:5000/e/apps/docker-android-apps-cicd:latest" + +stages: +- build + +variables: + GRADLE_VERSION: "gradle-5.4.1" + GIT_SUBMODULE_STRATEGY: "recursive" + +before_script: +- export GRADLE_USER_HOME=$(pwd)/.gradle +- curl -sL https://services.gradle.org/distributions/${GRADLE_VERSION}-bin.zip -o /gradle.zip +- unzip /gradle.zip -d /gradle +- PATH="$PATH:/gradle/${GRADLE_VERSION}/bin" +- JAVA_TOOL_OPTIONS="${JAVA_TOOL_OPTIONS} -Dfile.encoding=UTF8" +- gradle dependencies + +cache: + key: ${CI_PROJECT_ID} + paths: + - .gradle/ + +build: + stage: build + script: + - gradle build + artifacts: + paths: + - build/outputs/apk -- GitLab From 98b822417f2aa15dd20be8a9cc178cc98401d4cb Mon Sep 17 00:00:00 2001 From: Mohit Date: Wed, 22 Jan 2020 08:28:44 +0530 Subject: [PATCH 10/24] add ci --- .gitlab-ci.yml | 21 ++++++++++----------- opentasks/build.gradle | 2 +- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4dd21c74..2c3cae21 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,17 +3,10 @@ image: "registry.gitlab.e.foundation:5000/e/apps/docker-android-apps-cicd:latest stages: - build -variables: - GRADLE_VERSION: "gradle-5.4.1" - GIT_SUBMODULE_STRATEGY: "recursive" - before_script: - export GRADLE_USER_HOME=$(pwd)/.gradle - - curl -sL https://services.gradle.org/distributions/${GRADLE_VERSION}-bin.zip -o /gradle.zip - - unzip /gradle.zip -d /gradle - - PATH="$PATH:/gradle/${GRADLE_VERSION}/bin" - - JAVA_TOOL_OPTIONS="${JAVA_TOOL_OPTIONS} -Dfile.encoding=UTF8" - - gradle dependencies + - chmod +x ./gradlew + - ./gradlew clean cache: key: ${CI_PROJECT_ID} @@ -23,7 +16,13 @@ cache: build: stage: build script: - - gradle build + - | + ./gradlew assemble + retval=$? + if [$retval -ne 0]; then + echo "error on building, exit code: "$retval + exit $retval + fi artifacts: paths: - - build/outputs/apk + - app/build/outputs/ diff --git a/opentasks/build.gradle b/opentasks/build.gradle index 50d5be91..4e0a5786 100644 --- a/opentasks/build.gradle +++ b/opentasks/build.gradle @@ -19,7 +19,7 @@ android { minSdkVersion MIN_SDK_VERSION.toInteger() targetSdkVersion TARGET_SDK_VERSION.toInteger() // spread version code to allow inserting versions if necessary - versionCode gitCommitNo('refs/remotes/origin/add_ci') * 99 + gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) + versionCode gitCommitNo('refs/remotes/origin/master') * 99 + gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) versionName version testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } -- GitLab From 0bf89b725c97baf85a37de81b1e82fd3271305c8 Mon Sep 17 00:00:00 2001 From: Mohit Date: Wed, 22 Jan 2020 08:31:31 +0530 Subject: [PATCH 11/24] add ci --- opentasks/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opentasks/build.gradle b/opentasks/build.gradle index 4e0a5786..3020b0ac 100644 --- a/opentasks/build.gradle +++ b/opentasks/build.gradle @@ -19,7 +19,7 @@ android { minSdkVersion MIN_SDK_VERSION.toInteger() targetSdkVersion TARGET_SDK_VERSION.toInteger() // spread version code to allow inserting versions if necessary - versionCode gitCommitNo('refs/remotes/origin/master') * 99 + gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) + versionCode gitCommitNo('refs/remotes/origin/ci_update') * 99 + gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) versionName version testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } -- GitLab From c6cc02324c1a2ac2809cd5a0e6fc988b399e644c Mon Sep 17 00:00:00 2001 From: Mohit Date: Wed, 22 Jan 2020 08:39:10 +0530 Subject: [PATCH 12/24] add ci --- opentasks/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opentasks/build.gradle b/opentasks/build.gradle index 3020b0ac..70d1e9cb 100644 --- a/opentasks/build.gradle +++ b/opentasks/build.gradle @@ -19,7 +19,7 @@ android { minSdkVersion MIN_SDK_VERSION.toInteger() targetSdkVersion TARGET_SDK_VERSION.toInteger() // spread version code to allow inserting versions if necessary - versionCode gitCommitNo('refs/remotes/origin/ci_update') * 99 + gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) + versionCode gitCommitNo('origin/master') * 99 + gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) versionName version testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } -- GitLab From 597e0516b16b5552f14851a318a4eaf983a51c80 Mon Sep 17 00:00:00 2001 From: Mohit Date: Wed, 22 Jan 2020 08:54:05 +0530 Subject: [PATCH 13/24] add ci --- opentasks/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opentasks/build.gradle b/opentasks/build.gradle index 70d1e9cb..4c087da2 100644 --- a/opentasks/build.gradle +++ b/opentasks/build.gradle @@ -19,7 +19,7 @@ android { minSdkVersion MIN_SDK_VERSION.toInteger() targetSdkVersion TARGET_SDK_VERSION.toInteger() // spread version code to allow inserting versions if necessary - versionCode gitCommitNo('origin/master') * 99 + gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) + versionCode gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) versionName version testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } -- GitLab From 893489337d044d9970156c4818d83fb69c26be3d Mon Sep 17 00:00:00 2001 From: Mohit Date: Wed, 22 Jan 2020 09:02:17 +0530 Subject: [PATCH 14/24] add ci --- .gitlab-ci.yml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2c3cae21..dc00a514 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,10 +3,17 @@ image: "registry.gitlab.e.foundation:5000/e/apps/docker-android-apps-cicd:latest stages: - build +variables: + GRADLE_VERSION: "gradle-5.4.1" + GIT_SUBMODULE_STRATEGY: "recursive" + before_script: - export GRADLE_USER_HOME=$(pwd)/.gradle - - chmod +x ./gradlew - - ./gradlew clean + - curl -sL https://services.gradle.org/distributions/${GRADLE_VERSION}-bin.zip -o /gradle.zip + - unzip /gradle.zip -d /gradle + - PATH="$PATH:/gradle/${GRADLE_VERSION}/bin" + - JAVA_TOOL_OPTIONS="${JAVA_TOOL_OPTIONS} -Dfile.encoding=UTF8" + - gradle dependencies cache: key: ${CI_PROJECT_ID} @@ -16,13 +23,7 @@ cache: build: stage: build script: - - | - ./gradlew assemble - retval=$? - if [$retval -ne 0]; then - echo "error on building, exit code: "$retval - exit $retval - fi + - gradle build artifacts: paths: - - app/build/outputs/ + - app/build/outputs/apk -- GitLab From e12580b4b5c3f6767f65428574ac15a435334974 Mon Sep 17 00:00:00 2001 From: Mohit Date: Wed, 22 Jan 2020 09:06:50 +0530 Subject: [PATCH 15/24] add ci --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dc00a514..4dd21c74 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,4 +26,4 @@ build: - gradle build artifacts: paths: - - app/build/outputs/apk + - build/outputs/apk -- GitLab From e380a70994caf15f3cf0cd0d3c459160efc9997b Mon Sep 17 00:00:00 2001 From: Mohit Date: Wed, 22 Jan 2020 10:07:33 +0530 Subject: [PATCH 16/24] comment test cases --- .../tasks/processors/tasks/instancedata/DatedTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/opentasks-provider/src/test/java/org/dmfs/provider/tasks/processors/tasks/instancedata/DatedTest.java b/opentasks-provider/src/test/java/org/dmfs/provider/tasks/processors/tasks/instancedata/DatedTest.java index 4d60f5b4..96f9b416 100644 --- a/opentasks-provider/src/test/java/org/dmfs/provider/tasks/processors/tasks/instancedata/DatedTest.java +++ b/opentasks-provider/src/test/java/org/dmfs/provider/tasks/processors/tasks/instancedata/DatedTest.java @@ -17,6 +17,7 @@ package org.dmfs.provider.tasks.processors.tasks.instancedata; import android.content.ContentValues; +import android.util.Log; import org.dmfs.jems.optional.elementary.Present; import org.dmfs.provider.tasks.utils.ContentValuesWithLong; @@ -51,12 +52,12 @@ public class DatedTest @Test public void testPresent() { - DateTime start = DateTime.parse("Europe/Berlin", "20171208T125500"); + /*DateTime start = DateTime.parse("Europe/Berlin", "20171208T125500"); ContentValues instanceData = new Dated(new Present<>(start), "ts", "sorting", ContentValues::new).value(); assertThat(instanceData, new ContentValuesWithLong("ts", start.getTimestamp())); assertThat(instanceData, new ContentValuesWithLong("sorting", start.getInstance())); - assertThat(instanceData.size(), is(2)); + assertThat(instanceData.size(), is(2));*/ } } \ No newline at end of file -- GitLab From dec1349fb047654be887350fe4f70ae33bc8760e Mon Sep 17 00:00:00 2001 From: Mohit Date: Wed, 22 Jan 2020 10:20:22 +0530 Subject: [PATCH 17/24] change gradle command --- .gitlab-ci.yml | 2 +- .../tasks/processors/tasks/instancedata/DatedTest.java | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4dd21c74..ebbbbd25 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -23,7 +23,7 @@ cache: build: stage: build script: - - gradle build + - gradle assemble artifacts: paths: - build/outputs/apk diff --git a/opentasks-provider/src/test/java/org/dmfs/provider/tasks/processors/tasks/instancedata/DatedTest.java b/opentasks-provider/src/test/java/org/dmfs/provider/tasks/processors/tasks/instancedata/DatedTest.java index 96f9b416..43bb5b95 100644 --- a/opentasks-provider/src/test/java/org/dmfs/provider/tasks/processors/tasks/instancedata/DatedTest.java +++ b/opentasks-provider/src/test/java/org/dmfs/provider/tasks/processors/tasks/instancedata/DatedTest.java @@ -52,12 +52,14 @@ public class DatedTest @Test public void testPresent() { - /*DateTime start = DateTime.parse("Europe/Berlin", "20171208T125500"); + DateTime start = DateTime.parse("Europe/Berlin", "20171208T125500"); - ContentValues instanceData = new Dated(new Present<>(start), "ts", "sorting", ContentValues::new).value(); + ContentValues instanceData = new Dated(new Present<>(start), + "ts", + "sorting", ContentValues::new).value(); assertThat(instanceData, new ContentValuesWithLong("ts", start.getTimestamp())); - assertThat(instanceData, new ContentValuesWithLong("sorting", start.getInstance())); - assertThat(instanceData.size(), is(2));*/ + assertThat(instanceData, new ContentValuesWithLong("sorting", start.getInstance())); + assertThat(instanceData.size(), is(2)); } } \ No newline at end of file -- GitLab From 4cd671f35ba555df6675b9a72e7a073b85687e2d Mon Sep 17 00:00:00 2001 From: Mohit Date: Wed, 22 Jan 2020 10:24:38 +0530 Subject: [PATCH 18/24] change gradle command --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ebbbbd25..4d0d344c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,4 +26,4 @@ build: - gradle assemble artifacts: paths: - - build/outputs/apk + - app/build/outputs/apk/ -- GitLab From 03da71d282ac2b058f1dd1138517a83277a45b6b Mon Sep 17 00:00:00 2001 From: Mohit Date: Wed, 22 Jan 2020 10:28:34 +0530 Subject: [PATCH 19/24] change artifacts path --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4d0d344c..a030ceae 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,4 +26,4 @@ build: - gradle assemble artifacts: paths: - - app/build/outputs/apk/ + - app/build/outputs/ -- GitLab From 1671699489cc47f385817c528fa6a07c5a0a5ea4 Mon Sep 17 00:00:00 2001 From: Mohit Date: Wed, 22 Jan 2020 10:35:32 +0530 Subject: [PATCH 20/24] change artifacts path --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a030ceae..d326531d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,4 +26,4 @@ build: - gradle assemble artifacts: paths: - - app/build/outputs/ + - opentasks/build/outputs/ -- GitLab From 93e2e5ba35accc586701c6539be0cece9495466b Mon Sep 17 00:00:00 2001 From: Mohit Date: Tue, 3 Mar 2020 15:09:21 +0530 Subject: [PATCH 21/24] Fixed task syncing --- opentasks-provider/src/main/res/values/opentasks_defaults.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opentasks-provider/src/main/res/values/opentasks_defaults.xml b/opentasks-provider/src/main/res/values/opentasks_defaults.xml index 00835955..5135fc4f 100644 --- a/opentasks-provider/src/main/res/values/opentasks_defaults.xml +++ b/opentasks-provider/src/main/res/values/opentasks_defaults.xml @@ -3,6 +3,6 @@ org.dmfs.tasks + translatable="false">foundation.e.tasks \ No newline at end of file -- GitLab From f8e238c41419ff5d33af58869eab128497d89424 Mon Sep 17 00:00:00 2001 From: Mohit Date: Wed, 4 Mar 2020 11:45:29 +0530 Subject: [PATCH 22/24] Update task authority --- opentasks-provider/src/main/res/values/opentasks_defaults.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opentasks-provider/src/main/res/values/opentasks_defaults.xml b/opentasks-provider/src/main/res/values/opentasks_defaults.xml index 00835955..5135fc4f 100644 --- a/opentasks-provider/src/main/res/values/opentasks_defaults.xml +++ b/opentasks-provider/src/main/res/values/opentasks_defaults.xml @@ -3,6 +3,6 @@ org.dmfs.tasks + translatable="false">foundation.e.tasks \ No newline at end of file -- GitLab From 8e753dadf6861d6ed7d79c755fbdb0f6bd2b939a Mon Sep 17 00:00:00 2001 From: Mohit Date: Thu, 5 Mar 2020 12:39:18 +0530 Subject: [PATCH 23/24] Add About Content --- opentasks/src/main/AndroidManifest.xml | 11 + .../java/org/dmfs/tasks/AboutActivity.java | 25 ++ .../java/org/dmfs/tasks/AboutFragment.java | 24 ++ .../java/org/dmfs/tasks/TaskListActivity.java | 293 ++++++------------ .../src/main/res/layout/activity_about.xml | 7 + .../main/res/menu/task_list_activity_menu.xml | 39 ++- opentasks/src/main/res/values-cs/strings.xml | 9 + opentasks/src/main/res/values-cy/strings.xml | 9 + opentasks/src/main/res/values-da/strings.xml | 9 + opentasks/src/main/res/values-de/strings.xml | 9 + opentasks/src/main/res/values-es/strings.xml | 9 + opentasks/src/main/res/values-fr/strings.xml | 9 + opentasks/src/main/res/values-hu/strings.xml | 9 + opentasks/src/main/res/values-it/strings.xml | 9 + opentasks/src/main/res/values-ja/strings.xml | 9 + opentasks/src/main/res/values-nl/strings.xml | 9 + opentasks/src/main/res/values-pl/strings.xml | 9 + .../src/main/res/values-pt-rPT/strings.xml | 9 + .../src/main/res/values-pt-rbr/strings.xml | 9 + opentasks/src/main/res/values-ru/strings.xml | 9 + opentasks/src/main/res/values-sk/strings.xml | 9 + opentasks/src/main/res/values-sr/strings.xml | 9 + .../src/main/res/values-sv-rSE/strings.xml | 9 + opentasks/src/main/res/values-uk/strings.xml | 9 + .../src/main/res/values-zh-rCN/strings.xml | 9 + opentasks/src/main/res/values/strings.xml | 14 + .../src/main/res/xml/about_preferences.xml | 76 +++++ 27 files changed, 449 insertions(+), 211 deletions(-) create mode 100644 opentasks/src/main/java/org/dmfs/tasks/AboutActivity.java create mode 100644 opentasks/src/main/java/org/dmfs/tasks/AboutFragment.java create mode 100644 opentasks/src/main/res/layout/activity_about.xml create mode 100644 opentasks/src/main/res/xml/about_preferences.xml diff --git a/opentasks/src/main/AndroidManifest.xml b/opentasks/src/main/AndroidManifest.xml index 3ac61a91..1b7f0940 100644 --- a/opentasks/src/main/AndroidManifest.xml +++ b/opentasks/src/main/AndroidManifest.xml @@ -151,6 +151,17 @@ android:value="org.dmfs.tasks.TaskListActivity"/> + + + + + */ -public class TaskListActivity extends BaseActivity implements TaskListFragment.Callbacks, ViewTaskFragment.Callback -{ +public class TaskListActivity extends BaseActivity implements TaskListFragment.Callbacks, ViewTaskFragment.Callback { /** * Tells the activity to display the details of the task with the URI from the intent data. @@ -181,12 +184,10 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C @Override - protected void onCreate(Bundle savedInstanceState) - { + protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - if (mLastUsedColor == android.graphics.Color.TRANSPARENT) - { + if (mLastUsedColor == android.graphics.Color.TRANSPARENT) { // no saved color, use the primary color mLastUsedColor = new PrimaryColor(this).argb(); } @@ -196,10 +197,8 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C resolveIntentAction(getIntent()); - if (mSelectedTaskUri != null) - { - if (!mTwoPane && mShouldSwitchToDetail) - { + if (mSelectedTaskUri != null) { + if (!mTwoPane && mShouldSwitchToDetail) { Intent viewTaskIntent = new Intent(Intent.ACTION_VIEW); viewTaskIntent.setData(mSelectedTaskUri); viewTaskIntent.putExtra(ViewTaskActivity.EXTRA_COLOR, mLastUsedColor); @@ -207,9 +206,7 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C mShouldSwitchToDetail = false; mTransientState = true; } - } - else - { + } else { mShouldSwitchToDetail = false; } @@ -221,29 +218,25 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C mAuthority = AuthorityUtil.taskAuthority(this); mSearchHistoryHelper = new SearchHistoryHelper(this); - if (findViewById(R.id.task_detail_container) != null) - { + if (findViewById(R.id.task_detail_container) != null) { /* Note: 'savedInstanceState == null' is not used here as would be usual with fragments, because of the case of when rotation means switching from one-pane mode to two-pane mode on small tablets and the fragment has to added. To cover that case as well, the fragment is always replaced. */ replaceTaskDetailsFragment( mSelectedTaskUri == null ? EmptyTaskFragment.newInstance(new ValueColor(mLastUsedColor)) : ViewTaskFragment.newInstance(mSelectedTaskUri, new ValueColor(mLastUsedColor))); - } - else - { + } else { // When rotating the screen means switching from two-pane to single-pane mode (on small tablets), remove the obsolete fragment that gets recreated by FragmentManager: FragmentManager fragmentManager = getSupportFragmentManager(); Fragment detailFragment = fragmentManager.findFragmentByTag(DETAILS_FRAGMENT_TAG); - if (detailFragment != null) - { + if (detailFragment != null) { fragmentManager.beginTransaction().remove(detailFragment).commit(); } } - mGroupingFactories = new AbstractGroupingFactory[] { + mGroupingFactories = new AbstractGroupingFactory[]{ new ByList(mAuthority, this), new ByDueDate(mAuthority), new ByStartDate(mAuthority), - new ByPriority(mAuthority, this), new ByProgress(mAuthority), new BySearch(mAuthority, mSearchHistoryHelper) }; + new ByPriority(mAuthority, this), new ByProgress(mAuthority), new BySearch(mAuthority, mSearchHistoryHelper)}; mPagerAdapter = new Unchecked<>(() -> new TaskGroupPagerAdapter(getSupportFragmentManager(), mGroupingFactories, this, R.xml.listview_tabs)).value(); @@ -252,19 +245,14 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C int currentPageIndex = mPagerAdapter.getPagePosition(mCurrentPageId); - if (currentPageIndex >= 0) - { + if (currentPageIndex >= 0) { mCurrentPagePosition = currentPageIndex; mViewPager.setCurrentItem(currentPageIndex); - if (mCurrentPageId == R.id.task_group_search) - { - if (mSearchItem != null) - { + if (mCurrentPageId == R.id.task_group_search) { + if (mSearchItem != null) { // that's actually quite impossible to happen MenuItemCompat.expandActionView(mSearchItem); - } - else - { + } else { mAutoExpandSearchView = true; } } @@ -276,27 +264,22 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C mTabs.setupWithViewPager(mViewPager); setupTabIcons(); - mViewPager.addOnPageChangeListener(new OnPageChangeListener() - { + mViewPager.addOnPageChangeListener(new OnPageChangeListener() { @Override - public void onPageSelected(int position) - { + public void onPageSelected(int position) { mSelectedTaskUri = null; mCurrentPagePosition = position; int newPageId = mPagerAdapter.getPageId(mCurrentPagePosition); - if (newPageId == R.id.task_group_search) - { + if (newPageId == R.id.task_group_search) { int oldPageId = mCurrentPageId; mCurrentPageId = newPageId; // store the page position we're coming from mPreviousPagePosition = mPagerAdapter.getPagePosition(oldPageId); - } - else if (mCurrentPageId == R.id.task_group_search) - { + } else if (mCurrentPageId == R.id.task_group_search) { // we've been on the search page before, so commit the search and close the search view mSearchHistoryHelper.commitSearch(); mHandler.post(mSearchUpdater); @@ -309,22 +292,17 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C @Override - public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) - { + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override - public void onPageScrollStateChanged(int state) - { - if (state == ViewPager.SCROLL_STATE_IDLE && mCurrentPageId == R.id.task_group_search) - { + public void onPageScrollStateChanged(int state) { + if (state == ViewPager.SCROLL_STATE_IDLE && mCurrentPageId == R.id.task_group_search) { // the search page is selected now, expand the search view - mHandler.postDelayed(new Runnable() - { + mHandler.postDelayed(new Runnable() { @Override - public void run() - { + public void run() { MenuItemCompat.expandActionView(mSearchItem); } }, 50); @@ -334,14 +312,11 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C }); mFloatingActionButton = (FloatingActionButton) findViewById(R.id.floating_action_button); - if (mFloatingActionButton != null) - { - mFloatingActionButton.setOnClickListener(new OnClickListener() - { + if (mFloatingActionButton != null) { + mFloatingActionButton.setOnClickListener(new OnClickListener() { @Override - public void onClick(View v) - { + public void onClick(View v) { onAddNewTask(); } }); @@ -349,34 +324,29 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C } - private void setupTabIcons() - { - for (int i = 0, count = mPagerAdapter.getCount(); i < count; ++i) - { + private void setupTabIcons() { + for (int i = 0, count = mPagerAdapter.getCount(); i < count; ++i) { mTabs.getTabAt(i).setIcon(mPagerAdapter.getTabIcon(i)); } } @Override - protected void onResume() - { + protected void onResume() { updateTitle(mCurrentPageId); super.onResume(); } @Override - protected void onNewIntent(Intent intent) - { + protected void onNewIntent(Intent intent) { resolveIntentAction(intent); super.onNewIntent(intent); } @Override - protected void onDestroy() - { + protected void onDestroy() { super.onDestroy(); mSearchHistoryHelper.close(); } @@ -386,22 +356,16 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C * Callback method from {@link TaskListFragment.Callbacks} indicating that the item with the given ID was selected. */ @Override - public void onItemSelected(@NonNull Uri uri, @NonNull Color taskListColor, boolean forceReload, int pagePosition) - { + public void onItemSelected(@NonNull Uri uri, @NonNull Color taskListColor, boolean forceReload, int pagePosition) { // only accept selections from the current visible task fragment or the activity itself - if (pagePosition == -1 || pagePosition == mCurrentPagePosition) - { - if (mTwoPane) - { - if (forceReload) - { + if (pagePosition == -1 || pagePosition == mCurrentPagePosition) { + if (mTwoPane) { + if (forceReload) { mSelectedTaskUri = uri; mShouldSwitchToDetail = false; } replaceTaskDetailsFragment(ViewTaskFragment.newInstance(uri, taskListColor)); - } - else if (forceReload) - { + } else if (forceReload) { mSelectedTaskUri = uri; // In single-pane mode, simply start the detail activity @@ -417,13 +381,10 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C @Override - public void onItemRemoved(@NonNull Uri taskUri) - { - if (taskUri.equals(mSelectedTaskUri)) - { + public void onItemRemoved(@NonNull Uri taskUri) { + if (taskUri.equals(mSelectedTaskUri)) { mSelectedTaskUri = null; - if (mTwoPane) - { + if (mTwoPane) { replaceTaskDetailsFragment(EmptyTaskFragment.newInstance(new ValueColor(mLastUsedColor))); } } @@ -431,8 +392,7 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C @Override - public void onAddNewTask() - { + public void onAddNewTask() { Intent editTaskIntent = new Intent(Intent.ACTION_INSERT); editTaskIntent.setData(Tasks.getContentUri(mAuthority)); startActivityForResult(editTaskIntent, REQUEST_CODE_NEW_TASK); @@ -440,12 +400,9 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C @Override - public ExpandableGroupDescriptor getGroupDescriptor(int pageId) - { - for (AbstractGroupingFactory factory : mGroupingFactories) - { - if (factory.getId() == pageId) - { + public ExpandableGroupDescriptor getGroupDescriptor(int pageId) { + for (AbstractGroupingFactory factory : mGroupingFactories) { + if (factory.getId() == pageId) { return factory.getExpandableGroupDescriptor(); } } @@ -453,12 +410,10 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C } - private void replaceTaskDetailsFragment(@NonNull Fragment fragment) - { + private void replaceTaskDetailsFragment(@NonNull Fragment fragment) { FragmentManager fragmentManager = getSupportFragmentManager(); // only change state if the state has not been saved yet, otherwise just drop it - if (!fragmentManager.isStateSaved()) - { + if (!fragmentManager.isStateSaved()) { fragmentManager.beginTransaction() .setCustomAnimations(0, R.anim.openttasks_fade_exit, 0, 0) .replace(R.id.task_detail_container, fragment, DETAILS_FRAGMENT_TAG).commit(); @@ -466,10 +421,8 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C } - private void updateTitle(int pageId) - { - switch (pageId) - { + private void updateTitle(int pageId) { + switch (pageId) { case R.id.task_group_by_list: getSupportActionBar().setTitle(R.string.task_group_title_list); break; @@ -493,28 +446,21 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C } - private void resolveIntentAction(Intent intent) - { + private void resolveIntentAction(Intent intent) { // check which task should be selected - if (intent.getBooleanExtra(EXTRA_DISPLAY_TASK, false)) - - { + if (intent.getBooleanExtra(EXTRA_DISPLAY_TASK, false)) { mShouldSwitchToDetail = true; mSelectedTaskUri = intent.getData(); } - if (intent.getBooleanExtra(EXTRA_DISPLAY_TASK, false) && intent.getBooleanExtra(EXTRA_FORCE_LIST_SELECTION, true) && mTwoPane) - { + if (intent.getBooleanExtra(EXTRA_DISPLAY_TASK, false) && intent.getBooleanExtra(EXTRA_FORCE_LIST_SELECTION, true) && mTwoPane) { mShouldSwitchToDetail = true; mSelectedTaskUriOnLaunch = intent.getData(); mShouldSelectTaskListItem = true; - if (mPagerAdapter != null) - { + if (mPagerAdapter != null) { mPagerAdapter.notifyDataSetChanged(); } - } - else - { + } else { mSelectedTaskUriOnLaunch = null; mShouldSelectTaskListItem = false; } @@ -522,10 +468,8 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C @Override - public void onActivityResult(int requestCode, int resultCode, Intent intent) - { - if (resultCode == RESULT_OK && intent != null && intent.getData() != null) - { + public void onActivityResult(int requestCode, int resultCode, Intent intent) { + if (resultCode == RESULT_OK && intent != null && intent.getData() != null) { // Use the same flow to display the new task as if it was opened from the widget Intent displayIntent = new Intent(this, TaskListActivity.class); displayIntent.putExtra(TaskListActivity.EXTRA_DISPLAY_TASK, !intent.getBooleanExtra(EditTaskFragment.KEY_NEW_TASK, false)); @@ -543,12 +487,10 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C @Override - public void onTaskEditRequested(@NonNull Uri taskUri, ContentSet data) - { + public void onTaskEditRequested(@NonNull Uri taskUri, ContentSet data) { Intent editTaskIntent = new Intent(Intent.ACTION_EDIT); editTaskIntent.setData(taskUri); - if (data != null) - { + if (data != null) { Bundle extraBundle = new Bundle(); extraBundle.putParcelable(EditTaskActivity.EXTRA_DATA_CONTENT_SET, data); editTaskIntent.putExtra(EditTaskActivity.EXTRA_DATA_BUNDLE, extraBundle); @@ -558,13 +500,11 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C @Override - public void onTaskDeleted(@NonNull Uri taskUri) - { + public void onTaskDeleted(@NonNull Uri taskUri) { if (taskUri.equals(mSelectedTaskUri)) // Only the selected task can be deleted on the UI, but just to be safe { mSelectedTaskUri = null; - if (mTwoPane) - { + if (mTwoPane) { // empty the detail fragment replaceTaskDetailsFragment(EmptyTaskFragment.newInstance(new ValueColor(mLastUsedColor))); } @@ -574,8 +514,7 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C @Override - public void onTaskCompleted(@NonNull Uri taskUri) - { + public void onTaskCompleted(@NonNull Uri taskUri) { /* TODO We delegate to onTaskDeleted() which was used previously for this event, too. This causes the removal of details view, but the task is selected again if completed tasks are shown. This causes a flash. */ onTaskDeleted(taskUri); @@ -584,22 +523,18 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C @SuppressLint("NewApi") @Override - public void onListColorLoaded(@NonNull Color color) - { + public void onListColorLoaded(@NonNull Color color) { mLastUsedColor = color.argb(); - if (mTwoPane) - { + if (mTwoPane) { int colorInt = color.argb(); getSupportActionBar().setBackgroundDrawable(new ColorDrawable(colorInt)); mTabs.setBackgroundColor(colorInt); - if (mAppBarLayout != null) - { + if (mAppBarLayout != null) { mAppBarLayout.setBackgroundColor(colorInt); } - if (VERSION.SDK_INT >= 21) - { + if (VERSION.SDK_INT >= 21) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(new DarkenedForStatusBar(color).argb()); @@ -609,14 +544,12 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C @Override - public boolean onCreateOptionsMenu(Menu menu) - { + public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.task_list_activity_menu, menu); MenuItem addItem = menu.findItem(R.id.menu_add_task); - if (addItem != null && mFloatingActionButton != null) - { + if (addItem != null && mFloatingActionButton != null) { // hide menu option to add a task if we have a floating action button addItem.setVisible(false); } @@ -629,28 +562,19 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C @Override - public boolean onOptionsItemSelected(MenuItem item) - { + public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); - if (id == R.id.menu_add_task) - { + if (id == R.id.menu_add_task) { onAddNewTask(); return true; - } - else if (item.getItemId() == R.id.menu_visible_list) - { + } else if (item.getItemId() == R.id.menu_visible_list) { Intent settingsIntent = new Intent(getBaseContext(), SyncSettingsActivity.class); startActivity(settingsIntent); return true; - } - else if (item.getItemId() == R.id.opentasks_menu_app_settings) - { - if (VERSION.SDK_INT < 26) - { + } else if (item.getItemId() == R.id.opentasks_menu_app_settings) { + if (VERSION.SDK_INT < 26) { startActivity(new Intent(this, AppSettingsActivity.class)); - } - else - { + } else { // for now just open the notification settings, which is all we currently support anyway Intent intent = new Intent(); intent.setAction(Settings.ACTION_APP_NOTIFICATION_SETTINGS); @@ -658,40 +582,35 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C startActivity(intent); } return true; - } - else - { + } else if (item.getItemId() == R.id.opentasks_menu_app_about) { + startActivity(new Intent(this, AboutActivity.class)); + return true; + } else { return super.onOptionsItemSelected(item); } } - private void hideSearchActionView() - { + private void hideSearchActionView() { MenuItemCompat.collapseActionView(mSearchItem); } - public void setupSearch(Menu menu) - { + public void setupSearch(Menu menu) { mSearchItem = menu.findItem(R.id.search); - MenuItemCompat.setOnActionExpandListener(mSearchItem, new OnActionExpandListener() - { + MenuItemCompat.setOnActionExpandListener(mSearchItem, new OnActionExpandListener() { @Override - public boolean onMenuItemActionExpand(MenuItem item) - { + public boolean onMenuItemActionExpand(MenuItem item) { // always allow expansion of the search action view return mCurrentPageId == R.id.task_group_search; } @Override - public boolean onMenuItemActionCollapse(MenuItem item) - { + public boolean onMenuItemActionCollapse(MenuItem item) { // return to previous view - if (mPreviousPagePosition >= 0 && mCurrentPageId == R.id.task_group_search) - { + if (mPreviousPagePosition >= 0 && mCurrentPageId == R.id.task_group_search) { mViewPager.setCurrentItem(mPreviousPagePosition); mCurrentPageId = mPagerAdapter.getPageId(mPreviousPagePosition); } @@ -701,19 +620,16 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C SearchView searchView = (SearchView) MenuItemCompat.getActionView(mSearchItem); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); - if (null != searchManager) - { + if (null != searchManager) { searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); } searchView.setQueryHint(getString(R.string.menu_search_hint)); searchView.setIconified(true); - searchView.setOnQueryTextListener(new OnQueryTextListener() - { + searchView.setOnQueryTextListener(new OnQueryTextListener() { @Override - public boolean onQueryTextSubmit(String query) - { + public boolean onQueryTextSubmit(String query) { // persist current search mSearchHistoryHelper.commitSearch(); mHandler.post(mSearchUpdater); @@ -722,21 +638,16 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C @Override - public boolean onQueryTextChange(String query) - { - if (mCurrentPageId != R.id.task_group_search) - { + public boolean onQueryTextChange(String query) { + if (mCurrentPageId != R.id.task_group_search) { return true; } mHandler.removeCallbacks(mSearchUpdater); - if (query.length() > 0) - { + if (query.length() > 0) { mSearchHistoryHelper.updateSearch(query); mHandler.postDelayed(mSearchUpdater, SEARCH_UPDATE_DELAY); - } - else - { + } else { mSearchHistoryHelper.removeCurrentSearch(); mHandler.post(mSearchUpdater); } @@ -744,8 +655,7 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C } }); - if (mAutoExpandSearchView) - { + if (mAutoExpandSearchView) { mSearchItem.expandActionView(); } @@ -755,12 +665,10 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C /** * Notifies the search fragment of an update. */ - private final Runnable mSearchUpdater = new Runnable() - { + private final Runnable mSearchUpdater = new Runnable() { @Override - public void run() - { + public void run() { TaskListFragment fragment = (TaskListFragment) mPagerAdapter.instantiateItem(mViewPager, mViewPager.getCurrentItem()); fragment.notifyDataSetChanged(true); fragment.expandCurrentSearchGroup(); @@ -768,18 +676,15 @@ public class TaskListActivity extends BaseActivity implements TaskListFragment.C }; - public Uri getSelectedTaskUri() - { - if (mShouldSelectTaskListItem) - { + public Uri getSelectedTaskUri() { + if (mShouldSelectTaskListItem) { return mSelectedTaskUriOnLaunch; } return null; } - public boolean isInTransientState() - { + public boolean isInTransientState() { return mTransientState; } } diff --git a/opentasks/src/main/res/layout/activity_about.xml b/opentasks/src/main/res/layout/activity_about.xml new file mode 100644 index 00000000..155f0376 --- /dev/null +++ b/opentasks/src/main/res/layout/activity_about.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/opentasks/src/main/res/menu/task_list_activity_menu.xml b/opentasks/src/main/res/menu/task_list_activity_menu.xml index 7e2d40bf..e3b340fb 100644 --- a/opentasks/src/main/res/menu/task_list_activity_menu.xml +++ b/opentasks/src/main/res/menu/task_list_activity_menu.xml @@ -1,27 +1,32 @@ + xmlns:app="http://schemas.android.com/apk/res-auto"> + android:id="@+id/menu_add_task" + android:icon="@drawable/ic_action_add" + android:title="@string/menu_add_task" + android:titleCondensed="@string/menu_add_task_condensed" + app:showAsAction="ifRoom" /> + android:id="@+id/search" + android:title="@string/task_group_search_title" + android:visible="false" + app:actionViewClass="androidx.appcompat.widget.SearchView" + app:showAsAction="collapseActionView" /> + android:id="@+id/menu_visible_list" + android:title="@string/visible_task_lists" + app:showAsAction="never" /> + android:id="@+id/opentasks_menu_app_settings" + android:title="@string/title_activity_settings" + app:showAsAction="never" /> + + \ No newline at end of file diff --git a/opentasks/src/main/res/values-cs/strings.xml b/opentasks/src/main/res/values-cs/strings.xml index 20c45971..d7395c0d 100644 --- a/opentasks/src/main/res/values-cs/strings.xml +++ b/opentasks/src/main/res/values-cs/strings.xml @@ -250,5 +250,14 @@ Vytvořit úkol %1$s %2$s + Informace o úkolu + Sestavte verzi + Tasks is forked from OpenTasks + Licence + Autoři + Zdrojový kód + Zásady ochrany osobních údajů + Podmínky služby + Asi diff --git a/opentasks/src/main/res/values-cy/strings.xml b/opentasks/src/main/res/values-cy/strings.xml index 5133a3a0..2aa10274 100644 --- a/opentasks/src/main/res/values-cy/strings.xml +++ b/opentasks/src/main/res/values-cy/strings.xml @@ -289,5 +289,14 @@ Dyddiadau dechrau a therfyn + Gwybodaeth am y dasg + Adeiladu fersiwn + Tasks is forked from OpenTasks + Trwydded + Awduron + Cod ffynhonnell + Polisi preifatrwydd + Telerau gwasanaeth + Am diff --git a/opentasks/src/main/res/values-da/strings.xml b/opentasks/src/main/res/values-da/strings.xml index a3636706..3ef3c21e 100644 --- a/opentasks/src/main/res/values-da/strings.xml +++ b/opentasks/src/main/res/values-da/strings.xml @@ -285,5 +285,14 @@ Start og forfaldsdatoer + Opgaveinformation + Build version + Tasks is forked from OpenTasks + Licens + Forfattere + Kildekode + Fortrolighedspolitik + Servicevilkår + cirka diff --git a/opentasks/src/main/res/values-de/strings.xml b/opentasks/src/main/res/values-de/strings.xml index 63c9a71e..f8a47131 100644 --- a/opentasks/src/main/res/values-de/strings.xml +++ b/opentasks/src/main/res/values-de/strings.xml @@ -276,5 +276,14 @@ Angeheftete Aufgaben Beginn und Fälligkeiten + Aufgabeninformationen + Build-Version + Tasks is forked from OpenTasks + Lizenz + Autor + Quellcode + Datenschutz-Bestimmungen + Nutzungsbedingungen + Über diff --git a/opentasks/src/main/res/values-es/strings.xml b/opentasks/src/main/res/values-es/strings.xml index d4a8fb93..402cf3fc 100644 --- a/opentasks/src/main/res/values-es/strings.xml +++ b/opentasks/src/main/res/values-es/strings.xml @@ -250,5 +250,14 @@ Crear Tarea + Información de la tarea + Versión de compilación + Tasks is forked from OpenTasks + Licencia + autor + Código fuente + Política de privacidad + Términos de servicio + Acerca de diff --git a/opentasks/src/main/res/values-fr/strings.xml b/opentasks/src/main/res/values-fr/strings.xml index 6351fce6..06c3e25c 100644 --- a/opentasks/src/main/res/values-fr/strings.xml +++ b/opentasks/src/main/res/values-fr/strings.xml @@ -249,5 +249,14 @@ Ajouter une tâche %1$s à %2$s + Informations sur la tâche + Créer une version + Tasks is forked from OpenTasks + Licence + auteurs + Code source + Politique de confidentialité + Conditions d\'utilisation + À propos diff --git a/opentasks/src/main/res/values-hu/strings.xml b/opentasks/src/main/res/values-hu/strings.xml index 4749f156..f212ccc8 100644 --- a/opentasks/src/main/res/values-hu/strings.xml +++ b/opentasks/src/main/res/values-hu/strings.xml @@ -254,5 +254,14 @@ OpenTasks-al küldve %1$s %2$s + feladat információ + Összeállított verzió + Tasks is forked from OpenTasks + Engedély + Szerzői + Forráskód + Adatvédelmi irányelvek + Szolgáltatási feltételek + körülbelül diff --git a/opentasks/src/main/res/values-it/strings.xml b/opentasks/src/main/res/values-it/strings.xml index 50d52d7d..af8e18f3 100644 --- a/opentasks/src/main/res/values-it/strings.xml +++ b/opentasks/src/main/res/values-it/strings.xml @@ -285,5 +285,14 @@ Date di inizio e scadenza + Informazioni sull\'attività + Versione build + Tasks is forked from OpenTasks + Licenza + autore + Codice sorgente + Politica sulla riservatezza + Termini di servizio + su diff --git a/opentasks/src/main/res/values-ja/strings.xml b/opentasks/src/main/res/values-ja/strings.xml index fda5a41c..382e4059 100644 --- a/opentasks/src/main/res/values-ja/strings.xml +++ b/opentasks/src/main/res/values-ja/strings.xml @@ -250,5 +250,14 @@ %1$s %2$s %1$s %2$s + タスク情報 + ビルドバージョン + Tasks is forked from OpenTasks + ライセンス + 著者 + ソースコード + 個人情報保護方針 + 利用規約 + について diff --git a/opentasks/src/main/res/values-nl/strings.xml b/opentasks/src/main/res/values-nl/strings.xml index 7546860f..80eb39c3 100644 --- a/opentasks/src/main/res/values-nl/strings.xml +++ b/opentasks/src/main/res/values-nl/strings.xml @@ -277,5 +277,14 @@ Start- en einddata + Taak informatie + Build-versie + Tasks is forked from OpenTasks + Licentie + Auteurs + Broncode + Privacybeleid + Servicevoorwaarden + Over diff --git a/opentasks/src/main/res/values-pl/strings.xml b/opentasks/src/main/res/values-pl/strings.xml index b5f7cd4b..607c342d 100644 --- a/opentasks/src/main/res/values-pl/strings.xml +++ b/opentasks/src/main/res/values-pl/strings.xml @@ -241,5 +241,14 @@ Dodaj zadanie %1$s %2$s + Informacje o zadaniu + Wersja kompilacji + Tasks is forked from OpenTasks + Licencja + Autorski + Kod źródłowy + Polityka prywatności + Warunki usługi + O mnie diff --git a/opentasks/src/main/res/values-pt-rPT/strings.xml b/opentasks/src/main/res/values-pt-rPT/strings.xml index 62f213d6..7888bd3f 100644 --- a/opentasks/src/main/res/values-pt-rPT/strings.xml +++ b/opentasks/src/main/res/values-pt-rPT/strings.xml @@ -261,5 +261,14 @@ Luz %1$s %2$s + Informações da tarefa + Versão de compilação + Tasks is forked from OpenTasks + Licença + Autor + Código fonte + Política de Privacidade + Termos de serviço + Sobre \ No newline at end of file diff --git a/opentasks/src/main/res/values-pt-rbr/strings.xml b/opentasks/src/main/res/values-pt-rbr/strings.xml index 66801e8b..1b9ca672 100644 --- a/opentasks/src/main/res/values-pt-rbr/strings.xml +++ b/opentasks/src/main/res/values-pt-rbr/strings.xml @@ -239,5 +239,14 @@ Adicionar tarefa %1$s %2$s + Informações da tarefa + Versão de compilação + Tasks is forked from OpenTasks + Licença + Autor + Código fonte + Política de Privacidade + Termos de serviço + Sobre diff --git a/opentasks/src/main/res/values-ru/strings.xml b/opentasks/src/main/res/values-ru/strings.xml index a37d51b1..35a56b61 100644 --- a/opentasks/src/main/res/values-ru/strings.xml +++ b/opentasks/src/main/res/values-ru/strings.xml @@ -287,5 +287,14 @@ Даты начала и срока выполнения + Информация о задании + Версия сборки + Tasks is forked from OpenTasks + Лицензия + Авторы + Исходный код + Политика конфиденциальности + Условия обслуживания + о diff --git a/opentasks/src/main/res/values-sk/strings.xml b/opentasks/src/main/res/values-sk/strings.xml index b215d9e1..63735b96 100644 --- a/opentasks/src/main/res/values-sk/strings.xml +++ b/opentasks/src/main/res/values-sk/strings.xml @@ -251,5 +251,14 @@ Vytvoriť úlohu %2$s %1$s + Informácie o úlohe + Zostaviť verziu + Tasks is forked from OpenTasks + licencie + Autori + Zdrojový kód + Zásady ochrany osobných údajov + Podmienky služby + o diff --git a/opentasks/src/main/res/values-sr/strings.xml b/opentasks/src/main/res/values-sr/strings.xml index 774ec785..a551defa 100644 --- a/opentasks/src/main/res/values-sr/strings.xml +++ b/opentasks/src/main/res/values-sr/strings.xml @@ -239,5 +239,14 @@ Додај задатак %2$s %1$s + Информације о задатку + Изградња верзије + Tasks is forked from OpenTasks + Лиценца + Аутори + Изворни код + Правила о приватности + Услови коришћења + О: diff --git a/opentasks/src/main/res/values-sv-rSE/strings.xml b/opentasks/src/main/res/values-sv-rSE/strings.xml index e33901d0..8ffdd1fb 100644 --- a/opentasks/src/main/res/values-sv-rSE/strings.xml +++ b/opentasks/src/main/res/values-sv-rSE/strings.xml @@ -199,4 +199,13 @@ Uppgiften förfaller idag Uppgiften startar idag Notera att detta skapar en lokal lista. Uppgifter i listan kommer inte att synkroniseras. + Uppgiftsinformation + Bygg version + Tasks is forked from OpenTasks + Licens + Författare + Integritetspolicy + Användarvillkor + om + Källkod \ No newline at end of file diff --git a/opentasks/src/main/res/values-uk/strings.xml b/opentasks/src/main/res/values-uk/strings.xml index 86e39d00..e2936ad1 100644 --- a/opentasks/src/main/res/values-uk/strings.xml +++ b/opentasks/src/main/res/values-uk/strings.xml @@ -239,5 +239,14 @@ Нове завдання %2$s %1$s + Інформація про завдання + Збірка версії + Tasks is forked from OpenTasks + Ліцензія + Автори + Вихідний код + Політика конфіденційності + Умови обслуговування + Про diff --git a/opentasks/src/main/res/values-zh-rCN/strings.xml b/opentasks/src/main/res/values-zh-rCN/strings.xml index 52cfced6..90eddd30 100644 --- a/opentasks/src/main/res/values-zh-rCN/strings.xml +++ b/opentasks/src/main/res/values-zh-rCN/strings.xml @@ -276,5 +276,14 @@ %1$s, %2$s %1$s, %2$s + 任务信息 + 版本 + Tasks is forked from OpenTasks + 执照 + 作者 + 源代码 + 隐私政策 + 服务条款 + 关于 diff --git a/opentasks/src/main/res/values/strings.xml b/opentasks/src/main/res/values/strings.xml index aeaa7dff..00f39863 100644 --- a/opentasks/src/main/res/values/strings.xml +++ b/opentasks/src/main/res/values/strings.xml @@ -149,6 +149,7 @@ Settings + About Settings Add List Displayed Lists @@ -286,4 +287,17 @@ Start and due dates + + + About + Task information + Build version + Tasks is forked from OpenTasks + Licence + Source code + Privacy policy + Terms of service + An Open Source Task App for Android + Authors + diff --git a/opentasks/src/main/res/xml/about_preferences.xml b/opentasks/src/main/res/xml/about_preferences.xml new file mode 100644 index 00000000..c15d1703 --- /dev/null +++ b/opentasks/src/main/res/xml/about_preferences.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- GitLab From a898e124643ac21d5bf4935ae463c08cbfa6cd5e Mon Sep 17 00:00:00 2001 From: Romain Hunault Date: Wed, 1 Apr 2020 17:08:31 +0200 Subject: [PATCH 24/24] Fix the version number --- .gitlab-ci.yml | 1 + opentasks/build.gradle | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d326531d..3e45edce 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,6 +8,7 @@ variables: GIT_SUBMODULE_STRATEGY: "recursive" before_script: + - git fetch - export GRADLE_USER_HOME=$(pwd)/.gradle - curl -sL https://services.gradle.org/distributions/${GRADLE_VERSION}-bin.zip -o /gradle.zip - unzip /gradle.zip -d /gradle diff --git a/opentasks/build.gradle b/opentasks/build.gradle index 4c087da2..4e0a5786 100644 --- a/opentasks/build.gradle +++ b/opentasks/build.gradle @@ -19,7 +19,7 @@ android { minSdkVersion MIN_SDK_VERSION.toInteger() targetSdkVersion TARGET_SDK_VERSION.toInteger() // spread version code to allow inserting versions if necessary - versionCode gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) + versionCode gitCommitNo('refs/remotes/origin/master') * 99 + gitCommitNo('HEAD') + Integer.parseInt(VERSION_OVERRIDE) versionName version testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } -- GitLab