From f07019d01f23768308140fd371e98c020b0c4f4e Mon Sep 17 00:00:00 2001 From: google-automerger Date: Thu, 15 Feb 2018 16:35:34 -0800 Subject: [PATCH] Auto-update --- Application/build.gradle | 14 +- LICENSE | 444 ------------------ README.md | 4 +- gradle/wrapper/gradle-wrapper.properties | 2 +- .../.google/packaging.yaml | 11 +- kotlinApp/Application/build.gradle | 36 ++ .../Application/src/main/AndroidManifest.xml | 36 ++ .../android/cardview/CardViewActivity.kt | 37 ++ .../android/cardview/CardViewFragment.kt | 82 ++++ .../main/res/drawable-hdpi/ic_launcher.png | Bin 0 -> 4500 bytes .../src/main/res/drawable-hdpi/tile.9.png | Bin 0 -> 196 bytes .../main/res/drawable-mdpi/ic_launcher.png | Bin 0 -> 2857 bytes .../main/res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 6459 bytes .../main/res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 11412 bytes .../main/res/layout/activity_card_view.xml | 28 ++ .../main/res/layout/fragment_card_view.xml | 91 ++++ .../src/main/res/values/colors.xml | 20 + .../src/main/res/values/dimens.xml | 27 ++ .../src/main/res/values/strings.xml | 39 ++ .../src/main/res/values/styles.xml | 20 + .../example/android/cardview/SampleTests.kt | 69 +++ kotlinApp/CONTRIB.md | 35 ++ kotlinApp/README.md | 50 ++ kotlinApp/build.gradle | 32 ++ kotlinApp/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 49896 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + kotlinApp/gradlew | 164 +++++++ kotlinApp/gradlew.bat | 90 ++++ kotlinApp/settings.gradle | 1 + 29 files changed, 876 insertions(+), 462 deletions(-) rename packaging.yaml => kotlinApp/.google/packaging.yaml (53%) create mode 100644 kotlinApp/Application/build.gradle create mode 100644 kotlinApp/Application/src/main/AndroidManifest.xml create mode 100644 kotlinApp/Application/src/main/java/com/example/android/cardview/CardViewActivity.kt create mode 100644 kotlinApp/Application/src/main/java/com/example/android/cardview/CardViewFragment.kt create mode 100644 kotlinApp/Application/src/main/res/drawable-hdpi/ic_launcher.png create mode 100644 kotlinApp/Application/src/main/res/drawable-hdpi/tile.9.png create mode 100644 kotlinApp/Application/src/main/res/drawable-mdpi/ic_launcher.png create mode 100644 kotlinApp/Application/src/main/res/drawable-xhdpi/ic_launcher.png create mode 100644 kotlinApp/Application/src/main/res/drawable-xxhdpi/ic_launcher.png create mode 100644 kotlinApp/Application/src/main/res/layout/activity_card_view.xml create mode 100644 kotlinApp/Application/src/main/res/layout/fragment_card_view.xml create mode 100644 kotlinApp/Application/src/main/res/values/colors.xml create mode 100644 kotlinApp/Application/src/main/res/values/dimens.xml create mode 100644 kotlinApp/Application/src/main/res/values/strings.xml create mode 100644 kotlinApp/Application/src/main/res/values/styles.xml create mode 100644 kotlinApp/Application/tests/src/com/example/android/cardview/SampleTests.kt create mode 100644 kotlinApp/CONTRIB.md create mode 100644 kotlinApp/README.md create mode 100644 kotlinApp/build.gradle create mode 100644 kotlinApp/gradle/wrapper/gradle-wrapper.jar create mode 100644 kotlinApp/gradle/wrapper/gradle-wrapper.properties create mode 100755 kotlinApp/gradlew create mode 100644 kotlinApp/gradlew.bat create mode 100644 kotlinApp/settings.gradle diff --git a/Application/build.gradle b/Application/build.gradle index 096ee9c..d13ca6b 100644 --- a/Application/build.gradle +++ b/Application/build.gradle @@ -2,10 +2,11 @@ buildscript { repositories { jcenter() + google() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.3' + classpath 'com.android.tools.build:gradle:3.0.1' } } @@ -13,9 +14,7 @@ apply plugin: 'com.android.application' repositories { jcenter() - maven { - url 'https://maven.google.com' - } + google() } dependencies { @@ -31,14 +30,13 @@ List dirs = [ 'template'] // boilerplate code that is generated by the sample template process android { - - compileSdkVersion 26 + compileSdkVersion 27 - buildToolsVersion "26.0.1" + buildToolsVersion "27.0.2" defaultConfig { minSdkVersion 7 - targetSdkVersion 26 + targetSdkVersion 27 } compileOptions { diff --git a/LICENSE b/LICENSE index 4f22946..d5cf8f3 100644 --- a/LICENSE +++ b/LICENSE @@ -201,447 +201,3 @@ Apache License 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. - -All image and audio files (including *.png, *.jpg, *.svg, *.mp3, *.wav -and *.ogg) are licensed under the CC-BY-NC license. All other files are -licensed under the Apache 2 license. - -CC-BY-NC License ----------------- - -Attribution-NonCommercial-ShareAlike 4.0 International - -======================================================================= - -Creative Commons Corporation ("Creative Commons") is not a law firm and -does not provide legal services or legal advice. Distribution of -Creative Commons public licenses does not create a lawyer-client or -other relationship. Creative Commons makes its licenses and related -information available on an "as-is" basis. Creative Commons gives no -warranties regarding its licenses, any material licensed under their -terms and conditions, or any related information. Creative Commons -disclaims all liability for damages resulting from their use to the -fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and -conditions that creators and other rights holders may use to share -original works of authorship and other material subject to copyright -and certain other rights specified in the public license below. The -following considerations are for informational purposes only, are not -exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees - -======================================================================= - -Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International -Public License - -By exercising the Licensed Rights (defined below), You accept and agree -to be bound by the terms and conditions of this Creative Commons -Attribution-NonCommercial-ShareAlike 4.0 International Public License -("Public License"). To the extent this Public License may be -interpreted as a contract, You are granted the Licensed Rights in -consideration of Your acceptance of these terms and conditions, and the -Licensor grants You such rights in consideration of benefits the -Licensor receives from making the Licensed Material available under -these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - - c. BY-NC-SA Compatible License means a license listed at - creativecommons.org/compatiblelicenses, approved by Creative - Commons as essentially the equivalent of this Public License. - - d. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - - e. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - - f. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - - g. License Elements means the license attributes listed in the name - of a Creative Commons Public License. The License Elements of this - Public License are Attribution, NonCommercial, and ShareAlike. - - h. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - - i. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - - j. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - - k. NonCommercial means not primarily intended for or directed towards - commercial advantage or monetary compensation. For purposes of - this Public License, the exchange of the Licensed Material for - other material subject to Copyright and Similar Rights by digital - file-sharing or similar means is NonCommercial provided there is - no payment of monetary compensation in connection with the - exchange. - - l. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - - m. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - - n. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - - -Section 2 -- Scope. - - a. License grant. - - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - - a. reproduce and Share the Licensed Material, in whole or - in part, for NonCommercial purposes only; and - - b. produce, reproduce, and Share Adapted Material for - NonCommercial purposes only. - - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - - 3. Term. The term of this Public License is specified in Section - 6(a). - - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - - 5. Downstream recipients. - - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - - b. Additional offer from the Licensor -- Adapted Material. - Every recipient of Adapted Material from You - automatically receives an offer from the Licensor to - exercise the Licensed Rights in the Adapted Material - under the conditions of the Adapter's License You apply. - - c. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - - b. Other rights. - - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - - 2. Patent and trademark rights are not licensed under this - Public License. - - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties, including when - the Licensed Material is used other than for NonCommercial - purposes. - - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the -following conditions. - - a. Attribution. - - 1. If You Share the Licensed Material (including in modified - form), You must: - - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - - ii. a copyright notice; - - iii. a notice that refers to this Public License; - - iv. a notice that refers to the disclaimer of - warranties; - - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - - b. ShareAlike. - - In addition to the conditions in Section 3(a), if You Share - Adapted Material You produce, the following conditions also apply. - - 1. The Adapter's License You apply must be a Creative Commons - license with the same License Elements, this version or - later, or a BY-NC-SA Compatible License. - - 2. You must include the text of, or the URI or hyperlink to, the - Adapter's License You apply. You may satisfy this condition - in any reasonable manner based on the medium, means, and - context in which You Share Adapted Material. - - 3. You may not offer or impose any additional or different terms - or conditions on, or apply any Effective Technological - Measures to, Adapted Material that restrict exercise of the - rights granted under the Adapter's License You apply. - - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that -apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database for NonCommercial purposes - only; - - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material, - including for purposes of Section 3(b); and - - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. - -For the avoidance of doubt, this Section 4 supplements and does not -replace Your obligations under this Public License where the Licensed -Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - - 2. upon express reinstatement by the Licensor. - - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. - -======================================================================= - -Creative Commons is not a party to its public licenses. -Notwithstanding, Creative Commons may elect to apply one of its public -licenses to material it publishes and in those instances will be -considered the "Licensor." Except for the limited purpose of indicating -that material is shared under a Creative Commons public license or as -otherwise permitted by the Creative Commons policies published at -creativecommons.org/policies, Creative Commons does not authorize the -use of the trademark "Creative Commons" or any other trademark or logo -of Creative Commons without its prior written consent including, -without limitation, in connection with any unauthorized modifications -to any of its public licenses or any other arrangements, -understandings, or agreements concerning use of licensed material. For -the avoidance of doubt, this paragraph does not form part of the public -licenses. - -Creative Commons may be contacted at creativecommons.org. - diff --git a/README.md b/README.md index 041030d..d2212b6 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,8 @@ Android 5.0. Pre-requisites -------------- -- Android SDK 26 -- Android Build Tools v26.0.1 +- Android SDK 27 +- Android Build Tools v27.0.2 - Android Support Repository Getting Started diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 76ffa7b..349ecb6 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.4.1-all.zip \ No newline at end of file +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip \ No newline at end of file diff --git a/packaging.yaml b/kotlinApp/.google/packaging.yaml similarity index 53% rename from packaging.yaml rename to kotlinApp/.google/packaging.yaml index 1dbd957..97cd78a 100644 --- a/packaging.yaml +++ b/kotlinApp/.google/packaging.yaml @@ -1,3 +1,4 @@ + # GOOGLE SAMPLE PACKAGING DATA # # This file is used by Google as part of our samples packaging process. @@ -6,11 +7,7 @@ status: PUBLISHED technologies: [Android] categories: [UI] -languages: [Java] +languages: [Kotlin] solutions: [Mobile] -github: googlesamples/android-CardView -level: INTERMEDIATE -icon: CardViewSample/src/main/res/drawable-xxhdpi/ic_launcher.png -doc_refs: - - android:preview/material/ui-widgets.html -license: apache2 +github: android-CardView +license: apache2 diff --git a/kotlinApp/Application/build.gradle b/kotlinApp/Application/build.gradle new file mode 100644 index 0000000..f9ba008 --- /dev/null +++ b/kotlinApp/Application/build.gradle @@ -0,0 +1,36 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' + +android { + compileSdkVersion rootProject.ext.compileSdkVersion + defaultConfig { + applicationId "com.example.android.cardview" + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + versionCode 1 + versionName "1.0" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + + sourceSets { + main { + java.srcDirs "src/main/java" + res.srcDirs "src/main/res" + } + androidTest.setRoot('tests') + androidTest.java.srcDirs = ['tests/src'] + } +} + +dependencies { + implementation'com.android.support:cardview-v7:27.0.2' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$rootProject.ext.kotlinVersion" + androidTestImplementation "com.android.support.test.espresso:espresso-core:$rootProject.ext.espressoVersion" +} diff --git a/kotlinApp/Application/src/main/AndroidManifest.xml b/kotlinApp/Application/src/main/AndroidManifest.xml new file mode 100644 index 0000000..7d1145c --- /dev/null +++ b/kotlinApp/Application/src/main/AndroidManifest.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/kotlinApp/Application/src/main/java/com/example/android/cardview/CardViewActivity.kt b/kotlinApp/Application/src/main/java/com/example/android/cardview/CardViewActivity.kt new file mode 100644 index 0000000..4c90f0e --- /dev/null +++ b/kotlinApp/Application/src/main/java/com/example/android/cardview/CardViewActivity.kt @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * 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 com.example.android.cardview + +import android.app.Activity +import android.os.Bundle + +/** + * Launcher Activity for the CardView sample app. + */ +class CardViewActivity : Activity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_card_view) + if (savedInstanceState == null) { + fragmentManager.beginTransaction() + .add(R.id.container, CardViewFragment()) + .commit() + } + } + +} diff --git a/kotlinApp/Application/src/main/java/com/example/android/cardview/CardViewFragment.kt b/kotlinApp/Application/src/main/java/com/example/android/cardview/CardViewFragment.kt new file mode 100644 index 0000000..6efb5aa --- /dev/null +++ b/kotlinApp/Application/src/main/java/com/example/android/cardview/CardViewFragment.kt @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * 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 com.example.android.cardview + +import android.app.Fragment +import android.os.Bundle +import android.support.annotation.VisibleForTesting +import android.support.v7.widget.CardView +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.SeekBar + +/** + * Fragment that demonstrates how to use [CardView]. + */ +class CardViewFragment : Fragment() { + + private val TAG = "CardViewFragment" + + // The [CardView] widget. + @VisibleForTesting lateinit var cardView: CardView + + // SeekBar that changes the cornerRadius attribute for the cardView widget. + @VisibleForTesting lateinit var radiusSeekBar: SeekBar + + // SeekBar that changes the Elevation attribute for the cardView widget. + @VisibleForTesting lateinit var elevationSeekBar: SeekBar + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + return inflater.inflate(R.layout.fragment_card_view, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + cardView = view.findViewById(R.id.cardview) + + radiusSeekBar = view.findViewById(R.id.cardview_radius_seekbar) + radiusSeekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { + override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { + Log.d(TAG, "SeekBar Radius progress: $progress") + cardView.radius = progress.toFloat() + } + + override fun onStartTrackingTouch(seekBar: SeekBar) = Unit // Do nothing + + override fun onStopTrackingTouch(seekBar: SeekBar) = Unit // Do nothing + }) + + elevationSeekBar = view.findViewById(R.id.cardview_elevation_seekbar) + elevationSeekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { + override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { + Log.d(TAG, "SeekBar Elevation progress : $progress") + cardView.elevation = progress.toFloat() + } + + override fun onStartTrackingTouch(seekBar: SeekBar) = Unit // Do nothing + + override fun onStopTrackingTouch(seekBar: SeekBar) = Unit // Do nothing + }) + } + +} diff --git a/kotlinApp/Application/src/main/res/drawable-hdpi/ic_launcher.png b/kotlinApp/Application/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..36f4db559fcc1ec43ea8f2eb2772b63b35b8da6c GIT binary patch literal 4500 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 me9@cfz{XV2&D3w7@AdyPM*ICx+@3f90000|5- literal 0 HcmV?d00001 diff --git a/kotlinApp/Application/src/main/res/drawable-hdpi/tile.9.png b/kotlinApp/Application/src/main/res/drawable-hdpi/tile.9.png new file mode 100644 index 0000000000000000000000000000000000000000..135862883e26eddce2b19db021adf62e10357ad0 GIT binary patch literal 196 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 Hu0mjfn`l*R literal 0 HcmV?d00001 diff --git a/kotlinApp/Application/src/main/res/drawable-xhdpi/ic_launcher.png b/kotlinApp/Application/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6464a93f17862cc9098d9f64009a49b79a05c1b1 GIT binary patch literal 6459 zcmV-B8N}v^P)RNklI^E1!T=7VvI!pl5%Jg2 zK}Y9zK}C;84k!Y$3j!ia2#}4ig?-8L-><4}cXhq)mzTVkgab6Ec(1#wtGn)Z?{{zA zs@I7VXSZsVKwP!n{p`)fSpce83C;p=7JzD&KsDd~tOcBk0Q|W0r_ph72~QnJ5Uvu4eyGbg!2HUN$C^Yizf7QH=1JCTx-(wH7?Ul0JTb8>Qa zo}$lwT0B;(R;}7lN3w$eNZqt)(~7!v>%vUVZZVbs`G8%WI(6zr&2A3@pcS3yO{Far z&{JHiN$*dK$2W52@e~%t(++lV4Ey|Dl+r#OH0vf{hps~{e5dMeJ90<0gY)t_+)(bT zW4emGhR?}QAHk>^PF2;A-Y=zx!+G6|D4`u3!6&v7I)Q>~@KH=B@22HI_H#){(fiE<5ORIh7plg54K5-!v*ssl=nSo;H6z1g(Ur1SW-vlK?~t zRUKntQa5xRB}DAUYk{($6XN1keGN)NJZ{IrSCZjl5=0-V3yMoh6cF+$ z)FzKufV`J1qiNJpkbdu!2Qv#0!nqj1TFiKL4(n>F1zV-87TM3>Ju^@Rv1tRXD zEDoTkHq@pq!Irpl1}9Wq1q=XE!iMIu<~zdH^^|%-+aV_fREXw#1WiKM;43hcBH$i; zTv`hq+xhSnEvdO8{fH;%^QhjJ&*^8)X7_5edwuB%X$pq0S@0$eDWS5km7sAQ3)se9ic~bObJn4!#=|OZaQFx zlBCaYoiWo7A7ia)Teqg@(im(h#E*NAitUGC-7Ij03iGo9LG!y7sOgAVi`<5WGA z<+TLULKGn0Fx1?KR(EfjBt~ACBK93C5})lTl$t)IZ3EG$cA}WNE?@kx=cq$N9Mv!_ zIZ+OT2sNMEsa617KjBY5<~YLCehyigcCat0hd%D>*hCCySx?N` zP#{+AJ}i&-Y+6_Rv2!!ADEFY4^V1$hKY+oc9=&f;kJpj9lvNSU_p=aK!`5gm;2cnp z?Q|ogADjQVoy$pp_nwQCh!uuu?N=gDeYxHXkZd=>Uh83_40mh!^e4so`6x&7;Ne1d4V{x`9)!mzdzO znll=JNo(>bdO70elB{UxidOZc^DWOdXY+2cFz28iv6=%i6<&60k|dtK7+C_fodtjZ zP)=J9-i)yT9BfxT=!z5s49;c{tsEuGa>7p|5;|i6@bdv|0VV*oDbl&7O#=!!lSPX< zH6oR}r`|E5pzn7b7XR70U+kuF1Ba$(qy>bFf&jo;hk}HtS0h0@PFjCn!`c-RynPXb z|JT*IBLC<~#~S=B;IxZ^g2n-G!Wl*wI+29)15pNpbX$kU;=d@>5X)@=`Gf!2Sm0za zyEmy5;sY3fSmuMG4nxgcPX znG@(n06b$j;g^3@;{ZD$7ikWt(niA301%W5vH_R?3m^bsF-eJW;^j+IMMAi#3YD4g zZegYgP_dXqo3VI@cFLucQ}PGkl+FdkDjRxjY6A}i0RZ@bNVB0qTJFvTxM}I2Y^V*u z46=av7ztD3t~Qr{5Ek=nXl2X?0D$3L+*AY{wug~2saty zanb=ZVbTz>fnx@W*c1kks9n1-v^SGhY zlKz@+PGNc{WQI@}`UuTx@%G%x9BBa%aB|If@ml|Op$hI7`RH1c*5ryUg~y!*6Rh>@ z2jr&|kUPV5FECI0Eal)4HwU)aPP_QZRf)tNKwltruqert)0Or90tQoMN z34A~8H|wgYPg)lg3jl%~uqo^y|KLP6(uXK2`mGNDs|u74KoV|f$EMCwM6bBR@Q_1V z?ug9v2RQvYrKpb;snNp4G><%?m+J$j&=e;CaOp+CX$#ucep~2v6t&~-ZqY4ENreSS z;dz&(1P#i994{XSeOyNXAjQnv(<^ess)EB3pxQJNzMlY)RAb0H647&ep2-(uXZBCK z!MAqb6@;Qx+weR)gpEIk^?277PUoLmo=rvs?9jZDlK{1?eB;x>c1dKL#1vO84VjmXpyam9= z1ORJrkmh@=K>8OKAU}G_z9&iw0syAw+g4Df&<*Za8XhOGvdskGNdiDwK%A&YVdy`v zOn1Ox5IhIM>=d3T7WXg8Qj4>kh{#=<$j5s%_X6<34|&eYI(w;NL}1X(Z0$!oIne^p z`kw>jPExOb zr7;0E8SzLh)r)qGu(TIhz~oC@3i`VSz!bh8-2^$|pyRpG0?>*8V8NLy+3dx(ewM(F znt|dv0N^hM0HX~6Bn@eg%P9%l3j7?h$MI^!Sn!I5)IkQM7lomJ?}MLfsckX=@KL5( zTPi6`53a&dk{u;E*XsMBoxFRyM;8UP1OSpcLKoHg3SA0Nv9=jGnU;XruF>6H3;4^j zonpDBpc-_u0kjIj(RyQ9qI1ytvW7y~!jqKocZ96In3+-A5_%H_yz(c z)YqjT0btYX)HM@d1=--HE(#`NyMDwuL?uwV(e?j{1@sf%0y9wh+2 z-*rfj1C*pq2OLQnf?)|tM<`2h)6{)ZlEoAQfQbaa|49pQX{RiI5D7>H(E`wn0iX^9 zal3b!xfd*^BOYX-E&v!~05EFF4zWyAP+g)Rj!yiXZREtHYRbV7{d#6HalAPY>q8VY zt)EME0N?{!?8|jLQ<(;MoZ|`Ss7+vYM+-nx0052DPT17^peVL_?to?2i_JhHtaeUpN2?a)X(X8`a=0H7&| z1L6W|ZZij>Ur2Zl!ZL+$!=R=YkR0!uJ8-OmredTt{N7~j)Pg#Cd4Se$pz zNjjS}QG4&5K61th-?3viudI67hhn|?upr@P5CbjLZ3X+G8k;K}7XDIKkrrT7A1 z025C8rGTw4G!y{E@x3V<`h0IU6)^??{Ib`{nwpb0W&{-!rrLEFti!PYKv_U|5X!1! zMnM2zq5(izLamDPn3bDL0I-GFlw*daQoAMC)(Sj*j8osJb0k^->c9dF4YswsEV{8R z2K#ps0OovbRS3AOd%z0+1s@O~R34m_2O!)tCII-+h@Vd|wcHOFNiS6HqF>3I=3ka@ zs^a_;1i(96R1_3MIYGjA=A1SCne=t+fgaJNB5Kc8?+Xe7fvHD*y3W#1^ZD3?^oz%V zt?N6^m4RVFvon_a#*XKB04iqu?<^FBP>uTb7y+lg%03|0$rpX_tXU|%pk9cuwbLxHnhMSIXYdFXBA-};H^Srcz3RnW)gFyl| z$A?8}0kvLTCQ}i90t_c?(;C#Z!HG6g$bKVW+d_f_&&R`Qy9tg7ieJJmM4%CZVgh*L z;Xct(P|X>ObS}v4b`ZatZ$6aog`?0Z2s}TbMl%4jK`CoMW`kw(J_}L3rqX)jVgL|M zn|kC808fq>5FG%CFMQ!zfT78FPaHd4KMi;2MPK7sgq3WwQ_Ln{+@VOgKLh~dfM0q- z3fLz_f#Y`KP1RNQz|`b?M}7HHztHwjr|8dvDg;0RU7NUM$&v^9FUX&1XDC^-ZMrbI zU9E=pE+n_PA0V1S_7ij@a{#vRO-=Lz#-u0~o(+gAZ2jU^OY7Zx=mlA1DSnjp?Nuom z{rdI88`JS3BlRm1WAp1X5NkAN&YXd_+;YoX^t~bq7$lQ3@p$R`@4tWV(4j-WqR!(5 zN9yf@db5R#eY}?Bg16s(`=M*Ez4p#CQDU*~^XH#`KKJgs?|zlq-AD!RRCA2b1^}FZ z1WE7q?b~0Nk&!WwUgVt|>jyI1OH52mZqT4XI_OAdAc;>89Xhn_#EBCJ!`-)WR z&By)3#*G^%ju|uNHB%_D@2XU!V^m<(9wn(Z2Rm)rv=kElCZeB45C#OfdiCmM5D-1& z4^;4`@gNIG{pOo*vg+5bFNJvI$Psbnl~=Z-`p$d#Eg?dY@Uxq4GiJ;f-?wkyJ_!j4 z;@Gicpu2qpLMO7IAn+;y54Xwc0wC^_Pd<6IO`A3kLJ$z*!Gi~n4Ie&y6bWM?Jzl1* zDV7vcDMa=F(7(U@ZEFw!Y}x4-TyVh^vu4ej+N4R7+Qr4i5(N6YIsdr+`s@Et$yVSC zWVHY=ckbMa($dmEA&HuL#1~(D@!|OK|89R3DC=&RM zwQAL33o6Ra&hCB39e1p$RCV`hygC4g|MJT(7qn>6VgRBZ0FalLS8&fg_hb|n7OtRY zM3hjLQ>=&up!;|UQ5&MYUKD1}B!}D#5fm(tqNqiK2M@j~4DD44HdPM52OoTJD|P%m z);<96#v5(dmH)9=P|x2Os=XQc{ux03|m!_cn6o z|E?5C2Q*rx08E)OC8>M&?i-pmZJG}Lh46p=`RC1~{g2V}t)+rcEhzFayATZkG9seV zovh%cE?v5GM9KsJkOgM0U%$TdqmMqS-icfVTa^Ov(MKPRZQHi(IE0-#dMP2^fBNgM zzy6H+x`j%l9ghY8h!uZ$;M}XPzIw>GapNWsCB3;iyrgCeU-Nqk5Zw06>}5ew{ma z{+33d@f>!3{PD-{PM$n@CiP+i75pWJ@^m&90HE&;sB|7ZdUOV5esAZ%fGnYed{ckQ zU@nP?l*2Sq6#&FjWU=&y8*b=*-g)P7z9*NmgBb+IDtb2jS-;?y{`)_C>cWK!vnaVH z9XUqA#OGxV#Qa*qpY3W*iMk%|yz|aX8k@94Sh{lMN-=-_{1u;m`e~nX&|-zKs&oKo zGU7g>o;h&5)KPKSWtX9IFH$)AE}}M->48LPNH)EsCZH;D>P<>#T&@MRX!GXHzmEa{o(b$i ze&7)rsSlxvlugv;6aoRtQfZme$_4ikhn%{k0>wdSj5f;~B1hT>S+6PpDAxm>X_e0cP|b*+1)!P%_z~~ygl86NrV$HMenl*_=<3^1wxQJ0hq9}+)rPv!`EntbRi5n9W z6ZctNHNip@G^oUAA|`?$O7Few`#-_13?|2Is|3aKpmj6s;|Ct9iTb`Wz|3(pt7p3zH=R*Is;|ZKpmj6 zs;|Ct5c- z?Amo#zdO{x_U+rZY}>x=B@4n*d%eQY_ z8_4TTI-a6KT(GQv-?3@?lBG+>3_5b)9kkabA4EQYpggUnO?%~E_ugx-$CVQK8kMg@ zZj+ViTc32Cq=s;hx;V{-?eaAUu_n1t;GtU1l+yvtj9{LhwZ`E z_dodCnL~#j^*cJ`Mgx&Ox_is;bzr92u2`{RcI(!y`((Y2dbwS<1~zQiu%L72&IiyP zuA_M~&G3!XlygqeqXvRB$ED>!k|006~4) z(cEp}!i95Ek6bVCxv7E1#>PGAW|z{u)~JwIfm+hqjx={)uwcP^pPSmL-)L$L^y$-Q zA1btj=2bMqq4omQ$^g`J-n@B#PCaV9z~`n0`t|F#Ki%vi0}!0)M1Z=_nlY8d;-{Y@yYZ$eA#Kv9A* zXx3COVLfG{Xibx#DXr6Mb-dY>He$B>nX*lrAo$y^wsF~JYMnS9ZPNQX=P?J9*P;$% z&d0}aoxSiX%sC7szDS(;k*N~8MLTVGl4L54YqoDQKk$dk@vdqUT`ZTyc9eJ5Z{5zp zOcS*oHBX5?XI~19Xd9moWl(b4HXN0HiSumbb*8rUwdp(m^!jtYM}IhJ2vfD1=4IGK zGy6cXCagIXLKFr+2=H{Gxh>6Dj|i*WUgewGrt0vr!TRsFlgh65v{`O$ z^M?wFa^bq|!Gg>Fc`$9}P#vHECM+ZR+CVeZCpHhH*q|A}FgW;)^(w^g|DV7At8QF% ztLp#FC{Li44Iru!@Y^(oQX*r{ct18}tT+r5ADh(-P}(;2m`1H~S_!Q!5a(lf_2n9% z)q(&`+9tEFDPsSq#*mZYOs?eyLoxkZ*HC0%qb?FK*VLFxH4Up(Lqnvmnw5kVhRqt6 z(U9s%Z39#=Z>(6feyh##X;Y`Jfy#V5{MawjPY%_w8W1r^1$|<^$Bo+%kFD&52SDxn z-~aL_As8BxCI%SYn7Cf{b+j*}ZriAo+HTB}Iyf!+OreB=0d&tBfx}cS&ZPm?&@xn! z-^Ra^z8SNTAV8AOh_9g=$~=^;0OqC{BDC)ss=qy7up#yH5rU(x5*$FPcqW9h0l*QKEf z9b+nMt`k65;M6`LG+OnvBaU-0;B(JEqC0JZ<7^#edE4%9p8~~|R{#xoc;*rYKq-v@ zfnkwwVH3=oG;Pw#ZfMJlfA;0Q8-)Lb!gBwTlK8ciDxBx3gkMhnk&W1_O>bCKnVo zo4O4(q>(bZ{xxVth_N>uM*}NU0a!F*)|?m>QotD!wF4aPBh8a?sM*;S$I+3N0n$Lk zHin_HHmAVf2^Ef&C{#D2M6}``XAR65pr6fNq8e5CGTKC?ElZQe&NDYItC(Karcoa^ z>MJoIc0Z?#1y1Z|;oxH$h>R#`aD?>WXA4ryK|R_A`*vv^bZF5mShaa;@ZRzb!OX?$ zg3ToPQhivJcpbwN^+Q4*MQ;zmVrSTeK!JsF21edb`!E_(y*)HhtUj*E((C!0x_r{| z-_Ja-`T!*X;sPU=?QaF7RtO1#+%AD)U@cVop|sHH^@r(FXVq$G%Bu17+|Y9yUs7phRzLhv~Hvd|bn?D`DL5RC zU_;QS9b7$aT2^n~Mk>_Qn!N>UHwEKneHyH#^*%GkPrqxzOogrX9HTxiJkswuc|fP&)ZM!% zc-~vFA$a_QWx;}Vn}fdXS_I$Tvum(VXXI9c;K_e14}SX*60>@8v&9iuRD|)Wq?9LUUMXy0l_x z%Gd`Q^Q8tdU9E$)Teb#cW_%K?B;SXpPA!`SHxB9(v}@ipn6qj_aO0oQEfm7R5V5-O zHg~=2(@5Cj0SWz{(0}p!L9VJ~0n7#X!*3suuMZ?mSe)Yc6(-)iadedC|KPX>c54%K zZ{0$epAZ7AFa`_-iJlme&}8YAa{1ePb_v>()BHZE&&_Xt8i~o!a91AG5PXqTXbpk& zvpLJH52OUfIJ4@fIj3~6!*yYXI075(vt+~O;GL!GjnYK3&u$|pEytND>E}p=+93c{ zA_7Ztpk0SrE?@Jd#^BJN=%&kOTC{#kaLpSF0(!5-o}fA1@QsJ`33{|auTDPGj74jM z8~(IVWSUKcWt7hKi?TS$`%CE#G@GQn0RkSso3}D}dhQC! z#UQa61gG@x9Guh-0~7L_(g1S(pg4eviOhU})eJzzIn>!5=xP82Og>t@Dfom!c0^_U z+v~_I&&dTSiz6LpmP(1l_*gX$P`MFUwE)T!7T>W;0mw}#X7O{# z0ZPkA*8wvAk~`c(c5#gHIMHt}T^Ic1-Nj)y2x2JCYMZ}!>cin6L2&-w-Gc+VV!T{= z)9hvIgQ@RR_nGp&MEt{6krJoB=bPND6H-S*~Zlw<5K#;d``3vAPtVTU9Fon2~MV5&hdRZ zsBCkd6NY{~^1;&J<2Ab1UiP?`3s9;3VOcsGSO2#JAY;H&|jBE#soo+t~|I=4V#q{XQE{eNGX@`quh~>8oU1CC=u!cSI?jcTbe3%NSWhBR0wm4YD9X1S>?G`}NfVNcFk@~`C=Q_Okx1mc z5pqT%ic5>YeB-2ds_{UsipT+Ge#g1ANGuMZiPTW;h{UUCh-&}#t>WLe-~mD9P!*2) zh#Up0=dRfpOrRmK9DQ+AHfo?>fsz0!H3Cah95+I%>WD-hz?H>JB>`m}Zqx0MG$#7m zFBgsnf&u}cxKWA9q?tD|++nS}jaxs-UE)DvC|k~$=s19W{N_RfTXZZ?(ohZ;kWzZ$ zLv`C8I=J`0NUl>%J2bHY9v;uVCnCL#Q`({3IwGQS!g+=RXh99@zF|sgc*|-O~MooL@j)s zN2^ghJdr{62DGa@CX4~HiAM>e*>9J6FRU0xIxSKQw};i>K$8A;m<-w3IK z3H!q1@2HO}_yFPvC_dj4ebvVoz9+q%8VeA~|9Hy$GKdTigW@WYS})W{FNc%Q4~qIf zVOa)50#o=qI!OL%iVg=kW*7>@0HsA=ap8Sd|HrpKhyVY``^{7UlpKyn-@Zt5w0&kQ z1krJRsb#J^q)>s7Lm5xePWUQM^et6hUjUTzYL8SN36w9;3ROsN^(l{4C1ZlP%+(Yf zx-SL*pzGcs1ro=~@;;b!fcf~vy!Pyd|5XFX=l3Lq>!p}6*QbGrx|RSs+hoOyjzg`#Fl!DW(! zaR6BbGUc+qGw;3=Uu^c8fyDVf`uChauCO~y7*$5{S2ohO$9>hq%?Y_G^kZ_O5APLy zFN}wSO8C%V*Ar|5;@+qzf~qO+FAZiaTI2mPhfj4vSUeFLHIi>o+-sk$4X(9LbQC^4 zl2PV{{9oDdWuq-j2H-UFRyBZ<0r2;W`OH|nGw%OdhYuk54;WAE!bZb@C^Ad?Du;9XGTzTQb=g2hdpMM2G6* z|5``s>XQY)xp|u~0Oa#ye9=}`l?s(3zJH9%+(54w`vAgVEE}!^5VPR=MZR!7O9r|S zCKG){Kq@p@(wwm}VMKvXf$&PT>}4cGz_c7*qhhllmKd9f*}oI@AgpyHDs)djX=# zM;6!3Ko21W>PUm=`S=o)B7(3~zFc+UCmr8cdKchf#fXJ_gWr0lkQ>-)$8LN;qW#fDbL;zi<6i81#Ct9sH z+n9)~2}GA5->?ppiS){wo!q`KG}Lu50F8zTQ|jS|r9hcjY1Fxso$ELVUH|Fh?;Mox z2c{%ISpe}xY*K|RG%-r$LNxBsKEYte2jURejkesckVz+-L5r$Vx-Q9{d4@*)Wnct2 zdVQDz;HTV|ikMCh!RQ(Af#Q`$Dv5h^hV)s@R1}W* zk&y3(m^f2a*8AsRxJLNqHY% z#Kkb`zq+aI&{PBML=Qlae+7_fPB$8}FbX!JrmJ|YBBK&$74*1b~o3kxsHyBL$Gz=sMC;Z<3OWTrRFpj8(@4hnJ=Agj9qNpeyM!Fn0VK>;8a$<#E}sJ~p<0-?0s){jg^^tx z5mgcm>?RMhC=trse0U*1kbmS*Tu4r#ug~L~(o%t>;xJ_HI(K>6C#!?M(?>Vmsn~pw zR;ld)a#^m50-!5i3l*qXc+$Xd|6!K6 zR3NP-_YLV6?A1yC69wf=6KK5k?-$_TU<;>m@iFh1 zd_L5tXCItzBGCmXO*yivRa!X>N0Z>z7=Yk_vI%66_Mm@tr?vTvo!rJ4L`+tK{laHj zR&5IZ>4T{9MA2j=;I+O)qAw5tKtF^6nS-bKGnD|!caGcvYWV3}kwl`;p|140P+0;3 zXtw~p>~ccok0Sp;_Ib&OOzrRSf#R6)t@q`EaNLMbWEOnmgSadJndtH3&};w0*W8ZR z@^V6@K=xVQ3Iu>q8E%;EGi6!IWrd9)x-AAEIH0VC8W=rAoMaU}M)B}PUReQhBQjqu zNJ7Sbh%XQTKqCQ=g)kdDu1V4+P~Uq}_#anp(K$JruwGCgG)$(xtN3yXF4M^2Ysg_2 zi3E#5zOPk7Bs`j z)S&}{z0JS#mwU^EHthymzF0w6Ab0e#B1S6dUtGck^R%98tugRQ_XGAlN0 z-4@(Adr`oH@nsSb$GRm3pv$2^A`>0g(3ONosu`{`cYu08f#^i8;z+3cFZg9MXTIag z^W8bPpI3q4fNCYvNVq;woXO(yr6>|dOx&P+4C%+nZCu_L2ta`@n?5h{IXnxBP$Sjg z=0s^KrIf{#b^W0@sIf$AqEsN7BW4Sys4v#1PQ30;@_}4441h)uKyD&Y0}~DD zL&%bqN~R9d`qvoD<>%(?19f=_Cd}W+X%UnR`B@R-Ao4+qbw4@Eqd-Rf*>_?E2w@G; zh;yoWpJM+;KoL93J}q9&4eB$)0O;aZgaQe0r0SFcPchE;io5~p41nk^%7I8KOOpAM z5bB)Jpgje@b3*kp(zae`+Yu)YlgBal??5D%2pMC z(#%a3B}#)xo`6~VEf9v6{wR@ph`oej+bB>`FxX)>K`0S|7??-Q27=hvms09o)ofs zM8>-+ZD8G$*Fc4R=X|{Xi~(qb@gEpOz9y?UPKMg0pwUWbj zH~%Sb3=W68>qo_@^bkXBtXunM5#JyCaYBC zVc^!BpR);TKNTjdP#sE9A_-CWTQ_T*S-XG8fC7Nx8h2+}4}iY+(nmsp^ws+uU#TE* zij}rsoXS-NAl1MnKqU8*PHqx>3={ABz%C5Xg#=JiPrlFJaTO^GbV(+1ZQcsh4hm#V zm|uyKK#7Ads~SB(gT(NU=k99L^Q1r*P7?}bZm^iJJ`Nt=Fj;Bp#|h2alp+0t>fLdGcEVA<&8Yx-<-eu&x<0j^=R`H z{q~RxN1W=Ey6^f6zMO9!sLhl&RURl$h$7I?f{gIAI)&$#WnJZx4JO0(ya6gUtk;dL zk#hZ<=(?~>Qm1RF@Zjhh@&>3i0CE~Jt2uMk#Le5dY7_@jsBR$&NjV@FG6pM4*F~I) z@%pr`4PT}@(g7>RK>Hfrh0Et;r@>c@YUK~meKXXE#3a+>+g^-f`IIDWtg}>=Brsg{ zDMyW5vz27VlCslQbqtk0ARv$EhXkIRuj@L}zk9Yd54EH}$7%ft;K z$qFCJZ5%#0XMpaWW);Y7M4w7X|D|bDJ;dHNs6oFejfr(L&OY-N*TBAx(=G18w6msiuN?-)-BrW%i@&^$TD(eSc`h0pg@^OFCi4 z7PtMM`mS4&zoNcOW?CqVsz?yyOcfw=0ZIZVtt+D()8*or7J<1YB%%m{v=9Qvp*AO! zIU!%;yT_G4$`Oe!j1u+gH(y@7c(NcHvVf#lW)_a)Fs%4puY1R@t$|P0xH} z8{FwF$9mb&Nkb}R1EVorb&`&`dujXHhh7TXU`-l-ECLQ?H-v-JC(TyLChT?j*<1|op8nP$A~UvSgD`oua`9Q?~}=r?FLckbLNUAuN2l(mBE<#yg0Shj50 z%>MoRUqE+&ArAPm7XGp#MV=Gy14)J9?*N`IGXh!6{lI9Ir0D}2qfO-O;X3d&)nL2gqMSJYA$DmfN zT1EfC(w(=C>R0ZmfsGqCuKn=C4`-f#{`vQA-MSUZ1As6yK;gIkXl0TD!T0G36Gk(- zztMxK|Mj*VKPlgx<`yTOc;XSq9e3QYmMvSVJPF;j{rkZOAH4M7gAYDJWHrj0rd99ztrHf;*Vj2Q#JfRE*kN=((@`cPLb&pYqDbN1eQ?;*H890%9O zfB*1@Kiv1+bI<*e%E3uhAC}+oRjaN5b+w*mL}M^v%V>r#lu3b9!x&)jB`1K?mS#j_ z>fbJ@ftys<*uH)Hj?~!qb*BlD)Rrw+r zZAWVRWV?3lEQmNJJ(RXCNy+Us z0;H8IS1uVndi1b0Yu2El7@{3ry?_`n!)eC9bq;XWm^v)D#-u0=PY_HQz(Hl8g86GL zJMt#^>27nw4L6J!IB?+kWLDLa4S+Ch-n==OHf`FYciwsD&u9@cj0)f=BJSF8k9bfz z|LRx2dV%1K0JLGlhTzmwPd$#duP_x`_~GdA$Q;Gu0qk<=rI(&TDtR_kO{x&CclPYr zQ?I$^nn|XC(p0iq^$vjWfZ!fcZ+KvEZCIBYh2bLEL~s(3;o+=wwQj_B9`$seeDcYA zUUJDL|JSi&$JWRt!Njo1S+r=;!gJ0!=i>G2*Ds{9Z~z&gBohIEptjwgfByN`I&|ou zj>oD7fXG}PZjOhiG6^8m6COMO)SbX-{OM1B`jg(hdpEXd(Lx;)z+H zZxHdMsbn?kowLsjkxV8Q)L)u8Vqk1yxEgnma1K_Vc27O^)Pt0(I2pbL6o-8ufb`Hq z4~?HPWy*7O9CW+DhQsVYev<$~gCp|n`Rc2$&LS`)08v8+M<0DOlBn!Z;>nDgaGh`i z5OBbU>_txL2^U;&!DyI90FP^i8UdyS3l{wLo8SEAdFDE6L4_j8>ZE#0184{HQgC`@ z8g9AemSdyH!wSD^Z>0i6ziYs2E1E!hUnrf4s2_Rf+OEN9(pM3Jk-}ma( z>wxCXn@7}V-MV#Kuf6u#ODVdUWz+}JLl*VP10bnFh-P~Y88T$xxN+m|B8R#eoPJgz zsOQq9OJ{%UTi-fn_3G6yx7?9gQ?U3hW@iFOIrS7FU9kWD``^*FZCh&sScP7H{q_I3 z?6S-5q;l;0$WFnu#;CLc;e56entmfG+enW6Wk())piB zrd{(6-@dZ|q#WmyPCBXAl~-OlvvcRpJ>(M%Ge9BnYRb6`qpsxQ{({< z`)r8r&@I%9!us9GN4uXg4;`SO(xIkse(~LR-+kz>fBkEi-&$~}Qvux>0J35G6Hh!b zfwJMlTeohlDjqYd5B1yJKXKy3pVJ+q@)3D)q?DBKlNFQ)KsY|W|D*Y95ZV_%<#~JEF zQOrE5^bwToL(&jY5^^=%09orUFMx1@3W%iY8@bUMB7rOK0$eu6H(zZY)6Ke#;#oR_~VaHGwQ=(d$Epa zo&c!;fMyQs8_qoQ%%L>C>Uv68QdA#?^>C;^`|PvlXavORR30WcE&WhYAc{R$tplV& z;k)j->t7B({O~7O@;PjW2_wgI#<}O7JJ!InnErY@{W4Tco&e$W9M+>>5uMZxhIc2xs!`$&YbyYDvP8c!uC?1+Pnd>YD(9r!ummj2JL_At+!61pr9r0O@{R= zR;>8jS!bPfG^r6Dh+@?=A6h&|t!03e-|)yIk6g0vzWa_t*o&tWm5d30Uw--JrwE|Q zwCINIrT7hb1BA;~{v6FvA>~k$uXFKNzVel?%d`Zm(40AQ#+-fj*>_X9V*R<#JwPgQ zAwOZaVZ(;apeMAm8@4Z5vSc~+cYSa1;>GwjF4PBMdpVIyH2|^^C0#4R`kp;{^yp9h zWcN2VHg@rZ^(*eX@4mw*`oulfWLRH|3S@I9zxc&3?$~|z-Ou%f?Uaqa=l0ug{}oj% zhwYrfEk%9s#8v|!Rv|dls-qPuM83{9PCxzhOQ1rmu23PU?ELxjA3E){(=Mm=#pJX; z*9xSvx7S^F-61EOaKZ}|wl{bCyXMWCH-{?qQUec%?d4`~s|64mmxszAtnWc{BRwp4 zQjY7N&^gS>MLH=$6|PC&GnPjngZGWqkHbT=Ql?jam3MX*iOSLwo`Y& zD9YAOHvn;eSGkU+1?Z)hUh;OPlCM%sXKIoP$gmy`b;BvAoHCe{Xd?CXsjyyVs3}Nz znZ^|T8w=tct%hwYVkGA%$a zyzoK+Ko}2n{PD+E3LrEv_mg1=2~?=Ye|9BFjevcx>9H3baE~SAhcbzYE?kFl3?)Q!3g2k(-6?%@4ox)`&5=4XFQda zNcmfUzWUX#zC-6%=>iI;ZQ}C97hkL-Kz3{sUBBul+i$=9_NF1alj(tJGi%nYfQEQr zXf8*e9}z%aO1rU57IGE%Q{hTt+4;b~~ z{;o=;`z=7^d%Z)QoeCg&@>T8$DFhlOTSTD$Q@g7Ndd#*Sh=S<=3t<+QfJEK16?ymef#aVe?;4nac0LEGG56Fv}2;lj83C# zKy;)U52l0~Z~2>VzB$CGAG#Nk#zYs}H2eUuL*01LK?mJJ-8cI|h2X#w$eU=?;zY_$ zKV$%6->=wnRkVD~0fZ-zhJ5Z%m3JO>UmQkH;3uR$HsX1LzvY(BIy44KwI%(Wz7i=<`G3 zl;2g??=kJbsa62uClGx^2x*a_#nXs48_-awFf<$@kYa|Z7E`r27qY`DFJrC&%a~v; z;k2Xia1B`2opP0%_o$v1UQ({cra~9 z5Te2`NQ^745@EYrVVoTX#PCJn)at$k-HiZ<8Q^lW-oD0?{baZXoF9MTAK`uhEg-^- z>#2#pv04F$qY-|k8Vv`h7GUvv+Nd-%TwXa4`ARqZG0b@SF+l}kHZkML&-)s1@2CU* z9s&CIaPO!CK7Xa6Pan*g*VPI@xL}5ezl?^zXjD`l8jQb^RY}KLRus<95aFrk*SS%K zU-QLNpZA9lV9K}-@IY}L;6ajgP!k_ws3m|HB5p|e9zK7gFZH93nI9d0L3wWeMkGq| z`Q>$#d8*jmaSc1N4vM<3S_7!4i_f{RTQ@cF#OHj^MIXKnP|;OZ-@&!}^%|+yK*=>w iSD=!suD&B`;Qs+Vbupfxm|FP&0000 + + + diff --git a/kotlinApp/Application/src/main/res/layout/fragment_card_view.xml b/kotlinApp/Application/src/main/res/layout/fragment_card_view.xml new file mode 100644 index 0000000..b43acb8 --- /dev/null +++ b/kotlinApp/Application/src/main/res/layout/fragment_card_view.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kotlinApp/Application/src/main/res/values/colors.xml b/kotlinApp/Application/src/main/res/values/colors.xml new file mode 100644 index 0000000..5dfd57c --- /dev/null +++ b/kotlinApp/Application/src/main/res/values/colors.xml @@ -0,0 +1,20 @@ + + + + + #71C3DE + \ No newline at end of file diff --git a/kotlinApp/Application/src/main/res/values/dimens.xml b/kotlinApp/Application/src/main/res/values/dimens.xml new file mode 100644 index 0000000..dbe7f04 --- /dev/null +++ b/kotlinApp/Application/src/main/res/values/dimens.xml @@ -0,0 +1,27 @@ + + + + + + 16dp + 16dp + 70dp + 16dp + 32dp + 100dp + 8dp + diff --git a/kotlinApp/Application/src/main/res/values/strings.xml b/kotlinApp/Application/src/main/res/values/strings.xml new file mode 100644 index 0000000..190c3f6 --- /dev/null +++ b/kotlinApp/Application/src/main/res/values/strings.xml @@ -0,0 +1,39 @@ + + + + + CardView Sample + This is a CardView widget. CardView widgets can have + shadows and rounded corners. + \n\nTo create a card with a shadow, use the android:elevation + attribute. + \n\nTo set the corner radius in your layouts, use the card_view:cardCornerRadius attribute. + + Radius + Elevation + + + + diff --git a/kotlinApp/Application/src/main/res/values/styles.xml b/kotlinApp/Application/src/main/res/values/styles.xml new file mode 100644 index 0000000..7948848 --- /dev/null +++ b/kotlinApp/Application/src/main/res/values/styles.xml @@ -0,0 +1,20 @@ + + + + +