mirror of
https://github.com/whyorean/AuroraStore.git
synced 2026-06-19 21:19:16 -04:00
Another NPE fixed. Apparently, some installed apps might have no version string
This commit is contained in:
@@ -78,7 +78,7 @@ public class DetailsActivity extends YalpStoreActivity {
|
||||
redrawDetails(DetailsActivity.app);
|
||||
}
|
||||
|
||||
DetailsTask task = getDetailsTask(packageName);
|
||||
GetAndRedrawDetailsTask task = getDetailsTask(packageName);
|
||||
task.setTaskClone(getDetailsTask(packageName));
|
||||
task.execute();
|
||||
}
|
||||
@@ -163,21 +163,29 @@ public class DetailsActivity extends YalpStoreActivity {
|
||||
downloadOptionsFragment.draw();
|
||||
}
|
||||
|
||||
private DetailsTask getDetailsTask(String packageName) {
|
||||
DetailsTask task = new DetailsTask() {
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Throwable e) {
|
||||
super.onPostExecute(e);
|
||||
if (this.app != null) {
|
||||
DetailsActivity.app = this.app;
|
||||
redrawDetails(this.app);
|
||||
}
|
||||
}
|
||||
};
|
||||
private GetAndRedrawDetailsTask getDetailsTask(String packageName) {
|
||||
GetAndRedrawDetailsTask task = new GetAndRedrawDetailsTask(this);
|
||||
task.setPackageName(packageName);
|
||||
task.setContext(this);
|
||||
task.setProgressIndicator(findViewById(R.id.progress));
|
||||
return task;
|
||||
}
|
||||
|
||||
static class GetAndRedrawDetailsTask extends DetailsTask {
|
||||
|
||||
private DetailsActivity activity;
|
||||
|
||||
public GetAndRedrawDetailsTask(DetailsActivity activity) {
|
||||
this.activity = activity;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Throwable e) {
|
||||
super.onPostExecute(e);
|
||||
if (this.app != null) {
|
||||
DetailsActivity.app = this.app;
|
||||
activity.redrawDetails(this.app);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ public class DirectDownloadActivity extends YalpStoreActivity {
|
||||
return;
|
||||
}
|
||||
Log.i(getClass().getName(), "Getting package " + packageName);
|
||||
DetailsTask task = getDetailsTask(packageName);
|
||||
DetailsAndPurchaseTask task = getDetailsTask(packageName);
|
||||
task.setTaskClone(getDetailsTask(packageName));
|
||||
task.execute();
|
||||
finish();
|
||||
@@ -46,33 +46,13 @@ public class DirectDownloadActivity extends YalpStoreActivity {
|
||||
}
|
||||
}
|
||||
|
||||
private DetailsTask getDetailsTask(final String packageName) {
|
||||
DetailsTask task = new DetailsTask() {
|
||||
@Override
|
||||
protected void onPostExecute(Throwable result) {
|
||||
Throwable e = result;
|
||||
if (result instanceof RuntimeException && null != result.getCause()) {
|
||||
e = result.getCause();
|
||||
}
|
||||
if (null == e) {
|
||||
getPurchaseTask(app).execute();
|
||||
} else {
|
||||
DetailsActivity.start(context, packageName);
|
||||
}
|
||||
}
|
||||
};
|
||||
private DetailsAndPurchaseTask getDetailsTask(final String packageName) {
|
||||
DetailsAndPurchaseTask task = new DetailsAndPurchaseTask();
|
||||
task.setPackageName(packageName);
|
||||
task.setContext(this);
|
||||
return task;
|
||||
}
|
||||
|
||||
private PurchaseTask getPurchaseTask(App app) {
|
||||
PurchaseTask task = new PurchaseTask();
|
||||
task.setApp(app);
|
||||
task.setContext(this);
|
||||
return task;
|
||||
}
|
||||
|
||||
private boolean checkPermission() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
return checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||
@@ -80,4 +60,27 @@ public class DirectDownloadActivity extends YalpStoreActivity {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static class DetailsAndPurchaseTask extends DetailsTask {
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Throwable result) {
|
||||
Throwable e = result;
|
||||
if (result instanceof RuntimeException && null != result.getCause()) {
|
||||
e = result.getCause();
|
||||
}
|
||||
if (null == e) {
|
||||
getPurchaseTask(app).execute();
|
||||
} else {
|
||||
DetailsActivity.start(context, packageName);
|
||||
}
|
||||
}
|
||||
|
||||
private PurchaseTask getPurchaseTask(App app) {
|
||||
PurchaseTask task = new PurchaseTask();
|
||||
task.setApp(app);
|
||||
task.setContext(context);
|
||||
return task;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,10 +111,10 @@ public class GeneralDetails extends Abstract {
|
||||
}
|
||||
try {
|
||||
PackageInfo info = activity.getPackageManager().getPackageInfo(app.getPackageName(), 0);
|
||||
if (info.versionCode == app.getVersionCode()) {
|
||||
String currentVersion = info.versionName;
|
||||
if (info.versionCode == app.getVersionCode() || null == currentVersion) {
|
||||
return;
|
||||
}
|
||||
String currentVersion = info.versionName;
|
||||
String newVersion = versionName;
|
||||
if (currentVersion.equals(newVersion)) {
|
||||
currentVersion += " (" + info.versionCode;
|
||||
|
||||
Reference in New Issue
Block a user