From 41d2061d38e52764fa6b45d8b3c22dd6db3fb5bc Mon Sep 17 00:00:00 2001 From: Maurice Date: Wed, 19 Jun 2024 15:37:29 +0200 Subject: [PATCH] init --- .gitignore | 3 ++ DemoAndroid.sln | 18 +++++++ DemoAndroid/AndroidManifest.xml | 6 +++ DemoAndroid/DemoAndroid.csproj | 18 +++++++ DemoAndroid/MainActivity.cs | 44 ++++++++++++++++++ DemoAndroid/Resources/AboutResources.txt | 44 ++++++++++++++++++ .../Resources/layout/activity_main.xml | 15 ++++++ .../Resources/mipmap-anydpi-v26/appicon.xml | 4 ++ .../mipmap-anydpi-v26/appicon_round.xml | 4 ++ DemoAndroid/Resources/mipmap-hdpi/appicon.png | Bin 0 -> 2178 bytes .../mipmap-hdpi/appicon_background.png | Bin 0 -> 97 bytes .../mipmap-hdpi/appicon_foreground.png | Bin 0 -> 1276 bytes DemoAndroid/Resources/mipmap-mdpi/appicon.png | Bin 0 -> 1524 bytes .../mipmap-mdpi/appicon_background.png | Bin 0 -> 92 bytes .../mipmap-mdpi/appicon_foreground.png | Bin 0 -> 1273 bytes .../Resources/mipmap-xhdpi/appicon.png | Bin 0 -> 3098 bytes .../mipmap-xhdpi/appicon_background.png | Bin 0 -> 100 bytes .../mipmap-xhdpi/appicon_foreground.png | Bin 0 -> 1805 bytes .../Resources/mipmap-xxhdpi/appicon.png | Bin 0 -> 4674 bytes .../mipmap-xxhdpi/appicon_background.png | Bin 0 -> 108 bytes .../mipmap-xxhdpi/appicon_foreground.png | Bin 0 -> 1926 bytes .../Resources/mipmap-xxxhdpi/appicon.png | Bin 0 -> 6832 bytes .../mipmap-xxxhdpi/appicon_background.png | Bin 0 -> 117 bytes .../mipmap-xxxhdpi/appicon_foreground.png | Bin 0 -> 2801 bytes DemoAndroid/Resources/values/colors.xml | 5 ++ .../values/ic_launcher_background.xml | 4 ++ DemoAndroid/Resources/values/strings.xml | 4 ++ 27 files changed, 169 insertions(+) create mode 100644 .gitignore create mode 100644 DemoAndroid.sln create mode 100644 DemoAndroid/AndroidManifest.xml create mode 100644 DemoAndroid/DemoAndroid.csproj create mode 100644 DemoAndroid/MainActivity.cs create mode 100644 DemoAndroid/Resources/AboutResources.txt create mode 100644 DemoAndroid/Resources/layout/activity_main.xml create mode 100644 DemoAndroid/Resources/mipmap-anydpi-v26/appicon.xml create mode 100644 DemoAndroid/Resources/mipmap-anydpi-v26/appicon_round.xml create mode 100644 DemoAndroid/Resources/mipmap-hdpi/appicon.png create mode 100644 DemoAndroid/Resources/mipmap-hdpi/appicon_background.png create mode 100644 DemoAndroid/Resources/mipmap-hdpi/appicon_foreground.png create mode 100644 DemoAndroid/Resources/mipmap-mdpi/appicon.png create mode 100644 DemoAndroid/Resources/mipmap-mdpi/appicon_background.png create mode 100644 DemoAndroid/Resources/mipmap-mdpi/appicon_foreground.png create mode 100644 DemoAndroid/Resources/mipmap-xhdpi/appicon.png create mode 100644 DemoAndroid/Resources/mipmap-xhdpi/appicon_background.png create mode 100644 DemoAndroid/Resources/mipmap-xhdpi/appicon_foreground.png create mode 100644 DemoAndroid/Resources/mipmap-xxhdpi/appicon.png create mode 100644 DemoAndroid/Resources/mipmap-xxhdpi/appicon_background.png create mode 100644 DemoAndroid/Resources/mipmap-xxhdpi/appicon_foreground.png create mode 100644 DemoAndroid/Resources/mipmap-xxxhdpi/appicon.png create mode 100644 DemoAndroid/Resources/mipmap-xxxhdpi/appicon_background.png create mode 100644 DemoAndroid/Resources/mipmap-xxxhdpi/appicon_foreground.png create mode 100644 DemoAndroid/Resources/values/colors.xml create mode 100644 DemoAndroid/Resources/values/ic_launcher_background.xml create mode 100644 DemoAndroid/Resources/values/strings.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..289be9b --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.idea/ +obj/ +bin/ \ No newline at end of file diff --git a/DemoAndroid.sln b/DemoAndroid.sln new file mode 100644 index 0000000..bffa213 --- /dev/null +++ b/DemoAndroid.sln @@ -0,0 +1,18 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DemoAndroid", "DemoAndroid\DemoAndroid.csproj", "{2A2871F0-6043-40CD-8249-3B20E56B8EF4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2A2871F0-6043-40CD-8249-3B20E56B8EF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A2871F0-6043-40CD-8249-3B20E56B8EF4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A2871F0-6043-40CD-8249-3B20E56B8EF4}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {2A2871F0-6043-40CD-8249-3B20E56B8EF4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A2871F0-6043-40CD-8249-3B20E56B8EF4}.Release|Any CPU.Build.0 = Release|Any CPU + {2A2871F0-6043-40CD-8249-3B20E56B8EF4}.Release|Any CPU.Deploy.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/DemoAndroid/AndroidManifest.xml b/DemoAndroid/AndroidManifest.xml new file mode 100644 index 0000000..3fead98 --- /dev/null +++ b/DemoAndroid/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DemoAndroid/DemoAndroid.csproj b/DemoAndroid/DemoAndroid.csproj new file mode 100644 index 0000000..4402573 --- /dev/null +++ b/DemoAndroid/DemoAndroid.csproj @@ -0,0 +1,18 @@ + + + net8.0-android + 21 + Exe + enable + enable + com.maurict.androiddemo + 1 + 1.0 + + + False + + + + + \ No newline at end of file diff --git a/DemoAndroid/MainActivity.cs b/DemoAndroid/MainActivity.cs new file mode 100644 index 0000000..a5874a2 --- /dev/null +++ b/DemoAndroid/MainActivity.cs @@ -0,0 +1,44 @@ +using Android.Graphics; +using QRCoder; +using Exception = Java.Lang.Exception; // QRCoder-ImageSharp else it crashes + +namespace DemoAndroid; + +[Activity(Label = "@string/app_name", MainLauncher = true)] +public class MainActivity : Activity +{ + private string _text = ""; + private ImageView? _ivQr; + + protected override void OnCreate(Bundle? savedInstanceState) + { + base.OnCreate(savedInstanceState); + + // Set our view from the "main" layout resource + SetContentView(Resource.Layout.activity_main); + + var etInput = FindViewById(Resource.Id.etInput) ?? throw new Exception("EditText #etInput not found"); + _ivQr = FindViewById(Resource.Id.ivQR) ?? throw new Exception("ImageView #ivQR not found");; + + etInput.TextChanged += (sender, args) => + { + _text = args.Text?.ToString() ?? string.Empty; + + if (!string.IsNullOrEmpty(_text)) + { + CreateQr(); + } + }; + } + + private void CreateQr() + { + using var qrGenerator = new QRCodeGenerator(); + using var qrCodeData = qrGenerator.CreateQrCode(_text, QRCodeGenerator.ECCLevel.Q); + using var qrCode = new PngByteQRCode(qrCodeData); + + var qrCodeImage = qrCode.GetGraphic(20); + var javaBitmap = BitmapFactory.DecodeByteArray(qrCodeImage, 0, qrCodeImage.Length); + _ivQr?.SetImageBitmap(javaBitmap); + } +} \ No newline at end of file diff --git a/DemoAndroid/Resources/AboutResources.txt b/DemoAndroid/Resources/AboutResources.txt new file mode 100644 index 0000000..219f425 --- /dev/null +++ b/DemoAndroid/Resources/AboutResources.txt @@ -0,0 +1,44 @@ +Images, layout descriptions, binary blobs and string dictionaries can be included +in your application as resource files. Various Android APIs are designed to +operate on the resource IDs instead of dealing with images, strings or binary blobs +directly. + +For example, a sample Android app that contains a user interface layout (main.xml), +an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) +would keep its resources in the "Resources" directory of the application: + +Resources/ + drawable/ + icon.png + + layout/ + main.xml + + values/ + strings.xml + +In order to get the build system to recognize Android resources, set the build action to +"AndroidResource". The native Android APIs do not operate directly with filenames, but +instead operate on resource IDs. When you compile an Android application that uses resources, +the build system will package the resources for distribution and generate a class called "Resource" +(this is an Android convention) that contains the tokens for each one of the resources +included. For example, for the above Resources layout, this is what the Resource class would expose: + +public class Resource { + public class Drawable { + public const int icon = 0x123; + } + + public class Layout { + public const int main = 0x456; + } + + public class Strings { + public const int first_string = 0xabc; + public const int second_string = 0xbcd; + } +} + +You would then use Resource.Drawable.icon to reference the drawable/icon.png file, or +Resource.Layout.main to reference the layout/main.xml file, or Resource.Strings.first_string +to reference the first string in the dictionary file values/strings.xml. \ No newline at end of file diff --git a/DemoAndroid/Resources/layout/activity_main.xml b/DemoAndroid/Resources/layout/activity_main.xml new file mode 100644 index 0000000..74a0293 --- /dev/null +++ b/DemoAndroid/Resources/layout/activity_main.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/DemoAndroid/Resources/mipmap-anydpi-v26/appicon.xml b/DemoAndroid/Resources/mipmap-anydpi-v26/appicon.xml new file mode 100644 index 0000000..7751f69 --- /dev/null +++ b/DemoAndroid/Resources/mipmap-anydpi-v26/appicon.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/DemoAndroid/Resources/mipmap-anydpi-v26/appicon_round.xml b/DemoAndroid/Resources/mipmap-anydpi-v26/appicon_round.xml new file mode 100644 index 0000000..7751f69 --- /dev/null +++ b/DemoAndroid/Resources/mipmap-anydpi-v26/appicon_round.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/DemoAndroid/Resources/mipmap-hdpi/appicon.png b/DemoAndroid/Resources/mipmap-hdpi/appicon.png new file mode 100644 index 0000000000000000000000000000000000000000..0abfc1b581c52b479e48d5a33b56e27e03eaa867 GIT binary patch literal 2178 zcma*pX*|^19|!OmMpZ1UX4wv}K|=z=Lls{e_C z$08JNAQVE~&ENakd?Xsw0|(Dv+Pwhib_xK~PO$=XP;5GU0k$13X3wm(%dvg(5uD)^s5Q_)kK48qG7eeFSQOAs~s-ZIsuTiNacqnu!qLVnZ~e8 z6fD!zjOt<1?Qci*$5Jus^_CjXFzU5dnsr!>Zk#$5r#^twpyD*U@#-|Z1{JSC!)sCr z8Z-jXnlu7@fB+vPYSM^s0Nox=vj_St&HgOi0iZ>9(55?T(H((4M|T3~02m}4Itge5 zorGYJbQ#VFhO;i+S(o7g&||oqXSn{tbk%3L>NCmu3^LFL46*^!4RC?!4lrbT0E_@E zkBdxC0208ujAVHMj9K0&mbVFj?QP1Yn6N0O0JaanjOAm-_BChwTClI6+5VOz{#GM_ zHh|GPA7-Vq}`fHyFHs3`SnrMY~H=O zyx6(?xVeJ(xzf~cWhvjv(-&%T78@QfHWn{7l>nBSN|#<$F1J>5-Zia!c)t4K#cKE4 zA3be9s2_d|efml3;nI4!^jRQ|23GN<& zfzi?N|IYp72kGe<85s}%o!s1_qN0}8*4G^!ot>D&hHpV2k&~9@CibNEWs+NsgTo=Y zkiHr}H$1J}H0fDD9LgNBAtoX%1>wnXCB7GNKNHXX!#x5ygySCbv=Z|*eWW%UV(uqT zZs=i0q#S=X=Mu3Tve9~4iaXu?&35rG?>h<>a0#9hai9#U6TA=`x9&Ky0G!@L^yzYHcU&K{Py)G zLq6-*fxXOv!?welF6qsPbDF(gEd^wBf!Q)^vjnHg8~Ix(t)yvMb6b7l6vl4p)cW*HIltJum<+)k*W zHo}Wa;Ud;GFS_NvDJQl`#2U0Up;gDNu?dp?;<26U5-7LH#_qqd)p- zccS_T=v4HYS5U6dq&S$j8z64f{A%x?&{$P;0be3gPK*4UOaK~>3XW)4%VgA!XybAAt)HYL)Mt+#=a6cFhdtQt${mqN+7U|-? z_<`)<(amvE8yV5+glVrQs5&WuHb%=TDYtS;UXAR5N%s8SJT!818z=O2wyVGjT(FF?Zz#n*UxoPaRsDGjGdR)4pr=q zbo*&o@a`c9p^aR2!Q=q+Rh8JGY`8RZ7;XkX8j+*-pMO>Ur*l(7W9nboXX3Buji8fyZ#)?YxEgF%SbJ1`@Ck~237#Gy zqjHz3vOcQMqZ=48<>a|n^#c=i`lC|wDB4*(J+{WIOSfttk<#l+jO;?n3=__bCj1d` zrz@E>t@IUl@+~{jRsykzb`J3O9O*Fx4W>$deB*HP(Y(7cH86jgRVSUs-(KE*8ho5p z9;IHuE*zR-u{~~wGda|(edsRgOR10HCC$=lecZ};te@ZP=pC8&#+*LinUJ>4&Du64 z!-ywSoaWpIoxlHHP$4IruD6G2AM>dkAb~bJ<2CN>KW#LW7qKgG>0QFT%)aE!U!Ma@ M3#@s)spp^n1!tBY8UO$Q literal 0 HcmV?d00001 diff --git a/DemoAndroid/Resources/mipmap-hdpi/appicon_background.png b/DemoAndroid/Resources/mipmap-hdpi/appicon_background.png new file mode 100644 index 0000000000000000000000000000000000000000..513e69d8412c314411a5940370e552c59fd6bbef GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iu>8A$%HX^8+*%mF?ju7TQDY)?)43FJz8x;TbZ s#JxSh$P45hQuw`m+i~{Oj0_A9c;7HE3Rk-M0EHPmUHx3vIVCg!0A>pr+5i9m literal 0 HcmV?d00001 diff --git a/DemoAndroid/Resources/mipmap-hdpi/appicon_foreground.png b/DemoAndroid/Resources/mipmap-hdpi/appicon_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..99d3a291bc382dd1afc9c28845623ef77fc14c15 GIT binary patch literal 1276 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz8AyKBd8Wz0z&InoC&U%V{XYr@UkDtSd^H0Y zH|-@se!&ckOe}2d9GqO-ynOrufrHF3KJ>D89HqxGL}xr=zmy;bgN zx63@@DR=GI;fEeA@((>McJ%&v=#iPY_{nRVh-}?F*E4fh-A!6HUF8_7wWpq>$Q$eb zGvBM+7LJSjp`O&CvhJGlqrE!UE6z$51}^S!p8q4E?0VmdjK%%jWlvuC+wI9(FS;?@ zvAgVu-D5HNP2z91cjpQI&J3T`fBN>@j#;@S_L6}I(`qJFo4AMEQIg#JC*|*!Ev{b$ zS3cIZuYNv#>x_7hn^B@UB^Ote7Ve2PT{Jn~v-`@gYg((_A9s{IVCO&C_y5O|$Ke|; ze*1rF?rOP>6O7N!Il14}T4bw7tft&F=1_AhYpE@jujC3FbdGTzjLW-T^PtT2qgMN4d(KVlG}dif;>xv_d)b$mJKy&y969dXCzfl@ zbv4RFef<>4qVmP}Ildjx&YXDbnU>O~nssN4!=rNqrtzQMB$jFMxF_Oa>uNz;?Iu;} zRNYDWw+i*Vly+^ucGcy!(CrVA15qy0|sZ#H3{cP!MwQcHR-A5lY7I7SXbX5G@ zv}OA$dX9SA+e~G*%GkSQy4hv1_~z->Ea*vvfuZ5Po%ec+%^8`mKyse0elF{r5}E)4 Cmmqim literal 0 HcmV?d00001 diff --git a/DemoAndroid/Resources/mipmap-mdpi/appicon.png b/DemoAndroid/Resources/mipmap-mdpi/appicon.png new file mode 100644 index 0000000000000000000000000000000000000000..7b5a2e2bf8dc4d63e6490db8b5e269a63b05841e GIT binary patch literal 1524 zcmbuF_#Nit)318A1FIm-vIV1Z-!VgR-uhUEv+lI3T~_P1pDgS29kfun4) zHNXk5W(R<@VF%c70&UoVAdj&Fk8y$kTTU=w2XN2YbH0@V?Lec`VHdE%OU zab4j|U7@6|NJ1--y!=DbP%3FClQaV5(k7rn+FU7Zu9CJ?OFJ9px|-*EUM=+ewfMGe zVW4a2L(dmhFU0DD*g!wT8Gv|$(D2am7<*-WY;{7gD*C)OBU+b;)}_n{Pf%{HFkL4?W4!xeTYB9xR>RMmFv(bC@g z-S@^OC=}WpN2hmmba%gd_x0-r*!iEiqvFU1*LMStbt1XmX64W?AaR;$?U>`6PBnCe zF&rYilOdOs+J-eWOv3i{F38)%m3ZC8S*i%deF}rMd+PTNQ%0Xw+bWD=I2?;OXXn#Y z)@ZYsSxpQ&KEI_eUrhY9GJ>ynkTKT148NB-W0~Icyf>uDUZq&Efd*YO%F1Rgg^W;W-f!C|S3yjxGz9~$7(;As32%PB~J%k0Rd zY2u(Vm(doK*81`p4M*q9UF4=hj8=D+VM(&kwq-`Eyf%4|%Nct8q7q@Gt(~cmambzh zmaM5ZMea;3JD`z_oR-gI;H@mbO0J-_u9e|80b+qHnxT zBA@)pC^*`wzLs$3ko#{+5qW-hgQ={G<%I0q`O8NvNkv??BPHF+KVKFww{?N zV_dmhf#8N_$bsjoK3837EBIDTRo9N}F*B`0B|iAb zD|r4iIIv4mPBvTl!X@AD{DagK?Gk;njB53r23AiF`$Ve`nFdvkFJn4W2%o8KNX2GE zkW@&bBIWBA+Kpm|4I9+M&S{KZ+Gi%<7Cw_?u;H|UDCA6hQ4W1)MYEWV&Vm%*8Pu6eERqL0_sU3kz5}2=pso}G6 eExkeq-7T16_EhYylCAjde>WcIfvt6>-24YipY?nI literal 0 HcmV?d00001 diff --git a/DemoAndroid/Resources/mipmap-mdpi/appicon_background.png b/DemoAndroid/Resources/mipmap-mdpi/appicon_background.png new file mode 100644 index 0000000000000000000000000000000000000000..9e2d1e4d8d4ec9945deffbde04bfd430830a62b1 GIT binary patch literal 92 zcmeAS@N?(olHy`uVBq!ia0vp^IUvl)3?#R%INArKm;-!5Tm!YQ*q)m76UY_uba4!+ nh)Z4|B*D5kL8PZC(1449Erfy5Q}4VcP@cil)z4*}Q$iB}vRW1{ literal 0 HcmV?d00001 diff --git a/DemoAndroid/Resources/mipmap-mdpi/appicon_foreground.png b/DemoAndroid/Resources/mipmap-mdpi/appicon_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..a28d342c1c7106283d3e5b6f03f2d761a9d8a28c GIT binary patch literal 1273 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz3?z5#SpJ`Zf$@5PPlzj!`+pP+yAX(+=)M~m zwR1{>{DK)CH+t|g2}(z@oQn2o^7X!YXa9vg@0d-0zwy+(`*QL zb&^Bzm*{6M>%wmi)7h^dw>a|AmaSIJJaEBx&MQCczN%ZDWwmkI>DOt$Mc#Oy-23uf zCMP5|3r#vWe?zfLO2D%x8ZQ>MOWu?{bID(M+GXbtTgA@l{JG!X+v7G{TyJks?$dk0 z528YJj}_FVcN~&ZS}!BJ#dk3S1Cyzzi(^Pd+}kTp%V#Hu9C+xx=Ik+#?P(^W8E%_& zw0!UGUH$sbT_A{kFK?|;l7Hjn&2x<(QlHz!Klt#p{N8ESANvKJI22n1K*WSIJm)|6 z>P&e5@MoQUL(H+&Ox-_xz3!}y>zel=bgx)awRy43^nFa;QO_*id9WO)o|D{kv$5>l z8=pH)YjRjuMcqCS5a0RY(~6BnDeJ!W-*wnLd%Mo@G9Eqg-Luz3Z29(;vgO@&8Se7jc(rQ+rLUz#?+3p9rPo!Fba3s>TiJ$XRy}9qU6i-U70wlme$8Zj zU+c(K?Z%A)))uV~cU6fMTZ(xrzw_!%%8QpXdAI*q%s2mSzLpIUdxQH!|2#t$n3dPvGv`=h)ae{F+UU^E$3K3FBI ztDWytI(Bc9;j2x~oMPISLN=Hl`z{~ARrXKv^EDsEXn|+R2d_zRC(r*CCDPz?evg6X zVWIO43LL^&G5^%gaPO}bcQm$DSQc)I$z JtaD0e0s!klQ0D*u literal 0 HcmV?d00001 diff --git a/DemoAndroid/Resources/mipmap-xhdpi/appicon.png b/DemoAndroid/Resources/mipmap-xhdpi/appicon.png new file mode 100644 index 0000000000000000000000000000000000000000..b28b73c65453fdaf28b076d881696793e8c9bbee GIT binary patch literal 3098 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 literal 0 HcmV?d00001 diff --git a/DemoAndroid/Resources/mipmap-xhdpi/appicon_background.png b/DemoAndroid/Resources/mipmap-xhdpi/appicon_background.png new file mode 100644 index 0000000000000000000000000000000000000000..658be3fb6a3bf5656c0a725e6a5fca3dc6cfb7e5 GIT binary patch literal 100 zcmeAS@N?(olHy`uVBq!ia0vp^H$a$?8Axt^w|^awVh->LaShbIVtZ=RPas#u)5S5Q sBJS-0Lq;I)kizff+m7l*@B!Hj3>M-G7#L-mj@N)Vp00i_>zopr0REvH0{{R3 literal 0 HcmV?d00001 diff --git a/DemoAndroid/Resources/mipmap-xhdpi/appicon_foreground.png b/DemoAndroid/Resources/mipmap-xhdpi/appicon_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..70a542ac03c49ac1b30da6135d8b48016e1017fe GIT binary patch literal 1805 zcmeAS@N?(olHy`uVBq!ia0vp^H$a$!8A$H?clSO61Cx1xPlzj!`+pRSh5(5nkh%M5 z5isfODGBlmW?*DuW?^Mx=iubx=HcZR5E2#<6%&_`l9rK`S5Q<|QB~K_)Y8_`)zddH zG%_|ZHM6j^ws&xJa&~cbbNBG{_VM-e4+snj4hanlkBUxAN={AB$jr*k%P%Y{E-A05 ztg5c5Z)|FAY3u0h>h9^AFmck<=`&`|nLB^sqQy&AtX#8h{l-n3x9!-qci+K7hmRaP ze)9CW^A|2%zIy$}&0Dwc-n;+c@sp>|p1*kc>h+tq?>>C|^!dxzZ{L6X{Pp|K-+x{m zR}C2$m`{4TIEGZjy*a?h3G@}y0=X~$bFG=q8Us0~V8P>KclIyrT4b^B`9TwA?-nlw zuU-Zv*UZpmOT;}?Lnj0UtEM>9Nm0d5rd-|$=+PS|`*DYV~ zPQNzm{I7X8v*(}GD}J%+@y&zL{5rbDs}!b~g&ddBciU)Qd61z{T(Z4>^0KDhK##X) zCe5mNZ8$mPW35&0kL%|@tTvW=aOgr$!>PZC$s)h5>{B_+xvy%?M6J5BOL`l`toO&M zGmH4&WGzWQ-PU}w{cnS|Df^n478{PTEBT(Wo2?aO;NAcJSO21)?`5LT3p0LlpC(zQ zy-DJNLnzx0hBJ2Mv3e6En7?gvS$y*3#f%U8AA5df=CIy$W~X&yLaDkY`~16H;SD$K z)Yn;W+?F9QA&ui8*HWG8=7T<07UkdCV`O+(>+Is(>9d<(3cNY2w6#aPVvR=+^EDr_ zh_4-IcSckvxlW6C$!ol=X05#b4Mnz|HScen&5hk5X`}kowU(}3w_j{M|43$iYleZ54`@ZPsiM0n0?5+^}tno=mT*75r)I=4(O}7G7gngVi&N_MB@mZa^J^j5_|J|lf(~|%0%QN+Z5Px#L#d(jT4PT$7Zxqoj zFE=><`Tm7n%LPt)xMo+sWx8i+e8iB&I4(*)F5wRA2YF$?=GGR@xT6Ig$$x zdgOoC$b4s!D!uFDJIhI)A9!b}uD4nxd&`IW$^8X4xumxww$6CA@RY{RIZEOzljqGn z&ZXITwB&`Z*ynBsMS}^Yw>-RbHp$xO^)DBYXgR-b>WsRgoYtuCI|Y1#KArA6CCt+7 zJ3uQ9SY-sPE*kW{P3+Pq{}zwl&c|3xntK9yRvd$@?2>^=dTh9Oh literal 0 HcmV?d00001 diff --git a/DemoAndroid/Resources/mipmap-xxhdpi/appicon.png b/DemoAndroid/Resources/mipmap-xxhdpi/appicon.png new file mode 100644 index 0000000000000000000000000000000000000000..f9af1173ead9da4de599b034ca8c81aab47fda54 GIT binary patch literal 4674 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 literal 0 HcmV?d00001 diff --git a/DemoAndroid/Resources/mipmap-xxhdpi/appicon_foreground.png b/DemoAndroid/Resources/mipmap-xxhdpi/appicon_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..cb63bfb9f8e0d0578ca53d46cf8cfeac7cb44689 GIT binary patch literal 1926 zcmeAS@N?(olHy`uVBq!ia0y~yU~~at4rZW8hROCX3=B+S0X`wFK<@uhFd71=At2GU zlnIzJHkJhW1v4-*F|)9;v2$>8ar5x<3kV7ci-?MeOUlT~$tx%-scC3x>FDVj7#f?J zSy)Xy8X(l0c=;%+LxT+jdb^;JJsEX%lga^2i-CW5Ys40gF2FR(T>X$vT8DJ6s~=+f!R z7I8G;($dK2@rn&#jC6H~DRg&r)mR$Trn&U#Kj+{{RmTjb+>3V7DZcmR^p?5${`bE5 zR4;4QRGNA~>E_eKgC&RTJ(C}*C^8gu7Cw*qqOfUx=jq0Z!c^r=)yMt|Z?u~w5X&m4 z93*^mbEu%Q(4zHz5)%ai4ULmroKn_)1c|(NIMT71JB@E+)KgZmUtct4o}2Mr+EpM} z@L>M_4FNrj4Lv{4$Jh0@HETUjb(L1C77>mV-dlMsvucn;-G3{r^l_Q;xtX~+^ zvV=@lZqHIO4b<}e(IId+^HqnU{kbbHKP~3WbL%|r_V1um$GpiCZZr#>Q@X0w=Az<~ zFX=FAQ5Q3lugZ}kh81BN_qrbDDk+`|VL0%rZcD+_BJ+s?=UMu?YdbC`KFU#2{H4Ww zyp8S13_am2B}Jz<3|S|nTLd@-{d|<%C%67PD(GZl@7Q;r)v4o(ON4osT)r;TYsUPE zuBK^o%LEoCaXCuy{OR~NeeSBt9c53I=kZn@`L58RUH>v{SzidRso*ycjtjEdEgl`e zv{*ibaVZKZ9kF$1IG?8I;?&YC%yA({)n(qnrc76cn`$i{zAdKB93K=tIVK7`oY2D1 zYXwxbWt(zCvHkUbaF4V6j}6D^c0UO_gyz9-xj8$EqO*P z0;%`Zgcki|ywoGg;P6dE9~cUgxO0CocLSh7P16Add z&ZZucJKxW-w1tDgytckNDEWbV%eR}rL?`j=^=#H+tuDdMDJ&Cmm^yAMcbgfmx#D7& zv|ng}^`C=HJJ(jaoL(XHpxCHh_~56g*BzREss|oaF}j?PylkRgc;e cRV*+t$ftaLdFqvjxFSfsr>mdKI;Vst0Fk9dIsgCw literal 0 HcmV?d00001 diff --git a/DemoAndroid/Resources/mipmap-xxxhdpi/appicon.png b/DemoAndroid/Resources/mipmap-xxxhdpi/appicon.png new file mode 100644 index 0000000000000000000000000000000000000000..1d948d6b5d88179d9aaae8cdfc063f9fe8e08807 GIT binary patch literal 6832 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 BO?ChP literal 0 HcmV?d00001 diff --git a/DemoAndroid/Resources/values/colors.xml b/DemoAndroid/Resources/values/colors.xml new file mode 100644 index 0000000..16ac029 --- /dev/null +++ b/DemoAndroid/Resources/values/colors.xml @@ -0,0 +1,5 @@ + + + #4287f5 + #FFFFFF + \ No newline at end of file diff --git a/DemoAndroid/Resources/values/ic_launcher_background.xml b/DemoAndroid/Resources/values/ic_launcher_background.xml new file mode 100644 index 0000000..6ec24e6 --- /dev/null +++ b/DemoAndroid/Resources/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #2C3E50 + \ No newline at end of file diff --git a/DemoAndroid/Resources/values/strings.xml b/DemoAndroid/Resources/values/strings.xml new file mode 100644 index 0000000..be039ff --- /dev/null +++ b/DemoAndroid/Resources/values/strings.xml @@ -0,0 +1,4 @@ + + DemoAndroid + Hello, Android! +