Use string switches from Java 1.7

Advantages:
 * Greatly simplifies code
 * No variable name duplication
 * Potentially more efficient bytecode
This commit is contained in:
Daniel Martí 2015-04-01 13:09:02 +02:00
parent 3eddb1402c
commit b0e4f59f43
16 changed files with 607 additions and 447 deletions

View File

@ -1089,9 +1089,11 @@ public class AppDetails extends ActionBarActivity implements ProgressListener, A
} }
boolean finished = false; boolean finished = false;
if (event.type.equals(Downloader.EVENT_PROGRESS)) { switch (event.type) {
case Downloader.EVENT_PROGRESS:
updateProgressDialog(event.progress, event.total); updateProgressDialog(event.progress, event.total);
} else if (event.type.equals(ApkDownloader.EVENT_ERROR)) { break;
case ApkDownloader.EVENT_ERROR:
final String text; final String text;
if (event.getData().getInt(ApkDownloader.EVENT_DATA_ERROR_TYPE) == ApkDownloader.ERROR_HASH_MISMATCH) if (event.getData().getInt(ApkDownloader.EVENT_DATA_ERROR_TYPE) == ApkDownloader.ERROR_HASH_MISMATCH)
text = getString(R.string.corrupt_download); text = getString(R.string.corrupt_download);
@ -1100,9 +1102,11 @@ public class AppDetails extends ActionBarActivity implements ProgressListener, A
// this must be on the main UI thread // this must be on the main UI thread
Toast.makeText(this, text, Toast.LENGTH_LONG).show(); Toast.makeText(this, text, Toast.LENGTH_LONG).show();
finished = true; finished = true;
} else if (event.type.equals(ApkDownloader.EVENT_APK_DOWNLOAD_COMPLETE)) { break;
case ApkDownloader.EVENT_APK_DOWNLOAD_COMPLETE:
downloadCompleteInstallApk(); downloadCompleteInstallApk();
finished = true; finished = true;
break;
} }
if (finished) { if (finished) {
@ -1276,18 +1280,20 @@ public class AppDetails extends ActionBarActivity implements ProgressListener, A
} }
private String descAntiFeature(String af) { private String descAntiFeature(String af) {
if (af.equals("Ads")) switch (af) {
case "Ads":
return getString(R.string.antiadslist); return getString(R.string.antiadslist);
if (af.equals("Tracking")) case "Tracking":
return getString(R.string.antitracklist); return getString(R.string.antitracklist);
if (af.equals("NonFreeNet")) case "NonFreeNet":
return getString(R.string.antinonfreenetlist); return getString(R.string.antinonfreenetlist);
if (af.equals("NonFreeAdd")) case "NonFreeAdd":
return getString(R.string.antinonfreeadlist); return getString(R.string.antinonfreeadlist);
if (af.equals("NonFreeDep")) case "NonFreeDep":
return getString(R.string.antinonfreedeplist); return getString(R.string.antinonfreedeplist);
if (af.equals("UpstreamNonFree")) case "UpstreamNonFree":
return getString(R.string.antiupstreamnonfreelist); return getString(R.string.antiupstreamnonfreelist);
}
return null; return null;
} }

View File

@ -226,30 +226,37 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi
Log.d(TAG, "Invalidating preference '" + key + "'."); Log.d(TAG, "Invalidating preference '" + key + "'.");
uninitialize(key); uninitialize(key);
if (key.equals(PREF_COMPACT_LAYOUT)) { switch (key) {
case PREF_COMPACT_LAYOUT:
for (ChangeListener listener : compactLayoutListeners) { for (ChangeListener listener : compactLayoutListeners) {
listener.onPreferenceChange(); listener.onPreferenceChange();
} }
} else if (key.equals(PREF_ROOTED)) { break;
case PREF_ROOTED:
for (ChangeListener listener : filterAppsRequiringRootListeners) { for (ChangeListener listener : filterAppsRequiringRootListeners) {
listener.onPreferenceChange(); listener.onPreferenceChange();
} }
} else if (key.equals(PREF_UPD_HISTORY)) { break;
case PREF_UPD_HISTORY:
for (ChangeListener listener : updateHistoryListeners) { for (ChangeListener listener : updateHistoryListeners) {
listener.onPreferenceChange(); listener.onPreferenceChange();
} }
} else if (key.equals(PREF_LOCAL_REPO_BONJOUR)) { break;
case PREF_LOCAL_REPO_BONJOUR:
for (ChangeListener listener : localRepoBonjourListeners) { for (ChangeListener listener : localRepoBonjourListeners) {
listener.onPreferenceChange(); listener.onPreferenceChange();
} }
} else if (key.equals(PREF_LOCAL_REPO_NAME)) { break;
case PREF_LOCAL_REPO_NAME:
for (ChangeListener listener : localRepoNameListeners) { for (ChangeListener listener : localRepoNameListeners) {
listener.onPreferenceChange(); listener.onPreferenceChange();
} }
} else if (key.equals(PREF_LOCAL_REPO_HTTPS)) { break;
case PREF_LOCAL_REPO_HTTPS:
for (ChangeListener listener : localRepoHttpsListeners) { for (ChangeListener listener : localRepoHttpsListeners) {
listener.onPreferenceChange(); listener.onPreferenceChange();
} }
break;
} }
} }

View File

