diff --git a/.gitignore b/.gitignore index 9d334833d..4406bafa4 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,4 @@ .externalNativeBuild .cxx /.idea/* -/scripts/publish/publish.properties +/scripts/publish/_credentials.properties diff --git a/build.gradle b/build.gradle index 06951326d..7f38e0631 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,6 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { alias(libs.plugins.dokka) - alias(libs.plugins.gradle.nexus.publish) alias(libs.plugins.android.library) apply false alias(libs.plugins.android.application) apply false alias(libs.plugins.kotlin.android) apply false @@ -48,6 +47,5 @@ task prCheck { dependsOn ':pluto:validateChanges' } -apply from: "$rootDir/scripts/publish/root.gradle" apply from: "$rootDir/scripts/project-dependancy-graph.gradle" apply from: "$rootDir/maven-versions.gradle" \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index acab1e590..d8c237256 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -30,7 +30,6 @@ android-application = { id = "com.android.application", version.ref = "agp" } android-library = { id = "com.android.library", version.ref = "agp" } detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } dokka = { id = "org.jetbrains.dokka", version = "1.5.0" } -gradle-nexus-publish = { id = "io.github.gradle-nexus.publish-plugin", version = "1.1.0" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } diff --git a/pluto-plugins/base/lib/build.gradle b/pluto-plugins/base/lib/build.gradle index 5485276cf..f75c56dc5 100644 --- a/pluto-plugins/base/lib/build.gradle +++ b/pluto-plugins/base/lib/build.gradle @@ -2,52 +2,16 @@ plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) } - -apply from: "$rootDir/scripts/build/utils.gradle" -apply from: "$rootDir/scripts/publish/module.gradle" - -def verCode, verName, verBuild, verNameShort, verPublish -(verCode, verName, verBuild, verNameShort, verPublish) = genVersion() +apply from: "$rootDir/scripts/pluginBuilder.gradle" ext { PUBLISH_GROUP_ID = "com.plutolib" - PUBLISH_VERSION = verPublish PUBLISH_ARTIFACT_ID = 'plugin' } android { - compileSdk = libs.versions.compileSdk.get().toInteger() - buildToolsVersion = libs.versions.buildTools.get() - - buildFeatures { - viewBinding true - } - - defaultConfig { - minSdk = libs.versions.minSdk.get().toInteger() - targetSdk = libs.versions.targetSdk.get().toInteger() - } - - buildTypes { - release { - debuggable true - minifyEnabled false - shrinkResources false - } - } - compileOptions { - sourceCompatibility = JavaVersion.toVersion(libs.versions.java.get()) - targetCompatibility = JavaVersion.toVersion(libs.versions.java.get()) - } - kotlinOptions { - jvmTarget = libs.versions.java.get() - } - resourcePrefix 'pluto___' namespace 'com.pluto.plugin' - lint { - abortOnError false - } } dependencies { diff --git a/pluto-plugins/bundle/lib-no-op/build.gradle b/pluto-plugins/bundle/lib-no-op/build.gradle index e19359adf..7532bace8 100644 --- a/pluto-plugins/bundle/lib-no-op/build.gradle +++ b/pluto-plugins/bundle/lib-no-op/build.gradle @@ -1,44 +1,16 @@ plugins { alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) } - -apply from: "$rootDir/scripts/build/utils.gradle" -apply from: "$rootDir/scripts/publish/module.gradle" - -def verCode, verName, verBuild, verNameShort, verPublish -(verCode, verName, verBuild, verNameShort, verPublish) = genVersion() +apply from: "$rootDir/scripts/pluginBuilder.gradle" ext { PUBLISH_GROUP_ID = "com.plutolib.plugins" - PUBLISH_VERSION = verPublish PUBLISH_ARTIFACT_ID = 'bundle-core-no-op' } android { - compileSdk = libs.versions.compileSdk.get().toInteger() - buildToolsVersion = libs.versions.buildTools.get() - - - defaultConfig { - minSdk = libs.versions.minSdk.get().toInteger() - targetSdk = libs.versions.targetSdk.get().toInteger() - } - - buildTypes { - release { - debuggable true - minifyEnabled false - shrinkResources false - } - } - compileOptions { - sourceCompatibility = JavaVersion.toVersion(libs.versions.java.get()) - targetCompatibility = JavaVersion.toVersion(libs.versions.java.get()) - } namespace 'com.pluto.plugins.bundle.core' - lint { - abortOnError false - } } dependencies { diff --git a/pluto-plugins/bundle/lib/build.gradle b/pluto-plugins/bundle/lib/build.gradle index 824a8ccb0..2f56e0698 100644 --- a/pluto-plugins/bundle/lib/build.gradle +++ b/pluto-plugins/bundle/lib/build.gradle @@ -1,44 +1,16 @@ plugins { alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) } - -apply from: "$rootDir/scripts/build/utils.gradle" -apply from: "$rootDir/scripts/publish/module.gradle" - -def verCode, verName, verBuild, verNameShort, verPublish -(verCode, verName, verBuild, verNameShort, verPublish) = genVersion() +apply from: "$rootDir/scripts/pluginBuilder.gradle" ext { PUBLISH_GROUP_ID = "com.plutolib.plugins" - PUBLISH_VERSION = verPublish PUBLISH_ARTIFACT_ID = 'bundle-core' } android { - compileSdk = libs.versions.compileSdk.get().toInteger() - buildToolsVersion = libs.versions.buildTools.get() - - - defaultConfig { - minSdk = libs.versions.minSdk.get().toInteger() - targetSdk = libs.versions.targetSdk.get().toInteger() - } - - buildTypes { - release { - debuggable true - minifyEnabled false - shrinkResources false - } - } - compileOptions { - sourceCompatibility = JavaVersion.toVersion(libs.versions.java.get()) - targetCompatibility = JavaVersion.toVersion(libs.versions.java.get()) - } namespace 'com.pluto.plugins.bundle.core' - lint { - abortOnError false - } } dependencies { diff --git a/pluto-plugins/plugins/datastore/lib-no-op/build.gradle b/pluto-plugins/plugins/datastore/lib-no-op/build.gradle index a4604dce0..6a5e6323a 100644 --- a/pluto-plugins/plugins/datastore/lib-no-op/build.gradle +++ b/pluto-plugins/plugins/datastore/lib-no-op/build.gradle @@ -2,56 +2,15 @@ plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) } - -apply from: "$rootDir/scripts/build/utils.gradle" -apply from: "$rootDir/scripts/publish/module.gradle" - -def verCode, verName, verBuild, verNameShort, verPublish -(verCode, verName, verBuild, verNameShort, verPublish) = genVersion() +apply from: "$rootDir/scripts/pluginBuilder.gradle" ext { PUBLISH_GROUP_ID = "com.plutolib.plugins" - PUBLISH_VERSION = verPublish PUBLISH_ARTIFACT_ID = 'datastore-pref-no-op' } android { - compileSdk = libs.versions.compileSdk.get().toInteger() - buildToolsVersion = libs.versions.buildTools.get() - - buildFeatures { - viewBinding true - } - - - defaultConfig { - minSdk = libs.versions.minSdk.get().toInteger() - targetSdk = libs.versions.targetSdk.get().toInteger() - - buildConfigField "String", "VERSION_NAME", "\"${verPublish}\"" - buildConfigField("long", "VERSION_CODE", "${verCode}") - buildConfigField "String", "GIT_SHA", "\"${gitSha()}\"" - } - - buildTypes { - release { - debuggable true - minifyEnabled false - shrinkResources false - } - } - compileOptions { - sourceCompatibility = JavaVersion.toVersion(libs.versions.java.get()) - targetCompatibility = JavaVersion.toVersion(libs.versions.java.get()) - } - - kotlinOptions { - jvmTarget = libs.versions.java.get() - } namespace 'com.pluto.plugins.datastore.pref' - lint { - abortOnError false - } } dependencies { diff --git a/pluto-plugins/plugins/datastore/lib/build.gradle b/pluto-plugins/plugins/datastore/lib/build.gradle index 8fe6b663d..00e3e4158 100644 --- a/pluto-plugins/plugins/datastore/lib/build.gradle +++ b/pluto-plugins/plugins/datastore/lib/build.gradle @@ -2,63 +2,24 @@ plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) } - -apply from: "$rootDir/scripts/build/utils.gradle" -apply from: "$rootDir/scripts/publish/module.gradle" - -def verCode, verName, verBuild, verNameShort, verPublish -(verCode, verName, verBuild, verNameShort, verPublish) = genVersion() +apply from: "$rootDir/scripts/pluginBuilder.gradle" ext { PUBLISH_GROUP_ID = "com.plutolib.plugins" - PUBLISH_VERSION = verPublish PUBLISH_ARTIFACT_ID = 'datastore-pref' } android { - compileSdk = libs.versions.compileSdk.get().toInteger() - buildToolsVersion = libs.versions.buildTools.get() - buildFeatures { - viewBinding true compose true } - - defaultConfig { - minSdk = libs.versions.minSdk.get().toInteger() - targetSdk = libs.versions.targetSdk.get().toInteger() - - buildConfigField "String", "VERSION_NAME", "\"${verPublish}\"" - buildConfigField("long", "VERSION_CODE", "${verCode}") - buildConfigField "String", "GIT_SHA", "\"${gitSha()}\"" - } - - buildTypes { - release { - debuggable true - minifyEnabled false - shrinkResources false - } - } - compileOptions { - sourceCompatibility = JavaVersion.toVersion(libs.versions.java.get()) - targetCompatibility = JavaVersion.toVersion(libs.versions.java.get()) - } - - kotlinOptions { - jvmTarget = libs.versions.java.get() - } - composeOptions { kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get() } resourcePrefix 'pluto_dts___' namespace 'com.pluto.plugins.datastore.pref' - lint { - abortOnError false - } } dependencies { @@ -73,5 +34,4 @@ dependencies { implementation(libs.constraintlayout.compose) implementation(libs.datastore.preferences) - } \ No newline at end of file diff --git a/pluto-plugins/plugins/demo/lib-no-op/.gitignore b/pluto-plugins/plugins/demo/lib-no-op/.gitignore deleted file mode 100644 index 42afabfd2..000000000 --- a/pluto-plugins/plugins/demo/lib-no-op/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/pluto-plugins/plugins/demo/lib-no-op/build.gradle b/pluto-plugins/plugins/demo/lib-no-op/build.gradle deleted file mode 100644 index 001ca6e1c..000000000 --- a/pluto-plugins/plugins/demo/lib-no-op/build.gradle +++ /dev/null @@ -1,52 +0,0 @@ -plugins { - alias(libs.plugins.android.library) - alias(libs.plugins.kotlin.android) -} - -apply from: "$rootDir/scripts/build/utils.gradle" - -def verCode, verName, verBuild, verNameShort, verPublish -(verCode, verName, verBuild, verNameShort, verPublish) = genVersion() - -android { - compileSdk = libs.versions.compileSdk.get().toInteger() - buildToolsVersion = libs.versions.buildTools.get() - - buildFeatures { - viewBinding true - } - - - defaultConfig { - minSdk = libs.versions.minSdk.get().toInteger() - targetSdk = libs.versions.targetSdk.get().toInteger() - - buildConfigField "String", "VERSION_NAME", "\"${verPublish}\"" - } - - buildTypes { - release { - debuggable true - minifyEnabled false - shrinkResources false - } - } - - compileOptions { - sourceCompatibility = JavaVersion.toVersion(libs.versions.java.get()) - targetCompatibility = JavaVersion.toVersion(libs.versions.java.get()) - } - - kotlinOptions { - jvmTarget = libs.versions.java.get() - } - - resourcePrefix 'demo___' - namespace 'com.demo.plugin' - lint { - abortOnError false - } -} - -dependencies { -} \ No newline at end of file diff --git a/pluto-plugins/plugins/demo/lib-no-op/src/main/AndroidManifest.xml b/pluto-plugins/plugins/demo/lib-no-op/src/main/AndroidManifest.xml deleted file mode 100644 index 44008a433..000000000 --- a/pluto-plugins/plugins/demo/lib-no-op/src/main/AndroidManifest.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/pluto-plugins/plugins/demo/lib-no-op/src/main/java/com/demo/plugin/DemoPlugin.kt b/pluto-plugins/plugins/demo/lib-no-op/src/main/java/com/demo/plugin/DemoPlugin.kt deleted file mode 100644 index 856b0795d..000000000 --- a/pluto-plugins/plugins/demo/lib-no-op/src/main/java/com/demo/plugin/DemoPlugin.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.demo.plugin - -@SuppressWarnings("UnusedPrivateMember") -class DemoPlugin @JvmOverloads constructor(identifier: String = ID) { - companion object { - const val ID = "demo" - } -} diff --git a/pluto-plugins/plugins/demo/lib/.gitignore b/pluto-plugins/plugins/demo/lib/.gitignore deleted file mode 100644 index 42afabfd2..000000000 --- a/pluto-plugins/plugins/demo/lib/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/pluto-plugins/plugins/demo/lib/src/main/AndroidManifest.xml b/pluto-plugins/plugins/demo/lib/src/main/AndroidManifest.xml deleted file mode 100644 index b2bbb1b30..000000000 --- a/pluto-plugins/plugins/demo/lib/src/main/AndroidManifest.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/pluto-plugins/plugins/demo/lib/src/main/java/com/demo/plugin/DemoFragment.kt b/pluto-plugins/plugins/demo/lib/src/main/java/com/demo/plugin/DemoFragment.kt deleted file mode 100644 index 45700d40b..000000000 --- a/pluto-plugins/plugins/demo/lib/src/main/java/com/demo/plugin/DemoFragment.kt +++ /dev/null @@ -1,45 +0,0 @@ -package com.demo.plugin - -import android.os.Bundle -import android.view.View -import androidx.fragment.app.Fragment -import com.demo.plugin.databinding.DemoFragmentDemoBinding -import com.pluto.plugin.share.Shareable -import com.pluto.plugin.share.lazyContentSharer -import com.pluto.utilities.extensions.showMoreOptions -import com.pluto.utilities.extensions.toast -import com.pluto.utilities.setOnDebounceClickListener -import com.pluto.utilities.viewBinding - -class DemoFragment : Fragment(R.layout.demo___fragment_demo) { - - private val binding by viewBinding(DemoFragmentDemoBinding::bind) - private val contentSharer by lazyContentSharer() - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - binding.close.setOnDebounceClickListener { - activity?.finish() - } - binding.options.setOnDebounceClickListener { - context?.showMoreOptions(it, R.menu.demo___menu_more_options) { item -> - when (item.itemId) { - R.id.action1 -> requireContext().toast("Demo Action 1 clicked") - R.id.action2 -> requireContext().toast("Demo Action 2 clicked") - } - } - } - binding.share.setOnDebounceClickListener { - contentSharer.share( - Shareable( - title = "Demo share", - content = "demo content", - fileName = "demo file" - ) - ) - } - binding.notification.setOnDebounceClickListener { - DemoNotification(requireContext()).add() - } - } -} diff --git a/pluto-plugins/plugins/demo/lib/src/main/java/com/demo/plugin/DemoNotification.kt b/pluto-plugins/plugins/demo/lib/src/main/java/com/demo/plugin/DemoNotification.kt deleted file mode 100644 index a64af2ca6..000000000 --- a/pluto-plugins/plugins/demo/lib/src/main/java/com/demo/plugin/DemoNotification.kt +++ /dev/null @@ -1,67 +0,0 @@ -package com.demo.plugin - -import android.app.Notification -import android.app.NotificationChannel -import android.app.NotificationManager -import android.content.Context -import android.os.Build -import androidx.core.app.NotificationCompat -import com.pluto.plugin.libinterface.PlutoInterface -import com.pluto.utilities.device.Device - -internal class DemoNotification(private val context: Context) { - - private val manager: NotificationManager? = - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - context.getSystemService(NotificationManager::class.java) - } else { - context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager? - } - private val device = Device(context) - - fun add() { - createChannel() - val notification: Notification = NotificationCompat.Builder(context, CHANNEL_ID) - .setPriority(NotificationCompat.PRIORITY_DEFAULT) - .setContentTitle(context.getString(R.string.demo___notification_title, device.app.name)) - .setContentText(context.getString(R.string.demo___notification_subtitle)) - .setSmallIcon(R.drawable.demo___ic_plugin_icon) - .setContentIntent(PlutoInterface.notification.getPendingIntent(DemoPlugin.ID)) - .setOngoing(false) - .setOnlyAlertOnce(true) - .setAutoCancel(true) - .setSilent(true) - .setSound(null) - .build() - manager?.notify(NOTIFICATION_ID, notification) - } - - fun remove() { - manager?.cancel(NOTIFICATION_ID) - } - - private fun createNotificationChannel(channel: NotificationChannel) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - manager?.createNotificationChannel(channel) - } - } - - private fun createChannel() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - val channel = NotificationChannel( - CHANNEL_ID, - CHANNEL_NAME, - NotificationManager.IMPORTANCE_DEFAULT - ) - channel.setShowBadge(false) - createNotificationChannel(channel) - } - } - - companion object { - const val NOTIFICATION_ID = 10_001 - const val CHANNEL_ID = "pluto_notifications" - const val GROUP_ID = "pluto_notifications_group" - const val CHANNEL_NAME = "Pluto Notifications" - } -} diff --git a/pluto-plugins/plugins/demo/lib/src/main/java/com/demo/plugin/DemoPlugin.kt b/pluto-plugins/plugins/demo/lib/src/main/java/com/demo/plugin/DemoPlugin.kt deleted file mode 100644 index 286b4264b..000000000 --- a/pluto-plugins/plugins/demo/lib/src/main/java/com/demo/plugin/DemoPlugin.kt +++ /dev/null @@ -1,41 +0,0 @@ -package com.demo.plugin - -import androidx.fragment.app.Fragment -import com.pluto.plugin.DeveloperDetails -import com.pluto.plugin.Plugin -import com.pluto.plugin.PluginConfiguration -import com.pluto.utilities.DebugLog - -class DemoPlugin() : Plugin(ID) { - - @SuppressWarnings("UnusedPrivateMember") - @Deprecated("Use the default constructor DemoPlugin() instead.") - constructor(identifier: String) : this() - - override fun getConfig(): PluginConfiguration = PluginConfiguration( - name = context.getString(R.string.demo___plugin_name), - icon = R.drawable.demo___ic_plugin_icon, - version = BuildConfig.VERSION_NAME - ) - - override fun getDeveloperDetails(): DeveloperDetails { - return DeveloperDetails( - website = "https://androidpluto.com", - vcsLink = "https://github.com/androidPluto/pluto", - twitter = "https://twitter.com/android_pluto" - ) - } - - override fun getView(): Fragment = DemoFragment() - - override fun onPluginInstalled() { - DebugLog.d("demo_plugin", "$ID installed") - } - - override fun onPluginDataCleared() { - } - - companion object { - const val ID = "demo" - } -} diff --git a/pluto-plugins/plugins/demo/lib/src/main/res/drawable/demo___ic_close.xml b/pluto-plugins/plugins/demo/lib/src/main/res/drawable/demo___ic_close.xml deleted file mode 100644 index 667731885..000000000 --- a/pluto-plugins/plugins/demo/lib/src/main/res/drawable/demo___ic_close.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/pluto-plugins/plugins/demo/lib/src/main/res/drawable/demo___ic_menu_icon.xml b/pluto-plugins/plugins/demo/lib/src/main/res/drawable/demo___ic_menu_icon.xml deleted file mode 100644 index dbfcc197a..000000000 --- a/pluto-plugins/plugins/demo/lib/src/main/res/drawable/demo___ic_menu_icon.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/pluto-plugins/plugins/demo/lib/src/main/res/drawable/demo___ic_more.xml b/pluto-plugins/plugins/demo/lib/src/main/res/drawable/demo___ic_more.xml deleted file mode 100644 index d9ee59616..000000000 --- a/pluto-plugins/plugins/demo/lib/src/main/res/drawable/demo___ic_more.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/pluto-plugins/plugins/demo/lib/src/main/res/drawable/demo___ic_plugin_icon.xml b/pluto-plugins/plugins/demo/lib/src/main/res/drawable/demo___ic_plugin_icon.xml deleted file mode 100644 index 68a958e20..000000000 --- a/pluto-plugins/plugins/demo/lib/src/main/res/drawable/demo___ic_plugin_icon.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/pluto-plugins/plugins/demo/lib/src/main/res/layout/demo___fragment_demo.xml b/pluto-plugins/plugins/demo/lib/src/main/res/layout/demo___fragment_demo.xml deleted file mode 100644 index ce5c60c05..000000000 --- a/pluto-plugins/plugins/demo/lib/src/main/res/layout/demo___fragment_demo.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - -