From 959156443a95b10239d65cae5bad5b0eaaafcfe3 Mon Sep 17 00:00:00 2001 From: kodjomoustapha <107993382+kodjodevf@users.noreply.github.com> Date: Tue, 8 Aug 2023 22:24:19 +0100 Subject: [PATCH] add workflow --- .github/workflows/release.yml | 185 +++++++++++++++++ assets/mangayomi_logo.png | Bin 123095 -> 0 bytes ios/Podfile | 2 +- ios/Podfile.lock | 10 +- ios/Runner.xcodeproj/project.pbxproj | 189 +++++++++--------- ios/Runner/Info.plist | 12 +- lib/eval/m_bridge.dart | 2 +- .../sources/widgets/source_list_tile.dart | 51 +++-- lib/modules/main_view/main_screen.dart | 2 +- lib/modules/manga/reader/reader_view.dart | 4 +- lib/modules/webview/webview.dart | 20 +- .../cloudflare/cloudflare_bypass.dart | 8 +- .../http_service/cloudflare/cookie.dart | 8 +- linux/.gitignore | 1 - linux/CMakeLists.txt | 138 ------------- linux/flutter/CMakeLists.txt | 88 -------- linux/flutter/generated_plugin_registrant.cc | 47 ----- linux/flutter/generated_plugin_registrant.h | 15 -- linux/flutter/generated_plugins.cmake | 33 --- linux/main.cc | 6 - linux/my_application.cc | 104 ---------- linux/my_application.h | 18 -- macos/Flutter/GeneratedPluginRegistrant.swift | 2 - macos/Podfile.lock | 16 +- macos/Runner.xcodeproj/project.pbxproj | 120 ++++++----- macos/Runner/DebugProfile.entitlements | 2 - pubspec.lock | 40 ++-- pubspec.yaml | 2 +- 28 files changed, 409 insertions(+), 716 deletions(-) create mode 100644 .github/workflows/release.yml delete mode 100644 assets/mangayomi_logo.png delete mode 100644 linux/.gitignore delete mode 100644 linux/CMakeLists.txt delete mode 100644 linux/flutter/CMakeLists.txt delete mode 100644 linux/flutter/generated_plugin_registrant.cc delete mode 100644 linux/flutter/generated_plugin_registrant.h delete mode 100644 linux/flutter/generated_plugins.cmake delete mode 100644 linux/main.cc delete mode 100644 linux/my_application.cc delete mode 100644 linux/my_application.h diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..a6936a8 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,185 @@ +name: Build & Release + +on: + push: + tags: + - v* + +concurrency: + group: ${{ github.workflow }}-${{ github.ref_name }} + cancel-in-progress: true + +jobs: + + build-and-release-android: + permissions: + contents: write + runs-on: ubuntu-latest + steps: + + - name: checkout branch + uses: actions/checkout@v3 + + - name: setup flutter + uses: subosito/flutter-action@v2.10.0 + with: + flutter-version: 3.10.6 + channel: 'stable' + + - name: Setup Android keystore + run: | + echo "${{ secrets.SIGNING_KEY_STORE_BASE64 }}" | base64 -di > android/app/upload-keystore.jks + echo "${{ secrets.SIGNING_KEY_PROPERTIES }}" > android/key.properties + + - name: flutter pub get + run: | + git config --global core.longpaths true + flutter pub get + + - name: build android + run: | + flutter build apk --release --split-per-abi + cd build/app/outputs/flutter-apk + mv app-arm64-v8a-release.apk Mangayomi-${{ github.ref_name }}-android-arm64-v8a.apk + mv app-armeabi-v7a-release.apk Mangayomi-${{ github.ref_name }}-android-armeabi-v7a.apk + mv app-x86_64-release.apk Mangayomi-${{ github.ref_name }}-android-x86_64.apk + + - name: upload artifact android + uses: actions/upload-artifact@v3 + with: + path: "build/app/outputs/flutter-apk/Mangayomi-*.apk" + + - name: release packages android + uses: ncipollo/release-action@v1 + with: + artifacts: "build/app/outputs/flutter-apk/Mangayomi-*.apk" + allowUpdates: true + omitBody: true + + + build-and-release-ios-ipa: + permissions: + contents: write + runs-on: macos-latest + steps: + # Checkout branch + - name: checkout branch + uses: actions/checkout@v3 + + - name: setup flutter + uses: subosito/flutter-action@v2.10.0 + with: + flutter-version: 3.10.6 + channel: 'stable' + + - name: flutter pub get + run: | + git config --global core.longpaths true + flutter pub get + + - name: build ios + run: | + flutter build ios --release --no-codesign + cd build/ios/iphoneos + mkdir Payload + cd Payload + ln -s ../Runner.app + cd .. + zip -r app-release.ipa Payload + mv app-release.ipa Mangayomi-${{ github.ref_name }}-ios.ipa + + - name: upload artifact ios + uses: actions/upload-artifact@v3 + with: + path: "build/ios/iphoneos/Mangayomi-*.ipa" + + - name: release package ios + uses: ncipollo/release-action@v1 + with: + artifacts: "build/ios/iphoneos/Mangayomi-*.ipa" + allowUpdates: true + omitBody: true + + build-and-release-macos-dmg: + permissions: + contents: write + runs-on: macos-latest + steps: + + - name: checkout branch + uses: actions/checkout@v3 + + - name: setup flutter + uses: subosito/flutter-action@v2.10.0 + with: + flutter-version: 3.10.6 + channel: 'stable' + + - name: flutter pub get + run: | + git config --global core.longpaths true + flutter pub get + + - name: build macos + run: | + cd macos + pod update + cd .. + flutter build macos --release + brew install create-dmg + create-dmg --volname Mangayomi-${{ github.ref_name }}-macos --window-pos 200 120 --window-size 800 450 --icon-size 100 --app-drop-link 600 185 Mangayomi-${{ github.ref_name }}-macos.dmg build/macos/Build/Products/Release/Mangayomi.app + + - name: upload artifact macos + uses: actions/upload-artifact@v3 + with: + path: "/Users/runner/work/mangayomi/mangayomi/*.dmg" + + - name: release package macos + uses: ncipollo/release-action@v1 + with: + artifacts: "/Users/runner/work/mangayomi/mangayomi/*.dmg" + allowUpdates: true + omitBody: true + + + build-and-release-windows-zip: + permissions: + contents: write + runs-on: windows-latest + steps: + + - name: checkout branch + uses: actions/checkout@v3 + + - name: setup flutter + uses: subosito/flutter-action@v2.10.0 + with: + flutter-version: 3.10.6 + channel: 'stable' + + - name: flutter pub get + run: | + git config --global core.longpaths true + flutter pub get + + - name: build windows + run: | + flutter build windows --release + $DestDir = "build\windows\Mangayomi-${{ github.ref_name }}-windows" + $SrcDir = "build\windows\runner\Release" + New-Item -Path $DestDir -ItemType Directory + Copy-Item $SrcDir\* -Recurse $DestDir + Copy-Item -Filter *.dll -Path windows\* -Destination $DestDir -Force + Compress-Archive $DestDir build\windows\Mangayomi-${{ github.ref_name }}-windows.zip + + - name: upload artifact windows + uses: actions/upload-artifact@v3 + with: + path: build\windows\Mangayomi-*.zip + + - name: release package windows + uses: ncipollo/release-action@v1 + with: + artifacts: build\windows\Mangayomi-*.zip + allowUpdates: true + omitBody: true \ No newline at end of file diff --git a/assets/mangayomi_logo.png b/assets/mangayomi_logo.png deleted file mode 100644 index c281996157f00cfb8946e61823f113aa95c8bb0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123095 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 z zMSAlfXE{2Swu}(c$YQQu=@hNU!D!Q|G~T^-*#5Bds^#^jdguv&|BS65RhQe0Cmodr z#tw{PS04GArw=%N4ImmZuRX&4$9i=C9Vsvjp}oWt3D);XvZVJn7zxPVZX=UY_tAR> zR|Ns#UCC$VKwx7gyRS%!UwmR2`>p9lU|xOlD%|C=I8 z?;jy>#|r2two`z#jZ*W;m&g{S;&87j-Idd@9+hT%u+>ielfn)EDe{Y%rAQ&g)|n!r zj-H~U&d|m~!PTp7N77dU(N8MZ?Kf^^tc2*4KBJd<@)r4$F?Q+5GiP1CzbyBrc{*|a znqr6s(8#~2LZxrB41*>uU#kZ}Ul7VRjj8+P549CI$X=@wKhU3dR6ztOeo%8XbFgPm zq$QCbrznhFY}jgDvHT4z8zyy`1;?VdU^RwR`j`HW--IODPL!1yP<7j{O)y198MM(x zX;rzr+!DzedFQe-eGozN3Fq@gs z#-vP-XTbDK_>KmN71CC|;RyST@Kg*g)?;DBA!`8!PvZ+Z*Nh~nzW00nsaUS>YtzF2 zquP$yj7$b<|DleTvtXRp;vr2|$`3G}SvGr94R8h58rNs{gl7o<`^(J^dm(rEAAp?c z{3^VG9v1=gS4(Z+^wSh;=KRyosXicK0+)1^hbaTWV!|XAGPp3D$ljfNW#+xyG@;bYo&u3XVxaFL_B96aR7ATc}-Qjljq z>+~fYR=oIKR^EKI12GRC+!s;sw4R*6TNY{U5i3GS8Jzf5W=p{96~LihFYr|XXx#b` z4=pbs^kY}yyPgm7!lCYmO*K$#u$>mtgND=gKQD3E(JgVHneKG~7Ca;tJj7%6u<$&n z!bx4k9qn+M%78wyir8Is{IH$t_4sB~|D&Ve7+(ofuPKy@_@YWY_X zE*m~_ey|IQIms|y~o~lak7_q{^6ic?}xpbym%t) z!>V4_Z@r!A-PsX;zJ`P$+M5KWv>N!;_tIHoh3{l5V?H2mlT;hj9(@hf#)J0H$GmEQ z-m34(3bN?j0RQZe3B3VAD79wF#o;`$ic6rH8P`t8 zgr4xun+|F#qG?K*jD~JKnYjX=m!SWi7mM@vcJwzNY2OqO*Ft}DTAfN1Axslc+eeYl zW5b3V?WiAZmLaRBk=5ttQNTxaM{ z%a zYPrtK+<{*~RSW}LEK4;WgFtNc-Ci=FinSVKgkR22$obucj^`&NlQga@IRtPWqSP|i zfF7);BiaXyRG|Gp3|)FHdSmKGo*?w*k1?maHUMoy0=&DJB*X@{&uN77$`O3$8=_9I zYrfKD0Mtg^8}Tp~e+Rh5TVXgtYR_{(J6QJv+5|n zXAGzptu6wOG}zubLHD$T&x8z`p@6?QIPI3EM(y;?Fq|@=mx`-mP5VyO;oi5p|7AmT z?PgD&m=g^ix^AJ{-ko!ObUPL}^d{3HMl1D)c&YL;1+xt{ue}yy;d_B3VBe!kL0v*2 z0oeJ6)U$mpK{n#ly80cmBAU|r)N3*FvjQ2#K%K@<2wk#w9Y}yX@?>N@EEKt^!JCaH zr%zyza1Z}JJdrN#I!fY6w6)3{jRAHn%!A*3=wiwX5hI{6Q1c}xf!nX_GMOOy#lxe0 zQ6Q(s&jO+j#Je_tq!$B@Q+ng%<$5X@A@J{|)LX+4>*DW30!ra_lCV^X`AN|{miJIw zUNcfzs$HcnWbg_BWIGMBKSwlf-2E>2%=DmnD-i6Z*c`!kVXwS;X|9gKZfCB>L+W3tbcas($EGw zQ)OrUIKcP*L;CM5%maBR4vOj*>x57eEs|r| z^&mB@mtYlCv1Pry-gikm7TK--9oU0a*@Du^FG^CmllDgnUKmrnE5Ath3fWJuRYSYrVH z>alR->1&9htddH_;ifwkJv*5Jss-@VAVE5}4%*MV=$h}J&G{c~vZD}XLLv_RD^GbA zfwS0@0}N!Z^1AA6msT<_XfyGLa&+6{l*a&jV*(QxdROR%fn^rc)@0LOozsaNLv8JhvX!}uVc!&~D zcndb{`t*sx-+BnU(@#K&BI9lnw^UG|=fv9bRJ%PcTk|c{R*P~zfg2GpXE09+yb3c1iDzE?<#x7Vnvd&O z!8oE0N}P;xX&sV``XQ5fyhk-HkNChqij9ECx$Yb#>hO~iyi^Tme1{DKF>oZnq@ z3JeXBUIBrCYklEG`zNjL=i3*L1w{q2Vm?gSb=T?PMd=d>kohYO7jA8P?>TNRFFJQ4 z=^rKV3w^gb{mhn0VIw4vyX@!zq?vOrc_3`51ROPdJ3u+4(nAmv+%BL#;cvm;Io(ZG z!fW_BGSz;=;f-{~3*L$}+0S*9n}CE&=EM!{#qEN}769I&hX)602X|h73MHpdW_;?j z`m_Eo3nD=EwjIxM^@D(Zc&LJZB&F;V=G&LpHAtnU&^i45~jngJO(!NMkQ%zL_DgGOWf;|hDE5<& z$Lin&1&MkBRj=%c7PlXjF-jU2+UstutpX0?`SpOU|NmheJwJ@^aWOK#xeUI_e%W@^ zAZ;xi-_eZ7#BuPwyy;IhEM(&u&db!Fc0vqIEV>zG`|xl+p|*LQr?{xroH3PJoG``l zGF*Y^Pj7eNSkR@o-hd2|w^@5E{#zmSj5+_pMk1_L_qbmxUHrdae&;{uuzG{es3Yd9 z9VJru8!4?>j&}}V?aaoit1@u1;1;Bj$;RT17$WRbbVM1m|I?#hU>zo=+f-EEI8D6v zDYg*(%_jaN;t@>i+^D`=ftn*$7Uyw>q015=6i{6rk^WL{Bb{ zxVDWZ8*uo#A2DavoBi^{>~OWJe;%V+&rhfQ?WHKs#aJAE_{7*? zr*EBJ^zUz}QaH}D%2bUeW?sfNwvezSs%#Q7q9%u%JJ0xTqemT=h}V$N4Dm3s=(cVD zdy(Hn7`c!aA(W~;v4|8J0@CVx%^tdRD@w|Wn7e~2G;Iq1Vg{1cbu8>6kY_>N=l0Qh z+sWbn4i1=ma{vglYu6-#v#-hYbr}K)iauoP`G~0JRKv8H%)CAPFDqn=yxDg7nePe) zIo8y(-LKIik6s+`%TlvM03DCo+V^XgE;JxZ+DEx0RJpH*gN*B(rWd3x=@vL!JEOgL z=tsWiX|$fY9Ue5#9%en3-=af0nawVY&g!9HB?HRZPiDO;A&}y;39pK^&f$zbb1(*V zp~bPfMXh#7HBHgGC?*FS!IbAY;?fm zC4ASVEC$mhdU2gaA6{U-ou~S6{GE+D9eMRb(l>zI=;c&p(N?ztjVFkZ8c+$3!4PKu z2I!yNH0StT4^sG45oLD@h!T#0ccwk{&#RVmHKQPq+6$eDoaLse?AtQEiLL-!eOKIt zl0yKURrbj2L|7LIYLnKyufNq4w?P|B<|YN$ECXu)c3tbuLV!tCH={h7mOztCkoP4h z0thEI2b0H7OnzchUrUKiQiE7~KDkfBeijk^5%w4M)6>Vgb0Wc+wh`9Pvt7SP>x0SF zWak*tnctmfBBZ79RAhh-G*madc6&x1xUG@4-8~}$^qorENzXqH1KO08)EJBsYw1O3 zISqtR#J7H@SJihfLBtT8)(z%8aatNWF~RDeAa)*{Rc^dJQ1U_MKL@sST^z$k6p>Nd zQmY)~&HYM=x?GN8UF*{_mn@PtXgs{4Ck-nGLEqC=Rcq$TP>Yn@2vQm|9d;;<4+Md3 zhel!QNpe$|Sa*iYG>vR>EzmP2x)de#XB&hh_RimnD{%iMN0kg{wKQjR_tWi);xQ*H z?sXAV$atl+k@=strYn_9y-9=+yGB_vYbDL@vA~dl!|9b_d?*43q^jj`^&urD3vz+W z=e9Kn5GNmUMzY0G9N#(l*-RDblBIZ~#qIlWo@)2NHdq!(LeX+bd)2czJrW#lnQsG+ z-z!Pn;krcI>qHEVW`aecI}qK=6PzRm`|lzYnW&F#k4W`4kz8zP*K#PN>gV#jC+QSB(mWT3!LrfxK>M(+>ZSd88=pf^lUxpR3CM7|A9^g2^8bczR!JGZ*XDHv`(_^?=v? zL~ucZs-Q~APaPaI9{Aynfb9wf+Vwy@2-l8DMF2`mAheM*;MQCGGPH>~W>Qq6$Gni+ z?Z}PCzofd9x4gFJ3a*Dj$6-tIYk-axLQ9|j1{}4C9hr3YzTiNc4CjYKw_1v0KPqJd z?{;u*vOUmP{_4>9_OW$U-EWeZp(cOtVXE2l#?eB+_=7PIBqt8w$Dl5-fGq8wn%^JI zKxozTEt$+`T+k-pV^F4-b4BPEEMC;S2gWz>kX+DYb@BymfDgMY_U9|$ z4wq^QLDOZDr1$NeeozxYBET{E0kEcyy14TZOo^XgH>u%lJadoVVdZp2#iIeC_uk|S zLOc8pCNZEiy5%-d4z+F1#{+dw96WgooKf0Fcs7fOAN*6*8;MEbPxcyNbvp4mFn{au z?i2pR4d2@j`>S(OhB8TBYz{=}NlR5fNY4ans*D)=eKU9@(jo$(3?K}NFW|S(zkr^M z{f`yruTx>rv;u!%yum~Q@0VxW&$cpL%1yd>fJkztL*uQiF6jb=gpV#UgMa4#S@7i= z55a$5_&fx>mSObg9lHZe+e%Q!%``Q0Zv!Dhs6HO}XFiaM$?{D&3oK^- zY5*%NaK6GXyDE7BY17dTNTYdnCgHk1LGLM@RK`p6@=L@AJm5RPV=sZnesf5CP_sb> z5ue{PYcg`c8$6WxJq^fzCM50;5i_K#g2$kbfdaPkXc2U(`H&e9e=F&q=&pCMGJ)lR zQm}2eQ*IY;cjF;ltCyow2)0vpex*0v+wj=5<4FgQHkdXhXGQ}~*3*@nFoZ=5o~zt& zR0Bs%pbA%{|8F#i&)9v7&3p*NN0Lg^_IMPdsus%Qr+0ltju2-1yKgjM#j(mU?ZYqo zg5dqr{*3JV_kSmo8bYfY=x5D{uISU1=wPav^}AwAYTFvCpqkbLq*Bega{?+`S& zpSgCsN~hil{wX?=LB;Ry89wgXWj2$hpo_MrsFdjs~2BWkCf~=7H^F) zIA7|w9Xft^dejs@O*iK4$?RT_AB_^v2n}<#WcXVi<_X@06@Ht^oFT2{aOv$IPg38W zW?JPpTIh>;AF{m;=M}18#H565J@VUa9C;TbQC+B>p81R1yRM)rIagEa9VUfCiFDw8 zi0bfh-TDuOae3%Aw*oE{#i7koQh)gMD8fbh_13r4ZeL+}N;H_l{JZH+6Am3jV2#U+lO{ z#!r-%P!XHGU*Cr4lb>uNmxEHJQW+12gg=;P;pVX=v(Y^;_}p3Jpqapb^p1Qin9x^# zOzpezrpL6)NxsTahe}v_ zilmKRjUhbqg`VC>?TVkxt3D4y^{=+zBjj~@0?R0+IfxQ%uj@FBek-L=x7b`UMv0i^ zp_CDbhry9HKKoHBU`rf78|_QB##Dv>1SBmd@D%KR&&H+SQDwij@!4atQaTBoQd~S+ zV6zYBb;@X#-OO_v)?3TKF}ll5bH870l$&P4_2{@_hhBJTzNKSZrHE20fteyS(RSU;!v0e zckzY@Wf3!z1w?)yDi%`%#;h5QExdU&4!utTLCwFn4~(__OZfM9YmFmTvqJML!7J)j zj*vQ|-u*G+X?v4PL1y2Zx0<<`t~l(54=sNv(%=ds4-loAkPOhuoAU(*<+))&2O3 zLag!@#$vSh$2LQ_%ucXe4Qyeup(TNQh$YdaL-KmjRa3^JF-X+}-iiRRvG;^-;{97; zT+4Fh*54$tBf-jTgVLT;lVR67_)Rdpm+6l7P7jVE&Zs;n@qzjyBgh3%cUlw>h>zV|CwY(}cH-wQt&xHC2F(y64i zTPdh<+@WuErf5wDeFtJrbc@U4Oz6O%%*bf)EV4&7k-f9G7BW*Jn~)W< zccc*6d(X0G_WoVxsn`4Sz5SklyHUQ?ux-K5HEk`V zD2CK66Hd`aODT5?zTFx8`!`4Hg!QoR^bgg~%tf85KGHWQ+ZMG*Uhthem)e=_U)E&F zV$AS|E&OL=Q}j3Q%SdY!Q~`f1QWh-<h-UVy+49`JetXBeeR z{~@w5YVB!ZK4G7lAuEeu4j&O81(m;pnazhcuF!#Aam`Hrg_g017rY5gN3Td6G^Ta>aTNqHYv-<692ku6)XzE_4*y%cy1ZD}>mvP6 zsw)+}yxJ^Wvtt7eS$yXj%xB~)KT8+oC$4j+xTw}N85+C=^>ldGWhl1#?CxQ$B{d&T zFK>?h_sgDmiQG!Jo|5Ev!<;`8G`%gl#jJmjnEtDop@;y~SLk#+ikV?J2f2-Ni0^e= z$Fi-WEtLzORBpx#usNGd9rVA_cz0k!w|k|=D4tL(ybi2u;%(zv+%M@67DLjDXulJA zv_4B8d=u&X*m=XdLWBMIkq;znhu?0TP8G53`+C8VX;uXLa4SQw46U=MGl5Ft(Q4pQ z{kL=9Zym?}KrOY<&^`Vc8rRWa81wz8JNwFTeaYsm(g)wFp@U?+i3+f7%^ka2eDNn| z&%$vG7*SEZf5(BVebIeNFv3@Jk)QO#{e`Sht!Bf66~8w}VVnyq1|Fr=hL$OS`re>j z{P?IxFG#?S#Pa)Q(MtScf-CJR`G__st(Gi7ji?;iz`k%Xy@K&?o?wA0llj+|27)&< z&$7WrMt0Qat&$TO9{Z;NbN5;!&4zjx_ znO0kwD|Nl;o;4C3N@?(Mrk zk?~bWZwcdaGJdN-33tX<{$AJi-!IJ@oShzckDXyv*9s>iW^q{&SPFIx3f;93-$>Al zVl^b5ytjC*@^kz zr&gjb{bmcbZ=05kL;q&_7{U%3E8q9|Tx8-KF{+Qx5+IMgVtjBp-M*-j4)UybG#vjp zcRk`4tsu_!Wc_`$K3P%Mr#>oS=bN6KAv;}jpW#`IR?9Ylt>H}yx%8OW+b@P< zGxG}1svUeoy)oq9Oh_;*(Xiv>+;!>*>tWSf)Q$^TOZ7ctdXHm+JJLBt2r2IMS`Fz! zfSy%9&RL1Oet#Ldo0g<~RKcvDgIYWi9)XgoY3Mmb++0n#difNy7*gLkb8`&aY_Gk& zEgok?f_P`nH_4XcmM`qgFm2DSf~~bAo#EqF-8DG!^h9mx^61hJuTlv!6SZJp{gv)> z6y9t`;N~WN%_Z~Tr)KHOJM7ki_(E~?NrJJTT`jTRa7BJbzITDK>aB|+w<;17#?(8d zHnamIOp9?+2?0AMKgMXC2slkFa0Mw((+VVB37BJLu-JZhQc2zjlQ--beWQv&~*Do zI}N-0+~6)XFNIVW_-bS@CEx7&{}Cn(5*Hv1`77{!tuodYkD%r|9+ff4{mE4sA&4 znKYCgqnr6&C{2p}MWS`fHsA+ke~oQ7>kesO7Hf}>(G$cIt%;yW-^`Zm@+mP~EI$^` zOi@Q`MZ8=8>pJt-<1}r8`z}ROfV_#gI`c8Ov=3~)7Zk1A&A(#AHcD2)OD&#siJgZEJ``#mFZ~#!%Hvr#j*6}Fz|0KF6#)MFH<_|H2Jvnset;%t}IvqW!1{1cWQKpLKdDt0q1)?;w z?72;gi~Ir!Ur3 zz`^pnv-<3g>52WgHg6jbeS7nZf2UviQ%G*^oZNRwQ*puB^?O!ImV2}V>9g3eNY#LC zpAOxlt+eXb-isI0XOdwFCzj4jIGeDXbi9Y;>L0@+#X;ZN`3dweQy6>wZ=)XpMid&8 zVP(=LTE9iN_(*w^AFd^`9lNma`|FMuyGy;q)?F{pku`*Y?I7j3apS1wlZ*r+I)-Pm zA{1He%_{-D6qq?G2C}~GJ9Er=M%mx%LiurD1)R%>o?3JguC7Nzj9{)rV=z%Pqkx*} zXp^dlHLRi|WM5o8otlo|rLyXd0;2w;;Q1!aK?e0OqZv%ZXspLk)OLE7-Tlndjc!JN zC6zo&8vwC9@XVWA;c3oXX+0I2l2pmy?b9TcpuDP?tvHVR;+8Mp*-yk%xY⪻?GQa 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 /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - F7E3AB66492405CCCAB00559 /* [CP] Check Pods Manifest.lock */ = { + 8367C60865A4AC5D45A4812E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -362,6 +324,43 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; + C3872998E5EE82D803AA315D /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -435,7 +434,6 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -454,7 +452,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -472,7 +470,6 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -487,7 +484,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E3DBD23DF4F6477DD1B2D619 /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = 6D832864899152792991D343 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -505,7 +502,7 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 48F414924F0EBD7233D9B3FB /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 6BDC2D08725CFD30E791D1F9 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -521,7 +518,7 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8FEFB82C0F5EBF076D246DED /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 1C61F57EF3EA8A85A2621879 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -558,7 +555,6 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -583,7 +579,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -614,7 +610,6 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -633,7 +628,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -653,7 +648,6 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -676,7 +670,6 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 72a8744..5ab9239 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -2,8 +2,6 @@ - CADisableMinimumFrameDurationOnPhone - CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName @@ -26,12 +24,6 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS - UIApplicationSupportsIndirectInputEvents - - UIBackgroundModes - - fetch - UILaunchStoryboardName LaunchScreen UIMainStoryboardFile @@ -51,5 +43,9 @@ UIViewControllerBasedStatusBarAppearance + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + diff --git a/lib/eval/m_bridge.dart b/lib/eval/m_bridge.dart index 8cc6507..018034d 100644 --- a/lib/eval/m_bridge.dart +++ b/lib/eval/m_bridge.dart @@ -288,7 +288,7 @@ class MBridge { headlessWebView!.dispose(); }, initialUrlRequest: URLRequest( - url: WebUri.uri(Uri.parse(url)), + url: Uri.parse(url), ), ); headlessWebView.run(); diff --git a/lib/modules/browse/sources/widgets/source_list_tile.dart b/lib/modules/browse/sources/widgets/source_list_tile.dart index 047413d..7237e48 100644 --- a/lib/modules/browse/sources/widgets/source_list_tile.dart +++ b/lib/modules/browse/sources/widgets/source_list_tile.dart @@ -5,6 +5,7 @@ import 'package:mangayomi/main.dart'; import 'package:mangayomi/models/source.dart'; import 'package:mangayomi/utils/colors.dart'; import 'package:mangayomi/utils/language.dart'; +import 'package:cached_network_image/cached_network_image.dart'; class SourceListTile extends StatelessWidget { final bool isManga; @@ -32,33 +33,29 @@ class SourceListTile extends StatelessWidget { context.push('/mangaHome', extra: source); }, leading: Container( - height: 37, - width: 37, - decoration: BoxDecoration( - color: Theme.of(context).secondaryHeaderColor.withOpacity(0.5), - borderRadius: BorderRadius.circular(5)), - child: - // source.logoUrl!.isEmpty - // ? - const Icon(Icons.source_outlined) - // : CachedNetworkImage( - // httpHeaders: ref.watch( - // headersProvider(source: source.name!)), - // imageUrl: source.logoUrl!, - // fit: BoxFit.contain, - // width: 37, - // height: 37, - // errorWidget: (context, url, error) { - // return const SizedBox( - // width: 37, - // height: 37, - // child: Center( - // child: Icon(Icons.source_outlined), - // ), - // ); - // }, - // ), - ), + height: 37, + width: 37, + decoration: BoxDecoration( + color: Theme.of(context).secondaryHeaderColor.withOpacity(0.5), + borderRadius: BorderRadius.circular(5)), + child: source.iconUrl!.isEmpty + ? const Icon(Icons.source_outlined) + : CachedNetworkImage( + imageUrl: source.iconUrl!, + fit: BoxFit.contain, + width: 37, + height: 37, + errorWidget: (context, url, error) { + return const SizedBox( + width: 37, + height: 37, + child: Center( + child: Icon(Icons.source_outlined), + ), + ); + }, + ), + ), subtitle: Row( children: [ Text( diff --git a/lib/modules/main_view/main_screen.dart b/lib/modules/main_view/main_screen.dart index 943e1e8..225d391 100644 --- a/lib/modules/main_view/main_screen.dart +++ b/lib/modules/main_view/main_screen.dart @@ -185,7 +185,7 @@ class MainScreen extends ConsumerWidget { location != '/browse' && location != '/more' ? 0 - : 80, + : Platform.isIOS? 110:80, child: NavigationBarTheme( data: NavigationBarThemeData( indicatorShape: RoundedRectangleBorder( diff --git a/lib/modules/manga/reader/reader_view.dart b/lib/modules/manga/reader/reader_view.dart index c87a0bc..bf112e4 100644 --- a/lib/modules/manga/reader/reader_view.dart +++ b/lib/modules/manga/reader/reader_view.dart @@ -491,11 +491,11 @@ class _MangaChapterPageGalleryState mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ AnimatedContainer( - height: _isView ? 80 : 0, + height: _isView ? Platform.isIOS?120:80 : 0, curve: Curves.ease, duration: const Duration(milliseconds: 200), child: PreferredSize( - preferredSize: Size.fromHeight(_isView ? 80 : 0), + preferredSize: Size.fromHeight(_isView ?Platform.isIOS?120: 80 : 0), child: AppBar( centerTitle: false, automaticallyImplyLeading: false, diff --git a/lib/modules/webview/webview.dart b/lib/modules/webview/webview.dart index cc17bad..5289e63 100644 --- a/lib/modules/webview/webview.dart +++ b/lib/modules/webview/webview.dart @@ -160,7 +160,7 @@ class _MangaWebViewState extends ConsumerState { Share.share(_url); } else if (value == 2) { await InAppBrowser.openWithSystemBrowser( - url: WebUri.uri(Uri.parse(_url))); + url: Uri.parse(_url)); } else if (value == 3) { CookieManager.instance().deleteAllCookies(); } @@ -182,11 +182,7 @@ class _MangaWebViewState extends ConsumerState { _url = url.toString(); }); }, - onPermissionRequest: (controller, request) async { - return PermissionResponse( - resources: request.resources, - action: PermissionResponseAction.GRANT); - }, + shouldOverrideUrlLoading: (controller, navigationAction) async { var uri = navigationAction.request.url!; @@ -217,7 +213,7 @@ class _MangaWebViewState extends ConsumerState { _url = url.toString(); }); }, - onReceivedError: (controller, request, error) {}, + onProgressChanged: (controller, progress) async { setState(() { this.progress = progress / 100; @@ -237,12 +233,12 @@ class _MangaWebViewState extends ConsumerState { _canGoback = canGoback; _canGoForward = canGoForward; }); - }, - initialSettings: InAppWebViewSettings( - // contentBlockers: adsContentBlockers(), - userAgent: isar.settings.getSync(227)!.userAgent!), + },initialOptions: InAppWebViewGroupOptions( + crossPlatform: InAppWebViewOptions(userAgent: isar.settings.getSync(227)!.userAgent!), + ), + initialUrlRequest: - URLRequest(url: WebUri.uri(Uri.parse(widget.url))), + URLRequest(url: Uri.parse(widget.url)), ), ), ], diff --git a/lib/services/http_service/cloudflare/cloudflare_bypass.dart b/lib/services/http_service/cloudflare/cloudflare_bypass.dart index 6269967..9932ff8 100644 --- a/lib/services/http_service/cloudflare/cloudflare_bypass.dart +++ b/lib/services/http_service/cloudflare/cloudflare_bypass.dart @@ -65,8 +65,10 @@ Future cloudflareBypass( isOk = true; headlessWebView!.dispose(); }, - initialSettings: InAppWebViewSettings( - userAgent: defaultUserAgent, + initialOptions: InAppWebViewGroupOptions( + crossPlatform: InAppWebViewOptions( + userAgent: defaultUserAgent, + ), ), initialUrlRequest: URLRequest( headers: headers(sourceId: sourceId), @@ -77,7 +79,7 @@ Future cloudflareBypass( : method == 2 ? 'PUT' : 'DELETE', - url: WebUri.uri(Uri.parse(url)), + url: Uri.parse(url), ), ); diff --git a/lib/services/http_service/cloudflare/cookie.dart b/lib/services/http_service/cloudflare/cookie.dart index 168646d..2cef261 100644 --- a/lib/services/http_service/cloudflare/cookie.dart +++ b/lib/services/http_service/cloudflare/cookie.dart @@ -7,8 +7,7 @@ part 'cookie.g.dart'; Future setCookie(SetCookieRef ref, String sourceId, String url) async { CookieManager cookie = CookieManager.instance(); - final cookies = - await cookie.getCookies(url: WebUri.uri(Uri.parse(url.toString()))); + final cookies = await cookie.getCookies(url: Uri.parse(url.toString())); final newCookie = cookies.where((element) => element.name == "cf_clearance").toList(); if (newCookie.isNotEmpty) { @@ -20,9 +19,8 @@ Future setCookie(SetCookieRef ref, String sourceId, String url) async { Future setCookieB(String sourceId, String url) async { CookieManager cookie = CookieManager.instance(); - - final cookies = - await cookie.getCookies(url: WebUri.uri(Uri.parse(url.toString()))); + + final cookies = await cookie.getCookies(url: Uri.parse(url.toString())); final newCookie = cookies.where((element) => element.name == "cf_clearance").toList(); if (newCookie.isNotEmpty) { diff --git a/linux/.gitignore b/linux/.gitignore deleted file mode 100644 index d3896c9..0000000 --- a/linux/.gitignore +++ /dev/null @@ -1 +0,0 @@ -flutter/ephemeral diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt deleted file mode 100644 index b868700..0000000 --- a/linux/CMakeLists.txt +++ /dev/null @@ -1,138 +0,0 @@ -# Project-level configuration. -cmake_minimum_required(VERSION 3.10) -project(runner LANGUAGES CXX) - -# The name of the executable created for the application. Change this to change -# the on-disk name of your application. -set(BINARY_NAME "mangayomi") -# The unique GTK application identifier for this application. See: -# https://wiki.gnome.org/HowDoI/ChooseApplicationID -set(APPLICATION_ID "com.kodjodevf.mangayomi") - -# Explicitly opt in to modern CMake behaviors to avoid warnings with recent -# versions of CMake. -cmake_policy(SET CMP0063 NEW) - -# Load bundled libraries from the lib/ directory relative to the binary. -set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") - -# Root filesystem for cross-building. -if(FLUTTER_TARGET_PLATFORM_SYSROOT) - set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) - set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) - set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) - set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -endif() - -# Define build configuration options. -if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - set(CMAKE_BUILD_TYPE "Debug" CACHE - STRING "Flutter build mode" FORCE) - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS - "Debug" "Profile" "Release") -endif() - -# Compilation settings that should be applied to most targets. -# -# Be cautious about adding new options here, as plugins use this function by -# default. In most cases, you should add new options to specific targets instead -# of modifying this function. -function(APPLY_STANDARD_SETTINGS TARGET) - target_compile_features(${TARGET} PUBLIC cxx_std_14) - target_compile_options(${TARGET} PRIVATE -Wall -Werror) - target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") - target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") -endfunction() - -# Flutter library and tool build rules. -set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") -add_subdirectory(${FLUTTER_MANAGED_DIR}) - -# System-level dependencies. -find_package(PkgConfig REQUIRED) -pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) - -add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") - -# Define the application target. To change its name, change BINARY_NAME above, -# not the value here, or `flutter run` will no longer work. -# -# Any new source files that you add to the application should be added here. -add_executable(${BINARY_NAME} - "main.cc" - "my_application.cc" - "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" -) - -# Apply the standard set of build settings. This can be removed for applications -# that need different build settings. -apply_standard_settings(${BINARY_NAME}) - -# Add dependency libraries. Add any application-specific dependencies here. -target_link_libraries(${BINARY_NAME} PRIVATE flutter) -target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) - -# Run the Flutter tool portions of the build. This must not be removed. -add_dependencies(${BINARY_NAME} flutter_assemble) - -# Only the install-generated bundle's copy of the executable will launch -# correctly, since the resources must in the right relative locations. To avoid -# people trying to run the unbundled copy, put it in a subdirectory instead of -# the default top-level location. -set_target_properties(${BINARY_NAME} - PROPERTIES - RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" -) - -# Generated plugin build rules, which manage building the plugins and adding -# them to the application. -include(flutter/generated_plugins.cmake) - - -# === Installation === -# By default, "installing" just makes a relocatable bundle in the build -# directory. -set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) -endif() - -# Start with a clean build bundle directory every time. -install(CODE " - file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") - " COMPONENT Runtime) - -set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") -set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") - -install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) - -foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) - install(FILES "${bundled_library}" - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endforeach(bundled_library) - -# Fully re-copy the assets directory on each build to avoid having stale files -# from a previous install. -set(FLUTTER_ASSET_DIR_NAME "flutter_assets") -install(CODE " - file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") - " COMPONENT Runtime) -install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" - DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) - -# Install the AOT library on non-Debug builds only. -if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") - install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endif() diff --git a/linux/flutter/CMakeLists.txt b/linux/flutter/CMakeLists.txt deleted file mode 100644 index d5bd016..0000000 --- a/linux/flutter/CMakeLists.txt +++ /dev/null @@ -1,88 +0,0 @@ -# This file controls Flutter-level build steps. It should not be edited. -cmake_minimum_required(VERSION 3.10) - -set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") - -# Configuration provided via flutter tool. -include(${EPHEMERAL_DIR}/generated_config.cmake) - -# TODO: Move the rest of this into files in ephemeral. See -# https://github.com/flutter/flutter/issues/57146. - -# Serves the same purpose as list(TRANSFORM ... PREPEND ...), -# which isn't available in 3.10. -function(list_prepend LIST_NAME PREFIX) - set(NEW_LIST "") - foreach(element ${${LIST_NAME}}) - list(APPEND NEW_LIST "${PREFIX}${element}") - endforeach(element) - set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) -endfunction() - -# === Flutter Library === -# System-level dependencies. -find_package(PkgConfig REQUIRED) -pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) -pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) -pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) - -set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") - -# Published to parent scope for install step. -set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) -set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) -set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) -set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) - -list(APPEND FLUTTER_LIBRARY_HEADERS - "fl_basic_message_channel.h" - "fl_binary_codec.h" - "fl_binary_messenger.h" - "fl_dart_project.h" - "fl_engine.h" - "fl_json_message_codec.h" - "fl_json_method_codec.h" - "fl_message_codec.h" - "fl_method_call.h" - "fl_method_channel.h" - "fl_method_codec.h" - "fl_method_response.h" - "fl_plugin_registrar.h" - "fl_plugin_registry.h" - "fl_standard_message_codec.h" - "fl_standard_method_codec.h" - "fl_string_codec.h" - "fl_value.h" - "fl_view.h" - "flutter_linux.h" -) -list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") -add_library(flutter INTERFACE) -target_include_directories(flutter INTERFACE - "${EPHEMERAL_DIR}" -) -target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") -target_link_libraries(flutter INTERFACE - PkgConfig::GTK - PkgConfig::GLIB - PkgConfig::GIO -) -add_dependencies(flutter flutter_assemble) - -# === Flutter tool backend === -# _phony_ is a non-existent file to force this command to run every time, -# since currently there's no way to get a full input/output list from the -# flutter tool. -add_custom_command( - OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} - ${CMAKE_CURRENT_BINARY_DIR}/_phony_ - COMMAND ${CMAKE_COMMAND} -E env - ${FLUTTER_TOOL_ENVIRONMENT} - "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" - ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} - VERBATIM -) -add_custom_target(flutter_assemble DEPENDS - "${FLUTTER_LIBRARY}" - ${FLUTTER_LIBRARY_HEADERS} -) diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc deleted file mode 100644 index da8d880..0000000 --- a/linux/flutter/generated_plugin_registrant.cc +++ /dev/null @@ -1,47 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#include "generated_plugin_registrant.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -void fl_register_plugins(FlPluginRegistry* registry) { - g_autoptr(FlPluginRegistrar) desktop_webview_window_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "DesktopWebviewWindowPlugin"); - desktop_webview_window_plugin_register_with_registrar(desktop_webview_window_registrar); - g_autoptr(FlPluginRegistrar) flutter_meedu_videoplayer_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterMeeduVideoplayerPlugin"); - flutter_meedu_videoplayer_plugin_register_with_registrar(flutter_meedu_videoplayer_registrar); - g_autoptr(FlPluginRegistrar) isar_flutter_libs_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "IsarFlutterLibsPlugin"); - isar_flutter_libs_plugin_register_with_registrar(isar_flutter_libs_registrar); - g_autoptr(FlPluginRegistrar) media_kit_libs_linux_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "MediaKitLibsLinuxPlugin"); - media_kit_libs_linux_plugin_register_with_registrar(media_kit_libs_linux_registrar); - g_autoptr(FlPluginRegistrar) media_kit_video_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "MediaKitVideoPlugin"); - media_kit_video_plugin_register_with_registrar(media_kit_video_registrar); - g_autoptr(FlPluginRegistrar) screen_retriever_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "ScreenRetrieverPlugin"); - screen_retriever_plugin_register_with_registrar(screen_retriever_registrar); - g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); - url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); - g_autoptr(FlPluginRegistrar) window_manager_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "WindowManagerPlugin"); - window_manager_plugin_register_with_registrar(window_manager_registrar); - g_autoptr(FlPluginRegistrar) window_to_front_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "WindowToFrontPlugin"); - window_to_front_plugin_register_with_registrar(window_to_front_registrar); -} diff --git a/linux/flutter/generated_plugin_registrant.h b/linux/flutter/generated_plugin_registrant.h deleted file mode 100644 index e0f0a47..0000000 --- a/linux/flutter/generated_plugin_registrant.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#ifndef GENERATED_PLUGIN_REGISTRANT_ -#define GENERATED_PLUGIN_REGISTRANT_ - -#include - -// Registers Flutter plugins. -void fl_register_plugins(FlPluginRegistry* registry); - -#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 39980af..0000000 --- a/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,33 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - desktop_webview_window - flutter_meedu_videoplayer - isar_flutter_libs - media_kit_libs_linux - media_kit_video - screen_retriever - url_launcher_linux - window_manager - window_to_front -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST - media_kit_native_event_loop -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/linux/main.cc b/linux/main.cc deleted file mode 100644 index e7c5c54..0000000 --- a/linux/main.cc +++ /dev/null @@ -1,6 +0,0 @@ -#include "my_application.h" - -int main(int argc, char** argv) { - g_autoptr(MyApplication) app = my_application_new(); - return g_application_run(G_APPLICATION(app), argc, argv); -} diff --git a/linux/my_application.cc b/linux/my_application.cc deleted file mode 100644 index b65dfdb..0000000 --- a/linux/my_application.cc +++ /dev/null @@ -1,104 +0,0 @@ -#include "my_application.h" - -#include -#ifdef GDK_WINDOWING_X11 -#include -#endif - -#include "flutter/generated_plugin_registrant.h" - -struct _MyApplication { - GtkApplication parent_instance; - char** dart_entrypoint_arguments; -}; - -G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) - -// Implements GApplication::activate. -static void my_application_activate(GApplication* application) { - MyApplication* self = MY_APPLICATION(application); - GtkWindow* window = - GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); - - // Use a header bar when running in GNOME as this is the common style used - // by applications and is the setup most users will be using (e.g. Ubuntu - // desktop). - // If running on X and not using GNOME then just use a traditional title bar - // in case the window manager does more exotic layout, e.g. tiling. - // If running on Wayland assume the header bar will work (may need changing - // if future cases occur). - gboolean use_header_bar = TRUE; -#ifdef GDK_WINDOWING_X11 - GdkScreen* screen = gtk_window_get_screen(window); - if (GDK_IS_X11_SCREEN(screen)) { - const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); - if (g_strcmp0(wm_name, "GNOME Shell") != 0) { - use_header_bar = FALSE; - } - } -#endif - if (use_header_bar) { - GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); - gtk_widget_show(GTK_WIDGET(header_bar)); - gtk_header_bar_set_title(header_bar, "mangayomi"); - gtk_header_bar_set_show_close_button(header_bar, TRUE); - gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); - } else { - gtk_window_set_title(window, "mangayomi"); - } - - gtk_window_set_default_size(window, 1280, 720); - gtk_widget_show(GTK_WIDGET(window)); - - g_autoptr(FlDartProject) project = fl_dart_project_new(); - fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); - - FlView* view = fl_view_new(project); - gtk_widget_show(GTK_WIDGET(view)); - gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); - - fl_register_plugins(FL_PLUGIN_REGISTRY(view)); - - gtk_widget_grab_focus(GTK_WIDGET(view)); -} - -// Implements GApplication::local_command_line. -static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { - MyApplication* self = MY_APPLICATION(application); - // Strip out the first argument as it is the binary name. - self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); - - g_autoptr(GError) error = nullptr; - if (!g_application_register(application, nullptr, &error)) { - g_warning("Failed to register: %s", error->message); - *exit_status = 1; - return TRUE; - } - - g_application_activate(application); - *exit_status = 0; - - return TRUE; -} - -// Implements GObject::dispose. -static void my_application_dispose(GObject* object) { - MyApplication* self = MY_APPLICATION(object); - g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); - G_OBJECT_CLASS(my_application_parent_class)->dispose(object); -} - -static void my_application_class_init(MyApplicationClass* klass) { - G_APPLICATION_CLASS(klass)->activate = my_application_activate; - G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; - G_OBJECT_CLASS(klass)->dispose = my_application_dispose; -} - -static void my_application_init(MyApplication* self) {} - -MyApplication* my_application_new() { - return MY_APPLICATION(g_object_new(my_application_get_type(), - "application-id", APPLICATION_ID, - "flags", G_APPLICATION_NON_UNIQUE, - nullptr)); -} diff --git a/linux/my_application.h b/linux/my_application.h deleted file mode 100644 index 72271d5..0000000 --- a/linux/my_application.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef FLUTTER_MY_APPLICATION_H_ -#define FLUTTER_MY_APPLICATION_H_ - -#include - -G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, - GtkApplication) - -/** - * my_application_new: - * - * Creates a new Flutter-based application. - * - * Returns: a new #MyApplication. - */ -MyApplication* my_application_new(); - -#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 7983754..a1f5e3b 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -6,7 +6,6 @@ import FlutterMacOS import Foundation import desktop_webview_window -import flutter_inappwebview import flutter_meedu_videoplayer import flutter_web_auth_2 import isar_flutter_libs @@ -26,7 +25,6 @@ import window_to_front func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { DesktopWebviewWindowPlugin.register(with: registry.registrar(forPlugin: "DesktopWebviewWindowPlugin")) - InAppWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "InAppWebViewFlutterPlugin")) FlutterMeeduVideoplayerPlugin.register(with: registry.registrar(forPlugin: "FlutterMeeduVideoplayerPlugin")) FlutterWebAuth2Plugin.register(with: registry.registrar(forPlugin: "FlutterWebAuth2Plugin")) IsarFlutterLibsPlugin.register(with: registry.registrar(forPlugin: "IsarFlutterLibsPlugin")) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 9b53f05..dffcecd 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -1,9 +1,6 @@ PODS: - desktop_webview_window (0.0.1): - FlutterMacOS - - flutter_inappwebview (0.0.1): - - FlutterMacOS - - OrderedSet (~> 5.0) - flutter_meedu_videoplayer (0.0.1): - FlutterMacOS - flutter_web_auth_2 (1.1.1): @@ -20,7 +17,6 @@ PODS: - FlutterMacOS - media_kit_video (0.0.1): - FlutterMacOS - - OrderedSet (5.0.0) - package_info_plus (0.0.1): - FlutterMacOS - path_provider_foundation (0.0.1): @@ -49,7 +45,6 @@ PODS: DEPENDENCIES: - desktop_webview_window (from `Flutter/ephemeral/.symlinks/plugins/desktop_webview_window/macos`) - - flutter_inappwebview (from `Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview/macos`) - flutter_meedu_videoplayer (from `Flutter/ephemeral/.symlinks/plugins/flutter_meedu_videoplayer/macos`) - flutter_web_auth_2 (from `Flutter/ephemeral/.symlinks/plugins/flutter_web_auth_2/macos`) - FlutterMacOS (from `Flutter/ephemeral`) @@ -72,13 +67,10 @@ DEPENDENCIES: SPEC REPOS: trunk: - FMDB - - OrderedSet EXTERNAL SOURCES: desktop_webview_window: :path: Flutter/ephemeral/.symlinks/plugins/desktop_webview_window/macos - flutter_inappwebview: - :path: Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview/macos flutter_meedu_videoplayer: :path: Flutter/ephemeral/.symlinks/plugins/flutter_meedu_videoplayer/macos flutter_web_auth_2: @@ -118,16 +110,14 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: desktop_webview_window: d4365e71bcd4e1aa0c14cf0377aa24db0c16a7e2 - flutter_inappwebview: 62e949df616a9f6e1b0366326381f208c7fcad37 flutter_meedu_videoplayer: fceb30a833044aaf6410c5da53c3d61ab3d6abbb flutter_web_auth_2: 6695649132b6c71ea17700703761c0d18fdb8cf6 FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a isar_flutter_libs: 43385c99864c168fadba7c9adeddc5d38838ca6a - media_kit_libs_macos_video: 0a4a5bf21533cba968c0833f1b59e9af8b5847f1 - media_kit_native_event_loop: 2d8c329aa5815d77a6f40623adeede4584307723 - media_kit_video: 52e4128006f0e068b28ce70e9cdf06aa05e90fbc - OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c + media_kit_libs_macos_video: b3e2bbec2eef97c285f2b1baa7963c67c753fb82 + media_kit_native_event_loop: 81fd5b45192b72f8b5b69eaf5b540f45777eb8d5 + media_kit_video: c75b07f14d59706c775778e4dd47dd027de8d1e5 package_info_plus: 02d7a575e80f194102bef286361c6c326e4c29ce path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 screen_brightness_macos: 2d6d3af2165592d9a55ffcd95b7550970e41ebda diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index 85e6362..9229435 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -27,8 +27,8 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - 61D748A02A74569A6F8B147A /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE788FCEFD2FE0AECAE9D099 /* Pods_RunnerTests.framework */; }; - B3942661D6521D2531B8F902 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB2B79D414426A775638FE71 /* Pods_Runner.framework */; }; + CB47DC68E2E47298E3839491 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22E7A2E0F43D9FD3D9D7FCBC /* Pods_RunnerTests.framework */; }; + E46B89736BADD46638B3EAE3 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 651E463B44A88B78870FC85D /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -62,7 +62,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 22FF5869F216B912677D5C55 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 22E7A2E0F43D9FD3D9D7FCBC /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 267D7EB883E1006985BDC4CB /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; @@ -79,15 +80,14 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 35DC5372E7F83B7D69B48B8E /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - 749F8C140A425683D0686195 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 43BA77B372E194C4AF8B84EC /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 651E463B44A88B78870FC85D /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 66CF3B61657761FD233A8D88 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 7F78C12CF7BC92E7C3D122E0 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 94726AC2079031E4B5542EBC /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - AB2B79D414426A775638FE71 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EC1AB009ACB217B7DD2CF9A6 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; - F2D9977933EBAD8BCA09CEDC /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - FE788FCEFD2FE0AECAE9D099 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A695D1376EC37D7DB11E8F19 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + EE84958635415A6D82EC0A2F /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -95,7 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 61D748A02A74569A6F8B147A /* Pods_RunnerTests.framework in Frameworks */, + CB47DC68E2E47298E3839491 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -103,7 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B3942661D6521D2531B8F902 /* Pods_Runner.framework in Frameworks */, + E46B89736BADD46638B3EAE3 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -137,7 +137,7 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, - DFA97744849745DA8916C95B /* Pods */, + 554F9A04714D307737DFF8B3 /* Pods */, ); sourceTree = ""; }; @@ -185,28 +185,29 @@ path = Runner; sourceTree = ""; }; + 554F9A04714D307737DFF8B3 /* Pods */ = { + isa = PBXGroup; + children = ( + 94726AC2079031E4B5542EBC /* Pods-Runner.debug.xcconfig */, + 267D7EB883E1006985BDC4CB /* Pods-Runner.release.xcconfig */, + 66CF3B61657761FD233A8D88 /* Pods-Runner.profile.xcconfig */, + 43BA77B372E194C4AF8B84EC /* Pods-RunnerTests.debug.xcconfig */, + EE84958635415A6D82EC0A2F /* Pods-RunnerTests.release.xcconfig */, + A695D1376EC37D7DB11E8F19 /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( - AB2B79D414426A775638FE71 /* Pods_Runner.framework */, - FE788FCEFD2FE0AECAE9D099 /* Pods_RunnerTests.framework */, + 651E463B44A88B78870FC85D /* Pods_Runner.framework */, + 22E7A2E0F43D9FD3D9D7FCBC /* Pods_RunnerTests.framework */, ); name = Frameworks; sourceTree = ""; }; - DFA97744849745DA8916C95B /* Pods */ = { - isa = PBXGroup; - children = ( - 22FF5869F216B912677D5C55 /* Pods-Runner.debug.xcconfig */, - 7F78C12CF7BC92E7C3D122E0 /* Pods-Runner.release.xcconfig */, - 35DC5372E7F83B7D69B48B8E /* Pods-Runner.profile.xcconfig */, - 749F8C140A425683D0686195 /* Pods-RunnerTests.debug.xcconfig */, - F2D9977933EBAD8BCA09CEDC /* Pods-RunnerTests.release.xcconfig */, - EC1AB009ACB217B7DD2CF9A6 /* Pods-RunnerTests.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -214,7 +215,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - AD847CEEC03DF4442CDC7437 /* [CP] Check Pods Manifest.lock */, + 523E96B1FBB7ABFEFFE8BEF7 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -233,13 +234,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - BA17471977DAB3C5AA5E2762 /* [CP] Check Pods Manifest.lock */, + 20084DBAC83E4BBB01288B92 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - C2E1F14712ED0EFBD8AB13EC /* [CP] Embed Pods Frameworks */, + E5E8DE7D84564FCB71482D00 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -321,6 +322,28 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 20084DBAC83E4BBB01288B92 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; 3399D490228B24CF009A79C7 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -359,7 +382,7 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - AD847CEEC03DF4442CDC7437 /* [CP] Check Pods Manifest.lock */ = { + 523E96B1FBB7ABFEFFE8BEF7 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -381,29 +404,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - BA17471977DAB3C5AA5E2762 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - C2E1F14712ED0EFBD8AB13EC /* [CP] Embed Pods Frameworks */ = { + E5E8DE7D84564FCB71482D00 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -471,7 +472,7 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 749F8C140A425683D0686195 /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = 43BA77B372E194C4AF8B84EC /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -486,7 +487,7 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F2D9977933EBAD8BCA09CEDC /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = EE84958635415A6D82EC0A2F /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -501,7 +502,7 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EC1AB009ACB217B7DD2CF9A6 /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = A695D1376EC37D7DB11E8F19 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -574,7 +575,6 @@ "$(inherited)", "@executable_path/../Frameworks", ); - MACOSX_DEPLOYMENT_TARGET = 10.15; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; }; @@ -701,7 +701,6 @@ "$(inherited)", "@executable_path/../Frameworks", ); - MACOSX_DEPLOYMENT_TARGET = 10.15; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -722,7 +721,6 @@ "$(inherited)", "@executable_path/../Frameworks", ); - MACOSX_DEPLOYMENT_TARGET = 10.15; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; }; diff --git a/macos/Runner/DebugProfile.entitlements b/macos/Runner/DebugProfile.entitlements index c946719..dddb8a3 100644 --- a/macos/Runner/DebugProfile.entitlements +++ b/macos/Runner/DebugProfile.entitlements @@ -8,7 +8,5 @@ com.apple.security.network.server - com.apple.security.network.client - diff --git a/pubspec.lock b/pubspec.lock index e390f07..8c774e7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -69,10 +69,10 @@ packages: dependency: "direct main" description: name: background_downloader - sha256: "9a835c4a826c726837c807f604e7fb7035d989e68dfc40247cff64d7cd6fb8ae" + sha256: dca018b102a8c5efb09aadf587c07729d6cb2c9840e471e725c746c2195a1cd3 url: "https://pub.dev" source: hosted - version: "7.8.1" + version: "7.9.0" boolean_selector: dependency: transitive description: @@ -325,10 +325,10 @@ packages: dependency: "direct main" description: name: desktop_webview_window - sha256: da2fc164b46257c7a8b88649d3f2b34b4d98e7b7c403fb9e4183ebe8ff008004 + sha256: a2a902307f2fc588814c260a7dc6f0b7908499e43ca71d8f22fc48a39864ea54 url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.2.1" directed_graph: dependency: transitive description: @@ -482,18 +482,10 @@ packages: dependency: "direct main" description: name: flutter_inappwebview - sha256: fad1f2740ff4b5b7da378a639f54beeb9d787b6339c89a9de00494d92372c0bb + sha256: f73505c792cf083d5566e1a94002311be497d984b5607f25be36d685cf6361cf url: "https://pub.dev" source: hosted - version: "6.0.0-beta.24+1" - flutter_inappwebview_internal_annotations: - dependency: transitive - description: - name: flutter_inappwebview_internal_annotations - sha256: "064a8ccbc76217dcd3b0fd6c6ea6f549e69b2849a0233b5bb46af9632c3ce2ff" - url: "https://pub.dev" - source: hosted - version: "1.1.0" + version: "5.7.2+3" flutter_launcher_icons: dependency: "direct dev" description: @@ -841,10 +833,10 @@ packages: dependency: transitive description: name: media_kit - sha256: "272a9f1dd77ed57b48707fdb0ec0e4a048ef958feccc0d0dd751135fe924b63a" + sha256: eb47c2d51b7c06b319d8c776b47be912c5a4f53af7ab4814927a52a76442609e url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2+1" media_kit_libs_android_video: dependency: "direct main" description: @@ -865,18 +857,18 @@ packages: dependency: transitive description: name: media_kit_libs_linux - sha256: "21acc71cbae3518b3aeef9023a6a3a3decb579a40153764333814987ccd61040" + sha256: "838b9e8041d376873cc938872c75812989d0feb247ad93afd8dbc92bf052680a" url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "1.1.0" media_kit_libs_macos_video: dependency: transitive description: name: media_kit_libs_macos_video - sha256: "28ad624666cd20ed78f96a26917dddf6f286ea4bab21620676cc59ba62f3d3e5" + sha256: dcabf2731b6b7dee143c18617fd32a063146303e7388f87dd4e974e03c9c795a url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "1.1.1" media_kit_libs_windows_video: dependency: transitive description: @@ -889,18 +881,18 @@ packages: dependency: transitive description: name: media_kit_native_event_loop - sha256: "5351f0c28124b5358756515d8619abad182cdefe967468d7fb5b274737cc2f59" + sha256: e37ce6fb5fa71b8cf513c6a6cd591367743a342a385e7da621a047dd8ef6f4a4 url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "1.0.7" media_kit_video: dependency: transitive description: name: media_kit_video - sha256: "3ac0403d67710dfb2bf6aabfa6caff1b163e70fb7e1a88423bc1be569b4df6b3" + sha256: "4b627683ef9e7f5cd049fd01be4b5deb5f31effc878503f108c81b19fd745040" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" meedu: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 32df257..e9c44a7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -32,7 +32,7 @@ dependencies: package_info_plus: ^4.0.2 background_downloader: ^7.8.1 permission_handler: ^10.4.3 - flutter_inappwebview: ^6.0.0-beta.24+1 + flutter_inappwebview: ^5.7.2+3 draggable_menu: ^4.1.3 isar: 3.1.0+1 isar_flutter_libs: 3.1.0+1