Skip to content

Commit 0843dbb

Browse files
committed
Initial commit
1 parent e9c772b commit 0843dbb

58 files changed

Lines changed: 1669 additions & 22 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ captures/
3838

3939
# IntelliJ
4040
*.iml
41+
.idea
4142
.idea/workspace.xml
4243
.idea/tasks.xml
4344
.idea/gradle.xml

.travis.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
language: android
2+
dist: trusty
3+
android:
4+
components:
5+
# - tools
6+
# - platform-tools
7+
- build-tools-30.0.3
8+
- android-30
9+
- extra-google-m2repository
10+
- extra-android-m2repository
11+
licenses:
12+
- 'android-sdk-preview-license-52d11cd2'
13+
- 'android-sdk-license-.+'
14+
- 'google-gdk-license-.+'
15+
16+
before_script:
17+
- echo $TRAVIS_BRANCH
18+
- echo $TRAVIS_TAG
19+
- yes | sdkmanager "platforms;android-30"
20+
21+
script:
22+
- ./gradlew assemble

LICENSE

Lines changed: 192 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,192 @@
1-
MIT License
2-
3-
Copyright (c) 2021 Nick Wang
4-
5-
Permission is hereby granted, free of charge, to any person obtaining a copy
6-
of this software and associated documentation files (the "Software"), to deal
7-
in the Software without restriction, including without limitation the rights
8-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9-
copies of the Software, and to permit persons to whom the Software is
10-
furnished to do so, subject to the following conditions:
11-
12-
The above copyright notice and this permission notice shall be included in all
13-
copies or substantial portions of the Software.
14-
15-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21-
SOFTWARE.
1+
Copyright 2021 Nick Wang
2+
3+
Licensed under the Apache License, Version 2.0 (the "License");
4+
you may not use this file except in compliance with the License.
5+
You may obtain a copy of the License at
6+
7+
http://www.apache.org/licenses/LICENSE-2.0
8+
9+
Unless required by applicable law or agreed to in writing, software
10+
distributed under the License is distributed on an "AS IS" BASIS,
11+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
See the License for the specific language governing permissions and
13+
limitations under the License.
14+
15+
16+
17+
Apache License
18+
Version 2.0, January 2004
19+
http://www.apache.org/licenses/
20+
21+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
22+
23+
1. Definitions.
24+
25+
"License" shall mean the terms and conditions for use, reproduction,
26+
and distribution as defined by Sections 1 through 9 of this document.
27+
28+
"Licensor" shall mean the copyright owner or entity authorized by
29+
the copyright owner that is granting the License.
30+
31+
"Legal Entity" shall mean the union of the acting entity and all
32+
other entities that control, are controlled by, or are under common
33+
control with that entity. For the purposes of this definition,
34+
"control" means (i) the power, direct or indirect, to cause the
35+
direction or management of such entity, whether by contract or
36+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
37+
outstanding shares, or (iii) beneficial ownership of such entity.
38+
39+
"You" (or "Your") shall mean an individual or Legal Entity
40+
exercising permissions granted by this License.
41+
42+
"Source" form shall mean the preferred form for making modifications,
43+
including but not limited to software source code, documentation
44+
source, and configuration files.
45+
46+
"Object" form shall mean any form resulting from mechanical
47+
transformation or translation of a Source form, including but
48+
not limited to compiled object code, generated documentation,
49+
and conversions to other media types.
50+
51+
"Work" shall mean the work of authorship, whether in Source or
52+
Object form, made available under the License, as indicated by a
53+
copyright notice that is included in or attached to the work
54+
(an example is provided in the Appendix below).
55+
56+
"Derivative Works" shall mean any work, whether in Source or Object
57+
form, that is based on (or derived from) the Work and for which the
58+
editorial revisions, annotations, elaborations, or other modifications
59+
represent, as a whole, an original work of authorship. For the purposes
60+
of this License, Derivative Works shall not include works that remain
61+
separable from, or merely link (or bind by name) to the interfaces of,
62+
the Work and Derivative Works thereof.
63+
64+
"Contribution" shall mean any work of authorship, including
65+
the original version of the Work and any modifications or additions
66+
to that Work or Derivative Works thereof, that is intentionally
67+
submitted to Licensor for inclusion in the Work by the copyright owner
68+
or by an individual or Legal Entity authorized to submit on behalf of
69+
the copyright owner. For the purposes of this definition, "submitted"
70+
means any form of electronic, verbal, or written communication sent
71+
to the Licensor or its representatives, including but not limited to
72+
communication on electronic mailing lists, source code control systems,
73+
and issue tracking systems that are managed by, or on behalf of, the
74+
Licensor for the purpose of discussing and improving the Work, but
75+
excluding communication that is conspicuously marked or otherwise
76+
designated in writing by the copyright owner as "Not a Contribution."
77+
78+
"Contributor" shall mean Licensor and any individual or Legal Entity
79+
on behalf of whom a Contribution has been received by Licensor and
80+
subsequently incorporated within the Work.
81+
82+
2. Grant of Copyright License. Subject to the terms and conditions of
83+
this License, each Contributor hereby grants to You a perpetual,
84+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
85+
copyright license to reproduce, prepare Derivative Works of,
86+
publicly display, publicly perform, sublicense, and distribute the
87+
Work and such Derivative Works in Source or Object form.
88+
89+
3. Grant of Patent License. Subject to the terms and conditions of
90+
this License, each Contributor hereby grants to You a perpetual,
91+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
92+
(except as stated in this section) patent license to make, have made,
93+
use, offer to sell, sell, import, and otherwise transfer the Work,
94+
where such license applies only to those patent claims licensable
95+
by such Contributor that are necessarily infringed by their
96+
Contribution(s) alone or by combination of their Contribution(s)
97+
with the Work to which such Contribution(s) was submitted. If You
98+
institute patent litigation against any entity (including a
99+
cross-claim or counterclaim in a lawsuit) alleging that the Work
100+
or a Contribution incorporated within the Work constitutes direct
101+
or contributory patent infringement, then any patent licenses
102+
granted to You under this License for that Work shall terminate
103+
as of the date such litigation is filed.
104+
105+
4. Redistribution. You may reproduce and distribute copies of the
106+
Work or Derivative Works thereof in any medium, with or without
107+
modifications, and in Source or Object form, provided that You
108+
meet the following conditions:
109+
110+
(a) You must give any other recipients of the Work or
111+
Derivative Works a copy of this License; and
112+
113+
(b) You must cause any modified files to carry prominent notices
114+
stating that You changed the files; and
115+
116+
(c) You must retain, in the Source form of any Derivative Works
117+
that You distribute, all copyright, patent, trademark, and
118+
attribution notices from the Source form of the Work,
119+
excluding those notices that do not pertain to any part of
120+
the Derivative Works; and
121+
122+
(d) If the Work includes a "NOTICE" text file as part of its
123+
distribution, then any Derivative Works that You distribute must
124+
include a readable copy of the attribution notices contained
125+
within such NOTICE file, excluding those notices that do not
126+
pertain to any part of the Derivative Works, in at least one
127+
of the following places: within a NOTICE text file distributed
128+
as part of the Derivative Works; within the Source form or
129+
documentation, if provided along with the Derivative Works; or,
130+
within a display generated by the Derivative Works, if and
131+
wherever such third-party notices normally appear. The contents
132+
of the NOTICE file are for informational purposes only and
133+
do not modify the License. You may add Your own attribution
134+
notices within Derivative Works that You distribute, alongside
135+
or as an addendum to the NOTICE text from the Work, provided
136+
that such additional attribution notices cannot be construed
137+
as modifying the License.
138+
139+
You may add Your own copyright statement to Your modifications and
140+
may provide additional or different license terms and conditions
141+
for use, reproduction, or distribution of Your modifications, or
142+
for any such Derivative Works as a whole, provided Your use,
143+
reproduction, and distribution of the Work otherwise complies with
144+
the conditions stated in this License.
145+
146+
5. Submission of Contributions. Unless You explicitly state otherwise,
147+
any Contribution intentionally submitted for inclusion in the Work
148+
by You to the Licensor shall be under the terms and conditions of
149+
this License, without any additional terms or conditions.
150+
Notwithstanding the above, nothing herein shall supersede or modify
151+
the terms of any separate license agreement you may have executed
152+
with Licensor regarding such Contributions.
153+
154+
6. Trademarks. This License does not grant permission to use the trade
155+
names, trademarks, service marks, or product names of the Licensor,
156+
except as required for reasonable and customary use in describing the
157+
origin of the Work and reproducing the content of the NOTICE file.
158+
159+
7. Disclaimer of Warranty. Unless required by applicable law or
160+
agreed to in writing, Licensor provides the Work (and each
161+
Contributor provides its Contributions) on an "AS IS" BASIS,
162+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
163+
implied, including, without limitation, any warranties or conditions
164+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
165+
PARTICULAR PURPOSE. You are solely responsible for determining the
166+
appropriateness of using or redistributing the Work and assume any
167+
risks associated with Your exercise of permissions under this License.
168+
169+
8. Limitation of Liability. In no event and under no legal theory,
170+
whether in tort (including negligence), contract, or otherwise,
171+
unless required by applicable law (such as deliberate and grossly
172+
negligent acts) or agreed to in writing, shall any Contributor be
173+
liable to You for damages, including any direct, indirect, special,
174+
incidental, or consequential damages of any character arising as a
175+
result of this License or out of the use or inability to use the
176+
Work (including but not limited to damages for loss of goodwill,
177+
work stoppage, computer failure or malfunction, or any and all
178+
other commercial damages or losses), even if such Contributor
179+
has been advised of the possibility of such damages.
180+
181+
9. Accepting Warranty or Additional Liability. While redistributing
182+
the Work or Derivative Works thereof, You may choose to offer,
183+
and charge a fee for, acceptance of support, warranty, indemnity,
184+
or other liability obligations and/or rights consistent with this
185+
License. However, in accepting such obligations, You may act only
186+
on Your own behalf and on Your sole responsibility, not on behalf
187+
of any other Contributor, and only if You agree to indemnify,
188+
defend, and hold each Contributor harmless for any liability
189+
incurred by, or claims asserted against, such Contributor by reason
190+
of your accepting any such warranty or additional liability.
191+
192+
END OF TERMS AND CONDITIONS