@ -124,21 +124,25 @@ public class RepoXMLHandler extends DefaultHandler {
apksList.add(curapk); apksList.add(curapk);
curapk = null; curapk = null;
} else if (curapk != null && str != null) { } else if (curapk != null && str != null) {
if (curel.equals("version")) { switch (curel) {
case "version":
curapk.version = str; curapk.version = str;
} else if (curel.equals("versioncode")) { break;
case "versioncode":
try { try {
curapk.vercode = Integer.parseInt(str); curapk.vercode = Integer.parseInt(str);
} catch (NumberFormatException ex) { } catch (NumberFormatException ex) {
curapk.vercode = -1; curapk.vercode = -1;
} }
} else if (curel.equals("size")) { break;
case "size":
try { try {
curapk.size = Integer.parseInt(str); curapk.size = Integer.parseInt(str);
} catch (NumberFormatException ex) { } catch (NumberFormatException ex) {
curapk.size = 0; curapk.size = 0;
} }
} else if (curel.equals("hash")) { break;
case "hash":
if (hashType == null || hashType.equals("md5")) { if (hashType == null || hashType.equals("md5")) {
if (curapk.hash == null) { if (curapk.hash == null) {
curapk.hash = str; curapk.hash = str;
@ -148,99 +152,131 @@ public class RepoXMLHandler extends DefaultHandler {
curapk.hash = str; curapk.hash = str;
curapk.hashType = "SHA-256"; curapk.hashType = "SHA-256";
} }
} else if (curel.equals("sig")) { break;
case "sig":
curapk.sig = str; curapk.sig = str;
} else if (curel.equals("srcname")) { break;
case "srcname":
curapk.srcname = str; curapk.srcname = str;
} else if (curel.equals("apkname")) { break;
case "apkname":
curapk.apkName = str; curapk.apkName = str;
} else if (curel.equals("sdkver")) { break;
case "sdkver":
try { try {
curapk.minSdkVersion = Integer.parseInt(str); curapk.minSdkVersion = Integer.parseInt(str);
} catch (NumberFormatException ex) { } catch (NumberFormatException ex) {
curapk.minSdkVersion = 0; curapk.minSdkVersion = 0;
} }
} else if (curel.equals("maxsdkver")) { break;
case "maxsdkver":
try { try {
curapk.maxSdkVersion = Integer.parseInt(str); curapk.maxSdkVersion = Integer.parseInt(str);
} catch (NumberFormatException ex) { } catch (NumberFormatException ex) {
curapk.maxSdkVersion = 0; curapk.maxSdkVersion = 0;
} }
} else if (curel.equals("added")) { break;
case "added":
try { try {
curapk.added = str.length() == 0 ? null : Utils.DATE_FORMAT curapk.added = str.length() == 0 ? null : Utils.DATE_FORMAT
.parse(str); .parse(str);
} catch (ParseException e) { } catch (ParseException e) {
curapk.added = null; curapk.added = null;
} }
} else if (curel.equals("permissions")) { break;
case "permissions":
curapk.permissions = Utils.CommaSeparatedList.make(str); curapk.permissions = Utils.CommaSeparatedList.make(str);
} else if (curel.equals("features")) { break;
case "features":
curapk.features = Utils.CommaSeparatedList.make(str); curapk.features = Utils.CommaSeparatedList.make(str);
} else if (curel.equals("nativecode")) { break;
case "nativecode":
curapk.nativecode = Utils.CommaSeparatedList.make(str); curapk.nativecode = Utils.CommaSeparatedList.make(str);
break;
} }
} else if (curapp != null && str != null) { } else if (curapp != null && str != null) {
if (curel.equals("name")) { switch (curel) {
case "name":
curapp.name = str; curapp.name = str;
} else if (curel.equals("icon")) { break;
case "icon":
curapp.icon = str; curapp.icon = str;
} else if (curel.equals("description")) { break;
case "description":
// This is the old-style description. We'll read it // This is the old-style description. We'll read it
// if present, to support old repos, but in newer // if present, to support old repos, but in newer
// repos it will get overwritten straight away! // repos it will get overwritten straight away!
curapp.description = "<p>" + str + "</p>"; curapp.description = "<p>" + str + "</p>";
} else if (curel.equals("desc")) { break;
case "desc":
// New-style description. // New-style description.
curapp.description = str; curapp.description = str;
} else if (curel.equals("summary")) { break;
case "summary":
curapp.summary = str; curapp.summary = str;
} else if (curel.equals("license")) { break;
case "license":
curapp.license = str; curapp.license = str;
} else if (curel.equals("source")) { break;
case "source":
curapp.sourceURL = str; curapp.sourceURL = str;
} else if (curel.equals("donate")) { break;
case "donate":
curapp.donateURL = str; curapp.donateURL = str;
} else if (curel.equals("bitcoin")) { break;
case "bitcoin":
curapp.bitcoinAddr = str; curapp.bitcoinAddr = str;
} else if (curel.equals("litecoin")) { break;
case "litecoin":
curapp.litecoinAddr = str; curapp.litecoinAddr = str;
} else if (curel.equals("dogecoin")) { break;
case "dogecoin":
curapp.dogecoinAddr = str; curapp.dogecoinAddr = str;
} else if (curel.equals("flattr")) { break;
case "flattr":
curapp.flattrID = str; curapp.flattrID = str;
} else if (curel.equals("web")) { break;
case "web":
curapp.webURL = str; curapp.webURL = str;
} else if (curel.equals("tracker")) { break;
case "tracker":
curapp.trackerURL = str; curapp.trackerURL = str;
} else if (curel.equals("added")) { break;
case "added":
try { try {
curapp.added = str.length() == 0 ? null : Utils.DATE_FORMAT curapp.added = str.length() == 0 ? null : Utils.DATE_FORMAT
.parse(str); .parse(str);
} catch (ParseException e) { } catch (ParseException e) {
curapp.added = null; curapp.added = null;
} }
} else if (curel.equals("lastupdated")) { break;
case "lastupdated":
try { try {
curapp.lastUpdated = str.length() == 0 ? null curapp.lastUpdated = str.length() == 0 ? null
: Utils.DATE_FORMAT.parse(str); : Utils.DATE_FORMAT.parse(str);
} catch (ParseException e) { } catch (ParseException e) {
curapp.lastUpdated = null; curapp.lastUpdated = null;
} }
} else if (curel.equals("marketversion")) { break;
case "marketversion":
curapp.upstreamVersion = str; curapp.upstreamVersion = str;
} else if (curel.equals("marketvercode")) { break;
case "marketvercode":
try { try {
curapp.upstreamVercode = Integer.parseInt(str); curapp.upstreamVercode = Integer.parseInt(str);
} catch (NumberFormatException ex) { } catch (NumberFormatException ex) {
curapp.upstreamVercode = -1; curapp.upstreamVercode = -1;
} }
} else if (curel.equals("categories")) { break;
case "categories":
curapp.categories = Utils.CommaSeparatedList.make(str); curapp.categories = Utils.CommaSeparatedList.make(str);
} else if (curel.equals("antifeatures")) { break;
case "antifeatures":
curapp.antiFeatures = Utils.CommaSeparatedList.make(str); curapp.antiFeatures = Utils.CommaSeparatedList.make(str);
} else if (curel.equals("requirements")) { break;
case "requirements":
curapp.requirements = Utils.CommaSeparatedList.make(str); curapp.requirements = Utils.CommaSeparatedList.make(str);
break;
} }
} else if (curel.equals("description")) { } else if (curel.equals("description")) {
description = cleanWhiteSpace(str); description = cleanWhiteSpace(str);

View File

@ -805,13 +805,16 @@ public class UpdateService extends IntentService implements ProgressListener {
// TODO: Switch to passing through Bundles of data with the event, rather than a repo address. They are // TODO: Switch to passing through Bundles of data with the event, rather than a repo address. They are
// now much more general purpose then just repo downloading. // now much more general purpose then just repo downloading.
String repoAddress = event.getData().getString(RepoUpdater.PROGRESS_DATA_REPO_ADDRESS); String repoAddress = event.getData().getString(RepoUpdater.PROGRESS_DATA_REPO_ADDRESS);
if (event.type.equals(Downloader.EVENT_PROGRESS)) { switch (event.type) {
case Downloader.EVENT_PROGRESS:
String downloadedSize = Utils.getFriendlySize(event.progress); String downloadedSize = Utils.getFriendlySize(event.progress);
String totalSize = Utils.getFriendlySize(event.total); String totalSize = Utils.getFriendlySize(event.total);
int percent = (int)((double)event.progress/event.total * 100); int percent = (int)((double)event.progress/event.total * 100);
message = getString(R.string.status_download, repoAddress, downloadedSize, totalSize, percent); message = getString(R.string.status_download, repoAddress, downloadedSize, totalSize, percent);
} else if (event.type.equals(RepoUpdater.PROGRESS_TYPE_PROCESS_XML)) { break;
case RepoUpdater.PROGRESS_TYPE_PROCESS_XML:
message = getString(R.string.status_processing_xml, repoAddress, event.progress, event.total); message = getString(R.string.status_processing_xml, repoAddress, event.progress, event.total);
break;
} }
sendStatus(STATUS_INFO, message); sendStatus(STATUS_INFO, message);
} }

View File

@ -477,17 +477,20 @@ public final class Utils {
@Override @Override
public void handleTag(boolean opening, String tag, Editable output, public void handleTag(boolean opening, String tag, Editable output,
XMLReader reader) { XMLReader reader) {
if (tag.equals("ul")) { switch (tag) {
case "ul":
if (opening) if (opening)
listNum = -1; listNum = -1;
else else
output.append('\n'); output.append('\n');
} else if (tag.equals("ol")) { break;
case "ol":
if (opening) if (opening)
listNum = 1; listNum = 1;
else else
output.append('\n'); output.append('\n');
} else if (tag.equals("li")) { break;
case "li":
if (opening) { if (opening) {
if (listNum == -1) { if (listNum == -1) {
output.append("\t• "); output.append("\t• ");
@ -498,6 +501,7 @@ public final class Utils {
} else { } else {
output.append('\n'); output.append('\n');
} }
break;
} }
} }
} }

View File

@ -63,46 +63,67 @@ public class Apk extends ValueObject implements Comparable<Apk> {
for (int i = 0; i < cursor.getColumnCount(); i++) { for (int i = 0; i < cursor.getColumnCount(); i++) {
String column = cursor.getColumnName(i); String column = cursor.getColumnName(i);
if (column.equals(ApkProvider.DataColumns.HASH)) { switch (cursor.getColumnName(i)) {
case ApkProvider.DataColumns.HASH:
hash = cursor.getString(i); hash = cursor.getString(i);
} else if (column.equals(ApkProvider.DataColumns.HASH_TYPE)) { break;
case ApkProvider.DataColumns.HASH_TYPE:
hashType = cursor.getString(i); hashType = cursor.getString(i);
} else if (column.equals(ApkProvider.DataColumns.ADDED_DATE)) { break;
case ApkProvider.DataColumns.ADDED_DATE:
added = ValueObject.toDate(cursor.getString(i)); added = ValueObject.toDate(cursor.getString(i));
} else if (column.equals(ApkProvider.DataColumns.FEATURES)) { break;
case ApkProvider.DataColumns.FEATURES:
features = Utils.CommaSeparatedList.make(cursor.getString(i)); features = Utils.CommaSeparatedList.make(cursor.getString(i));
} else if (column.equals(ApkProvider.DataColumns.APK_ID)) { break;
case ApkProvider.DataColumns.APK_ID:
id = cursor.getString(i); id = cursor.getString(i);
} else if (column.equals(ApkProvider.DataColumns.IS_COMPATIBLE)) { break;
case ApkProvider.DataColumns.IS_COMPATIBLE:
compatible = cursor.getInt(i) == 1; compatible = cursor.getInt(i) == 1;
} else if (column.equals(ApkProvider.DataColumns.MIN_SDK_VERSION)) { break;
case ApkProvider.DataColumns.MIN_SDK_VERSION:
minSdkVersion = cursor.getInt(i); minSdkVersion = cursor.getInt(i);
} else if (column.equals(ApkProvider.DataColumns.MAX_SDK_VERSION)) { break;
case ApkProvider.DataColumns.MAX_SDK_VERSION:
maxSdkVersion = cursor.getInt(i); maxSdkVersion = cursor.getInt(i);
} else if (column.equals(ApkProvider.DataColumns.NAME)) { break;
case ApkProvider.DataColumns.NAME:
apkName = cursor.getString(i); apkName = cursor.getString(i);
} else if (column.equals(ApkProvider.DataColumns.PERMISSIONS)) { break;
case ApkProvider.DataColumns.PERMISSIONS:
permissions = Utils.CommaSeparatedList.make(cursor.getString(i)); permissions = Utils.CommaSeparatedList.make(cursor.getString(i));
} else if (column.equals(ApkProvider.DataColumns.NATIVE_CODE)) { break;
case ApkProvider.DataColumns.NATIVE_CODE:
nativecode = Utils.CommaSeparatedList.make(cursor.getString(i)); nativecode = Utils.CommaSeparatedList.make(cursor.getString(i));
} else if (column.equals(ApkProvider.DataColumns.INCOMPATIBLE_REASONS)) { break;
case ApkProvider.DataColumns.INCOMPATIBLE_REASONS:
incompatible_reasons = Utils.CommaSeparatedList.make(cursor.getString(i)); incompatible_reasons = Utils.CommaSeparatedList.make(cursor.getString(i));
} else if (column.equals(ApkProvider.DataColumns.REPO_ID)) { break;
case ApkProvider.DataColumns.REPO_ID:
repo = cursor.getInt(i); repo = cursor.getInt(i);
} else if (column.equals(ApkProvider.DataColumns.SIGNATURE)) { break;
case ApkProvider.DataColumns.SIGNATURE:
sig = cursor.getString(i); sig = cursor.getString(i);
} else if (column.equals(ApkProvider.DataColumns.SIZE)) { break;
case ApkProvider.DataColumns.SIZE:
size = cursor.getInt(i); size = cursor.getInt(i);
} else if (column.equals(ApkProvider.DataColumns.SOURCE_NAME)) { break;
case ApkProvider.DataColumns.SOURCE_NAME:
srcname = cursor.getString(i); srcname = cursor.getString(i);
} else if (column.equals(ApkProvider.DataColumns.VERSION)) { break;
case ApkProvider.DataColumns.VERSION:
version = cursor.getString(i); version = cursor.getString(i);
} else if (column.equals(ApkProvider.DataColumns.VERSION_CODE)) { break;
case ApkProvider.DataColumns.VERSION_CODE:
vercode = cursor.getInt(i); vercode = cursor.getInt(i);
} else if (column.equals(ApkProvider.DataColumns.REPO_VERSION)) { break;
case ApkProvider.DataColumns.REPO_VERSION:
repoVersion = cursor.getInt(i); repoVersion = cursor.getInt(i);
} else if (column.equals(ApkProvider.DataColumns.REPO_ADDRESS)) { break;
case ApkProvider.DataColumns.REPO_ADDRESS:
repoAddress = cursor.getString(i); repoAddress = cursor.getString(i);
break;
} }
} }
} }

View File

@ -112,65 +112,94 @@ public class App extends ValueObject implements Comparable<App> {
checkCursorPosition(cursor); checkCursorPosition(cursor);
for (int i = 0; i < cursor.getColumnCount(); i++) { for (int i = 0; i < cursor.getColumnCount(); i++) {
String column = cursor.getColumnName(i); switch (cursor.getColumnName(i)) {
if (column.equals(AppProvider.DataColumns.IS_COMPATIBLE)) { case AppProvider.DataColumns.IS_COMPATIBLE:
compatible = cursor.getInt(i) == 1; compatible = cursor.getInt(i) == 1;
} else if (column.equals(AppProvider.DataColumns.APP_ID)) { break;
case AppProvider.DataColumns.APP_ID:
id = cursor.getString(i); id = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.NAME)) { break;
case AppProvider.DataColumns.NAME:
name = cursor.getString(i); name = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.SUMMARY)) { break;
case AppProvider.DataColumns.SUMMARY:
summary = cursor.getString(i); summary = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.ICON)) { break;
case AppProvider.DataColumns.ICON:
icon = cursor.getString(i); icon = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.DESCRIPTION)) { break;
case AppProvider.DataColumns.DESCRIPTION:
description = cursor.getString(i); description = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.LICENSE)) { break;
case AppProvider.DataColumns.LICENSE:
license = cursor.getString(i); license = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.WEB_URL)) { break;
case AppProvider.DataColumns.WEB_URL:
webURL = cursor.getString(i); webURL = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.TRACKER_URL)) { break;
case AppProvider.DataColumns.TRACKER_URL:
trackerURL = cursor.getString(i); trackerURL = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.SOURCE_URL)) { break;
case AppProvider.DataColumns.SOURCE_URL:
sourceURL = cursor.getString(i); sourceURL = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.DONATE_URL)) { break;
case AppProvider.DataColumns.DONATE_URL:
donateURL = cursor.getString(i); donateURL = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.BITCOIN_ADDR)) { break;
case AppProvider.DataColumns.BITCOIN_ADDR:
bitcoinAddr = cursor.getString(i); bitcoinAddr = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.LITECOIN_ADDR)) { break;
case AppProvider.DataColumns.LITECOIN_ADDR:
litecoinAddr = cursor.getString(i); litecoinAddr = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.DOGECOIN_ADDR)) { break;
case AppProvider.DataColumns.DOGECOIN_ADDR:
dogecoinAddr = cursor.getString(i); dogecoinAddr = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.FLATTR_ID)) { break;
case AppProvider.DataColumns.FLATTR_ID:
flattrID = cursor.getString(i); flattrID = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.SuggestedApk.VERSION)) { break;
case AppProvider.DataColumns.SuggestedApk.VERSION:
suggestedVersion = cursor.getString(i); suggestedVersion = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.SUGGESTED_VERSION_CODE)) { break;
case AppProvider.DataColumns.SUGGESTED_VERSION_CODE:
suggestedVercode = cursor.getInt(i); suggestedVercode = cursor.getInt(i);
} else if (column.equals(AppProvider.DataColumns.UPSTREAM_VERSION_CODE)) { break;
case AppProvider.DataColumns.UPSTREAM_VERSION_CODE:
upstreamVercode = cursor.getInt(i); upstreamVercode = cursor.getInt(i);
} else if (column.equals(AppProvider.DataColumns.UPSTREAM_VERSION)) { break;
case AppProvider.DataColumns.UPSTREAM_VERSION:
upstreamVersion = cursor.getString(i); upstreamVersion = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.ADDED)) { break;
case AppProvider.DataColumns.ADDED:
added = ValueObject.toDate(cursor.getString(i)); added = ValueObject.toDate(cursor.getString(i));
} else if (column.equals(AppProvider.DataColumns.LAST_UPDATED)) { break;
case AppProvider.DataColumns.LAST_UPDATED:
lastUpdated = ValueObject.toDate(cursor.getString(i)); lastUpdated = ValueObject.toDate(cursor.getString(i));
} else if (column.equals(AppProvider.DataColumns.CATEGORIES)) { break;
case AppProvider.DataColumns.CATEGORIES:
categories = Utils.CommaSeparatedList.make(cursor.getString(i)); categories = Utils.CommaSeparatedList.make(cursor.getString(i));
} else if (column.equals(AppProvider.DataColumns.ANTI_FEATURES)) { break;
case AppProvider.DataColumns.ANTI_FEATURES:
antiFeatures = Utils.CommaSeparatedList.make(cursor.getString(i)); antiFeatures = Utils.CommaSeparatedList.make(cursor.getString(i));
} else if (column.equals(AppProvider.DataColumns.REQUIREMENTS)) { break;
case AppProvider.DataColumns.REQUIREMENTS:
requirements = Utils.CommaSeparatedList.make(cursor.getString(i)); requirements = Utils.CommaSeparatedList.make(cursor.getString(i));
} else if (column.equals(AppProvider.DataColumns.IGNORE_ALLUPDATES)) { break;
case AppProvider.DataColumns.IGNORE_ALLUPDATES:
ignoreAllUpdates = cursor.getInt(i) == 1; ignoreAllUpdates = cursor.getInt(i) == 1;
} else if (column.equals(AppProvider.DataColumns.IGNORE_THISUPDATE)) { break;
case AppProvider.DataColumns.IGNORE_THISUPDATE:
ignoreThisUpdate = cursor.getInt(i); ignoreThisUpdate = cursor.getInt(i);
} else if (column.equals(AppProvider.DataColumns.ICON_URL)) { break;
case AppProvider.DataColumns.ICON_URL:
iconUrl = cursor.getString(i); iconUrl = cursor.getString(i);
} else if (column.equals(AppProvider.DataColumns.InstalledApp.VERSION_CODE)) { break;
case AppProvider.DataColumns.InstalledApp.VERSION_CODE:
installedVersionCode = cursor.getInt(i); installedVersionCode = cursor.getInt(i);
} else if (column.equals(AppProvider.DataColumns.InstalledApp.VERSION_NAME)) { break;
case AppProvider.DataColumns.InstalledApp.VERSION_NAME:
installedVersionName = cursor.getString(i); installedVersionName = cursor.getString(i);
break;
} }
} }
} }

