mirror of
				https://github.com/AdrianKuta/Expandable-RecyclerView.git
				synced 2025-10-31 00:43:39 +01:00 
			
		
		
		
	feat: Upgrade to build gradle 7.0.2
This commit is contained in:
		
							
								
								
									
										24
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | |||||||
|  | name: Build | ||||||
|  |  | ||||||
|  | on: pull_request | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   build: | ||||||
|  |     name: Check project build | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: Check out code | ||||||
|  |         uses: actions/checkout@v2 | ||||||
|  |       - name: Set up JDK 11 | ||||||
|  |         uses: actions/setup-java@v2 | ||||||
|  |         with: | ||||||
|  |           distribution: adopt | ||||||
|  |           java-version: 11 | ||||||
|  |  | ||||||
|  |         # Builds the release artifacts of the library | ||||||
|  |       - name: Build | ||||||
|  |         run: ./gradlew assemble | ||||||
|  |  | ||||||
|  |         # Generates other artifacts (javadocJar is optional) | ||||||
|  |       - name: Source jar and dokka | ||||||
|  |         run: ./gradlew androidSourcesJar javadocJar | ||||||
							
								
								
									
										38
									
								
								.github/workflows/publish.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								.github/workflows/publish.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | |||||||
|  | name: Publish | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   release: | ||||||
|  |     # We'll run this workflow when a new GitHub release is created | ||||||
|  |     types: [released] | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   publish: | ||||||
|  |     name: Release build and publish | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: Check out code | ||||||
|  |         uses: actions/checkout@v2 | ||||||
|  |       - name: Set up JDK 11 | ||||||
|  |         uses: actions/setup-java@v2 | ||||||
|  |         with: | ||||||
|  |           distribution: adopt | ||||||
|  |           java-version: 11 | ||||||
|  |  | ||||||
|  |         # Builds the release artifacts of the library | ||||||
|  |       - name: Release build | ||||||
|  |         run: ./gradlew :expandable-recyclerview:assembleRelease | ||||||
|  |  | ||||||
|  |         # Generates other artifacts (javadocJar is optional) | ||||||
|  |       - name: Source jar and dokka | ||||||
|  |         run: ./gradlew androidSourcesJar javadocJar | ||||||
|  |  | ||||||
|  |         # Runs upload, and then closes & releases the repository | ||||||
|  |       - name: Publish to MavenCentral | ||||||
|  |         run: ./gradlew publishReleasePublicationToSonatypeRepository --max-workers 1 closeAndReleaseSonatypeStagingRepository | ||||||
|  |         env: | ||||||
|  |           OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} | ||||||
|  |           OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} | ||||||
|  |           SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }} | ||||||
|  |           SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} | ||||||
|  |           SIGNING_KEY: ${{ secrets.SIGNING_KEY }} | ||||||
|  |           SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }} | ||||||
							
								
								
									
										23
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | |||||||
|  | name: Test | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   pull_request: | ||||||
|  |     branches: | ||||||
|  |       - master | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   build: | ||||||
|  |     name: Run unit tests | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: Check out code | ||||||
|  |         uses: actions/checkout@v2 | ||||||
|  |       - name: Set up JDK 11 | ||||||
|  |         uses: actions/setup-java@v2 | ||||||
|  |         with: | ||||||
|  |           distribution: adopt | ||||||
|  |           java-version: 11 | ||||||
|  |  | ||||||
|  |         # Builds the release artifacts of the library | ||||||
|  |       - name: Test | ||||||
|  |         run: ./gradlew test | ||||||
							
								
								
									
										3
									
								
								.idea/codeStyles/Project.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										3
									
								
								.idea/codeStyles/Project.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,8 +1,5 @@ | |||||||
| <component name="ProjectCodeStyleConfiguration"> | <component name="ProjectCodeStyleConfiguration"> | ||||||
|   <code_scheme name="Project" version="173"> |   <code_scheme name="Project" version="173"> | ||||||
|     <AndroidXmlCodeStyleSettings> |  | ||||||
|       <option name="ARRANGEMENT_SETTINGS_MIGRATED_TO_191" value="true" /> |  | ||||||
|     </AndroidXmlCodeStyleSettings> |  | ||||||
|     <JetCodeStyleSettings> |     <JetCodeStyleSettings> | ||||||
|       <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" /> |       <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" /> | ||||||
|     </JetCodeStyleSettings> |     </JetCodeStyleSettings> | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								.idea/compiler.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.idea/compiler.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <project version="4"> | ||||||
|  |   <component name="CompilerConfiguration"> | ||||||
|  |     <bytecodeTargetLevel target="11" /> | ||||||
|  |   </component> | ||||||
|  | </project> | ||||||
							
								
								
									
										4
									
								
								.idea/gradle.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								.idea/gradle.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,10 +1,13 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||||
