Remove app.icon from DB, save icon uris to memory
This commit is contained in:
parent
0c12c0248e
commit
534400c80c
@ -406,7 +406,7 @@ public class AppDetails extends ListActivity {
|
||||
|
||||
// Set the icon...
|
||||
ImageView iv = (ImageView) findViewById(R.id.icon);
|
||||
ImageLoader.getInstance().displayImage(app.repoAddress+"/icons/"+app.icon, iv);
|
||||
ImageLoader.getInstance().displayImage(app.icon, iv);
|
||||
|
||||
// Set the title and other header details...
|
||||
TextView tv = (TextView) findViewById(R.id.title);
|
||||
|
@ -89,7 +89,7 @@ public class DB {
|
||||
private static final String TABLE_APP = "fdroid_app";
|
||||
private static final String CREATE_TABLE_APP = "create table " + TABLE_APP
|
||||
+ " ( " + "id text not null, " + "name text not null, "
|
||||
+ "summary text not null, " + "icon text, "
|
||||
+ "summary text not null, "
|
||||
+ "description text not null, " + "license text not null, "
|
||||
+ "webURL text, " + "trackerURL text, " + "sourceURL text, "
|
||||
+ "curVersion text," + "curVercode integer,"
|
||||
@ -104,7 +104,7 @@ public class DB {
|
||||
public App() {
|
||||
name = "Unknown";
|
||||
summary = "Unknown application";
|
||||
icon = "noicon.png";
|
||||
icon = null;
|
||||
id = "unknown";
|
||||
license = "Unknown";
|
||||
category = "Uncategorized";
|
||||
@ -124,7 +124,6 @@ public class DB {
|
||||
compatible = false;
|
||||
ignoreUpdates = false;
|
||||
filtered = false;
|
||||
repoAddress = null;
|
||||
}
|
||||
|
||||
// True when all the detail fields are populated, False otherwise.
|
||||
@ -207,8 +206,6 @@ public class DB {
|
||||
// List of apks.
|
||||
public List<Apk> apks;
|
||||
|
||||
public String repoAddress;
|
||||
|
||||
// Get the current version - this will be one of the Apks from 'apks'.
|
||||
// Can return null if there are no available versions.
|
||||
// This should be the 'current' version, as in the most recent stable
|
||||
@ -426,7 +423,7 @@ public class DB {
|
||||
public String lastetag; // last etag we updated from, null forces update
|
||||
}
|
||||
|
||||
private final int DBVersion = 24;
|
||||
private final int DBVersion = 25;
|
||||
|
||||
private static void createAppApk(SQLiteDatabase db) {
|
||||
db.execSQL(CREATE_TABLE_APP);
|
||||
@ -756,7 +753,7 @@ public class DB {
|
||||
try {
|
||||
|
||||
String cols[] = new String[] { "antiFeatures", "requirements",
|
||||
"id", "name", "summary", "icon", "license", "category",
|
||||
"id", "name", "summary", "license", "category",
|
||||
"curVersion", "curVercode", "added", "lastUpdated",
|
||||
"compatible", "ignoreUpdates" };
|
||||
c = db.query(TABLE_APP, cols, null, null, null, null, null);
|
||||
@ -769,20 +766,19 @@ public class DB {
|
||||
app.id = c.getString(2);
|
||||
app.name = c.getString(3);
|
||||
app.summary = c.getString(4);
|
||||
app.icon = c.getString(5);
|
||||
app.license = c.getString(6);
|
||||
app.category = c.getString(7);
|
||||
app.curVersion = c.getString(8);
|
||||
app.curVercode = c.getInt(9);
|
||||
String sAdded = c.getString(10);
|
||||
app.license = c.getString(5);
|
||||
app.category = c.getString(6);
|
||||
app.curVersion = c.getString(7);
|
||||
app.curVercode = c.getInt(8);
|
||||
String sAdded = c.getString(9);
|
||||
app.added = (sAdded == null || sAdded.length() == 0) ? null
|
||||
: mDateFormat.parse(sAdded);
|
||||
String sLastUpdated = c.getString(11);
|
||||
String sLastUpdated = c.getString(10);
|
||||
app.lastUpdated = (sLastUpdated == null || sLastUpdated
|
||||
.length() == 0) ? null : mDateFormat
|
||||
.parse(sLastUpdated);
|
||||
app.compatible = c.getInt(12) == 1;
|
||||
app.ignoreUpdates = c.getInt(13) == 1;
|
||||
app.compatible = c.getInt(11) == 1;
|
||||
app.ignoreUpdates = c.getInt(12) == 1;
|
||||
app.hasUpdates = false;
|
||||
|
||||
if (getinstalledinfo && systemApks.containsKey(app.id)) {
|
||||
@ -1221,7 +1217,6 @@ public class DB {
|
||||
values.put("id", upapp.id);
|
||||
values.put("name", upapp.name);
|
||||
values.put("summary", upapp.summary);
|
||||
values.put("icon", upapp.icon);
|
||||
values.put("description", upapp.detail_description);
|
||||
values.put("license", upapp.license);
|
||||
values.put("category", upapp.category);
|
||||
|
@ -146,10 +146,18 @@ public class FDroidApp extends Application {
|
||||
try {
|
||||
DB db = DB.getDB();
|
||||
apps = db.getApps(true);
|
||||
for (DB.Repo repo : db.getRepos())
|
||||
for (DB.App app : apps)
|
||||
if (repo.id == app.apks.get(0).repo)
|
||||
app.repoAddress = repo.address;
|
||||
|
||||
List<DB.Repo> repos = db.getRepos();
|
||||
for (DB.App app : apps) {
|
||||
for (DB.Repo repo : repos) {
|
||||
DB.Apk bestApk = app.apks.get(0);
|
||||
if (repo.id == bestApk.repo) {
|
||||
app.icon = repo.address + "/icons/"
|
||||
+ app.id + '.' + bestApk.vercode + ".png";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} finally {
|
||||
DB.releaseDB();
|
||||
@ -158,6 +166,20 @@ public class FDroidApp extends Application {
|
||||
try {
|
||||
DB db = DB.getDB();
|
||||
apps = db.refreshApps(apps, invalidApps);
|
||||
|
||||
List<DB.Repo> repos = db.getRepos();
|
||||
for (DB.App app : apps) {
|
||||
if (!invalidApps.contains(app.id)) continue;
|
||||
for (DB.Repo repo : repos) {
|
||||
DB.Apk bestApk = app.apks.get(0);
|
||||
if (repo.id == bestApk.repo) {
|
||||
app.icon = repo.address + "/icons/"
|
||||
+ app.id + '.' + bestApk.vercode + ".png";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
invalidApps.clear();
|
||||
} finally {
|
||||
DB.releaseDB();
|
||||
|
@ -186,8 +186,6 @@ public class RepoXMLHandler extends DefaultHandler {
|
||||
curapp.id = str;
|
||||
} else if (curel.equals("name")) {
|
||||
curapp.name = str;
|
||||
} else if (curel.equals("icon")) {
|
||||
curapp.icon = str;
|
||||
} else if (curel.equals("description")) {
|
||||
// This is the old-style description. We'll read it
|
||||
// if present, to support old repos, but in newer
|
||||
|
@ -75,7 +75,7 @@ abstract public class AppListAdapter extends BaseAdapter {
|
||||
summary.setText(app.summary);
|
||||
|
||||
layoutSummary(summary);
|
||||
ImageLoader.getInstance().displayImage(app.repoAddress+"/icons/"+app.icon, icon);
|
||||
ImageLoader.getInstance().displayImage(app.icon, icon);
|
||||
|
||||
int visibleOnCompact = compact ? View.VISIBLE : View.GONE;
|
||||
int notVisibleOnCompact = compact ? View.GONE : View.VISIBLE;
|
||||
|
Loading…
x
Reference in New Issue
Block a user