View File

@ -314,19 +314,25 @@ public class AppProvider extends FDroidProvider {
@Override @Override
public void addField(String field) { public void addField(String field) {
if (field.equals(DataColumns.SuggestedApk.VERSION)) { switch (field) {
case DataColumns.SuggestedApk.VERSION:
addSuggestedApkVersionField(); addSuggestedApkVersionField();
} else if (field.equals(DataColumns.InstalledApp.VERSION_NAME)) { break;
case DataColumns.InstalledApp.VERSION_NAME:
addInstalledAppVersionName(); addInstalledAppVersionName();
} else if (field.equals(DataColumns.InstalledApp.VERSION_CODE)) { break;
case DataColumns.InstalledApp.VERSION_CODE:
addInstalledAppVersionCode(); addInstalledAppVersionCode();
} else if (field.equals(DataColumns._COUNT)) { break;
case DataColumns._COUNT:
appendCountField(); appendCountField();
} else { break;
default:
if (field.equals(DataColumns.CATEGORIES)) { if (field.equals(DataColumns.CATEGORIES)) {
categoryFieldAdded = true; categoryFieldAdded = true;
} }
appendField(field, "fdroid_app"); appendField(field, "fdroid_app");
break;
} }
} }

View File

@ -41,33 +41,46 @@ public class Repo extends ValueObject {
checkCursorPosition(cursor); checkCursorPosition(cursor);
for (int i = 0; i < cursor.getColumnCount(); i++) { for (int i = 0; i < cursor.getColumnCount(); i++) {
String column = cursor.getColumnName(i); switch (cursor.getColumnName(i)) {
if (column.equals(RepoProvider.DataColumns._ID)) { case RepoProvider.DataColumns._ID:
id = cursor.getInt(i); id = cursor.getInt(i);
} else if (column.equals(RepoProvider.DataColumns.LAST_ETAG)) { break;
case RepoProvider.DataColumns.LAST_ETAG:
lastetag = cursor.getString(i); lastetag = cursor.getString(i);
} else if (column.equals(RepoProvider.DataColumns.ADDRESS)) { break;
case RepoProvider.DataColumns.ADDRESS:
address = cursor.getString(i); address = cursor.getString(i);
} else if (column.equals(RepoProvider.DataColumns.DESCRIPTION)) { break;
case RepoProvider.DataColumns.DESCRIPTION:
description = cursor.getString(i); description = cursor.getString(i);
} else if (column.equals(RepoProvider.DataColumns.FINGERPRINT)) { break;
case RepoProvider.DataColumns.FINGERPRINT:
fingerprint = cursor.getString(i); fingerprint = cursor.getString(i);
} else if (column.equals(RepoProvider.DataColumns.IN_USE)) { break;
case RepoProvider.DataColumns.IN_USE:
inuse = cursor.getInt(i) == 1; inuse = cursor.getInt(i) == 1;
} else if (column.equals(RepoProvider.DataColumns.LAST_UPDATED)) { break;
case RepoProvider.DataColumns.LAST_UPDATED:
lastUpdated = toDate(cursor.getString(i)); lastUpdated = toDate(cursor.getString(i));
} else if (column.equals(RepoProvider.DataColumns.MAX_AGE)) { break;
case RepoProvider.DataColumns.MAX_AGE:
maxage = cursor.getInt(i); maxage = cursor.getInt(i);
} else if (column.equals(RepoProvider.DataColumns.VERSION)) { break;
case RepoProvider.DataColumns.VERSION:
version = cursor.getInt(i); version = cursor.getInt(i);
} else if (column.equals(RepoProvider.DataColumns.NAME)) { break;
case RepoProvider.DataColumns.NAME:
name = cursor.getString(i); name = cursor.getString(i);
} else if (column.equals(RepoProvider.DataColumns.PUBLIC_KEY)) { break;
case RepoProvider.DataColumns.PUBLIC_KEY:
pubkey = cursor.getString(i); pubkey = cursor.getString(i);
} else if (column.equals(RepoProvider.DataColumns.PRIORITY)) { break;
case RepoProvider.DataColumns.PRIORITY:
priority = cursor.getInt(i); priority = cursor.getInt(i);
} else if (column.equals(RepoProvider.DataColumns.IS_SWAP)) { break;
case RepoProvider.DataColumns.IS_SWAP:
isSwap = cursor.getInt(i) == 1; isSwap = cursor.getInt(i) == 1;
break;
} }
} }
} }

