Skip to content

Commit 7dfaf3e

Browse files
authored
Merge pull request #9767 from nextcloud/backport/9743/stable-3.19
[stable-3.19] Fix crashes and double loading in GalleryFragment when changing dark theme
2 parents 4d3f6d1 + 52e3fae commit 7dfaf3e

File tree

2 files changed

+24
-19
lines changed

2 files changed

+24
-19
lines changed

src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ protected void onNewIntent(Intent intent) {
525525
if (SearchRemoteOperation.SearchType.PHOTO_SEARCH.equals(searchEvent.searchType)) {
526526
Log_OC.d(this, "Switch to photo search fragment");
527527

528-
GalleryFragment photoFragment = new GalleryFragment(true);
528+
GalleryFragment photoFragment = new GalleryFragment();
529529
Bundle bundle = new Bundle();
530530
bundle.putParcelable(OCFileListFragment.SEARCH_EVENT, Parcels.wrap(searchEvent));
531531
photoFragment.setArguments(bundle);
@@ -2071,7 +2071,7 @@ public void run() {
20712071

20722072
OCFileListFragment fragment = getListOfFilesFragment();
20732073

2074-
if (fragment != null) {
2074+
if (fragment != null && !(fragment instanceof GalleryFragment)) {
20752075
fragment.setLoading(true);
20762076
}
20772077

@@ -2341,7 +2341,7 @@ public void onMessageEvent(final SearchEvent event) {
23412341
if (SearchRemoteOperation.SearchType.PHOTO_SEARCH == event.searchType) {
23422342
Log_OC.d(this, "Switch to photo search fragment");
23432343

2344-
setLeftFragment(new GalleryFragment(true));
2344+
setLeftFragment(new GalleryFragment());
23452345
}
23462346
}
23472347

src/main/java/com/owncloud/android/ui/fragment/GalleryFragment.java

+21-16
Original file line numberDiff line numberDiff line change
@@ -54,27 +54,25 @@ public class GalleryFragment extends OCFileListFragment {
5454
private SearchEvent searchEvent;
5555
private boolean refresh;
5656

57-
public GalleryFragment() {
58-
this.refresh = false;
59-
}
60-
61-
public GalleryFragment(boolean refresh) {
62-
this.refresh = refresh;
57+
private void createOperation() {
58+
if(searchEvent == null) {
59+
searchEvent = new SearchEvent("", SearchRemoteOperation.SearchType.GALLERY_SEARCH);
60+
}
61+
if(searchRemoteOperation == null) {
62+
OCCapability ocCapability = mContainerActivity.getStorageManager()
63+
.getCapability(accountManager.getUser().getAccountName());
64+
65+
searchRemoteOperation = new SearchRemoteOperation(searchEvent.getSearchQuery(),
66+
searchEvent.getSearchType(),
67+
false,
68+
ocCapability);
69+
}
6370
}
6471

6572
@Override
6673
public void onCreate(Bundle savedInstanceState) {
6774
super.onCreate(savedInstanceState);
68-
69-
searchEvent = new SearchEvent("", SearchRemoteOperation.SearchType.GALLERY_SEARCH);
70-
71-
OCCapability ocCapability = mContainerActivity.getStorageManager()
72-
.getCapability(accountManager.getUser().getAccountName());
73-
74-
searchRemoteOperation = new SearchRemoteOperation(searchEvent.getSearchQuery(),
75-
searchEvent.getSearchType(),
76-
false,
77-
ocCapability);
75+
refresh = true;
7876
}
7977

8078
@Override
@@ -91,6 +89,7 @@ public void onPause() {
9189
*/
9290
@Override
9391
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
92+
createOperation();
9493
View v = super.onCreateView(inflater, container, savedInstanceState);
9594

9695
getRecyclerView().addOnScrollListener(new RecyclerView.OnScrollListener() {
@@ -126,6 +125,12 @@ public void onRefresh() {
126125
handleSearchEvent();
127126
}
128127

128+
@Override
129+
public void onResume() {
130+
super.onResume();
131+
setLoading(photoSearchQueryRunning);
132+
}
133+
129134
@Override
130135
public void onMessageEvent(ChangeMenuEvent changeMenuEvent) {
131136
super.onMessageEvent(changeMenuEvent);

0 commit comments

Comments
 (0)