Skip to content

Commit 1113584

Browse files
author
Kevin Gilland
committed
Removing remote refresh on preference load.
1 parent b3b5065 commit 1113584

File tree

1 file changed

+40
-18
lines changed

1 file changed

+40
-18
lines changed

mage/src/main/java/mil/nga/giat/mage/map/preference/TileOverlayPreferenceActivity.java

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import android.app.Activity;
66
import android.content.Context;
77
import android.content.DialogInterface;
8-
import android.content.Intent;
98
import android.content.SharedPreferences;
109
import android.content.pm.PackageManager;
1110
import android.os.AsyncTask;
@@ -193,8 +192,8 @@ public boolean onItemLongClick(AdapterView<?> parent, View view, int position, l
193192
swipeContainer.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
194193
@Override
195194
public void onRefresh() {
196-
preRefresh(refreshButton);
197-
refresh();
195+
softRefresh(refreshButton);
196+
hardRefresh();
198197
}
199198
});
200199

@@ -224,12 +223,17 @@ public void onClick(DialogInterface dialog, int which) {
224223
return view;
225224
}
226225

226+
@Override
227+
public void onDestroy() {
228+
super.onDestroy();
229+
230+
CacheProvider.getInstance(getActivity()).unregisterCacheOverlayListener(this);
231+
}
232+
227233
@Override
228234
public void onResume() {
229235
super.onResume();
230236

231-
CacheProvider.getInstance(getActivity()).registerCacheOverlayListener(this, false);
232-
233237
downloadManager.onResume();
234238

235239
synchronized (timerLock) {
@@ -260,24 +264,26 @@ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
260264
refreshButton = menu.findItem(R.id.tile_overlay_refresh);
261265
refreshButton.setEnabled(true);
262266

263-
preRefresh(refreshButton);
264-
refresh();
267+
CacheProvider.getInstance(getActivity()).registerCacheOverlayListener(this, false);
268+
softRefresh(refreshButton);
269+
refreshLocalDownloadableLayers();
270+
CacheProvider.getInstance(getActivity().getApplicationContext()).refreshTileOverlays();
265271
}
266272

267273
@Override
268274
public boolean onOptionsItemSelected(MenuItem item) {
269275
switch (item.getItemId()) {
270276
case R.id.tile_overlay_refresh:
271-
preRefresh(item);
272-
refresh();
277+
softRefresh(item);
278+
hardRefresh();
273279
return true;
274280
default:
275281
return super.onOptionsItemSelected(item);
276282
}
277283
}
278284

279285
@MainThread
280-
private void preRefresh(MenuItem item){
286+
private void softRefresh(MenuItem item){
281287
item.setEnabled(false);
282288

283289
synchronized (adapterLock) {
@@ -297,14 +303,33 @@ private void preRefresh(MenuItem item){
297303
* Attempt to pull all the layers from the remote server as well as refreshing any local overlays
298304
*
299305
*/
300-
private void refresh() {
306+
private void hardRefresh() {
301307

302-
@SuppressLint("StaticFieldLeak") AsyncTask<Void, Void, List<Layer>> fetcher = new AsyncTask<Void, Void, List<Layer>>() {
308+
@SuppressLint("StaticFieldLeak") AsyncTask<Void, Void, Void> fetcher = new AsyncTask<Void, Void, Void>() {
303309
@Override
304-
protected List<Layer> doInBackground(Void... objects) {
310+
protected Void doInBackground(Void... objects) {
305311
fetchRemoteGeopackageLayers();
306312
fetchRemoteStaticLayers();
307313

314+
return null;
315+
}
316+
317+
@Override
318+
protected void onPostExecute(Void v) {
319+
super.onPostExecute(v);
320+
321+
refreshLocalDownloadableLayers();
322+
CacheProvider.getInstance(getActivity().getApplicationContext()).refreshTileOverlays();
323+
324+
}
325+
};
326+
fetcher.execute();
327+
}
328+
329+
private void refreshLocalDownloadableLayers(){
330+
@SuppressLint("StaticFieldLeak") AsyncTask<Void, Void, List<Layer>> fetcher = new AsyncTask<Void, Void, List<Layer>>() {
331+
@Override
332+
protected List<Layer> doInBackground(Void... objects) {
308333
final Event event = EventHelper.getInstance(getActivity().getApplicationContext()).getCurrentEvent();
309334

310335
List<Layer> layers = new ArrayList<>();
@@ -333,9 +358,6 @@ protected void onPostExecute(List<Layer> layers) {
333358
adapter.getDownloadableLayers().addAll(layers);
334359
Collections.sort(adapter.getDownloadableLayers(), new LayerNameComparator());
335360
}
336-
337-
CacheProvider.getInstance(getActivity().getApplicationContext()).refreshTileOverlays();
338-
339361
}
340362
};
341363
fetcher.execute();
@@ -585,7 +607,7 @@ private void deleteFile(File base) {
585607
@MainThread
586608
private void deleteCacheOverlay(final CacheOverlay cacheOverlay){
587609

588-
preRefresh(refreshButton);
610+
softRefresh(refreshButton);
589611

590612
@SuppressLint("StaticFieldLeak") AsyncTask<Void, Void, Void> deleteTask = new AsyncTask<Void, Void, Void>() {
591613
@Override
@@ -605,7 +627,7 @@ protected Void doInBackground(Void... voids) {
605627
break;
606628
}
607629

608-
refresh();
630+
hardRefresh();
609631

610632
return null;
611633
}

0 commit comments

Comments
 (0)