diff --git a/lib/config/setting_keys.dart b/lib/config/setting_keys.dart index 19136fa9f..3b0591f7f 100644 --- a/lib/config/setting_keys.dart +++ b/lib/config/setting_keys.dart @@ -67,7 +67,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 8362d4a64..bde4dd1c5 100644 --- a/lib/utils/client_manager.dart +++ b/lib/utils/client_manager.dart @@ -105,6 +105,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, @@ -144,6 +145,8 @@ abstract class ClientManager { .singleWhereOrNull((share) => share.name == shareKeysWith) ?? ShareKeysWith.all, convertLinebreaksInFormatting: false, + onSoftLogout: + enableSoftLogout ? (client) => client.refreshAccessToken() : null, // #Pangea syncFilter: Filter( room: RoomFilter(