|
|
|
@ -10,11 +10,9 @@ import 'package:neon/src/blocs/user_details.dart';
|
|
|
|
|
import 'package:neon/src/blocs/user_statuses.dart'; |
|
|
|
|
import 'package:neon/src/models/account.dart'; |
|
|
|
|
import 'package:neon/src/models/app_implementation.dart'; |
|
|
|
|
import 'package:neon/src/platform/platform.dart'; |
|
|
|
|
import 'package:neon/src/settings/models/storage.dart'; |
|
|
|
|
import 'package:neon/src/utils/account_options.dart'; |
|
|
|
|
import 'package:neon/src/utils/global_options.dart'; |
|
|
|
|
import 'package:neon/src/utils/request_manager.dart'; |
|
|
|
|
import 'package:rxdart/rxdart.dart'; |
|
|
|
|
import 'package:shared_preferences/shared_preferences.dart'; |
|
|
|
|
|
|
|
|
@ -58,8 +56,6 @@ abstract interface class AccountsBlocStates {
|
|
|
|
|
|
|
|
|
|
class AccountsBloc extends Bloc implements AccountsBlocEvents, AccountsBlocStates { |
|
|
|
|
AccountsBloc( |
|
|
|
|
this._requestManager, |
|
|
|
|
this._platform, |
|
|
|
|
this._sharedPreferences, |
|
|
|
|
this._globalOptions, |
|
|
|
|
this._allAppImplementations, |
|
|
|
@ -100,8 +96,6 @@ class AccountsBloc extends Bloc implements AccountsBlocEvents, AccountsBlocState
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
final RequestManager _requestManager; |
|
|
|
|
final NeonPlatform _platform; |
|
|
|
|
late final AppStorage _storage = AppStorage('accounts', _sharedPreferences); |
|
|
|
|
final SharedPreferences _sharedPreferences; |
|
|
|
|
final GlobalOptions _globalOptions; |
|
|
|
@ -231,19 +225,12 @@ class AccountsBloc extends Bloc implements AccountsBlocEvents, AccountsBlocState
|
|
|
|
|
/// The appsBloc for the specified [account]. |
|
|
|
|
/// |
|
|
|
|
/// Use [activeAppsBloc] to get them for the [activeAccount]. |
|
|
|
|
AppsBloc getAppsBlocFor(final Account account) { |
|
|
|
|
if (_appsBlocs[account.id] != null) { |
|
|
|
|
return _appsBlocs[account.id]!; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return _appsBlocs[account.id] = AppsBloc( |
|
|
|
|
_requestManager, |
|
|
|
|
AppsBloc getAppsBlocFor(final Account account) => _appsBlocs[account.id] ??= AppsBloc( |
|
|
|
|
getCapabilitiesBlocFor(account), |
|
|
|
|
this, |
|
|
|
|
account, |
|
|
|
|
_allAppImplementations, |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// The capabilitiesBloc for the [activeAccount]. |
|
|
|
|
/// |
|
|
|
@ -253,16 +240,8 @@ class AccountsBloc extends Bloc implements AccountsBlocEvents, AccountsBlocState
|
|
|
|
|
/// The capabilitiesBloc for the specified [account]. |
|
|
|
|
/// |
|
|
|
|
/// Use [activeCapabilitiesBloc] to get them for the [activeAccount]. |
|
|
|
|
CapabilitiesBloc getCapabilitiesBlocFor(final Account account) { |
|
|
|
|
if (_capabilitiesBlocs[account.id] != null) { |
|
|
|
|
return _capabilitiesBlocs[account.id]!; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return _capabilitiesBlocs[account.id] = CapabilitiesBloc( |
|
|
|
|
_requestManager, |
|
|
|
|
account, |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
CapabilitiesBloc getCapabilitiesBlocFor(final Account account) => |
|
|
|
|
_capabilitiesBlocs[account.id] ??= CapabilitiesBloc(account); |
|
|
|
|
|
|
|
|
|
/// The userDetailsBloc for the [activeAccount]. |
|
|
|
|
/// |
|
|
|
@ -272,16 +251,8 @@ class AccountsBloc extends Bloc implements AccountsBlocEvents, AccountsBlocState
|
|
|
|
|
/// The userDetailsBloc for the specified [account]. |
|
|
|
|
/// |
|
|
|
|
/// Use [activeUerDetailsBloc] to get them for the [activeAccount]. |
|
|
|
|
UserDetailsBloc getUserDetailsBlocFor(final Account account) { |
|
|
|
|
if (_userDetailsBlocs[account.id] != null) { |
|
|
|
|
return _userDetailsBlocs[account.id]!; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return _userDetailsBlocs[account.id] = UserDetailsBloc( |
|
|
|
|
_requestManager, |
|
|
|
|
account, |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
UserDetailsBloc getUserDetailsBlocFor(final Account account) => |
|
|
|
|
_userDetailsBlocs[account.id] ??= UserDetailsBloc(account); |
|
|
|
|
|
|
|
|
|
/// The userStatusBloc for the [activeAccount]. |
|
|
|
|
/// |
|
|
|
@ -291,16 +262,8 @@ class AccountsBloc extends Bloc implements AccountsBlocEvents, AccountsBlocState
|
|
|
|
|
/// The userStatusBloc for the specified [account]. |
|
|
|
|
/// |
|
|
|
|
/// Use [activeUserStatusesBloc] to get them for the [activeAccount]. |
|
|
|
|
UserStatusesBloc getUserStatusesBlocFor(final Account account) { |
|
|
|
|
if (_userStatusesBlocs[account.id] != null) { |
|
|
|
|
return _userStatusesBlocs[account.id]!; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return _userStatusesBlocs[account.id] = UserStatusesBloc( |
|
|
|
|
_platform, |
|
|
|
|
account, |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
UserStatusesBloc getUserStatusesBlocFor(final Account account) => |
|
|
|
|
_userStatusesBlocs[account.id] ??= UserStatusesBloc(account); |
|
|
|
|
|
|
|
|
|
/// The UnifiedSearchBloc for the [activeAccount]. |
|
|
|
|
/// |
|
|
|
@ -310,17 +273,12 @@ class AccountsBloc extends Bloc implements AccountsBlocEvents, AccountsBlocState
|
|
|
|
|
/// The UnifiedSearchBloc for the specified [account]. |
|
|
|
|
/// |
|
|
|
|
/// Use [activeUnifiedSearchBloc] to get them for the [activeAccount]. |
|
|
|
|
UnifiedSearchBloc getUnifiedSearchBlocFor(final Account account) { |
|
|
|
|
if (_unifiedSearchBlocs[account.id] != null) { |
|
|
|
|
return _unifiedSearchBlocs[account.id]!; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return _unifiedSearchBlocs[account.id] = UnifiedSearchBloc( |
|
|
|
|
UnifiedSearchBloc getUnifiedSearchBlocFor(final Account account) => |
|
|
|
|
_unifiedSearchBlocs[account.id] ??= UnifiedSearchBloc( |
|
|
|
|
getAppsBlocFor(account), |
|
|
|
|
account, |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// Get a list of logged in accounts from [storage]. |
|
|
|
|
/// |
|
|
|
|