diff --git a/connector/build.gradle b/connector/build.gradle index 21eab39..d62990f 100644 --- a/connector/build.gradle +++ b/connector/build.gradle @@ -49,10 +49,6 @@ android { namespace "org.unifiedpush.android.connector" } -dependencies { - api("org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version") -} - // jitpack build afterEvaluate { publishing { diff --git a/connector/src/main/java/org/unifiedpush/android/connector/RegistrationDialogContent.kt b/connector/src/main/java/org/unifiedpush/android/connector/RegistrationDialogContent.kt index 96ffcba..cde2cd2 100644 --- a/connector/src/main/java/org/unifiedpush/android/connector/RegistrationDialogContent.kt +++ b/connector/src/main/java/org/unifiedpush/android/connector/RegistrationDialogContent.kt @@ -1,20 +1,65 @@ package org.unifiedpush.android.connector -data class RegistrationDialogContent( - val noDistributorDialog: NoDistributorDialog = NoDistributorDialog(), - val chooseDialog: ChooseDialog = ChooseDialog() -) - -data class NoDistributorDialog( - var title: String = "No distributor found", - var message: String = "You need to install a distributor " + - "for push notifications to work.\n" + - "For more information, visit\n" + - "https://unifiedpush.org/", - var okButton: String = "OK", - var ignoreButton: String = "Ignore" -) - -data class ChooseDialog( - var title: String = "Choose a distributor" -) +import android.content.Context + +/** Defines content that can be shown during [UnifiedPush.registerAppWithDialog]. */ +interface RegistrationDialogContent { + /** Content if no distributor is installed. */ + val noDistributorDialog: NoDistributorDialog + + /** Content if multiple distributors are installed. */ + val chooseDialog: ChooseDialog +} + +/** + * Default [RegistrationDialogContent] + * + * @param context Context for fetching resources. + */ +data class DefaultRegistrationDialogContent(val context: Context) : RegistrationDialogContent { + override val noDistributorDialog = DefaultNoDistributorDialog(context) + override val chooseDialog = DefaultChooseDialog(context) +} + +/** Defines content for the dialog if no distributors are installed. */ +interface NoDistributorDialog { + /** Dialog title. */ + val title: String + + /** Dialog message. */ + var message: String + + /** Text on positive button */ + val okButton: String + + /** Text on negative button. */ + val ignoreButton: String +} + +/** + * Default [NoDistributorDialog]. + * + * @param context Context for fetching resources. + */ +data class DefaultNoDistributorDialog(val context: Context) : NoDistributorDialog { + override val title = context.getString(R.string.unified_push_dialog_no_distributor_title) + override var message = context.getString(R.string.unified_push_dialog_no_distributor_message) + override val okButton = context.getString(android.R.string.ok) + override val ignoreButton = + context.getString(R.string.unified_push_dialog_no_distributor_negative) +} + +/** Defines content for the dialog if multiple distributors are installed. */ +interface ChooseDialog { + /** Dialog title. */ + val title: String +} + +/** + * Default [ChooseDialog]. + * + * @param context Context for fetching resources. + */ +data class DefaultChooseDialog(val context: Context) : ChooseDialog { + override val title = context.getString(R.string.unified_push_dialog_choose_title) +} diff --git a/connector/src/main/java/org/unifiedpush/android/connector/UnifiedPush.kt b/connector/src/main/java/org/unifiedpush/android/connector/UnifiedPush.kt index 3fea7f8..6e08f6c 100644 --- a/connector/src/main/java/org/unifiedpush/android/connector/UnifiedPush.kt +++ b/connector/src/main/java/org/unifiedpush/android/connector/UnifiedPush.kt @@ -57,7 +57,9 @@ object UnifiedPush { registerAppWithDialog( context, instance, - RegistrationDialogContent().apply { noDistributorDialog.message = dialogMessage }, + DefaultRegistrationDialogContent(context).apply { + noDistributorDialog.message = dialogMessage + }, features, messageForDistributor ) @@ -68,7 +70,7 @@ object UnifiedPush { context: Context, instance: String = INSTANCE_DEFAULT, registrationDialogContent: RegistrationDialogContent = - RegistrationDialogContent(), + DefaultRegistrationDialogContent(context), features: ArrayList = DEFAULT_FEATURES, messageForDistributor: String = "" ) { diff --git a/connector/src/main/res/values/strings.xml b/connector/src/main/res/values/strings.xml new file mode 100644 index 0000000..53cd4d1 --- /dev/null +++ b/connector/src/main/res/values/strings.xml @@ -0,0 +1,9 @@ + + + + No distributor found + You need to install a distributor for push notifications to work\n\nFor more information visit https://unifiedpush.org. + Don\'t tell me again + + Choose a distributor +