Add some final keywords

Especially in constants within classes, which allows for inlining.
This commit is contained in:
Daniel Martí 2015-04-01 16:11:56 +02:00
parent bdbb6ce03a
commit ea559d0675
20 changed files with 98 additions and 96 deletions

View File

@ -1260,7 +1260,7 @@ public class AppDetails extends ActionBarActivity implements ProgressListener, A
TextView antiFeaturesView = (TextView) view.findViewById(R.id.antifeatures);
if (getApp().antiFeatures != null) {
StringBuilder sb = new StringBuilder();
for (String af : getApp().antiFeatures) {
for (final String af : getApp().antiFeatures) {
final String afdesc = descAntiFeature(af);
if (afdesc != null) {
sb.append("\t• ").append(afdesc).append("\n");

View File

@ -26,13 +26,16 @@ public class AppFilter {
// preferences, and false otherwise.
public boolean filter(App app) {
boolean dontFilterRequiringRoot = Preferences.get().filterAppsRequiringRoot();
final boolean dontFilterRequiringRoot = Preferences.get().filterAppsRequiringRoot();
if (app.requirements == null || dontFilterRequiringRoot) return false;
if (app.requirements == null || dontFilterRequiringRoot) {
return false;
}
for (String r : app.requirements) {
if (r.equals("root"))
for (final String r : app.requirements) {
if (r.equals("root")) {
return true;
}
}
return false;

View File

@ -49,9 +49,11 @@ public class CompatibilityChecker extends Compatibility {
StringBuilder builder = new StringBuilder();
boolean first = true;
for (String abi : cpuAbis) {
if (first) first = false;
else builder.append(", ");
for (final String abi : cpuAbis) {
if (first)
first = false;
else
builder.append(", ");
builder.append(abi);
}
cpuAbisDesc = builder.toString();
@ -94,7 +96,7 @@ public class CompatibilityChecker extends Compatibility {
}
}
if (!compatibleApi(apk.nativecode)) {
for (String code : apk.nativecode) {
for (final String code : apk.nativecode) {
incompatibleReasons.add(code);
}
Log.d(TAG, apk.id + " vercode " + apk.vercode

View File

@ -619,7 +619,7 @@ public class UpdateService extends IntentService implements ProgressListener {
List<String> knownAppIds = getKnownAppIds(appsToUpdate);
for (final App a : appsToUpdate) {
boolean known = false;
for (String knownId : knownAppIds) {
for (final String knownId : knownAppIds) {
if (knownId.equals(a.id)) {
known = true;
break;
@ -724,7 +724,7 @@ public class UpdateService extends IntentService implements ProgressListener {
private ContentProviderOperation updateExistingApp(App app) {
Uri uri = AppProvider.getContentUri(app);
ContentValues values = app.toContentValues();
for (String toIgnore : APP_FIELDS_TO_IGNORE) {
for (final String toIgnore : APP_FIELDS_TO_IGNORE) {
if (values.containsKey(toIgnore)) {
values.remove(toIgnore);
}

View File

@ -406,7 +406,7 @@ public final class Utils {
}
public boolean contains(String v) {
for (String s : this) {
for (final String s : this) {
if (s.equals(v))
return true;
}

View File

@ -62,7 +62,6 @@ public class Apk extends ValueObject implements Comparable<Apk> {
checkCursorPosition(cursor);
for (int i = 0; i < cursor.getColumnCount(); i++) {
String column = cursor.getColumnName(i);
switch (cursor.getColumnName(i)) {
case ApkProvider.DataColumns.HASH:
hash = cursor.getString(i);

View File

@ -142,30 +142,30 @@ public class ApkProvider extends FDroidProvider {
public interface DataColumns extends BaseColumns {
public static String _COUNT_DISTINCT_ID = "countDistinct";
public static final String _COUNT_DISTINCT_ID = "countDistinct";
public static String APK_ID = "id";
public static String VERSION = "version";
public static String REPO_ID = "repo";
public static String HASH = "hash";
public static String VERSION_CODE = "vercode";
public static String NAME = "apkName";
public static String SIZE = "size";
public static String SIGNATURE = "sig";
public static String SOURCE_NAME = "srcname";
public static String MIN_SDK_VERSION = "minSdkVersion";
public static String MAX_SDK_VERSION = "maxSdkVersion";
public static String PERMISSIONS = "permissions";
public static String FEATURES = "features";
public static String NATIVE_CODE = "nativecode";
public static String HASH_TYPE = "hashType";
public static String ADDED_DATE = "added";
public static String IS_COMPATIBLE = "compatible";
public static String INCOMPATIBLE_REASONS = "incompatibleReasons";
public static String REPO_VERSION = "repoVersion";
public static String REPO_ADDRESS = "repoAddress";
public static final String APK_ID = "id";
public static final String VERSION = "version";
public static final String REPO_ID = "repo";
public static final String HASH = "hash";
public static final String VERSION_CODE = "vercode";
public static final String NAME = "apkName";
public static final String SIZE = "size";
public static final String SIGNATURE = "sig";
public static final String SOURCE_NAME = "srcname";
public static final String MIN_SDK_VERSION = "minSdkVersion";
public static final String MAX_SDK_VERSION = "maxSdkVersion";
public static final String PERMISSIONS = "permissions";
public static final String FEATURES = "features";
public static final String NATIVE_CODE = "nativecode";
public static final String HASH_TYPE = "hashType";
public static final String ADDED_DATE = "added";
public static final String IS_COMPATIBLE = "compatible";
public static final String INCOMPATIBLE_REASONS = "incompatibleReasons";
public static final String REPO_VERSION = "repoVersion";
public static final String REPO_ADDRESS = "repoAddress";
public static String[] ALL = {
public static final String[] ALL = {
_ID, APK_ID, 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,
@ -376,7 +376,7 @@ public class ApkProvider extends FDroidProvider {
}
Query queryBuilder = new Query();
for (String field : projection) {
for (final String field : projection) {
queryBuilder.addField(field);
}
queryBuilder.addSelection(query.getSelection());

View File

@ -210,14 +210,12 @@ public class App extends ValueObject implements Comparable<App> {
@TargetApi(9)
public App(Context context, PackageManager pm, String packageName)
throws CertificateEncodingException, IOException, NameNotFoundException {
ApplicationInfo appInfo;
PackageInfo packageInfo;
appInfo = pm.getApplicationInfo(packageName, PackageManager.GET_META_DATA);
packageInfo = pm.getPackageInfo(packageName, PackageManager.GET_SIGNATURES
| PackageManager.GET_PERMISSIONS);
final ApplicationInfo appInfo = pm.getApplicationInfo(packageName,
PackageManager.GET_META_DATA);
final PackageInfo packageInfo = pm.getPackageInfo(packageName,
PackageManager.GET_SIGNATURES | PackageManager.GET_PERMISSIONS);
String installerPackageName = pm.getInstallerPackageName(packageName);
final String installerPackageName = pm.getInstallerPackageName(packageName);
CharSequence installerPackageLabel = null;
if (!TextUtils.isEmpty(installerPackageName)) {
try {
@ -231,7 +229,7 @@ public class App extends ValueObject implements Comparable<App> {
if (TextUtils.isEmpty(installerPackageLabel))
installerPackageLabel = installerPackageName;
CharSequence appDescription = appInfo.loadDescription(pm);
final CharSequence appDescription = appInfo.loadDescription(pm);
if (TextUtils.isEmpty(appDescription))
this.summary = "(installed by " + installerPackageLabel + ")";
else
@ -270,7 +268,7 @@ public class App extends ValueObject implements Comparable<App> {
Arrays.asList(packageInfo.requestedPermissions));
apk.apkName = apk.id + "_" + apk.vercode + ".apk";
FeatureInfo[] features = packageInfo.reqFeatures;
final FeatureInfo[] features = packageInfo.reqFeatures;
if (features != null && features.length > 0) {
List<String> featureNames = new ArrayList<>(features.length);

View File

@ -21,7 +21,7 @@ public class AppProvider extends FDroidProvider {
private Helper() {}
public static int count(Context context, Uri uri) {
String[] projection = { AppProvider.DataColumns._COUNT };
final String[] projection = { AppProvider.DataColumns._COUNT };
Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null);
int count = 0;
if (cursor != null && cursor.getCount() == 1) {
@ -37,13 +37,13 @@ public class AppProvider extends FDroidProvider {
}
public static List<App> all(ContentResolver resolver, String[] projection) {
Uri uri = AppProvider.getContentUri();
final Uri uri = AppProvider.getContentUri();
Cursor cursor = resolver.query(uri, projection, null, null, null);
return cursorToList(cursor);
}
public static List<App> findIgnored(Context context, String[] projection) {
Uri uri = AppProvider.getIgnoredUri();
final Uri uri = AppProvider.getIgnoredUri();
Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null);
return cursorToList(cursor);
}
@ -77,18 +77,18 @@ public class AppProvider extends FDroidProvider {
}
public static List<String> categories(Context context) {
ContentResolver resolver = context.getContentResolver();
Uri uri = getContentUri();
String[] projection = { DataColumns.CATEGORIES };
final ContentResolver resolver = context.getContentResolver();
final Uri uri = getContentUri();
final String[] projection = { DataColumns.CATEGORIES };
Cursor cursor = resolver.query(uri, projection, null, null, null);
Set<String> categorySet = new HashSet<>();
if (cursor != null) {
if (cursor.getCount() > 0) {
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
String categoriesString = cursor.getString(0);
final String categoriesString = cursor.getString(0);
if (categoriesString != null) {
for (String s : Utils.CommaSeparatedList.make(categoriesString)) {
for (final String s : Utils.CommaSeparatedList.make(categoriesString)) {
categorySet.add(s);
}
}
@ -116,7 +116,7 @@ public class AppProvider extends FDroidProvider {
public static App findById(ContentResolver resolver, String appId,
String[] projection) {
Uri uri = getContentUri(appId);
final Uri uri = getContentUri(appId);
Cursor cursor = resolver.query(uri, projection, null, null, null);
App app = null;
if (cursor != null) {
@ -135,7 +135,7 @@ public class AppProvider extends FDroidProvider {
* I find a better way in the future.
*/
public static void calcDetailsFromIndex(Context context) {
Uri fromUpstream = calcAppDetailsFromIndexUri();
final Uri fromUpstream = calcAppDetailsFromIndexUri();
context.getContentResolver().update(fromUpstream, null, null, null);
}
@ -181,7 +181,7 @@ public class AppProvider extends FDroidProvider {
public static final String VERSION_NAME = "installedVersionName";
}
public static String[] ALL = {
public static final String[] ALL = {
IS_COMPATIBLE, APP_ID, NAME, SUMMARY, ICON, DESCRIPTION,
LICENSE, WEB_URL, TRACKER_URL, SOURCE_URL, DONATE_URL,
BITCOIN_ADDR, LITECOIN_ADDR, DOGECOIN_ADDR, FLATTR_ID,
@ -546,7 +546,7 @@ public class AppProvider extends FDroidProvider {
Set<String> keywordSet = new HashSet<>(Arrays.asList(query.split("\\s")));
String[] keywords = new String[keywordSet.size()];
int iKeyword = 0;
for (String keyword : keywordSet) {
for (final String keyword : keywordSet) {
keywords[iKeyword] = "%" + keyword + "%";
iKeyword++;
}

View File

@ -127,9 +127,9 @@ public abstract class FDroidProvider extends ContentProvider {
protected void validateFields(String[] validFields, ContentValues values)
throws IllegalArgumentException {
for (String key : getKeySet(values)) {
for (final String key : getKeySet(values)) {
boolean isValid = false;
for (String validKey : validFields) {
for (final String validKey : validFields) {
if (validKey.equals(key)) {
isValid = true;
break;

View File

@ -148,7 +148,7 @@ public class InstalledAppCacheUpdater {
List<ContentProviderOperation> ops = new ArrayList<>(appIds.size());
if (appIds.size() > 0) {
Log.d(TAG, "Preparing to remove " + appIds.size() + " apps from the installed app cache.");
for (String appId : appIds) {
for (final String appId : appIds) {
Uri uri = InstalledAppProvider.getAppUri(appId);
ops.add(ContentProviderOperation.newDelete(uri).build());
}

View File

@ -30,8 +30,8 @@ public class InstalledAppProvider extends FDroidProvider {
Map<String, Integer> cachedInfo = new HashMap<>();
Uri uri = InstalledAppProvider.getContentUri();
String[] projection = InstalledAppProvider.DataColumns.ALL;
final Uri uri = InstalledAppProvider.getContentUri();
final String[] projection = InstalledAppProvider.DataColumns.ALL;
Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
@ -58,7 +58,7 @@ public class InstalledAppProvider extends FDroidProvider {
public static final String VERSION_NAME = "versionName";
public static final String APPLICATION_LABEL = "applicationLabel";
public static String[] ALL = {
public static final String[] ALL = {
_ID, APP_ID, VERSION_CODE, VERSION_NAME, APPLICATION_LABEL,
};

View File

@ -19,7 +19,7 @@ abstract class QueryBuilder {
}
public void addFields(String[] fields) {
for (String field : fields) {
for (final String field : fields) {
addField(field);
}
}

View File

@ -153,8 +153,8 @@ public class RepoProvider extends FDroidProvider {
}
}
Uri uri = getContentUri(repo.getId());
String[] args = { Long.toString(repo.getId()) };
final Uri uri = getContentUri(repo.getId());
final String[] args = { Long.toString(repo.getId()) };
resolver.update(uri, values, DataColumns._ID + " = ?", args);
repo.setValues(values);
}
@ -207,20 +207,20 @@ public class RepoProvider extends FDroidProvider {
public interface DataColumns extends BaseColumns {
public static String ADDRESS = "address";
public static String NAME = "name";
public static String DESCRIPTION = "description";
public static String IN_USE = "inuse";
public static String PRIORITY = "priority";
public static String PUBLIC_KEY = "pubkey";
public static String FINGERPRINT = "fingerprint";
public static String MAX_AGE = "maxage";
public static String LAST_ETAG = "lastetag";
public static String LAST_UPDATED = "lastUpdated";
public static String VERSION = "version";
public static String IS_SWAP = "isSwap";
public static final String ADDRESS = "address";
public static final String NAME = "name";
public static final String DESCRIPTION = "description";
public static final String IN_USE = "inuse";
public static final String PRIORITY = "priority";
public static final String PUBLIC_KEY = "pubkey";
public static final String FINGERPRINT = "fingerprint";
public static final String MAX_AGE = "maxage";
public static final String LAST_ETAG = "lastetag";
public static final String LAST_UPDATED = "lastUpdated";
public static final String VERSION = "version";
public static final String IS_SWAP = "isSwap";
public static String[] ALL = {
public static final String[] ALL = {
_ID, ADDRESS, NAME, DESCRIPTION, IN_USE, PRIORITY, PUBLIC_KEY,
FINGERPRINT, MAX_AGE, LAST_UPDATED, LAST_ETAG, VERSION, IS_SWAP
};
@ -327,7 +327,7 @@ public class RepoProvider extends FDroidProvider {
}
if (!values.containsKey(DataColumns.NAME)) {
String address = values.getAsString(DataColumns.ADDRESS);
final String address = values.getAsString(DataColumns.ADDRESS);
values.put(DataColumns.NAME, Repo.addressToName(address));
}

View File

@ -68,7 +68,7 @@ public class LocalRepoManager {
private final AssetManager assetManager;
private final String fdroidPackageName;
private static String[] WEB_ROOT_ASSET_FILES = {
private static final String[] WEB_ROOT_ASSET_FILES = {
"swap-icon.png",
"swap-tick-done.png",
"swap-tick-not-done.png"
@ -161,7 +161,7 @@ public class LocalRepoManager {
in.close();
out.close();
for (String file : WEB_ROOT_ASSET_FILES) {
for (final String file : WEB_ROOT_ASSET_FILES) {
Utils.copy(assetManager.open(file), new FileOutputStream(new File(webRoot, file)));
}
@ -205,7 +205,7 @@ public class LocalRepoManager {
private void symlinkEntireWebRootElsewhere(String symlinkPrefix, File directory) {
symlinkFileElsewhere("index.html", symlinkPrefix, directory);
for(String fileName : WEB_ROOT_ASSET_FILES) {
for (final String fileName : WEB_ROOT_ASSET_FILES) {
symlinkFileElsewhere(fileName, symlinkPrefix, directory);
}
}
@ -237,8 +237,8 @@ public class LocalRepoManager {
}
public void copyApksToRepo(List<String> appsToCopy) {
for (String packageName : appsToCopy) {
App app = apps.get(packageName);
for (final String packageName : appsToCopy) {
final App app = apps.get(packageName);
if (app.installedApk != null) {
SanitizedFile outFile = new SanitizedFile(repoDir, app.installedApk.apkName);

View File

@ -108,7 +108,7 @@ abstract public class AppListAdapter extends CursorAdapter {
holder.license.setText(app.license);
// Disable it all if it isn't compatible...
View[] views = {
final View[] views = {
view,
holder.status,
holder.summary,
@ -131,7 +131,7 @@ abstract public class AppListAdapter extends CursorAdapter {
return app.getSuggestedVersion();
}
String installedVersionString = app.installedVersionName;
final String installedVersionString = app.installedVersionName;
int installedVersionCode = app.installedVersionCode;
if (app.canAndWantToUpdate() && showStatusUpdate()) {

View File

@ -468,16 +468,16 @@ public class ManageReposActivity extends ActionBarActivity {
@Override
protected String doInBackground(String... params) {
String originalAddress = params[0];
String[] pathsToCheck = {"", "fdroid/repo", "repo"};
for (String path : pathsToCheck) {
final String originalAddress = params[0];
final String[] pathsToCheck = {"", "fdroid/repo", "repo"};
for (final String path : pathsToCheck) {
Log.d(TAG, "Checking for repo at " + originalAddress + " with suffix \"" + path + "\".");
Uri.Builder builder = Uri.parse(originalAddress).buildUpon().appendEncodedPath(path);
String addressWithoutIndex = builder.build().toString();
final String addressWithoutIndex = builder.build().toString();
publishProgress(addressWithoutIndex);
Uri uri = builder.appendPath("index.jar").build();
final Uri uri = builder.appendPath("index.jar").build();
try {
if (checkForRepository(uri)) {

View File

@ -113,7 +113,7 @@ public class AvailableAppsFragment extends AppListFragment implements
// attempt to translate category names with fallback to default name
List<String> translatedCategories = new ArrayList<>(categories.size());
Resources res = getResources();
for (String category : categories) {
for (final String category : categories) {
int id = res.getIdentifier(category.replace(" & ", "_"), "string", getActivity().getPackageName());
translatedCategories.add(id == 0 ? category : getString(id));
}

View File

@ -19,7 +19,7 @@ public class PreferenceFragment
extends android.support.v4.preference.PreferenceFragment
implements SharedPreferences.OnSharedPreferenceChangeListener {
private static String[] summariesToUpdate = {
private static final String[] summariesToUpdate = {
Preferences.PREF_UPD_INTERVAL,
Preferences.PREF_UPD_WIFI_ONLY,
Preferences.PREF_UPD_NOTIFY,
@ -284,7 +284,7 @@ public class PreferenceFragment
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
for (String key : summariesToUpdate) {
for (final String key : summariesToUpdate) {
updateSummary(key, false);
}

View File

@ -23,7 +23,7 @@ public class SwapAppListActivity extends ActionBarActivity {
private static final String TAG = "fdroid.SwapAppListActivity";
public static String EXTRA_REPO_ID = "repoId";
public static final String EXTRA_REPO_ID = "repoId";
private Repo repo;