NestedSpinner/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

NestedSpinner/build.gradle

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
plugins {
2+
id 'com.android.library'
3+
id 'kotlin-android'
4+
}
5+
6+
android {
7+
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
8+
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
9+
10+
defaultConfig {
11+
minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
12+
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
13+
versionName project.VERSION_NAME
14+
versionCode Integer.parseInt(project.VERSION_CODE)
15+
16+
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
17+
consumerProguardFiles "consumer-rules.pro"
18+
}
19+
20+
buildTypes {
21+
release {
22+
minifyEnabled false
23+
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
24+
}
25+
}
26+
compileOptions {
27+
sourceCompatibility JavaVersion.VERSION_1_8
28+
targetCompatibility JavaVersion.VERSION_1_8
29+
}
30+
kotlinOptions {
31+
jvmTarget = '1.8'
32+
}
33+
}
34+
35+
dependencies {
36+
37+
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
38+
implementation 'androidx.core:core-ktx:1.6.0'
39+
implementation 'androidx.appcompat:appcompat:1.3.1'
40+
implementation 'com.google.android.material:material:1.4.0'
41+
42+
implementation "androidx.recyclerview:recyclerview:1.2.1"
43+
44+
testImplementation 'junit:junit:4.13.2'
45+
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
46+
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
47+
}

