Only close spinner dialogs corresponding to the current activity

This commit is contained in:
Cameron Gutman 2014-08-06 15:05:26 -07:00
parent fcfdd4e323
commit ac5c264090
3 changed files with 12 additions and 7 deletions

View File

@ -97,6 +97,7 @@ public class AppView extends Activity {
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
SpinnerDialog.closeDialogs(this);
Dialog.closeDialogs(); Dialog.closeDialogs();
} }

View File

@ -254,7 +254,7 @@ public class Game extends Activity implements SurfaceHolder.Callback, OnGenericM
protected void onStop() { protected void onStop() {
super.onStop(); super.onStop();
SpinnerDialog.closeDialogs(); SpinnerDialog.closeDialogs(this);
Dialog.closeDialogs(); Dialog.closeDialogs();
displayedFailureDialog = true; displayedFailureDialog = true;

View File

@ -1,6 +1,7 @@
package com.limelight.utils; package com.limelight.utils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator;
import android.app.Activity; import android.app.Activity;
import android.app.ProgressDialog; import android.app.ProgressDialog;
@ -31,16 +32,19 @@ public class SpinnerDialog implements Runnable,OnCancelListener {
return spinner; return spinner;
} }
public static void closeDialogs() public static void closeDialogs(Activity activity)
{ {
synchronized (rundownDialogs) { synchronized (rundownDialogs) {
for (SpinnerDialog d : rundownDialogs) { Iterator<SpinnerDialog> i = rundownDialogs.iterator();
if (d.progress.isShowing()) { while (i.hasNext()) {
d.progress.dismiss(); SpinnerDialog dialog = i.next();
if (dialog.activity == activity) {
i.remove();
if (dialog.progress.isShowing()) {
dialog.progress.dismiss();
}
} }
} }
rundownDialogs.clear();
} }
} }