View File

@ -200,11 +200,13 @@ public class ApkDownloader implements AsyncDownloadWrapper.Listener {
} }
private void sendProgressEvent(Event event) { private void sendProgressEvent(Event event) {
if (event.type.equals(Downloader.EVENT_PROGRESS)) { switch (event.type) {
case Downloader.EVENT_PROGRESS:
// Keep a copy of these ourselves, so people can interrogate us for the // Keep a copy of these ourselves, so people can interrogate us for the
// info (in addition to receiving events with the info). // info (in addition to receiving events with the info).
totalSize = event.total; totalSize = event.total;
progress = event.progress; progress = event.progress;
break;
} }
event.getData().putLong(EVENT_SOURCE_ID, id); event.getData().putLong(EVENT_SOURCE_ID, id);

View File

@ -212,15 +212,16 @@ public class ManageReposActivity extends ActionBarActivity {
new ProgressListener() { new ProgressListener() {
@Override @Override
public void onProgress(Event event) { public void onProgress(Event event) {
if (event.type.equals(UpdateService.EVENT_COMPLETE_AND_SAME) || switch (event.type) {
event.type.equals(UpdateService.EVENT_COMPLETE_WITH_CHANGES)) { case UpdateService.EVENT_COMPLETE_AND_SAME:
case UpdateService.EVENT_COMPLETE_WITH_CHANGES:
// No need to prompt to update any more, we just // No need to prompt to update any more, we just
// did it! // did it!
changed = false; changed = false;
} break;
case UpdateService.EVENT_FINISHED:
if (event.type.equals(UpdateService.EVENT_FINISHED)) {
updateHandler = null; updateHandler = null;
break;
} }
} }
}); });

View File

@ -189,11 +189,10 @@ public class AvailableAppsFragment extends AppListFragment implements
protected Uri getDataUri() { protected Uri getDataUri() {
if (currentCategory == null || currentCategory.equals(AppProvider.Helper.getCategoryAll(getActivity()))) if (currentCategory == null || currentCategory.equals(AppProvider.Helper.getCategoryAll(getActivity())))
return AppProvider.getContentUri(); return AppProvider.getContentUri();
else if (currentCategory.equals(AppProvider.Helper.getCategoryRecentlyUpdated(getActivity()))) if (currentCategory.equals(AppProvider.Helper.getCategoryRecentlyUpdated(getActivity())))
return AppProvider.getRecentlyUpdatedUri(); return AppProvider.getRecentlyUpdatedUri();
else if (currentCategory.equals(AppProvider.Helper.getCategoryWhatsNew(getActivity()))) if (currentCategory.equals(AppProvider.Helper.getCategoryWhatsNew(getActivity())))
return AppProvider.getNewlyAddedUri(); return AppProvider.getNewlyAddedUri();
else
return AppProvider.getCategoryUri(currentCategory); return AppProvider.getCategoryUri(currentCategory);
} }

View File

@ -67,90 +67,111 @@ public class PreferenceFragment
int result = 0; int result = 0;
if (key.equals(Preferences.PREF_UPD_INTERVAL)) { switch (key) {
ListPreference pref = (ListPreference)findPreference( case Preferences.PREF_UPD_INTERVAL:
ListPreference listPref = (ListPreference)findPreference(
Preferences.PREF_UPD_INTERVAL); Preferences.PREF_UPD_INTERVAL);
int interval = Integer.parseInt(pref.getValue()); int interval = Integer.parseInt(listPref.getValue());
Preference onlyOnWifi = findPreference( Preference onlyOnWifi = findPreference(
Preferences.PREF_UPD_WIFI_ONLY); Preferences.PREF_UPD_WIFI_ONLY);
onlyOnWifi.setEnabled(interval > 0); onlyOnWifi.setEnabled(interval > 0);
if (interval == 0) { if (interval == 0) {
pref.setSummary(R.string.update_interval_zero); listPref.setSummary(R.string.update_interval_zero);
} else { } else {
pref.setSummary(pref.getEntry()); listPref.setSummary(listPref.getEntry());
} }
break;
} else if (key.equals(Preferences.PREF_UPD_WIFI_ONLY)) { case Preferences.PREF_UPD_WIFI_ONLY:
checkSummary(key, R.string.automatic_scan_wifi_on); checkSummary(key, R.string.automatic_scan_wifi_on);
break;
} else if (key.equals(Preferences.PREF_UPD_NOTIFY)) { case Preferences.PREF_UPD_NOTIFY:
checkSummary(key, R.string.notify_on); checkSummary(key, R.string.notify_on);
break;
} else if (key.equals(Preferences.PREF_UPD_HISTORY)) { case Preferences.PREF_UPD_HISTORY:
textSummary(key, R.string.update_history_summ); textSummary(key, R.string.update_history_summ);
break;
} else if (key.equals(Preferences.PREF_PERMISSIONS)) { case Preferences.PREF_PERMISSIONS:
checkSummary(key, R.string.showPermissions_on); checkSummary(key, R.string.showPermissions_on);
break;
} else if (key.equals(Preferences.PREF_COMPACT_LAYOUT)) { case Preferences.PREF_COMPACT_LAYOUT:
checkSummary(key, R.string.compactlayout_on); checkSummary(key, R.string.compactlayout_on);
break;
} else if (key.equals(Preferences.PREF_THEME)) { case Preferences.PREF_THEME:
entrySummary(key); entrySummary(key);
if (changing) { if (changing) {
result |= PreferencesActivity.RESULT_RESTART; result |= PreferencesActivity.RESULT_RESTART;
getActivity().setResult(result); getActivity().setResult(result);
} }
break;
} else if (key.equals(Preferences.PREF_INCOMP_VER)) { case Preferences.PREF_INCOMP_VER:
checkSummary(key, R.string.show_incompat_versions_on); checkSummary(key, R.string.show_incompat_versions_on);
break;
} else if (key.equals(Preferences.PREF_ROOTED)) { case Preferences.PREF_ROOTED:
checkSummary(key, R.string.rooted_on); checkSummary(key, R.string.rooted_on);
break;
} else if (key.equals(Preferences.PREF_IGN_TOUCH)) { case Preferences.PREF_IGN_TOUCH:
checkSummary(key, R.string.ignoreTouch_on); checkSummary(key, R.string.ignoreTouch_on);
break;
} else if (key.equals(Preferences.PREF_LOCAL_REPO_BONJOUR)) { case Preferences.PREF_LOCAL_REPO_BONJOUR:
checkSummary(key, R.string.local_repo_bonjour_on); checkSummary(key, R.string.local_repo_bonjour_on);
break;
} else if (key.equals(Preferences.PREF_LOCAL_REPO_NAME)) { case Preferences.PREF_LOCAL_REPO_NAME:
textSummary(key, R.string.local_repo_name_summary); textSummary(key, R.string.local_repo_name_summary);
break;
} else if (key.equals(Preferences.PREF_LOCAL_REPO_HTTPS)) { case Preferences.PREF_LOCAL_REPO_HTTPS:
checkSummary(key, R.string.local_repo_https_on); checkSummary(key, R.string.local_repo_https_on);
break;
} else if (key.equals(Preferences.PREF_CACHE_APK)) { case Preferences.PREF_CACHE_APK:
checkSummary(key, R.string.cache_downloaded_on); checkSummary(key, R.string.cache_downloaded_on);
break;
} else if (key.equals(Preferences.PREF_EXPERT)) { case Preferences.PREF_EXPERT:
checkSummary(key, R.string.expert_on); checkSummary(key, R.string.expert_on);
break;
} else if (key.equals(Preferences.PREF_ROOT_INSTALLER)) { case Preferences.PREF_ROOT_INSTALLER:
checkSummary(key, R.string.root_installer_on); checkSummary(key, R.string.root_installer_on);
break;
} else if (key.equals(Preferences.PREF_SYSTEM_INSTALLER)) { case Preferences.PREF_SYSTEM_INSTALLER:
checkSummary(key, R.string.system_installer_on); checkSummary(key, R.string.system_installer_on);
break;
} else if (key.equals(Preferences.PREF_ENABLE_PROXY)) { case Preferences.PREF_ENABLE_PROXY:
CheckBoxPreference pref = (CheckBoxPreference) findPreference(key); CheckBoxPreference checkPref = (CheckBoxPreference) findPreference(key);
pref.setSummary(R.string.enable_proxy_summary); checkPref.setSummary(R.string.enable_proxy_summary);
break;
} else if (key.equals(Preferences.PREF_PROXY_HOST)) { case Preferences.PREF_PROXY_HOST:
EditTextPreference textPref = (EditTextPreference) findPreference(key); EditTextPreference textPref = (EditTextPreference) findPreference(key);
String text = Preferences.get().getProxyHost(); String text = Preferences.get().getProxyHost();
if (TextUtils.isEmpty(text) || text.equals(Preferences.DEFAULT_PROXY_HOST)) if (TextUtils.isEmpty(text) || text.equals(Preferences.DEFAULT_PROXY_HOST))
textPref.setSummary(R.string.proxy_host_summary); textPref.setSummary(R.string.proxy_host_summary);
else else
textPref.setSummary(text); textPref.setSummary(text);
break;
} else if (key.equals(Preferences.PREF_PROXY_PORT)) { case Preferences.PREF_PROXY_PORT:
EditTextPreference textPref = (EditTextPreference) findPreference(key); EditTextPreference textPref2 = (EditTextPreference) findPreference(key);
int port = Preferences.get().getProxyPort(); int port = Preferences.get().getProxyPort();
if (port == Preferences.DEFAULT_PROXY_PORT) if (port == Preferences.DEFAULT_PROXY_PORT)
textPref.setSummary(R.string.proxy_port_summary); textPref2.setSummary(R.string.proxy_port_summary);
else else
textPref.setSummary(String.valueOf(port)); textPref2.setSummary(String.valueOf(port));
break;
} }
} }

