Merge branch 'rename-id-to-package-name' into 'master'

Rename id to package name

As suggested in issue #37, "id" is not the correct terminology to use in the code base. Instead, it should use "package name". I'm doing this now before I begin work on #511, where it is helpful to recoup the "id" name, as "rowid" in sqlite refers to a row's integer primary key.

This changes the following Java symbols:
 * `Apk.id` -> `Apk.packageName`
 * `App.id` -> `App.packageName`
 * `ApkProvider.DataColumns.ID` -> `ApkProvider.DataColumns.PACKAGE_NAME`
 * `AppProvider.DataColumns.ID` -> `AppProvider.DataColumns.PACKAGE_NAME`
 * A small number of comments referring to `id`.

It does _not_ change (and likely will not benefit from changing):
 * Any database columns, these are all still `id`.
 * Anything pertaining to the index, which still uses `id`.

It does _not_ change (but future MR's will change):
 * Local variables referring to `id`
 * Method names referring to `id`

By not changing any string literals, only changing the name of variables and constants, and ensuring that the original variables/constants are no longer present, then in theory if this compiles is should be good to merge.

See merge request !183
This commit is contained in:
Daniel Martí 2015-12-24 22:38:22 +00:00
commit feb7a2bd09
27 changed files with 119 additions and 119 deletions

View File

@ -171,7 +171,7 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
ApkListAdapter(Context context, App app) {
super(context, 0);
final List<Apk> apks = ApkProvider.Helper.findByApp(context, app.id);
final List<Apk> apks = ApkProvider.Helper.findByApp(context, app.packageName);
for (final Apk apk : apks) {
if (apk.compatible || Preferences.get().showIncompatibleVersions()) {
add(apk);
@ -192,9 +192,9 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
// Installed the same version, but from someplace else.
final String installerPkgName;
try {
installerPkgName = mPm.getInstallerPackageName(app.id);
installerPkgName = mPm.getInstallerPackageName(app.packageName);
} catch (IllegalArgumentException e) {
Log.w(TAG, "Application " + app.id + " is not installed anymore");
Log.w(TAG, "Application " + app.packageName + " is not installed anymore");
return getString(R.string.app_not_installed);
}
if (TextUtils.isEmpty(installerPkgName)) {
@ -431,13 +431,13 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
localBroadcastManager = LocalBroadcastManager.getInstance(this);
// Check if a download is running for this app
if (AsyncDownloaderFromAndroid.isDownloading(this, app.id) >= 0) {
if (AsyncDownloaderFromAndroid.isDownloading(this, app.packageName) >= 0) {
// call install() to re-setup the listeners and downloaders
// the AsyncDownloader will not restart the download since the download is running,
// and thus the version we pass to install() is not important
refreshHeader();
refreshApkList();
final Apk apkToInstall = ApkProvider.Helper.find(this, app.id, app.suggestedVercode);
final Apk apkToInstall = ApkProvider.Helper.find(this, app.packageName, app.suggestedVercode);
install(apkToInstall);
}
@ -449,7 +449,7 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
// register observer to know when install status changes
myAppObserver = new AppObserver(new Handler());
getContentResolver().registerContentObserver(
AppProvider.getContentUri(app.id),
AppProvider.getContentUri(app.packageName),
true,
myAppObserver);
}
@ -510,7 +510,7 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
if (app != null && (app.ignoreAllUpdates != startingIgnoreAll
|| app.ignoreThisUpdate != startingIgnoreThis)) {
Utils.debugLog(TAG, "Updating 'ignore updates', as it has changed since we started the activity...");
setIgnoreUpdates(app.id, app.ignoreAllUpdates, app.ignoreThisUpdate);
setIgnoreUpdates(app.packageName, app.ignoreAllUpdates, app.ignoreThisUpdate);
}
localBroadcastManager.unregisterReceiver(downloaderProgressReceiver);
@ -531,7 +531,7 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
};
private void onAppChanged() {
if (!reset(app.id)) {
if (!reset(app.packageName)) {
AppDetails.this.finish();
return;
}
@ -622,7 +622,7 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
if (app == null)
return true;
if (mPm.getLaunchIntentForPackage(app.id) != null && app.canAndWantToUpdate()) {
if (mPm.getLaunchIntentForPackage(app.packageName) != null && app.canAndWantToUpdate()) {
MenuItemCompat.setShowAsAction(menu.add(
Menu.NONE, LAUNCH, 1, R.string.menu_launch)
.setIcon(R.drawable.ic_play_arrow_white),
@ -749,7 +749,7 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
return true;
case LAUNCH:
launchApk(app.id);
launchApk(app.packageName);
return true;
case SHARE:
@ -759,13 +759,13 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
case INSTALL:
// Note that this handles updating as well as installing.
if (app.suggestedVercode > 0) {
final Apk apkToInstall = ApkProvider.Helper.find(this, app.id, app.suggestedVercode);
final Apk apkToInstall = ApkProvider.Helper.find(this, app.packageName, app.suggestedVercode);
install(apkToInstall);
}
return true;
case UNINSTALL:
removeApk(app.id);
removeApk(app.packageName);
return true;
case IGNOREALL:
@ -880,7 +880,7 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
private void installApk(File file) {
try {
installer.installPackage(file, app.id);
installer.installPackage(file, app.packageName);
} catch (AndroidNotCompatibleException e) {
Log.e(TAG, "Android not compatible with this Installer!", e);
}
@ -903,7 +903,7 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
@Override
public void run() {
if (operation == Installer.InstallerCallback.OPERATION_INSTALL) {
PackageManagerCompat.setInstaller(mPm, app.id);
PackageManagerCompat.setInstaller(mPm, app.packageName);
}
onAppChanged();
@ -962,7 +962,7 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, app.name);
shareIntent.putExtra(Intent.EXTRA_TEXT, app.name + " (" + app.summary + ") - https://f-droid.org/app/" + app.id);
shareIntent.putExtra(Intent.EXTRA_TEXT, app.name + " (" + app.summary + ") - https://f-droid.org/app/" + app.packageName);
startActivity(Intent.createChooser(shareIntent, getString(R.string.menu_share)));
}
@ -1016,7 +1016,7 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
switch (requestCode) {
case REQUEST_ENABLE_BLUETOOTH:
fdroidApp.sendViaBluetooth(this, resultCode, app.id);
fdroidApp.sendViaBluetooth(this, resultCode, app.packageName);
break;
}
}
@ -1210,7 +1210,7 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
// App ID
final TextView appIdView = (TextView) view.findViewById(R.id.appid);
if (prefs.expertMode())
appIdView.setText(app.id);
appIdView.setText(app.packageName);
else
appIdView.setVisibility(View.GONE);
@ -1567,13 +1567,13 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
} else if (app.isInstalled()) {
installed = true;
statusView.setText(getString(R.string.details_installed, app.installedVersionName));
NfcHelper.setAndroidBeam(activity, app.id);
NfcHelper.setAndroidBeam(activity, app.packageName);
if (app.canAndWantToUpdate()) {
updateWanted = true;
btMain.setText(R.string.menu_upgrade);
} else {
updateWanted = false;
if (activity.mPm.getLaunchIntentForPackage(app.id) != null) {
if (activity.mPm.getLaunchIntentForPackage(app.packageName) != null) {
btMain.setText(R.string.menu_launch);
} else {
btMain.setText(R.string.menu_uninstall);
@ -1601,7 +1601,7 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
AppDetails activity = (AppDetails) getActivity();
if (updateWanted) {
if (app.suggestedVercode > 0) {
final Apk apkToInstall = ApkProvider.Helper.find(activity, app.id, app.suggestedVercode);
final Apk apkToInstall = ApkProvider.Helper.find(activity, app.packageName, app.suggestedVercode);
activity.install(apkToInstall);
return;
}
@ -1609,16 +1609,16 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
// If installed
if (installed) {
// If "launchable", launch
if (activity.mPm.getLaunchIntentForPackage(app.id) != null) {
activity.launchApk(app.id);
if (activity.mPm.getLaunchIntentForPackage(app.packageName) != null) {
activity.launchApk(app.packageName);
} else {
activity.removeApk(app.id);
activity.removeApk(app.packageName);
}
// If not installed, install
} else if (app.suggestedVercode > 0) {
btMain.setEnabled(false);
btMain.setText(R.string.system_install_installing);
final Apk apkToInstall = ApkProvider.Helper.find(activity, app.id, app.suggestedVercode);
final Apk apkToInstall = ApkProvider.Helper.find(activity, app.packageName, app.suggestedVercode);
activity.install(apkToInstall);
}
}
@ -1647,7 +1647,7 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
}
protected void remove() {
installListener.removeApk(getApp().id);
installListener.removeApk(getApp().packageName);
}
protected App getApp() {

View File

@ -101,7 +101,7 @@ public class CompatibilityChecker extends Compatibility {
}
if (!features.contains(feat)) {
Collections.addAll(incompatibleReasons, feat.split(","));
Utils.debugLog(TAG, apk.id + " vercode " + apk.vercode
Utils.debugLog(TAG, apk.packageName + " vercode " + apk.vercode
+ " is incompatible based on lack of " + feat);
}
}
@ -110,7 +110,7 @@ public class CompatibilityChecker extends Compatibility {
for (final String code : apk.nativecode) {
incompatibleReasons.add(code);
}
Utils.debugLog(TAG, apk.id + " vercode " + apk.vercode
Utils.debugLog(TAG, apk.packageName + " vercode " + apk.vercode
+ " only supports " + Utils.CommaSeparatedList.str(apk.nativecode)
+ " while your architectures are " + cpuAbisDesc);
}

View File

@ -222,7 +222,7 @@ public class RepoXMLHandler extends DefaultHandler {
receiver.receiveApp(curapp, apksList);
curapp = null;
apksList = new ArrayList<>();
// If the app id is already present in this apps list, then it
// If the app packageName is already present in this apps list, then it
// means the same index file has a duplicate app, which should
// not be allowed.
// However, I'm thinking that it should be undefined behaviour,
@ -249,10 +249,10 @@ public class RepoXMLHandler extends DefaultHandler {
repoDescription = cleanWhiteSpace(attributes.getValue("", "description"));
} else if ("application".equals(localName) && curapp == null) {
curapp = new App();
curapp.id = attributes.getValue("", "id");
curapp.packageName = attributes.getValue("", "id");
} else if ("package".equals(localName) && curapp != null && curapk == null) {
curapk = new Apk();
curapk.id = curapp.id;
curapk.packageName = curapp.packageName;
curapk.repo = repo.getId();
currentApkHashType = null;

View File

@ -9,7 +9,7 @@ import java.util.Date;
public class Apk extends ValueObject implements Comparable<Apk> {
public String id;
public String packageName;
public String version;
public int vercode;
public int size; // Size in bytes - 0 means we don't know!
@ -64,8 +64,8 @@ public class Apk extends ValueObject implements Comparable<Apk> {
case ApkProvider.DataColumns.FEATURES:
features = Utils.CommaSeparatedList.make(cursor.getString(i));
break;
case ApkProvider.DataColumns.APK_ID:
id = cursor.getString(i);
case ApkProvider.DataColumns.PACKAGE_NAME:
packageName = cursor.getString(i);
break;
case ApkProvider.DataColumns.IS_COMPATIBLE:
compatible = cursor.getInt(i) == 1;
@ -118,12 +118,12 @@ public class Apk extends ValueObject implements Comparable<Apk> {
@Override
public String toString() {
return id + " (version " + vercode + ")";
return packageName + " (version " + vercode + ")";
}
public ContentValues toContentValues() {
ContentValues values = new ContentValues();
values.put(ApkProvider.DataColumns.APK_ID, id);
values.put(ApkProvider.DataColumns.PACKAGE_NAME, packageName);
values.put(ApkProvider.DataColumns.VERSION, version);
values.put(ApkProvider.DataColumns.VERSION_CODE, vercode);
values.put(ApkProvider.DataColumns.REPO_ID, repo);

View File

@ -22,7 +22,7 @@ public class ApkProvider extends FDroidProvider {
/**
* SQLite has a maximum of 999 parameters in a query. Each apk we add
* requires two (id and vercode) so we can only query half of that. Then,
* requires two (packageName and vercode) so we can only query half of that. Then,
* we may want to add additional constraints, so we give our self some
* room by saying only 450 apks can be queried at once.
*/
@ -34,7 +34,7 @@ public class ApkProvider extends FDroidProvider {
public static void update(Context context, Apk apk) {
ContentResolver resolver = context.getContentResolver();
Uri uri = getContentUri(apk.id, apk.vercode);
Uri uri = getContentUri(apk.packageName, apk.vercode);
resolver.update(uri, apk.toContentValues(), null, null);
}
@ -62,7 +62,7 @@ public class ApkProvider extends FDroidProvider {
public static void deleteApksByApp(Context context, App app) {
ContentResolver resolver = context.getContentResolver();
final Uri uri = getAppUri(app.id);
final Uri uri = getAppUri(app.packageName);
resolver.delete(uri, null, null);
}
@ -135,7 +135,7 @@ public class ApkProvider extends FDroidProvider {
}
/**
* Returns apks in the database, which have the same id and version as
* Returns apks in the database, which have the same packageName and version as
* one of the apks in the "apks" argument.
*/
public static List<Apk> knownApks(Context context, List<Apk> apks, String[] fields) {
@ -194,7 +194,7 @@ public class ApkProvider extends FDroidProvider {
String _COUNT_DISTINCT_ID = "countDistinct";
String APK_ID = "id";
String PACKAGE_NAME = "id";
String VERSION = "version";
String REPO_ID = "repo";
String HASH = "hash";
@ -216,7 +216,7 @@ public class ApkProvider extends FDroidProvider {
String REPO_ADDRESS = "repoAddress";
String[] ALL = {
_ID, APK_ID, VERSION, REPO_ID, HASH, VERSION_CODE, NAME, SIZE,
_ID, PACKAGE_NAME, VERSION, REPO_ID, HASH, VERSION_CODE, NAME, SIZE,
SIGNATURE, SOURCE_NAME, MIN_SDK_VERSION, MAX_SDK_VERSION,
PERMISSIONS, FEATURES, NATIVE_CODE, HASH_TYPE, ADDED_DATE,
IS_COMPATIBLE, REPO_VERSION, REPO_ADDRESS, INCOMPATIBLE_REASONS,
@ -279,7 +279,7 @@ public class ApkProvider extends FDroidProvider {
}
public static Uri getContentUri(Apk apk) {
return getContentUri(apk.id, apk.vercode);
return getContentUri(apk.packageName, apk.vercode);
}
public static Uri getContentUri(String id, int versionCode) {
@ -329,7 +329,7 @@ public class ApkProvider extends FDroidProvider {
builder.append(',');
}
final Apk a = apks.get(i);
builder.append(a.id).append(':').append(a.vercode);
builder.append(a.packageName).append(':').append(a.vercode);
}
return builder.toString();
}
@ -340,7 +340,7 @@ public class ApkProvider extends FDroidProvider {
if (i != 0) {
builder.append(',');
}
builder.append(apks.get(i).id);
builder.append(apks.get(i).packageName);
}
return builder.toString();
}
@ -395,7 +395,7 @@ public class ApkProvider extends FDroidProvider {
}
private QuerySelection queryApp(String appId) {
final String selection = DataColumns.APK_ID + " = ? ";
final String selection = DataColumns.PACKAGE_NAME + " = ? ";
final String[] args = {appId};
return new QuerySelection(selection, args);
}
@ -418,7 +418,7 @@ public class ApkProvider extends FDroidProvider {
}
private QuerySelection queryRepoApps(long repoId, String appIds) {
return queryRepo(repoId).add(AppProvider.queryApps(appIds, DataColumns.APK_ID));
return queryRepo(repoId).add(AppProvider.queryApps(appIds, DataColumns.PACKAGE_NAME));
}
protected QuerySelection queryApks(String apkKeys) {
@ -512,7 +512,7 @@ public class ApkProvider extends FDroidProvider {
getContext().getContentResolver().notifyChange(uri, null);
}
return getContentUri(
values.getAsString(DataColumns.APK_ID),
values.getAsString(DataColumns.PACKAGE_NAME),
values.getAsInteger(DataColumns.VERSION_CODE));
}

View File

@ -31,7 +31,7 @@ public class App extends ValueObject implements Comparable<App> {
// True if compatible with the device (i.e. if at least one apk is)
public boolean compatible;
public String id = "unknown";
public String packageName = "unknown";
public String name = "Unknown";
public String summary = "Unknown application";
public String icon;
@ -124,8 +124,8 @@ public class App extends ValueObject implements Comparable<App> {
case AppProvider.DataColumns.IS_COMPATIBLE:
compatible = cursor.getInt(i) == 1;
break;
case AppProvider.DataColumns.APP_ID:
id = cursor.getString(i);
case AppProvider.DataColumns.PACKAGE_NAME:
packageName = cursor.getString(i);
break;
case AppProvider.DataColumns.NAME:
name = cursor.getString(i);
@ -252,7 +252,7 @@ public class App extends ValueObject implements Comparable<App> {
this.summary = "(installed by " + installerPackageLabel + ")";
else
this.summary = (String) appDescription.subSequence(0, 40);
this.id = appInfo.packageName;
this.packageName = appInfo.packageName;
this.added = new Date(packageInfo.firstInstallTime);
this.lastUpdated = new Date(packageInfo.lastUpdateTime);
this.description = "<p>";
@ -273,10 +273,10 @@ public class App extends ValueObject implements Comparable<App> {
apk.added = this.added;
apk.minSdkVersion = Utils.getMinSdkVersion(context, packageName);
apk.maxSdkVersion = Utils.getMaxSdkVersion(context, packageName);
apk.id = this.id;
apk.packageName = this.packageName;
apk.installedFile = apkFile;
apk.permissions = Utils.CommaSeparatedList.make(packageInfo.requestedPermissions);
apk.apkName = apk.id + "_" + apk.vercode + ".apk";
apk.apkName = apk.packageName + "_" + apk.vercode + ".apk";
final FeatureInfo[] features = packageInfo.reqFeatures;
if (features != null && features.length > 0) {
@ -352,7 +352,7 @@ public class App extends ValueObject implements Comparable<App> {
public boolean isValid() {
if (TextUtils.isEmpty(this.name)
|| TextUtils.isEmpty(this.id))
|| TextUtils.isEmpty(this.packageName))
return false;
if (this.installedApk == null)
@ -369,7 +369,7 @@ public class App extends ValueObject implements Comparable<App> {
public ContentValues toContentValues() {
final ContentValues values = new ContentValues();
values.put(AppProvider.DataColumns.APP_ID, id);
values.put(AppProvider.DataColumns.PACKAGE_NAME, packageName);
values.put(AppProvider.DataColumns.NAME, name);
values.put(AppProvider.DataColumns.SUMMARY, summary);
values.put(AppProvider.DataColumns.ICON, icon);

View File

@ -173,7 +173,7 @@ public class AppProvider extends FDroidProvider {
String _ID = "rowid as _id"; // Required for CursorLoaders
String _COUNT = "_count";
String IS_COMPATIBLE = "compatible";
String APP_ID = "id";
String PACKAGE_NAME = "id";
String NAME = "name";
String SUMMARY = "summary";
String ICON = "icon";
@ -211,7 +211,7 @@ public class AppProvider extends FDroidProvider {
}
String[] ALL = {
_ID, IS_COMPATIBLE, APP_ID, NAME, SUMMARY, ICON, DESCRIPTION,
_ID, IS_COMPATIBLE, PACKAGE_NAME, NAME, SUMMARY, ICON, DESCRIPTION,
LICENSE, WEB_URL, TRACKER_URL, SOURCE_URL, CHANGELOG_URL, DONATE_URL,
BITCOIN_ADDR, LITECOIN_ADDR, FLATTR_ID,
UPSTREAM_VERSION, UPSTREAM_VERSION_CODE, ADDED, LAST_UPDATED,
@ -523,7 +523,7 @@ public class AppProvider extends FDroidProvider {
if (i != 0) {
builder.append(',');
}
builder.append(apps.get(i).id);
builder.append(apps.get(i).packageName);
}
return getContentUri().buildUpon()
.appendPath(PATH_APPS)
@ -532,7 +532,7 @@ public class AppProvider extends FDroidProvider {
}
public static Uri getContentUri(App app) {
return getContentUri(app.id);
return getContentUri(app.packageName);
}
public static Uri getContentUri(String appId) {
@ -851,7 +851,7 @@ public class AppProvider extends FDroidProvider {
if (!isApplyingBatch()) {
getContext().getContentResolver().notifyChange(uri, null);
}
return getContentUri(values.getAsString(DataColumns.APP_ID));
return getContentUri(values.getAsString(DataColumns.PACKAGE_NAME));
}
@Override

View File

@ -109,7 +109,7 @@ public class InstalledAppProvider extends FDroidProvider {
} catch (PackageManager.NameNotFoundException | Resources.NotFoundException e) {
Utils.debugLog(TAG, "Could not get application label", e);
}
return packageName; // all else fails, return id
return packageName; // all else fails, return packageName
}
public static String getPackageSig(PackageInfo info) {

View File

@ -73,7 +73,7 @@ public class RepoPersister {
public void saveToDb(App app, List<Apk> packages) throws RepoUpdater.UpdateException {
appsToSave.add(app);
apksToSave.put(app.id, packages);
apksToSave.put(app.packageName, packages);
if (appsToSave.size() >= MAX_APP_BUFFER) {
flushBufferToDb();
@ -161,7 +161,7 @@ public class RepoPersister {
*/
private ArrayList<ContentProviderOperation> insertOrUpdateApks(List<Apk> packages) {
String[] projection = new String[]{
ApkProvider.DataColumns.APK_ID,
ApkProvider.DataColumns.PACKAGE_NAME,
ApkProvider.DataColumns.VERSION_CODE,
};
List<Apk> existingApks = ApkProvider.Helper.knownApks(context, packages, projection);
@ -169,7 +169,7 @@ public class RepoPersister {
for (Apk apk : packages) {
boolean exists = false;
for (Apk existing : existingApks) {
if (existing.id.equals(apk.id) && existing.vercode == apk.vercode) {
if (existing.packageName.equals(apk.packageName) && existing.vercode == apk.vercode) {
exists = true;
break;
}
@ -216,8 +216,8 @@ public class RepoPersister {
* array.
*/
private boolean isAppInDatabase(App app) {
String[] fields = {AppProvider.DataColumns.APP_ID};
App found = AppProvider.Helper.findById(context.getContentResolver(), app.id, fields);
String[] fields = {AppProvider.DataColumns.PACKAGE_NAME};
App found = AppProvider.Helper.findById(context.getContentResolver(), app.packageName, fields);
return found != null;
}
@ -247,15 +247,15 @@ public class RepoPersister {
*/
@Nullable
private ContentProviderOperation deleteOrphanedApks(List<App> apps, Map<String, List<Apk>> packages) {
String[] projection = new String[]{ApkProvider.DataColumns.APK_ID, ApkProvider.DataColumns.VERSION_CODE};
String[] projection = new String[]{ApkProvider.DataColumns.PACKAGE_NAME, ApkProvider.DataColumns.VERSION_CODE};
List<Apk> existing = ApkProvider.Helper.find(context, repo, apps, projection);
List<Apk> toDelete = new ArrayList<>();
for (Apk existingApk : existing) {
boolean shouldStay = false;
if (packages.containsKey(existingApk.id)) {
for (Apk newApk : packages.get(existingApk.id)) {
if (packages.containsKey(existingApk.packageName)) {
for (Apk newApk : packages.get(existingApk.packageName)) {
if (newApk.vercode == existingApk.vercode) {
shouldStay = true;
break;

View File

@ -49,7 +49,7 @@ public class TempApkProvider extends ApkProvider {
.buildUpon()
.appendPath(PATH_APK)
.appendPath(Integer.toString(apk.vercode))
.appendPath(apk.id)
.appendPath(apk.packageName)
.build();
}

View File

@ -48,7 +48,7 @@ public class TempAppProvider extends AppProvider {
}
public static Uri getAppUri(App app) {
return Uri.withAppendedPath(getContentUri(), app.id);
return Uri.withAppendedPath(getContentUri(), app.packageName);
}
public static class Helper {

View File

@ -282,8 +282,8 @@ public final class LocalRepoManager {
for (final App app : apps.values()) {
if (app.installedApk != null) {
try {
appInfo = pm.getApplicationInfo(app.id, PackageManager.GET_META_DATA);
copyIconToRepo(appInfo.loadIcon(pm), app.id, app.installedApk.vercode);
appInfo = pm.getApplicationInfo(app.packageName, PackageManager.GET_META_DATA);
copyIconToRepo(appInfo.loadIcon(pm), app.packageName, app.installedApk.vercode);
} catch (PackageManager.NameNotFoundException e) {
Log.e(TAG, "Error getting app icon", e);
}
@ -413,9 +413,9 @@ public final class LocalRepoManager {
private void tagApplication(App app) throws IOException {
serializer.startTag("", "application");
serializer.attribute("", "id", app.id);
serializer.attribute("", "id", app.packageName);
tag("id", app.id);
tag("id", app.packageName);
tag("added", app.added);
tag("lastupdated", app.lastUpdated);
tag("name", app.name);

View File

@ -197,7 +197,7 @@ public class ApkDownloader implements AsyncDownloader.Listener {
Utils.debugLog(TAG, "Downloading apk from " + remoteAddress + " to " + localFile);
try {
dlWrapper = DownloaderFactory.createAsync(context, remoteAddress, localFile, app.name + " " + curApk.version, curApk.id, credentials, this);
dlWrapper = DownloaderFactory.createAsync(context, remoteAddress, localFile, app.name + " " + curApk.version, curApk.packageName, credentials, this);
dlWrapper.download();
return true;
} catch (IOException e) {

View File

@ -35,7 +35,7 @@ public abstract class AppListFragment extends ListFragment implements
public static final String[] APP_PROJECTION = {
AppProvider.DataColumns._ID, // Required for cursor loader to work.
AppProvider.DataColumns.APP_ID,
AppProvider.DataColumns.PACKAGE_NAME,
AppProvider.DataColumns.NAME,
AppProvider.DataColumns.SUMMARY,
AppProvider.DataColumns.IS_COMPATIBLE,
@ -156,7 +156,7 @@ public abstract class AppListFragment extends ListFragment implements
if (cursor != null) {
final App app = new App(cursor);
Intent intent = getAppDetailsIntent();
intent.putExtra(AppDetails.EXTRA_APPID, app.id);
intent.putExtra(AppDetails.EXTRA_APPID, app.packageName);
intent.putExtra(AppDetails.EXTRA_FROM, getFromTitle());
startActivityForResult(intent, REQUEST_APPDETAILS);
}

View File

@ -110,7 +110,7 @@ public class SearchResultsFragment extends ListFragment implements LoaderManager
final App app = new App((Cursor) adapter.getItem(position));
Intent intent = new Intent(getActivity(), AppDetails.class);
intent.putExtra(AppDetails.EXTRA_APPID, app.id);
intent.putExtra(AppDetails.EXTRA_APPID, app.packageName);
intent.putExtra(AppDetails.EXTRA_HINT_SEARCHING, true);
startActivityForResult(intent, REQUEST_APPDETAILS);
super.onListItemClick(l, v, position, id);

View File

@ -125,7 +125,7 @@ public class SwapAppsView extends ListView implements
private void pollForUpdates() {
if (adapter.getCount() > 1 ||
(adapter.getCount() == 1 && !new App((Cursor) adapter.getItem(0)).id.equals("org.fdroid.fdroid"))) {
(adapter.getCount() == 1 && !new App((Cursor) adapter.getItem(0)).packageName.equals("org.fdroid.fdroid"))) {
Utils.debugLog(TAG, "Not polling for new apps from swap repo, because we already have more than one.");
return;
}
@ -333,7 +333,7 @@ public class SwapAppsView extends ListView implements
public void onChange(boolean selfChange) {
Activity activity = getActivity();
if (activity != null) {
app = AppProvider.Helper.findById(getActivity().getContentResolver(), app.id);
app = AppProvider.Helper.findById(getActivity().getContentResolver(), app.packageName);
apkToInstall = null; // Force lazy loading to fetch correct apk next time.
resetView();
}
@ -350,7 +350,7 @@ public class SwapAppsView extends ListView implements
}
public void setApp(@NonNull App app) {
if (this.app == null || !this.app.id.equals(app.id)) {
if (this.app == null || !this.app.packageName.equals(app.packageName)) {
this.app = app;
apkToInstall = null; // Force lazy loading to fetch the correct apk next time.
@ -361,7 +361,7 @@ public class SwapAppsView extends ListView implements
// implemented on API-16, so leaving like this for now.
getActivity().getContentResolver().unregisterContentObserver(appObserver);
getActivity().getContentResolver().registerContentObserver(
AppProvider.getContentUri(this.app.id), true, appObserver);
AppProvider.getContentUri(this.app.packageName), true, appObserver);
}
resetView();
}
@ -372,7 +372,7 @@ public class SwapAppsView extends ListView implements
*/
private Apk getApkToInstall() {
if (apkToInstall == null) {
apkToInstall = ApkProvider.Helper.find(getActivity(), app.id, app.suggestedVercode);
apkToInstall = ApkProvider.Helper.find(getActivity(), app.packageName, app.suggestedVercode);
}
return apkToInstall;
}

View File

@ -781,14 +781,14 @@ public class SwapWorkflowActivity extends AppCompatActivity {
}
public void install(@NonNull final App app) {
final Apk apkToInstall = ApkProvider.Helper.find(this, app.id, app.suggestedVercode);
final Apk apkToInstall = ApkProvider.Helper.find(this, app.packageName, app.suggestedVercode);
final ApkDownloader downloader = new ApkDownloader(this, app, apkToInstall, apkToInstall.repoAddress);
downloader.setProgressListener(new ProgressListener() {
@Override
public void onProgress(Event event) {
switch (event.type) {
case ApkDownloader.EVENT_APK_DOWNLOAD_COMPLETE:
handleDownloadComplete(downloader.localFile(), app.id);
handleDownloadComplete(downloader.localFile(), app.packageName);
break;
case ApkDownloader.EVENT_ERROR:
break;

View File

@ -56,7 +56,7 @@ public class ApkProviderHelperTest extends BaseApkProviderTest {
Collections.addAll(apksToCheck, unknown);
String[] projection = {
ApkProvider.DataColumns.APK_ID,
ApkProvider.DataColumns.PACKAGE_NAME,
ApkProvider.DataColumns.VERSION_CODE,
};
@ -112,7 +112,7 @@ public class ApkProviderHelperTest extends BaseApkProviderTest {
Apk apk = new Apk(cursor);
cursor.close();
assertEquals("com.example", apk.id);
assertEquals("com.example", apk.packageName);
assertEquals(10, apk.vercode);
assertNull(apk.features);
@ -138,7 +138,7 @@ public class ApkProviderHelperTest extends BaseApkProviderTest {
Apk updatedApk = new Apk(updatedCursor);
updatedCursor.close();
assertEquals("com.example", updatedApk.id);
assertEquals("com.example", updatedApk.packageName);
assertEquals(10, updatedApk.vercode);
assertNotNull(updatedApk.features);
@ -176,14 +176,14 @@ public class ApkProviderHelperTest extends BaseApkProviderTest {
// The find() method populates ALL fields if you don't specify any,
// so we expect to find each of the ones we inserted above...
assertEquals("com.example", apk.id);
assertEquals("com.example", apk.packageName);
assertEquals(11, apk.vercode);
assertEquals("v1.1", apk.version);
assertEquals("xxxxyyyy", apk.hash);
assertEquals("a hash type", apk.hashType);
String[] projection = {
ApkProvider.DataColumns.APK_ID,
ApkProvider.DataColumns.PACKAGE_NAME,
ApkProvider.DataColumns.HASH,
};
@ -191,7 +191,7 @@ public class ApkProviderHelperTest extends BaseApkProviderTest {
assertNotNull(apkLessFields);
assertEquals("com.example", apkLessFields.id);
assertEquals("com.example", apkLessFields.packageName);
assertEquals("xxxxyyyy", apkLessFields.hash);
// Didn't ask for these fields, so should be their default values...

View File

@ -127,9 +127,9 @@ public class ApkProviderTest extends BaseApkProviderTest {
assertTotalApkCount(5);
assertEquals("com.example.one", one.id);
assertEquals("com.example.two", two.id);
assertEquals("com.example.five", five.id);
assertEquals("com.example.one", one.packageName);
assertEquals("com.example.two", two.packageName);
assertEquals("com.example.five", five.packageName);
String[] expectedIds = {
"com.example.one",
@ -142,7 +142,7 @@ public class ApkProviderTest extends BaseApkProviderTest {
List<Apk> all = ApkProvider.Helper.findByRepo(getSwappableContext(), new MockRepo(10), ApkProvider.DataColumns.ALL);
List<String> actualIds = new ArrayList<>();
for (Apk apk : all) {
actualIds.add(apk.id);
actualIds.add(apk.packageName);
}
TestUtils.assertContainsOnly(actualIds, expectedIds);
@ -158,7 +158,7 @@ public class ApkProviderTest extends BaseApkProviderTest {
List<Apk> allRemaining = ApkProvider.Helper.findByRepo(getSwappableContext(), new MockRepo(10), ApkProvider.DataColumns.ALL);
List<String> actualRemainingIds = new ArrayList<>();
for (Apk apk : allRemaining) {
actualRemainingIds.add(apk.id);
actualRemainingIds.add(apk.packageName);
}
String[] expectedRemainingIds = {
@ -232,7 +232,7 @@ public class ApkProviderTest extends BaseApkProviderTest {
Apk apk = new MockApk("org.fdroid.fdroid", 13);
// Insert a new record...
Uri newUri = TestUtils.insertApk(this, apk.id, apk.vercode);
Uri newUri = TestUtils.insertApk(this, apk.packageName, apk.vercode);
assertEquals(ApkProvider.getContentUri(apk).toString(), newUri.toString());
cursor = queryAllApks();
assertNotNull(cursor);
@ -251,11 +251,11 @@ public class ApkProviderTest extends BaseApkProviderTest {
// And now we should be able to recover these values from the apk
// value object (because the queryAllApks() helper asks for VERSION_CODE and
// APK_ID.
// PACKAGE_NAME.
cursor.moveToFirst();
Apk toCheck = new Apk(cursor);
cursor.close();
assertEquals("org.fdroid.fdroid", toCheck.id);
assertEquals("org.fdroid.fdroid", toCheck.packageName);
assertEquals(13, toCheck.vercode);
}
@ -328,7 +328,7 @@ public class ApkProviderTest extends BaseApkProviderTest {
// But this should have saved correctly...
assertEquals("Some features", apk.features.toString());
assertEquals("com.example.com", apk.id);
assertEquals("com.example.com", apk.packageName);
assertEquals(1, apk.vercode);
assertEquals(10, apk.repo);
}

View File

@ -37,7 +37,7 @@ public class AppProviderTest extends FDroidProviderTest<AppProvider> {
@Override
protected String[] getMinimalProjection() {
return new String[] {
AppProvider.DataColumns.APP_ID,
AppProvider.DataColumns.PACKAGE_NAME,
AppProvider.DataColumns.NAME,
};
}
@ -93,7 +93,7 @@ public class AppProviderTest extends FDroidProviderTest<AppProvider> {
assertValidUri(AppProvider.getCanUpdateUri());
App app = new App();
app.id = "org.fdroid.fdroid";
app.packageName = "org.fdroid.fdroid";
List<App> apps = new ArrayList<>(1);
apps.add(app);
@ -178,7 +178,7 @@ public class AppProviderTest extends FDroidProviderTest<AppProvider> {
canUpdateCursor.moveToFirst();
List<String> canUpdateIds = new ArrayList<>(canUpdateCursor.getCount());
while (!canUpdateCursor.isAfterLast()) {
canUpdateIds.add(new App(canUpdateCursor).id);
canUpdateIds.add(new App(canUpdateCursor).packageName);
canUpdateCursor.moveToNext();
}
canUpdateCursor.close();
@ -209,7 +209,7 @@ public class AppProviderTest extends FDroidProviderTest<AppProvider> {
assertResultCount(10, AppProvider.getContentUri());
String[] projection = {AppProvider.DataColumns.APP_ID};
String[] projection = {AppProvider.DataColumns.PACKAGE_NAME};
List<App> ignoredApps = AppProvider.Helper.findIgnored(getMockContext(), projection);
String[] expectedIgnored = {
@ -230,7 +230,7 @@ public class AppProviderTest extends FDroidProviderTest<AppProvider> {
private void assertContainsOnlyIds(List<App> actualApps, String[] expectedIds) {
List<String> actualIds = new ArrayList<>(actualApps.size());
for (App app : actualApps) {
actualIds.add(app.id);
actualIds.add(app.packageName);
}
TestUtils.assertContainsOnly(actualIds, expectedIds);
}
@ -278,11 +278,11 @@ public class AppProviderTest extends FDroidProviderTest<AppProvider> {
// And now we should be able to recover these values from the app
// value object (because the queryAllApps() helper asks for NAME and
// APP_ID.
// PACKAGE_NAME.
cursor.moveToFirst();
App app = new App(cursor);
cursor.close();
assertEquals("org.fdroid.fdroid", app.id);
assertEquals("org.fdroid.fdroid", app.packageName);
assertEquals("F-Droid", app.name);
}

View File

@ -26,7 +26,7 @@ abstract class BaseApkProviderTest extends FDroidProviderTest<ApkProvider> {
@Override
protected String[] getMinimalProjection() {
return new String[] {
ApkProvider.DataColumns.APK_ID,
ApkProvider.DataColumns.PACKAGE_NAME,
ApkProvider.DataColumns.VERSION_CODE,
ApkProvider.DataColumns.NAME,
ApkProvider.DataColumns.REPO_ID,
@ -40,7 +40,7 @@ abstract class BaseApkProviderTest extends FDroidProviderTest<ApkProvider> {
protected void assertContains(List<Apk> apks, Apk apk) {
boolean found = false;
for (Apk a : apks) {
if (a.vercode == apk.vercode && a.id.equals(apk.id)) {
if (a.vercode == apk.vercode && a.packageName.equals(apk.packageName)) {
found = true;
break;
}
@ -56,7 +56,7 @@ abstract class BaseApkProviderTest extends FDroidProviderTest<ApkProvider> {
protected void assertBelongsToApp(List<Apk> apks, String appId) {
for (Apk apk : apks) {
assertEquals(appId, apk.id);
assertEquals(appId, apk.packageName);
}
}

View File

@ -71,7 +71,7 @@ public class InstalledAppCacheTest extends FDroidProviderTest<InstalledAppProvid
private String[] getInstalledAppIdsFromProvider() {
Uri uri = InstalledAppProvider.getContentUri();
String[] projection = { InstalledAppProvider.DataColumns.APP_ID };
String[] projection = { InstalledAppProvider.DataColumns.PACKAGE_NAME };
Cursor result = getMockContext().getContentResolver().query(uri, projection, null, null, null);
if (result == null) {
return new String[0];
@ -81,7 +81,7 @@ public class InstalledAppCacheTest extends FDroidProviderTest<InstalledAppProvid
result.moveToFirst();
int i = 0;
while (!result.isAfterLast()) {
installedAppIds[i] = result.getString(result.getColumnIndex(InstalledAppProvider.DataColumns.APP_ID));
installedAppIds[i] = result.getString(result.getColumnIndex(InstalledAppProvider.DataColumns.PACKAGE_NAME));
result.moveToNext();
i ++;
}

View File

@ -279,7 +279,7 @@ public class MultiRepoUpdaterTest extends InstrumentationTestCase {
for (int versionCode : versionCodes) {
boolean found = false;
for (Apk apk : apksToCheck) {
if (apk.vercode == versionCode && apk.id.equals(appId)) {
if (apk.vercode == versionCode && apk.packageName.equals(appId)) {
found = true;
break;
}

View File

@ -596,7 +596,7 @@ public class RepoXMLHandlerTest extends AndroidTestCase {
for (String id : expctedAppIds) {
boolean thisAppMissing = true;
for (App app : actualApps) {
if (TextUtils.equals(app.id, id)) {
if (TextUtils.equals(app.packageName, id)) {
thisAppMissing = false;
break;
}

View File

@ -101,7 +101,7 @@ public class TestUtils {
public static void insertApp(ContentResolver resolver, String id, String name, ContentValues additionalValues) {
ContentValues values = new ContentValues();
values.put(AppProvider.DataColumns.APP_ID, id);
values.put(AppProvider.DataColumns.PACKAGE_NAME, id);
values.put(AppProvider.DataColumns.NAME, name);
// Required fields (NOT NULL in the database).
@ -127,7 +127,7 @@ public class TestUtils {
ContentValues values = new ContentValues();
values.put(ApkProvider.DataColumns.APK_ID, id);
values.put(ApkProvider.DataColumns.PACKAGE_NAME, id);
values.put(ApkProvider.DataColumns.VERSION_CODE, versionCode);
// Required fields (NOT NULL in the database).

View File

@ -5,7 +5,7 @@ import org.fdroid.fdroid.data.Apk;
public class MockApk extends Apk {
public MockApk(String id, int versionCode) {
this.id = id;
this.packageName = id;
this.vercode = versionCode;
}

View File

@ -9,7 +9,7 @@ public class MockApp extends App {
}
public MockApp(String id, String name) {
this.id = id;
this.packageName = id;
this.name = name;
}