NestedSpinner/consumer-rules.pro

Whitespace-only changes.

NestedSpinner/proguard-rules.pro

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Add project specific ProGuard rules here.
2+
# You can control the set of applied configuration files using the
3+
# proguardFiles setting in build.gradle.
4+
#
5+
# For more details, see
6+
# http://developer.android.com/guide/developing/tools/proguard.html
7+
8+
# If your project uses WebView with JS, uncomment the following
9+
# and specify the fully qualified class name to the JavaScript interface
10+
# class:
11+
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12+
# public *;
13+
#}
14+
15+
# Uncomment this to preserve the line number information for
16+
# debugging stack traces.
17+
#-keepattributes SourceFile,LineNumberTable
18+
19+
# If you keep the line number information, uncomment this to
20+
# hide the original source file name.
21+
#-renamesourcefileattribute SourceFile
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.nickwang.nestedspinner
2+
3+
import androidx.test.platform.app.InstrumentationRegistry
4+
import androidx.test.ext.junit.runners.AndroidJUnit4
5+
6+
import org.junit.Test
7+
import org.junit.runner.RunWith
8+
9+
import org.junit.Assert.*
10+
11+
/**
12+
* Instrumented test, which will execute on an Android device.
13+
*
14+
* See [testing documentation](http://d.android.com/tools/testing).
15+
*/
16+
@RunWith(AndroidJUnit4::class)
17+
class ExampleInstrumentedTest {
18+
@Test
19+
fun useAppContext() {
20+
// Context of the app under test.
21+
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
22+
assertEquals("com.nickwang.nestedspinner.test", appContext.packageName)
23+
}
24+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
package="com.nickwang.nestedspinner">
4+
5+
</manifest>

0 commit comments

Comments
 (0)