From 0ac9f7f0ec938aea0913d40c8036c6dbb279f630 Mon Sep 17 00:00:00 2001 From: Manuel Vivo Date: Fri, 12 Jun 2020 16:11:21 +0200 Subject: [PATCH] Adds Crane to the repo Change-Id: I3a88e591b739487ed19b237b6897f998485df5a2 --- Crane/.gitignore | 9 + Crane/README.md | 1 + Crane/app/.gitignore | 1 + Crane/app/build.gradle | 106 +++++++ Crane/app/proguard-rules.pro | 21 ++ Crane/app/src/main/AndroidManifest.xml | 44 +++ Crane/app/src/main/ic_launcher-playstore.png | Bin 0 -> 17994 bytes .../samples/crane/base/BaseUserInput.kt | 151 ++++++++++ .../compose/samples/crane/base/CraneDrawer.kt | 38 +++ .../compose/samples/crane/base/CraneTabs.kt | 96 ++++++ .../samples/crane/base/ExploreSection.kt | 124 ++++++++ .../compose/samples/crane/base/Scaffold.kt | 31 ++ .../samples/crane/base/ServiceLocator.kt | 23 ++ .../samples/crane/calendar/Calendar.kt | 274 ++++++++++++++++++ .../crane/calendar/CalendarActivity.kt | 95 ++++++ .../crane/calendar/data/CalendarData.kt | 120 ++++++++ .../crane/calendar/model/CalendarDay.kt | 44 +++ .../crane/calendar/model/CalendarMonth.kt | 82 ++++++ .../calendar/model/DatesSelectedState.kt | 117 ++++++++ .../crane/calendar/model/DaySelected.kt | 43 +++ .../compose/samples/crane/data/Cities.kt | 115 ++++++++ .../compose/samples/crane/data/CraneData.kt | 143 +++++++++ .../samples/crane/data/ExploreModel.kt | 65 +++++ .../samples/crane/details/DetailsActivity.kt | 120 ++++++++ .../compose/samples/crane/home/CraneHome.kt | 213 ++++++++++++++ .../samples/crane/home/HomeFeatures.kt | 74 +++++ .../samples/crane/home/LandingScreen.kt | 45 +++ .../samples/crane/home/MainActivity.kt | 134 +++++++++ .../samples/crane/home/MainViewModel.kt | 57 ++++ .../samples/crane/home/SearchUserInput.kt | 150 ++++++++++ .../crane/ui/BackdropFrontLayerDraggable.kt | 135 +++++++++ .../samples/crane/ui/CraneStateDraggable.kt | 113 ++++++++ .../compose/samples/crane/ui/CraneTheme.kt | 56 ++++ .../compose/samples/crane/ui/Images.kt | 73 +++++ .../compose/samples/crane/ui/Typography.kt | 106 +++++++ .../compose/samples/crane/util/Observation.kt | 41 +++ .../compose/samples/crane/util/Shapes.kt | 64 ++++ Crane/app/src/main/res/drawable/ic_back.xml | 10 + .../app/src/main/res/drawable/ic_calendar.xml | 26 ++ .../src/main/res/drawable/ic_crane_drawer.xml | 34 +++ .../src/main/res/drawable/ic_crane_logo.xml | 38 +++ Crane/app/src/main/res/drawable/ic_hotel.xml | 26 ++ .../res/drawable/ic_launcher_foreground.xml | 55 ++++ .../app/src/main/res/drawable/ic_location.xml | 28 ++ Crane/app/src/main/res/drawable/ic_menu.xml | 46 +++ Crane/app/src/main/res/drawable/ic_person.xml | 26 ++ Crane/app/src/main/res/drawable/ic_plane.xml | 26 ++ .../src/main/res/drawable/ic_restaurant.xml | 26 ++ Crane/app/src/main/res/drawable/ic_time.xml | 30 ++ Crane/app/src/main/res/font/raleway_light.ttf | Bin 0 -> 176904 bytes .../app/src/main/res/font/raleway_medium.ttf | Bin 0 -> 174028 bytes .../app/src/main/res/font/raleway_regular.ttf | Bin 0 -> 172992 bytes .../src/main/res/font/raleway_semibold.ttf | Bin 0 -> 175040 bytes .../main/res/layout/layout_details_map.xml | 31 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3805 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2465 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 5266 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 8164 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 11467 bytes Crane/app/src/main/res/values/colors.xml | 22 ++ .../res/values/ic_launcher_background.xml | 20 ++ Crane/app/src/main/res/values/strings.xml | 19 ++ Crane/app/src/main/res/values/styles.xml | 25 ++ .../release/res/values/google_maps_api.xml | 19 ++ Crane/build.gradle.kts | 56 ++++ Crane/gradle.properties | 21 ++ Crane/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54329 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + Crane/gradlew | 172 +++++++++++ Crane/gradlew.bat | 84 ++++++ Crane/settings.gradle | 1 + 72 files changed, 3976 insertions(+) create mode 100644 Crane/.gitignore create mode 100644 Crane/README.md create mode 100644 Crane/app/.gitignore create mode 100644 Crane/app/build.gradle create mode 100644 Crane/app/proguard-rules.pro create mode 100644 Crane/app/src/main/AndroidManifest.xml create mode 100644 Crane/app/src/main/ic_launcher-playstore.png create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/base/BaseUserInput.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/base/CraneDrawer.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/base/CraneTabs.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/base/ExploreSection.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/base/Scaffold.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/base/ServiceLocator.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/calendar/Calendar.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/calendar/CalendarActivity.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/calendar/data/CalendarData.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/CalendarDay.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/CalendarMonth.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/DatesSelectedState.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/DaySelected.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/data/Cities.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/data/CraneData.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/data/ExploreModel.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/details/DetailsActivity.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/home/CraneHome.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/home/HomeFeatures.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/home/LandingScreen.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/home/MainActivity.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/home/MainViewModel.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/home/SearchUserInput.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/ui/BackdropFrontLayerDraggable.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/ui/CraneStateDraggable.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/ui/CraneTheme.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/ui/Images.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/ui/Typography.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/util/Observation.kt create mode 100644 Crane/app/src/main/java/androidx/compose/samples/crane/util/Shapes.kt create mode 100644 Crane/app/src/main/res/drawable/ic_back.xml create mode 100644 Crane/app/src/main/res/drawable/ic_calendar.xml create mode 100644 Crane/app/src/main/res/drawable/ic_crane_drawer.xml create mode 100644 Crane/app/src/main/res/drawable/ic_crane_logo.xml create mode 100644 Crane/app/src/main/res/drawable/ic_hotel.xml create mode 100644 Crane/app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 Crane/app/src/main/res/drawable/ic_location.xml create mode 100644 Crane/app/src/main/res/drawable/ic_menu.xml create mode 100644 Crane/app/src/main/res/drawable/ic_person.xml create mode 100644 Crane/app/src/main/res/drawable/ic_plane.xml create mode 100644 Crane/app/src/main/res/drawable/ic_restaurant.xml create mode 100644 Crane/app/src/main/res/drawable/ic_time.xml create mode 100755 Crane/app/src/main/res/font/raleway_light.ttf create mode 100755 Crane/app/src/main/res/font/raleway_medium.ttf create mode 100755 Crane/app/src/main/res/font/raleway_regular.ttf create mode 100755 Crane/app/src/main/res/font/raleway_semibold.ttf create mode 100644 Crane/app/src/main/res/layout/layout_details_map.xml create mode 100644 Crane/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 Crane/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 Crane/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 Crane/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 Crane/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 Crane/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 Crane/app/src/main/res/values/colors.xml create mode 100644 Crane/app/src/main/res/values/ic_launcher_background.xml create mode 100644 Crane/app/src/main/res/values/strings.xml create mode 100644 Crane/app/src/main/res/values/styles.xml create mode 100644 Crane/app/src/release/res/values/google_maps_api.xml create mode 100644 Crane/build.gradle.kts create mode 100644 Crane/gradle.properties create mode 100644 Crane/gradle/wrapper/gradle-wrapper.jar create mode 100644 Crane/gradle/wrapper/gradle-wrapper.properties create mode 100755 Crane/gradlew create mode 100644 Crane/gradlew.bat create mode 100644 Crane/settings.gradle diff --git a/Crane/.gitignore b/Crane/.gitignore new file mode 100644 index 0000000000..73652c1603 --- /dev/null +++ b/Crane/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea +.DS_Store +/build +/captures +.externalNativeBuild +/studio/ diff --git a/Crane/README.md b/Crane/README.md new file mode 100644 index 0000000000..b3c5ffde27 --- /dev/null +++ b/Crane/README.md @@ -0,0 +1 @@ +Steps to run this sample in go/compose-samples-howto \ No newline at end of file diff --git a/Crane/app/.gitignore b/Crane/app/.gitignore new file mode 100644 index 0000000000..796b96d1c4 --- /dev/null +++ b/Crane/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/Crane/app/build.gradle b/Crane/app/build.gradle new file mode 100644 index 0000000000..d21eda652b --- /dev/null +++ b/Crane/app/build.gradle @@ -0,0 +1,106 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +// Reads the Google maps key that is used in the AndroidManifest +Properties properties = new Properties() +properties.load(project.rootProject.file("local.properties").newDataInputStream()) + +android { + compileSdkVersion 29 + defaultConfig { + applicationId "androidx.compose.samples.crane" + minSdkVersion 21 + targetSdkVersion 29 + versionCode 1 + versionName "1.0" + vectorDrawables.useSupportLibrary = true + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + manifestPlaceholders = [ googleMapsKey : properties.getProperty("google.maps.key", "") ] + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = "1.8" + } + + buildFeatures { + compose true + } + composeOptions { + kotlinCompilerVersion "1.3.70-dev-withExperimentalGoogleExtensions-20200424" + kotlinCompilerExtensionVersion "0.1.0-SNAPSHOT" + } +} + +configurations { + ktlint +} + +dependencies { + // Actual dependencies of the application + implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61' + implementation 'com.google.android.gms:play-services-maps:17.0.0' + + def composeVersion = "0.1.0-SNAPSHOT" + implementation ("androidx.compose:compose-runtime:$composeVersion") + implementation ("androidx.ui:ui-core:$composeVersion") + implementation ("androidx.ui:ui-foundation:$composeVersion") + implementation ("androidx.ui:ui-layout:$composeVersion") + implementation ("androidx.ui:ui-material:$composeVersion") + implementation ("androidx.ui:ui-android-view:$composeVersion") + implementation ("androidx.ui:ui-tooling:$composeVersion") + implementation ("androidx.ui:ui-android-view:$composeVersion") + + implementation ('androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0') + implementation ('androidx.appcompat:appcompat:1.1.0') + implementation ('androidx.activity:activity-ktx:1.1.0') + implementation ('androidx.lifecycle:lifecycle-extensions:2.2.0') + + implementation ('com.squareup.picasso:picasso:2.71828') + + ktlint "com.pinterest:ktlint:0.36.0" +} + +task ktlint(type: JavaExec, group: "verification") { + description = "Check Kotlin code style." + main = "com.pinterest.ktlint.Main" + classpath = configurations.ktlint + // Ignoring paren-spacing as it flags a composable type param as an error + args "-F", "src/**/*.kt", "--disabled_rules", "paren-spacing" +} + +check.dependsOn ktlint + +task ktlintFormat(type: JavaExec, group: "formatting") { + description = "Fix Kotlin code style deviations." + main = "com.pinterest.ktlint.Main" + classpath = configurations.ktlint + // Ignoring paren-spacing as it flags a composable type param as an error + args "-F", "src/**/*.kt", "--disabled_rules", "paren-spacing" +} \ No newline at end of file diff --git a/Crane/app/proguard-rules.pro b/Crane/app/proguard-rules.pro new file mode 100644 index 0000000000..f1b424510d --- /dev/null +++ b/Crane/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/Crane/app/src/main/AndroidManifest.xml b/Crane/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..141d1c4998 --- /dev/null +++ b/Crane/app/src/main/AndroidManifest.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Crane/app/src/main/ic_launcher-playstore.png b/Crane/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..acbe14b08aa63ce2aafaa29f24e2f1ed33adc99b GIT binary patch literal 17994 zcmb`ucT|&2^e!5jGyxS*=~w^(>AiyrDAJTB9YuN-2rX0rQ4|o7UPb9mq<0Vzk=_gt zAV?KLF9{)#+zH>h|J}Rp@7#0N5=<8F%hKr}8sxTj|5KfO5%^*1s(M(<*p=8Clo#fKkfH7O(&>p<5V#vXG= zs=kbbbk1_bG%Iw^&dypga$mSl^@0Hd`|~Wde(b5)&6}{CeM|Tu79}I0;x#zuFbmss zP(l$5k5Cw}WZN=f=Nbf}3RZ=XgP;EcAHu*i5GwHVf8qlPnCAlcf&9OIuqZ9T1eeNV zLh|h~L7#N}Li3bEvG>Ucd!No(Mw4U{bSv9W?s9D5$MM^#gw_sR+uwZ(Do7Ajn1SIz zQ2-L|yp>kej6AJ+g*++E>_LfZ^H}nZ6We!_V z0K;Q6@YrBBnsnrTV@bewRdr<;*emyH+Jp8e2l1`llz1upP$=AMC^ED|!YSH%^?9gL z-02!cdBY-I>|W%%K_KKgOh|DUu8rqBQSJ4|PVIkMtxE@#a-23Sx19zyD^dUG6#qIz zx7N3o1^Bh)hlFB(ol9891m93;yFpwGm-?m_-D+JttCZvXa@8rcXR~rn5FRk~ zL`9NrCWdp2qrtw1wT})rD|-e(Lw(Icdr<3M7{0Qz zzsjVX40s(aD9nxb5^ya;+IW-H%iRU#q6l)Zk9i5wZJcp1VK2cKiT*aEbJA`<$nwt@ z(^GTt92F!CQyQ=hXT_{yT=jyjvrj5Tp$scEY87-qZ2$6C7`%b^wtt^X9mbB*`&H)$ z1k!L8*0#h-0!G#w9fuaifzz(_YsnUjM$69bsbsF>ysJj(JlWBOk2x}YuuCR|Px`N&x zN?;@>9K19}?!H<__Enq>y;s_-0v`oBs!|cdBG2znKR>YCexXAGw2L)^@e-D^dkM01 zA>ZtnJ6zMspxY)E=0r&==n3+@@x3ardJ6hB6j_A`SWMOc-mLP6b!cpznwQ|pynHw7T0wl~L=L9!K}qq11Zf_urT_{iH}M6D0MMWT1~cDNAI@`+{^6aBO7ek=csT10$AXd zke_VsZd%lsrU+Y(#>Pb`^$2Wi!BgLPi$QKTEDBXP5uZYQ3(bkyga+ZB+VxBt^BVpQ z4T++byAlbz-M&ay;Q}5xc@dFQMMt?FG-+zLI(h7+7G=PcDoA3}wOQ%yMh0{kT8e%S zT)C1uwb<_Otps+K{8PP<0#A906@QryxBAxahjc*j(o&oTPdRJz{odUNqdazm2A>BG zSIWn#G*zBEsOoaj1|j+^7J({`JcQb*M&hC}J|<@dy6_SNS-5W);1CRtpD2SFpF<|S zaHSTj#0T{(V`RoU4`Ck@k}EQ=vb^b?HY$jVL*jTDeds43W%=ibchJPJ-$3=QGrsJr zrKVD1=qoR;FB%#y1Wh~W0(~6A;2X%-mzG2e6eZ>4FDTyBL~V?W{qFx|7#IKWasSU* z`48=)J(R2Wxx!8?FyOJaij{p8=iXttrVAJI%ldCG{{es2e3w(oC=#UpXkN&jLh+4p z2l2sjEBx=>1|m)HuP zCN3s=l+=3EVJKxeiX&8Bt^W(grhWD3e$kN)8OCnuHBbWQ5i~NSQu7CFIw|`DFJD|y zY;)~#wO0E6YQ5CzV7-N1XY01pri8W2ssazYQy+q7{1(!0hLR|c@tR6gCnRe!;HF>9 zX@%XMN`S7xbnN4|DWQh{TCJP3N(&!48V^*+*9Rp&`?Kkp`A-T_jJ#A`!GwEm9@|WGqN zf*U16@Dms!h_PgXG5OZkiF%JNeq|gqa~Cm zeTAm-I@M;478|)X5^FM)kpl6TP3j*D)j+ob!6oeN?PC8|g=6Ekh|8+w+)4%Z8Tox+AXcRj}zf3qQ3m`R5SXVqx|94sLC-?rz+9lXgox zxnOQ>rQdZ6b3`RhKWlHHFhu3&NPfcVXDMIZYUusNE?R@wzbSvKD8o|OZ_&YmkOeVc z^H8?tyKI2>O~v5tSEJkeoCSg1c$RlNGB7Cv$hn|Q zH41b$6+W?K^_2dhU7j)3#@bx0#nom1(YA0N()R4SAEPszPW^D=U#sfYMX-Ah!{w1@ zb?@B=e%NU})P;^4v==MN7~$=Ek=l6`CqZ0-74AG4F1VMmS`Y5~b}!|mf6Uw5mnoT0 zaq&JA;BzjY*3^Phu};G=+f~=(b5}68fHy`yrKKs ziY-rbW=Xy)kzRnzLzD0nhWm|NlDEEQ&{rT9i>QCOzM(}x4ael)J&JYcYeGxV2Nbuw zf^U5`!0G*aY@95}ODGF%b!Xum?Sm>Y6BS6;?O1DFUQ`uJxpollsVRibzzix}@i0be zaTuO2`sOpK{CFT-*L~ zM@7Okorl27W#k8Ka6WQp7GhI2p}w*(D}jZ5PYGBS|GY1Yn|=wS07myV^?Fl5b}tlo z9j%y$KDsH5ONPx$gomXUOYqt(m{+AiQ4=SLHg4IqKc%`uOn5`R&vmxU8EjC;%m{*; zZ}p?*&<*FN#=Y z%DCyLkBQYfTX;?y%TPRW_b)6?uH?5$5JoJv0%;wt*MNI2=Pf=rzpk`#sflg+81GvN zGSYnut`4B39YN-OCjH^Wd{;e!H{YNvaWyuixI>nk;u6};z99O0O`L5~awczm?7_HC zIcNL5Se2rmr^G|nNemrW4XxRRE`ENNRn@L2*r&{sF-v)^($MpCmF>u%+AXzi6#5Wv zV%45%cERB5ud`9=iS1L1?IFKu@_7qn3rdl_NtZzg#sdg)f^3q|C@+x6PW2%9RpT zPESFO(h`Xzi*lu`2VO7Ee@`a5x9n=GYOD&?H@E0nJT{#yapfS>wZ6X*x^WCoY|mg5 z0*-wiju_6qoo}>wng1H^+(kY7l_9I)*Yd%x37In5(gkvZO}%{}aF)365s24u`ATi; z^><)g$BhG>P-1og;(1)^38rGEf}VnHdf97V>-%P@Ksnyj9A@HLzsl4Ab5n{jKh~g7vJ~?&PSM%z0l!P#@J%hf5uJuaULqJ8OsgO zGS=#0&XXTY4B&`)wDkyyuy{cUB}_dwi$SFnIPXnrua&D7^`UhuS7)wG!2W^DiMZV} zkl0>7ZUYj4BgK7N>YOUJ&FjnPNqN7l>0lG2VDbr_LA_{Iw`dlF0_yix2qF8V zNBG$uF(A_f2y@BWCQp6V%kDd*<`v>G0+G_V3sVv}aMRYx`u0B=%PZIOEc|kZDx;lr zW|q2~wejGhRUnZ$^gm z)qt0!xTc(fIKE;=&~*0-@gNek^ARb|&8H5PPou$)NFZ^!AINY1A?ni3v&h{|r{$RQC(At^(1O zdkx*=E08L1fzttk-q@b+@}zoQRlH2*JO-gf=ylVa%EqUBn?Z~rHy+FSoxCfk;VNex z+F4=O;xn06e+&Q^yTAH%Ze`(fyEZ@8ckkI*WjyP#lg zX>O5NXF0c%0ur!R!5TQew%I%X z(rnGXlo7r)#2JP zs4G=s#7xfqlUpcCi0|msJe#!Sa6vD9*tKZW>L2>4?hQ$ft2o0A?slBq2m@I5u>Vbn zW<9&1F}<)(hTU`T;eknwh!!to1GU5_55v)ukg+8?V$O`X;%c~>r_VR3SU! z_6(TJ?8GF`Yg@^}*bKsHe%DIL7Mqp7bWnC*5?)A!p{mlb#cofg(lI^gNi2>W2xuPF zwpJ;%m~!ie5U#!`ZQ=X=(*#zF)@CL14pj1q($j+9w%rr?{u1h(3X8{YkY(igHwzp` za!pGx#&%l_z$!f8pxQ)WR20m|(knvjx0}~O9FlulU+l>U-XbgUd9=`duQK&yKr7bC zz+xZE)hGgX7}TAc>t3g-Cu2@OkKHaT%y$VvI?)7vS3vwo2WjDlM6=kP7@klGY|p)W zPX6~jD3o>mRKQv}&(fQ<9hD7tA63anrTxfmF50p)3tToJFhi|Mi@In%L)TpAGvY-RCnax(oRP9gOxk%YHQS8WAxy9fCZYh5h@NFB&4UR;DSgpu#M>csc z6x_zJP&ipC_4dpzp|w^>NNz&9m73^Y^{%hfzLq;iKU<=(3+PQGgx5Attf2I&um{eiAo-^7`v^<~Z$)9Yr`R5?#)G zs0UPHz~(YtCU)D-W2}!bf2>ru8(Z(b+nm?!P+MdF{Sr?%Phj^C4|(yy4QaJc*wbY{ zm2KkAb||AjU0zhKBVjCfjn_(0L&Wei=4A_B(ck-M02J#RSc*Auq8Fd8H2f;XX@LL^ zs^L{&SRUGG(x;_#-&wuVY7c`U&%l#pK^?o4o2xq&bPpbmq@E+&xY*5{cBVZ`K@u!Y z={mBd`L0E6p_WUHL!RWsZvBEqlt+kTX`_ zUZcRI2Cc-!SvqpIEn*8hY@T97OpU4+rj?A?nZDKd}RT?z^%vC3c14p)B$N9 zK_ddqBwiF-3Sg482)Bk3+vR2xwum)rhey5aick@7B#vic_b|>aq+NLwlOlbC`Q({g zn+veQ`52IpIqU2Daah#%xCoqvvXKgBx8_0 z$5`S$RLV@1c#FFoI$JJ5R3TyU#>eeuBhp=Bt8D&#;mUAvZHXKECANl+Dp4&K*&3=q zmK~1RIofgHBA{a8KQI5rE{JxAKYTU#2s0|geB}S2?i{hW#R;AckjVDFc(Zr-G?1Nr z`m0GIBF=CubbRMHd5}1XS_tM!4eT#SG7dgUis1>O3S58mOh1K(TZ-f`c&b!V0HdF$ zOTx!98CbW+$+w-pH}OF?8!h(#HAqLmV&s{f%5wQ0zSsmgRYz;TSa+B6;b^0+Ll8Qc zaQN#gO(QOmPAO_I1$*kr{^hR}PF;5b z1(oIFresrI$=Qi6*feOoLL0@dhP+3fmJ#u&`OCU^sT{(iMOKDA#VB4eT7{=l+{zEw z3d&o83Lpa!M9(9bd>UbWtMGwPw4fA!QX2eGDM^Ye$E&rLCx=xFk_@D(5LIchM8ex; z$=WW*{K5i>MR}huy!noO8?_}Mmpa+=`g#F4Jom={nHlY`U`$HL?!1k9IT2R0bN}$9 zN(wGa{A*^wstU+cU{C0}lx_&g8SUfrQV4e?=}C!AqXu33QshUp?Z*%A``@j9e|jgw zY1nWTs`4MQxVS_xbkcEG_?@lW^Co1A!!#|e&gAa)o?9_3@#<{T`q!lXlwn&)lg*Qx z>|t9cRYZPr;!&*JHl$E~^q6_iGnNP&$^gjZ-e(jB-ni)Cs>adEKc3S4lL^h~Ps zPf*bOInZ77QQo*+DH}2&GXEp)2CLb=gHdSHc?=ntLWIS%zH*RVd3ilgrFvD#b@dUV zrs!_xE8kIupq3@0Ce~zwLXfgQ|HqCa?{7HK>d52~t%pCK=-VDrB3dmiv1W`wVH)ZN zD*2s>XvJa%y)nXLz4*^VmD9h-4Zl#es6gH(V74_cjsX*n+>T)kjdAj+T z0tdr@vD#4WSHEuh!-`>iiQp~b4Qm8f-|24{OH91)l=uq<_wqB1JO zceH&9j5~ak73&UjM<0&{!AflcUxAX~%cH|%%dr?5Ace(q|8gsIYh{M~Y1$j?&d*@h zS(`A{(A3ib*Zxk;thZ9Nh(&FkNRcZv>4EQG-{o_A;RyNxAQ1u^Q0o(Mb|I`=qE8#m zHM}hH>IN+ z=5zqR7%3cVw%-%uK!Lbf3@X?DEVDO!TE!p{Bl^WzxA{`bO9Rd$e|2zDx4+cCw7%Wb zN)C>XmzdYJ87Wv+A9&E;6yMHeYrB$)%E?;e8gBREE6-{$1jW5_z`bw9w6aicZBSu0 zon(2IaD!#{)2inSYuL(<{yj0#mR?m#EL)p4fis$A?y;o98R+K9^IpVKI>A4bgA{r` zv6MvY;z(V>hbg(g7)T)v=xWG@3=w);dn_MKal-IRCILkvN(41IOIi?H zv3BR5%MCf<-ph8rf>Rboaz+<`Ur*CML@#t!TRi$@Pcvxz&Z?+@Yr-=`Z8$9XXx|&5S+}>=&#?uzbP^PlxF=Xq>~1G-Fr90RE*=qWR#YU78HH&Lt1_W3SIQ@ zjeSK>r3LnH-nxEnxU{zUTB7<(F^4?2fma6B2ne{8HYIq zf4rCybuxWUDey1;NK{I6jHBZ~wtU^@&N8Vs7d2^t>~Lnq!cGL`rhGBwzBLTFI ze>+&>JdSOXePo{3qe6Vqp$XLW!a_DV739~o zmFLY30MD@sk?!jzEAf5QaicqEK>?VNDIX^LD@9t{j#)=!*00YO*DY$^2z^*;BaR~Z zj5@5>dm85^h)RRNwVx~`JtVXjZlRKD0Muokx<=bWm$5CUEMN@qWiMzrAFw(XbV0^B zp#r~VTUvtfk7DmCUS(|DBolSq`OVVT5qu);dAs4GVLn4hIquy3<%;mkYs6sXQkN&? z&)2cb_&rZe!U$)CbZ57nmdLR6HDC;OXr7O>zsq!V?|~lGt&UR~aNb${jE4t-G$=*3O@uUz|FIP1EveHYc}p^Ixb7Mg?MXW)xtyK{@%Sd| zWWh*-MJk9%AjNb0sSCpkV`jb>8aQz69f!a7Tb&g#5#pob?57bb;x))+0nauG(vHfe zbLsQb$9?jV!1siqD)2)lPb?ow`=J?v0}IT8jNdL>k#-nW#GdDv^-|qzE7ha|-nC(F z^SJ>c{>4Fj&{4K+322i6(K?JYU-6Nro-^j4m0GxP4b0|3EWq8;st2dG2_OU7p^~&t>Y61g2F8VG4!?tV+)~|VMYViMCd=9BO7aXI$_Q#^XYMajcl%&B)G!$8cLz8k6SEm*+_mMs-khsMq^_?*NC zW>li~+*2T)AW!EdKe!G5gKn5N190dOUA6Xf;}e4(LavN|A&n)H3IZp{cQBG38@djy zUjzyZg+dNaMA7BrBO@wH#Si#P_S3nDBE7PrOihP)$5JXmH4tM<=`OD2QifQMfOPVG@C_jz9S~FuL4pqICpa@G$-9*ySQ-SGVWu+3 zU!GZ;>||Ypd=nz~SFWG!tD923nt7cHl*5&bxvRxZ-K*E)2vymm?vf7RG~LzW-xzM1 zeN*3T_vknTktOJ1H^6QPn~)xYeq~n8yDv&7=$x_YZWa7tka_d|r>bkk zPI34IqYQO1By`FXVBAT4p96)qB5Mu!s2{5 zG~H4PeFBjME$$Bsms+n=eYqKUr(>hm`8a-^$b{&SN%cd4)`#y2!@0R3B;aCmE!KHbH3HL4}4`32{G`#bX=eUze>zT=jP5ArE0*pw~x41XfHl; z-Zd36>hE)b@KJ<;Ot79V|EDzPmmQ^^P3oX6B**(a5aln*szK)O?zj_a1u4&TEO)yU zTYNpN$Yez!lS28~HqxSBOX)qPJ=iw=@8*PcM>rI(c&m7pheIISvoudIbSidVIQ{?rX6Sx+`Mw4TbTc)WHo-}ri?L3COhPvnaJsv##UZI z&^+~*|h*>Qo%s- zi0_75JVeDe52Q#Q&yr>QZqF>ma4kGEO_9vg<;oEm^tucAYOce@Z_g&Do~5{YoE`=m z=*)YM1C06&!jPb$KhL3^G5e`g$#Va05PF9ndTa7MWd0?@b6F}eAfB^rH5GNYW6RFm z2w*+fSx^bj-T2r0xB`1oy05oSqkn(xrK$`?m|!cZwxhyV-}+Lrj{LIQpa~YwNdh$W zHjs3QKbOwHq@kb^7O0gDV9L#EJzIBLNQy~1P4TA8r|H_~Z%glnt!0Qc4%{c^-0d7- zoPv+ghy{!A`Wh$bVS(He`&=oEjjSUHPEt_5|EgGUwpD^#*|h6!py0nZk57Dwo1di9 zH*|>4{1)Zw9>9DdK=OOtC#lo(RFFXih{+w*#P|}I?jmdjJqhqO6U}#EMgcXl?Ob4~ zQ&6+oAaa}RQcW%cj8dNvHmE$o)iFRauSMl}WR(k0_O-b{h#n+X)@L-kP|X8`zxlw! zxdW38>{XLZgtU-(yqm&O0IQ3GpX3EdCKsdvSp6@#X53Aa*1%&oh*UIp+VnZ=Mzks< z?1~4q#ZrJk-$3v3PnzmcH>#@^<;_Y+aL-SG#si5EdWe(6cPMBB)qj~PE$vXE-?4S@c7 z$p|d`9F^eaMN=^FP@lo#umXV@iMMhg~F zKy+{lEPMef0*Vk#ATx{zfvZPpHq}Kp%SHb5abq(qZzj#T^#J1O4`~>En+M#^Cc0^I z|B7Y6ta^@OVFDB<@UM6DBn~W{QbD>T_$45?K!9I(q}FH}xH9=#m3};jTRYuh$)?%d zRie78>qDM+igagrJ5b41Exrys9sk4mt=oedR4hCOpMw3zl;OsX)>9?STpXojC|{S} z_fyB%=s($o{ajQKdOC=4_BQiT{U!8;PqNjQ=D!&gX%C%#^B%F+`&ZVpO$BBV@xK4w z$$xIp|KEi4kx0i$cx~db)~ZT zO92oh*quKyWil%?A8_ZbBIhR^2@@CBMYX!QPB+b#<2#VA*XBV>e0D!->`}#Tf@Vg%j?MzFDnY)yq(%=2>4^B<17c*O_II?jihat&a|M= z!IW=r*N9@3L_F36PI*i~K@OG05^m=Tp)vliCfK?f+H)k3t>>($vb3*1CYnhrpqWZu zW&o%dZ{Up>2cV`=XhGR*p)TZCE5wF8H7QJkj5*-;cSch2*=jZ(Axp$%SHtG*_2w-j zMnM0wD@g|(!oMY5FWpPt3tltD!MFYZho6ZGQgT-V|>lU*`==R4OooAjk3x3aZ$U!Jk1W7?G0yu2$bg-mEg{8i} zHSkZ~s#7F+v7Q_>w)Ex~d5FE3%5uu1&ri|$9%-$Aj0-Xt=e701XNs72mVud&Yr86g z`=9MQfr5Ak?fe>UQ+{E?4Dhnib85g(8JtAPV%J4iZ*G{^8W>E+J+A*SU?dW12R!*L z5^lb(e@Lx$fC)mkBAaQ*bVOn}RcapR2Ss6(NPzOj4i;GfQLFgFGsfkWk^;jiX=EF&`HYgi4vYAtxoK6V)n?zVX&R*S;$ayzF;p9ZL|8Oe6yl z${Z>*rQMw3J}}YyE1;A#twb1?FC8=KC)Bl^%*79J!=J^3C7ZfeTN_nap%3^I zZX>yJXtV}f*9Az$AbA=IWM?G@o{WPu@S~eu{Onc#7yZkkulEPmuy5UjiBMw6iT)!}RcXgPHL3EnhHYtyPlzNlxNTI=9`*33e}5&EwrQp5%+jV*82xTD@-grB?`f z2Y7r>mwGBdtpM55HF67&;*R`>Xwkgha?PSa7iPE4`3ZSCaD{b1V(ko)x8GiBeKrOR zo<1lw^Zs8RLUE=Il%a8HC-x>3ih8dz9LlT0xn=4tnuH*!NsQG< z<%RhNCP710t0L3i^+QyEnV_(%f@R6pk&d{N*!~5XW*E1iAUvgd_A+Ec>d5Be;r{j) zK<8+B7JVO-I5a_dH~)*F{V<*CNTuQlPb=z%pawC>)q)}~ko}vmJGl9Zl;wPTiKGW7 z$3qvfclj&FPXEQG73yd;$S)^A*&Ka69c(coBq}AQeq;UMZ#|IR|BYfwiY;54x%$KC z!KczZkR^X5Rlo@uKeE63as5C;E#=FPRDUUK(J@_pEMPo)&IyLMP;BzMxAxVK^|qD) zD8tK_huEH$Ebn?^_eG)IB+7|{<4E=pAh#WT#$^4%;Tqc%&c2ujzP*V+j^gx>#~wz1 zUgF0r^%>rO0++(lyVMbcFB74@b1H<-O)1WwfWvLf^JXK-Z9r8jc%QFyVrhX6%J+n> zyjT?}vHhe`^0891odwKKTTiR}gh*#809lorxuMMMp-T{pkO3vbdmJ>EWjO4Pse%)hzHV+p&B zaN$J6yKw+gS$ek!l5|8Nh@EMWA@TEcPALgI8@yKxD^4ys5k1=~WvZLGTYGuoqfe(b zFQx@771`Vr7R0C^Q)bb7cjN~CDbD#Wc<)Wtdqsl_7xg&;co~LP)+2LjV#r5~P8fP* zVCq)LrOuIXH`f)sYJ2pcv`5JIVAaFw&A__y2xndQHh`IT_zMD?w@@MLX5SilCAmsK zyd<(OndnxAQ{fIJ>mZ|38N$p53zgCqPxVOE!1q6HEX9fq(XD=hh z#~F>a^~geKf${2<0>q&fUs3@8=L)B+pUwl3Jauo)`qLbH+TqYe(Hzv49YV4m!*mD= zSm7L#y$?nt62maUnTdzFUF)m&-o=xNavx?ukPk`IY~IrnmuD*;zy^7!f& zjL4a#0!aGiv2=r(AE=w|!je7UQLk_HD9<)REfg8c0S|HNP4#NL8`E(?vk8Uvr!3P4 zUS7d(0+@$EF;Ev04&wlRz^@LL=JyAH4V6UHaAHzj{u?$-FfJN8c3(&9(PYJEGkMoI zP*R%$-fflUZqshMn1d1flX}gxwLuFx@xMQq?EeG|#KYLZTOQxN;t`Qq#N6 zC;i3Y+z^P&H*x)Kp-?)S^#Y!|E0b^I#WTH!llhGl|*Z(PFK%dz$oaA{=ZI)KB`KFWM?v12C1#N3_jJYXCOu2b|sy$y<$Dd`_8t#xTF;qI>P zS9{=}xGo2+%wEtR65pKWMBW-egmNuZ<-1H#@Plvahmx0-af_{e5r0fbq@%UfHBj z1^}51p+omF&GniFlq-sf9NN8|V%m!%tSr-dNn8Tom8eM}?-w6-2hdK_yR9g`%z7&= zxZ+y#Ve!Mq-sJBarp&TFkG%tR>!MZD>RRn7)pX%B=PTyAUMccb9Be#k=)ElT_yQG} zqVJG27RfLQh=i^l;UFNuhR;`0xrf~B;d4T?9Qsb=qf42ITva(=ZFi8%ZIr%=qLDgi=SI-QlU5)Rs#(2|3MVV0nK^ll zQB0`J`F01;+p7^&12G-t7Bt%yWp6ea=6_g{pm;0wTThZ2k*W{~JO2>IcN_ih_;gd4 zw2)JAvF@p{v3BLTvFRzFz2+q3Ul1LbgV!?`l_NmnsN*CPV+Jr=h)hum68VP~AlieRHCokuir`L|qcjIsw15ecoWFQzO zP&v?=Q1oBywufE0k#U(q*zy}C4iFpu^(TxGyDzK!ZR zX-+ie0PW1!pE8kl2+@+6rnnY%0^kU3*y^5dHW`eU*;ASb{`>)SIOZF?uW75zXIdq? zB?@fu0p*ZF76o*Cv9lDCR{$cpmD&_WWp-ttOAQi!&gg-ikwbnG zW;9Y0oKp65nytN$hQb6ajR4QMvbZX4?Y?Y@Rj7K7@^(>sZ<*I^E-7o0c&6oSQWB6% zh*sDwyrWTZFqa$JRxkqL-7u*~>tqXKXG{+m@Wt;WSDDuzH}0Rtfkd(qmJxp*Pq z+n#2t5R8-DNMdm%eQ$3(|#r9J$HL(|ndY@csXejVw6cY7P%Zw&5d zV-GlM0Mm2zX%4~x@7c`=*Zqr@-8`tZmekbrx3-^gm^h`jI=g)Fpn8U9Jb?H>nW0Ps z9h)j~L@0^Xs<}ScOR?rf&L!K0%|zj@{AQL*1{=v5)wbcdcaRQBfWlU=LMpT`*&|__ zCW1xgy({RQjM~IxBJIpq{At6cQWO*8MLRw9CFL7{X#pVz2pOc^evS*k;W5WpztOTS z##*RSaOB3Yl7Lg4KPKy7CX%EN9exwpVCmyt4XenuJAA&JRf*@jKB>o~rO_b0 z0pxq^-F}g{S@+wJlk~MWTmZZSE#0}TH!`rrA$Iu(dSrZ;$pLR5aP`HE2XICJX=i}6 zmtQF&7>5z_0YQxccqbIb1l?mlrC_fS8kQ7&#vBF#2mZdCWFAg@5u7+xVl||gXmr4o*jh$@10EN_Q&BDR3Q*m$iH-# z&1a`uB43QH|BL|VUmH3g47k6gUmETW-e~CVYWc9cn#)ZJ>@JM)xH}{CZpx*Bn&-b< zVZW_hpT9e`5VqTm;ckvzL+E1;waNhF9H=%EYNHJb48wLH>(gn0ETzj&`N{wp#`n_m zMbTC^@J`WBrTfIiJ?9*3v-MH!j5g*|Tb5OKt5$`l3#41F|9WK4ROuAj}4 zB@meX%%$}xQDXvC2^v3-`8;F0A`9%f;5E?-FH|lOH#x&Xy2tdDF|F9$;~*s0-Y3fj z!5|S5dYeO9Qz{!5j!Pg)z0+z^Mr9aMRAf1~W%#8kIX1O0@}F$oC9CqwfZqbBV*>)9 z76EcMr!K~jafvwLXwQSpZ=m|m^w{oI0&BK@jq8yGjwTBB;Yo+EVVEUEj>`-^y?NR3QjQNHjhg;YG`f2l>-@0n5_-K%~UB`ie zXpS23iiuDYuUK2BB#XGZr@daw)Z+%PjXMBxT=iC<&QlEaemmsyLgPR2Fopp&4VKJ~ zpbNsvJgsNGT46GSeXD#CqCKBBV}DZt6dlC5`VM}{C{VGsn5zTk!o)}4&rq99cR-#C zfKpK*f(=0%d4=`NL~}>UqBiJXt^m9TARV=y9p|GqU4z5H}DROZTxLt z)TF#a)@D)%=Hc1$Qh#WPuOI=obWJ6d@jJ6z;LtxNC9IV|E&w#0SeE>J5L8J{40{%O zSAUs2IYiPA6JJLYDc5jZd^Zt86JMj_HzR5sYwilWv155=Jf4i*5d+H9bq*I(<6tmj z*LuAvU181^&*PTkBPi%YsvpsxZK=VupgqhssfJQGVxu%0Bw>*I?bWBKBlUv$s42%c%c(HpOi%Zd+hhY zWzp3Ow^`&h!OJuT8;z;#N)?kEW{!m5;5J&~b%c1`H5&4p0KCKW5xW);mrDRFvT}dK zW}(}^+2z{&-@G7(GYv0YZpYD3-v# zGE~^ynjux_%|1@oAl4ytexH}Pg*Fq53CHQAiC2#>m9359N?WfIg z0)T3;R=ie+BplLLmkjUin*~*z?X$tnC|9qWe!9vgQRu299C=v79;X~^^?4m*(%s^7 z?&g_PN$H`N$|%U}ZwV-lT1CT;18tU5qi8}tvFDumLP*7&){zej!eD+9eHReD8rjK1 z93FAIVjdlqjwcMo5giJ|V;-Y=4az^Kol#I}ywDv<2$+3t|J)hy4fcjiQio#yd+5@! zJrBr}%>d`UX}vTYfH%c}vK3@}CaXVUkfi#$jV{TCbz>s>HUa=^OV(Ko?``65uT)<@ zlk{Okm|VK-&h7_ijAgJ8i@Z58bp5XhXJ7xos1M`1Jwe$POlsn0U5D9Q;6C_g=*vo0tC=hNff) literal 0 HcmV?d00001 diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/base/BaseUserInput.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/base/BaseUserInput.kt new file mode 100644 index 0000000000..28a5526270 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/base/BaseUserInput.kt @@ -0,0 +1,151 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.base + +import androidx.annotation.DrawableRes +import androidx.compose.Composable +import androidx.compose.getValue +import androidx.compose.mutableStateOf +import androidx.compose.samples.crane.R +import androidx.compose.samples.crane.ui.captionTextStyle +import androidx.compose.setValue +import androidx.ui.core.Alignment +import androidx.ui.core.Modifier +import androidx.ui.foundation.Icon +import androidx.ui.foundation.Text +import androidx.ui.foundation.TextField +import androidx.ui.foundation.TextFieldValue +import androidx.ui.foundation.contentColor +import androidx.ui.graphics.Color +import androidx.ui.layout.Row +import androidx.ui.layout.Spacer +import androidx.ui.layout.padding +import androidx.ui.layout.preferredSize +import androidx.ui.layout.preferredWidth +import androidx.ui.material.MaterialTheme +import androidx.ui.material.Surface +import androidx.ui.res.vectorResource +import androidx.ui.tooling.preview.Preview +import androidx.ui.unit.dp + +@Composable +fun SimpleUserInput( + text: String? = null, + caption: String? = null, + @DrawableRes vectorImageId: Int? = null +) { + CraneUserInput( + caption = if (text == null) caption else null, + text = text ?: "", + vectorImageId = vectorImageId + ) +} + +@Composable +fun CraneUserInput( + modifier: Modifier = Modifier, + text: String, + caption: String? = null, + @DrawableRes vectorImageId: Int? = null, + tint: Color = contentColor() +) { + CraneBaseUserInput( + modifier = modifier, + caption = caption, + vectorImageId = vectorImageId, + tintIcon = { text.isNotEmpty() }, + tint = tint + ) { + Text(text = text, style = MaterialTheme.typography.body1.copy(color = tint)) + } +} + +@Composable +fun CraneEditableUserInput( + hint: String, + caption: String? = null, + @DrawableRes vectorImageId: Int? = null, + onInputChanged: (String) -> Unit +) { + var textFieldState by mutableStateOf(TextFieldValue(text = hint)) + val isHint = { textFieldState.text == hint } + + CraneBaseUserInput( + caption = caption, + tintIcon = { !isHint() }, + showCaption = { !isHint() }, + vectorImageId = vectorImageId + ) { + TextField( + value = textFieldState, + onValueChange = { + textFieldState = it + if (!isHint()) onInputChanged(textFieldState.text) + }, + textStyle = if (isHint()) captionTextStyle else MaterialTheme.typography.body1 + ) + } +} + +@Composable +private fun CraneBaseUserInput( + modifier: Modifier = Modifier, + caption: String? = null, + @DrawableRes vectorImageId: Int? = null, + showCaption: () -> Boolean = { true }, + tintIcon: () -> Boolean, + tint: Color = MaterialTheme.colors.onSurface, + children: @Composable () -> Unit +) { + Surface(modifier = modifier, color = MaterialTheme.colors.primaryVariant) { + Row(Modifier.padding(all = 12.dp)) { + if (vectorImageId != null) { + Icon( + modifier = Modifier.preferredSize(24.dp, 24.dp), + asset = vectorResource(id = vectorImageId), + tint = if (tintIcon()) tint else Color(0x80FFFFFF) + ) + Spacer(Modifier.preferredWidth(8.dp)) + } + if (caption != null && showCaption()) { + Text( + modifier = Modifier.gravity(Alignment.CenterVertically), + text = caption, + style = (captionTextStyle).copy(color = tint) + ) + Spacer(Modifier.preferredWidth(8.dp)) + } + Row(Modifier.weight(1f).gravity(Alignment.CenterVertically)) { + children() + } + } + } +} + +@Preview +@Composable +fun previewInput() { + CraneScaffold { + CraneBaseUserInput( + tintIcon = { true }, + vectorImageId = R.drawable.ic_plane, + caption = "Caption", + showCaption = { true }) { + Text(text = "text", style = MaterialTheme.typography.body1) + } + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/base/CraneDrawer.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/base/CraneDrawer.kt new file mode 100644 index 0000000000..3ecb2d40e7 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/base/CraneDrawer.kt @@ -0,0 +1,38 @@ +package androidx.compose.samples.crane.base + +import androidx.compose.Composable +import androidx.compose.samples.crane.R +import androidx.compose.samples.crane.ui.CraneTheme +import androidx.ui.core.Modifier +import androidx.ui.foundation.Image +import androidx.ui.foundation.Text +import androidx.ui.layout.Column +import androidx.ui.layout.Spacer +import androidx.ui.layout.fillMaxSize +import androidx.ui.layout.padding +import androidx.ui.layout.preferredHeight +import androidx.ui.material.MaterialTheme +import androidx.ui.res.vectorResource +import androidx.ui.tooling.preview.Preview +import androidx.ui.unit.dp + +private val screens = listOf("Find Trips", "My Trips", "Saved Trips", "Price Alerts", "My Account") + +@Composable +fun CraneDrawer(modifier: Modifier = Modifier) { + Column(modifier.fillMaxSize().padding(start = 24.dp, top = 48.dp)) { + Image(asset = vectorResource(id = R.drawable.ic_crane_drawer)) + for (screen in screens) { + Spacer(Modifier.preferredHeight(24.dp)) + Text(text = screen, style = MaterialTheme.typography.h4) + } + } +} + +@Preview +@Composable +fun CraneDrawerPreview() { + CraneTheme { + CraneDrawer() + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/base/CraneTabs.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/base/CraneTabs.kt new file mode 100644 index 0000000000..eb3cb93761 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/base/CraneTabs.kt @@ -0,0 +1,96 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.base + +import androidx.compose.Composable +import androidx.compose.samples.crane.R +import androidx.compose.samples.crane.home.CraneScreen +import androidx.ui.core.Alignment +import androidx.ui.core.Modifier +import androidx.ui.foundation.Border +import androidx.ui.foundation.Image +import androidx.ui.foundation.Text +import androidx.ui.foundation.clickable +import androidx.ui.foundation.drawBorder +import androidx.ui.foundation.shape.corner.RoundedCornerShape +import androidx.ui.graphics.Color +import androidx.ui.layout.Row +import androidx.ui.layout.Spacer +import androidx.ui.layout.padding +import androidx.ui.layout.preferredWidth +import androidx.ui.material.MaterialTheme +import androidx.ui.material.Tab +import androidx.ui.material.TabRow +import androidx.ui.material.ripple.ripple +import androidx.ui.res.vectorResource +import androidx.ui.unit.dp + +@Composable +fun CraneTabBar( + modifier: Modifier = Modifier, + onMenuClicked: () -> Unit, + children: @Composable (Modifier) -> Unit +) { + Row(modifier) { + Row(Modifier.padding(top = 8.dp).ripple(bounded = false)) { + Image( + modifier = Modifier.padding(top = 8.dp).clickable(onClick = onMenuClicked), + asset = vectorResource(id = R.drawable.ic_menu) + ) + Spacer(Modifier.preferredWidth(8.dp)) + Image(asset = vectorResource(id = R.drawable.ic_crane_logo)) + } + children(Modifier.weight(1f).gravity(Alignment.CenterVertically)) + } +} + +@Composable +fun CraneTabs( + modifier: Modifier = Modifier, + titles: List, + tabSelected: CraneScreen, + onTabSelected: (CraneScreen) -> Unit +) { + val indicatorContainer = @Composable { tabPositions: List -> + TabRow.IndicatorContainer(tabPositions, tabSelected.ordinal) {} + } + + TabRow( + modifier = modifier, + items = titles, + selectedIndex = tabSelected.ordinal, + contentColor = MaterialTheme.colors.onSurface, + indicatorContainer = indicatorContainer, + divider = {} + ) { index, title -> + val selected = index == tabSelected.ordinal + val textModifier = if (!selected) { + Modifier + } else { + Modifier.drawBorder( + border = Border(2.dp, Color.White), + shape = RoundedCornerShape(20.dp) + ).padding(top = 8.dp, start = 20.dp, bottom = 8.dp, end = 20.dp) + } + + Tab( + text = { Text(modifier = textModifier, text = title) }, + selected = selected, + onSelected = { onTabSelected(CraneScreen.values()[index]) } + ) + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/base/ExploreSection.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/base/ExploreSection.kt new file mode 100644 index 0000000000..347d5ab579 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/base/ExploreSection.kt @@ -0,0 +1,124 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.base + +import androidx.compose.Composable +import androidx.compose.samples.crane.R +import androidx.compose.samples.crane.data.ExploreModel +import androidx.compose.samples.crane.data.ExploreUiModel +import androidx.compose.samples.crane.home.OnExploreItemClicked +import androidx.compose.samples.crane.ui.BottomSheetShape +import androidx.compose.samples.crane.ui.crane_caption +import androidx.compose.samples.crane.ui.crane_divider_color +import androidx.ui.core.Alignment +import androidx.ui.core.ContentScale +import androidx.ui.core.Modifier +import androidx.ui.foundation.Image +import androidx.ui.foundation.Text +import androidx.ui.foundation.VerticalScroller +import androidx.ui.foundation.clickable +import androidx.ui.foundation.shape.corner.RoundedCornerShape +import androidx.ui.graphics.Color +import androidx.ui.layout.Column +import androidx.ui.layout.Row +import androidx.ui.layout.Spacer +import androidx.ui.layout.fillMaxSize +import androidx.ui.layout.fillMaxWidth +import androidx.ui.layout.padding +import androidx.ui.layout.preferredHeight +import androidx.ui.layout.preferredSize +import androidx.ui.layout.preferredWidth +import androidx.ui.material.Divider +import androidx.ui.material.MaterialTheme +import androidx.ui.material.Surface +import androidx.ui.res.vectorResource +import androidx.ui.unit.dp + +@Composable +fun ExploreSection( + modifier: Modifier = Modifier, + title: String, + exploreList: List, + onItemClicked: OnExploreItemClicked +) { + Surface(modifier = modifier.fillMaxSize(), color = Color.White, shape = BottomSheetShape) { + Column(modifier = Modifier.padding(start = 24.dp, top = 20.dp, end = 24.dp)) { + Text( + text = title, + style = MaterialTheme.typography.caption.copy(color = crane_caption) + ) + Spacer(Modifier.preferredHeight(8.dp)) + VerticalScroller(modifier = Modifier.weight(1f)) { + Column { + exploreList.map { ExploreUiModel(it) }.forEachIndexed { index, item -> + ExploreItem( + modifier = Modifier.fillMaxWidth(), + item = item, + onItemClicked = onItemClicked + ) +// ------------------- b/137080715 + if (index != exploreList.size - 1) { + Divider(color = crane_divider_color) + } + } + } + } + } + } +} + +@Composable +private fun ExploreItem( + modifier: Modifier = Modifier, + item: ExploreUiModel, + onItemClicked: OnExploreItemClicked +) { + Row(modifier = modifier.clickable(onClick = { + onItemClicked(item.exploreModel) + }).padding(top = 12.dp, bottom = 12.dp)) { + ExploreImageContainer { + if (item.image == null) { + Image(asset = vectorResource(id = R.drawable.ic_crane_logo)) + } else { + Image( + asset = item.image!!, + alignment = Alignment.Center, + contentScale = ContentScale.Crop + ) + } + } + Spacer(Modifier.preferredWidth(24.dp)) + Column { + Text( + text = item.exploreModel.city.nameToDisplay, + style = MaterialTheme.typography.h6 + ) + Spacer(Modifier.preferredHeight(8.dp)) + Text( + text = item.exploreModel.description, + style = MaterialTheme.typography.caption.copy(color = crane_caption) + ) + } + } +} + +@Composable +private fun ExploreImageContainer(children: @Composable () -> Unit) { + Surface(Modifier.preferredSize(width = 60.dp, height = 60.dp), RoundedCornerShape(4.dp)) { + children() + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/base/Scaffold.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/base/Scaffold.kt new file mode 100644 index 0000000000..5b371fe434 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/base/Scaffold.kt @@ -0,0 +1,31 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.base + +import androidx.compose.Composable +import androidx.compose.samples.crane.ui.CraneTheme +import androidx.ui.material.MaterialTheme +import androidx.ui.material.Surface + +@Composable +fun CraneScaffold(children: @Composable () -> Unit) { + CraneTheme { + Surface(color = MaterialTheme.colors.primary) { + children() + } + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/base/ServiceLocator.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/base/ServiceLocator.kt new file mode 100644 index 0000000000..569d1028ab --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/base/ServiceLocator.kt @@ -0,0 +1,23 @@ +/* + * Copyright 2020 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.base + +import androidx.compose.samples.crane.calendar.model.DatesSelectedState + +object ServiceLocator { + val datesSelected = DatesSelectedState() +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/Calendar.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/Calendar.kt new file mode 100644 index 0000000000..f1ad59eeb6 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/Calendar.kt @@ -0,0 +1,274 @@ +/* + * Copyright 2020 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.calendar + +import androidx.compose.Composable +import androidx.compose.samples.crane.calendar.data.january2020 +import androidx.compose.samples.crane.calendar.data.year2020 +import androidx.compose.samples.crane.calendar.model.CalendarDay +import androidx.compose.samples.crane.calendar.model.CalendarMonth +import androidx.compose.samples.crane.calendar.model.DayOfWeek +import androidx.compose.samples.crane.calendar.model.SelectedStatus +import androidx.compose.samples.crane.ui.CraneTheme +import androidx.compose.samples.crane.util.Circle +import androidx.compose.samples.crane.util.SemiRect +import androidx.ui.core.Alignment +import androidx.ui.core.Modifier +import androidx.ui.core.WithConstraints +import androidx.ui.foundation.Text +import androidx.ui.foundation.VerticalScroller +import androidx.ui.foundation.clickable +import androidx.ui.graphics.Color +import androidx.ui.layout.Column +import androidx.ui.layout.Row +import androidx.ui.layout.Spacer +import androidx.ui.layout.Stack +import androidx.ui.layout.fillMaxHeight +import androidx.ui.layout.fillMaxSize +import androidx.ui.layout.fillMaxWidth +import androidx.ui.layout.padding +import androidx.ui.layout.preferredHeight +import androidx.ui.layout.preferredHeightIn +import androidx.ui.layout.preferredSize +import androidx.ui.layout.wrapContentSize +import androidx.ui.layout.wrapContentWidth +import androidx.ui.material.ColorPalette +import androidx.ui.material.MaterialTheme +import androidx.ui.material.Surface +import androidx.ui.tooling.preview.Preview +import androidx.ui.unit.dp + +typealias CalendarWeek = List + +@Composable +fun Calendar( + modifier: Modifier = Modifier, + onDayClicked: (CalendarDay, CalendarMonth) -> Unit +) { + VerticalScroller(modifier = modifier) { + Column { + Spacer(Modifier.preferredHeight(32.dp)) + for (month in year2020) { + Month(month = month, onDayClicked = onDayClicked) + Spacer(Modifier.preferredHeight(32.dp)) + } + } + } +} + +@Composable +private fun Month( + modifier: Modifier = Modifier, + month: CalendarMonth, + onDayClicked: (CalendarDay, CalendarMonth) -> Unit +) { + Column(modifier = modifier) { + MonthHeader( + modifier = Modifier.padding(start = 30.dp, end = 30.dp), + month = month.name, + year = month.year + ) + + // Expanding width and centering horizontally + val contentModifier = Modifier.fillMaxWidth().wrapContentWidth(Alignment.CenterHorizontally) + DaysOfWeek(modifier = contentModifier) + for (week in month.weeks.value) { + Week( + modifier = contentModifier, + week = week, + month = month, + onDayClicked = { day -> + onDayClicked(day, month) + } + ) + Spacer(Modifier.preferredHeight(8.dp)) + } + } +} + +@Composable +private fun MonthHeader(modifier: Modifier = Modifier, month: String, year: String) { + Row(modifier = modifier) { + Text( + modifier = Modifier.weight(1f), + text = month, + style = MaterialTheme.typography.h6 + ) + Text( + modifier = Modifier.gravity(Alignment.CenterVertically), + text = year, + style = MaterialTheme.typography.caption + ) + } +} + +@Composable +private fun Week( + modifier: Modifier = Modifier, + month: CalendarMonth, + week: CalendarWeek, + onDayClicked: (CalendarDay) -> Unit +) { + val (leftFillColor, rightFillColor) = getLeftRightWeekColors(week, month) + + Row(modifier = modifier) { + val spaceModifiers = Modifier.weight(1f).preferredHeightIn(maxHeight = CELL_SIZE) + Surface(modifier = spaceModifiers, color = leftFillColor) { + Spacer(Modifier.fillMaxHeight()) + } + for (day in week) { + Day(day = day, onDayClicked = onDayClicked) + } + Surface(modifier = spaceModifiers, color = rightFillColor) { + Spacer(Modifier.fillMaxHeight()) + } + } +} + +@Composable +private fun DaysOfWeek(modifier: Modifier = Modifier) { + Row(modifier = modifier) { + for (day in DayOfWeek.values()) { + Day(name = day.name.take(1)) + } + } +} + +@Composable +private fun Day(day: CalendarDay, onDayClicked: (CalendarDay) -> Unit) { + val enabled = day.status != SelectedStatus.NON_CLICKABLE + DayContainer( + modifier = Modifier.clickable(onClick = { + if (day.status != SelectedStatus.NON_CLICKABLE) onDayClicked(day) + }, enabled = enabled), + backgroundColor = day.status.color(MaterialTheme.colors) + ) { + DayStatusContainer(status = day.status) { + Text( + modifier = Modifier.fillMaxSize().wrapContentSize(Alignment.Center), + text = day.value, + style = MaterialTheme.typography.body1.copy(color = Color.White) + ) + } + } +} + +@Composable +private fun Day(name: String) { + DayContainer { + Text( + modifier = Modifier.wrapContentSize(Alignment.Center), + text = name, + style = MaterialTheme.typography.caption.copy(Color.White.copy(alpha = 0.6f)) + ) + } +} + +@Composable +private fun DayContainer( + modifier: Modifier = Modifier, + backgroundColor: Color = Color.Transparent, + children: @Composable () -> Unit +) { + // What if this doesn't fit the screen? - LayoutFlexible(1f) + LayoutAspectRatio(1f) + Surface( + modifier = modifier.preferredSize(width = CELL_SIZE, height = CELL_SIZE), + color = backgroundColor + ) { + children() + } +} + +@Composable +private fun DayStatusContainer( + status: SelectedStatus, + children: @Composable () -> Unit +) { + if (status.isMarked()) { + Stack { + val color = MaterialTheme.colors.secondary + + WithConstraints { + Circle(constraints = constraints, color = color) + if (status == SelectedStatus.FIRST_DAY) { + SemiRect(constraints = constraints, color = color, lookingLeft = false) + } else if (status == SelectedStatus.LAST_DAY) { + SemiRect(constraints = constraints, color = color, lookingLeft = true) + } + children() + } + } + } else { + children() + } +} + +private fun SelectedStatus.color(theme: ColorPalette): Color = when (this) { + SelectedStatus.SELECTED -> theme.secondary + else -> Color.Transparent +} + +@Composable +private fun getLeftRightWeekColors(week: CalendarWeek, month: CalendarMonth): Pair { + val materialColors = MaterialTheme.colors + + val firstDayOfTheWeek = week[0].value + val leftFillColor = if (firstDayOfTheWeek.isNotEmpty()) { + val lastDayPreviousWeek = month.getPreviousDay(firstDayOfTheWeek.toInt()) + if (lastDayPreviousWeek?.status?.isMarked() == true && week[0].status.isMarked()) { + materialColors.secondary + } else { + Color.Transparent + } + } else { + Color.Transparent + } + + val lastDayOfTheWeek = week[6].value + val rightFillColor = if (lastDayOfTheWeek.isNotEmpty()) { + val firstDayNextWeek = month.getNextDay(lastDayOfTheWeek.toInt()) + if (firstDayNextWeek?.status?.isMarked() == true && week[6].status.isMarked()) { + materialColors.secondary + } else { + Color.Transparent + } + } else { + Color.Transparent + } + + return leftFillColor to rightFillColor +} + +private fun SelectedStatus.isMarked(): Boolean { + return when (this) { + SelectedStatus.SELECTED -> true + SelectedStatus.FIRST_DAY -> true + SelectedStatus.LAST_DAY -> true + SelectedStatus.FIRST_LAST_DAY -> true + else -> false + } +} + +private val CELL_SIZE = 48.dp + +@Preview +@Composable +fun DayPreview() { + CraneTheme { + Calendar(onDayClicked = { _, _ -> }) + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/CalendarActivity.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/CalendarActivity.kt new file mode 100644 index 0000000000..8a54060965 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/CalendarActivity.kt @@ -0,0 +1,95 @@ +/* + * Copyright 2020 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.calendar + +import android.content.Context +import android.content.Intent +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import androidx.compose.Composable +import androidx.compose.samples.crane.R +import androidx.compose.samples.crane.base.CraneScaffold +import androidx.compose.samples.crane.base.ServiceLocator +import androidx.compose.samples.crane.calendar.model.CalendarDay +import androidx.compose.samples.crane.calendar.model.CalendarMonth +import androidx.compose.samples.crane.calendar.model.DaySelected +import androidx.ui.core.setContent +import androidx.ui.foundation.Image +import androidx.ui.foundation.Text +import androidx.ui.layout.Column +import androidx.ui.material.IconButton +import androidx.ui.material.MaterialTheme +import androidx.ui.material.Surface +import androidx.ui.material.TopAppBar +import androidx.ui.res.vectorResource + +fun launchCalendarActivity(context: Context) { + val intent = Intent(context, CalendarActivity::class.java) + context.startActivity(intent) +} + +class CalendarActivity : AppCompatActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + setContent { + CraneScaffold { + Surface { + CalendarScreen(onBackPressed = { finish() }) + } + } + } + } +} + +// Extracted out to a separate variable. If this lambda is used as a trailing lambda in the +// Calendar function, it recomposes the whole Calendar view when clicked on it. +private val onDayClicked: (CalendarDay, CalendarMonth) -> Unit = { calendarDay, calendarMonth -> + ServiceLocator.datesSelected.daySelected( + DaySelected( + day = calendarDay.value.toInt(), + month = calendarMonth + ) + ) +} + +@Composable +fun CalendarScreen(onBackPressed: () -> Unit) { + CraneScaffold { + Column { + val selectedDatesText = ServiceLocator.datesSelected.toString() + TopAppBar( + title = { + Text( + text = if (selectedDatesText.isEmpty()) "Select Dates" + else selectedDatesText + ) + }, + navigationIcon = { + IconButton(onClick = { onBackPressed() }) { + Image(asset = vectorResource(id = R.drawable.ic_back)) + } + }, + backgroundColor = MaterialTheme.colors.primaryVariant + ) + Surface { + Calendar(onDayClicked = onDayClicked) + } + } + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/data/CalendarData.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/data/CalendarData.kt new file mode 100644 index 0000000000..f1195315bb --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/data/CalendarData.kt @@ -0,0 +1,120 @@ +/* + * Copyright 2020 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.calendar.data + +import androidx.compose.samples.crane.calendar.model.CalendarMonth +import androidx.compose.samples.crane.calendar.model.DayOfWeek + +val january2020 = CalendarMonth( + name = "January", + year = "2020", + numDays = 31, + monthNumber = 1, + startDayOfWeek = DayOfWeek.WEDNESDAY +) +val february2020 = CalendarMonth( + name = "February", + year = "2020", + numDays = 29, + monthNumber = 2, + startDayOfWeek = DayOfWeek.SATURDAY +) +val march2020 = CalendarMonth( + name = "March", + year = "2020", + numDays = 31, + monthNumber = 3, + startDayOfWeek = DayOfWeek.SUNDAY +) +val april2020 = CalendarMonth( + name = "April", + year = "2020", + numDays = 30, + monthNumber = 4, + startDayOfWeek = DayOfWeek.WEDNESDAY +) +val may2020 = CalendarMonth( + name = "May", + year = "2020", + numDays = 31, + monthNumber = 5, + startDayOfWeek = DayOfWeek.FRIDAY +) +val june2020 = CalendarMonth( + name = "June", + year = "2020", + numDays = 30, + monthNumber = 6, + startDayOfWeek = DayOfWeek.MONDAY +) +val july2020 = CalendarMonth( + name = "July", + year = "2020", + numDays = 31, + monthNumber = 7, + startDayOfWeek = DayOfWeek.WEDNESDAY +) +val august2020 = CalendarMonth( + name = "August", + year = "2020", + numDays = 30, + monthNumber = 8, + startDayOfWeek = DayOfWeek.SATURDAY +) +val september2020 = CalendarMonth( + name = "August", + year = "2020", + numDays = 31, + monthNumber = 9, + startDayOfWeek = DayOfWeek.TUESDAY +) +val october2020 = CalendarMonth( + name = "October", + year = "2020", + numDays = 31, + monthNumber = 10, + startDayOfWeek = DayOfWeek.THURSDAY +) +val november2020 = CalendarMonth( + name = "November", + year = "2020", + numDays = 30, + monthNumber = 11, + startDayOfWeek = DayOfWeek.SUNDAY +) +val december2020 = CalendarMonth( + name = "December", + year = "2020", + numDays = 31, + monthNumber = 12, + startDayOfWeek = DayOfWeek.TUESDAY +) + +val year2020 = listOf( + january2020, + february2020, + march2020, + april2020, + may2020, + june2020, + july2020, + august2020, + september2020, + october2020, + november2020, + december2020 +) diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/CalendarDay.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/CalendarDay.kt new file mode 100644 index 0000000000..f9cc4ef6e4 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/CalendarDay.kt @@ -0,0 +1,44 @@ +/* + * Copyright 2020 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.calendar.model + +import androidx.compose.getValue +import androidx.compose.mutableStateOf +import androidx.compose.setValue + +enum class DayOfWeek { + SUNDAY, + MONDAY, + TUESDAY, + WEDNESDAY, + THURSDAY, + FRIDAY, + SATURDAY +} + +enum class SelectedStatus { + NO_SELECTED, + SELECTED, + NON_CLICKABLE, + FIRST_DAY, + LAST_DAY, + FIRST_LAST_DAY +} + +class CalendarDay(val value: String, status: SelectedStatus) { + var status by mutableStateOf(status) +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/CalendarMonth.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/CalendarMonth.kt new file mode 100644 index 0000000000..6ee5976b7b --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/CalendarMonth.kt @@ -0,0 +1,82 @@ +/* + * Copyright 2020 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.calendar.model + +data class CalendarMonth( + val name: String, + val year: String, + val numDays: Int, + val monthNumber: Int, + val startDayOfWeek: DayOfWeek +) { + val days = mutableListOf().apply { + // Add offset of the start of the month + for (i in 1..startDayOfWeek.ordinal) { + add( + CalendarDay( + "", + SelectedStatus.NON_CLICKABLE + ) + ) + } + // Add days of the month + for (i in 1..numDays) { + add( + CalendarDay( + i.toString(), + SelectedStatus.NO_SELECTED + ) + ) + } + }.toList() + + fun getDay(day: Int): CalendarDay { + return days[day + startDayOfWeek.ordinal - 1] + } + + fun getPreviousDay(day: Int): CalendarDay? { + if (day <= 1) return null + return getDay(day - 1) + } + + fun getNextDay(day: Int): CalendarDay? { + if (day >= numDays) return null + return getDay(day + 1) + } + + val weeks = lazy { days.chunked(7).map { completeWeek(it) } } + + private fun completeWeek(list: List): List { + var gapsToFill = 7 - list.size + + return if (gapsToFill != 0) { + val mutableList = list.toMutableList() + while (gapsToFill > 0) { + mutableList.add( + CalendarDay( + "", + SelectedStatus.NON_CLICKABLE + ) + ) + gapsToFill-- + } + mutableList + } else { + list + } + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/DatesSelectedState.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/DatesSelectedState.kt new file mode 100644 index 0000000000..09e5afef01 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/DatesSelectedState.kt @@ -0,0 +1,117 @@ +/* + * Copyright 2020 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.calendar.model + +import androidx.compose.getValue +import androidx.compose.mutableStateOf +import androidx.compose.samples.crane.calendar.data.year2020 +import androidx.compose.setValue + +class DatesSelectedState { + private var from by mutableStateOf(DaySelectedEmpty) + private var to by mutableStateOf(DaySelectedEmpty) + + override fun toString(): String { + if (from == DaySelectedEmpty && to == DaySelectedEmpty) return "" + var output = from.toString() + if (to != DaySelectedEmpty) { + output += " - $to" + } + return output + } + + fun daySelected(newDate: DaySelected) { + if (from == DaySelectedEmpty && to == DaySelectedEmpty) { + setDates(newDate, DaySelectedEmpty) + } else if (from != DaySelectedEmpty && to != DaySelectedEmpty) { + clearDates() + from = DaySelectedEmpty + to = DaySelectedEmpty + daySelected(newDate = newDate) + } else if (from == DaySelectedEmpty) { + if (newDate < to) setDates(newDate, to) + else if (newDate > to) setDates(to, newDate) + } else if (to == DaySelectedEmpty) { + if (newDate < from) setDates(newDate, from) + else if (newDate > from) setDates(from, newDate) + } + } + + private fun setDates(newFrom: DaySelected, newTo: DaySelected) { + if (newTo == DaySelectedEmpty) { + from = newFrom + from.calendarDay.value.status = SelectedStatus.FIRST_LAST_DAY + } else { + from = newFrom.apply { calendarDay.value.status = SelectedStatus.FIRST_DAY } + selectDatesInBetween(newFrom, newTo) + to = newTo.apply { calendarDay.value.status = SelectedStatus.LAST_DAY } + } + } + + private fun selectDatesInBetween(from: DaySelected, to: DaySelected) { + if (from.month == to.month) { + for (i in (from.day + 1) until to.day) + from.month.getDay(i).status = SelectedStatus.SELECTED + } else { + // Fill from's month + for (i in (from.day + 1) until from.month.numDays) { + from.month.getDay(i).status = SelectedStatus.SELECTED + } + from.month.getDay(from.month.numDays).status = SelectedStatus.LAST_DAY + // Fill in-between months + for (i in (from.month.monthNumber + 1) until to.month.monthNumber) { + val month = year2020[i - 1] + month.getDay(1).status = SelectedStatus.FIRST_DAY + for (j in 2 until month.numDays) { + month.getDay(j).status = SelectedStatus.SELECTED + } + month.getDay(month.numDays).status = SelectedStatus.LAST_DAY + } + // Fill to's month + to.month.getDay(1).status = SelectedStatus.FIRST_DAY + for (i in 2 until to.day) { + to.month.getDay(i).status = SelectedStatus.SELECTED + } + } + } + + private fun clearDates() { + if (from != DaySelectedEmpty && to != DaySelectedEmpty) { + // Unselect dates from the same month + if (from.month == to.month) { + for (i in from.day..to.day) + from.month.getDay(i).status = SelectedStatus.NO_SELECTED + } else { + // Unselect from's month + for (i in from.day..from.month.numDays) { + from.month.getDay(i).status = SelectedStatus.NO_SELECTED + } + // Fill in-between months + for (i in (from.month.monthNumber + 1) until to.month.monthNumber) { + val month = year2020[i - 1] + for (j in 1..month.numDays) { + month.getDay(j).status = SelectedStatus.NO_SELECTED + } + } + // Fill to's month + for (i in 1..to.day) { + to.month.getDay(i).status = SelectedStatus.NO_SELECTED + } + } + } + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/DaySelected.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/DaySelected.kt new file mode 100644 index 0000000000..228f501f01 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/model/DaySelected.kt @@ -0,0 +1,43 @@ +/* + * Copyright 2020 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.calendar.model + +import androidx.compose.samples.crane.calendar.data.january2020 +import androidx.compose.samples.crane.calendar.data.year2020 + +data class DaySelected(val day: Int, val month: CalendarMonth) { + val calendarDay = lazy { + month.getDay(day) + } + + override fun toString(): String { + return "${month.name.substring(0, 3).capitalize()} $day" + } + + operator fun compareTo(other: DaySelected): Int { + if (day == other.day && month == other.month) return 0 + if (month == other.month) return day.compareTo(other.day) + return (year2020.indexOf(month)).compareTo( + year2020.indexOf(other.month) + ) + } +} + +/** + * Represents an empty value for [DaySelected] + */ +val DaySelectedEmpty = DaySelected(-1, january2020) diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/data/Cities.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/data/Cities.kt new file mode 100644 index 0000000000..ffec4cae7b --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/data/Cities.kt @@ -0,0 +1,115 @@ +/* + * Copyright 2020 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.data + +val MADRID = City( + name = "Madrid", + country = "Spain", + latitude = "40.416775", + longitude = "-3.703790" +) + +val NAPLES = City( + name = "Naples", + country = "Italy", + latitude = "40.853294", + longitude = "14.305573" +) + +val DALLAS = City( + name = "Dallas", + country = "US", + latitude = "32.779167", + longitude = "-96.808891" +) + +val CORDOBA = City( + name = "Cordoba", + country = "Argentina", + latitude = "-31.416668", + longitude = "-64.183334" +) + +val MALDIVAS = City( + name = "Maldivas", + country = "South Asia", + latitude = "1.924992", + longitude = "73.399658" +) + +val ASPEN = City( + name = "Aspen", + country = "Colorado", + latitude = "39.191097", + longitude = "-106.817535" +) + +val BALI = City( + name = "Bali", + country = "Indonesia", + latitude = "-8.3405", + longitude = "115.0920" +) + +val BIGSUR = City( + name = "Big Sur", + country = "California", + latitude = "36.2704", + longitude = "-121.8081" +) + +val KHUMBUVALLEY = City( + name = "Khumbu Valley", + country = "Nepal", + latitude = "27.9320", + longitude = "86.8050" +) + +val ROME = City( + name = "Rome", + country = "Italy", + latitude = "41.902782", + longitude = "12.496366" +) + +val GRANADA = City( + name = "Granada", + country = "Spain", + latitude = "37.18817", + longitude = "-3.60667" +) + +val WASHINGTONDC = City( + name = "Washington DC", + country = "USA", + latitude = "38.9072", + longitude = "-77.0369" +) + +val BARCELONA = City( + name = "Barcelona", + country = "Spain", + latitude = "41.390205", + longitude = "2.154007" +) + +val CRETE = City( + name = "Crete", + country = "Greece", + latitude = "35.2401", + longitude = "24.8093" +) diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/data/CraneData.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/data/CraneData.kt new file mode 100644 index 0000000000..6aef1c3492 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/data/CraneData.kt @@ -0,0 +1,143 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.data + +private const val DEFAULT_IMAGE_WIDTH = "250" + +val craneRestaurants = listOf( + ExploreModel( + city = NAPLES, + description = "1286 Restaurants", + imageUrl = "https://images.unsplash.com/photo-1534308983496-4fabb1a015ee?ixlib=rb-1.2.1&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = DALLAS, + description = "2241 Restaurants", + imageUrl = "https://images.unsplash.com/photo-1495749388945-9d6e4e5b67b1?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = CORDOBA, + description = "876 Restaurants", + imageUrl = "https://images.unsplash.com/photo-1562625964-ffe9b2f617fc?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=250&q=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = MADRID, + description = "5610 Restaurants", + imageUrl = "https://images.unsplash.com/photo-1515443961218-a51367888e4b?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = MALDIVAS, + description = "1286 Restaurants", + imageUrl = "https://images.unsplash.com/flagged/photo-1556202256-af2687079e51?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = ASPEN, + description = "2241 Restaurants", + imageUrl = "https://images.unsplash.com/photo-1542384557-0824d90731ee?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = BALI, + description = "876 Restaurants", + imageUrl = "https://images.unsplash.com/photo-1567337710282-00832b415979?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ) +) + +val craneHotels = listOf( + ExploreModel( + city = MALDIVAS, + description = "1286 Available Properties", + imageUrl = "https://images.unsplash.com/photo-1520250497591-112f2f40a3f4?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = ASPEN, + description = "2241 Available Properties", + imageUrl = "https://images.unsplash.com/photo-1445019980597-93fa8acb246c?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = BALI, + description = "876 Available Properties", + imageUrl = "https://images.unsplash.com/photo-1570213489059-0aac6626cade?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = BIGSUR, + description = "5610 Available Properties", + imageUrl = "https://images.unsplash.com/photo-1561409037-c7be81613c1f?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = NAPLES, + description = "1286 Available Properties", + imageUrl = "https://images.unsplash.com/photo-1455587734955-081b22074882?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = DALLAS, + description = "2241 Available Properties", + imageUrl = "https://images.unsplash.com/46/sh3y2u5PSaKq8c4LxB3B_submission-photo-4.jpg?ixlib=rb-1.2.1&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = CORDOBA, + description = "876 Available Properties", + imageUrl = "https://images.unsplash.com/photo-1570214476695-19bd467e6f7a?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ) +) + +val craneDestinations = listOf( + ExploreModel( + city = KHUMBUVALLEY, + description = "Nonstop - 5h 16m+", + imageUrl = "https://images.unsplash.com/photo-1544735716-392fe2489ffa?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = MADRID, + description = "Nonstop - 2h 12m+", + imageUrl = "https://images.unsplash.com/photo-1539037116277-4db20889f2d4?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = BALI, + description = "Nonstop - 6h 20m+", + imageUrl = "https://images.unsplash.com/photo-1518548419970-58e3b4079ab2?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = ROME, + description = "Nonstop - 2h 38m+", + imageUrl = "https://images.unsplash.com/photo-1515542622106-78bda8ba0e5b?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = GRANADA, + description = "Nonstop - 2h 12m+", + imageUrl = "https://images.unsplash.com/photo-1534423839368-1796a4dd1845?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = MALDIVAS, + description = "Nonstop - 9h 24m+", + imageUrl = "https://images.unsplash.com/photo-1544550581-5f7ceaf7f992?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = WASHINGTONDC, + description = "Nonstop - 7h 30m+", + imageUrl = "https://images.unsplash.com/photo-1557160854-e1e89fdd3286?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = BARCELONA, + description = "Nonstop - 2h 12m+", + imageUrl = "https://images.unsplash.com/photo-1562883676-8c7feb83f09b?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ), + ExploreModel( + city = CRETE, + description = "Nonstop - 1h 50m+", + imageUrl = "https://images.unsplash.com/photo-1486575008575-27670acb58db?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=$DEFAULT_IMAGE_WIDTH" + ) +) diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/data/ExploreModel.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/data/ExploreModel.kt new file mode 100644 index 0000000000..baa792625f --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/data/ExploreModel.kt @@ -0,0 +1,65 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.data + +import android.graphics.Bitmap +import android.graphics.drawable.Drawable +import androidx.compose.Immutable +import androidx.compose.getValue +import androidx.compose.mutableStateOf +import androidx.compose.setValue +import androidx.ui.graphics.ImageAsset +import androidx.ui.graphics.asImageAsset +import com.squareup.picasso.Picasso +import com.squareup.picasso.Target + +@Immutable +data class City( + val name: String, + val country: String, + val latitude: String, + val longitude: String +) { + val nameToDisplay = "$name, $country" +} + +@Immutable +data class ExploreModel( + val city: City, + val description: String, + val imageUrl: String +) + +class ExploreUiModel(val exploreModel: ExploreModel) { + + var image by mutableStateOf(null) + private set + + init { + val picasso = Picasso.get() + val target = object : Target { + override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} + override fun onBitmapFailed(e: Exception?, errorDrawable: Drawable?) {} + override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) { + image = bitmap?.asImageAsset() + } + } + picasso + .load(exploreModel.imageUrl) + .into(target) + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/details/DetailsActivity.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/details/DetailsActivity.kt new file mode 100644 index 0000000000..3c81ba94c4 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/details/DetailsActivity.kt @@ -0,0 +1,120 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.details + +import android.content.Context +import android.content.Intent +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import androidx.compose.Composable +import androidx.compose.samples.crane.R +import androidx.compose.samples.crane.base.CraneScaffold +import androidx.compose.samples.crane.data.ExploreModel +import androidx.ui.core.Alignment +import androidx.ui.core.Modifier +import androidx.ui.core.setContent +import androidx.ui.foundation.Box +import androidx.ui.foundation.Text +import androidx.ui.layout.Arrangement +import androidx.ui.layout.Column +import androidx.ui.layout.Spacer +import androidx.ui.layout.padding +import androidx.ui.layout.preferredHeight +import androidx.ui.material.MaterialTheme +import androidx.ui.unit.dp +import androidx.ui.viewinterop.AndroidView +import com.google.android.gms.maps.CameraUpdateFactory +import com.google.android.gms.maps.SupportMapFragment +import com.google.android.gms.maps.model.LatLng +import com.google.android.gms.maps.model.MarkerOptions + +private const val DETAILS_NAME = "DETAILS_NAME" +private const val DETAILS_DESCRIPTION = "DETAILS_DESCRIPTION" +private const val DETAILS_LATITUDE = "DETAILS_LATITUDE" +private const val DETAILS_LONGITUDE = "DETAILS_LONGITUDE" + +fun launchDetailsActivity(context: Context, item: ExploreModel) { + val intent = Intent(context, DetailsActivity::class.java) + intent.putExtra(DETAILS_NAME, item.city.nameToDisplay) + intent.putExtra(DETAILS_DESCRIPTION, item.description) + intent.putExtra(DETAILS_LATITUDE, item.city.latitude) + intent.putExtra(DETAILS_LONGITUDE, item.city.longitude) + context.startActivity(intent) +} + +data class DetailsActivityArg( + val name: String, + val description: String, + val latitude: String, + val longitude: String +) + +class DetailsActivity : AppCompatActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + val args = DetailsActivityArg( + name = intent.getStringExtra(DETAILS_NAME)!!, + description = intent.getStringExtra(DETAILS_DESCRIPTION)!!, + latitude = intent.getStringExtra(DETAILS_LATITUDE)!!, + longitude = intent.getStringExtra(DETAILS_LONGITUDE)!! + ) + + setContent { + CraneScaffold { + DetailsScreen(args = args) + } + } + } +} + +@Composable +fun DetailsScreen(args: DetailsActivityArg) { + Column(verticalArrangement = Arrangement.Center) { + Spacer(Modifier.preferredHeight(32.dp)) + Text( + modifier = Modifier.gravity(Alignment.CenterHorizontally), + text = args.name, + style = MaterialTheme.typography.h4 + ) + Text( + modifier = Modifier.gravity(Alignment.CenterHorizontally), + text = args.description, + style = MaterialTheme.typography.h6 + ) + Spacer(Modifier.preferredHeight(16.dp)) + Box(Modifier.padding(all = 8.dp)) { + // Interop between Compose and the Android UI toolkit as we need to show + // a MapView which extends an androidx Fragment + + // For the map to work, you need to get an API key from + // https://developers.google.com/maps/documentation/android-sdk/get-api-key + // and put it in the google.maps.key variable of your local properties + AndroidView(resId = R.layout.layout_details_map, postInflationCallback = { view -> + val fragment = (view.context as AppCompatActivity).supportFragmentManager + .findFragmentById(R.id.map) + + (fragment as SupportMapFragment).getMapAsync { map -> + val position = LatLng(args.latitude.toDouble(), args.longitude.toDouble()) + map.addMarker(MarkerOptions().position(position).title("Marker in ${args.name}")) + map.moveCamera(CameraUpdateFactory.newLatLng(position)) + } + }) + } + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/home/CraneHome.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/home/CraneHome.kt new file mode 100644 index 0000000000..f06f07664b --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/home/CraneHome.kt @@ -0,0 +1,213 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.home + +import androidx.compose.Composable +import androidx.compose.MutableState +import androidx.compose.State +import androidx.compose.samples.crane.base.CraneDrawer +import androidx.compose.samples.crane.base.CraneTabBar +import androidx.compose.samples.crane.base.CraneTabs +import androidx.compose.samples.crane.base.ExploreSection +import androidx.compose.samples.crane.data.ExploreModel +import androidx.compose.samples.crane.ui.BackdropFrontLayerDraggable +import androidx.compose.state +import androidx.ui.core.Modifier +import androidx.ui.layout.Column +import androidx.ui.material.DrawerState +import androidx.ui.material.ModalDrawerLayout + +typealias OnExploreItemClicked = (ExploreModel) -> Unit + +enum class CraneScreen { + FLY, SLEEP, EAT +} + +@Composable +fun MainContent( + modifier: Modifier = Modifier, + destinations: List, + onExploreItemClicked: OnExploreItemClicked, + onDateSelectionClicked: () -> Unit, + viewModel: MainViewModel +) { + CraneHome( + modifier = modifier, + viewModel = viewModel, + onExploreItemClicked = onExploreItemClicked, + onDateSelectionClicked = onDateSelectionClicked, + suggestedDestinations = destinations + ) +} + +@Composable +private fun CraneHome( + modifier: Modifier = Modifier, + viewModel: MainViewModel, + onExploreItemClicked: OnExploreItemClicked, + onDateSelectionClicked: () -> Unit, + suggestedDestinations: List +) { + val (drawerState, onDrawerStateChange) = state { DrawerState.Closed } + ModalDrawerLayout( + drawerState = drawerState, + onStateChange = onDrawerStateChange, + gesturesEnabled = drawerState == DrawerState.Opened, + drawerContent = { CraneDrawer() }, + bodyContent = { + CraneHomeContent( + modifier = modifier, + viewModel = viewModel, + suggestedDestinations = suggestedDestinations, + onExploreItemClicked = onExploreItemClicked, + onDateSelectionClicked = onDateSelectionClicked, + openDrawer = { onDrawerStateChange(DrawerState.Opened) } + ) + } + ) +} + +@Composable +fun CraneHomeContent( + modifier: Modifier = Modifier, + viewModel: MainViewModel, + suggestedDestinations: List, + onExploreItemClicked: OnExploreItemClicked, + onDateSelectionClicked: () -> Unit, + openDrawer: () -> Unit +) { + val onPeopleChanged: (Int) -> Unit = { viewModel.updatePeople(it) } + val tabSelected = state { CraneScreen.FLY } + + BackdropFrontLayerDraggable( + modifier = modifier, + staticChildren = { staticModifier -> + Column(modifier = staticModifier) { + HomeTabBar(openDrawer, tabSelected) + SearchContent( + tabSelected, + viewModel, + onPeopleChanged, + onDateSelectionClicked, + onExploreItemClicked + ) + } + }, + backdropChildren = { backdropModifier -> + when (tabSelected.value) { + CraneScreen.FLY -> { + ExploreSection( + modifier = backdropModifier, + title = "Explore Flights by Destination", + exploreList = suggestedDestinations, + onItemClicked = onExploreItemClicked + ) + } + CraneScreen.SLEEP -> { + ExploreSection( + modifier = backdropModifier, + title = "Explore Properties by Destination", + exploreList = viewModel.hotels, + onItemClicked = onExploreItemClicked + ) + } + CraneScreen.EAT -> { + ExploreSection( + modifier = backdropModifier, + title = "Explore Restaurants by Destination", + exploreList = viewModel.restaurants, + onItemClicked = onExploreItemClicked + ) + } + } + } + ) +} + +@Composable +private fun HomeTabBar( + openDrawer: () -> Unit, + tabSelected: MutableState, + modifier: Modifier = Modifier +) { + CraneTabBar( + modifier = modifier, + onMenuClicked = openDrawer + ) { tabBarModifier -> + CraneTabs( + modifier = tabBarModifier, + titles = CraneScreen.values().map { it.name }, + tabSelected = tabSelected.value, + onTabSelected = { newTab -> + tabSelected.value = CraneScreen.values()[newTab.ordinal] + } + ) + } +} + +@Composable +private fun SearchContent( + tabSelected: State, + viewModel: MainViewModel, + onPeopleChanged: (Int) -> Unit, + onDateSelectionClicked: () -> Unit, + onExploreItemClicked: OnExploreItemClicked +) { + when (tabSelected.value) { + CraneScreen.FLY -> FlySearchContent( + searchUpdates = FlySearchContentUpdates( + onPeopleChanged = onPeopleChanged, + onToDestinationChanged = { viewModel.toDestinationChanged(it) }, + onDateSelectionClicked = onDateSelectionClicked, + onExploreItemClicked = onExploreItemClicked + ) + ) + CraneScreen.SLEEP -> SleepSearchContent( + sleepUpdates = SleepSearchContentUpdates( + onPeopleChanged = onPeopleChanged, + onDateSelectionClicked = onDateSelectionClicked, + onExploreItemClicked = onExploreItemClicked + ) + ) + CraneScreen.EAT -> EatSearchContent( + eatUpdates = EatSearchContentUpdates( + onPeopleChanged = onPeopleChanged, + onDateSelectionClicked = onDateSelectionClicked, + onExploreItemClicked = onExploreItemClicked + ) + ) + } +} + +data class FlySearchContentUpdates( + val onPeopleChanged: (Int) -> Unit, + val onToDestinationChanged: (String) -> Unit, + val onDateSelectionClicked: () -> Unit, + val onExploreItemClicked: OnExploreItemClicked +) + +data class SleepSearchContentUpdates( + val onPeopleChanged: (Int) -> Unit, + val onDateSelectionClicked: () -> Unit, + val onExploreItemClicked: OnExploreItemClicked +) + +data class EatSearchContentUpdates( + val onPeopleChanged: (Int) -> Unit, + val onDateSelectionClicked: () -> Unit, + val onExploreItemClicked: OnExploreItemClicked +) diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/home/HomeFeatures.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/home/HomeFeatures.kt new file mode 100644 index 0000000000..2872c10939 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/home/HomeFeatures.kt @@ -0,0 +1,74 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.home + +import androidx.compose.Composable +import androidx.compose.samples.crane.R +import androidx.compose.samples.crane.base.SimpleUserInput +import androidx.ui.core.Modifier +import androidx.ui.layout.Column +import androidx.ui.layout.Spacer +import androidx.ui.layout.padding +import androidx.ui.layout.preferredHeight +import androidx.ui.unit.dp + +@Composable +fun FlySearchContent(searchUpdates: FlySearchContentUpdates) { + CraneSearch { + PeopleUserInput( + titleSuffix = ", Economy", + onPeopleChanged = searchUpdates.onPeopleChanged + ) + Spacer(Modifier.preferredHeight(8.dp)) + FromDestination() + Spacer(Modifier.preferredHeight(8.dp)) + ToDestinationUserInput(onToDestinationChanged = searchUpdates.onToDestinationChanged) + Spacer(Modifier.preferredHeight(8.dp)) + DatesUserInput(onDateSelectionClicked = searchUpdates.onDateSelectionClicked) + } +} + +@Composable +fun SleepSearchContent(sleepUpdates: SleepSearchContentUpdates) { + CraneSearch { + PeopleUserInput(onPeopleChanged = { sleepUpdates.onPeopleChanged }) + Spacer(Modifier.preferredHeight(8.dp)) + DatesUserInput(onDateSelectionClicked = sleepUpdates.onDateSelectionClicked) + Spacer(Modifier.preferredHeight(8.dp)) + SimpleUserInput(caption = "Select Location", vectorImageId = R.drawable.ic_hotel) + } +} + +@Composable +fun EatSearchContent(eatUpdates: EatSearchContentUpdates) { + CraneSearch { + PeopleUserInput(onPeopleChanged = { eatUpdates.onPeopleChanged }) + Spacer(Modifier.preferredHeight(8.dp)) + DatesUserInput(onDateSelectionClicked = eatUpdates.onDateSelectionClicked) + Spacer(Modifier.preferredHeight(8.dp)) + SimpleUserInput(caption = "Select Time", vectorImageId = R.drawable.ic_time) + Spacer(Modifier.preferredHeight(8.dp)) + SimpleUserInput(caption = "Select Location", vectorImageId = R.drawable.ic_restaurant) + } +} + +@Composable +private fun CraneSearch(searchItems: @Composable () -> Unit) { + Column(Modifier.padding(start = 24.dp, top = 0.dp, end = 24.dp, bottom = 12.dp)) { + searchItems() + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/home/LandingScreen.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/home/LandingScreen.kt new file mode 100644 index 0000000000..6db655db36 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/home/LandingScreen.kt @@ -0,0 +1,45 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.home + +import android.os.Handler +import android.os.Looper +import androidx.compose.Composable +import androidx.compose.MutableState +import androidx.compose.onCommit +import androidx.compose.samples.crane.R +import androidx.core.os.postDelayed +import androidx.ui.core.Modifier +import androidx.ui.foundation.Box +import androidx.ui.foundation.ContentGravity +import androidx.ui.foundation.Image +import androidx.ui.layout.fillMaxSize +import androidx.ui.res.vectorResource + +private const val SPLASH_WAIT_TIME: Long = 2000 + +@Composable +fun LandingScreen(modifier: Modifier = Modifier, splashShownState: MutableState) { + Box(modifier = modifier.fillMaxSize(), gravity = ContentGravity.Center) { + onCommit { + Handler(Looper.getMainLooper()).postDelayed(SPLASH_WAIT_TIME) { + splashShownState.value = SplashState.COMPLETED + } + } + Image(asset = vectorResource(id = R.drawable.ic_crane_drawer)) + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/home/MainActivity.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/home/MainActivity.kt new file mode 100644 index 0000000000..d41c172a23 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/home/MainActivity.kt @@ -0,0 +1,134 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.home + +import android.os.Bundle +import androidx.activity.viewModels +import androidx.animation.FloatPropKey +import androidx.animation.Spring.StiffnessLow +import androidx.animation.transitionDefinition +import androidx.appcompat.app.AppCompatActivity +import androidx.compose.Composable +import androidx.compose.remember +import androidx.compose.samples.crane.base.CraneScaffold +import androidx.compose.samples.crane.calendar.launchCalendarActivity +import androidx.compose.samples.crane.data.ExploreModel +import androidx.compose.samples.crane.details.launchDetailsActivity +import androidx.compose.samples.crane.util.observe +import androidx.ui.animation.DpPropKey +import androidx.ui.core.Modifier +import androidx.ui.core.setContent +import androidx.ui.layout.Column +import androidx.ui.layout.Spacer +import androidx.ui.layout.padding +import androidx.ui.unit.Dp +import androidx.ui.unit.dp + +class MainActivity : AppCompatActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val viewModel by viewModels() + + setContent { + CraneScaffold { + val destinations = observe(viewModel.suggestedDestinations, this) + + val onExploreItemClicked: OnExploreItemClicked = remember { + { launchDetailsActivity(context = this, item = it) } + } + val onDateSelectionClicked = remember { + { launchCalendarActivity(this) } + } + + // FIXME: Removing Splash animation because of b/154198289 + // Quick explanation: MainContentWrapper is being emitted twice to the screen + +// val splashShown = state { SplashState.SHOWN } +// Transition( +// definition = splashTransitionDefinition, +// toState = splashShown.value +// ) { state -> +// Stack { +// LandingScreen( +// modifier = Modifier.drawOpacity(state[splashAlphaKey]), +// splashShownState = splashShown +// ) + MainContentWrapper( +// modifier = Modifier.drawOpacity(state[contentAlphaKey]), +// topPadding = state[contentTopPaddingKey], + onExploreItemClicked = onExploreItemClicked, + onDateSelectionClicked = onDateSelectionClicked, + destinations = destinations ?: emptyList(), + viewModel = viewModel + ) +// } +// } + } + } + } +} + +@Composable +private fun MainContentWrapper( + modifier: Modifier = Modifier, + topPadding: Dp = 0.dp, + viewModel: MainViewModel, + destinations: List, + onExploreItemClicked: OnExploreItemClicked, + onDateSelectionClicked: () -> Unit +) { + Column(modifier = modifier) { + Spacer(Modifier.padding(top = topPadding)) + MainContent( + viewModel = viewModel, + destinations = destinations, + onExploreItemClicked = onExploreItemClicked, + onDateSelectionClicked = onDateSelectionClicked + ) + } +} + +enum class SplashState { SHOWN, COMPLETED } + +private val splashAlphaKey = FloatPropKey() +private val contentAlphaKey = FloatPropKey() +private val contentTopPaddingKey = DpPropKey() + +private val splashTransitionDefinition = transitionDefinition { + state(SplashState.SHOWN) { + this[splashAlphaKey] = 1f + this[contentAlphaKey] = 0f + this[contentTopPaddingKey] = 100.dp + } + state(SplashState.COMPLETED) { + this[splashAlphaKey] = 0f + this[contentAlphaKey] = 1f + this[contentTopPaddingKey] = 0.dp + } + transition { + splashAlphaKey using tween { + duration = 100 + } + contentAlphaKey using tween { + duration = 300 + } + contentTopPaddingKey using physics { + stiffness = StiffnessLow + } + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/home/MainViewModel.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/home/MainViewModel.kt new file mode 100644 index 0000000000..5158de6dea --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/home/MainViewModel.kt @@ -0,0 +1,57 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.home + +import androidx.compose.samples.crane.data.ExploreModel +import androidx.compose.samples.crane.data.craneDestinations +import androidx.compose.samples.crane.data.craneHotels +import androidx.compose.samples.crane.data.craneRestaurants +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import kotlin.random.Random + +const val MAX_PEOPLE = 4 + +class MainViewModel : ViewModel() { + + val hotels = craneHotels + val restaurants = craneRestaurants + + private val _suggestedDestinations = MutableLiveData>() + val suggestedDestinations: LiveData> + get() = _suggestedDestinations + + init { + _suggestedDestinations.value = craneDestinations + } + + fun updatePeople(people: Int) { + if (people > MAX_PEOPLE) { + _suggestedDestinations.value = emptyList() + } else { + // Making Random more random + _suggestedDestinations.value = + craneDestinations.shuffled(Random(people * (1..100).shuffled().first())) + } + } + + fun toDestinationChanged(newDestination: String) { + _suggestedDestinations.value = + craneDestinations.filter { it.city.nameToDisplay.contains(newDestination) } + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/home/SearchUserInput.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/home/SearchUserInput.kt new file mode 100644 index 0000000000..9c644da884 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/home/SearchUserInput.kt @@ -0,0 +1,150 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.home + +import androidx.animation.transitionDefinition +import androidx.compose.Composable +import androidx.compose.getValue +import androidx.compose.mutableStateOf +import androidx.compose.remember +import androidx.compose.samples.crane.R +import androidx.compose.samples.crane.base.CraneEditableUserInput +import androidx.compose.samples.crane.base.CraneUserInput +import androidx.compose.samples.crane.base.ServiceLocator +import androidx.compose.setValue +import androidx.ui.animation.ColorPropKey +import androidx.ui.animation.Transition +import androidx.ui.core.Modifier +import androidx.ui.foundation.Text +import androidx.ui.foundation.clickable +import androidx.ui.graphics.Color +import androidx.ui.layout.Column +import androidx.ui.material.MaterialTheme + +class PeopleUserInputState { + var people by mutableStateOf(1) + private set + + var animationState: PeopleUserInputAnimationState = PeopleUserInputAnimationState.Valid + private set + + fun addPerson() { + people = (people % (MAX_PEOPLE + 1)) + 1 + updateAnimationState() + } + + private fun updateAnimationState() { + val newState = + if (people > MAX_PEOPLE) PeopleUserInputAnimationState.Invalid + else PeopleUserInputAnimationState.Valid + + if (animationState != newState) animationState = newState + } +} + +@Composable +fun PeopleUserInput( + titleSuffix: String? = "", + onPeopleChanged: (Int) -> Unit, + peopleState: PeopleUserInputState = remember { PeopleUserInputState() } +) { + Column { + val validColor = MaterialTheme.colors.onSurface + val invalidColor = MaterialTheme.colors.secondary + val transitionDefinition = + remember(validColor, invalidColor) { + generateTransitionDefinition( + validColor, + invalidColor + ) + } + + Transition( + definition = transitionDefinition, + toState = peopleState.animationState + ) { state -> + val people = peopleState.people + CraneUserInput( + modifier = Modifier.clickable(onClick = { + peopleState.addPerson() + onPeopleChanged(peopleState.people) + }), + text = if (people == 1) "$people Adult$titleSuffix" else "$people Adults$titleSuffix", + vectorImageId = R.drawable.ic_person, + tint = state[tintKey] + ) + if (peopleState.animationState == PeopleUserInputAnimationState.Invalid) { + Text( + text = "Error: We don't support more than $MAX_PEOPLE people", + style = MaterialTheme.typography.body1.copy(color = MaterialTheme.colors.secondary) + ) + } + } + } +} + +@Composable +fun FromDestination() { + CraneUserInput(text = "Seoul, South Korea", vectorImageId = R.drawable.ic_location) +} + +@Composable +fun ToDestinationUserInput(onToDestinationChanged: (String) -> Unit) { + CraneEditableUserInput( + hint = "Choose Destination", + caption = "To", + vectorImageId = R.drawable.ic_plane, + onInputChanged = onToDestinationChanged + ) +} + +@Composable +fun DatesUserInput(onDateSelectionClicked: () -> Unit) { + val datesSelectedText = ServiceLocator.datesSelected.toString() + CraneUserInput( + modifier = Modifier.clickable(onClick = onDateSelectionClicked), + caption = if (datesSelectedText.isEmpty()) "Select Dates" else null, + text = datesSelectedText, + vectorImageId = R.drawable.ic_calendar + ) +} + +private val tintKey = ColorPropKey() + +enum class PeopleUserInputAnimationState { Valid, Invalid } + +private fun generateTransitionDefinition( + validColor: Color, + invalidColor: Color +) = transitionDefinition { + state(PeopleUserInputAnimationState.Valid) { + this[tintKey] = validColor + } + state(PeopleUserInputAnimationState.Invalid) { + this[tintKey] = invalidColor + } + transition(fromState = PeopleUserInputAnimationState.Valid to PeopleUserInputAnimationState.Invalid) { + tintKey using tween { + duration = 300 + } + } + transition(fromState = PeopleUserInputAnimationState.Invalid to PeopleUserInputAnimationState.Valid) { + tintKey using tween { + duration = 300 + } + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/ui/BackdropFrontLayerDraggable.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/ui/BackdropFrontLayerDraggable.kt new file mode 100644 index 0000000000..2b888c7cd3 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/ui/BackdropFrontLayerDraggable.kt @@ -0,0 +1,135 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.ui + +import androidx.animation.PhysicsBuilder +import androidx.compose.Composable +import androidx.compose.getValue +import androidx.compose.mutableStateOf +import androidx.compose.remember +import androidx.compose.setValue +import androidx.ui.core.Constraints +import androidx.ui.core.DensityAmbient +import androidx.ui.core.Modifier +import androidx.ui.core.WithConstraints +import androidx.ui.core.onPositioned +import androidx.ui.foundation.Box +import androidx.ui.foundation.Canvas +import androidx.ui.foundation.gestures.DragDirection +import androidx.ui.layout.DpConstraints +import androidx.ui.layout.Stack +import androidx.ui.layout.fillMaxSize +import androidx.ui.layout.offset +import androidx.ui.layout.preferredSizeIn +import androidx.ui.material.MaterialTheme +import androidx.ui.unit.IntPx +import androidx.ui.unit.IntPxSize +import androidx.ui.unit.dp + +enum class FullScreenState { + MINIMISED, + COLLAPSED, + EXPANDED, +} + +class DraggableBackdropState(value: FullScreenState = FullScreenState.MINIMISED) { + var value by mutableStateOf(value) +} + +@Composable +fun BackdropFrontLayerDraggable( + modifier: Modifier = Modifier, + backdropState: DraggableBackdropState = remember { DraggableBackdropState() }, + staticChildren: @Composable (Modifier) -> Unit, + backdropChildren: @Composable (Modifier) -> Unit +) { + var backgroundChildrenSize by mutableStateOf(IntPxSize(IntPx.Zero, IntPx.Zero)) + + Box(modifier) { + WithConstraints { + val fullHeight = constraints.maxHeight.value.toFloat() + val anchors = remember(backgroundChildrenSize.height) { + getAnchors(backgroundChildrenSize, fullHeight) + } + + CraneStateDraggable( + state = backdropState.value, + onStateChange = { newExploreState -> backdropState.value = newExploreState }, + anchorsToState = anchors, + animationBuilder = AnimationBuilder, + dragDirection = DragDirection.Vertical, + minValue = VerticalExplorePadding, + maxValue = fullHeight, + enabled = true + ) { model -> + Stack { + staticChildren(Modifier.onPositioned { coordinates -> + if (backgroundChildrenSize.height == IntPx.Zero) { + backdropState.value = FullScreenState.COLLAPSED + } + if (backgroundChildrenSize != coordinates.size) { + backgroundChildrenSize = coordinates.size + } + }) + + val shadowColor = MaterialTheme.colors.surface.copy(alpha = 0.8f) + val revealValue = backgroundChildrenSize.height.value.toFloat() / 2 + if (model.value < revealValue) { + Canvas(Modifier.fillMaxSize()) { + drawRect(size = size, color = shadowColor) + } + } + + val yOffset = with(DensityAmbient.current) { + model.value.toDp() + } + + backdropChildren( + Modifier.offset(0.dp, yOffset) + .preferredSizeIn(currentConstraints(constraints)) + ) + } + } + } + } +} + +private const val ANCHOR_BOTTOM_OFFSET = 130f + +private fun getAnchors( + searchChildrenSize: IntPxSize, + fullHeight: Float +): List> { + val mediumValue = searchChildrenSize.height.value.toFloat() + 50.dp.value + val maxValue = fullHeight - ANCHOR_BOTTOM_OFFSET + return listOf( + 0f to FullScreenState.EXPANDED, + mediumValue to FullScreenState.COLLAPSED, + maxValue to FullScreenState.MINIMISED + ) +} + +@Composable +private fun currentConstraints(pxConstraints: Constraints): DpConstraints { + return with(DensityAmbient.current) { + DpConstraints(pxConstraints) + } +} + +private val AnimationBuilder = PhysicsBuilder().apply { stiffness = ExploreStiffness } +private const val ExploreStiffness = 1000f +private const val VerticalExplorePadding = 0f diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/ui/CraneStateDraggable.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/ui/CraneStateDraggable.kt new file mode 100644 index 0000000000..1e888c8d12 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/ui/CraneStateDraggable.kt @@ -0,0 +1,113 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.ui + +import androidx.animation.AnimatedFloat +import androidx.animation.AnimationBuilder +import androidx.animation.AnimationEndReason +import androidx.compose.Composable +import androidx.compose.onCommit +import androidx.compose.remember +import androidx.compose.state +import androidx.ui.animation.animatedFloat +import androidx.ui.core.Modifier +import androidx.ui.core.PassThroughLayout +import androidx.ui.foundation.animation.AnchorsFlingConfig +import androidx.ui.foundation.animation.fling +import androidx.ui.foundation.gestures.DragDirection +import androidx.ui.foundation.gestures.draggable + +/** + * Higher-level component that allows dragging around anchored positions binded to different states + * + * Example might be a Switch which you can drag between two states (true or false). + * + * Additional features compared to regular [draggable] modifier: + * 1. The AnimatedFloat hosted inside and its value will be in sync with call site state + * 2. When the anchor is reached, [onStateChange] will be called with state mapped to this anchor + * 3. When the anchor is reached and [onStateChange] with corresponding state is called, but + * call site didn't update state to the reached one for some reason, + * this component performs rollback to the previous (correct) state. + * 4. When new [state] is provided, component will be animated to state's anchor + * + * children of this composable will receive [AnimatedFloat] class from which + * they can read current value when they need or manually animate. + * + * @param T type with which state is represented + * @param state current state to represent Float value with + * @param onStateChange callback to update call site's state + * @param anchorsToState pairs of anchors to states to map anchors to state and vise versa + * @param animationBuilder animation which will be used for animations + * @param dragDirection direction in which drag should be happening. + * Either [DragDirection.Vertical] or [DragDirection.Horizontal] + * @param minValue lower bound for draggable value in this component + * @param maxValue upper bound for draggable value in this component + * @param enabled whether or not this Draggable is enabled and should consume events + */ +// TODO(malkov/tianliu) (figure our how to make it better and make public) +@Composable +internal fun CraneStateDraggable( + state: T, + onStateChange: (T) -> Unit, + anchorsToState: List>, + animationBuilder: AnimationBuilder, + dragDirection: DragDirection, + enabled: Boolean = true, + minValue: Float = Float.MIN_VALUE, + maxValue: Float = Float.MAX_VALUE, + content: @Composable (AnimatedFloat) -> Unit +) { + val forceAnimationCheck = state { true } + + val anchors = remember(anchorsToState) { anchorsToState.map { it.first } } + val currentValue = anchorsToState.firstOrNull { it.second == state }!!.first + val flingConfig = + AnchorsFlingConfig(anchors, animationBuilder, onAnimationEnd = { reason, finalValue, _ -> + if (reason != AnimationEndReason.Interrupted) { + val newState = anchorsToState.firstOrNull { it.first == finalValue }?.second + if (newState != null && newState != state) { + onStateChange(newState) + forceAnimationCheck.value = !forceAnimationCheck.value + } + } + }) + val position = animatedFloat(currentValue) + position.setBounds(minValue, maxValue) + + // This state is to force this component to be recomposed and trigger onCommit below + // This is needed to stay in sync with drag state that caller side holds + onCommit(currentValue, forceAnimationCheck.value) { + position.animateTo(currentValue, animationBuilder) + } + val draggable = Modifier.draggable( + dragDirection = dragDirection, + onDragDeltaConsumptionRequested = { delta -> + val old = position.value + position.snapTo(position.value + delta) + position.value - old + }, + onDragStopped = { position.fling(flingConfig, it) }, + enabled = enabled, + startDragImmediately = position.isRunning + ) + // TODO(b/150706555): This layout is temporary and should be removed once Semantics + // is implemented with modifiers. + @Suppress("DEPRECATION") + PassThroughLayout(draggable) { + content(position) + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/ui/CraneTheme.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/ui/CraneTheme.kt new file mode 100644 index 0000000000..bd122ce323 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/ui/CraneTheme.kt @@ -0,0 +1,56 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.ui + +import androidx.compose.Composable +import androidx.ui.foundation.shape.corner.CornerSize +import androidx.ui.foundation.shape.corner.RoundedCornerShape +import androidx.ui.foundation.shape.corner.ZeroCornerSize +import androidx.ui.graphics.Color +import androidx.ui.material.MaterialTheme +import androidx.ui.material.lightColorPalette +import androidx.ui.unit.dp + +val crane_caption = Color.DarkGray +val crane_divider_color = Color.LightGray +private val crane_red = Color(0xFFE30425) +private val crane_white = Color.White +private val crane_purple_700 = Color(0xFF720D5D) +private val crane_purple_800 = Color(0xFF5D1049) +private val crane_purple_900 = Color(0xFF4E0D3A) + +val craneColors = lightColorPalette( + primary = crane_purple_800, + secondary = crane_red, + surface = crane_purple_900, + onSurface = crane_white, + primaryVariant = crane_purple_700 +) + +val BottomSheetShape = RoundedCornerShape( + topLeft = CornerSize(20.dp), + topRight = CornerSize(20.dp), + bottomLeft = ZeroCornerSize, + bottomRight = ZeroCornerSize +) + +@Composable +fun CraneTheme(children: @Composable () -> Unit) { + MaterialTheme(colors = craneColors, typography = craneTypography) { + children() + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/ui/Images.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/ui/Images.kt new file mode 100644 index 0000000000..2501dbbba0 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/ui/Images.kt @@ -0,0 +1,73 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.ui + +import android.graphics.Bitmap +import android.graphics.drawable.Drawable +import androidx.compose.Composable +import androidx.compose.getValue +import androidx.compose.mutableStateOf +import androidx.compose.onCommit +import androidx.compose.samples.crane.R +import androidx.compose.setValue +import androidx.ui.core.Modifier +import androidx.ui.foundation.Image +import androidx.ui.foundation.shape.corner.RoundedCornerShape +import androidx.ui.graphics.ImageAsset +import androidx.ui.graphics.asImageAsset +import androidx.ui.layout.preferredSize +import androidx.ui.material.Surface +import androidx.ui.res.vectorResource +import androidx.ui.unit.Dp +import androidx.ui.unit.dp +import com.squareup.picasso.Picasso +import com.squareup.picasso.Target + +@Composable +fun NetworkImage(url: String, width: Dp, height: Dp) { + var image by mutableStateOf(null) + + onCommit(url) { + val picasso = Picasso.get() + val target = object : Target { + override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} + override fun onBitmapFailed(e: Exception?, errorDrawable: Drawable?) {} + override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) { + image = bitmap?.asImageAsset() + } + } + picasso + .load(url) + .into(target) + + onDispose { + image = null + picasso.cancelRequest(target) + } + } + Surface( + modifier = Modifier.preferredSize(width = width, height = height), + shape = RoundedCornerShape(4.dp) + ) { + val loadedImage = image + if (loadedImage != null) { + Image(asset = loadedImage) + } else { + Image(asset = vectorResource(id = R.drawable.ic_crane_logo)) + } + } +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/ui/Typography.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/ui/Typography.kt new file mode 100644 index 0000000000..1a7b93c3c1 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/ui/Typography.kt @@ -0,0 +1,106 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.ui + +import androidx.compose.samples.crane.R +import androidx.ui.material.Typography +import androidx.ui.text.TextStyle +import androidx.ui.text.font.FontWeight +import androidx.ui.text.font.font +import androidx.ui.text.font.fontFamily +import androidx.ui.unit.sp + +private val light = font(R.font.raleway_light, FontWeight.W300) +private val regular = font(R.font.raleway_regular, FontWeight.W400) +private val medium = font(R.font.raleway_medium, FontWeight.W500) +private val semibold = font(R.font.raleway_semibold, FontWeight.W600) + +private val craneFontFamily = fontFamily(fonts = listOf(light, regular, medium, semibold)) + +val captionTextStyle = TextStyle( + fontFamily = craneFontFamily, + fontWeight = FontWeight.W400, + fontSize = 16.sp +) + +val craneTypography = Typography( + h1 = TextStyle( + fontFamily = craneFontFamily, + fontWeight = FontWeight.W300, + fontSize = 96.sp + ), + h2 = TextStyle( + fontFamily = craneFontFamily, + fontWeight = FontWeight.W400, + fontSize = 60.sp + ), + h3 = TextStyle( + fontFamily = craneFontFamily, + fontWeight = FontWeight.W600, + fontSize = 48.sp + ), + h4 = TextStyle( + fontFamily = craneFontFamily, + fontWeight = FontWeight.W600, + fontSize = 34.sp + ), + h5 = TextStyle( + fontFamily = craneFontFamily, + fontWeight = FontWeight.W600, + fontSize = 24.sp + ), + h6 = TextStyle( + fontFamily = craneFontFamily, + fontWeight = FontWeight.W400, + fontSize = 20.sp + ), + subtitle1 = TextStyle( + fontFamily = craneFontFamily, + fontWeight = FontWeight.W500, + fontSize = 16.sp + ), + subtitle2 = TextStyle( + fontFamily = craneFontFamily, + fontWeight = FontWeight.W600, + fontSize = 14.sp + ), + body1 = TextStyle( + fontFamily = craneFontFamily, + fontWeight = FontWeight.W600, + fontSize = 16.sp + ), + body2 = TextStyle( + fontFamily = craneFontFamily, + fontWeight = FontWeight.W400, + fontSize = 14.sp + ), + button = TextStyle( + fontFamily = craneFontFamily, + fontWeight = FontWeight.W600, + fontSize = 14.sp + ), + caption = TextStyle( + fontFamily = craneFontFamily, + fontWeight = FontWeight.W500, + fontSize = 12.sp + ), + overline = TextStyle( + fontFamily = craneFontFamily, + fontWeight = FontWeight.W400, + fontSize = 12.sp + ) +) diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/util/Observation.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/util/Observation.kt new file mode 100644 index 0000000000..bc4f815df8 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/util/Observation.kt @@ -0,0 +1,41 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.util + +import androidx.compose.Composable +import androidx.compose.onCommit +import androidx.compose.state +import androidx.lifecycle.LifecycleOwner +import androidx.lifecycle.LiveData +import androidx.lifecycle.Observer + +@Composable +fun observe(data: LiveData, owner: LifecycleOwner): T? { + val current = state { data.value } + onCommit(data) { + val observer = object : Observer { + override fun onChanged(t: T) { + current.value = t + } + } + data.observe(owner, observer) + onDispose { + data.removeObserver(observer) + } + } + return current.value +} diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/util/Shapes.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/util/Shapes.kt new file mode 100644 index 0000000000..da98d7d603 --- /dev/null +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/util/Shapes.kt @@ -0,0 +1,64 @@ +/* + * Copyright 2020 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.samples.crane.util + +import androidx.compose.Composable +import androidx.ui.core.Constraints +import androidx.ui.core.Modifier +import androidx.ui.foundation.Canvas +import androidx.ui.geometry.Offset +import androidx.ui.geometry.Size +import androidx.ui.graphics.Color +import androidx.ui.layout.fillMaxSize +import androidx.ui.layout.preferredSizeIn +import androidx.ui.unit.Dp +import androidx.ui.unit.toPx +import kotlin.math.min + +@Composable +fun Circle(constraints: Constraints, color: Color) { + Canvas(modifier = constraints.toCanvasModifier()) { + drawCircle( + center = Offset(size.width / 2, size.height / 2), + radius = min(size.height, size.width) / 2, + color = color + ) + } +} + +@Composable +fun SemiRect(constraints: Constraints, color: Color, lookingLeft: Boolean = true) { + Canvas(modifier = constraints.toCanvasModifier()) { + val offset = if (lookingLeft) { + Offset(0f, 0f) + } else { + Offset(size.width / 2, 0f) + } + val size = Size(width = size.width / 2, height = size.height) + + drawRect(size = size, topLeft = offset, color = color) + } +} + +private fun Constraints.toCanvasModifier(): Modifier { + return Modifier.preferredSizeIn( + minWidth = Dp(minWidth.toPx().value), + minHeight = Dp(minHeight.toPx().value), + maxWidth = Dp(maxWidth.toPx().value), + maxHeight = Dp(maxHeight.toPx().value) + ).fillMaxSize() +} diff --git a/Crane/app/src/main/res/drawable/ic_back.xml b/Crane/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 0000000000..2989fdadae --- /dev/null +++ b/Crane/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,10 @@ + + + diff --git a/Crane/app/src/main/res/drawable/ic_calendar.xml b/Crane/app/src/main/res/drawable/ic_calendar.xml new file mode 100644 index 0000000000..49dc42f7d9 --- /dev/null +++ b/Crane/app/src/main/res/drawable/ic_calendar.xml @@ -0,0 +1,26 @@ + + + + diff --git a/Crane/app/src/main/res/drawable/ic_crane_drawer.xml b/Crane/app/src/main/res/drawable/ic_crane_drawer.xml new file mode 100644 index 0000000000..43d2052ef3 --- /dev/null +++ b/Crane/app/src/main/res/drawable/ic_crane_drawer.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/Crane/app/src/main/res/drawable/ic_crane_logo.xml b/Crane/app/src/main/res/drawable/ic_crane_logo.xml new file mode 100644 index 0000000000..fae4ebb91f --- /dev/null +++ b/Crane/app/src/main/res/drawable/ic_crane_logo.xml @@ -0,0 +1,38 @@ + + + + + + + diff --git a/Crane/app/src/main/res/drawable/ic_hotel.xml b/Crane/app/src/main/res/drawable/ic_hotel.xml new file mode 100644 index 0000000000..1ae921185c --- /dev/null +++ b/Crane/app/src/main/res/drawable/ic_hotel.xml @@ -0,0 +1,26 @@ + + + + diff --git a/Crane/app/src/main/res/drawable/ic_launcher_foreground.xml b/Crane/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000000..499e509030 --- /dev/null +++ b/Crane/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + diff --git a/Crane/app/src/main/res/drawable/ic_location.xml b/Crane/app/src/main/res/drawable/ic_location.xml new file mode 100644 index 0000000000..76676634e1 --- /dev/null +++ b/Crane/app/src/main/res/drawable/ic_location.xml @@ -0,0 +1,28 @@ + + + + diff --git a/Crane/app/src/main/res/drawable/ic_menu.xml b/Crane/app/src/main/res/drawable/ic_menu.xml new file mode 100644 index 0000000000..3137ba3502 --- /dev/null +++ b/Crane/app/src/main/res/drawable/ic_menu.xml @@ -0,0 +1,46 @@ + + + + + + diff --git a/Crane/app/src/main/res/drawable/ic_person.xml b/Crane/app/src/main/res/drawable/ic_person.xml new file mode 100644 index 0000000000..b728d4db9e --- /dev/null +++ b/Crane/app/src/main/res/drawable/ic_person.xml @@ -0,0 +1,26 @@ + + + + diff --git a/Crane/app/src/main/res/drawable/ic_plane.xml b/Crane/app/src/main/res/drawable/ic_plane.xml new file mode 100644 index 0000000000..056c486e9d --- /dev/null +++ b/Crane/app/src/main/res/drawable/ic_plane.xml @@ -0,0 +1,26 @@ + + + + diff --git a/Crane/app/src/main/res/drawable/ic_restaurant.xml b/Crane/app/src/main/res/drawable/ic_restaurant.xml new file mode 100644 index 0000000000..89977ee7dc --- /dev/null +++ b/Crane/app/src/main/res/drawable/ic_restaurant.xml @@ -0,0 +1,26 @@ + + + + diff --git a/Crane/app/src/main/res/drawable/ic_time.xml b/Crane/app/src/main/res/drawable/ic_time.xml new file mode 100644 index 0000000000..0db2db0fb6 --- /dev/null +++ b/Crane/app/src/main/res/drawable/ic_time.xml @@ -0,0 +1,30 @@ + + + + + + + + diff --git a/Crane/app/src/main/res/font/raleway_light.ttf b/Crane/app/src/main/res/font/raleway_light.ttf new file mode 100755 index 0000000000000000000000000000000000000000..b5ec48606046c16a75279085f594a90509745449 GIT binary patch literal 176904 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 J?{Iac{sz+2x$yu1 literal 0 HcmV?d00001 diff --git a/Crane/app/src/main/res/font/raleway_medium.ttf b/Crane/app/src/main/res/font/raleway_medium.ttf new file mode 100755 index 0000000000000000000000000000000000000000..070ac7691f74166f75f21695b2af7b4eef01b54c GIT binary patch literal 174028 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 A9{>OV literal 0 HcmV?d00001 diff --git a/Crane/app/src/main/res/font/raleway_regular.ttf b/Crane/app/src/main/res/font/raleway_regular.ttf new file mode 100755 index 0000000000000000000000000000000000000000..746c2423833c7d2dbcb7bd41a678a6bf585c5a38 GIT binary patch literal 172992 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�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