View File

@ -229,13 +229,14 @@ public class RepoDetailsFragment extends Fragment {
updateHandler = UpdateService.updateRepoNow(repo.address, getActivity()).setListener(new ProgressListener() { updateHandler = UpdateService.updateRepoNow(repo.address, getActivity()).setListener(new ProgressListener() {
@Override @Override
public void onProgress(Event event) { public void onProgress(Event event) {
if (event.type.equals(UpdateService.EVENT_COMPLETE_WITH_CHANGES)) { switch (event.type) {
case UpdateService.EVENT_COMPLETE_WITH_CHANGES:
repo = loadRepoDetails(); repo = loadRepoDetails();
updateView((ViewGroup)getView()); updateView((ViewGroup)getView());
} break;
case UpdateService.EVENT_FINISHED:
if (event.type.equals(UpdateService.EVENT_FINISHED)) {
updateHandler = null; updateHandler = null;
break;
} }
} }
}); });

View File

@ -106,17 +106,20 @@ public class ConfirmReceiveSwapFragment extends Fragment implements ProgressList
// an additional dialog. E.g. White text on blue, letting the user // an additional dialog. E.g. White text on blue, letting the user
// know what we are up to. // know what we are up to.
if (event.type.equals(UpdateService.EVENT_COMPLETE_AND_SAME) || switch (event.type) {
event.type.equals(UpdateService.EVENT_COMPLETE_WITH_CHANGES)) { case UpdateService.EVENT_COMPLETE_AND_SAME:
case UpdateService.EVENT_COMPLETE_WITH_CHANGES:
((ConnectSwapActivity)getActivity()).onRepoUpdated(repo); ((ConnectSwapActivity)getActivity()).onRepoUpdated(repo);
/*Intent intent = new Intent(); /*Intent intent = new Intent();
intent.putExtra("category", newRepoConfig.getHost()); // TODO: Load repo from database to get proper name. This is what the category we want to select will be called. intent.putExtra("category", newRepoConfig.getHost()); // TODO: Load repo from database to get proper name. This is what the category we want to select will be called.
getActivity().setResult(Activity.RESULT_OK, intent); getActivity().setResult(Activity.RESULT_OK, intent);
finish();*/ finish();*/
} else if (event.type.equals(UpdateService.EVENT_ERROR)) { break;
case UpdateService.EVENT_ERROR:
// TODO: Show message on this screen (with a big "okay" button that goes back to F-Droid activity) // TODO: Show message on this screen (with a big "okay" button that goes back to F-Droid activity)
// rather than finishing directly. // rather than finishing directly.
finish(); finish();
break;
} }
} }
} }