| <project version="4"> | <project version="4"> | ||||||
|  |   <component name="GradleMigrationSettings" migrationVersion="1" /> | ||||||
|   <component name="GradleSettings"> |   <component name="GradleSettings"> | ||||||
|     <option name="linkedExternalProjectsSettings"> |     <option name="linkedExternalProjectsSettings"> | ||||||
|       <GradleProjectSettings> |       <GradleProjectSettings> | ||||||
|  |         <option name="testRunner" value="GRADLE" /> | ||||||
|         <option name="distributionType" value="DEFAULT_WRAPPED" /> |         <option name="distributionType" value="DEFAULT_WRAPPED" /> | ||||||
|         <option name="externalProjectPath" value="$PROJECT_DIR$" /> |         <option name="externalProjectPath" value="$PROJECT_DIR$" /> | ||||||
|  |         <option name="gradleJvm" value="11" /> | ||||||
|         <option name="modules"> |         <option name="modules"> | ||||||
|           <set> |           <set> | ||||||
|             <option value="$PROJECT_DIR$" /> |             <option value="$PROJECT_DIR$" /> | ||||||
| @@ -13,7 +16,6 @@ | |||||||
|           </set> |           </set> | ||||||
|         </option> |         </option> | ||||||
|         <option name="resolveModulePerSourceSet" value="false" /> |         <option name="resolveModulePerSourceSet" value="false" /> | ||||||
|         <option name="testRunner" value="PLATFORM" /> |  | ||||||
|       </GradleProjectSettings> |       </GradleProjectSettings> | ||||||
|     </option> |     </option> | ||||||
|   </component> |   </component> | ||||||
|   | |||||||
							
								
								
									
										30
									
								
								.idea/jarRepositories.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								.idea/jarRepositories.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <project version="4"> | ||||||
|  |   <component name="RemoteRepositoriesConfiguration"> | ||||||
|  |     <remote-repository> | ||||||
|  |       <option name="id" value="central" /> | ||||||
|  |       <option name="name" value="Maven Central repository" /> | ||||||
|  |       <option name="url" value="https://repo1.maven.org/maven2" /> | ||||||
|  |     </remote-repository> | ||||||
|  |     <remote-repository> | ||||||
|  |       <option name="id" value="jboss.community" /> | ||||||
|  |       <option name="name" value="JBoss Community repository" /> | ||||||
|  |       <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" /> | ||||||
|  |     </remote-repository> | ||||||
|  |     <remote-repository> | ||||||
|  |       <option name="id" value="BintrayJCenter" /> | ||||||
|  |       <option name="name" value="BintrayJCenter" /> | ||||||
|  |       <option name="url" value="https://jcenter.bintray.com/" /> | ||||||
|  |     </remote-repository> | ||||||
|  |     <remote-repository> | ||||||
|  |       <option name="id" value="Google" /> | ||||||
|  |       <option name="name" value="Google" /> | ||||||
|  |       <option name="url" value="https://dl.google.com/dl/android/maven2/" /> | ||||||
|  |     </remote-repository> | ||||||
|  |     <remote-repository> | ||||||
|  |       <option name="id" value="MavenRepo" /> | ||||||
|  |       <option name="name" value="MavenRepo" /> | ||||||
|  |       <option name="url" value="https://repo.maven.apache.org/maven2/" /> | ||||||
|  |     </remote-repository> | ||||||
|  |   </component> | ||||||
|  | </project> | ||||||
							
								
								
									
										12
									
								
								.idea/misc.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								.idea/misc.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,6 +1,16 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||||
