diff --git a/lib/config/setting_keys.dart b/lib/config/setting_keys.dart index 14d259470..21eacb778 100644 --- a/lib/config/setting_keys.dart +++ b/lib/config/setting_keys.dart @@ -57,7 +57,8 @@ enum AppSettings { displayChatDetailsColumn( 'chat.fluffy.display_chat_details_column', false, - ); + ), + enableSoftLogout('chat.fluffy.enable_soft_logout', false); final String key; final T defaultValue; diff --git a/lib/utils/client_manager.dart b/lib/utils/client_manager.dart index df1e6ca3e..49802e4d1 100644 --- a/lib/utils/client_manager.dart +++ b/lib/utils/client_manager.dart @@ -102,6 +102,7 @@ abstract class ClientManager { static Client createClient(String clientName, SharedPreferences store) { final shareKeysWith = AppSettings.shareKeysWith.getItem(store); + final enableSoftLogout = AppSettings.enableSoftLogout.getItem(store); return Client( clientName, @@ -130,6 +131,8 @@ abstract class ClientManager { .singleWhereOrNull((share) => share.name == shareKeysWith) ?? ShareKeysWith.all, convertLinebreaksInFormatting: false, + onSoftLogout: + enableSoftLogout ? (client) => client.refreshAccessToken() : null, ); }