diff --git a/android/app/build.gradle b/android/app/build.gradle
index 100dbe313..735388baf 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -40,6 +40,9 @@ android {
versionName flutterVersionName
// The number of method references in a .dex file cannot exceed 64K
multiDexEnabled true
+ manifestPlaceholders = [
+ 'appAuthRedirectScheme': 'teammail.mobile'
+ ]
}
buildTypes {
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index ed1e2c0ee..74be58554 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -16,6 +16,11 @@
+
+
+
+
+
CFBundleURLSchemes
ShareMedia-$(PRODUCT_BUNDLE_IDENTIFIER)
+ teammail-mobile
diff --git a/lib/features/login/data/datasource/authentication_oidc_datasource.dart b/lib/features/login/data/datasource/authentication_oidc_datasource.dart
index 3b80f5259..1f474497b 100644
--- a/lib/features/login/data/datasource/authentication_oidc_datasource.dart
+++ b/lib/features/login/data/datasource/authentication_oidc_datasource.dart
@@ -3,4 +3,6 @@ import 'package:model/model.dart';
abstract class AuthenticationOIDCDataSource {
Future checkOIDCIsAvailable(OIDCRequest oidcRequest);
+
+ Future getOIDCConfiguration(Uri baseUri);
}
\ No newline at end of file
diff --git a/lib/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart b/lib/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart
index df52f433d..05e4dba31 100644
--- a/lib/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart
+++ b/lib/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart
@@ -17,4 +17,13 @@ class AuthenticationOIDCDataSourceImpl extends AuthenticationOIDCDataSource {
throw error;
});
}
+
+ @override
+ Future getOIDCConfiguration(Uri baseUri) {
+ return Future.sync(() async {
+ return await _oidcHttpClient.getOIDCConfiguration(baseUri);
+ }).catchError((error) {
+ throw error;
+ });
+ }
}
\ No newline at end of file
diff --git a/lib/features/login/data/network/oidc_http_client.dart b/lib/features/login/data/network/oidc_http_client.dart
index b4cde1600..142b6feaa 100644
--- a/lib/features/login/data/network/oidc_http_client.dart
+++ b/lib/features/login/data/network/oidc_http_client.dart
@@ -29,4 +29,8 @@ class OIDCHttpClient {
return OIDCResponse.fromJson(jsonDecode(result));
}
}
+
+ Future getOIDCConfiguration(Uri baseUri) async {
+ return OIDCConfiguration.initial();
+ }
}
\ No newline at end of file
diff --git a/lib/features/login/data/repository/authentication_oidc_repository_impl.dart b/lib/features/login/data/repository/authentication_oidc_repository_impl.dart
index b6c982e51..2de8dcb19 100644
--- a/lib/features/login/data/repository/authentication_oidc_repository_impl.dart
+++ b/lib/features/login/data/repository/authentication_oidc_repository_impl.dart
@@ -1,3 +1,4 @@
+import 'package:model/oidc/oidc_configuration.dart';
import 'package:model/oidc/request/oidc_request.dart';
import 'package:tmail_ui_user/features/login/data/datasource/authentication_oidc_datasource.dart';
import 'package:tmail_ui_user/features/login/domain/repository/authentication_oidc_repository.dart';
@@ -11,4 +12,9 @@ class AuthenticationOIDCRepositoryImpl extends AuthenticationOIDCRepository {
Future checkOIDCIsAvailable(OIDCRequest oidcRequest) {
return _oidcDataSource.checkOIDCIsAvailable(oidcRequest);
}
+
+ @override
+ Future getOIDCConfiguration(Uri baseUri) {
+ return _oidcDataSource.getOIDCConfiguration(baseUri);
+ }
}
\ No newline at end of file
diff --git a/lib/features/login/domain/repository/authentication_oidc_repository.dart b/lib/features/login/domain/repository/authentication_oidc_repository.dart
index 0ec51e61f..b52915522 100644
--- a/lib/features/login/domain/repository/authentication_oidc_repository.dart
+++ b/lib/features/login/domain/repository/authentication_oidc_repository.dart
@@ -1,6 +1,9 @@
+import 'package:model/oidc/oidc_configuration.dart';
import 'package:model/oidc/request/oidc_request.dart';
abstract class AuthenticationOIDCRepository {
Future checkOIDCIsAvailable(OIDCRequest oidcRequest);
+
+ Future getOIDCConfiguration(Uri baseUri);
}
\ No newline at end of file
diff --git a/lib/features/login/domain/state/get_oidc_configuration_state.dart b/lib/features/login/domain/state/get_oidc_configuration_state.dart
new file mode 100644
index 000000000..135a80243
--- /dev/null
+++ b/lib/features/login/domain/state/get_oidc_configuration_state.dart
@@ -0,0 +1,21 @@
+import 'package:core/core.dart';
+import 'package:model/model.dart';
+
+class GetOIDCConfigurationSuccess extends UIState {
+
+ final OIDCConfiguration oidcConfiguration;
+
+ GetOIDCConfigurationSuccess(this.oidcConfiguration);
+
+ @override
+ List