From 92fedb7b1971682b019613a6c8ad39650bd5e689 Mon Sep 17 00:00:00 2001 From: andre Date: Mon, 17 Nov 2025 10:51:32 +0100 Subject: [PATCH] [MWA-5265] Meta Demo: Theming via xml {Update actionId placeholder and add theming strings} [MWA-5265] Meta Demo: Theming via xml {Clean up dependencies and UI} [MWA-5265] Meta Demo: Theming via xml {cr fixes} [MWA-5265] Meta Demo: Theming via xml {Configure light and dark themes} [MWA-5265] Meta Demo: Theming via xml {Update placeholder for action ID} [MWA-5265] Meta Demo: Theming via xml {CR fixes} [MWA-5265] Meta Demo: Theming via xml {updated dependencies} [MWA-5265] Meta Demo: Theming via xml {added Standart Theme} [MWA-5265] Meta Demo: Theming via xml {change theme colors} c[MWA-5265] Meta Demo: Theming via xml {Use RadioButton for theming choice} [MWA-5265] Meta Demo: Theming via xml {Update demo app UI and theming} [MWA-5265] Meta Demo: Theming via xml testen {added more colors} [MWA-5265] Meta Demo: Theming via xml testen {Update app theme to WebId.PluginTheme} [MWA-5265] Meta Demo: Theming via xml testen {addAdd Compose theming option to MetaPl}ugin [MWA-5265] Meta Demo: Theming via xml testen {Update dependencies and plugin initialization} [MWA-5265] Meta Demo: Theming via xml testen {Refactor UI to Jetpack Compose} [MWA-5265] Meta Demo: Theming via xml testen {added translations} --- app/build.gradle | 34 ++- app/src/main/AndroidManifest.xml | 2 +- .../metaplugindemo/MainActivity.kt | 163 ++++++++----- .../scenes/MetaPluginDemoScene.kt | 217 ++++++++++++++++++ .../metaplugindemo/scenes/ThemingChoice.kt | 10 + .../scenes/UserConfiguration.kt | 13 ++ app/src/main/res/layout/activity_main.xml | 37 ++- app/src/main/res/values-night/themes.xml | 29 ++- app/src/main/res/values/dimens.xml | 1 + app/src/main/res/values/themes.xml | 29 ++- settings.gradle | 12 +- 11 files changed, 452 insertions(+), 95 deletions(-) create mode 100644 app/src/main/java/de/webidsolutions/metaplugindemo/scenes/MetaPluginDemoScene.kt create mode 100644 app/src/main/java/de/webidsolutions/metaplugindemo/scenes/ThemingChoice.kt create mode 100644 app/src/main/java/de/webidsolutions/metaplugindemo/scenes/UserConfiguration.kt diff --git a/app/build.gradle b/app/build.gradle index 5718094..27e3752 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,6 +1,7 @@ plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' + id 'org.jetbrains.kotlin.plugin.compose' version '2.1.0' } android { @@ -51,33 +52,42 @@ android { dependencies { - // android dependencies from demo app - implementation 'androidx.core:core-ktx:1.12.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.constraintlayout:constraintlayout:2.1.4' - testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.1.5' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + dependencies { + implementation 'androidx.core:core-ktx:1.12.0' + implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + + implementation 'androidx.activity:activity-compose:1.9.3' + implementation 'androidx.compose.foundation:foundation:1.9.5' + implementation 'androidx.compose.foundation:foundation-layout:1.9.4' + implementation 'androidx.compose.ui:ui' + implementation 'androidx.compose.ui:ui-tooling-preview' + + debugImplementation 'androidx.compose.ui:ui-tooling' + + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + } // webid product-plugin //noinspection GradleDependency - def product_catalog_version = "15.1.1" + def product_catalog_version = "21.1.2-SNAPSHOT" implementation ("de.webid-solutions:android_meta_plugin:$product_catalog_version") { changing = true } - implementation ("de.webid-solutions:android_auto_ident_on_server_product_plugin:$product_catalog_version") { + implementation ("de.webid-solutions:android_auto_ident_product_plugin:$product_catalog_version") { changing = true } - implementation ("de.webid-solutions:android_pay_on_server_product_plugin:$product_catalog_version") { + implementation ("de.webid-solutions:android_pay_ident_product_plugin:$product_catalog_version") { changing = true } implementation ("de.webid-solutions:android_video_ident_product_plugin:$product_catalog_version") { changing = true } - implementation ("de.webid-solutions:android_eid_on_server_product_plugin:$product_catalog_version") { + implementation ("de.webid-solutions:android_eid_product_plugin:$product_catalog_version") { changing = true } - } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e1db1c7..39eb257 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,7 +9,7 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:localeConfig="@xml/locales_config" - android:theme="@style/Theme.MetaPluginDemo"> + android:theme="@style/WebId.PluginTheme"> diff --git a/app/src/main/java/de/webidsolutions/metaplugindemo/MainActivity.kt b/app/src/main/java/de/webidsolutions/metaplugindemo/MainActivity.kt index ef252c6..f2580af 100644 --- a/app/src/main/java/de/webidsolutions/metaplugindemo/MainActivity.kt +++ b/app/src/main/java/de/webidsolutions/metaplugindemo/MainActivity.kt @@ -7,23 +7,29 @@ package de.webidsolutions.metaplugindemo import android.annotation.SuppressLint import android.content.Intent import android.os.Bundle -import android.widget.Button -import android.widget.CheckBox -import android.widget.TextView +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent import androidx.activity.result.ActivityResult import androidx.activity.result.contract.ActivityResultContracts -import androidx.appcompat.app.AppCompatActivity -import de.webidsolutions.auto_ident_on_server_product_plugin.AutoIdentOnServerProductPlugin -import de.webidsolutions.eid_on_server_product_plugin.EIdOnServerProductPlugin +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import de.webidsolutions.android_ui_components.theming.v4.WebIdThemeProviderV4 +import de.webidsolutions.android_ui_components.theming.v4.WebIdThemeV4 +import de.webidsolutions.auto_ident_product_plugin.AutoIdProductPlugin +import de.webidsolutions.eid_product_plugin.EIdProductPlugin import de.webidsolutions.meta_plugin.EMetaPluginFailReason import de.webidsolutions.meta_plugin.WebIdMetaPlugin +import de.webidsolutions.metaplugindemo.scenes.MetaPluginDemoScene +import de.webidsolutions.metaplugindemo.scenes.ThemingChoice +import de.webidsolutions.metaplugindemo.scenes.UserConfiguration import de.webidsolutions.metaplugindemo.tasks.EApiResult import de.webidsolutions.metaplugindemo.tasks.MetaPluginVerifyTask import de.webidsolutions.mobile_app.sdk.WebIdMobileAppSdkException import de.webidsolutions.mobile_app.sdk.WebIdSdkEnvironment import de.webidsolutions.mobile_app.sdk.domain.VerifyActionIdResult import de.webidsolutions.mobile_app.sdk.impl.AsyncTaskResultGeneric -import de.webidsolutions.pay_on_server_product_plugin.PayOnServerProductPlugin +import de.webidsolutions.pay_ident_product_plugin.AccountIdProductPlugin import de.webidsolutions.plugin_core.EProductPluginErrors import de.webidsolutions.plugin_core.IEPluginError import de.webidsolutions.plugin_core.IProductPluginWebId @@ -32,8 +38,8 @@ import de.webidsolutions.plugin_core.ProductPluginErrorResult import de.webidsolutions.plugin_core.ProductPluginResult import de.webidsolutions.plugin_core.WebIdPluginInterruptedException import de.webidsolutions.video_ident.plugin.videocall.VideoOptionsConfig -import de.webidsolutions.video_ident_product_plugin.EVideoIdentProductPluginFailReasons -import de.webidsolutions.video_ident_product_plugin.VideoIdentProductPlugin +import de.webidsolutions.video_ident_product_plugin.VideoIdProductFailReason +import de.webidsolutions.video_ident_product_plugin.VideoIdProductPlugin import java.lang.Integer.parseInt import java.net.URI @@ -54,33 +60,34 @@ private val chosenEnvironment: EWebIDEnv = EWebIDEnv.TEST /** * Demo App which starts the [MetaPlugin] and handles its result. */ -internal class MainActivity : AppCompatActivity() { +internal class MainActivity : ComponentActivity + () { + + private var result by mutableStateOf("") - private lateinit var eidOnServerPluginCb: CheckBox - private lateinit var payOnServerPluginCb: CheckBox - private lateinit var autoIdOnServerPluginCb: CheckBox - private lateinit var videoPluginCb: CheckBox - private lateinit var textLog: TextView - private lateinit var startButton: Button // private lateinit var coreSdk: IWebIdMobileAppSdk override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_main) + setContent { + WebIdThemeProviderV4( + theme = WebIdThemeV4.makeLightTheme {}, + darkTheme = WebIdThemeV4.makeDarkTheme {} + ){ + MetaPluginDemoScene( + result = result, + onStartClicked = { userConfiguration -> + clearResult() + showResult(getString(R.string.starting)) + createCoreSdk( + userConfiguration = userConfiguration + ) + } - textLog = findViewById(R.id.log) + ) - autoIdOnServerPluginCb = findViewById(R.id.cb_plugin_auto_id_on_server) - payOnServerPluginCb = findViewById(R.id.cb_plugin_pay_on_server) - eidOnServerPluginCb = findViewById(R.id.cb_plugin_eid_on_server) - videoPluginCb = findViewById(R.id.cb_plugin_video) - - startButton = findViewById(R.id.startButton) - startButton.setOnClickListener { - clearLog() - writeLog(getString(R.string.starting)) - createCoreSdk() + } } } @@ -89,8 +96,10 @@ internal class MainActivity : AppCompatActivity() { /** * Creates the Core SDK from the existing credentials. */ - private fun createCoreSdk() { - writeLog(getString(R.string.creating_core_sdk)) + private fun createCoreSdk( + userConfiguration: UserConfiguration + ) { + showResult(getString(R.string.creating_core_sdk)) // should be provided to you -> currently just using demo credentials val selectedUri: URI = chosenEnvironment.uri @@ -103,10 +112,15 @@ internal class MainActivity : AppCompatActivity() { *chosenEnvironment.shaPins ) - writeLog(getString(R.string.core_sdk_creation_successful)) + showResult(getString(R.string.core_sdk_creation_successful)) validateActionId() - val selectProductPlugins = getSelectedPlugins() + val selectProductPlugins = getSelectedPlugins( + useAutoIdent = userConfiguration.useAutoIdent, + usePayOnServer = userConfiguration.useAcountId, + useEidOnServer = userConfiguration.useEId, + useVideoIdent = userConfiguration.useVideoIdent + ) val metaPlugin = WebIdMetaPlugin( environment, @@ -116,7 +130,12 @@ internal class MainActivity : AppCompatActivity() { selectProductPlugins ) MetaPluginVerifyTask(metaPlugin) - .setOnPostExecuteCallback(metaPluginVerifyCallback(metaPlugin)) + .setOnPostExecuteCallback( + metaPluginVerifyCallback( + metaPlugin = metaPlugin, + themingChoice = userConfiguration.themingChoice + ) + ) .execute(actionId) } @@ -124,7 +143,7 @@ internal class MainActivity : AppCompatActivity() { * Validates the WebID actionID */ private fun validateActionId() { - writeLog(getString(R.string.validate_action_id)) + showResult(getString(R.string.validate_action_id)) try { parseInt(actionId) @@ -132,7 +151,7 @@ internal class MainActivity : AppCompatActivity() { throw NumberFormatException() } } catch (e: NumberFormatException) { - writeLog(getString(R.string.action_id_not_valid)) + showResult(getString(R.string.action_id_not_valid)) } } @@ -142,35 +161,57 @@ internal class MainActivity : AppCompatActivity() { this::onPluginResultCallback ) - private fun getSelectedPlugins(): ArrayList { + private fun getSelectedPlugins( + useAutoIdent: Boolean, + usePayOnServer: Boolean, + useEidOnServer: Boolean, + useVideoIdent: Boolean + ): ArrayList { return ArrayList( listOfNotNull( - if (autoIdOnServerPluginCb.isChecked) AutoIdentOnServerProductPlugin() else null, - if (payOnServerPluginCb.isChecked) PayOnServerProductPlugin() else null, - if (eidOnServerPluginCb.isChecked) EIdOnServerProductPlugin() else null, - if (videoPluginCb.isChecked) VideoIdentProductPlugin(config) else null, + if (useAutoIdent) AutoIdProductPlugin() else null, + if (usePayOnServer) AccountIdProductPlugin() else null, + if (useEidOnServer) EIdProductPlugin() else null, + if (useVideoIdent) VideoIdProductPlugin(config) else null, ) ) } - private fun metaPluginVerifyCallback(metaPlugin: WebIdMetaPlugin): (AsyncTaskResultGeneric) -> Unit { + private fun metaPluginVerifyCallback( + metaPlugin: WebIdMetaPlugin, + themingChoice: ThemingChoice + ): (AsyncTaskResultGeneric) -> Unit { + return { result -> if (result.errorResult == EApiResult.SUCCESS) { writeLog(getString(R.string.verification_successful)) var verifyActionIdResult = result.result try { - metaPlugin.startPlugin( - this, - activityResultLauncher, - R.style.CustomizedPluginTheme, - ) + when (themingChoice) { + ThemingChoice.XML -> { + metaPlugin.startPlugin( + this, + activityResultLauncher, + true + ) + } + + ThemingChoice.COMPOSE -> { + metaPlugin.startPlugin( + this, + activityResultLauncher, + null, + null + ) + } + } } catch (e: WebIdMobileAppSdkException) { e.printStackTrace() - writeLog(getString(R.string.start_failed) + e.message.toString()) + showResult(getString(R.string.start_failed) + e.message.toString()) } } else { val metaPluginVerifyError = result.errorResult - writeLog(getString(R.string.verification_failed) + metaPluginVerifyError.toString()) + showResult(getString(R.string.verification_failed) + metaPluginVerifyError.toString()) } } } @@ -196,6 +237,7 @@ internal class MainActivity : AppCompatActivity() { result += " $resultInfo" // your code to handle the successful plugin execution } + showResult(result) } else { // failure case writeLog(getString(R.string.product_journey_finished_with_failure)) @@ -206,24 +248,30 @@ internal class MainActivity : AppCompatActivity() { if (specificResult is EMetaPluginFailReason) { if (specificResult == EMetaPluginFailReason.EID_PENDING_AUTHADA) { // handle EID_PENDING_AUTHADA as described in code documentation + showResult("EID_PENDING_AUTHADA") } else { // handle all other EMetaPluginFailReason as described in code documentation + showResult("MetaPluginFailReason: $specificResult") } } else { // handle EVideoIdentProductPluginFailReasons - if (specificResult is EVideoIdentProductPluginFailReasons) { - if (specificResult == EVideoIdentProductPluginFailReasons.CALL_CENTER_CLOSED) { + if (specificResult is VideoIdProductFailReason) { + if (specificResult == VideoIdProductFailReason.CALL_CENTER_CLOSED) { // handle CALL_CENTER_CLOSED as described in code documentation + showResult("CALL_CENTER_CLOSED") } else { // handle all other EVideoIdentProductPluginFailReasons errors as described in the code documentation + showResult("VideoIdentFailReason: $specificResult") } } } } else { if (failReason.genericResult == EProductPluginErrors.UNKNOWN) { // handle UNKNOWN as described in code documentation + showResult("Unknown Error") } else { // handle all other EProductPluginErrors errors as described in the code documentation + showResult("Error: ${failReason.genericResult}") } } } @@ -236,19 +284,18 @@ internal class MainActivity : AppCompatActivity() { /* MISC */ /** - * Add an entry to the log. - * - * @param + * Add an entry to the result. */ @SuppressLint("SetTextI18n") - private fun writeLog(entry: String) { - textLog.text = "${textLog.text} $entry\n" + private fun showResult(entry: String) { + result += "$entry\n" } /** - * Resets the text log of this activity. + * Resets the text result of this activity. */ - private fun clearLog() { - textLog.text = "" + private fun clearResult() { + result = "" } + } \ No newline at end of file diff --git a/app/src/main/java/de/webidsolutions/metaplugindemo/scenes/MetaPluginDemoScene.kt b/app/src/main/java/de/webidsolutions/metaplugindemo/scenes/MetaPluginDemoScene.kt new file mode 100644 index 0000000..1c7b322 --- /dev/null +++ b/app/src/main/java/de/webidsolutions/metaplugindemo/scenes/MetaPluginDemoScene.kt @@ -0,0 +1,217 @@ +/* + * Created by WebID Solutions GmbH | www.webid-solutions.de. + * See the file "LICENSE" for the full license governing this code. + */ +package de.webidsolutions.metaplugindemo.scenes + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.systemBarsPadding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import de.webidsolutions.android_ui_components.theming.v4.SpacingV4 +import de.webidsolutions.android_ui_components.theming.v4.WebIdThemeProviderV4 +import de.webidsolutions.android_ui_components.theming.v4.components.checkbox.CheckboxTyp +import de.webidsolutions.android_ui_components.theming.v4.components.checkbox.CheckboxV4 +import de.webidsolutions.android_ui_components.theming.v4.components.primary_button.PrimaryButtonV4 +import de.webidsolutions.android_ui_components.theming.v4.components.text.TextV4 +import de.webidsolutions.metaplugindemo.R + +@Composable +fun MetaPluginDemoScene( + result: String, + onStartClicked: ( + UserConfiguration + ) -> Unit +) { + var useAutoIdent by remember { mutableStateOf(false) } + var usePayOnServer by remember { mutableStateOf(false) } + var useEidOnServer by remember { mutableStateOf(false) } + var useVideoIdent by remember { mutableStateOf(false) } + var useXmlTheming by remember { mutableStateOf(ThemingChoice.COMPOSE) } + + Column( + modifier = Modifier + .fillMaxSize() + .systemBarsPadding() + .padding(top = SpacingV4.N.size) + ) { + LazyColumn( + modifier = Modifier + .weight(1f) + .padding( + start = SpacingV4.S.size, + top = SpacingV4.N.size, + end = SpacingV4.N.size + ) + ) { + item { + TextV4( + text = stringResource(R.string.choose_plugins), + ) + + SpacingV4.S.VSpacer() + + CheckboxWithLabel( + checked = useAutoIdent, + onCheckedChange = { useAutoIdent = it }, + label = stringResource(R.string.autoid) + ) + + CheckboxWithLabel( + checked = usePayOnServer, + onCheckedChange = { usePayOnServer = it }, + label = stringResource(R.string.accountid) + ) + + CheckboxWithLabel( + checked = useEidOnServer, + onCheckedChange = { useEidOnServer = it }, + label = stringResource(R.string.eid) + ) + + CheckboxWithLabel( + checked = useVideoIdent, + onCheckedChange = { useVideoIdent = it }, + label = stringResource(R.string.videoid) + ) + + SpacingV4.L.VSpacer() + + TextV4( + text = stringResource(R.string.choose_theming), + ) + + SpacingV4.S.VSpacer() + + CheckboxWithLabel( + checked = useXmlTheming == ThemingChoice.COMPOSE, + onCheckedChange = { isChecked -> + if (isChecked) { + useXmlTheming = ThemingChoice.COMPOSE + } + }, + label = stringResource(R.string.choose_theming_compose) + ) + + CheckboxWithLabel( + checked = useXmlTheming == ThemingChoice.XML, + onCheckedChange = { isChecked -> + if (isChecked) { + useXmlTheming = ThemingChoice.XML + } + }, + label = stringResource(R.string.choose_theming_xml) + ) + + SpacingV4.L.VSpacer() + + TextV4( + text = stringResource(R.string.log_headline), + ) + + SpacingV4.S.VSpacer() + + ResultView(result = result.split("\n")) + + SpacingV4.M.VSpacer() + } + } + + Box( + modifier = Modifier + .fillMaxWidth() + .padding( + start = SpacingV4.S.size, + end = SpacingV4.N.size, + bottom = SpacingV4.S.size + ) + ) { + PrimaryButtonV4( + onClick = { + onStartClicked( + UserConfiguration( + useAutoIdent = useAutoIdent, + useAcountId = usePayOnServer, + useEId = useEidOnServer, + useVideoIdent = useVideoIdent, + themingChoice = useXmlTheming + ) + ) + }, + title = stringResource(R.string.start_button), + ) + } + } +} + +@Composable +fun ResultView( + result: List, + modifier: Modifier = Modifier +) { + if (result.isNotEmpty()) { + Column( + modifier = modifier + .fillMaxWidth() + .padding(16.dp) + ) { + result.forEach { result -> + TextV4( + text = result, + modifier = Modifier.padding(vertical = 4.dp) + ) + } + SpacingV4.S.VSpacer() + } + } +} + +@Composable +private fun CheckboxWithLabel( + checked: Boolean, + onCheckedChange: (Boolean) -> Unit, + label: String +) { + CheckboxV4( + checked = checked, + isRequired = false, + onCheckedChange = onCheckedChange, + text = label, + textTyp = CheckboxTyp.Label, + modifier = Modifier.padding(start = SpacingV4.N.size) + ) + + SpacingV4.XXS.VSpacer() +} + + +@Preview( + name = "MetaPluginDemoScreen - Long Log", + showBackground = true, + showSystemUi = true +) +@Composable +private fun MetaPluginDemoSceneLongLogPreview() { + WebIdThemeProviderV4 { + MetaPluginDemoScene( + result = buildString { + appendLine("Log entry: Processing...") + + }, + onStartClicked = {} + ) + } +} + diff --git a/app/src/main/java/de/webidsolutions/metaplugindemo/scenes/ThemingChoice.kt b/app/src/main/java/de/webidsolutions/metaplugindemo/scenes/ThemingChoice.kt new file mode 100644 index 0000000..60f2d25 --- /dev/null +++ b/app/src/main/java/de/webidsolutions/metaplugindemo/scenes/ThemingChoice.kt @@ -0,0 +1,10 @@ +/* + * Created by WebID Solutions GmbH | www.webid-solutions.de. + * See the file "LICENSE" for the full license governing this code. + */ +package de.webidsolutions.metaplugindemo.scenes + +enum class ThemingChoice() { + COMPOSE, + XML +} \ No newline at end of file diff --git a/app/src/main/java/de/webidsolutions/metaplugindemo/scenes/UserConfiguration.kt b/app/src/main/java/de/webidsolutions/metaplugindemo/scenes/UserConfiguration.kt new file mode 100644 index 0000000..988d244 --- /dev/null +++ b/app/src/main/java/de/webidsolutions/metaplugindemo/scenes/UserConfiguration.kt @@ -0,0 +1,13 @@ +/* + * Created by WebID Solutions GmbH | www.webid-solutions.de. + * See the file "LICENSE" for the full license governing this code. + */ +package de.webidsolutions.metaplugindemo.scenes + +data class UserConfiguration( + val useAutoIdent: Boolean, + val useAcountId: Boolean, + val useEId: Boolean, + val useVideoIdent: Boolean, + val themingChoice: ThemingChoice +) diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index b5da5e9..a311fc9 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -55,6 +55,41 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/cb_plugin_eid_on_server" /> + + + + + + + + + + app:layout_constraintTop_toBottomOf="@+id/themeChoiceGroup" /> - - + + - - \ No newline at end of file + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 144d3da..a5247b0 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -3,4 +3,5 @@ 24dp 60dp 40dp + 8dp \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 4e0d81a..97b1305 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,13 +1,20 @@ - - - + + - - \ No newline at end of file + diff --git a/settings.gradle b/settings.gradle index 57ce0fd..c4d50b2 100644 --- a/settings.gradle +++ b/settings.gradle @@ -14,7 +14,17 @@ dependencyResolutionManagement { // add the webid repo to receive the plugin maven { - url 'https://api.webid-solutions.de/releases/android/maven/repository/internal' + url "https://api.webid-solutions.de/releases/android/maven/repository/snapshots" + } + maven { + url "https://api.webid-solutions.de/releases/android/maven2/snapshots" + } + // use our release repository for releases + maven { + url "https://api.webid-solutions.de/releases/android/maven/repository/internal" + } + maven { + url "https://api.webid-solutions.de/releases/android/maven2/releases" } } }