Renamed AppTable to AppMetadataTable

See #511 for details. This is in prepration for having an even more normalized
`fdroid_package` table. That table will be the authoritative reference of what
"packages" are known about in the client. The "app" table (now thought of as "app metadata") will
be specific to each repository which provides different metadata about that app.
This commit is contained in:
Peter Serwylo 2016-07-24 20:28:00 +10:00
parent 2837a235b4
commit 626f55b43b
13 changed files with 106 additions and 106 deletions

View File

@ -416,7 +416,7 @@ public class UpdateService extends IntentService {
private void performUpdateNotification() {
Cursor cursor = getContentResolver().query(
AppProvider.getCanUpdateUri(),
Schema.AppTable.Cols.ALL,
Schema.AppMetadataTable.Cols.ALL,
null, null, null);
if (cursor != null) {
if (cursor.getCount() > 0) {
@ -462,7 +462,7 @@ public class UpdateService extends IntentService {
private void autoDownloadUpdates() {
Cursor cursor = getContentResolver().query(
AppProvider.getCanUpdateUri(),
Schema.AppTable.Cols.ALL,
Schema.AppMetadataTable.Cols.ALL,
null, null, null);
if (cursor != null) {
cursor.moveToFirst();

View File

@ -10,7 +10,7 @@ import android.util.Log;
import org.fdroid.fdroid.data.Schema.ApkTable;
import org.fdroid.fdroid.data.Schema.ApkTable.Cols;
import org.fdroid.fdroid.data.Schema.AppTable;
import org.fdroid.fdroid.data.Schema.AppMetadataTable;
import org.fdroid.fdroid.data.Schema.RepoTable;
import java.util.ArrayList;
@ -213,7 +213,7 @@ public class ApkProvider extends FDroidProvider {
static {
REPO_FIELDS.put(Cols.Repo.VERSION, RepoTable.Cols.VERSION);
REPO_FIELDS.put(Cols.Repo.ADDRESS, RepoTable.Cols.ADDRESS);
APP_FIELDS.put(Cols.App.PACKAGE_NAME, AppTable.Cols.PACKAGE_NAME);
APP_FIELDS.put(Cols.App.PACKAGE_NAME, AppMetadataTable.Cols.PACKAGE_NAME);
MATCHER.addURI(getAuthority(), PATH_REPO + "/#", CODE_REPO);
MATCHER.addURI(getAuthority(), PATH_APK + "/#/*", CODE_SINGLE);
@ -320,7 +320,7 @@ public class ApkProvider extends FDroidProvider {
}
protected String getAppTableName() {
return AppTable.NAME;
return AppMetadataTable.NAME;
}
@Override
@ -343,7 +343,7 @@ public class ApkProvider extends FDroidProvider {
final String app = getAppTableName();
return apk + " AS apk " +
" LEFT JOIN " + app + " AS app ON (app." + AppTable.Cols.ROW_ID + " = apk." + Cols.APP_ID + ")";
" LEFT JOIN " + app + " AS app ON (app." + AppMetadataTable.Cols.ROW_ID + " = apk." + Cols.APP_ID + ")";
}
@Override
@ -427,7 +427,7 @@ public class ApkProvider extends FDroidProvider {
}
private QuerySelection queryRepoApps(long repoId, String packageNames) {
return queryRepo(repoId).add(AppProvider.queryApps(packageNames, "app." + AppTable.Cols.PACKAGE_NAME));
return queryRepo(repoId).add(AppProvider.queryApps(packageNames, "app." + AppMetadataTable.Cols.PACKAGE_NAME));
}
protected QuerySelection queryApks(String apkKeys) {
@ -467,7 +467,7 @@ public class ApkProvider extends FDroidProvider {
}
private String getAppIdFromPackageNameQuery() {
return "SELECT " + AppTable.Cols.ROW_ID + " FROM " + getAppTableName() + " WHERE " + AppTable.Cols.PACKAGE_NAME + " = ?";
return "SELECT " + AppMetadataTable.Cols.ROW_ID + " FROM " + getAppTableName() + " WHERE " + AppMetadataTable.Cols.PACKAGE_NAME + " = ?";
}
@Override

View File

@ -33,7 +33,7 @@ import java.util.jar.JarFile;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.fdroid.fdroid.data.Schema.AppTable.Cols;
import org.fdroid.fdroid.data.Schema.AppMetadataTable.Cols;
public class App extends ValueObject implements Comparable<App>, Parcelable {

View File

@ -15,8 +15,8 @@ import org.fdroid.fdroid.R;
import org.fdroid.fdroid.Utils;
import org.fdroid.fdroid.data.Schema.ApkTable;
import org.fdroid.fdroid.data.Schema.AppPrefsTable;
import org.fdroid.fdroid.data.Schema.AppTable;
import org.fdroid.fdroid.data.Schema.AppTable.Cols;
import org.fdroid.fdroid.data.Schema.AppMetadataTable;
import org.fdroid.fdroid.data.Schema.AppMetadataTable.Cols;
import org.fdroid.fdroid.data.Schema.InstalledAppTable;
import org.fdroid.fdroid.data.Schema.RepoTable;
@ -165,7 +165,7 @@ public class AppProvider extends FDroidProvider {
static final class UpgradeHelper {
public static void updateIconUrls(Context context, SQLiteDatabase db) {
AppProvider.updateIconUrls(context, db, AppTable.NAME, ApkTable.NAME);
AppProvider.updateIconUrls(context, db, AppMetadataTable.NAME, ApkTable.NAME);
}
}
@ -524,7 +524,7 @@ public class AppProvider extends FDroidProvider {
@Override
protected String getTableName() {
return AppTable.NAME;
return AppMetadataTable.NAME;
}
protected String getApkTableName() {

View File

@ -12,7 +12,7 @@ import org.fdroid.fdroid.R;
import org.fdroid.fdroid.Utils;
import org.fdroid.fdroid.data.Schema.ApkTable;
import org.fdroid.fdroid.data.Schema.AppPrefsTable;
import org.fdroid.fdroid.data.Schema.AppTable;
import org.fdroid.fdroid.data.Schema.AppMetadataTable;
import org.fdroid.fdroid.data.Schema.InstalledAppTable;
import org.fdroid.fdroid.data.Schema.RepoTable;
@ -69,36 +69,36 @@ class DBHelper extends SQLiteOpenHelper {
+ "PRIMARY KEY (" + ApkTable.Cols.APP_ID + ", " + ApkTable.Cols.VERSION_CODE + ", " + ApkTable.Cols.REPO_ID + ")"
+ ");";
private static final String CREATE_TABLE_APP = "CREATE TABLE " + AppTable.NAME
private static final String CREATE_TABLE_APP = "CREATE TABLE " + AppMetadataTable.NAME
+ " ( "
+ AppTable.Cols.PACKAGE_NAME + " text not null, "
+ AppTable.Cols.NAME + " text not null, "
+ AppTable.Cols.SUMMARY + " text not null, "
+ AppTable.Cols.ICON + " text, "
+ AppTable.Cols.DESCRIPTION + " text not null, "
+ AppTable.Cols.LICENSE + " text not null, "
+ AppTable.Cols.AUTHOR + " text, "
+ AppTable.Cols.EMAIL + " text, "
+ AppTable.Cols.WEB_URL + " text, "
+ AppTable.Cols.TRACKER_URL + " text, "
+ AppTable.Cols.SOURCE_URL + " text, "
+ AppTable.Cols.CHANGELOG_URL + " text, "
+ AppTable.Cols.SUGGESTED_VERSION_CODE + " text,"
+ AppTable.Cols.UPSTREAM_VERSION_NAME + " text,"
+ AppTable.Cols.UPSTREAM_VERSION_CODE + " integer,"
+ AppTable.Cols.ANTI_FEATURES + " string,"
+ AppTable.Cols.DONATE_URL + " string,"
+ AppTable.Cols.BITCOIN_ADDR + " string,"
+ AppTable.Cols.LITECOIN_ADDR + " string,"
+ AppTable.Cols.FLATTR_ID + " string,"
+ AppTable.Cols.REQUIREMENTS + " string,"
+ AppTable.Cols.CATEGORIES + " string,"
+ AppTable.Cols.ADDED + " string,"
+ AppTable.Cols.LAST_UPDATED + " string,"
+ AppTable.Cols.IS_COMPATIBLE + " int not null,"
+ AppTable.Cols.ICON_URL + " text, "
+ AppTable.Cols.ICON_URL_LARGE + " text, "
+ "primary key(" + AppTable.Cols.PACKAGE_NAME + "));";
+ AppMetadataTable.Cols.PACKAGE_NAME + " text not null, "
+ AppMetadataTable.Cols.NAME + " text not null, "
+ AppMetadataTable.Cols.SUMMARY + " text not null, "
+ AppMetadataTable.Cols.ICON + " text, "
+ AppMetadataTable.Cols.DESCRIPTION + " text not null, "
+ AppMetadataTable.Cols.LICENSE + " text not null, "
+ AppMetadataTable.Cols.AUTHOR + " text, "
+ AppMetadataTable.Cols.EMAIL + " text, "
+ AppMetadataTable.Cols.WEB_URL + " text, "
+ AppMetadataTable.Cols.TRACKER_URL + " text, "
+ AppMetadataTable.Cols.SOURCE_URL + " text, "
+ AppMetadataTable.Cols.CHANGELOG_URL + " text, "
+ AppMetadataTable.Cols.SUGGESTED_VERSION_CODE + " text,"
+ AppMetadataTable.Cols.UPSTREAM_VERSION_NAME + " text,"
+ AppMetadataTable.Cols.UPSTREAM_VERSION_CODE + " integer,"
+ AppMetadataTable.Cols.ANTI_FEATURES + " string,"
+ AppMetadataTable.Cols.DONATE_URL + " string,"
+ AppMetadataTable.Cols.BITCOIN_ADDR + " string,"
+ AppMetadataTable.Cols.LITECOIN_ADDR + " string,"
+ AppMetadataTable.Cols.FLATTR_ID + " string,"
+ AppMetadataTable.Cols.REQUIREMENTS + " string,"
+ AppMetadataTable.Cols.CATEGORIES + " string,"
+ AppMetadataTable.Cols.ADDED + " string,"
+ AppMetadataTable.Cols.LAST_UPDATED + " string,"
+ AppMetadataTable.Cols.IS_COMPATIBLE + " int not null,"
+ AppMetadataTable.Cols.ICON_URL + " text, "
+ AppMetadataTable.Cols.ICON_URL_LARGE + " text, "
+ "primary key(" + AppMetadataTable.Cols.PACKAGE_NAME + "));";
private static final String CREATE_TABLE_APP_PREFS = "CREATE TABLE " + AppPrefsTable.NAME
+ " ( "
@ -344,10 +344,10 @@ class DBHelper extends SQLiteOpenHelper {
+ AppPrefsTable.Cols.IGNORE_THIS_UPDATE + ", "
+ AppPrefsTable.Cols.IGNORE_ALL_UPDATES
+ ") SELECT "
+ AppTable.Cols.PACKAGE_NAME + ", "
+ AppMetadataTable.Cols.PACKAGE_NAME + ", "
+ "ignoreThisUpdate, "
+ "ignoreAllUpdates "
+ "FROM " + AppTable.NAME + " "
+ "FROM " + AppMetadataTable.NAME + " "
+ "WHERE ignoreThisUpdate > 0 OR ignoreAllUpdates > 0"
);
@ -451,10 +451,10 @@ class DBHelper extends SQLiteOpenHelper {
// Hard coded the string literal ".id" as ApkTable.Cols.PACKAGE_NAME was removed in
// the subsequent migration (DB_VERSION 59)
final String update = "UPDATE " + ApkTable.NAME + " SET " + ApkTable.Cols.APP_ID + " = ( " +
"SELECT app." + AppTable.Cols.ROW_ID + " " +
"FROM " + AppTable.NAME + " AS app " +
"WHERE " + ApkTable.NAME + ".id = app." + AppTable.Cols.PACKAGE_NAME + ")";
Log.i(TAG, "Updating foreign key from " + ApkTable.NAME + " to " + AppTable.NAME + " to use numeric foreign key.");
"SELECT app." + AppMetadataTable.Cols.ROW_ID + " " +
"FROM " + AppMetadataTable.NAME + " AS app " +
"WHERE " + ApkTable.NAME + ".id = app." + AppMetadataTable.Cols.PACKAGE_NAME + ")";
Log.i(TAG, "Updating foreign key from " + ApkTable.NAME + " to " + AppMetadataTable.NAME + " to use numeric foreign key.");
Utils.debugLog(TAG, update);
db.execSQL(update);
ensureIndexes(db);
@ -624,19 +624,19 @@ class DBHelper extends SQLiteOpenHelper {
}
private void addChangelogToApp(SQLiteDatabase db, int oldVersion) {
if (oldVersion >= 48 || columnExists(db, AppTable.NAME, AppTable.Cols.CHANGELOG_URL)) {
if (oldVersion >= 48 || columnExists(db, AppMetadataTable.NAME, AppMetadataTable.Cols.CHANGELOG_URL)) {
return;
}
Utils.debugLog(TAG, "Adding " + AppTable.Cols.CHANGELOG_URL + " column to " + AppTable.NAME);
db.execSQL("alter table " + AppTable.NAME + " add column " + AppTable.Cols.CHANGELOG_URL + " text");
Utils.debugLog(TAG, "Adding " + AppMetadataTable.Cols.CHANGELOG_URL + " column to " + AppMetadataTable.NAME);
db.execSQL("alter table " + AppMetadataTable.NAME + " add column " + AppMetadataTable.Cols.CHANGELOG_URL + " text");
}
private void addIconUrlLargeToApp(SQLiteDatabase db, int oldVersion) {
if (oldVersion >= 49 || columnExists(db, AppTable.NAME, AppTable.Cols.ICON_URL_LARGE)) {
if (oldVersion >= 49 || columnExists(db, AppMetadataTable.NAME, AppMetadataTable.Cols.ICON_URL_LARGE)) {
return;
}
Utils.debugLog(TAG, "Adding " + AppTable.Cols.ICON_URL_LARGE + " columns to " + AppTable.NAME);
db.execSQL("alter table " + AppTable.NAME + " add column " + AppTable.Cols.ICON_URL_LARGE + " text");
Utils.debugLog(TAG, "Adding " + AppMetadataTable.Cols.ICON_URL_LARGE + " columns to " + AppMetadataTable.NAME);
db.execSQL("alter table " + AppMetadataTable.NAME + " add column " + AppMetadataTable.Cols.ICON_URL_LARGE + " text");
}
private void updateIconUrlLarge(SQLiteDatabase db, int oldVersion) {
@ -652,13 +652,13 @@ class DBHelper extends SQLiteOpenHelper {
if (oldVersion >= 53) {
return;
}
if (!columnExists(db, AppTable.NAME, AppTable.Cols.AUTHOR)) {
Utils.debugLog(TAG, "Adding " + AppTable.Cols.AUTHOR + " column to " + AppTable.NAME);
db.execSQL("alter table " + AppTable.NAME + " add column " + AppTable.Cols.AUTHOR + " text");
if (!columnExists(db, AppMetadataTable.NAME, AppMetadataTable.Cols.AUTHOR)) {
Utils.debugLog(TAG, "Adding " + AppMetadataTable.Cols.AUTHOR + " column to " + AppMetadataTable.NAME);
db.execSQL("alter table " + AppMetadataTable.NAME + " add column " + AppMetadataTable.Cols.AUTHOR + " text");
}
if (!columnExists(db, AppTable.NAME, AppTable.Cols.EMAIL)) {
Utils.debugLog(TAG, "Adding " + AppTable.Cols.EMAIL + " column to " + AppTable.NAME);
db.execSQL("alter table " + AppTable.NAME + " add column " + AppTable.Cols.EMAIL + " text");
if (!columnExists(db, AppMetadataTable.NAME, AppMetadataTable.Cols.EMAIL)) {
Utils.debugLog(TAG, "Adding " + AppMetadataTable.Cols.EMAIL + " column to " + AppMetadataTable.NAME);
db.execSQL("alter table " + AppMetadataTable.NAME + " add column " + AppMetadataTable.Cols.EMAIL + " text");
}
}
@ -704,7 +704,7 @@ class DBHelper extends SQLiteOpenHelper {
.putBoolean("triedEmptyUpdate", false)
.apply();
db.execSQL("DROP TABLE " + AppTable.NAME);
db.execSQL("DROP TABLE " + AppMetadataTable.NAME);
db.execSQL("DROP TABLE " + ApkTable.NAME);
db.execSQL(CREATE_TABLE_APP);
db.execSQL(CREATE_TABLE_APK);
@ -723,7 +723,7 @@ class DBHelper extends SQLiteOpenHelper {
}
context.getSharedPreferences("FDroid", Context.MODE_PRIVATE).edit()
.putBoolean("triedEmptyUpdate", false).apply();
db.execSQL("drop table " + AppTable.NAME);
db.execSQL("drop table " + AppMetadataTable.NAME);
db.execSQL("drop table " + ApkTable.NAME);
clearRepoEtags(db);
db.execSQL(CREATE_TABLE_APP);
@ -732,10 +732,10 @@ class DBHelper extends SQLiteOpenHelper {
}
private static void ensureIndexes(SQLiteDatabase db) {
Utils.debugLog(TAG, "Ensuring indexes exist for " + AppTable.NAME);
db.execSQL("CREATE INDEX IF NOT EXISTS app_id on " + AppTable.NAME + " (" + AppTable.Cols.PACKAGE_NAME + ");");
db.execSQL("CREATE INDEX IF NOT EXISTS name on " + AppTable.NAME + " (" + AppTable.Cols.NAME + ");"); // Used for sorting most lists
db.execSQL("CREATE INDEX IF NOT EXISTS added on " + AppTable.NAME + " (" + AppTable.Cols.ADDED + ");"); // Used for sorting "newly added"
Utils.debugLog(TAG, "Ensuring indexes exist for " + AppMetadataTable.NAME);
db.execSQL("CREATE INDEX IF NOT EXISTS app_id on " + AppMetadataTable.NAME + " (" + AppMetadataTable.Cols.PACKAGE_NAME + ");");
db.execSQL("CREATE INDEX IF NOT EXISTS name on " + AppMetadataTable.NAME + " (" + AppMetadataTable.Cols.NAME + ");"); // Used for sorting most lists
db.execSQL("CREATE INDEX IF NOT EXISTS added on " + AppMetadataTable.NAME + " (" + AppMetadataTable.Cols.ADDED + ");"); // Used for sorting "newly added"
Utils.debugLog(TAG, "Ensuring indexes exist for " + ApkTable.NAME);
db.execSQL("CREATE INDEX IF NOT EXISTS apk_vercode on " + ApkTable.NAME + " (" + ApkTable.Cols.VERSION_CODE + ");");

View File

@ -143,7 +143,7 @@ public class RepoPersister {
for (App app : apps) {
packageNames.add(app.packageName);
}
String[] projection = {Schema.AppTable.Cols.ROW_ID, Schema.AppTable.Cols.PACKAGE_NAME};
String[] projection = {Schema.AppMetadataTable.Cols.ROW_ID, Schema.AppMetadataTable.Cols.PACKAGE_NAME};
List<App> fromDb = TempAppProvider.Helper.findByPackageNames(context, packageNames, projection);
Map<String, Long> ids = new HashMap<>(fromDb.size());
@ -224,7 +224,7 @@ public class RepoPersister {
* array.
*/
private boolean isAppInDatabase(App app) {
String[] fields = {Schema.AppTable.Cols.PACKAGE_NAME};
String[] fields = {Schema.AppMetadataTable.Cols.PACKAGE_NAME};
App found = AppProvider.Helper.findByPackageName(context.getContentResolver(), app.packageName, fields);
return found != null;
}

View File

@ -26,7 +26,7 @@ public interface Schema {
}
}
interface AppTable {
interface AppMetadataTable {
String NAME = "fdroid_app";
@ -102,7 +102,7 @@ public interface Schema {
String _COUNT_DISTINCT = "countDistinct";
/**
* Foreign key to the {@link AppTable}.
* Foreign key to the {@link AppMetadataTable}.
*/
String APP_ID = "appId";
String ROW_ID = "rowid";

View File

@ -12,7 +12,7 @@ import android.text.TextUtils;
import java.util.List;
import org.fdroid.fdroid.data.Schema.ApkTable;
import org.fdroid.fdroid.data.Schema.AppTable;
import org.fdroid.fdroid.data.Schema.AppMetadataTable;
/**
* This class does all of its operations in a temporary sqlite table.
@ -26,7 +26,7 @@ public class TempAppProvider extends AppProvider {
private static final String PROVIDER_NAME = "TempAppProvider";
static final String TABLE_TEMP_APP = "temp_" + AppTable.NAME;
static final String TABLE_TEMP_APP = "temp_" + AppMetadataTable.NAME;
private static final String PATH_INIT = "init";
private static final String PATH_COMMIT = "commit";
@ -165,10 +165,10 @@ public class TempAppProvider extends AppProvider {
final SQLiteDatabase db = db();
ensureTempTableDetached(db);
db.execSQL("ATTACH DATABASE ':memory:' AS " + DB);
db.execSQL("CREATE TABLE " + DB + "." + getTableName() + " AS SELECT * FROM main." + AppTable.NAME);
db.execSQL("CREATE INDEX IF NOT EXISTS " + DB + ".app_id ON " + getTableName() + " (" + AppTable.Cols.PACKAGE_NAME + ");");
db.execSQL("CREATE INDEX IF NOT EXISTS " + DB + ".app_upstreamVercode ON " + getTableName() + " (" + AppTable.Cols.UPSTREAM_VERSION_CODE + ");");
db.execSQL("CREATE INDEX IF NOT EXISTS " + DB + ".app_compatible ON " + getTableName() + " (" + AppTable.Cols.IS_COMPATIBLE + ");");
db.execSQL("CREATE TABLE " + DB + "." + getTableName() + " AS SELECT * FROM main." + AppMetadataTable.NAME);
db.execSQL("CREATE INDEX IF NOT EXISTS " + DB + ".app_id ON " + getTableName() + " (" + AppMetadataTable.Cols.PACKAGE_NAME + ");");
db.execSQL("CREATE INDEX IF NOT EXISTS " + DB + ".app_upstreamVercode ON " + getTableName() + " (" + AppMetadataTable.Cols.UPSTREAM_VERSION_CODE + ");");
db.execSQL("CREATE INDEX IF NOT EXISTS " + DB + ".app_compatible ON " + getTableName() + " (" + AppMetadataTable.Cols.IS_COMPATIBLE + ");");
}
private void commitTable() {
@ -179,8 +179,8 @@ public class TempAppProvider extends AppProvider {
final String tempApp = DB + "." + TempAppProvider.TABLE_TEMP_APP;
final String tempApk = DB + "." + TempApkProvider.TABLE_TEMP_APK;
db.execSQL("DELETE FROM " + AppTable.NAME + " WHERE 1");
db.execSQL("INSERT INTO " + AppTable.NAME + " SELECT * FROM " + tempApp);
db.execSQL("DELETE FROM " + AppMetadataTable.NAME + " WHERE 1");
db.execSQL("INSERT INTO " + AppMetadataTable.NAME + " SELECT * FROM " + tempApp);
db.execSQL("DELETE FROM " + ApkTable.NAME + " WHERE 1");
db.execSQL("INSERT INTO " + ApkTable.NAME + " SELECT * FROM " + tempApk);

View File

@ -25,7 +25,7 @@ import org.fdroid.fdroid.R;
import org.fdroid.fdroid.UpdateService;
import org.fdroid.fdroid.Utils;
import org.fdroid.fdroid.data.App;
import org.fdroid.fdroid.data.Schema.AppTable;
import org.fdroid.fdroid.data.Schema.AppMetadataTable;
import org.fdroid.fdroid.views.AppListAdapter;
public abstract class AppListFragment extends ListFragment implements
@ -38,22 +38,22 @@ public abstract class AppListFragment extends ListFragment implements
private static final int REQUEST_APPDETAILS = 0;
private static final String[] APP_PROJECTION = {
AppTable.Cols._ID, // Required for cursor loader to work.
AppTable.Cols.PACKAGE_NAME,
AppTable.Cols.NAME,
AppTable.Cols.SUMMARY,
AppTable.Cols.IS_COMPATIBLE,
AppTable.Cols.LICENSE,
AppTable.Cols.ICON,
AppTable.Cols.ICON_URL,
AppTable.Cols.InstalledApp.VERSION_CODE,
AppTable.Cols.InstalledApp.VERSION_NAME,
AppTable.Cols.SuggestedApk.VERSION_NAME,
AppTable.Cols.SUGGESTED_VERSION_CODE,
AppTable.Cols.REQUIREMENTS, // Needed for filtering apps that require root.
AppMetadataTable.Cols._ID, // Required for cursor loader to work.
AppMetadataTable.Cols.PACKAGE_NAME,
AppMetadataTable.Cols.NAME,
AppMetadataTable.Cols.SUMMARY,
AppMetadataTable.Cols.IS_COMPATIBLE,
AppMetadataTable.Cols.LICENSE,
AppMetadataTable.Cols.ICON,
AppMetadataTable.Cols.ICON_URL,
AppMetadataTable.Cols.InstalledApp.VERSION_CODE,
AppMetadataTable.Cols.InstalledApp.VERSION_NAME,
AppMetadataTable.Cols.SuggestedApk.VERSION_NAME,
AppMetadataTable.Cols.SUGGESTED_VERSION_CODE,
AppMetadataTable.Cols.REQUIREMENTS, // Needed for filtering apps that require root.
};
private static final String APP_SORT = AppTable.Cols.NAME;
private static final String APP_SORT = AppMetadataTable.Cols.NAME;
private AppListAdapter appAdapter;

View File

@ -104,7 +104,7 @@ public class SwapAppsView extends ListView implements
*/
adapter = new AppListAdapter(getContext(), getContext().getContentResolver().query(
AppProvider.getRepoUri(repo), Schema.AppTable.Cols.ALL, null, null, null));
AppProvider.getRepoUri(repo), Schema.AppMetadataTable.Cols.ALL, null, null, null));
setAdapter(adapter);
@ -194,7 +194,7 @@ public class SwapAppsView extends ListView implements
? AppProvider.getRepoUri(repo)
: AppProvider.getSearchUri(repo, mCurrentFilterString);
return new CursorLoader(getActivity(), uri, Schema.AppTable.Cols.ALL, null, null, Schema.AppTable.Cols.NAME);
return new CursorLoader(getActivity(), uri, Schema.AppMetadataTable.Cols.ALL, null, null, Schema.AppMetadataTable.Cols.NAME);
}
@Override

View File

@ -12,7 +12,7 @@ import org.fdroid.fdroid.data.App;
import org.fdroid.fdroid.data.AppProvider;
import org.fdroid.fdroid.data.InstalledAppProvider;
import org.fdroid.fdroid.data.Schema.ApkTable;
import org.fdroid.fdroid.data.Schema.AppTable;
import org.fdroid.fdroid.data.Schema.AppMetadataTable;
import org.fdroid.fdroid.data.Schema.InstalledAppTable;
import org.robolectric.shadows.ShadowContentResolver;
@ -183,14 +183,14 @@ public class Assert {
public static App insertApp(Context context, String packageName, String name, ContentValues additionalValues) {
ContentValues values = new ContentValues();
values.put(AppTable.Cols.PACKAGE_NAME, packageName);
values.put(AppTable.Cols.NAME, name);
values.put(AppMetadataTable.Cols.PACKAGE_NAME, packageName);
values.put(AppMetadataTable.Cols.NAME, name);
// Required fields (NOT NULL in the database).
values.put(AppTable.Cols.SUMMARY, "test summary");
values.put(AppTable.Cols.DESCRIPTION, "test description");
values.put(AppTable.Cols.LICENSE, "GPL?");
values.put(AppTable.Cols.IS_COMPATIBLE, 1);
values.put(AppMetadataTable.Cols.SUMMARY, "test summary");
values.put(AppMetadataTable.Cols.DESCRIPTION, "test description");
values.put(AppMetadataTable.Cols.LICENSE, "GPL?");
values.put(AppMetadataTable.Cols.IS_COMPATIBLE, 1);
values.putAll(additionalValues);

View File

@ -8,7 +8,7 @@ import android.net.Uri;
import org.fdroid.fdroid.BuildConfig;
import org.fdroid.fdroid.R;
import org.fdroid.fdroid.data.Schema.AppTable.Cols;
import org.fdroid.fdroid.data.Schema.AppMetadataTable.Cols;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;

View File

@ -82,7 +82,7 @@ public class ProviderUriTests {
@Test
public void validAppProviderUris() {
ShadowContentResolver.registerProvider(AppProvider.getAuthority(), new AppProvider());
String[] projection = new String[] {Schema.AppTable.Cols._ID};
String[] projection = new String[] {Schema.AppMetadataTable.Cols._ID};
assertValidUri(resolver, AppProvider.getContentUri(), "content://org.fdroid.fdroid.data.AppProvider", projection);
assertValidUri(resolver, AppProvider.getSearchUri("'searching!'"), "content://org.fdroid.fdroid.data.AppProvider/search/'searching!'", projection);
assertValidUri(resolver, AppProvider.getSearchUri("/"), "content://org.fdroid.fdroid.data.AppProvider/search/%2F", projection);
@ -102,7 +102,7 @@ public class ProviderUriTests {
@Test
public void validTempAppProviderUris() {
ShadowContentResolver.registerProvider(TempAppProvider.getAuthority(), new TempAppProvider());
String[] projection = new String[]{Schema.AppTable.Cols._ID};
String[] projection = new String[]{Schema.AppMetadataTable.Cols._ID};
// Required so that the `assertValidUri` calls below will indeed have a real temp_fdroid_app
// table to query.