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() {
super.onDestroy();
SpinnerDialog.closeDialogs(this);
Dialog.closeDialogs();
}

View File

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

View File

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