GaDz~2YB1mcPYF8xtdOO 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 IxScWo4={}oQ2+n{ literal 0 HcmV?d00001 diff --git a/Crane/app/src/main/res/layout/layout_details_map.xml b/Crane/app/src/main/res/layout/layout_details_map.xml new file mode 100644 index 0000000000..3643dedee8 --- /dev/null +++ b/Crane/app/src/main/res/layout/layout_details_map.xml @@ -0,0 +1,31 @@ + + + diff --git a/Crane/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Crane/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000000..7353dbd1fd --- /dev/null +++ b/Crane/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Crane/app/src/main/res/mipmap-hdpi/ic_launcher.png b/Crane/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..c3bc12a985b127e78ec5fd27c4f92b4a2e3c7d29 GIT binary patch literal 3805 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

#JZW8-Fc{4(kk9hSeoD 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 Y0Zre?58)7ZP5=M^07*qoM6N<$f)*(xKL7v# literal 0 HcmV?d00001 diff --git a/Crane/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/Crane/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..5cb5cfe5b321bd24f179b11e6189a15163a5f916 GIT binary patch literal 8164 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 literal 0 HcmV?d00001 diff --git a/Crane/app/src/main/res/values/colors.xml b/Crane/app/src/main/res/values/colors.xml new file mode 100644 index 0000000000..cc7848b999 --- /dev/null +++ b/Crane/app/src/main/res/values/colors.xml @@ -0,0 +1,22 @@ + + + + #5D1049 + #3D0A2C + #E30425 + \ No newline at end of file diff --git a/Crane/app/src/main/res/values/ic_launcher_background.xml b/Crane/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000000..ec64c6ca8d --- /dev/null +++ b/Crane/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,20 @@ + + + + #5D1049 + \ No newline at end of file diff --git a/Crane/app/src/main/res/values/strings.xml b/Crane/app/src/main/res/values/strings.xml new file mode 100644 index 0000000000..58d56fb370 --- /dev/null +++ b/Crane/app/src/main/res/values/strings.xml @@ -0,0 +1,19 @@ + + + Crane + \ No newline at end of file diff --git a/Crane/app/src/main/res/values/styles.xml b/Crane/app/src/main/res/values/styles.xml new file mode 100644 index 0000000000..79df355fd1 --- /dev/null +++ b/Crane/app/src/main/res/values/styles.xml @@ -0,0 +1,25 @@ + + + + + \ No newline at end of file diff --git a/Crane/app/src/release/res/values/google_maps_api.xml b/Crane/app/src/release/res/values/google_maps_api.xml new file mode 100644 index 0000000000..b4a93a82c6 --- /dev/null +++ b/Crane/app/src/release/res/values/google_maps_api.xml @@ -0,0 +1,19 @@ + + + YOUR_KEY_HERE + \ No newline at end of file diff --git a/Crane/build.gradle.kts b/Crane/build.gradle.kts new file mode 100644 index 0000000000..4338a00bf2 --- /dev/null +++ b/Crane/build.gradle.kts @@ -0,0 +1,56 @@ +/* + * Copyright 2019 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +buildscript { + repositories { + google() + jcenter() + } + + dependencies { + classpath("com.android.tools.build:gradle:4.2.0-alpha01") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61") + } +} + +allprojects { + val snapshotUrl = + "https://androidx-dev-prod.appspot.com/snapshots/builds/6534738/artifacts/ui/repository/" + repositories { + maven { + url = uri(snapshotUrl) + } + google() + jcenter() + } + // Don't require parens on fun type annotations e.g. `@Composable~()~ () -> Unit`. Remove with KT1.4 + tasks.withType().configureEach { + kotlinOptions { + // Treat all Kotlin warnings as errors + allWarningsAsErrors = true + + freeCompilerArgs = freeCompilerArgs + + listOf("-XXLanguage:+NonParenthesizedAnnotationsOnFunctionalTypes") + + // Compose is now based on the Kotlin 1.4 compiler, but we need to use the 1.3.x Kotlin + // library due to library compatibility, etc. Therefore we explicit set our apiVersion + // to 1.3 to fix any warnings. Binary dependencies (such as Compose) can continue to + // use 1.4 if built with that library. + // TODO: remove this once we move to Kotlin 1.4 + apiVersion = "1.3" + } + } +} diff --git a/Crane/gradle.properties b/Crane/gradle.properties new file mode 100644 index 0000000000..23339e0df6 --- /dev/null +++ b/Crane/gradle.properties @@ -0,0 +1,21 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official diff --git a/Crane/gradle/wrapper/gradle-wrapper.jar b/Crane/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..f6b961fd5a86aa5fbfe90f707c3138408be7c718 GIT binary patch literal 54329 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

<5G2M1WZP5 zzqSuO91lJod(SBDDw<*sX(+F6Uq~YAeYV#2A;XQu_p=N5X+#cmu19Qk>QAnV=k!?wbk5I;tDWgFc}0NkvC*G=V+Yh1cyeJVq~9czZiDXe+S=VfL2g`LWo8om z$Y~FQc6MFjV-t1Y`^D9XMwY*U_re2R?&(O~68T&D4S{X`6JYU-pz=}ew-)V0AOUT1 zVOkHAB-8uBcRjLvz<9HS#a@X*Kc@|W)nyiSgi|u5$Md|P()%2(?olGg@ypoJwp6>m z*dnfjjWC>?_1p;%1brqZyDRR;8EntVA92EJ3ByOxj6a+bhPl z;a?m4rQAV1@QU^#M1HX)0+}A<7TCO`ZR_RzF}X9-M>cRLyN4C+lCk2)kT^3gN^`IT zNP~fAm(wyIoR+l^lQDA(e1Yv}&$I!n?&*p6?lZcQ+vGLLd~fM)qt}wsbf3r=tmVYe zl)ntf#E!P7wlakP9MXS7m0nsAmqxZ*)#j;M&0De`oNmFgi$ov#!`6^4)iQyxg5Iuj zjLAhzQ)r`^hf7`*1`Rh`X;LVBtDSz@0T?kkT1o!ijeyTGt5vc^Cd*tmNgiNo^EaWvaC8$e+nb_{W01j3%=1Y&92YacjCi>eNbwk%-gPQ@H-+4xskQ}f_c=jg^S-# zYFBDf)2?@5cy@^@FHK5$YdAK9cI;!?Jgd}25lOW%xbCJ>By3=HiK@1EM+I46A)Lsd zeT|ZH;KlCml=@;5+hfYf>QNOr^XNH%J-lvev)$Omy8MZ`!{`j>(J5cG&ZXXgv)TaF zg;cz99i$4CX_@3MIb?GL0s*8J=3`#P(jXF(_(6DXZjc@(@h&=M&JG)9&Te1?(^XMW zjjC_70|b=9hB6pKQi`S^Ls7JyJw^@P>Ko^&q8F&?>6i;#CbxUiLz1ZH4lNyd@QACd zu>{!sqjB!2Dg}pbAXD>d!3jW}=5aN0b;rw*W>*PAxm7D)aw(c*RX2@bTGEI|RRp}vw7;NR2wa;rXN{L{Q#=Fa z$x@ms6pqb>!8AuV(prv>|aU8oWV={C&$c zMa=p=CDNOC2tISZcd8~18GN5oTbKY+Vrq;3_obJlfSKRMk;Hdp1`y`&LNSOqeauR_ z^j*Ojl3Ohzb5-a49A8s|UnM*NM8tg}BJXdci5%h&;$afbmRpN0&~9rCnBA`#lG!p zc{(9Y?A0Y9yo?wSYn>iigf~KP$0*@bGZ>*YM4&D;@{<%Gg5^uUJGRrV4 z(aZOGB&{_0f*O=Oi0k{@8vN^BU>s3jJRS&CJOl3o|BE{FAA&a#2YYiX3pZz@|Go-F z|Fly;7eX2OTs>R}<`4RwpHFs9nwh)B28*o5qK1Ge=_^w0m`uJOv!=&!tzt#Save(C zgKU=Bsgql|`ui(e1KVxR`?>Dx>(rD1$iWp&m`v)3A!j5(6vBm*z|aKm*T*)mo(W;R zNGo2`KM!^SS7+*9YxTm6YMm_oSrLceqN*nDOAtagULuZl5Q<7mOnB@Hq&P|#9y{5B z!2x+2s<%Cv2Aa0+u{bjZXS);#IFPk(Ph-K7K?3i|4ro> zRbqJoiOEYo(Im^((r}U4b8nvo_>4<`)ut`24?ILnglT;Pd&U}$lV3U$F9#PD(O=yV zgNNA=GW|(E=&m_1;uaNmipQe?pon4{T=zK!N!2_CJL0E*R^XXIKf*wi!>@l}3_P9Z zF~JyMbW!+n-+>!u=A1ESxzkJy$DRuG+$oioG7(@Et|xVbJ#BCt;J43Nvj@MKvTxzy zMmjNuc#LXBxFAwIGZJk~^!q$*`FME}yKE8d1f5Mp}KHNq(@=Z8YxV}0@;YS~|SpGg$_jG7>_8WWYcVx#4SxpzlV9N4aO>K{c z$P?a_fyDzGX$Of3@ykvedGd<@-R;M^Shlj*SswJLD+j@hi_&_>6WZ}#AYLR0iWMK|A zH_NBeu(tMyG=6VO-=Pb>-Q#$F*or}KmEGg*-n?vWQREURdB#+6AvOj*I%!R-4E_2$ zU5n9m>RWs|Wr;h2DaO&mFBdDb-Z{APGQx$(L`if?C|njd*fC=rTS%{o69U|meRvu?N;Z|Y zbT|ojL>j;q*?xXmnHH#3R4O-59NV1j=uapkK7}6@Wo*^Nd#(;$iuGsb;H315xh3pl zHaJ>h-_$hdNl{+|Zb%DZH%ES;*P*v0#}g|vrKm9;j-9e1M4qX@zkl&5OiwnCz=tb6 zz<6HXD+rGIVpGtkb{Q^LIgExOm zz?I|oO9)!BOLW#krLmWvX5(k!h{i>ots*EhpvAE;06K|u_c~y{#b|UxQ*O@Ks=bca z^_F0a@61j3I(Ziv{xLb8AXQj3;R{f_l6a#H5ukg5rxwF9A$?Qp-Mo54`N-SKc}fWp z0T)-L@V$$&my;l#Ha{O@!fK4-FSA)L&3<${Hcwa7ue`=f&YsXY(NgeDU#sRlT3+9J z6;(^(sjSK@3?oMo$%L-nqy*E;3pb0nZLx6 z;h5)T$y8GXK1DS-F@bGun8|J(v-9o=42&nLJy#}M5D0T^5VWBNn$RpC zZzG6Bt66VY4_?W=PX$DMpKAI!d`INr) zkMB{XPQ<52rvWVQqgI0OL_NWxoe`xxw&X8yVftdODPj5|t}S6*VMqN$-h9)1MBe0N zYq?g0+e8fJCoAksr0af1)FYtz?Me!Cxn`gUx&|T;)695GG6HF7!Kg1zzRf_{VWv^bo81v4$?F6u2g|wxHc6eJQAg&V z#%0DnWm2Rmu71rPJ8#xFUNFC*V{+N_qqFH@gYRLZ6C?GAcVRi>^n3zQxORPG)$-B~ z%_oB?-%Zf7d*Fe;cf%tQwcGv2S?rD$Z&>QC2X^vwYjnr5pa5u#38cHCt4G3|efuci z@3z=#A13`+ztmp;%zjXwPY_aq-;isu*hecWWX_=Z8paSqq7;XYnUjK*T>c4~PR4W7 z#C*%_H&tfGx`Y$w7`dXvVhmovDnT>btmy~SLf>>~84jkoQ%cv=MMb+a{JV&t0+1`I z32g_Y@yDhKe|K^PevP~MiiVl{Ou7^Mt9{lOnXEQ`xY^6L8D$705GON{!1?1&YJEl#fTf5Z)da=yiEQ zGgtC-soFGOEBEB~ZF_{7b(76En>d}mI~XIwNw{e>=Fv)sgcw@qOsykWr?+qAOZSVrQfg}TNI ztKNG)1SRrAt6#Q?(me%)>&A_^DM`pL>J{2xu>xa$3d@90xR61TQDl@fu%_85DuUUA za9tn64?At;{`BAW6oykwntxHeDpXsV#{tmt5RqdN7LtcF4vR~_kZNT|wqyR#z^Xcd zFdymVRZvyLfTpBT>w9<)Ozv@;Yk@dOSVWbbtm^y@@C>?flP^EgQPAwsy75bveo=}T zFxl(f)s)j(0#N_>Or(xEuV(n$M+`#;Pc$1@OjXEJZumkaekVqgP_i}p`oTx;terTx zZpT+0dpUya2hqlf`SpXN{}>PfhajNk_J0`H|2<5E;U5Vh4F8er z;RxLSFgpGhkU>W?IwdW~NZTyOBrQ84H7_?gviIf71l`EETodG9a1!8e{jW?DpwjL? zGEM&eCzwoZt^P*8KHZ$B<%{I}>46IT%jJ3AnnB5P%D2E2Z_ z1M!vr#8r}1|KTqWA4%67ZdbMW2YJ81b(KF&SQ2L1Qn(y-=J${p?xLMx3W7*MK;LFQ z6Z`aU;;mTL4XrrE;HY*Rkh6N%?qviUGNAKiCB~!P}Z->IpO6E(gGd7I#eDuT7j|?nZ zK}I(EJ>$Kb&@338M~O+em9(L!+=0zBR;JAQesx|3?Ok90)D1aS9P?yTh6Poh8Cr4X zk3zc=f2rE7jj+aP7nUsr@~?^EGP>Q>h#NHS?F{Cn`g-gD<8F&dqOh-0sa%pfL`b+1 zUsF*4a~)KGb4te&K0}bE>z3yb8% zibb5Q%Sfiv7feb1r0tfmiMv z@^4XYwg@KZI=;`wC)`1jUA9Kv{HKe2t$WmRcR4y8)VAFjRi zaz&O7Y2tDmc5+SX(bj6yGHYk$dBkWc96u3u&F)2yEE~*i0F%t9Kg^L6MJSb&?wrXi zGSc;_rln$!^ybwYBeacEFRsVGq-&4uC{F)*Y;<0y7~USXswMo>j4?~5%Zm!m@i@-> zXzi82sa-vpU{6MFRktJy+E0j#w`f`>Lbog{zP|9~hg(r{RCa!uGe>Yl536cn$;ouH za#@8XMvS-kddc1`!1LVq;h57~zV`7IYR}pp3u!JtE6Q67 zq3H9ZUcWPm2V4IukS}MCHSdF0qg2@~ufNx9+VMjQP&exiG_u9TZAeAEj*jw($G)zL zq9%#v{wVyOAC4A~AF=dPX|M}MZV)s(qI9@aIK?Pe+~ch|>QYb+78lDF*Nxz2-vpRbtQ*F4$0fDbvNM#CCatgQ@z1+EZWrt z2dZfywXkiW=no5jus-92>gXn5rFQ-COvKyegmL=4+NPzw6o@a?wGE-1Bt;pCHe;34K%Z z-FnOb%!nH;)gX+!a3nCk?5(f1HaWZBMmmC@lc({dUah+E;NOros{?ui1zPC-Q0);w zEbJmdE$oU$AVGQPdm{?xxI_0CKNG$LbY*i?YRQ$(&;NiA#h@DCxC(U@AJ$Yt}}^xt-EC_ z4!;QlLkjvSOhdx!bR~W|Ezmuf6A#@T`2tsjkr>TvW*lFCMY>Na_v8+{Y|=MCu1P8y z89vPiH5+CKcG-5lzk0oY>~aJC_0+4rS@c@ZVKLAp`G-sJB$$)^4*A!B zmcf}lIw|VxV9NSoJ8Ag3CwN&d7`|@>&B|l9G8tXT^BDHOUPrtC70NgwN4${$k~d_4 zJ@eo6%YQnOgq$th?0{h`KnqYa$Nz@vlHw<%!C5du6<*j1nwquk=uY}B8r7f|lY+v7 zm|JU$US08ugor8E$h3wH$c&i~;guC|3-tqJy#T;v(g( zBZtPMSyv%jzf->435yM(-UfyHq_D=6;ouL4!ZoD+xI5uCM5ay2m)RPmm$I}h>()hS zO!0gzMxc`BPkUZ)WXaXam%1;)gedA7SM8~8yIy@6TPg!hR0=T>4$Zxd)j&P-pXeSF z9W`lg6@~YDhd19B9ETv(%er^Xp8Yj@AuFVR_8t*KS;6VHkEDKI#!@l!l3v6`W1`1~ zP{C@keuV4Q`Rjc08lx?zmT$e$!3esc9&$XZf4nRL(Z*@keUbk!GZi(2Bmyq*saOD? z3Q$V<*P-X1p2}aQmuMw9nSMbOzuASsxten7DKd6A@ftZ=NhJ(0IM|Jr<91uAul4JR zADqY^AOVT3a(NIxg|U;fyc#ZnSzw2cr}#a5lZ38>nP{05D)7~ad7JPhw!LqOwATXtRhK!w0X4HgS1i<%AxbFmGJx9?sEURV+S{k~g zGYF$IWSlQonq6}e;B(X(sIH|;52+(LYW}v_gBcp|x%rEAVB`5LXg_d5{Q5tMDu0_2 z|LOm$@K2?lrLNF=mr%YP|U-t)~9bqd+wHb4KuPmNK<}PK6e@aosGZK57=Zt+kcszVOSbe;`E^dN! ze7`ha3WUUU7(nS0{?@!}{0+-VO4A{7+nL~UOPW9_P(6^GL0h${SLtqG!} zKl~Ng5#@Sy?65wk9z*3SA`Dpd4b4T^@C8Fhd8O)k_4%0RZL5?#b~jmgU+0|DB%0Z) zql-cPC>A9HPjdOTpPC` zQwvF}uB5kG$Xr4XnaH#ruSjM*xG?_hT7y3G+8Ox`flzU^QIgb_>2&-f+XB6MDr-na zSi#S+c!ToK84<&m6sCiGTd^8pNdXo+$3^l3FL_E`0 z>8it5YIDxtTp2Tm(?}FX^w{fbfgh7>^8mtvN>9fWgFN_*a1P`Gz*dyOZF{OV7BC#j zQV=FQM5m>47xXgapI$WbPM5V`V<7J9tD)oz@d~MDoM`R^Y6-Na(lO~uvZlpu?;zw6 zVO1faor3dg#JEb5Q*gz4<W8tgC3nE2BG2jeIQs1)<{In&7hJ39x=;ih;CJDy)>0S1at*7n?Wr0ahYCpFjZ|@u91Zl7( zv;CSBRC65-6f+*JPf4p1UZ)k=XivKTX6_bWT~7V#rq0Xjas6hMO!HJN8GdpBKg_$B zwDHJF6;z?h<;GXFZan8W{XFNPpOj!(&I1`&kWO86p?Xz`a$`7qV7Xqev|7nn_lQuX ziGpU1MMYt&5dE2A62iX3;*0WzNB9*nSTzI%62A+N?f?;S>N@8M=|ef3gtQTIA*=yq zQAAjOqa!CkHOQo4?TsqrrsJLclXcP?dlAVv?v`}YUjo1Htt;6djP@NPFH+&p1I+f_ z)Y279{7OWomY8baT(4TAOlz1OyD{4P?(DGv3XyJTA2IXe=kqD)^h(@*E3{I~w;ws8 z)ZWv7E)pbEM zd3MOXRH3mQhks9 zv6{s;k0y5vrcjXaVfw8^>YyPo=oIqd5IGI{)+TZq5Z5O&hXAw%ZlL}^6FugH;-%vP zAaKFtt3i^ag226=f0YjzdPn6|4(C2sC5wHFX{7QF!tG1E-JFA`>eZ`}$ymcRJK?0c zN363o{&ir)QySOFY0vcu6)kX#;l??|7o{HBDVJN+17rt|w3;(C_1b>d;g9Gp=8YVl zYTtA52@!7AUEkTm@P&h#eg+F*lR zQ7iotZTcMR1frJ0*V@Hw__~CL>_~2H2cCtuzYIUD24=Cv!1j6s{QS!v=PzwQ(a0HS zBKx04KA}-Ue+%9d`?PG*hIij@54RDSQpA7|>qYVIrK_G6%6;#ZkR}NjUgmGju)2F`>|WJoljo)DJgZr4eo1k1i1+o z1D{>^RlpIY8OUaOEf5EBu%a&~c5aWnqM zxBpJq98f=%M^{4mm~5`CWl%)nFR64U{(chmST&2jp+-r z3675V<;Qi-kJud%oWnCLdaU-)xTnMM%rx%Jw6v@=J|Ir=4n-1Z23r-EVf91CGMGNz zb~wyv4V{H-hkr3j3WbGnComiqmS0vn?n?5v2`Vi>{Ip3OZUEPN7N8XeUtF)Ry6>y> zvn0BTLCiqGroFu|m2zG-;Xb6;W`UyLw)@v}H&(M}XCEVXZQoWF=Ykr5lX3XWwyNyF z#jHv)A*L~2BZ4lX?AlN3X#axMwOC)PoVy^6lCGse9bkGjb=qz%kDa6}MOmSwK`cVO zt(e*MW-x}XtU?GY5}9{MKhRhYOlLhJE5=ca+-RmO04^ z66z{40J=s=ey9OCdc(RCzy zd7Zr1%!y3}MG(D=wM_ebhXnJ@MLi7cImDkhm0y{d-Vm81j`0mbi4lF=eirlr)oW~a zCd?26&j^m4AeXEsIUXiTal)+SPM4)HX%%YWF1?(FV47BaA`h9m67S9x>hWMVHx~Hg z1meUYoLL(p@b3?x|9DgWeI|AJ`Ia84*P{Mb%H$ZRROouR4wZhOPX15=KiBMHl!^JnCt$Az`KiH^_d>cev&f zaG2>cWf$=A@&GP~DubsgYb|L~o)cn5h%2`i^!2)bzOTw2UR!>q5^r&2Vy}JaWFUQE04v>2;Z@ZPwXr?y&G(B^@&y zsd6kC=hHdKV>!NDLIj+3rgZJ|dF`%N$DNd;B)9BbiT9Ju^Wt%%u}SvfM^=|q-nxDG zuWCQG9e#~Q5cyf8@y76#kkR^}{c<_KnZ0QsZcAT|YLRo~&tU|N@BjxOuy`#>`X~Q< z?R?-Gsk$$!oo(BveQLlUrcL#eirhgBLh`qHEMg`+sR1`A=1QX7)ZLMRT+GBy?&mM8 zQG^z-!Oa&J-k7I(3_2#Q6Bg=NX<|@X&+YMIOzfEO2$6Mnh}YV!m!e^__{W@-CTprr zbdh3f=BeCD$gHwCrmwgM3LAv3!Mh$wM)~KWzp^w)Cu6roO7uUG5z*}i0_0j47}pK; ztN530`ScGatLOL06~zO)Qmuv`h!gq5l#wx(EliKe&rz-5qH(hb1*fB#B+q`9=jLp@ zOa2)>JTl7ovxMbrif`Xe9;+fqB1K#l=Dv!iT;xF zdkCvS>C5q|O;}ns3AgoE({Ua-zNT-9_5|P0iANmC6O76Sq_(AN?UeEQJ>#b54fi3k zFmh+P%b1x3^)0M;QxXLP!BZ^h|AhOde*{9A=f3|Xq*JAs^Y{eViF|=EBfS6L%k4ip zk+7M$gEKI3?bQg?H3zaE@;cyv9kv;cqK$VxQbFEsy^iM{XXW0@2|DOu$!-k zSFl}Y=jt-VaT>Cx*KQnHTyXt}f9XswFB9ibYh+k2J!ofO+nD?1iw@mwtrqI4_i?nE zhLkPp41ED62me}J<`3RN80#vjW;wt`pP?%oQ!oqy7`miL>d-35a=qotK$p{IzeSk# ze_$CFYp_zIkrPFVaW^s#U4xT1lI^A0IBe~Y<4uS%zSV=wcuLr%gQT=&5$&K*bwqx| zWzCMiz>7t^Et@9CRUm9E+@hy~sBpm9fri$sE1zgLU((1?Yg{N1Sars=DiW&~Zw=3I zi7y)&oTC?UWD2w97xQ&5vx zRXEBGeJ(I?Y}eR0_O{$~)bMJRTsNUPIfR!xU9PE7A>AMNr_wbrFK>&vVw=Y;RH zO$mlpmMsQ}-FQ2cSj7s7GpC+~^Q~dC?y>M}%!-3kq(F3hGWo9B-Gn02AwUgJ>Z-pKOaj zysJBQx{1>Va=*e@sLb2z&RmQ7ira;aBijM-xQ&cpR>X3wP^foXM~u1>sv9xOjzZpX z0K;EGouSYD~oQ&lAafj3~EaXfFShC+>VsRlEMa9cg9i zFxhCKO}K0ax6g4@DEA?dg{mo>s+~RPI^ybb^u--^nTF>**0l5R9pocwB?_K)BG_)S zyLb&k%XZhBVr7U$wlhMqwL)_r&&n%*N$}~qijbkfM|dIWP{MyLx}X&}ES?}7i;9bW zmTVK@zR)7kE2+L42Q`n4m0VVg5l5(W`SC9HsfrLZ=v%lpef=Gj)W59VTLe+Z$8T8i z4V%5+T0t8LnM&H>Rsm5C%qpWBFqgTwL{=_4mE{S3EnBXknM&u8n}A^IIM4$s3m(Rd z>zq=CP-!9p9es2C*)_hoL@tDYABn+o#*l;6@7;knWIyDrt5EuakO99S$}n((Fj4y} zD!VvuRzghcE{!s;jC*<_H$y6!6QpePo2A3ZbX*ZzRnQq*b%KK^NF^z96CHaWmzU@f z#j;y?X=UP&+YS3kZx7;{ zDA{9(wfz7GF`1A6iB6fnXu0?&d|^p|6)%3$aG0Uor~8o? z*e}u#qz7Ri?8Uxp4m_u{a@%bztvz-BzewR6bh*1Xp+G=tQGpcy|4V_&*aOqu|32CM zz3r*E8o8SNea2hYJpLQ-_}R&M9^%@AMx&`1H8aDx4j%-gE+baf2+9zI*+Pmt+v{39 zDZ3Ix_vPYSc;Y;yn68kW4CG>PE5RoaV0n@#eVmk?p$u&Fy&KDTy!f^Hy6&^-H*)#u zdrSCTJPJw?(hLf56%2;_3n|ujUSJOU8VPOTlDULwt0jS@j^t1WS z!n7dZIoT+|O9hFUUMbID4Ec$!cc($DuQWkocVRcYSikFeM&RZ=?BW)mG4?fh#)KVG zcJ!<=-8{&MdE)+}?C8s{k@l49I|Zwswy^ZN3;E!FKyglY~Aq?4m74P-0)sMTGXqd5(S<-(DjjM z&7dL-Mr8jhUCAG$5^mI<|%`;JI5FVUnNj!VO2?Jiqa|c2;4^n!R z`5KK0hyB*F4w%cJ@Un6GC{mY&r%g`OX|1w2$B7wxu97%<@~9>NlXYd9RMF2UM>(z0 zouu4*+u+1*k;+nFPk%ly!nuMBgH4sL5Z`@Rok&?Ef=JrTmvBAS1h?C0)ty5+yEFRz zY$G=coQtNmT@1O5uk#_MQM1&bPPnspy5#>=_7%WcEL*n$;sSAZcXxMpcXxLe;_mLA z5F_paad+bGZV*oh@8h0(|D2P!q# zTHjmiphJ=AazSeKQPkGOR-D8``LjzToyx{lfK-1CDD6M7?pMZOdLKFtjZaZMPk4}k zW)97Fh(Z+_Fqv(Q_CMH-YYi?fR5fBnz7KOt0*t^cxmDoIokc=+`o# zrud|^h_?KW=Gv%byo~(Ln@({?3gnd?DUf-j2J}|$Mk>mOB+1{ZQ8HgY#SA8END(Zw z3T+W)a&;OO54~m}ffemh^oZ!Vv;!O&yhL0~hs(p^(Yv=(3c+PzPXlS5W79Er8B1o* z`c`NyS{Zj_mKChj+q=w)B}K za*zzPhs?c^`EQ;keH{-OXdXJet1EsQ)7;{3eF!-t^4_Srg4(Ot7M*E~91gwnfhqaM zNR7dFaWm7MlDYWS*m}CH${o?+YgHiPC|4?X?`vV+ws&Hf1ZO-w@OGG^o4|`b{bLZj z&9l=aA-Y(L11!EvRjc3Zpxk7lc@yH1e$a}8$_-r$)5++`_eUr1+dTb@ zU~2P1HM#W8qiNN3b*=f+FfG1!rFxnNlGx{15}BTIHgxO>Cq4 z;#9H9YjH%>Z2frJDJ8=xq>Z@H%GxXosS@Z>cY9ppF+)e~t_hWXYlrO6)0p7NBMa`+ z^L>-#GTh;k_XnE)Cgy|0Dw;(c0* zSzW14ZXozu)|I@5mRFF1eO%JM=f~R1dkNpZM+Jh(?&Zje3NgM{2ezg1N`AQg5%+3Y z64PZ0rPq6;_)Pj-hyIOgH_Gh`1$j1!jhml7ksHA1`CH3FDKiHLz+~=^u@kUM{ilI5 z^FPiJ7mSrzBs9{HXi2{sFhl5AyqwUnU{sPcUD{3+l-ZHAQ)C;c$=g1bdoxeG(5N01 zZy=t8i{*w9m?Y>V;uE&Uy~iY{pY4AV3_N;RL_jT_QtLFx^KjcUy~q9KcLE3$QJ{!)@$@En{UGG7&}lc*5Kuc^780;7Bj;)X?1CSy*^^ zPP^M)Pr5R>mvp3_hmCtS?5;W^e@5BjE>Cs<`lHDxj<|gtOK4De?Sf0YuK5GX9G93i zMYB{8X|hw|T6HqCf7Cv&r8A$S@AcgG1cF&iJ5=%+x;3yB`!lQ}2Hr(DE8=LuNb~Vs z=FO&2pdc16nD$1QL7j+!U^XWTI?2qQKt3H8=beVTdHHa9=MiJ&tM1RRQ-=+vy!~iz zj3O{pyRhCQ+b(>jC*H)J)%Wq}p>;?@W*Eut@P&?VU+Sdw^4kE8lvX|6czf{l*~L;J zFm*V~UC;3oQY(ytD|D*%*uVrBB}BbAfjK&%S;z;7$w68(8PV_whC~yvkZmX)xD^s6 z{$1Q}q;99W?*YkD2*;)tRCS{q2s@JzlO~<8x9}X<0?hCD5vpydvOw#Z$2;$@cZkYrp83J0PsS~!CFtY%BP=yxG?<@#{7%2sy zOc&^FJxsUYN36kSY)d7W=*1-{7ghPAQAXwT7z+NlESlkUH&8ODlpc8iC*iQ^MAe(B z?*xO4i{zFz^G=^G#9MsLKIN64rRJykiuIVX5~0#vAyDWc9-=6BDNT_aggS2G{B>dD ze-B%d3b6iCfc5{@yz$>=@1kdK^tX9qh0=ocv@9$ai``a_ofxT=>X7_Y0`X}a^M?d# z%EG)4@`^Ej_=%0_J-{ga!gFtji_byY&Vk@T1c|ucNAr(JNr@)nCWj?QnCyvXg&?FW;S-VOmNL6^km_dqiVjJuIASVGSFEos@EVF7St$WE&Z%)`Q##+0 zjaZ=JI1G@0!?l|^+-ZrNd$WrHBi)DA0-Eke>dp=_XpV<%CO_Wf5kQx}5e<90dt>8k zAi00d0rQ821nA>B4JHN7U8Zz=0;9&U6LOTKOaC1FC8GgO&kc=_wHIOGycL@c*$`ce703t%>S}mvxEnD-V!;6c`2(p74V7D0No1Xxt`urE66$0(ThaAZ1YVG#QP$ zy~NN%kB*zhZ2Y!kjn826pw4bh)75*e!dse+2Db(;bN34Uq7bLpr47XTX{8UEeC?2i z*{$`3dP}32${8pF$!$2Vq^gY|#w+VA_|o(oWmQX8^iw#n_crb(K3{69*iU?<%C-%H zuKi)3M1BhJ@3VW>JA`M>L~5*_bxH@Euy@niFrI$82C1}fwR$p2E&ZYnu?jlS}u7W9AyfdXh2pM>78bIt3 z)JBh&XE@zA!kyCDfvZ1qN^np20c1u#%P6;6tU&dx0phT1l=(mw7`u!-0e=PxEjDds z9E}{E!7f9>jaCQhw)&2TtG-qiD)lD(4jQ!q{`x|8l&nmtHkdul# zy+CIF8lKbp9_w{;oR+jSLtTfE+B@tOd6h=QePP>rh4@~!8c;Hlg9m%%&?e`*Z?qz5-zLEWfi>`ord5uHF-s{^bexKAoMEV@9nU z^5nA{f{dW&g$)BAGfkq@r5D)jr%!Ven~Q58c!Kr;*Li#`4Bu_?BU0`Y`nVQGhNZk@ z!>Yr$+nB=`z#o2nR0)V3M7-eVLuY`z@6CT#OTUXKnxZn$fNLPv7w1y7eGE=Qv@Hey`n;`U=xEl|q@CCV^#l)s0ZfT+mUf z^(j5r4)L5i2jnHW4+!6Si3q_LdOLQi<^fu?6WdohIkn79=jf%Fs3JkeXwF(?_tcF? z?z#j6iXEd(wJy4|p6v?xNk-)iIf2oX5^^Y3q3ziw16p9C6B;{COXul%)`>nuUoM*q zzmr|NJ5n)+sF$!yH5zwp=iM1#ZR`O%L83tyog-qh1I z0%dcj{NUs?{myT~33H^(%0QOM>-$hGFeP;U$puxoJ>>o-%Lk*8X^rx1>j|LtH$*)>1C!Pv&gd16%`qw5LdOIUbkNhaBBTo}5iuE%K&ZV^ zAr_)kkeNKNYJRgjsR%vexa~&8qMrQYY}+RbZ)egRg9_$vkoyV|Nc&MH@8L)`&rpqd zXnVaI@~A;Z^c3+{x=xgdhnocA&OP6^rr@rTvCnhG6^tMox$ulw2U7NgUtW%|-5VeH z_qyd47}1?IbuKtqNbNx$HR`*+9o=8`%vM8&SIKbkX9&%TS++x z5|&6P<%=F$C?owUI`%uvUq^yW0>`>yz!|WjzsoB9dT;2Dx8iSuK%%_XPgy0dTD4kd zDXF@&O_vBVVKQq(9YTClUPM30Sk7B!v7nOyV`XC!BA;BIVwphh+c)?5VJ^(C;GoQ$ zvBxr7_p*k$T%I1ke}`U&)$uf}I_T~#3XTi53OX)PoXVgxEcLJgZG^i47U&>LY(l%_ z;9vVDEtuMCyu2fqZeez|RbbIE7@)UtJvgAcVwVZNLccswxm+*L&w`&t=ttT=sv6Aq z!HouSc-24Y9;0q$>jX<1DnnGmAsP))- z^F~o99gHZw`S&Aw7e4id6Lg7kMk-e)B~=tZ!kE7sGTOJ)8@q}np@j7&7Sy{2`D^FH zI7aX%06vKsfJ168QnCM2=l|i>{I{%@gcr>ExM0Dw{PX6ozEuqFYEt z087%MKC;wVsMV}kIiuu9Zz9~H!21d!;Cu#b;hMDIP7nw3xSX~#?5#SSjyyg+Y@xh| z%(~fv3`0j#5CA2D8!M2TrG=8{%>YFr(j)I0DYlcz(2~92?G*?DeuoadkcjmZszH5& zKI@Lis%;RPJ8mNsbrxH@?J8Y2LaVjUIhRUiO-oqjy<&{2X~*f|)YxnUc6OU&5iac= z*^0qwD~L%FKiPmlzi&~a*9sk2$u<7Al=_`Ox^o2*kEv?p`#G(p(&i|ot8}T;8KLk- zPVf_4A9R`5^e`Om2LV*cK59EshYXse&IoByj}4WZaBomoHAPKqxRKbPcD`lMBI)g- zeMRY{gFaUuecSD6q!+b5(?vAnf>c`Z(8@RJy%Ulf?W~xB1dFAjw?CjSn$ph>st5bc zUac1aD_m6{l|$#g_v6;=32(mwpveQDWhmjR7{|B=$oBhz`7_g7qNp)n20|^^op3 zSfTdWV#Q>cb{CMKlWk91^;mHap{mk)o?udk$^Q^^u@&jd zfZ;)saW6{e*yoL6#0}oVPb2!}r{pAUYtn4{P~ES9tTfC5hXZnM{HrC8^=Pof{G4%Bh#8 ze~?C9m*|fd8MK;{L^!+wMy>=f^8b&y?yr6KnTq28$pFMBW9Oy7!oV5z|VM$s-cZ{I|Xf@}-)1=$V&x7e;9v81eiTi4O5-vs?^5pCKy2l>q);!MA zS!}M48l$scB~+Umz}7NbwyTn=rqt@`YtuwiQSMvCMFk2$83k50Q>OK5&fe*xCddIm)3D0I6vBU<+!3=6?(OhkO|b4fE_-j zimOzyfBB_*7*p8AmZi~X2bgVhyPy>KyGLAnOpou~sx9)S9%r)5dE%ADs4v%fFybDa_w*0?+>PsEHTbhKK^G=pFz z@IxLTCROWiKy*)cV3y%0FwrDvf53Ob_XuA1#tHbyn%Ko!1D#sdhBo`;VC*e1YlhrC z?*y3rp86m#qI|qeo8)_xH*G4q@70aXN|SP+6MQ!fJQqo1kwO_v7zqvUfU=Gwx`CR@ zRFb*O8+54%_8tS(ADh}-hUJzE`s*8wLI>1c4b@$al)l}^%GuIXjzBK!EWFO8W`>F^ ze7y#qPS0NI7*aU)g$_ziF(1ft;2<}6Hfz10cR8P}67FD=+}MfhrpOkF3hFhQu;Q1y zu%=jJHTr;0;oC94Hi@LAF5quAQ(rJG(uo%BiRQ@8U;nhX)j0i?0SL2g-A*YeAqF>RVCBOTrn{0R27vu}_S zS>tX4!#&U4W;ikTE!eFH+PKw%p+B(MR2I%n#+m0{#?qRP_tR@zpgCb=4rcrL!F=;A zh%EIF8m6%JG+qb&mEfuFTLHSxUAZEvC-+kvZKyX~SA3Umt`k}}c!5dy?-sLIM{h@> z!2=C)@nx>`;c9DdwZ&zeUc(7t<21D7qBj!|1^Mp1eZ6)PuvHx+poKSDCSBMFF{bKy z;9*&EyKitD99N}%mK8431rvbT+^%|O|HV23{;RhmS{$5tf!bIPoH9RKps`-EtoW5h zo6H_!s)Dl}2gCeGF6>aZtah9iLuGd19^z0*OryPNt{70RvJSM<#Ox9?HxGg04}b^f zrVEPceD%)#0)v5$YDE?f`73bQ6TA6wV;b^x*u2Ofe|S}+q{s5gr&m~4qGd!wOu|cZ||#h_u=k*fB;R6&k?FoM+c&J;ISg70h!J7*xGus)ta4veTdW)S^@sU@ z4$OBS=a~@F*V0ECic;ht4@?Jw<9kpjBgHfr2FDPykCCz|v2)`JxTH55?b3IM={@DU z!^|9nVO-R#s{`VHypWyH0%cs;0GO3E;It6W@0gX6wZ%W|Dzz&O%m17pa19db(er}C zUId1a4#I+Ou8E1MU$g=zo%g7K(=0Pn$)Rk z<4T2u<0rD)*j+tcy2XvY+0 z0d2pqm4)4lDewsAGThQi{2Kc3&C=|OQF!vOd#WB_`4gG3@inh-4>BoL!&#ij8bw7? zqjFRDaQz!J-YGitV4}$*$hg`vv%N)@#UdzHFI2E<&_@0Uw@h_ZHf}7)G;_NUD3@18 zH5;EtugNT0*RXVK*by>WS>jaDDfe!A61Da=VpIK?mcp^W?!1S2oah^wowRnrYjl~`lgP-mv$?yb6{{S55CCu{R z$9;`dyf0Y>uM1=XSl_$01Lc1Iy68IosWN8Q9Op=~I(F<0+_kKfgC*JggjxNgK6 z-3gQm6;sm?J&;bYe&(dx4BEjvq}b`OT^RqF$J4enP1YkeBK#>l1@-K`ajbn05`0J?0daOtnzh@l3^=BkedW1EahZlRp;`j*CaT;-21&f2wU z+Nh-gc4I36Cw+;3UAc<%ySb`#+c@5y ze~en&bYV|kn?Cn|@fqmGxgfz}U!98$=drjAkMi`43I4R%&H0GKEgx-=7PF}y`+j>r zg&JF`jomnu2G{%QV~Gf_-1gx<3Ky=Md9Q3VnK=;;u0lyTBCuf^aUi?+1+`4lLE6ZK zT#(Bf`5rmr(tgTbIt?yA@y`(Ar=f>-aZ}T~>G32EM%XyFvhn&@PWCm#-<&ApLDCXT zD#(9m|V(OOo7PmE@`vD4$S5;+9IQm19dd zvMEU`)E1_F+0o0-z>YCWqg0u8ciIknU#{q02{~YX)gc_u;8;i233D66pf(IkTDxeN zL=4z2)?S$TV9=ORVr&AkZMl<4tTh(v;Ix1{`pPVqI3n2ci&4Dg+W|N8TBUfZ*WeLF zqCH_1Q0W&f9T$lx3CFJ$o@Lz$99 zW!G&@zFHxTaP!o#z^~xgF|(vrHz8R_r9eo;TX9}2ZyjslrtH=%6O)?1?cL&BT(Amp zTGFU1%%#xl&6sH-UIJk_PGk_McFn7=%yd6tAjm|lnmr8bE2le3I~L{0(ffo}TQjyo zHZZI{-}{E4ohYTlZaS$blB!h$Jq^Rf#(ch}@S+Ww&$b);8+>g84IJcLU%B-W?+IY& zslcZIR>+U4v3O9RFEW;8NpCM0w1ROG84=WpKxQ^R`{=0MZCubg3st z48AyJNEvyxn-jCPTlTwp4EKvyEwD3e%kpdY?^BH0!3n6Eb57_L%J1=a*3>|k68A}v zaW`*4YitylfD}ua8V)vb79)N_Ixw_mpp}yJGbNu+5YYOP9K-7nf*jA1#<^rb4#AcS zKg%zCI)7cotx}L&J8Bqo8O1b0q;B1J#B5N5Z$Zq=wX~nQFgUfAE{@u0+EnmK{1hg> zC{vMfFLD;L8b4L+B51&LCm|scVLPe6h02rws@kGv@R+#IqE8>Xn8i|vRq_Z`V;x6F zNeot$1Zsu`lLS92QlLWF54za6vOEKGYQMdX($0JN*cjG7HP&qZ#3+bEN$8O_PfeAb z0R5;=zXac2IZ?fxu59?Nka;1lKm|;0)6|#RxkD05P5qz;*AL@ig!+f=lW5^Jbag%2 z%9@iM0ph$WFlxS!`p31t92z~TB}P-*CS+1Oo_g;7`6k(Jyj8m8U|Q3Sh7o-Icp4kV zK}%qri5>?%IPfamXIZ8pXbm-#{ytiam<{a5A+3dVP^xz!Pvirsq7Btv?*d7eYgx7q zWFxrzb3-%^lDgMc=Vl7^={=VDEKabTG?VWqOngE`Kt7hs236QKidsoeeUQ_^FzsXjprCDd@pW25rNx#6x&L6ZEpoX9Ffzv@olnH3rGOSW( zG-D|cV0Q~qJ>-L}NIyT?T-+x+wU%;+_GY{>t(l9dI%Ximm+Kmwhee;FK$%{dnF;C% zFjM2&$W68Sz#d*wtfX?*WIOXwT;P6NUw}IHdk|)fw*YnGa0rHx#paG!m=Y6GkS4VX zX`T$4eW9k1W!=q8!(#8A9h67fw))k_G)Q9~Q1e3f`aV@kbcSv7!priDUN}gX(iXTy zr$|kU0Vn%*ylmyDCO&G0Z3g>%JeEPFAW!5*H2Ydl>39w3W+gEUjL&vrRs(xGP{(ze zy7EMWF14@Qh>X>st8_029||TP0>7SG9on_xxeR2Iam3G~Em$}aGsNt$iES9zFa<3W zxtOF*!G@=PhfHO!=9pVPXMUVi30WmkPoy$02w}&6A7mF)G6-`~EVq5CwD2`9Zu`kd)52``#V zNSb`9dG~8(dooi1*-aSMf!fun7Sc`-C$-E(3BoSC$2kKrVcI!&yC*+ff2+C-@!AT_ zsvlAIV+%bRDfd{R*TMF><1&_a%@yZ0G0lg2K;F>7b+7A6pv3-S7qWIgx+Z?dt8}|S z>Qbb6x(+^aoV7FQ!Ph8|RUA6vXWQH*1$GJC+wXLXizNIc9p2yLzw9 z0=MdQ!{NnOwIICJc8!+Jp!zG}**r#E!<}&Te&}|B4q;U57$+pQI^}{qj669zMMe_I z&z0uUCqG%YwtUc8HVN7?0GHpu=bL7&{C>hcd5d(iFV{I5c~jpX&!(a{yS*4MEoYXh z*X4|Y@RVfn;piRm-C%b@{0R;aXrjBtvx^HO;6(>i*RnoG0Rtcd25BT6edxTNOgUAOjn zJ2)l{ipj8IP$KID2}*#F=M%^n&=bA0tY98@+2I+7~A&T-tw%W#3GV>GTmkHaqftl)#+E zMU*P(Rjo>8%P@_@#UNq(_L{}j(&-@1iY0TRizhiATJrnvwSH0v>lYfCI2ex^><3$q znzZgpW0JlQx?JB#0^^s-Js1}}wKh6f>(e%NrMwS`Q(FhazkZb|uyB@d%_9)_xb$6T zS*#-Bn)9gmobhAtvBmL+9H-+0_0US?g6^TOvE8f3v=z3o%NcPjOaf{5EMRnn(_z8- z$|m0D$FTU zDy;21v-#0i)9%_bZ7eo6B9@Q@&XprR&oKl4m>zIj-fiRy4Dqy@VVVs?rscG| zmzaDQ%>AQTi<^vYCmv#KOTd@l7#2VIpsj?nm_WfRZzJako`^uU%Nt3e;cU*y*|$7W zLm%fX#i_*HoUXu!NI$ey>BA<5HQB=|nRAwK!$L#n-Qz;~`zACig0PhAq#^5QS<8L2 zS3A+8%vbVMa7LOtTEM?55apt(DcWh#L}R^P2AY*c8B}Cx=6OFAdMPj1f>k3#^#+Hk z6uW1WJW&RlBRh*1DLb7mJ+KO>!t^t8hX1#_Wk`gjDio9)9IGbyCAGI4DJ~orK+YRv znjxRMtshZQHc$#Y-<-JOV6g^Cr@odj&Xw5B(FmI)*qJ9NHmIz_r{t)TxyB`L-%q5l ztzHgD;S6cw?7Atg*6E1!c6*gPRCb%t7D%z<(xm+K{%EJNiI2N0l8ud0Ch@_av_RW? zIr!nO4dL5466WslE6MsfMss7<)-S!e)2@r2o=7_W)OO`~CwklRWzHTfpB)_HYwgz=BzLhgZ9S<{nLBOwOIgJU=94uj6r!m>Xyn9>&xP+=5!zG_*yEoRgM0`aYts z^)&8(>z5C-QQ*o_s(8E4*?AX#S^0)aqB)OTyX>4BMy8h(cHjA8ji1PRlox@jB*1n? zDIfyDjzeg91Ao(;Q;KE@zei$}>EnrF6I}q&Xd=~&$WdDsyH0H7fJX|E+O~%LS*7^Q zYzZ4`pBdY{b7u72gZm6^5~O-57HwzwAz{)NvVaowo`X02tL3PpgLjwA`^i9F^vSpN zAqH3mRjG8VeJNHZ(1{%!XqC+)Z%D}58Qel{_weSEHoygT9pN@i zi=G;!Vj6XQk2tuJC>lza%ywz|`f7TIz*EN2Gdt!s199Dr4Tfd_%~fu8gXo~|ogt5Q zlEy_CXEe^BgsYM^o@L?s33WM14}7^T(kqohOX_iN@U?u;$l|rAvn{rwy>!yfZw13U zB@X9)qt&4;(C6dP?yRsoTMI!j-f1KC!<%~i1}u7yLXYn)(#a;Z6~r>hp~kfP));mi zcG%kdaB9H)z9M=H!f>kM->fTjRVOELNwh1amgKQT=I8J66kI)u_?0@$$~5f`u%;zl zC?pkr^p2Fe=J~WK%4ItSzKA+QHqJ@~m|Cduv=Q&-P8I5rQ-#G@bYH}YJr zUS(~(w|vKyU(T(*py}jTUp%I%{2!W!K(i$uvotcPjVddW z8_5HKY!oBCwGZcs-q`4Yt`Zk~>K?mcxg51wkZlX5e#B08I75F7#dgn5yf&Hrp`*%$ zQ;_Qg>TYRzBe$x=T(@WI9SC!ReSas9vDm(yslQjBJZde5z8GDU``r|N(MHcxNopGr z_}u39W_zwWDL*XYYt>#Xo!9kL#97|EAGyGBcRXtLTd59x%m=3i zL^9joWYA)HfL15l9%H?q`$mY27!<9$7GH(kxb%MV>`}hR4a?+*LH6aR{dzrX@?6X4 z3e`9L;cjqYb`cJmophbm(OX0b)!AFG?5`c#zLagzMW~o)?-!@e80lvk!p#&CD8u5_r&wp4O0zQ>y!k5U$h_K;rWGk=U)zX!#@Q%|9g*A zWx)qS1?fq6X<$mQTB$#3g;;5tHOYuAh;YKSBz%il3Ui6fPRv#v62SsrCdMRTav)Sg zTq1WOu&@v$Ey;@^+_!)cf|w_X<@RC>!=~+A1-65O0bOFYiH-)abINwZvFB;hJjL_$ z(9iScmUdMp2O$WW!520Hd0Q^Yj?DK%YgJD^ez$Z^?@9@Ab-=KgW@n8nC&88)TDC+E zlJM)L3r+ZJfZW_T$;Imq*#2<(j+FIk8ls7)WJ6CjUu#r5PoXxQs4b)mZza<8=v{o)VlLRM<9yw^0En#tXAj`Sylxvki{<1DPe^ zhjHwx^;c8tb?Vr$6ZB;$Ff$+3(*oinbwpN-#F)bTsXq@Sm?43MC#jQ~`F|twI=7oC zH4TJtu#;ngRA|Y~w5N=UfMZi?s0%ZmKUFTAye&6Y*y-%c1oD3yQ%IF2q2385Zl+=> zfz=o`Bedy|U;oxbyb^rB9ixG{Gb-{h$U0hVe`J;{ql!s_OJ_>>eoQn(G6h7+b^P48 zG<=Wg2;xGD-+d@UMZ!c;0>#3nws$9kIDkK13IfloGT@s14AY>&>>^#>`PT7GV$2Hp zN<{bN*ztlZu_%W=&3+=#3bE(mka6VoHEs~0BjZ$+=0`a@R$iaW)6>wp2w)=v2@|2d z%?34!+iOc5S@;AAC4hELWLH56RGxo4jw8MDMU0Wk2k_G}=Vo(>eRFo(g3@HjG|`H3 zm8b*dK=moM*oB<)*A$M9!!5o~4U``e)wxavm@O_R(`P|u%9^LGi(_%IF<6o;NLp*0 zKsfZ0#24GT8(G`i4UvoMh$^;kOhl?`0yNiyrC#HJH=tqOH^T_d<2Z+ zeN>Y9Zn!X4*DMCK^o75Zk2621bdmV7Rx@AX^alBG4%~;G_vUoxhfhFRlR&+3WwF^T zaL)8xPq|wCZoNT^>3J0K?e{J-kl+hu2rZI>CUv#-z&u@`hjeb+bBZ>bcciQVZ{SbW zez04s9oFEgc8Z+Kp{XFX`MVf-s&w9*dx7wLen(_@y34}Qz@&`$2+osqfxz4&d}{Ql z*g1ag00Gu+$C`0avds{Q65BfGsu9`_`dML*rX~hyWIe$T>CsPRoLIr%MTk3pJ^2zH1qub1MBzPG}PO;Wmav9w%F7?%l=xIf#LlP`! z_Nw;xBQY9anH5-c8A4mME}?{iewjz(Sq-29r{fV;Fc>fv%0!W@(+{={Xl-sJ6aMoc z)9Q+$bchoTGTyWU_oI19!)bD=IG&OImfy;VxNXoIO2hYEfO~MkE#IXTK(~?Z&!ae! zl8z{D&2PC$Q*OBC(rS~-*-GHNJ6AC$@eve>LB@Iq;jbBZj`wk4|LGogE||Ie=M5g= z9d`uYQ1^Sr_q2wmZE>w2WG)!F%^KiqyaDtIAct?}D~JP4shTJy5Bg+-(EA8aXaxbd~BKMtTf2iQ69jD1o* zZF9*S3!v-TdqwK$%&?91Sh2=e63;X0Lci@n7y3XOu2ofyL9^-I767eHESAq{m+@*r zbVDx!FQ|AjT;!bYsXv8ilQjy~Chiu&HNhFXt3R_6kMC8~ChEFqG@MWu#1Q1#=~#ix zrkHpJre_?#r=N0wv`-7cHHqU`phJX2M_^{H0~{VP79Dv{6YP)oA1&TSfKPEPZn2)G z9o{U1huZBLL;Tp_0OYw@+9z(jkrwIGdUrOhKJUbwy?WBt zlIK)*K0lQCY0qZ!$%1?3A#-S70F#YyUnmJF*`xx?aH5;gE5pe-15w)EB#nuf6B*c~ z8Z25NtY%6Wlb)bUA$w%HKs5$!Z*W?YKV-lE0@w^{4vw;J>=rn?u!rv$&eM+rpU6rc=j9>N2Op+C{D^mospMCjF2ZGhe4eADA#skp2EA26%p3Ex9wHW8l&Y@HX z$Qv)mHM}4*@M*#*ll5^hE9M^=q~eyWEai*P;4z<9ZYy!SlNE5nlc7gm;M&Q zKhKE4d*%A>^m0R?{N}y|i6i^k>^n4(wzKvlQeHq{l&JuFD~sTsdhs`(?lFK@Q{pU~ zb!M3c@*3IwN1RUOVjY5>uT+s-2QLWY z4T2>fiSn>>Fob+%B868-v9D@AfWr#M8eM6w#eAlhc#zk6jkLxGBGk`E3$!A@*am!R zy>29&ptYK6>cvP`b!syNp)Q$0UOW|-O@)8!?94GOYF_}+zlW%fCEl|Tep_zx05g6q z>tp47e-&R*hSNe{6{H!mL?+j$c^TXT{C&@T-xIaesNCl05 z9SLb@q&mSb)I{VXMaiWa3PWj=Ed!>*GwUe;^|uk=Pz$njNnfFY^MM>E?zqhf6^{}0 zx&~~dA5#}1ig~7HvOQ#;d9JZBeEQ+}-~v$at`m!(ai z$w(H&mWCC~;PQ1$%iuz3`>dWeb3_p}X>L2LK%2l59Tyc}4m0>9A!8rhoU3m>i2+hl zx?*qs*c^j}+WPs>&v1%1Ko8_ivAGIn@QK7A`hDz-Emkcgv2@wTbYhkiwX2l=xz*XG zaiNg+j4F-I>9v+LjosI-QECrtKjp&0T@xIMKVr+&)gyb4@b3y?2CA?=ooN zT#;rU86WLh(e@#mF*rk(NV-qSIZyr z$6!ZUmzD)%yO-ot`rw3rp6?*_l*@Z*IB0xn4|BGPWHNc-1ZUnNSMWmDh=EzWJRP`) zl%d%J613oXzh5;VY^XWJi{lB`f#u+ThvtP7 zq(HK<4>tw(=yzSBWtYO}XI`S1pMBe3!jFxBHIuwJ(@%zdQFi1Q_hU2eDuHqXte7Ki zOV55H2D6u#4oTfr7|u*3p75KF&jaLEDpxk!4*bhPc%mpfj)Us3XIG3 zIKMX^s^1wt8YK7Ky^UOG=w!o5e7W-<&c|fw2{;Q11vm@J{)@N3-p1U>!0~sKWHaL= zWV(0}1IIyt1p%=_-Fe5Kfzc71wg}`RDDntVZv;4!=&XXF-$48jS0Sc;eDy@Sg;+{A zFStc{dXT}kcIjMXb4F7MbX~2%i;UrBxm%qmLKb|2=?uPr00-$MEUIGR5+JG2l2Nq` zkM{{1RO_R)+8oQ6x&-^kCj)W8Z}TJjS*Wm4>hf+4#VJP)OBaDF%3pms7DclusBUw} z{ND#!*I6h85g6DzNvdAmnwWY{&+!KZM4DGzeHI?MR@+~|su0{y-5-nICz_MIT_#FE zm<5f3zlaKq!XyvY3H`9s&T};z!cK}G%;~!rpzk9-6L}4Rg7vXtKFsl}@sT#U#7)x- z7UWue5sa$R>N&b{J61&gvKcKlozH*;OjoDR+elkh|4bJ!_3AZNMOu?n9&|L>OTD78 z^i->ah_Mqc|Ev)KNDzfu1P3grBIM#%`QZqj5W{qu(HocQhjyS;UINoP`{J+DvV?|1 z_sw6Yr3z6%e7JKVDY<$P=M)dbk@~Yw9|2!Cw!io3%j92wTD!c^e9Vj+7VqXo3>u#= zv#M{HHJ=e$X5vQ>>ML?E8#UlmvJgTnb73{PSPTf*0)mcj6C z{KsfUbDK|F$E(k;ER%8HMdDi`=BfpZzP3cl5yJHu;v^o2FkHNk;cXc17tL8T!CsYI zfeZ6sw@;8ia|mY_AXjCS?kUfxdjDB28)~Tz1dGE|{VfBS9`0m2!m1yG?hR})er^pl4c@9Aq+|}ZlDaHL)K$O| z%9Jp-imI-Id0|(d5{v~w6mx)tUKfbuVD`xNt04Mry%M+jXzE>4(TBsx#&=@wT2Vh) z1yeEY&~17>0%P(eHP0HB^|7C+WJxQBTG$uyOWY@iDloRIb-Cf!p<{WQHR!422#F34 zG`v|#CJ^G}y9U*7jgTlD{D&y$Iv{6&PYG>{Ixg$pGk?lWrE#PJ8KunQC@}^6OP!|< zS;}p3to{S|uZz%kKe|;A0bL0XxPB&Q{J(9PyX`+Kr`k~r2}yP^ND{8!v7Q1&vtk& z2Y}l@J@{|2`oA%sxvM9i0V+8IXrZ4;tey)d;LZI70Kbim<4=WoTPZy=Yd|34v#$Kh zx|#YJ8s`J>W&jt#GcMpx84w2Z3ur-rK7gf-p5cE)=w1R2*|0mj12hvapuUWM0b~dG zMg9p8FmAZI@i{q~0@QuY44&mMUNXd7z>U58shA3o`p5eVLpq>+{(<3->DWuSFVZwC zxd50Uz(w~LxC4}bgag#q#NNokK@yNc+Q|Ap!u>Ddy+df>v;j@I12CDNN9do+0^n8p zMQs7X#+FVF0C5muGfN{r0|Nkql%BQT|K(DDNdR2pzM=_ea5+GO|J67`05AV92t@4l z0Qno0078PIHdaQGHZ~Scw!dzgqjK~3B7kf>BcP__&lLyU(cu3B^uLo%{j|Mb0NR)tkeT7Hcwp4O# z)yzu>cvG(d9~0a^)eZ;;%3ksk@F&1eEBje~ zW+-_s)&RgiweQc!otF>4%vbXKaOU41{!hw?|2`Ld3I8$&#WOsq>EG)1ANb!{N4z9@ zsU!bPG-~-bqCeIDzo^Q;gnucB{tRzm{ZH^Orphm2U+REA!*<*J6YQV83@&xoDl%#wnl5qcBqCcAF-vX5{30}(oJrnSH z{RY85hylK2dMOh2%oO1J8%)0?8TOL%rS8)+CsDv}aQ>4D)Jv+DLK)9gI^n-T^$)Tc zFPUD75qJm!Y-KBqj;JP4dV4 z`X{lGmn<)1IGz330}s}Jrjtf{(lnuuNHe5(ezA(pYa=1|Ff-LhPFK8 zyJh_b{yzu0yll6ZkpRzRjezyYivjyjW7QwO;@6X`m;2Apn2EK2!~7S}-*=;5*7K$B z`x(=!^?zgj(-`&ApZJXI09aDLXaT@<;CH=?fBOY5d|b~wBA@@p^K#nxr`)?i?SqTupI_PJ(A3cx`z~9mX_*)>L F{|7XC?P&l2 literal 0 HcmV?d00001 diff --git a/Crane/gradle/wrapper/gradle-wrapper.properties b/Crane/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000..4c476a8d49 --- /dev/null +++ b/Crane/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Mon Jun 15 11:35:59 CEST 2020 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-rc-1-bin.zip diff --git a/Crane/gradlew b/Crane/gradlew new file mode 100755 index 0000000000..cccdd3d517 --- /dev/null +++ b/Crane/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/Crane/gradlew.bat b/Crane/gradlew.bat new file mode 100644 index 0000000000..e95643d6a2 --- /dev/null +++ b/Crane/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/Crane/settings.gradle b/Crane/settings.gradle new file mode 100644 index 0000000000..e7b4def49c --- /dev/null +++ b/Crane/settings.gradle @@ -0,0 +1 @@ +include ':app'