aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2013-08-18 19:08:39 +0200
committerBananeweizen <bananeweizen@gmx.de>2013-08-18 19:08:39 +0200
commitcd03c1b91da2b5c8cc7eb4f5617263c6aebcbd21 (patch)
treecc37d7e3f9f2805992b320169c0e71cf07f6dc1d /main
parente3bad494f541eb574e80e466ed8abaef8bb5d257 (diff)
downloadcgeo-cd03c1b91da2b5c8cc7eb4f5617263c6aebcbd21.zip
cgeo-cd03c1b91da2b5c8cc7eb4f5617263c6aebcbd21.tar.gz
cgeo-cd03c1b91da2b5c8cc7eb4f5617263c6aebcbd21.tar.bz2
refactoring: more findbugs cleanup
Diffstat (limited to 'main')
-rw-r--r--main/src/cgeo/geocaching/ImageSelectActivity.java4
-rw-r--r--main/src/cgeo/geocaching/NavigateAnyPointActivity.java24
-rw-r--r--main/src/cgeo/geocaching/cgData.java2
-rw-r--r--main/src/cgeo/geocaching/cgeocaches.java2
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCMap.java2
-rw-r--r--main/src/cgeo/geocaching/connector/oc/OkapiClient.java4
-rw-r--r--main/src/cgeo/geocaching/export/FieldnoteExport.java3
-rw-r--r--main/src/cgeo/geocaching/export/GpxExport.java2
-rw-r--r--main/src/cgeo/geocaching/files/LocalStorage.java7
-rw-r--r--main/src/cgeo/geocaching/maps/CGeoMap.java40
-rw-r--r--main/src/cgeo/geocaching/utils/FileUtils.java14
11 files changed, 53 insertions, 51 deletions
diff --git a/main/src/cgeo/geocaching/ImageSelectActivity.java b/main/src/cgeo/geocaching/ImageSelectActivity.java
index 52f9a7e..738b9a7 100644
--- a/main/src/cgeo/geocaching/ImageSelectActivity.java
+++ b/main/src/cgeo/geocaching/ImageSelectActivity.java
@@ -6,6 +6,7 @@ import butterknife.Views;
import cgeo.geocaching.activity.AbstractActivity;
import cgeo.geocaching.compatibility.Compatibility;
import cgeo.geocaching.settings.Settings;
+import cgeo.geocaching.utils.FileUtils;
import cgeo.geocaching.utils.ImageUtils;
import cgeo.geocaching.utils.Log;
@@ -328,8 +329,7 @@ public class ImageSelectActivity extends AbstractActivity {
// Create the storage directory if it does not exist
if (!mediaStorageDir.exists()) {
- if (!mediaStorageDir.mkdirs()) {
- Log.w("Failed to create directory");
+ if (!FileUtils.mkdirs(mediaStorageDir)) {
return null;
}
}
diff --git a/main/src/cgeo/geocaching/NavigateAnyPointActivity.java b/main/src/cgeo/geocaching/NavigateAnyPointActivity.java
index b73a154..741414b 100644
--- a/main/src/cgeo/geocaching/NavigateAnyPointActivity.java
+++ b/main/src/cgeo/geocaching/NavigateAnyPointActivity.java
@@ -490,6 +490,7 @@ public class NavigateAnyPointActivity extends AbstractActivity {
return null;
}
+ // get base coordinates
Geopoint coords;
if (StringUtils.isNotBlank(latText) && StringUtils.isNotBlank(lonText)) {
try {
@@ -507,8 +508,8 @@ public class NavigateAnyPointActivity extends AbstractActivity {
coords = app.currentGeo().getCoords();
}
- Geopoint result;
- if (StringUtils.isNotBlank(bearingText) && StringUtils.isNotBlank(distanceText)) {
+ // apply projection
+ if (coords != null && StringUtils.isNotBlank(bearingText) && StringUtils.isNotBlank(distanceText)) {
// bearing & distance
double bearing;
try {
@@ -527,23 +528,14 @@ public class NavigateAnyPointActivity extends AbstractActivity {
return null;
}
- final Geopoint coordsDst = coords.project(bearing, distance);
-
- if (coordsDst == null) {
- showToast(res.getString(R.string.err_point_location_error));
- return null;
- }
-
- result = coordsDst;
- } else if (coords != null) {
- result = coords;
- } else {
- return null;
+ coords = coords.project(bearing, distance);
}
- saveCoords(result);
+ if (coords != null) {
+ saveCoords(coords);
+ }
- return result;
+ return coords;
}
private void saveCoords(final Geopoint coords) {
diff --git a/main/src/cgeo/geocaching/cgData.java b/main/src/cgeo/geocaching/cgData.java
index fb8908f..9d636f9 100644
--- a/main/src/cgeo/geocaching/cgData.java
+++ b/main/src/cgeo/geocaching/cgData.java
@@ -407,7 +407,7 @@ public class cgData {
public SQLiteDatabase openOrCreateDatabase(String name, int mode,
CursorFactory factory) {
final File file = new File(name);
- file.getParentFile().mkdirs();
+ FileUtils.mkdirs(file.getParentFile());
return SQLiteDatabase.openOrCreateDatabase(file, factory);
}
diff --git a/main/src/cgeo/geocaching/cgeocaches.java b/main/src/cgeo/geocaching/cgeocaches.java
index 5552bcb..304aabe 100644
--- a/main/src/cgeo/geocaching/cgeocaches.java
+++ b/main/src/cgeo/geocaching/cgeocaches.java
@@ -504,7 +504,7 @@ public class cgeocaches extends AbstractListActivity implements FilteredActivity
// refresh standard list if it has changed (new caches downloaded)
if (type == CacheListType.OFFLINE && listId >= StoredList.STANDARD_LIST_ID && search != null) {
final SearchResult newSearch = cgData.getBatchOfStoredCaches(coords, Settings.getCacheType(), listId);
- if (newSearch != null && newSearch.getTotal() != search.getTotal()) {
+ if (newSearch.getTotal() != search.getTotal()) {
refreshCurrentList();
}
}
diff --git a/main/src/cgeo/geocaching/connector/gc/GCMap.java b/main/src/cgeo/geocaching/connector/gc/GCMap.java
index 85873af..4fdde56 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCMap.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCMap.java
@@ -340,7 +340,7 @@ public class GCMap {
Log.w("GCMap.searchByViewport: No data from server for tile (" + tile.getX() + "/" + tile.getY() + ")");
} else {
final SearchResult search = GCMap.parseMapJSON(data, tile, bitmap, strategy);
- if (search == null || CollectionUtils.isEmpty(search.getGeocodes())) {
+ if (CollectionUtils.isEmpty(search.getGeocodes())) {
Log.e("GCMap.searchByViewport: No cache parsed for viewport " + viewport);
}
else {
diff --git a/main/src/cgeo/geocaching/connector/oc/OkapiClient.java b/main/src/cgeo/geocaching/connector/oc/OkapiClient.java
index 6959adf..ae3af05 100644
--- a/main/src/cgeo/geocaching/connector/oc/OkapiClient.java
+++ b/main/src/cgeo/geocaching/connector/oc/OkapiClient.java
@@ -246,9 +246,7 @@ final class OkapiClient {
while (keys.hasNext()) {
final String key = keys.next();
final Geocache cache = parseSmallCache(cachesResponse.getJSONObject(key));
- if (cache != null) {
- caches.add(cache);
- }
+ caches.add(cache);
}
return caches;
}
diff --git a/main/src/cgeo/geocaching/export/FieldnoteExport.java b/main/src/cgeo/geocaching/export/FieldnoteExport.java
index 9bf4037..d0040a9 100644
--- a/main/src/cgeo/geocaching/export/FieldnoteExport.java
+++ b/main/src/cgeo/geocaching/export/FieldnoteExport.java
@@ -12,6 +12,7 @@ import cgeo.geocaching.network.Parameters;
import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.ui.Formatter;
import cgeo.geocaching.utils.AsyncTaskWithProgress;
+import cgeo.geocaching.utils.FileUtils;
import cgeo.geocaching.utils.IOUtils;
import cgeo.geocaching.utils.Log;
@@ -151,7 +152,7 @@ class FieldnoteExport extends AbstractExport {
return false;
}
- exportLocation.mkdirs();
+ FileUtils.mkdirs(exportLocation);
final SimpleDateFormat fileNameDateFormat = new SimpleDateFormat("yyyyMMddHHmmss", Locale.US);
exportFile = new File(exportLocation.toString() + '/' + fileNameDateFormat.format(new Date()) + ".txt");
diff --git a/main/src/cgeo/geocaching/export/GpxExport.java b/main/src/cgeo/geocaching/export/GpxExport.java
index b7b122e..821a3f6 100644
--- a/main/src/cgeo/geocaching/export/GpxExport.java
+++ b/main/src/cgeo/geocaching/export/GpxExport.java
@@ -131,7 +131,7 @@ class GpxExport extends AbstractExport {
BufferedWriter writer = null;
try {
final File exportLocation = new File(Settings.getGpxExportDir());
- exportLocation.mkdirs();
+ FileUtils.mkdirs(exportLocation);
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(exportFile), CharEncoding.UTF_8));
new GpxSerializer().writeGPX(allGeocodes, writer, new GpxSerializer.ProgressListener() {
diff --git a/main/src/cgeo/geocaching/files/LocalStorage.java b/main/src/cgeo/geocaching/files/LocalStorage.java
index 7657e1e..57f586e 100644
--- a/main/src/cgeo/geocaching/files/LocalStorage.java
+++ b/main/src/cgeo/geocaching/files/LocalStorage.java
@@ -167,7 +167,7 @@ public final class LocalStorage {
private static File buildFile(final File base, final String fileName, final boolean isUrl, final boolean createDirs) {
if (createDirs) {
- base.mkdirs();
+ FileUtils.mkdirs(base);
}
return new File(base, isUrl ? CryptUtils.md5(fileName) + getExtension(fileName) : fileName);
}
@@ -287,7 +287,7 @@ public final class LocalStorage {
* @return true if the copy happened without error, false otherwise
*/
public static boolean copy(final File source, final File destination) {
- destination.getParentFile().mkdirs();
+ FileUtils.mkdirs(destination.getParentFile());
InputStream input = null;
OutputStream output = null;
@@ -296,9 +296,10 @@ public final class LocalStorage {
output = new BufferedOutputStream(new FileOutputStream(destination));
} catch (FileNotFoundException e) {
Log.e("LocalStorage.copy: could not open file", e);
+ return false;
+ } finally {
IOUtils.closeQuietly(input);
IOUtils.closeQuietly(output);
- return false;
}
boolean copyDone = copy(input, output);
diff --git a/main/src/cgeo/geocaching/maps/CGeoMap.java b/main/src/cgeo/geocaching/maps/CGeoMap.java
index d4754aa..0817170 100644
--- a/main/src/cgeo/geocaching/maps/CGeoMap.java
+++ b/main/src/cgeo/geocaching/maps/CGeoMap.java
@@ -1179,33 +1179,29 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
}
searchResult = ConnectorFactory.searchByViewport(viewport.resize(0.8), tokens);
- if (searchResult != null) {
- downloaded = true;
- if (searchResult.getError() == StatusCode.NOT_LOGGED_IN && Settings.isGCConnectorActive()) {
- Login.login();
- tokens = null;
- } else {
- break;
- }
+ downloaded = true;
+ if (searchResult.getError() == StatusCode.NOT_LOGGED_IN && Settings.isGCConnectorActive()) {
+ Login.login();
+ tokens = null;
+ } else {
+ break;
}
count++;
} while (count < 2);
- if (searchResult != null) {
- Set<Geocache> result = searchResult.getCachesFromSearchResult(LoadFlags.LOAD_CACHE_OR_DB);
- CGeoMap.filter(result);
- // update the caches
- // first remove filtered out
- final Set<String> filteredCodes = searchResult.getFilteredGeocodes();
- Log.d("Filtering out " + filteredCodes.size() + " caches: " + filteredCodes.toString());
- caches.removeAll(cgData.loadCaches(filteredCodes, LoadFlags.LOAD_CACHE_ONLY));
- cgData.removeCaches(filteredCodes, EnumSet.of(RemoveFlag.REMOVE_CACHE));
- // new collection type needs to remove first to refresh
- caches.removeAll(result);
- caches.addAll(result);
- lastSearchResult = searchResult;
- }
+ Set<Geocache> result = searchResult.getCachesFromSearchResult(LoadFlags.LOAD_CACHE_OR_DB);
+ CGeoMap.filter(result);
+ // update the caches
+ // first remove filtered out
+ final Set<String> filteredCodes = searchResult.getFilteredGeocodes();
+ Log.d("Filtering out " + filteredCodes.size() + " caches: " + filteredCodes.toString());
+ caches.removeAll(cgData.loadCaches(filteredCodes, LoadFlags.LOAD_CACHE_ONLY));
+ cgData.removeCaches(filteredCodes, EnumSet.of(RemoveFlag.REMOVE_CACHE));
+ // new collection type needs to remove first to refresh
+ caches.removeAll(result);
+ caches.addAll(result);
+ lastSearchResult = searchResult;
//render
displayExecutor.execute(new DisplayRunnable(viewport));
diff --git a/main/src/cgeo/geocaching/utils/FileUtils.java b/main/src/cgeo/geocaching/utils/FileUtils.java
index fec2518..edb8102 100644
--- a/main/src/cgeo/geocaching/utils/FileUtils.java
+++ b/main/src/cgeo/geocaching/utils/FileUtils.java
@@ -111,4 +111,18 @@ public final class FileUtils {
}
return success;
}
+
+ /**
+ * Creates the directory named by the given file, creating any missing parent directories in the process.
+ *
+ * @return <code>true</code> if the directory was created, <code>false</code> on failure or if the directory already
+ * existed.
+ */
+ public static boolean mkdirs(File file) {
+ final boolean success = file.mkdirs();
+ if (!success) {
+ Log.e("Could not make directories " + file.getAbsolutePath());
+ }
+ return success;
+ }
}