Skip to content

Commit 7b0e9ab

Browse files
committed
use optional generic function to access fragment
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
1 parent f49e6d0 commit 7b0e9ab

2 files changed

Lines changed: 28 additions & 16 deletions

File tree

app/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -691,14 +691,20 @@ public void replaceAlbumFragment() {
691691
transaction.commit();
692692
}
693693

694+
public <T extends Fragment> Optional<T> getFragment(String tag, Class<T> clazz) {
695+
return Optional.ofNullable(getSupportFragmentManager().findFragmentByTag(tag))
696+
.filter(clazz::isInstance)
697+
.map(clazz::cast);
698+
}
699+
694700
public boolean isAlbumsFragment() {
695-
Fragment albumsFragment = getSupportFragmentManager().findFragmentByTag(AlbumsFragment.Companion.getTAG());
696-
return albumsFragment instanceof AlbumsFragment && albumsFragment.isVisible();
701+
final var fragment = getFragment(AlbumsFragment.Companion.getTAG(), AlbumsFragment.class);
702+
return fragment.map(AlbumsFragment::isVisible).orElse(false);
697703
}
698704

699705
public boolean isAlbumItemsFragment() {
700-
Fragment albumItemsFragment = getSupportFragmentManager().findFragmentByTag(AlbumItemsFragment.Companion.getTAG());
701-
return albumItemsFragment instanceof AlbumItemsFragment && albumItemsFragment.isVisible();
706+
final var fragment = getFragment(AlbumItemsFragment.Companion.getTAG(), AlbumItemsFragment.class);
707+
return fragment.map(AlbumItemsFragment::isVisible).orElse(false);
702708
}
703709

704710
private void startAssistantScreen() {

app/src/main/java/com/owncloud/android/ui/activity/FileActivity.java

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@
109109

110110
import java.lang.ref.WeakReference;
111111
import java.util.ArrayList;
112-
import java.util.Objects;
113112

114113
import javax.inject.Inject;
115114

@@ -841,18 +840,25 @@ private void onUpdateShareInformation(RemoteOperationResult result, @StringRes i
841840
}
842841

843842
public void refreshList() {
844-
// first check for album fragments
845843
if (isAlbumsFragment()) {
846-
((AlbumsFragment) Objects.requireNonNull(getSupportFragmentManager().findFragmentByTag(AlbumsFragment.Companion.getTAG()))).refreshAlbums();
847-
} else if (isAlbumItemsFragment()) {
848-
((AlbumItemsFragment) Objects.requireNonNull(getSupportFragmentManager().findFragmentByTag(AlbumItemsFragment.Companion.getTAG()))).refreshData();
849-
} else {
850-
final Fragment fragment = getSupportFragmentManager().findFragmentByTag(FileDisplayActivity.TAG_LIST_OF_FILES);
851-
if (fragment instanceof OCFileListFragment listFragment) {
852-
listFragment.onRefresh();
853-
} else if (fragment instanceof FileDetailFragment detailFragment) {
854-
detailFragment.goBackToOCFileListFragment();
855-
}
844+
getFragment(AlbumsFragment.Companion.getTAG(), AlbumsFragment.class)
845+
.ifPresent(AlbumsFragment::refreshAlbums);
846+
return;
847+
}
848+
849+
if (isAlbumItemsFragment()) {
850+
getFragment(AlbumItemsFragment.Companion.getTAG(), AlbumItemsFragment.class)
851+
.ifPresent(AlbumItemsFragment::refreshData);
852+
return;
853+
}
854+
855+
final var fragment =
856+
getSupportFragmentManager().findFragmentByTag(FileDisplayActivity.TAG_LIST_OF_FILES);
857+
858+
if (fragment instanceof OCFileListFragment listFragment) {
859+
listFragment.onRefresh();
860+
} else if (fragment instanceof FileDetailFragment detailFragment) {
861+
detailFragment.goBackToOCFileListFragment();
856862
}
857863
}
858864

0 commit comments

Comments
 (0)