Ask for active downloading url in on resume.

Fixes #624.

The `AppDetails` activity was not correctly asking for the active
download url string when being resumed. This change recalculates the
value when being resumed now.
This commit is contained in:
Peter Serwylo 2016-05-05 12:02:52 +10:00 committed by Hans-Christoph Steiner
parent 3a1fcfd226
commit 2c7033e367
2 changed files with 19 additions and 7 deletions

View File

@ -426,7 +426,12 @@ public class AppDetails extends AppCompatActivity {
@Override
protected void onResumeFragments() {
// Must be called before super.onResumeFragments(), as the fragments depend on the active
// url being correctly set in order to know whether or not to show the download progress bar.
calcActiveDownloadUrlString(app.packageName);
super.onResumeFragments();
headerFragment = (AppDetailsHeaderFragment) getSupportFragmentManager().findFragmentById(R.id.header);
refreshApkList();
supportInvalidateOptionsMenu();
@ -582,13 +587,7 @@ public class AppDetails extends AppCompatActivity {
Utils.debugLog(TAG, "Getting application details for " + packageName);
App newApp = null;
String urlString = getPreferences(MODE_PRIVATE).getString(packageName, null);
if (DownloaderService.isQueuedOrActive(urlString)) {
activeDownloadUrlString = urlString;
} else {
// this URL is no longer active, remove it
PreferencesCompat.apply(getPreferences(MODE_PRIVATE).edit().remove(packageName));
}
calcActiveDownloadUrlString(packageName);
if (!TextUtils.isEmpty(packageName)) {
newApp = AppProvider.Helper.findByPackageName(getContentResolver(), packageName);
@ -599,6 +598,16 @@ public class AppDetails extends AppCompatActivity {
return this.app != null;
}
private void calcActiveDownloadUrlString(String packageName) {
String urlString = getPreferences(MODE_PRIVATE).getString(packageName, null);
if (DownloaderService.isQueuedOrActive(urlString)) {
activeDownloadUrlString = urlString;
} else {
// this URL is no longer active, remove it
PreferencesCompat.apply(getPreferences(MODE_PRIVATE).edit().remove(packageName));
}
}
/**
* If passed null, this will show a message to the user ("Could not find app ..." or something
* like that) and then finish the activity.

View File

@ -389,6 +389,9 @@ public class DownloaderService extends Service {
if (TextUtils.isEmpty(urlString)) { //NOPMD - suggests unreadable format
return false;
}
if (serviceHandler == null) {
return false; // this service is not even running
}
return serviceHandler.hasMessages(urlString.hashCode()) || isActive(urlString);
}