| <project version="4"> | <project version="4"> | ||||||
|   <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK"> |   <component name="DesignSurface"> | ||||||
|  |     <option name="filePathToZoomLevelMap"> | ||||||
|  |       <map> | ||||||
|  |         <entry key="app/src/main/res/layout/activity_main.xml" value="0.18020833333333333" /> | ||||||
|  |         <entry key="app/src/main/res/layout/item_level_1.xml" value="0.32916666666666666" /> | ||||||
|  |         <entry key="app/src/main/res/layout/item_level_2.xml" value="0.32916666666666666" /> | ||||||
|  |         <entry key="app/src/main/res/layout/item_level_3.xml" value="0.2824074074074074" /> | ||||||
|  |       </map> | ||||||
|  |     </option> | ||||||
|  |   </component> | ||||||
|  |   <component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="1.8" project-jdk-type="JavaSDK"> | ||||||
|     <output url="file://$PROJECT_DIR$/build/classes" /> |     <output url="file://$PROJECT_DIR$/build/classes" /> | ||||||
|   </component> |   </component> | ||||||
|   <component name="ProjectType"> |   <component name="ProjectType"> | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								.idea/runConfigurations.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								.idea/runConfigurations.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,12 +0,0 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8"?> |  | ||||||
| <project version="4"> |  | ||||||
|   <component name="RunConfigurationProducerService"> |  | ||||||
|     <option name="ignoredProducers"> |  | ||||||
|       <set> |  | ||||||
|         <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" /> |  | ||||||
|         <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" /> |  | ||||||
|         <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" /> |  | ||||||
|       </set> |  | ||||||
|     </option> |  | ||||||
|   </component> |  | ||||||
| </project> |  | ||||||
| @@ -1,15 +1,14 @@ | |||||||
| apply plugin: 'com.android.application' | apply plugin: 'com.android.application' | ||||||
| apply plugin: 'kotlin-android' | apply plugin: 'kotlin-android' | ||||||
| apply plugin: 'kotlin-android-extensions' |  | ||||||
| apply plugin: 'kotlin-kapt' | apply plugin: 'kotlin-kapt' | ||||||
|  |  | ||||||
| android { | android { | ||||||
|     compileSdkVersion 29 |     compileSdkVersion 31 | ||||||
|     buildToolsVersion "29.0.2" |     buildToolsVersion "31.0.0" | ||||||
|     defaultConfig { |     defaultConfig { | ||||||
|         applicationId "com.github.adriankuta" |         applicationId "com.github.adriankuta" | ||||||
|         minSdkVersion 23 |         minSdkVersion 23 | ||||||
|         targetSdkVersion 29 |         targetSdkVersion 31 | ||||||
|         versionCode 1 |         versionCode 1 | ||||||
|         versionName "1.0" |         versionName "1.0" | ||||||
|         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" |         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | ||||||
| @@ -20,6 +19,9 @@ android { | |||||||
|             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' |             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |     buildFeatures { | ||||||
|  |         viewBinding true | ||||||
|  |     } | ||||||
|     dataBinding { |     dataBinding { | ||||||
|         enabled = true |         enabled = true | ||||||
|     } |     } | ||||||
| @@ -28,11 +30,11 @@ android { | |||||||
| dependencies { | dependencies { | ||||||
|     implementation fileTree(dir: 'libs', include: ['*.jar']) |     implementation fileTree(dir: 'libs', include: ['*.jar']) | ||||||
|     implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" |     implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" | ||||||
|     implementation 'androidx.appcompat:appcompat:1.1.0' |     implementation 'androidx.appcompat:appcompat:1.3.1' | ||||||
|     implementation 'androidx.core:core-ktx:1.1.0' |     implementation 'androidx.core:core-ktx:1.6.0' | ||||||
|     implementation 'androidx.constraintlayout:constraintlayout:1.1.3' |     implementation 'androidx.constraintlayout:constraintlayout:2.1.0' | ||||||
|     implementation 'com.github.adriankuta:expandable-recyclerView:1.0.0' |     implementation 'com.github.adriankuta:expandable-recyclerView:1.0.0' | ||||||
|     testImplementation 'junit:junit:4.12' |     testImplementation 'junit:junit:4.13.2' | ||||||
|     androidTestImplementation 'androidx.test.ext:junit:1.1.1' |     androidTestImplementation 'androidx.test.ext:junit:1.1.3' | ||||||
|     androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' |     androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' | ||||||
| } | } | ||||||
|   | |||||||
| @@ -9,7 +9,8 @@ | |||||||
|         android:roundIcon="@mipmap/ic_launcher_round" |         android:roundIcon="@mipmap/ic_launcher_round" | ||||||
|         android:supportsRtl="true" |         android:supportsRtl="true" | ||||||
|         android:theme="@style/AppTheme"> |         android:theme="@style/AppTheme"> | ||||||
|         <activity android:name=".MainActivity"> |         <activity android:name=".MainActivity" | ||||||
|  |             android:exported="true"> | ||||||
|             <intent-filter> |             <intent-filter> | ||||||
|                 <action android:name="android.intent.action.MAIN" /> |                 <action android:name="android.intent.action.MAIN" /> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -4,15 +4,17 @@ import android.os.Bundle | |||||||
| import androidx.appcompat.app.AppCompatActivity | import androidx.appcompat.app.AppCompatActivity | ||||||
| import androidx.recyclerview.widget.LinearLayoutManager | import androidx.recyclerview.widget.LinearLayoutManager | ||||||
| import androidx.recyclerview.widget.RecyclerView | import androidx.recyclerview.widget.RecyclerView | ||||||
|  | import com.github.adriankuta.databinding.ActivityMainBinding | ||||||
| import com.github.adriankuta.expandable_recyclerview.expandableTree | import com.github.adriankuta.expandable_recyclerview.expandableTree | ||||||
| import kotlinx.android.synthetic.main.activity_main.* |  | ||||||
|  |  | ||||||
| class MainActivity : AppCompatActivity() { | class MainActivity : AppCompatActivity() { | ||||||
|  |  | ||||||
|  |     private lateinit var binding: ActivityMainBinding | ||||||
|  |  | ||||||
|     override fun onCreate(savedInstanceState: Bundle?) { |     override fun onCreate(savedInstanceState: Bundle?) { | ||||||
|         super.onCreate(savedInstanceState) |         super.onCreate(savedInstanceState) | ||||||
|         setContentView(R.layout.activity_main) |         setContentView(R.layout.activity_main) | ||||||
|  |         binding = ActivityMainBinding.inflate(layoutInflater) | ||||||
|  |  | ||||||
|         val tree = expandableTree("World") { |         val tree = expandableTree("World") { | ||||||
|             child("North America") { |             child("North America") { | ||||||
| @@ -29,10 +31,12 @@ class MainActivity : AppCompatActivity() { | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         with(binding) { | ||||||
|             val adapter = ExpandableAdapter() |             val adapter = ExpandableAdapter() | ||||||
|         recyclerView.layoutManager = LinearLayoutManager(this, RecyclerView.VERTICAL, false) |             recyclerView.layoutManager = LinearLayoutManager(this@MainActivity, RecyclerView.VERTICAL, false) | ||||||
|             recyclerView.adapter = adapter |             recyclerView.adapter = adapter | ||||||
|  |  | ||||||
|             adapter.setTree(tree) |             adapter.setTree(tree) | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | } | ||||||
|   | |||||||
| @@ -14,7 +14,8 @@ | |||||||
|         xmlns:app="http://schemas.android.com/apk/res-auto" |         xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|         xmlns:tools="http://schemas.android.com/tools" |         xmlns:tools="http://schemas.android.com/tools" | ||||||
|         android:layout_width="match_parent" |         android:layout_width="match_parent" | ||||||
|         android:layout_height="wrap_content"> |         android:layout_height="wrap_content" | ||||||
|  |         tools:viewBindingIgnore="true"> | ||||||
|  |  | ||||||
|         <ImageView |         <ImageView | ||||||
|             android:id="@+id/expand_icon" |             android:id="@+id/expand_icon" | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ | |||||||
| <layout> | <layout> | ||||||
|  |  | ||||||
|     <data> |     <data> | ||||||
|  |  | ||||||
|         <variable |         <variable | ||||||
|             name="node" |             name="node" | ||||||
|             type="com.github.adriankuta.expandable_recyclerview.ExpandableTreeNode<String>" /> |             type="com.github.adriankuta.expandable_recyclerview.ExpandableTreeNode<String>" /> | ||||||
| @@ -13,7 +14,8 @@ | |||||||
|         xmlns:app="http://schemas.android.com/apk/res-auto" |         xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|         xmlns:tools="http://schemas.android.com/tools" |         xmlns:tools="http://schemas.android.com/tools" | ||||||
|         android:layout_width="match_parent" |         android:layout_width="match_parent" | ||||||
|         android:layout_height="wrap_content"> |         android:layout_height="wrap_content" | ||||||
|  |         tools:viewBindingIgnore="true"> | ||||||
|  |  | ||||||
|         <ImageView |         <ImageView | ||||||
|             android:id="@+id/expand_icon" |             android:id="@+id/expand_icon" | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ | |||||||
| <layout> | <layout> | ||||||
|  |  | ||||||
|     <data> |     <data> | ||||||
|  |  | ||||||
|         <variable |         <variable | ||||||
|             name="node" |             name="node" | ||||||
|             type="com.github.adriankuta.expandable_recyclerview.ExpandableTreeNode<String>" /> |             type="com.github.adriankuta.expandable_recyclerview.ExpandableTreeNode<String>" /> | ||||||
| @@ -13,7 +14,8 @@ | |||||||
|         xmlns:app="http://schemas.android.com/apk/res-auto" |         xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|         xmlns:tools="http://schemas.android.com/tools" |         xmlns:tools="http://schemas.android.com/tools" | ||||||
|         android:layout_width="match_parent" |         android:layout_width="match_parent" | ||||||
|         android:layout_height="wrap_content"> |         android:layout_height="wrap_content" | ||||||
|  |         tools:viewBindingIgnore="true"> | ||||||
|  |  | ||||||
|         <ImageView |         <ImageView | ||||||
|             android:id="@+id/expand_icon" |             android:id="@+id/expand_icon" | ||||||
| @@ -33,12 +35,12 @@ | |||||||
|             android:layout_width="0dp" |             android:layout_width="0dp" | ||||||
|             android:layout_height="wrap_content" |             android:layout_height="wrap_content" | ||||||
|             android:padding="8dp" |             android:padding="8dp" | ||||||
|             app:layout_goneMarginStart="96dp" |  | ||||||
|             android:text="@{node.value}" |             android:text="@{node.value}" | ||||||
|             app:layout_constraintBottom_toBottomOf="parent" |             app:layout_constraintBottom_toBottomOf="parent" | ||||||
|             app:layout_constraintEnd_toEndOf="parent" |             app:layout_constraintEnd_toEndOf="parent" | ||||||
|             app:layout_constraintStart_toEndOf="@id/expand_icon" |             app:layout_constraintStart_toEndOf="@id/expand_icon" | ||||||
|             app:layout_constraintTop_toTopOf="parent" |             app:layout_constraintTop_toTopOf="parent" | ||||||
|  |             app:layout_goneMarginStart="96dp" | ||||||
|             tools:text="@tools:sample/full_names" /> |             tools:text="@tools:sample/full_names" /> | ||||||
|     </androidx.constraintlayout.widget.ConstraintLayout> |     </androidx.constraintlayout.widget.ConstraintLayout> | ||||||
| </layout> | </layout> | ||||||
							
								
								
									
										17
									
								
								build.gradle
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								build.gradle
									
									
									
									
									
								
							| @@ -1,26 +1,29 @@ | |||||||
| // Top-level build file where you can add configuration options common to all sub-projects/modules. | // Top-level build file where you can add configuration options common to all sub-projects/modules. | ||||||
|  |  | ||||||
| buildscript { | buildscript { | ||||||
|     ext.kotlin_version = '1.3.61' |     ext.kotlin_version = '1.5.30' | ||||||
|     repositories { |     repositories { | ||||||
|         google() |         google() | ||||||
|         jcenter() |         mavenCentral() | ||||||
|  |  | ||||||
|     } |     } | ||||||
|     dependencies { |     dependencies { | ||||||
|         classpath 'com.android.tools.build:gradle:3.5.3' |         classpath 'com.android.tools.build:gradle:7.0.2' | ||||||
|         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" |         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" | ||||||
|         classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.21.2" |  | ||||||
|         // NOTE: Do not place your application dependencies here; they belong |         // NOTE: Do not place your application dependencies here; they belong | ||||||
|         // in the individual module build.gradle files |         // in the individual module build.gradle files | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | plugins { | ||||||
|  |     id("io.github.gradle-nexus.publish-plugin") version "1.1.0" | ||||||
|  |     id("org.jetbrains.dokka") version "1.5.0" | ||||||
|  | } | ||||||
|  |  | ||||||
| allprojects { | allprojects { | ||||||
|     repositories { |     repositories { | ||||||
|         google() |         google() | ||||||
|         jcenter() |         mavenCentral() | ||||||
|  |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -28,4 +31,4 @@ task clean(type: Delete) { | |||||||
|     delete rootProject.buildDir |     delete rootProject.buildDir | ||||||
| } | } | ||||||
|  |  | ||||||
| apply plugin: 'io.codearte.nexus-staging' | apply from: "${rootDir}/scripts/publish-root.gradle" | ||||||
|   | |||||||
| @@ -1,21 +1,19 @@ | |||||||
| apply plugin: 'com.android.library' | apply plugin: 'com.android.library' | ||||||
| apply plugin: 'kotlin-android' | apply plugin: 'kotlin-android' | ||||||
| apply plugin: 'kotlin-android-extensions' |  | ||||||
|  |  | ||||||
| afterEvaluate { | afterEvaluate { | ||||||
|     generateReleaseBuildConfig.enabled = false |     generateReleaseBuildConfig.enabled = false | ||||||
| } | } | ||||||
|  |  | ||||||
| android { | android { | ||||||
|     compileSdkVersion 29 |     compileSdkVersion 31 | ||||||
|     buildToolsVersion "29.0.2" |     buildToolsVersion "31.0.0" | ||||||
|  |  | ||||||
|  |  | ||||||
|     defaultConfig { |     defaultConfig { | ||||||
|         minSdkVersion 23 |         minSdkVersion 23 | ||||||
|         targetSdkVersion 29 |         targetSdkVersion 31 | ||||||
|         versionCode 1 |         versionName "2.0.0" | ||||||
|         versionName "1.0.0" |  | ||||||
|  |  | ||||||
|         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" |         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | ||||||
|         consumerProguardFiles 'consumer-rules.pro' |         consumerProguardFiles 'consumer-rules.pro' | ||||||
| @@ -32,14 +30,14 @@ android { | |||||||
|  |  | ||||||
| dependencies { | dependencies { | ||||||
|     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" |     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" | ||||||
|     implementation 'androidx.appcompat:appcompat:1.1.0' |     implementation 'androidx.appcompat:appcompat:1.3.1' | ||||||
|     implementation 'androidx.core:core-ktx:1.1.0' |     implementation 'androidx.core:core-ktx:1.6.0' | ||||||
|     implementation "androidx.recyclerview:recyclerview:1.1.0" |     implementation "androidx.recyclerview:recyclerview:1.2.1" | ||||||
|     implementation "com.github.adriankuta:tree-structure:1.2.3" |     implementation "com.github.adriankuta:tree-structure:2.0.3" | ||||||
|  |  | ||||||
|     testImplementation 'junit:junit:4.12' |     testImplementation 'junit:junit:4.13.2' | ||||||
|     androidTestImplementation 'androidx.test.ext:junit:1.1.1' |     androidTestImplementation 'androidx.test.ext:junit:1.1.3' | ||||||
|     androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' |     androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' | ||||||
| } | } | ||||||
|  |  | ||||||
| ext { | ext { | ||||||
| @@ -48,4 +46,4 @@ ext { | |||||||
|     PUBLISH_VERSION = android.defaultConfig.versionName |     PUBLISH_VERSION = android.defaultConfig.versionName | ||||||
| } | } | ||||||
|  |  | ||||||
| apply from: "${rootProject.projectDir}/scripts/publish-mavencentral.gradle" | apply from: "${rootProject.projectDir}/scripts/publish-module.gradle" | ||||||
|   | |||||||
| @@ -1,3 +0,0 @@ | |||||||
| <resources> |  | ||||||
|     <string name="app_name">Expandable RecyclerView</string> |  | ||||||
| </resources> |  | ||||||
							
								
								
									
										2
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
								
							| @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME | |||||||
| distributionPath=wrapper/dists | distributionPath=wrapper/dists | ||||||
| zipStoreBase=GRADLE_USER_HOME | zipStoreBase=GRADLE_USER_HOME | ||||||
| zipStorePath=wrapper/dists | zipStorePath=wrapper/dists | ||||||
| distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip | distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip | ||||||
|   | |||||||
| @@ -1,122 +0,0 @@ | |||||||
| task androidSourcesJar(type: Jar) { |  | ||||||
|     archiveClassifier.set("sources") |  | ||||||
|     from android.sourceSets.main.java.source |  | ||||||
| } |  | ||||||
|  |  | ||||||
| artifacts { |  | ||||||
|     archives androidSourcesJar |  | ||||||
| } |  | ||||||
|  |  | ||||||
| apply plugin: 'maven-publish' |  | ||||||
| apply plugin: 'signing' |  | ||||||
|  |  | ||||||
| group = PUBLISH_GROUP_ID |  | ||||||
| version = PUBLISH_VERSION |  | ||||||
|  |  | ||||||
| ext["signing.keyId"] = '' |  | ||||||
| ext["signing.password"] = '' |  | ||||||
| ext["signing.secretKeyRingFile"] = '' |  | ||||||
| ext["ossrhUsername"] = '' |  | ||||||
| ext["ossrhPassword"] = '' |  | ||||||
|  |  | ||||||
| File secretPropsFile = project.rootProject.file('local.properties') |  | ||||||
| if (secretPropsFile.exists()) { |  | ||||||
|     println "Found secret props file, loading props" |  | ||||||
|     Properties p = new Properties() |  | ||||||
|     p.load(new FileInputStream(secretPropsFile)) |  | ||||||
|     p.each { name, value -> |  | ||||||
|         ext[name] = value |  | ||||||
|     } |  | ||||||
| } else { |  | ||||||
|     println "No props file, loading env vars" |  | ||||||
|     ext["signing.keyId"] = System.getenv('SIGNING_KEY_ID') |  | ||||||
|     ext["signing.password"] = System.getenv('SIGNING_PASSWORD') |  | ||||||
|     ext["signing.secretKeyRingFile"] = System.getenv('SIGNING_SECRET_KEY_RING_FILE') |  | ||||||
|     ext["ossrhUsername"] = System.getenv('OSSRH_USERNAME') |  | ||||||
|     ext["ossrhPassword"] = System.getenv('OSSRH_PASSWORD') |  | ||||||
| } |  | ||||||
|  |  | ||||||
| nexusStaging { |  | ||||||
|     packageGroup = PUBLISH_GROUP_ID |  | ||||||
|     stagingProfileId = '2097bad464f778' |  | ||||||
|     username = ossrhUsername |  | ||||||
|     password = ossrhPassword |  | ||||||
| } |  | ||||||
|  |  | ||||||
| publishing { |  | ||||||
|     publications { |  | ||||||
|         release(MavenPublication) { |  | ||||||
|             // The coordinates of the library, being set from variables that |  | ||||||
|             // we'll set up in a moment |  | ||||||
|             groupId PUBLISH_GROUP_ID |  | ||||||
|             artifactId PUBLISH_ARTIFACT_ID |  | ||||||
|             version PUBLISH_VERSION |  | ||||||
|  |  | ||||||
|             // Two artifacts, the `aar` and the sources |  | ||||||
|             artifact("$buildDir/outputs/aar/${project.getName()}-release.aar") |  | ||||||
|             artifact androidSourcesJar |  | ||||||
|  |  | ||||||
|             // Self-explanatory metadata for the most part |  | ||||||
|             pom { |  | ||||||
|                 name = PUBLISH_ARTIFACT_ID |  | ||||||
|                 description = 'Multilevel expandable recyclerView.' |  | ||||||
|                 // If your project has a dedicated site, use its URL here |  | ||||||
|                 url = 'https://github.com/AdrianKuta/Expandable-RecyclerView' |  | ||||||
|                 licenses { |  | ||||||
|                     license { |  | ||||||
|                         name = 'Apache License 2.0' |  | ||||||
|                         url = 'https://github.com/AdrianKuta/Expandable-RecyclerView/blob/master/LICENSE' |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|                 developers { |  | ||||||
|                     developer { |  | ||||||
|                         name = 'Adrian Kuta' |  | ||||||
|                         email = 'adrian.kuta93@gmail.com' |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|                 // Version control info, if you're using GitHub, follow the format as seen here |  | ||||||
|                 scm { |  | ||||||
|                     connection = 'scm:git:github.com/AdrianKuta/Expandable-RecyclerView.git' |  | ||||||
|                     developerConnection = 'scm:git:ssh://github.com/AdrianKuta/Expandable-RecyclerView.git' |  | ||||||
|                     url = 'https://github.com/AdrianKuta/Expandable-RecyclerView/tree/master' |  | ||||||
|                 } |  | ||||||
|                 // A slightly hacky fix so that your POM will include any transitive dependencies |  | ||||||
|                 // that your library builds upon |  | ||||||
|                 withXml { |  | ||||||
|                     def dependenciesNode = asNode().appendNode('dependencies') |  | ||||||
|  |  | ||||||
|                     project.configurations.implementation.allDependencies.each { |  | ||||||
|                         def dependencyNode = dependenciesNode.appendNode('dependency') |  | ||||||
|                         dependencyNode.appendNode('groupId', it.group) |  | ||||||
|                         dependencyNode.appendNode('artifactId', it.name) |  | ||||||
|                         dependencyNode.appendNode('version', it.version) |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|     repositories { |  | ||||||
|         // The repository to publish to, Sonatype/MavenCentral |  | ||||||
|         maven { |  | ||||||
|             // This is an arbitrary name, you may also use "mavencentral" or |  | ||||||
|             // any other name that's descriptive for you |  | ||||||
|             name = "sonatype" |  | ||||||
|  |  | ||||||
|             def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/" |  | ||||||
|             def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/" |  | ||||||
|             // You only need this if you want to publish snapshots, otherwise just set the URL |  | ||||||
|             // to the release repo directly |  | ||||||
|             url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl |  | ||||||
|  |  | ||||||
|             // The username and password we've fetched earlier |  | ||||||
|             credentials { |  | ||||||
|                 username ossrhUsername |  | ||||||
|                 password ossrhPassword |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| signing { |  | ||||||
|     sign publishing.publications |  | ||||||
| } |  | ||||||
							
								
								
									
										86
									
								
								scripts/publish-module.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								scripts/publish-module.gradle
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,86 @@ | |||||||
|  | apply plugin: 'maven-publish' | ||||||
|  | apply plugin: 'signing' | ||||||
|  | apply plugin: 'org.jetbrains.dokka' | ||||||
|  |  | ||||||
|  | task androidSourcesJar(type: Jar) { | ||||||
|  |     archiveClassifier.set('sources') | ||||||
|  |     if (project.plugins.findPlugin("com.android.library")) { | ||||||
|  |         from android.sourceSets.main.java.srcDirs | ||||||
|  |         from android.sourceSets.main.kotlin.srcDirs | ||||||
|  |     } else { | ||||||
|  |         from sourceSets.main.java.srcDirs | ||||||
|  |         from sourceSets.main.kotlin.srcDirs | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | tasks.withType(dokkaHtmlPartial.getClass()).configureEach { | ||||||
|  |     pluginsMapConfiguration.set( | ||||||
|  |             ["org.jetbrains.dokka.base.DokkaBase": """{ "separateInheritedMembers": true}"""] | ||||||
|  |     ) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | task javadocJar(type: Jar, dependsOn: dokkaJavadoc) { | ||||||
|  |     archiveClassifier.set('javadoc') | ||||||
|  |     from dokkaJavadoc.outputDirectory | ||||||
|  | } | ||||||
|  |  | ||||||
|  | artifacts { | ||||||
|  |     archives androidSourcesJar | ||||||
|  |     archives javadocJar | ||||||
|  | } | ||||||
|  |  | ||||||
|  | group = PUBLISH_GROUP_ID | ||||||
|  | version = PUBLISH_VERSION | ||||||
|  |  | ||||||
|  | afterEvaluate { | ||||||
|  |     publishing { | ||||||
|  |         publications { | ||||||
|  |             release(MavenPublication) { | ||||||
|  |                 groupId PUBLISH_GROUP_ID | ||||||
|  |                 artifactId PUBLISH_ARTIFACT_ID | ||||||
|  |                 version PUBLISH_VERSION | ||||||
|  |                 if (project.plugins.findPlugin("com.android.library")) { | ||||||
|  |                     from components.release | ||||||
|  |                 } else { | ||||||
|  |                     from components.java | ||||||
|  |                 } | ||||||
|  |  | ||||||
|  |                 artifact androidSourcesJar | ||||||
|  |                 artifact javadocJar | ||||||
|  |  | ||||||
|  |                 pom { | ||||||
|  |                     name = PUBLISH_ARTIFACT_ID | ||||||
|  |                     description = 'Simple implementation to store object in tree structure.' | ||||||
|  |                     url = 'https://github.com/AdrianKuta/Tree-Data-Structure' | ||||||
|  |                     licenses { | ||||||
|  |                         license { | ||||||
|  |                             name = 'MIT License' | ||||||
|  |                             url = 'https://www.mit.edu/~amini/LICENSE.md' | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                     developers { | ||||||
|  |                         developer { | ||||||
|  |                             name = 'Adrian Kuta' | ||||||
|  |                             email = 'adrian.kuta93@gmail.com' | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                     // Version control info, if you're using GitHub, follow the format as seen here | ||||||
|  |                     scm { | ||||||
|  |                         connection = 'scm:git:github.com/AdrianKuta/Tree-Data-Structure.git' | ||||||
|  |                         developerConnection = 'scm:git:ssh://github.com/AdrianKuta/Tree-Data-Structure.git' | ||||||
|  |                         url = 'https://github.com/AdrianKuta/Tree-Data-Structure/tree/master' | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | signing { | ||||||
|  |     useInMemoryPgpKeys( | ||||||
|  |             rootProject.ext["signing.keyId"], | ||||||
|  |             rootProject.ext["signing.key"], | ||||||
|  |             rootProject.ext["signing.password"], | ||||||
|  |     ) | ||||||
|  |     sign publishing.publications | ||||||
|  | } | ||||||
							
								
								
									
										43
									
								
								scripts/publish-root.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								scripts/publish-root.gradle
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | |||||||
|  | // Create variables with empty default values | ||||||
|  | ext["ossrhUsername"] = '' | ||||||
|  | ext["ossrhPassword"] = '' | ||||||
|  | ext["sonatypeStagingProfileId"] = '' | ||||||
|  | ext["signing.keyId"] = '' | ||||||
|  | ext["signing.password"] = '' | ||||||
|  | ext["signing.key"] = '' | ||||||
|  | ext["snapshot"] = '' | ||||||
|  |  | ||||||
|  | File secretPropsFile = project.rootProject.file('local.properties') | ||||||
|  | if (secretPropsFile.exists()) { | ||||||
|  |     // Read local.properties file first if it exists | ||||||
|  |     Properties p = new Properties() | ||||||
|  |     new FileInputStream(secretPropsFile).withCloseable { is -> p.load(is) } | ||||||
|  |     p.each { name, value -> ext[name] = value } | ||||||
|  | } else { | ||||||
|  |     // Use system environment variables | ||||||
|  |     ext["ossrhUsername"] = System.getenv('OSSRH_USERNAME') | ||||||
|  |     ext["ossrhPassword"] = System.getenv('OSSRH_PASSWORD') | ||||||
|  |     ext["sonatypeStagingProfileId"] = System.getenv('SONATYPE_STAGING_PROFILE_ID') | ||||||
|  |     ext["signing.keyId"] = System.getenv('SIGNING_KEY_ID') | ||||||
|  |     ext["signing.password"] = System.getenv('SIGNING_PASSWORD') | ||||||
|  |     ext["signing.key"] = System.getenv('SIGNING_KEY') | ||||||
|  |     ext["snapshot"] = System.getenv('SNAPSHOT') | ||||||
|  | } | ||||||
|  |  | ||||||
|  | //if (snapshot) { | ||||||
|  | //    ext["rootVersionName"] = Configuration.snapshotVersionName | ||||||
|  | //} else { | ||||||
|  | //    ext["rootVersionName"] = Configuration.versionName | ||||||
|  | //} | ||||||
|  |  | ||||||
|  | // Set up Sonatype repository | ||||||
|  | nexusPublishing { | ||||||
|  |     repositories { | ||||||
|  |         sonatype { | ||||||
|  |             stagingProfileId = sonatypeStagingProfileId | ||||||
|  |             username = ossrhUsername | ||||||
|  |             password = ossrhPassword | ||||||
|  |             //version = rootVersionName | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user