From 7e126271cf548bcea09391e1487729707211d437 Mon Sep 17 00:00:00 2001 From: Alfian Losari Date: Fri, 20 Oct 2023 10:18:54 +0700 Subject: [PATCH] Add onAuthFailure method for AuthProvider (#18) * Add onAuthFailure method for AuthProvider * Add onAuthFailure method for AuthProvider * Add onAuthFailure method for AuthProvider --- courier_dart_sdk/lib/auth/auth_provider.dart | 1 + courier_dart_sdk/lib/auth/dio_auth_provider.dart | 3 +++ courier_dart_sdk/lib/courier_client.dart | 5 +++-- courier_dart_sdk_demo/lib/local_auth_provider.dart | 3 +++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/courier_dart_sdk/lib/auth/auth_provider.dart b/courier_dart_sdk/lib/auth/auth_provider.dart index 4907cf6..8c269ff 100644 --- a/courier_dart_sdk/lib/auth/auth_provider.dart +++ b/courier_dart_sdk/lib/auth/auth_provider.dart @@ -2,4 +2,5 @@ import 'package:courier_dart_sdk/courier_connect_options.dart'; abstract class AuthProvider { Future fetchConnectOptions(); + Future onAuthFailure(); } diff --git a/courier_dart_sdk/lib/auth/dio_auth_provider.dart b/courier_dart_sdk/lib/auth/dio_auth_provider.dart index 5258107..ff61cbb 100644 --- a/courier_dart_sdk/lib/auth/dio_auth_provider.dart +++ b/courier_dart_sdk/lib/auth/dio_auth_provider.dart @@ -29,4 +29,7 @@ class DioAuthProvider implements AuthProvider { type: DioExceptionType.connectionError); } } + + @override + Future onAuthFailure() async {} } diff --git a/courier_dart_sdk/lib/courier_client.dart b/courier_dart_sdk/lib/courier_client.dart index 998ee59..98a57d1 100644 --- a/courier_dart_sdk/lib/courier_client.dart +++ b/courier_dart_sdk/lib/courier_client.dart @@ -265,7 +265,7 @@ class _CourierClientImpl implements CourierClient { Future _callbackHandler(MethodCall methodCall) async { switch (methodCall.method) { case 'onAuthFailure': - _handleAuthFailure(); + await _handleAuthFailure(); return; case 'onMessageReceive': _handleMessage(methodCall.arguments); @@ -278,7 +278,8 @@ class _CourierClientImpl implements CourierClient { } } - void _handleAuthFailure() { + Future _handleAuthFailure() async { + await authProvider.onAuthFailure(); connect(); } diff --git a/courier_dart_sdk_demo/lib/local_auth_provider.dart b/courier_dart_sdk_demo/lib/local_auth_provider.dart index 8f3c4d4..81a2eb0 100644 --- a/courier_dart_sdk_demo/lib/local_auth_provider.dart +++ b/courier_dart_sdk_demo/lib/local_auth_provider.dart @@ -10,4 +10,7 @@ class LocalAuthProvider implements AuthProvider { Future fetchConnectOptions() { return Future.value(connectOptions); } + + @override + Future onAuthFailure() async {} }