2020
2121import com .google .android .material .dialog .MaterialAlertDialogBuilder ;
2222
23+ import java .util .concurrent .ExecutorService ;
24+ import java .util .concurrent .Executors ;
25+
2326import it .niedermann .owncloud .notes .NotesApplication ;
2427import it .niedermann .owncloud .notes .R ;
2528import it .niedermann .owncloud .notes .accountswitcher .repository .UserStatusRepository ;
26- import it .niedermann .owncloud .notes .branding .BrandedBottomSheetDialogFragment ;
2729import it .niedermann .owncloud .notes .branding .BrandedDialogFragment ;
2830import it .niedermann .owncloud .notes .branding .BrandingUtil ;
2931import it .niedermann .owncloud .notes .databinding .DialogAccountSwitcherBinding ;
@@ -45,6 +47,7 @@ public class AccountSwitcherDialog extends BrandedDialogFragment {
4547 private DialogAccountSwitcherBinding binding ;
4648 private AccountSwitcherListener accountSwitcherListener ;
4749 private long currentAccountId ;
50+ private final ExecutorService executor = Executors .newSingleThreadExecutor ();
4851
4952 @ Override
5053 public void onAttach (@ NonNull Context context ) {
@@ -81,15 +84,11 @@ public Dialog onCreateDialog(Bundle savedInstanceState) {
8184 binding .accountLayout .setOnClickListener ((v ) -> dismiss ());
8285
8386 binding .onlineStatus .setOnClickListener (v -> {
84- final var setOnlineStatusBottomSheet = new SetOnlineStatusBottomSheet ();
85- setOnlineStatusBottomSheet .show (requireActivity ().getSupportFragmentManager (), "fragment_set_status" );
86- dismiss ();
87+ showBottomSheetDialog (AccountSwitcherBottomSheetTag .ONLINE_STATUS );
8788 });
8889
8990 binding .statusMessage .setOnClickListener (v -> {
90- final var setStatusMessageDialog = new SetStatusMessageBottomSheet ();
91- setStatusMessageDialog .show (requireActivity ().getSupportFragmentManager (), "fragment_set_status_message" );
92- dismiss ();
91+ showBottomSheetDialog (AccountSwitcherBottomSheetTag .MESSAGE_STATUS );
9392 });
9493
9594 final var adapter = new AccountSwitcherAdapter ((localAccount -> {
@@ -134,10 +133,18 @@ private void showBottomSheetDialog(@NonNull AccountSwitcherBottomSheetTag tag) {
134133 return Unit .INSTANCE ;
135134 }
136135 final var repository = new UserStatusRepository (requireContext (), account );
136+ executor .execute (() -> {
137+ final var currentStatus = repository .fetchUserStatus ();
138+ if (currentStatus == null ) {
139+ return ;
140+ }
137141
138- final var fragment = tag .fragment (repository , )
139- fragment .show (requireActivity ().getSupportFragmentManager (), tag .name ());
140- dismiss ();
142+ requireActivity ().runOnUiThread (() -> {
143+ final var fragment = tag .fragment (repository , currentStatus );
144+ fragment .show (requireActivity ().getSupportFragmentManager (), tag .name ());
145+ dismiss ();
146+ });
147+ });
141148 return Unit .INSTANCE ;
142149 });
143150 }
0 commit comments