View File

@ -37,10 +37,13 @@ public class SwapActivity extends ActionBarActivity implements SwapProcessManage
@Override @Override
public void onBackPressed() { public void onBackPressed() {
if (currentState().equals(STATE_START_SWAP)) { switch (currentState()) {
case STATE_START_SWAP:
finish(); finish();
} else { break;
default:
super.onBackPressed(); super.onBackPressed();
break;
} }
} }
@ -50,19 +53,24 @@ public class SwapActivity extends ActionBarActivity implements SwapProcessManage
} }
public void nextStep() { public void nextStep() {
String current = currentState(); switch (currentState()) {
if (current.equals(STATE_START_SWAP)) { case STATE_START_SWAP:
showSelectApps(); showSelectApps();
} else if (current.equals(STATE_SELECT_APPS)) { break;
case STATE_SELECT_APPS:
prepareLocalRepo(); prepareLocalRepo();
} else if (current.equals(STATE_JOIN_WIFI)) { break;
case STATE_JOIN_WIFI:
ensureLocalRepoRunning(); ensureLocalRepoRunning();
if (!attemptToShowNfc()) { if (!attemptToShowNfc()) {
showWifiQr(); showWifiQr();
} }
} else if (current.equals(STATE_NFC)) { break;
case STATE_NFC:
showWifiQr(); showWifiQr();
} else if (current.equals(STATE_WIFI_QR)) { break;
case STATE_WIFI_QR:
break;
} }
supportInvalidateOptionsMenu(); supportInvalidateOptionsMenu();
} }