@@ -114,25 +114,6 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
114
114
115
115
licenseList = new LicenseList (getActivity ());
116
116
117
- Media media = detailProvider .getMediaAtPosition (index );
118
- if (media == null ) {
119
- // Ask the detail provider to ping us when we're ready
120
- Timber .d ("MediaDetailFragment not yet ready to display details; registering observer" );
121
- dataObserver = new DataSetObserver () {
122
- @ Override
123
- public void onChanged () {
124
- Timber .d ("MediaDetailFragment ready to display delayed details!" );
125
- detailProvider .unregisterDataSetObserver (dataObserver );
126
- dataObserver = null ;
127
- displayMediaDetails (detailProvider .getMediaAtPosition (index ));
128
- }
129
- };
130
- detailProvider .registerDataSetObserver (dataObserver );
131
- } else {
132
- Timber .d ("MediaDetailFragment ready to display details" );
133
- displayMediaDetails (media );
134
- }
135
-
136
117
// Progressively darken the image in the background when we scroll detail pane up
137
118
scrollListener = new ViewTreeObserver .OnScrollChangedListener () {
138
119
@ Override
@@ -169,6 +150,31 @@ public void onGlobalLayout() {
169
150
return view ;
170
151
}
171
152
153
+ @ Override public void onResume () {
154
+ super .onResume ();
155
+ Media media = detailProvider .getMediaAtPosition (index );
156
+ if (media == null ) {
157
+ // Ask the detail provider to ping us when we're ready
158
+ Timber .d ("MediaDetailFragment not yet ready to display details; registering observer" );
159
+ dataObserver = new DataSetObserver () {
160
+ @ Override
161
+ public void onChanged () {
162
+ if (!isAdded ()) {
163
+ return ;
164
+ }
165
+ Timber .d ("MediaDetailFragment ready to display delayed details!" );
166
+ detailProvider .unregisterDataSetObserver (dataObserver );
167
+ dataObserver = null ;
168
+ displayMediaDetails (detailProvider .getMediaAtPosition (index ));
169
+ }
170
+ };
171
+ detailProvider .registerDataSetObserver (dataObserver );
172
+ } else {
173
+ Timber .d ("MediaDetailFragment ready to display details" );
174
+ displayMediaDetails (media );
175
+ }
176
+ }
177
+
172
178
private void displayMediaDetails (final Media media ) {
173
179
//Always load image from Internet to allow viewing the desc, license, and cats
174
180
image .setMedia (media );
@@ -199,6 +205,9 @@ protected Boolean doInBackground(Void... voids) {
199
205
@ Override
200
206
protected void onPostExecute (Boolean success ) {
201
207
detailFetchTask = null ;
208
+ if (!isAdded ()) {
209
+ return ;
210
+ }
202
211
203
212
if (success ) {
204
213
extractor .fill (media );
0 commit comments