From 6b429950b1b32882394df19b4b5b035b1e47aaec Mon Sep 17 00:00:00 2001 From: Atiqur Rahman Date: Tue, 27 Sep 2022 13:05:46 +0600 Subject: [PATCH] refactor: upgrade dependencies and remove NStack dependency --- app/build.gradle | 17 +-- app/src/main/AndroidManifest.xml | 16 -- app/src/main/java/com/monstarlab/App.kt | 4 - .../monstarlab/features/main/MainActivity.kt | 1 - .../monstarlab/features/main/setupNStack.kt | 139 ------------------ .../features/nstack/RateReminderActions.kt | 34 ----- .../features/nstack/Translation.java | 62 -------- build.gradle | 27 ++-- 8 files changed, 12 insertions(+), 288 deletions(-) delete mode 100644 app/src/main/java/com/monstarlab/features/main/setupNStack.kt delete mode 100644 app/src/main/java/com/monstarlab/features/nstack/RateReminderActions.kt delete mode 100644 app/src/main/java/com/monstarlab/features/nstack/Translation.java diff --git a/app/build.gradle b/app/build.gradle index b12f2883..c5d92c4c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,33 +3,21 @@ plugins { id 'kotlin-android' id 'kotlin-kapt' id 'org.jetbrains.kotlin.plugin.serialization' version '1.4.30' - id 'dk.nstack.translation.plugin' id 'dagger.hilt.android.plugin' } -translation { - appId = keys.appId - apiKey = keys.apiKey - acceptHeader = keys.acceptHeader -} - android { - compileSdkVersion 32 + compileSdkVersion 33 buildToolsVersion "30.0.3" flavorDimensions "default" defaultConfig { applicationId "com.monstarlab" minSdkVersion 23 - targetSdkVersion 32 + targetSdkVersion 33 versionCode 1 versionName "1.0" - manifestPlaceholders = [ - appId : keys.appId, - apiKey: keys.apiKey - ] - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildFeatures { @@ -120,7 +108,6 @@ dependencies { implementation("androidx.datastore:datastore-preferences:${versions.datastore}") - implementation "dk.nodes.nstack:nstack-kotlin:${versions.nodes_nstack_kotlin}" implementation "com.jakewharton.timber:timber:${versions.timber}" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 599e778c..6616027a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -23,22 +23,6 @@ - - - - - - - diff --git a/app/src/main/java/com/monstarlab/App.kt b/app/src/main/java/com/monstarlab/App.kt index 15daffd5..5f1035f6 100644 --- a/app/src/main/java/com/monstarlab/App.kt +++ b/app/src/main/java/com/monstarlab/App.kt @@ -2,9 +2,7 @@ package com.monstarlab import android.annotation.SuppressLint import android.app.Application -import com.monstarlab.features.nstack.Translation import dagger.hilt.android.HiltAndroidApp -import dk.nodes.nstack.kotlin.NStack import timber.log.Timber @HiltAndroidApp @@ -13,8 +11,6 @@ class App : Application() { @SuppressLint("AppOpenMissing") override fun onCreate() { super.onCreate() - NStack.translationClass = Translation::class.java - NStack.init(this, BuildConfig.DEBUG) if (BuildConfig.DEBUG) { Timber.plant(Timber.DebugTree()) } diff --git a/app/src/main/java/com/monstarlab/features/main/MainActivity.kt b/app/src/main/java/com/monstarlab/features/main/MainActivity.kt index 26f5d33a..5559c4b7 100644 --- a/app/src/main/java/com/monstarlab/features/main/MainActivity.kt +++ b/app/src/main/java/com/monstarlab/features/main/MainActivity.kt @@ -9,6 +9,5 @@ import dagger.hilt.android.AndroidEntryPoint class MainActivity : AppCompatActivity(R.layout.activity_main) { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setupNStack() } } diff --git a/app/src/main/java/com/monstarlab/features/main/setupNStack.kt b/app/src/main/java/com/monstarlab/features/main/setupNStack.kt deleted file mode 100644 index 705acb85..00000000 --- a/app/src/main/java/com/monstarlab/features/main/setupNStack.kt +++ /dev/null @@ -1,139 +0,0 @@ -package com.monstarlab.features.main - -import android.content.Intent -import android.net.Uri -import androidx.appcompat.app.AlertDialog -import androidx.lifecycle.lifecycleScope -import dk.nodes.nstack.kotlin.NStack -import dk.nodes.nstack.kotlin.models.AppUpdate -import dk.nodes.nstack.kotlin.models.AppUpdateState -import dk.nodes.nstack.kotlin.models.Message -import dk.nodes.nstack.kotlin.models.RateReminder -import dk.nodes.nstack.kotlin.models.Result -import dk.nodes.nstack.kotlin.models.state -import dk.nodes.nstack.kotlin.models.update -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext - -fun MainActivity.setupNStack() = lifecycleScope.launch(Dispatchers.IO) { - when (val result = NStack.appOpen()) { - is Result.Success -> { - withContext(Dispatchers.Main) { - when (result.value.data.update.state) { - AppUpdateState.NONE -> { - /* Nothing to do */ - } - AppUpdateState.UPDATE -> showUpdateDialog(result.value.data.update) - AppUpdateState.FORCE -> showForceDialog(result.value.data.update) - AppUpdateState.CHANGELOG -> showChangelogDialog(result.value.data.update) - } - - result.value.data.message?.let { showMessageDialog(it) } - result.value.data.rateReminder?.let { showRateReminderDialog(it) } - } - } - is Result.Error -> { - } - } - // if (withContext(Dispatchers.IO) { NStack.RateReminder.shouldShow() }) { - // val answer = NStack.RateReminder.apply { - // title = Translation.rate.title - // message = Translation.rate.message - // yesButton = Translation.rate.yesButton - // noButton = Translation.rate.noButton - // skipButton = Translation.rate.skipButton - // }.show(ContextThemeWrapper(context, R.style.customDialog)) - - // when (answer) { - // RateReminderAnswer.POSITIVE -> // take user to the playstore page - // RateReminderAnswer.NEGATIVE -> // take user to the feedback screen - // RateReminderAnswer.SKIP -> // do nothing? - // } - // } -} - -fun MainActivity.showRateReminderDialog(rateReminder: RateReminder) { - AlertDialog.Builder(this) - .setMessage(rateReminder.body) - .setTitle(rateReminder.title) - .setCancelable(false) - .setPositiveButton(rateReminder.yesButton) { dialog, _ -> - startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(rateReminder.link))) - dialog.dismiss() - } - .setNegativeButton(rateReminder.noButton) { dialog, _ -> - dialog.dismiss() - } - .setNeutralButton(rateReminder.laterButton) { dialog, _ -> - dialog.dismiss() - } - .show() -} - -fun MainActivity.showMessageDialog(message: Message) { - AlertDialog.Builder(this) - .setMessage(message.message) - .setCancelable(false) - .setPositiveButton("Translation.defaultSection.ok") { dialog, _ -> - NStack.messageSeen(message) - dialog.dismiss() - } - .show() -} - -fun MainActivity.showUpdateDialog(appUpdate: AppUpdate) { - AlertDialog.Builder(this) - .setTitle(appUpdate.update?.translate?.title ?: return) - .setMessage(appUpdate.update?.translate?.message ?: return) - .setPositiveButton(appUpdate.update?.translate?.positiveButton) { dialog, _ -> - dialog.dismiss() - } - .show() -} - -fun MainActivity.showChangelogDialog(appUpdate: AppUpdate) { - AlertDialog.Builder(this) - .setTitle(appUpdate.update?.translate?.title ?: "") - .setMessage(appUpdate.update?.translate?.message ?: "") - .setNegativeButton(appUpdate.update?.translate?.negativeButton ?: "") { dialog, _ -> - dialog.dismiss() - } - .show() -} - -fun MainActivity.startPlayStore() { - try { - startActivity( - Intent( - Intent.ACTION_VIEW, - Uri.parse("market://details?id=$packageName") - ) - ) - } catch (anfe: android.content.ActivityNotFoundException) { - startActivity( - Intent( - Intent.ACTION_VIEW, - Uri.parse("https://play.google.com/store/apps/details?id=$packageName") - ) - ) - } -} - -fun MainActivity.showForceDialog(appUpdate: AppUpdate) { - val dialog = AlertDialog.Builder(this) - .setTitle(appUpdate.update?.translate?.title ?: return) - .setMessage(appUpdate.update?.translate?.message ?: return) - .setCancelable(false) - .setPositiveButton(appUpdate.update?.translate?.positiveButton, null) - .create() - - dialog.setOnShowListener { - val b = dialog.getButton(AlertDialog.BUTTON_POSITIVE) - b.setOnClickListener { - startPlayStore() - } - } - - dialog.show() -} diff --git a/app/src/main/java/com/monstarlab/features/nstack/RateReminderActions.kt b/app/src/main/java/com/monstarlab/features/nstack/RateReminderActions.kt deleted file mode 100644 index 4b5b84cc..00000000 --- a/app/src/main/java/com/monstarlab/features/nstack/RateReminderActions.kt +++ /dev/null @@ -1,34 +0,0 @@ -package com.monstarlab.features.nstack - -import dk.nodes.nstack.kotlin.NStack - -/** - * Generated by the NStack gradle plugin - */ -object RateReminderActions { - - private const val CRASH = "crash" - private const val DONATED = "donated" - private const val FIRSTACTION = "firstaction" - private const val SECONDACTION = "secondaction" - - suspend fun crash() { - send(CRASH) - } - - suspend fun donated() { - send(DONATED) - } - - suspend fun firstaction() { - send(FIRSTACTION) - } - - suspend fun secondaction() { - send(SECONDACTION) - } - - private suspend fun send(action: String) { - NStack.RateReminder.action(action) - } -} diff --git a/app/src/main/java/com/monstarlab/features/nstack/Translation.java b/app/src/main/java/com/monstarlab/features/nstack/Translation.java deleted file mode 100644 index 2139d5a7..00000000 --- a/app/src/main/java/com/monstarlab/features/nstack/Translation.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.monstarlab.features.nstack; - -/** - * Created by nstack.io gradle translation plugin - * Built from Accept Header: en-GB - */ - -public class Translation { - public final static class defaultSection { - public static String cancel = "Cancel"; - public static String ok = "Ok"; - public static String no = "No"; - public static String yes = "Yes"; - public static String retry = "Retry"; - public static String edit = "Edit"; - public static String save = "Save"; - public static String back = "Back"; - public static String settings = "Settings"; - public static String later = "Later"; - public static String next = "Next"; - public static String previous = "Previous"; - public static String skip = "Skip"; - public static String testtest = "__testtest"; - } - public final static class terms { - public static String termsNotFound = "Terms not found."; - public static String acceptLabel = "Accept"; - public static String acceptedLabel = "Accepted"; - } - public final static class more { - public static String title = "more"; - } - public final static class rateReminder { - public static String rateReminderTitle = "Rate this app"; - public static String rateReminderMessage = "It seems like you like this app, do you want to give it a rating?"; - public static String title = "Rate Reminder"; - public static String firstAction = "First Action"; - public static String secondAction = "Second Action"; - } - public final static class donate { - public static String donateButton = "Donate!"; - public static String donateAgainButton = "Donate again!"; - public static String title = "Help the victims now!"; - public static String acceptLabel = "dwadaw"; - } - public final static class error { - public static String authenticationError = "Login expired, please login again."; - public static String connectionError = "No or bad connection, please try again."; - public static String errorTitle = "Error"; - public static String unknownError = "Unknown error, please try again."; - public static String errorRandom = "Random"; - } - public final static class home { - public static String title = "NStack Demo"; - public static String subTitle = "Production"; - public static String message = "Bacon ipsum dolor amet magna meatball jerky in, shank sunt do burgdoggen spare ribs. Lorem boudin eiusmod short ribs pastrami. Sausage bresaola do turkey, dolor qui tail ground round culpa boudin nulla minim sunt beef ribs ham. Cillum in pastrami adipisicing swine lorem, velit sunt meatloaf bresaola short loin fugiat tri-tip boudin."; - public static String toggleOff = "off"; - public static String sendFeedbackButton = "Send feedback"; - public static String hint = "Name"; - public static String toggleOn = "On"; - } -} diff --git a/build.gradle b/build.gradle index 640c19af..0691ce21 100644 --- a/build.gradle +++ b/build.gradle @@ -3,13 +3,13 @@ buildscript { ext.versions = [ kotlin_plugin : '1.6.21', - kotlin : '1.6.21', - appcompat : '1.4.1', - coroutines : '1.6.1', + kotlin : '1.7.10', + appcompat : '1.5.1', + coroutines : '1.6.2', json : '1.0.1', - constraint_layout : '2.1.3', - hilt : '2.40.5', - lifecycle : '2.4.1', + constraint_layout : '2.1.4', + hilt : '2.42', + lifecycle : '2.5.1', timber : "5.0.1", junit : '4.13.2', junit_ext : '1.1.3', @@ -20,11 +20,11 @@ buildscript { retrofit : '2.9.0', retrofit_converter : '0.8.0', okhttp : '4.9.1', - ktx_core : '1.7.0', + ktx_core : '1.9.0', ktx : '1.7.0', - material : '1.6.0', + material : '1.6.1', archCore : '2.1.0', - navigation : '2.4.2', + navigation : '2.5.2', nodes_utils : '1.0.0', nodes_utils_okhttp : '0.12.2', preferences : '1.1.1', @@ -36,20 +36,13 @@ buildscript { datastore : '1.0.0', ] - ext.keys = [ - appId : 'IXmpT4N7MJbGEXvDfGqGH4UKHrmV0EOqFeK0', - apiKey : 'LqWLm621BwIxNRzdrei88pKhIIEI2EE8ni8r', - acceptHeader: "en-GB" - ] - repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.2.0' + classpath 'com.android.tools.build:gradle:7.2.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin_plugin}" - classpath "dk.nodes.nstack:translation:${versions.nstack_gradle_plugin}" classpath "com.google.dagger:hilt-android-gradle-plugin:${versions.hilt}" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files