mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 12:53:55 +01:00
Merge pull request #639 from dbrant/rotate1
Fix display of media detail after screen rotation.
This commit is contained in:
commit
a826ca4049
1 changed files with 28 additions and 19 deletions
|
|
@ -114,25 +114,6 @@ public class MediaDetailFragment extends Fragment {
|
||||||
|
|
||||||
licenseList = new LicenseList(getActivity());
|
licenseList = new LicenseList(getActivity());
|
||||||
|
|
||||||
Media media = detailProvider.getMediaAtPosition(index);
|
|
||||||
if (media == null) {
|
|
||||||
// Ask the detail provider to ping us when we're ready
|
|
||||||
Timber.d("MediaDetailFragment not yet ready to display details; registering observer");
|
|
||||||
dataObserver = new DataSetObserver() {
|
|
||||||
@Override
|
|
||||||
public void onChanged() {
|
|
||||||
Timber.d("MediaDetailFragment ready to display delayed details!");
|
|
||||||
detailProvider.unregisterDataSetObserver(dataObserver);
|
|
||||||
dataObserver = null;
|
|
||||||
displayMediaDetails(detailProvider.getMediaAtPosition(index));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
detailProvider.registerDataSetObserver(dataObserver);
|
|
||||||
} else {
|
|
||||||
Timber.d("MediaDetailFragment ready to display details");
|
|
||||||
displayMediaDetails(media);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Progressively darken the image in the background when we scroll detail pane up
|
// Progressively darken the image in the background when we scroll detail pane up
|
||||||
scrollListener = new ViewTreeObserver.OnScrollChangedListener() {
|
scrollListener = new ViewTreeObserver.OnScrollChangedListener() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -169,6 +150,31 @@ public class MediaDetailFragment extends Fragment {
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override public void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
Media media = detailProvider.getMediaAtPosition(index);
|
||||||
|
if (media == null) {
|
||||||
|
// Ask the detail provider to ping us when we're ready
|
||||||
|
Timber.d("MediaDetailFragment not yet ready to display details; registering observer");
|
||||||
|
dataObserver = new DataSetObserver() {
|
||||||
|
@Override
|
||||||
|
public void onChanged() {
|
||||||
|
if (!isAdded()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Timber.d("MediaDetailFragment ready to display delayed details!");
|
||||||
|
detailProvider.unregisterDataSetObserver(dataObserver);
|
||||||
|
dataObserver = null;
|
||||||
|
displayMediaDetails(detailProvider.getMediaAtPosition(index));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
detailProvider.registerDataSetObserver(dataObserver);
|
||||||
|
} else {
|
||||||
|
Timber.d("MediaDetailFragment ready to display details");
|
||||||
|
displayMediaDetails(media);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void displayMediaDetails(final Media media) {
|
private void displayMediaDetails(final Media media) {
|
||||||
//Always load image from Internet to allow viewing the desc, license, and cats
|
//Always load image from Internet to allow viewing the desc, license, and cats
|
||||||
image.setMedia(media);
|
image.setMedia(media);
|
||||||
|
|
@ -199,6 +205,9 @@ public class MediaDetailFragment extends Fragment {
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Boolean success) {
|
protected void onPostExecute(Boolean success) {
|
||||||
detailFetchTask = null;
|
detailFetchTask = null;
|
||||||
|
if (!isAdded()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (success) {
|
if (success) {
|
||||||
extractor.fill(media);
|
extractor.fill(media);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue