diff options
author | Tiem Song <tiem@google.com> | 2017-12-14 19:38:40 -0800 |
---|---|---|
committer | Tiem Song <tiem@google.com> | 2018-01-02 10:17:23 -0800 |
commit | 0d1dd831ace29cfe055d78e77dfa4c200377f7d7 (patch) | |
tree | 5b6e72b59f95976999066d4e6da275fa4dc0a5c9 /ui/views | |
parent | 52cc64417d7e1bca301553134f04a19770fb5b20 (diff) | |
download | android-0d1dd831ace29cfe055d78e77dfa4c200377f7d7.tar.gz |
Create Kotlin version of CardView sample.
Bug: 64766094
Test: Ran instrumented tests.
Change-Id: I7e0a731be65a606600e3b103401cb21821c71f14
Diffstat (limited to 'ui/views')
25 files changed, 876 insertions, 0 deletions
diff --git a/ui/views/CardView/kotlinApp/.google/packaging.yaml b/ui/views/CardView/kotlinApp/.google/packaging.yaml new file mode 100644 index 00000000..b2115646 --- /dev/null +++ b/ui/views/CardView/kotlinApp/.google/packaging.yaml @@ -0,0 +1,13 @@ + +# GOOGLE SAMPLE PACKAGING DATA +# +# This file is used by Google as part of our samples packaging process. +# End users may safely ignore this file. It has no relevance to other systems. +--- +status: PUBLISHED +technologies: [Android] +categories: [UI] +languages: [Kotlin] +solutions: [Mobile] +github: android-CardView Sample +license: apache2 diff --git a/ui/views/CardView/kotlinApp/Application/build.gradle b/ui/views/CardView/kotlinApp/Application/build.gradle new file mode 100644 index 00000000..f9ba0087 --- /dev/null +++ b/ui/views/CardView/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/ui/views/CardView/kotlinApp/Application/src/main/AndroidManifest.xml b/ui/views/CardView/kotlinApp/Application/src/main/AndroidManifest.xml new file mode 100644 index 00000000..7d1145c8 --- /dev/null +++ b/ui/views/CardView/kotlinApp/Application/src/main/AndroidManifest.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright 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. +--> + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.example.android.cardview"> + + <application + android:allowBackup="false" + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/AppTheme" > + <activity + android:name=".CardViewActivity" + android:label="@string/app_name" > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest> diff --git a/ui/views/CardView/kotlinApp/Application/src/main/java/com/example/android/cardview/CardViewActivity.kt b/ui/views/CardView/kotlinApp/Application/src/main/java/com/example/android/cardview/CardViewActivity.kt new file mode 100644 index 00000000..4c90f0e8 --- /dev/null +++ b/ui/views/CardView/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/ui/views/CardView/kotlinApp/Application/src/main/java/com/example/android/cardview/CardViewFragment.kt b/ui/views/CardView/kotlinApp/Application/src/main/java/com/example/android/cardview/CardViewFragment.kt new file mode 100644 index 00000000..6efb5aae --- /dev/null +++ b/ui/views/CardView/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/ui/views/CardView/kotlinApp/Application/src/main/res/drawable-hdpi/ic_launcher.png b/ui/views/CardView/kotlinApp/Application/src/main/res/drawable-hdpi/ic_launcher.png Binary files differnew file mode 100644 index 00000000..36f4db55 --- /dev/null +++ b/ui/views/CardView/kotlinApp/Application/src/main/res/drawable-hdpi/ic_launcher.png diff --git a/ui/views/CardView/kotlinApp/Application/src/main/res/drawable-hdpi/tile.9.png b/ui/views/CardView/kotlinApp/Application/src/main/res/drawable-hdpi/tile.9.png Binary files differnew file mode 100644 index 00000000..13586288 --- /dev/null +++ b/ui/views/CardView/kotlinApp/Application/src/main/res/drawable-hdpi/tile.9.png diff --git a/ui/views/CardView/kotlinApp/Application/src/main/res/drawable-mdpi/ic_launcher.png b/ui/views/CardView/kotlinApp/Application/src/main/res/drawable-mdpi/ic_launcher.png Binary files differnew file mode 100644 index 00000000..f4ca0653 --- /dev/null +++ b/ui/views/CardView/kotlinApp/Application/src/main/res/drawable-mdpi/ic_launcher.png diff --git a/ui/views/CardView/kotlinApp/Application/src/main/res/drawable-xhdpi/ic_launcher.png b/ui/views/CardView/kotlinApp/Application/src/main/res/drawable-xhdpi/ic_launcher.png Binary files differnew file mode 100644 index 00000000..6464a93f --- /dev/null +++ b/ui/views/CardView/kotlinApp/Application/src/main/res/drawable-xhdpi/ic_launcher.png diff --git a/ui/views/CardView/kotlinApp/Application/src/main/res/drawable-xxhdpi/ic_launcher.png b/ui/views/CardView/kotlinApp/Application/src/main/res/drawable-xxhdpi/ic_launcher.png Binary files differnew file mode 100644 index 00000000..5a017bae --- /dev/null +++ b/ui/views/CardView/kotlinApp/Application/src/main/res/drawable-xxhdpi/ic_launcher.png diff --git a/ui/views/CardView/kotlinApp/Application/src/main/res/layout/activity_card_view.xml b/ui/views/CardView/kotlinApp/Application/src/main/res/layout/activity_card_view.xml new file mode 100644 index 00000000..86deaeea --- /dev/null +++ b/ui/views/CardView/kotlinApp/Application/src/main/res/layout/activity_card_view.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright 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. +--> + +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/container" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:paddingLeft="@dimen/activity_horizontal_margin" + android:paddingRight="@dimen/activity_horizontal_margin" + android:paddingTop="@dimen/activity_vertical_margin" + android:paddingBottom="@dimen/activity_vertical_margin" + tools:context="com.example.android.cardview.CardViewActivity" + tools:ignore="MergeRootFrame" /> diff --git a/ui/views/CardView/kotlinApp/Application/src/main/res/layout/fragment_card_view.xml b/ui/views/CardView/kotlinApp/Application/src/main/res/layout/fragment_card_view.xml new file mode 100644 index 00000000..b43acb82 --- /dev/null +++ b/ui/views/CardView/kotlinApp/Application/src/main/res/layout/fragment_card_view.xml @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright 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. +--> + +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:card_view="http://schemas.android.com/apk/res-auto" + android:layout_height="match_parent" + android:layout_width="match_parent"> + + <LinearLayout android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingBottom="@dimen/activity_vertical_margin" + android:paddingTop="@dimen/activity_vertical_margin" + android:paddingLeft="@dimen/activity_horizontal_margin" + android:paddingRight="@dimen/activity_horizontal_margin"> + + <android.support.v7.widget.CardView + android:id="@+id/cardview" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:elevation="@dimen/card_elevation" + card_view:cardBackgroundColor="@color/cardview_initial_background" + card_view:cardCornerRadius="@dimen/card_radius" + android:layout_marginLeft="@dimen/margin_large" + android:layout_marginRight="@dimen/margin_large"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_margin="@dimen/margin_medium" + android:text="@string/cardview_contents"/> + + </android.support.v7.widget.CardView> + + <LinearLayout + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/margin_large" + android:orientation="horizontal"> + + <TextView + android:layout_width="@dimen/seekbar_label_length" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:text="@string/cardview_radius_seekbar_text" /> + + <SeekBar + android:id="@+id/cardview_radius_seekbar" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:layout_margin="@dimen/margin_medium"/> + + </LinearLayout> + + <LinearLayout + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + + <TextView + android:layout_width="@dimen/seekbar_label_length" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:text="@string/cardview_elevation_seekbar_text"/> + + <SeekBar + android:id="@+id/cardview_elevation_seekbar" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:layout_margin="@dimen/margin_medium"/> + + </LinearLayout> + + </LinearLayout> + +</ScrollView> + diff --git a/ui/views/CardView/kotlinApp/Application/src/main/res/values/colors.xml b/ui/views/CardView/kotlinApp/Application/src/main/res/values/colors.xml new file mode 100644 index 00000000..5dfd57c8 --- /dev/null +++ b/ui/views/CardView/kotlinApp/Application/src/main/res/values/colors.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright 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. +--> + +<resources> + <color name="cardview_initial_background">#71C3DE</color> +</resources>
\ No newline at end of file diff --git a/ui/views/CardView/kotlinApp/Application/src/main/res/values/dimens.xml b/ui/views/CardView/kotlinApp/Application/src/main/res/values/dimens.xml new file mode 100644 index 00000000..dbe7f04b --- /dev/null +++ b/ui/views/CardView/kotlinApp/Application/src/main/res/values/dimens.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright 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. +--> + +<resources> + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> + <dimen name="seekbar_label_length">70dp</dimen> + <dimen name="margin_medium">16dp</dimen> + <dimen name="margin_large">32dp</dimen> + <dimen name="card_elevation">100dp</dimen> + <dimen name="card_radius">8dp</dimen> +</resources> diff --git a/ui/views/CardView/kotlinApp/Application/src/main/res/values/strings.xml b/ui/views/CardView/kotlinApp/Application/src/main/res/values/strings.xml new file mode 100644 index 00000000..190c3f69 --- /dev/null +++ b/ui/views/CardView/kotlinApp/Application/src/main/res/values/strings.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright 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. +--> + +<resources> + <string name="app_name">CardView Sample</string> + <string name="cardview_contents">This is a CardView widget. CardView widgets can have + shadows and rounded corners. + \n\nTo create a card with a shadow, use the <font fgcolor="#FFFFFFFF">android:elevation</font> + attribute. + \n\nTo set the corner radius in your layouts, use the <font + fgcolor="#FFFFFFFF">card_view:cardCornerRadius</font> attribute. + </string> + <string name="cardview_radius_seekbar_text">Radius</string> + <string name="cardview_elevation_seekbar_text">Elevation</string> + <string name="intro_message"> + <![CDATA[ + + + This sample demonstrates how to use CardView introduced in the support library in + Android 5.0. + + + ]]> + </string> +</resources> diff --git a/ui/views/CardView/kotlinApp/Application/src/main/res/values/styles.xml b/ui/views/CardView/kotlinApp/Application/src/main/res/values/styles.xml new file mode 100644 index 00000000..79488481 --- /dev/null +++ b/ui/views/CardView/kotlinApp/Application/src/main/res/values/styles.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright 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. +--> + +<resources> + <style name="AppTheme" parent="android:Theme.Material.Light" /> +</resources>
\ No newline at end of file diff --git a/ui/views/CardView/kotlinApp/Application/tests/src/com/example/android/cardview/SampleTests.kt b/ui/views/CardView/kotlinApp/Application/tests/src/com/example/android/cardview/SampleTests.kt new file mode 100644 index 00000000..df463907 --- /dev/null +++ b/ui/views/CardView/kotlinApp/Application/tests/src/com/example/android/cardview/SampleTests.kt @@ -0,0 +1,69 @@ +/* + * 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.support.test.InstrumentationRegistry +import android.support.test.rule.ActivityTestRule +import android.support.test.runner.AndroidJUnit4 +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNotNull +import org.junit.Before +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith + +/** + * Tests for CardView sample. + */ +@RunWith(AndroidJUnit4::class) +class SampleTests { + + private lateinit var fragment: CardViewFragment + + @Rule @JvmField + val activityTestRule = ActivityTestRule(CardViewActivity::class.java) + + @Before fun setUp() { + activityTestRule.activity.fragmentManager.beginTransaction() + fragment = activityTestRule.activity.fragmentManager + .findFragmentById(R.id.container) as CardViewFragment + } + + @Test fun testPreconditions() { + assertNotNull(activityTestRule.activity) + assertNotNull(fragment) + assertNotNull(fragment.radiusSeekBar) + assertNotNull(fragment.elevationSeekBar) + } + + @Test fun testRadiusSeekbarChangesRadiusOfCardView() { + InstrumentationRegistry.getInstrumentation().runOnMainSync { + val radius = 50.0f + fragment.radiusSeekBar.progress = radius.toInt() + assertEquals(radius, fragment.cardView.radius) + } + } + + @Test fun testElevationSeekbarChangesElevationOfCardView() { + InstrumentationRegistry.getInstrumentation().runOnMainSync { + val elevation = 40.0f + fragment.elevationSeekBar.progress = elevation.toInt() + assertEquals(elevation, fragment.cardView.elevation) + } + } + +}
\ No newline at end of file diff --git a/ui/views/CardView/kotlinApp/CONTRIB.md b/ui/views/CardView/kotlinApp/CONTRIB.md new file mode 100644 index 00000000..8ddb52d4 --- /dev/null +++ b/ui/views/CardView/kotlinApp/CONTRIB.md @@ -0,0 +1,35 @@ +# How to become a contributor and submit your own code + +## Contributor License Agreements + +We'd love to accept your sample apps and patches! Before we can take them, we +have to jump a couple of legal hurdles. + +Please fill out either the individual or corporate Contributor License Agreement (CLA). + + * If you are an individual writing original source code and you're sure you + own the intellectual property, then you'll need to sign an [individual CLA] + (https://developers.google.com/open-source/cla/individual). + * If you work for a company that wants to allow you to contribute your work, + then you'll need to sign a [corporate CLA] + (https://developers.google.com/open-source/cla/corporate). + +Follow either of the two links above to access the appropriate CLA and +instructions for how to sign and return it. Once we receive it, we'll be able to +accept your pull requests. + +## Contributing A Patch + +1. Submit an issue describing your proposed change to the repo in question. +1. The repo owner will respond to your issue promptly. +1. If your proposed change is accepted, and you haven't already done so, sign a + Contributor License Agreement (see details above). +1. Fork the desired repo, develop and test your code changes. +1. Ensure that your code adheres to the existing style in the sample to which + you are contributing. Refer to the + [Google Cloud Platform Samples Style Guide] + (https://github.com/GoogleCloudPlatform/Template/wiki/style.html) for the + recommended coding standards for this organization. +1. Ensure that your code has an appropriate set of unit tests which all pass. +1. Submit a pull request. + diff --git a/ui/views/CardView/kotlinApp/README.md b/ui/views/CardView/kotlinApp/README.md new file mode 100644 index 00000000..df82de9b --- /dev/null +++ b/ui/views/CardView/kotlinApp/README.md @@ -0,0 +1,50 @@ + +Android CardView Sample Sample (Kotlin) +======================================= + +This sample demonstrates how to use CardView introduced in the support library in +Android 5.0. + +Pre-requisites +-------------- + +- Android SDK 27 +- Android Support Repository + +Getting Started +--------------- + +This sample uses the Gradle build system. To build this project, use the +"gradlew build" command or use "Import Project" in Android Studio. + +Support +------- + +- Google+ Community: https://plus.google.com/communities/105153134372062985968 +- Stack Overflow: http://stackoverflow.com/questions/tagged/android + +If you've found an error in this sample, please file an issue: +https://github.com/googlesamples/android-CardView Sample + +Patches are encouraged, and may be submitted by forking this project and +submitting a pull request through GitHub. Please see CONTRIBUTING.md for more details. + +License +------- + +Copyright 2017 The Android Open Source Project, Inc. + +Licensed to the Apache Software Foundation (ASF) under one or more contributor +license agreements. See the NOTICE file distributed with this work for +additional information regarding copyright ownership. The ASF licenses this +file to you 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. diff --git a/ui/views/CardView/kotlinApp/build.gradle b/ui/views/CardView/kotlinApp/build.gradle new file mode 100644 index 00000000..16922ca7 --- /dev/null +++ b/ui/views/CardView/kotlinApp/build.gradle @@ -0,0 +1,32 @@ +buildscript { + ext { + compileSdkVersion = 27 + minSdkVersion = 21 + targetSdkVersion = 27 + + espressoVersion = '3.0.1' + junitVersion = '4.12' + kotlinVersion = '1.2.10' + supportLibVersion = '27.0.2' + supportTestVersion = '1.0.1' + } + repositories { + google() + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.0.1' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/ui/views/CardView/kotlinApp/gradle/wrapper/gradle-wrapper.jar b/ui/views/CardView/kotlinApp/gradle/wrapper/gradle-wrapper.jar Binary files differnew file mode 100644 index 00000000..8c0fb64a --- /dev/null +++ b/ui/views/CardView/kotlinApp/gradle/wrapper/gradle-wrapper.jar diff --git a/ui/views/CardView/kotlinApp/gradle/wrapper/gradle-wrapper.properties b/ui/views/CardView/kotlinApp/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..a611e637 --- /dev/null +++ b/ui/views/CardView/kotlinApp/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Thu Dec 14 19:44:05 PST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
\ No newline at end of file diff --git a/ui/views/CardView/kotlinApp/gradlew b/ui/views/CardView/kotlinApp/gradlew new file mode 100755 index 00000000..91a7e269 --- /dev/null +++ b/ui/views/CardView/kotlinApp/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# 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 +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# 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\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +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" ] ; 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"` + + # 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 + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/ui/views/CardView/kotlinApp/gradlew.bat b/ui/views/CardView/kotlinApp/gradlew.bat new file mode 100644 index 00000000..8a0b282a --- /dev/null +++ b/ui/views/CardView/kotlinApp/gradlew.bat @@ -0,0 +1,90 @@ +@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 + +@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= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@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 Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_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=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +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/ui/views/CardView/kotlinApp/settings.gradle b/ui/views/CardView/kotlinApp/settings.gradle new file mode 100644 index 00000000..9464a359 --- /dev/null +++ b/ui/views/CardView/kotlinApp/settings.gradle @@ -0,0 +1 @@ +include 'Application' |