From de6ddebf160260ed5cbc9c2a248dd1a51373df87 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Sun, 21 Nov 2021 11:08:40 +0200 Subject: [PATCH] Flutter Upgrade - Android --- android/.gitignore | 19 +++++---- android/app/build.gradle.dev | 15 ++++--- android/app/build.gradle.prod | 16 +++++--- android/app/src/debug/AndroidManifest.xml | 4 +- android/app/src/main/AndroidManifest.foss.xml | 37 +++++++----------- android/app/src/main/AndroidManifest.xml | 37 +++++++----------- .../res/drawable-v21/launch_background.xml | 12 ++++++ .../app/src/main/res/drawable-v21/logo.png | Bin 0 -> 7360 bytes .../main/res/drawable/launch_background.xml | 6 +-- android/app/src/main/res/values/styles.xml | 15 ++++--- .../app/src/main/res/xml/provider_paths.xml | 4 -- android/app/src/profile/AndroidManifest.xml | 5 ++- android/build.gradle | 12 +++--- android/build.gradle.foss | 10 ++--- android/gradle.properties | 4 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/settings.gradle | 18 ++++----- android/settings_aar.gradle | 1 - pubspec.foss.yaml | 2 +- pubspec.next.yaml | 2 +- pubspec.yaml | 2 +- 21 files changed, 113 insertions(+), 110 deletions(-) create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable-v21/logo.png delete mode 100644 android/app/src/main/res/xml/provider_paths.xml delete mode 100644 android/settings_aar.gradle diff --git a/android/.gitignore b/android/.gitignore index 65b7315af..6f568019d 100644 --- a/android/.gitignore +++ b/android/.gitignore @@ -1,10 +1,13 @@ -*.iml -*.class -.gradle +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat /local.properties -/.idea/workspace.xml -/.idea/libraries -.DS_Store -/build -/captures GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle.dev b/android/app/build.gradle.dev index b5edef9da..128047c4b 100644 --- a/android/app/build.gradle.dev +++ b/android/app/build.gradle.dev @@ -26,16 +26,21 @@ apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 30 + compileSdkVersion 31 + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } sourceSets { main.java.srcDirs += 'src/main/kotlin' } - lintOptions { - disable 'InvalidPackage' - } - defaultConfig { applicationId "com.invoiceninja.app" minSdkVersion 19 diff --git a/android/app/build.gradle.prod b/android/app/build.gradle.prod index 0d7a35d3c..6fe1914a9 100644 --- a/android/app/build.gradle.prod +++ b/android/app/build.gradle.prod @@ -31,16 +31,21 @@ def keystoreProperties = new Properties() keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) android { - compileSdkVersion 30 + compileSdkVersion 31 + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } sourceSets { main.java.srcDirs += 'src/main/kotlin' } - lintOptions { - disable 'InvalidPackage' - } - defaultConfig { applicationId "com.invoiceninja.app" minSdkVersion 19 @@ -59,6 +64,7 @@ android { storePassword keystoreProperties['storePassword'] } } + buildTypes { debug { signingConfig signingConfigs.release diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml index dd79b1b95..08490728f 100644 --- a/android/app/src/debug/AndroidManifest.xml +++ b/android/app/src/debug/AndroidManifest.xml @@ -1,6 +1,8 @@ - + diff --git a/android/app/src/main/AndroidManifest.foss.xml b/android/app/src/main/AndroidManifest.foss.xml index 8fcd3649f..70b558a1a 100644 --- a/android/app/src/main/AndroidManifest.foss.xml +++ b/android/app/src/main/AndroidManifest.foss.xml @@ -17,35 +17,26 @@ android:name=".MainActivity" android:launchMode="singleTop" android:theme="@style/LaunchTheme" - android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize"> + + - - - - - - - - + + - diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 8fcd3649f..70b558a1a 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -17,35 +17,26 @@ android:name=".MainActivity" android:launchMode="singleTop" android:theme="@style/LaunchTheme" - android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize"> + + - - - - - - - - + + - diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 000000000..204c5f484 --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/android/app/src/main/res/drawable-v21/logo.png b/android/app/src/main/res/drawable-v21/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cf6386b184712399547aab3631d0e2c7fa5b6fd5 GIT binary patch literal 7360 zcmV;x96#fUP)1^@s67{VYS00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmYE+YT{E+YYWr9XB6000McNliru;R6*978j+w$kzY>98F0? zK~#9!?VWji6jipzzg5*qI-L;0BC;hARtJF~C?fmr8^r}4vOPdikO70^)#ppn>&yb-)FL0h;ww18@U6kPe&$jsr)4 zqrhR{g!TDJ-83?)s*IH?LL|ky*I1xGFdXP%k*7S64y*${0@eWM0ntrEY=VUrk64!%#uv)*9Gp$*5_t z5={#xV!1^KQ`D$1MSTWX3beAhR3usfkA^9#1NhM`;`YeWo`V%!8TPY?6=U!$H_uq*=9iYAtY7?-MjPVP2}O|Ft723TXsGA0<)lwcNP zqsYxWYM)!I+Q=X`pKYc;rqVAHX*D$2CYKG11C#xohZU*8EbY~l+{jcLHauts94Lxt zMQSjsff=?uZREoYf3%oC8ti&~8{S}&dn)NrN#|f6+vKuQ#2o(PVw*_IJhlh6+A_4^2RZ;hc{7um zH*)EwL71YxV3Dju5D{DKAp%7yb=;{#H;v`qQg`~&U>Z>3f;si;*QZCXUKpl;A6i~_ovkW@1eq5zS(}u^+N31D`}SLY-Mu>y&Ay_W#-u_CX3f1E zKnejmerB2`SqM>%a7NxciZKt2rCG}s#Ky*=s`mP!JfLT0a^}n#R($y-v;Y2gcJAFv zIN%8EDemLs7R$)VI~P;DXs^bUQJlSJUKSY{No;H^0|yW0505=YLX!lW1%dV-i15*Z z1-$dt+w9%52VK`O3?mTpt-_F?n?_2ZCeo#9izuh6Wp2~J4K%7-k4~LC)2mN!ZW}Ow zxcGRRA;mI{HvAB`(Po8s$!bn z4?L-=%00t}G3vg10R`POuKKQ`D2NDdx0{0p4)Ej?Pf(*;HCnf5$-N^+uxQ~zGBYzP zJ)ySz_#;nGo=mT%7>XI-i$rG0(>-8vBwal74e$F2V%P86@-17z&I_en-ZhOAk& zT80c9BrO{^mPkdFaF9qv_4>O=MHMaAc_cTt?;!8I^_J}1zC$ivyeOfLBZm*ms+B9{ z{?VhQT3EOM5&=GC?L-j=NZr^P(zRnpd1d-^NjsY+Ym<^BCOpEY3?o2lMn%iCr=PxZ z?XmaXSLn6;e4X`0u2z8{S6+g7uxb5ziP9WCzaOPJTpVm z%y{V~>D!~H#9dQI93bIE3~ZQn@2y+3l$kSLmaUsN%cV<~u4?z$r=ONsXQa=EG908% zOm$iF)he(33LwE=%}*}HrD|Ksl3*VEbJIp?)3T*kfkrB-C?M~=Jxh$79IwA${@Ld; z{GNN{x`ZYY4iZ*`K%6LoHGqTexI-4spD(+UlO@NPt)RQzgk$hj2t#h zwr<`cIXO9&i3to$)0E%R(&Y7-Go^W4eD1&(qIC{neDd+f zvg4Ou06op!VA)|-3Mx7Td90E+RVR;F*tRe{}B9fJrB|UEG>~j_6M3MVP zjTX1t?X!*F_vu@r0WQpxhFiqZEO$Ye_1*z~uW*ZVJzpBsG)-Ca)v6*F1J}gF$fgY& zN~DDYOt58n9j)Cf+MyU89?o|gH?T4(iSUSs0s)Jvss2p*2n8md>5gO@r)0j$SE>fdN3722VZn z3|U!OELyyn;Uh=VpkYIF(;%mW>AOwSMHMHC zL@Mf)m(%(;N^?l8Gg9ir#!9a)U1a&^%L=sl!TawQ>5|C*s_t}3T3VX?u1S+ZT@Tm9 zRF{uFSQxO?Z-7mtxKypB1E?LW`*5w>wqf7l6keM-lc%13x$dRb3TI`UN z?K`#?_$)3yo;PRD;`O)w&V`H&GBYzdcI+5O4R_6$rWb?yAp2cbPF3cZ${I!a_eW`{{4An=1jk?DI%zv#yvxaa^&?p%|90K?d2y|gN6-B-oK9pixyD{ zP+KK8HFe12#+z;;_53-W`17C1@-c{Sy!j@*yLIPqN=mu+Z`zb8bnDa!rv;LEf5n~cE01N-ULqlZ_Q#;KDhX&x8PLu1DV^txZISV7Ci2`rd54=vvggNUG; z22-DZj+B!pXq%WwC5Gmpk|Uu>6IOkj#M^JY$@9-VLwZK~6>Z}2l+T+xmsKlP^1`gQ$#Stq*t%rtXsR*=Wi56Vcx=p3?4cpXvy&4ePdYg{ye{< zQv86S0&c1ZR8?i=H{Y-_=^LDpk(l|+rlKgUS+$CDzy0R-=D81TC zx^#)L_uj`pH*PE!mq-vIT?NiomAl>k%P;in(UV5k*5#eI-y+P%Tthbvnzv}dS4rP+ z@YqpKq@86?$|1Jz`IVjf_Hs1!6vxh_vMqTR6CQh%%lYzZj*5z+S@Y(+`ugjnojb>rY13#B7gt~_NKq6tRpa!jQ_Pq#ooGiGk3aGV zJAT<-6$o}*1&&n4JG-RoELpUeTG7=Q`k(*FrVSf#sagS(C?Yr`BN;hrH0LkrEc#?A zUAlEG*0o||V|n`7Y3xlo#NtJZs8_!ps;U;4uZ61`BEp5g*TZpMunL*x1l7(IMAmoHuNy6kqF2GP;c%=>U5hfW-4?)>+Oh$#JmiNQmM zvL_{ltvh$nyKi57l~{>XHFj*@PRDlbXcpgynKLS7y|JSzaJVwu$(GHVd0^DNM2Ckn zZ{9pEUbs+TW#>8h)2&B$7A;xA>Gbmq88(cV0B_T1nnsJ3E%|cIYWD8g!}y0ECOjg% zz$Uz+C@6};+0;}fKlK!~qO0+zKR(XBy?ZJP!4Bh6wJyPWs;DSrXJ^Z{tv^Y}#CATj z_IM8M){Kgl{ylrif&Kd{EUV7*)22y-YwBD%rQ|)0fGU9eNAKQ}yla=Zv)$#^zcM&g z)FotBk#lChL(_(FbnV!Y9ox5iEmUrrCT?rr@8I!ctX}&qO`0~Xus%(+k9O>Glt79Y?5z4u;7uOd%|N^j4cIm6V+lWAPH9up>vC++N6 zuQ^C{)1X=N=FEC;4(XYh{AKD?s#gz=u($B=a5{FnndAfeS-)WeLq-fI+slDp&uOVM zsi{0TZXAuSt;ggiCvyDQu}~sdF1K8&b}pDr>A!Qw4%)T4 zp0+Ko${COLF`}GScJ5ntshWFl|$HC*r_{V|;L`FvX zblkdBjZc;=p<`k@n#INO_H*))iWiQ&Z= z(>ZedI13hiNX=TcDmq7esSptn!SInINxhKH=POsxwR?AT)9||gX__XdPM+efyY8Yz zd?ThznoLGUMljvZzd2P=3Fz`7H8oY{%$_aPBb?&!m5%{cB0v(a`<=Y=_AIFiNZz$e z?)?4lrB+mQp{bi9tlVagJTzW@-Mu>)OypGw=*m5X=9T2Y7cR(u4H;5ocI8M#l}_#3 z%bwl81~lDes36DfmS_GlMI!u6^3psmUN&vqSWyJKl0wsCBBi{yjDA?Rj@$b7qi&6w zEdBUnuVx^}G;o^+k39ZIwk7Xk)7GuDxUOYLo52!0ZygSvd+9~aUdUknM<3BRA;IS^ z0l=|i$LQL*Gp(97<+-U-F$}XjyL*KEMKH@cjk$=(<;$04#TQ>lr}iCuIz~N37MjO5 zk|~oWNp^O&*zk^3D_2VIZr!h#$ih-;hJj3ea$=$8v&_<%TLde!LJWps$a}MAOH72b z$P||iuc;GsdF_K8=YRW6h726!R}lv%inMRtMs{xBUSO(G7KIqpJkH5vAT5x3^8C4T zj2ShGhS$_#!uavzxZMS#8B7!1G`MTfKsIgN!qL>z^zGjt8~&qujT$We^b__UJIepO z@i&}Kr_aPNs;aVk*DgA=ZA+ULEt&c9%Yp7rn#Co&X|cBgp~2qz+Z!@w}VkM zYSxtTV;_{GM~>KPD8P8{op3A#uXjS)M?XrZgpcdv`LUhmBy*?%m|%WLPVPd01I`~$SKga4|jzIVCn+1!At6s>3^~Jfi%xw6Hxw>f> z-on;>X)u8Hz*bv!HvB*b;3sdJ?}Zv)m#S?BZnWiRqY!M-P2(n?^SdGlmH_PcW=d_? z08F5nZW=z_T52KW!g5z6+j6ww1Ia*&tB_rRBG;!bRl6S8Y0J`v7qr$*V^?8cDAM#< z4J@@~X(Jz&7DX;UHJA!0O|7|@4I3Ub0}kj#)L<%dOWiGkTjX4rqB;nI+TJ#T0x#;O z@rm1y{bj%Q2&_q56mSBFvE^H(kwI<|+f3b$3UYqAA9T||H;qhSur1#zkHNZW_(d+i z3Fgsax@mk3EVE@?WwA^*jjvtB2v#iCHoDbt3{@;MwT&yN4rJ)XD6U#854~k7Gl0If ztg9UQ>ZVaFauu6kc}!&zwr{K|VX1B!Nv;ya@s}vl%pw^sRoe?Rx8+}{u}?RR7A{pq zH;bQsptPIV_6ga_kN%~hN{N2uvBOq?|DE<2R9f8WImDrxB@1va)!{hHRPGH^)EYo1 zdps%?-q20sO_!?SF2#wkfSpfqsoIyo?e@4-3arpgV?ZDpQUXLS&!qncpsPJTA&vFA zX>{|9X;2W%Lo&bx?4^`vDs5C4jsqxHu3Bf!a&0{WG0PF3s48GMO(86OD%Ys~GMzDNOgRYxKH(-T5 zra^-h)|lvJrMW!N%KA>+A|7q_q3!Vx3cR74#^|!tT4g%P_hS)o2e8~8=L*4{x@mk- zo);|FlmJnx1M3DG1N-dpE;sB08tbO + + android:gravity="center" + android:src="@drawable/logo" /> - diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index d3d98ef96..591bb70a8 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -1,6 +1,7 @@ - - - - diff --git a/android/app/src/main/res/xml/provider_paths.xml b/android/app/src/main/res/xml/provider_paths.xml deleted file mode 100644 index ffa74ab56..000000000 --- a/android/app/src/main/res/xml/provider_paths.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml index dd79b1b95..cae07737d 100644 --- a/android/app/src/profile/AndroidManifest.xml +++ b/android/app/src/profile/AndroidManifest.xml @@ -1,8 +1,9 @@ - + - diff --git a/android/build.gradle b/android/build.gradle index 397355fbf..87b851297 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,12 +1,12 @@ buildscript { - ext.kotlin_version = '1.3.72' + ext.kotlin_version = '1.3.50' repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.0' + classpath 'com.android.tools.build:gradle:4.1.0' classpath 'com.google.gms:google-services:4.3.10' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } @@ -15,18 +15,16 @@ buildscript { allprojects { repositories { google() - jcenter() + mavenCentral() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { project.evaluationDependsOn(':app') } task clean(type: Delete) { delete rootProject.buildDir -} \ No newline at end of file +} diff --git a/android/build.gradle.foss b/android/build.gradle.foss index 2d2af0acd..ed45c6588 100644 --- a/android/build.gradle.foss +++ b/android/build.gradle.foss @@ -1,12 +1,12 @@ buildscript { - ext.kotlin_version = '1.3.72' + ext.kotlin_version = '1.3.50' repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.0' + classpath 'com.android.tools.build:gradle:4.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -14,15 +14,13 @@ buildscript { allprojects { repositories { google() - jcenter() + mavenCentral() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { project.evaluationDependsOn(':app') } diff --git a/android/gradle.properties b/android/gradle.properties index 98cb8719d..9a334c62e 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,5 +1,5 @@ -android.enableJetifier=true -android.useAndroidX=true org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true android.enableR8=true android.enableDexingArtifactTransform=false diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 939efa295..bc6a58afd 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip diff --git a/android/settings.gradle b/android/settings.gradle index 5a2f14fb1..44e62bcf0 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,15 +1,11 @@ include ':app' -def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() -def plugins = new Properties() -def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') -if (pluginsFile.exists()) { - pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } -} +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } -plugins.each { name, path -> - def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() - include ":$name" - project(":$name").projectDir = pluginDirectory -} +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/android/settings_aar.gradle b/android/settings_aar.gradle deleted file mode 100644 index e7b4def49..000000000 --- a/android/settings_aar.gradle +++ /dev/null @@ -1 +0,0 @@ -include ':app' diff --git a/pubspec.foss.yaml b/pubspec.foss.yaml index 115b53603..00036558b 100644 --- a/pubspec.foss.yaml +++ b/pubspec.foss.yaml @@ -55,7 +55,7 @@ dependencies: flutter_launcher_icons: ^0.9.1 overflow_view: ^0.3.1 flutter_styled_toast: ^2.0.0 - permission_handler: ^8.1.4+2 + permission_handler: ^8.3.0 file_picker: ^4.2.3 draggable_scrollbar: ^0.1.0 boardview: ^0.2.2 diff --git a/pubspec.next.yaml b/pubspec.next.yaml index 9223726f5..588a8c2ae 100644 --- a/pubspec.next.yaml +++ b/pubspec.next.yaml @@ -55,7 +55,7 @@ dependencies: flutter_launcher_icons: ^0.9.1 overflow_view: ^0.3.1 flutter_styled_toast: ^2.0.0 - permission_handler: ^8.1.4+2 + permission_handler: ^8.3.0 file_picker: ^4.2.3 draggable_scrollbar: ^0.1.0 boardview: ^0.2.2 diff --git a/pubspec.yaml b/pubspec.yaml index 9223726f5..588a8c2ae 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -55,7 +55,7 @@ dependencies: flutter_launcher_icons: ^0.9.1 overflow_view: ^0.3.1 flutter_styled_toast: ^2.0.0 - permission_handler: ^8.1.4+2 + permission_handler: ^8.3.0 file_picker: ^4.2.3 draggable_scrollbar: ^0.1.0 boardview: ^0.2.2