From b073cf0932f6b5c2f7e960439fb6c8ce518566d5 Mon Sep 17 00:00:00 2001 From: Nahabwe Edwin Date: Wed, 16 Apr 2025 14:28:09 +0300 Subject: [PATCH 1/4] Update gradle and project files to work with jitpack --- .idea/AndroidProjectSystem.xml | 6 + .idea/appInsightsSettings.xml | 23 + .idea/caches/deviceStreaming.xml | 607 ++++++++++++++++++++ .idea/compiler.xml | 6 + .idea/deploymentTargetSelector.xml | 10 + .idea/gradle.xml | 5 +- .idea/kotlinc.xml | 6 + .idea/migrations.xml | 10 + .idea/misc.xml | 25 +- .idea/modules.xml | 12 - .idea/runConfigurations.xml | 8 + .idea/vcs.xml | 2 +- app/build.gradle | 6 +- bubbleshowcase/build.gradle | 19 +- bubbleshowcase/deploy.gradle | 56 +- bubbleshowcase/src/main/AndroidManifest.xml | 3 +- build.gradle | 6 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 18 files changed, 751 insertions(+), 63 deletions(-) create mode 100644 .idea/AndroidProjectSystem.xml create mode 100644 .idea/appInsightsSettings.xml create mode 100644 .idea/caches/deviceStreaming.xml create mode 100644 .idea/compiler.xml create mode 100644 .idea/deploymentTargetSelector.xml create mode 100644 .idea/kotlinc.xml create mode 100644 .idea/migrations.xml delete mode 100644 .idea/modules.xml diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml new file mode 100644 index 0000000..4a53bee --- /dev/null +++ b/.idea/AndroidProjectSystem.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/appInsightsSettings.xml b/.idea/appInsightsSettings.xml new file mode 100644 index 0000000..d8bafb1 --- /dev/null +++ b/.idea/appInsightsSettings.xml @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file diff --git a/.idea/caches/deviceStreaming.xml b/.idea/caches/deviceStreaming.xml new file mode 100644 index 0000000..9e9ba09 --- /dev/null +++ b/.idea/caches/deviceStreaming.xml @@ -0,0 +1,607 @@ + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..b86273d --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml new file mode 100644 index 0000000..b268ef3 --- /dev/null +++ b/.idea/deploymentTargetSelector.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index fc9576b..0975d1c 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,10 +1,12 @@ + diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..f8467b4 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/migrations.xml b/.idea/migrations.xml new file mode 100644 index 0000000..f8051a6 --- /dev/null +++ b/.idea/migrations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 13c4629..1ffae54 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,26 +5,45 @@ - + diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 593b872..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml index 7f68460..72f00ed 100644 --- a/.idea/runConfigurations.xml +++ b/.idea/runConfigurations.xml @@ -3,6 +3,14 @@ - + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 70a71c1..88fa1c4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' +//apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 27 @@ -20,6 +20,10 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + kotlinOptions { + jvmTarget = "20" // ✅ valid + } + namespace "com.elconfidencial.bubbleshowcase" } dependencies { diff --git a/bubbleshowcase/build.gradle b/bubbleshowcase/build.gradle index e95061c..364e084 100644 --- a/bubbleshowcase/build.gradle +++ b/bubbleshowcase/build.gradle @@ -1,18 +1,16 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' -apply plugin: 'com.github.dcendents.android-maven' -apply plugin: 'com.jfrog.bintray' +//apply plugin: 'kotlin-android-extensions' +//apply plugin: 'com.github.dcendents.android-maven' +//apply plugin: 'com.jfrog.bintray' apply plugin: 'org.jetbrains.dokka' -apply plugin: 'maven-publish' - +//apply plugin: 'maven-publish' android { compileSdkVersion 26 - defaultConfig { minSdkVersion 16 targetSdkVersion 26 @@ -29,7 +27,10 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } - + kotlinOptions { + jvmTarget = "20" // ✅ valid + } + namespace "com.elconfidencial.bubbleshowcase" } dokka { @@ -39,7 +40,7 @@ dokka { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'com.android.support.constraint:constraint-layout:1.0.2' implementation 'com.android.support:appcompat-v7:26.1.0' testImplementation 'junit:junit:4.12' @@ -51,4 +52,4 @@ repositories { } -apply from: 'deploy.gradle' +//apply from: 'deploy.gradle' diff --git a/bubbleshowcase/deploy.gradle b/bubbleshowcase/deploy.gradle index cbf8cc6..7ccd06f 100644 --- a/bubbleshowcase/deploy.gradle +++ b/bubbleshowcase/deploy.gradle @@ -1,6 +1,6 @@ -apply plugin: 'com.github.dcendents.android-maven' -apply plugin: 'com.jfrog.bintray' -apply from: 'keystore.gradle' +//apply plugin: 'com.github.dcendents.android-maven' +//apply plugin: 'com.jfrog.bintray' +//apply from: 'keystore.gradle' //This file was created following instructions from: https://notes.devlabs.bg/beginners-guide-for-publishing-a-kotlin-library-to-jcenter-41272bfc214 @@ -13,32 +13,32 @@ ext{ version = libraryVersion group = groupId -bintray{ - user = 'laboratorioec' - key = bintray_api_key //Defined in keystore.gradle file - configurations = ['archives'] - publish = true - override = true - pkg { - repo = "Laboratorio-apps" - name = "BubbleShowCase" - version { - name = libraryVersion - } - } -} +//bintray{ +// user = 'laboratorioec' +// key = bintray_api_key //Defined in keystore.gradle file +// configurations = ['archives'] +// publish = true +// override = true +// pkg { +// repo = "Laboratorio-apps" +// name = "BubbleShowCase" +// version { +// name = libraryVersion +// } +// } +//} -install { - repositories.mavenInstaller { - pom.project { - packaging 'aar' - groupId groupId - artifactId artifactId - version libraryVersion - name artifactId - } - } -} +//install { +// repositories.mavenInstaller { +// pom.project { +// packaging 'aar' +// groupId groupId +// artifactId artifactId +// version libraryVersion +// name artifactId +// } +// } +//} if (project.hasProperty("kotlin")) { //Kotlin libraries task sourcesJar(type: Jar) { diff --git a/bubbleshowcase/src/main/AndroidManifest.xml b/bubbleshowcase/src/main/AndroidManifest.xml index ba35b60..a822177 100644 --- a/bubbleshowcase/src/main/AndroidManifest.xml +++ b/bubbleshowcase/src/main/AndroidManifest.xml @@ -1,2 +1 @@ - + diff --git a/build.gradle b/build.gradle index f88a8d6..841bd45 100644 --- a/build.gradle +++ b/build.gradle @@ -1,18 +1,18 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.2.61' + ext.kotlin_version = '1.9.10' ext.dokka_version = '0.9.17' repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' + classpath 'com.android.tools.build:gradle:8.9.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" //Maven plugins - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4' +// classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' classpath "org.jetbrains.dokka:dokka-gradle-plugin:${dokka_version}" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index cae88ba..ef2a70a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Sep 04 15:24:44 CEST 2018 +#Wed Apr 16 12:56:45 EAT 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip From d646244d3efff0b2b6e0abe7ade07c1cbc1ca581 Mon Sep 17 00:00:00 2001 From: Nahabwe Edwin Date: Wed, 16 Apr 2025 14:51:56 +0300 Subject: [PATCH 2/4] Match JVM versions and upgrade kotlin options --- .idea/appInsightsSettings.xml | 17 +++++++++ app/build.gradle | 10 +++++- app/src/main/AndroidManifest.xml | 1 + .../bubbleshowcase/MainActivity.kt | 36 +++++++++---------- bubbleshowcase/build.gradle | 6 +++- 5 files changed, 49 insertions(+), 21 deletions(-) diff --git a/.idea/appInsightsSettings.xml b/.idea/appInsightsSettings.xml index d8bafb1..8811c8f 100644 --- a/.idea/appInsightsSettings.xml +++ b/.idea/appInsightsSettings.xml @@ -17,6 +17,23 @@ + + + + + + + diff --git a/app/build.gradle b/app/build.gradle index 88fa1c4..daa8caa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -21,9 +21,17 @@ android { } } kotlinOptions { - jvmTarget = "20" // ✅ valid + jvmTarget = '11' // ✅ valid } + viewBinding { + enabled = true + } + namespace "com.elconfidencial.bubbleshowcase" + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } } dependencies { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c1d6ac5..11bb12c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,6 +10,7 @@ android:supportsRtl="true" android:theme="@style/AppTheme"> diff --git a/app/src/main/java/com/elconfidencial/bubbleshowcase/MainActivity.kt b/app/src/main/java/com/elconfidencial/bubbleshowcase/MainActivity.kt index a8d2e5e..0893bce 100644 --- a/app/src/main/java/com/elconfidencial/bubbleshowcase/MainActivity.kt +++ b/app/src/main/java/com/elconfidencial/bubbleshowcase/MainActivity.kt @@ -3,28 +3,26 @@ package com.elconfidencial.bubbleshowcase import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.support.v4.content.ContextCompat -import android.support.v7.view.menu.ActionMenuItemView -import android.view.Menu -import android.view.MenuItem import android.widget.Toast -import kotlinx.android.synthetic.main.activity_main.* +import com.elconfidencial.bubbleshowcase.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { + private val binding by lazy { ActivityMainBinding.inflate(layoutInflater) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_main) + setContentView(binding.root) setUpListeners() } private fun setUpListeners(){ - buttonSimpleShowCase.setOnClickListener { getSimpleShowCaseBuilder().show() } - buttonColorShowCase.setOnClickListener { getCustomColorShowCaseBuilder().show() } - buttonTextSizeShowCase.setOnClickListener { getTextSizeShowCaseBuilder().show() } - buttonArrowLeftShowCase.setOnClickListener { getArrowLeftShowCaseBuilder().show() } - buttonArrowRightShowCase.setOnClickListener { getArrowRightShowCaseBuilder().show() } - buttonEventListener.setOnClickListener { getListenerShowCaseBuilder().show() } - buttonSequence.setOnClickListener { getSequence().show() } + binding. buttonSimpleShowCase.setOnClickListener { getSimpleShowCaseBuilder().show() } + binding. buttonColorShowCase.setOnClickListener { getCustomColorShowCaseBuilder().show() } + binding.buttonTextSizeShowCase.setOnClickListener { getTextSizeShowCaseBuilder().show() } + binding. buttonArrowLeftShowCase.setOnClickListener { getArrowLeftShowCaseBuilder().show() } + binding.buttonArrowRightShowCase.setOnClickListener { getArrowRightShowCaseBuilder().show() } + binding. buttonEventListener.setOnClickListener { getListenerShowCaseBuilder().show() } + binding. buttonSequence.setOnClickListener { getSequence().show() } } //SHOW CASES GETTERS @@ -33,7 +31,7 @@ class MainActivity : AppCompatActivity() { return BubbleShowCaseBuilder(this) .title("Welcome!!!") .description("This is a simple BubbleShowCase with default values.") - .targetView(buttonSimpleShowCase) + .targetView(binding.buttonSimpleShowCase) } private fun getCustomColorShowCaseBuilder(): BubbleShowCaseBuilder{ @@ -44,7 +42,7 @@ class MainActivity : AppCompatActivity() { .image(ContextCompat.getDrawable(this, R.drawable.ic_color)!!) .closeActionImage(ContextCompat.getDrawable(this, R.drawable.ic_close_black)!!) .textColor(ContextCompat.getColor(this, R.color.colorBlack)) - .targetView(buttonColorShowCase) + .targetView(binding.buttonColorShowCase) } private fun getTextSizeShowCaseBuilder(): BubbleShowCaseBuilder{ @@ -56,7 +54,7 @@ class MainActivity : AppCompatActivity() { .titleTextSize(18) .descriptionTextSize(16) .closeActionImage(null) - .targetView(buttonTextSizeShowCase) + .targetView(binding.buttonTextSizeShowCase) } private fun getArrowLeftShowCaseBuilder(): BubbleShowCaseBuilder{ @@ -65,7 +63,7 @@ class MainActivity : AppCompatActivity() { .description("You only have to specify in which side you want the arrow, and the bubble will be located depending on it.") .arrowPosition(BubbleShowCase.ArrowPosition.LEFT) .backgroundColor(ContextCompat.getColor(this, R.color.colorRed)) - .targetView(buttonArrowLeftShowCase) + .targetView(binding.buttonArrowLeftShowCase) } private fun getArrowRightShowCaseBuilder(): BubbleShowCaseBuilder{ @@ -73,7 +71,7 @@ class MainActivity : AppCompatActivity() { .title("Arrow set on right side this time :)") .arrowPosition(BubbleShowCase.ArrowPosition.RIGHT) .backgroundColor(ContextCompat.getColor(this, R.color.colorPink)) - .targetView(buttonArrowRightShowCase) + .targetView(binding.buttonArrowRightShowCase) } @@ -81,7 +79,7 @@ class MainActivity : AppCompatActivity() { return BubbleShowCaseBuilder(this) .title("Listen user actions!") .description("You can detect when the user interacts with the different view elements to act consequently.") - .backgroundColor(ContextCompat.getColor(this, R.color.colorOrange)) + .backgroundColor(ContextCompat.getColor(this, com.elconfidencial.bubbleshowcase.R.color.colorOrange)) .image(ContextCompat.getDrawable(this, R.drawable.ic_sentiment_satisfied)!!) .listener(object : BubbleShowCaseListener{ override fun onBubbleClick(bubbleShowCase: BubbleShowCase) { @@ -100,7 +98,7 @@ class MainActivity : AppCompatActivity() { Toast.makeText(this@MainActivity, "OnClose", Toast.LENGTH_SHORT).show() } }) - .targetView(buttonEventListener) + .targetView(binding.buttonEventListener) } private fun getSequence(): BubbleShowCaseSequence{ diff --git a/bubbleshowcase/build.gradle b/bubbleshowcase/build.gradle index 364e084..5f7eb34 100644 --- a/bubbleshowcase/build.gradle +++ b/bubbleshowcase/build.gradle @@ -28,9 +28,13 @@ android { } } kotlinOptions { - jvmTarget = "20" // ✅ valid + jvmTarget = '11' // ✅ valid } namespace "com.elconfidencial.bubbleshowcase" + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } } dokka { From f01118f78288668f72fbec1743921e641b571e10 Mon Sep 17 00:00:00 2001 From: Nahabwe Edwin Date: Wed, 16 Apr 2025 14:58:29 +0300 Subject: [PATCH 3/4] Upgrade compile version to 33 --- app/build.gradle | 4 ++-- bubbleshowcase/build.gradle | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index daa8caa..a3912e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,11 +5,11 @@ apply plugin: 'kotlin-android' //apply plugin: 'kotlin-android-extensions' android { - compileSdkVersion 27 + compileSdkVersion 33 defaultConfig { applicationId "com.elconfidencial.bubbleshowcase" minSdkVersion 16 - targetSdkVersion 27 + targetSdkVersion 33 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" diff --git a/bubbleshowcase/build.gradle b/bubbleshowcase/build.gradle index 5f7eb34..7d10a82 100644 --- a/bubbleshowcase/build.gradle +++ b/bubbleshowcase/build.gradle @@ -8,12 +8,12 @@ apply plugin: 'org.jetbrains.dokka' android { - compileSdkVersion 26 + compileSdkVersion 33 defaultConfig { minSdkVersion 16 - targetSdkVersion 26 + targetSdkVersion 33 versionCode 1 versionName "1.0" From 7c20fa2fdd03158e6699abcdb6e9dae3aa8d890d Mon Sep 17 00:00:00 2001 From: Nahabwe Edwin Date: Wed, 16 Apr 2025 15:20:53 +0300 Subject: [PATCH 4/4] Update readme --- README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 70317bc..80aab62 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # BubbleShowCase - Android - [ ![Download](https://api.bintray.com/packages/laboratorioec/Laboratorio-apps/BubbleShowCase/images/download.svg) ](https://bintray.com/laboratorioec/Laboratorio-apps/BubbleShowCase/_latestVersion) + [ [Download]](https://bintray.com/laboratorioec/Laboratorio-apps/BubbleShowCase/_latestVersion) [![Android Arsenal]( https://img.shields.io/badge/Android%20Arsenal-BubbleShowCase-green.svg?style=flat )]( https://android-arsenal.com/details/1/7119 ) BubbleShowCase is an elegant and simple framework developed in Kotlin (usable also in Java) that let you to use informative bubbles to help your users pointing out different features of your application or in your App onboarding. The basic use of the framework consists on a target element passed as input which will be highlighted over a translucent background and pointed out by a customizable bubble. @@ -8,11 +8,15 @@ BubbleShowCase is an elegant and simple framework developed in Kotlin (usable al ## Getting started -Add the library into your proyect is really easy, you just need to add this line in dependencies block in your app Gradle: +Add the library into your project is really easy, +1. Add the maven jitpack dependency to your project build.gradle repositories block ```groovy -implementation 'com.elconfidencial.bubbleshowcase:bubbleshowcase:LATEST_VERSION' +maven { url 'https://jitpack.io' } +``` +2. Then add the repo to your dependencies in your app build.gradle +```groovy +implementation 'com.github.musicmeetscode:BubbleShowCase-Android:v2.0.2' ``` -**NOTE:** You can check the LATEST_VERSION in the version badge at the top of this file. ## Usage ### Basic sample