diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudApiTypes.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudApiTypes.java index 93b5f03230..69a3b349ed 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudApiTypes.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudApiTypes.java @@ -58,16 +58,16 @@ public class CloudApiTypes { public static class SingleCloudDownload { private DownloadManager.Request request; - private boolean downloadfinished =false; + private boolean downloadFinished =false; private long downloadId; - private File destiniationFile; + private File destinationFile; private CloudApiTypes.JSONType type; private CloudApiTypes.ApiTarget target; public SingleCloudDownload(DownloadManager.Request aRequest,File aDestinationFile) { request = aRequest; - destiniationFile=aDestinationFile; + destinationFile = aDestinationFile; } public SingleCloudDownload setDownloadId(long downloadId) { this.downloadId = downloadId; @@ -92,8 +92,8 @@ public class CloudApiTypes { return downloadId; } - public File getDestiniationFile() { - return destiniationFile; + public File getDestinationFile() { + return destinationFile; } public JSONType getType() { @@ -107,22 +107,22 @@ public class CloudApiTypes { /** * Typed Download sets for cloud download. - * @param the model objects type - * @param the result type of the download + * @param the model objects type + * @param the result type of the download */ - public static class CloudDownloadSet { + public static class CloudDownloadSet { private String downloadIdentifier; - private M targetModel; + private ModelType targetModel; private LinkedList downloads = new LinkedList<>(); - private ICloudDownloadCallback callback; + private ICloudDownloadCallback callback; - private boolean resultsAreProcessing = false; + private boolean resultsReady = false; - //maybe implement a max lifetime for downloads + //TODO: maybe implement a max lifetime for downloads //private long startingTime = System.currentTimeMillis(); - public CloudDownloadSet(@NonNull String aDownloadIdentifier, M theTargetObject) + public CloudDownloadSet(@NonNull String aDownloadIdentifier, ModelType theTargetObject) { targetModel = theTargetObject; downloadIdentifier = aDownloadIdentifier; @@ -131,7 +131,7 @@ public class CloudApiTypes { protected boolean hasOpenDownloads() { synchronized (downloads) { for (SingleCloudDownload _d : downloads) { - if (!_d.downloadfinished) + if (!_d.downloadFinished) return true; } return false; @@ -140,7 +140,7 @@ public class CloudApiTypes { void addDownload(SingleCloudDownload aDownload) { synchronized (downloads) { - if (resultsAreProcessing) + if (resultsReady) throw new IllegalStateException("Could not add download to an allready processed download set"); downloads.add(aDownload); @@ -155,30 +155,30 @@ public class CloudApiTypes { this.callback = callback; } - public boolean isResultsAreProcessing() { - return resultsAreProcessing; + public boolean isResultsReady() { + return resultsReady; } - public void setResultsAreProcessing(boolean resultsAreProcessing) { - this.resultsAreProcessing = resultsAreProcessing; + public void setResultsReady() { + this.resultsReady = true; } public String getDownloadIdentifier() { return downloadIdentifier; } - public M getTargetModel() { + public ModelType getTargetModel() { return targetModel; } void setDone(long aDownload) { synchronized (downloads) { - if (resultsAreProcessing) - throw new IllegalStateException("Download is already processed"); + if (resultsReady) + throw new IllegalStateException("Download is already ready"); for (SingleCloudDownload _d : downloads) { if (_d.downloadId == aDownload) { - _d.downloadfinished = true; + _d.downloadFinished = true; return; } } diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudCatalogDownloadCallback.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudCatalogDownloadCallback.java index ad1e7a2a81..7735b4bbcd 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudCatalogDownloadCallback.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudCatalogDownloadCallback.java @@ -22,6 +22,7 @@ import java.util.List; */ public class CloudCatalogDownloadCallback implements ICloudDownloadCallback{ + private static final String TAG = "CloudCatalogDownloadCallback"; private static final boolean DEBUG_SIMULATE_UPDATES = false; private final Context context; @@ -215,7 +216,7 @@ public class CloudCatalogDownloadCallback implements ICloudDownloadCallback 0) { // Time for updates! - Log.v(CloudRepository.TAG, "Performing keyboard and model updates for " + updateBundles.size() + " resources."); + Log.v(TAG, "Performing keyboard and model updates for " + updateBundles.size() + " resources."); updateHandler.onUpdateDetection(updateBundles); } @@ -250,19 +251,19 @@ public class CloudCatalogDownloadCallback implements ICloudDownloadCallback 0) { + if (_d.getDestinationFile() != null && _d.getDestinationFile().length() > 0) { try { //Object _o = jsonParser.getJSONObjectFromFile(_d.getDestiniationFile()); if (_d.getType() == CloudApiTypes.JSONType.Array) { - dataArray = jsonParser.getJSONObjectFromFile(_d.getDestiniationFile(),JSONArray.class);//(JSONArray) _o; + dataArray = jsonParser.getJSONObjectFromFile(_d.getDestinationFile(),JSONArray.class);//(JSONArray) _o; } else { - dataObject = jsonParser.getJSONObjectFromFile(_d.getDestiniationFile(),JSONObject.class);//(JSONObject) _o; + dataObject = jsonParser.getJSONObjectFromFile(_d.getDestinationFile(),JSONObject.class);//(JSONObject) _o; } } catch (Exception e) { - Log.d(CloudRepository.TAG, e.getMessage()); + Log.d(TAG, e.getMessage()); } finally { - _d.getDestiniationFile().delete(); + _d.getDestinationFile().delete(); } } else { // Offline trouble! That said, we can't get anything, so we simply shouldn't add anything. diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudCatalogDownloadReturns.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudCatalogDownloadReturns.java index cc0e82b45d..c1994c1a98 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudCatalogDownloadReturns.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudCatalogDownloadReturns.java @@ -39,20 +39,8 @@ class CloudCatalogDownloadReturns { } public boolean isEmpty() { - boolean emptyKbd = false; - boolean emptyLex = false; - - if (keyboardJSON == null) { - emptyKbd = true; - } else if (keyboardJSON.length() == 0) { - emptyKbd = true; - } - - if(lexicalModelJSON == null) { - emptyLex = true; - } else if(lexicalModelJSON.length() == 0) { - emptyLex = true; - } + boolean emptyKbd = keyboardJSON == null || keyboardJSON.length() == 0; + boolean emptyLex = lexicalModelJSON == null || lexicalModelJSON.length() == 0; return emptyKbd && emptyLex; } diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudCatalogDownloadTask.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudCatalogDownloadTask.java index b219bfbfac..c25d0ad311 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudCatalogDownloadTask.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudCatalogDownloadTask.java @@ -22,6 +22,7 @@ import java.util.List; class CloudCatalogDownloadTask extends AsyncTask { + private static final String TAG = "CloudCatalogDownloadTask"; private final boolean hasConnection; private ProgressDialog progressDialog; @@ -114,7 +115,7 @@ class CloudCatalogDownloadTask extends AsyncTask(); // Is this ideal? } @@ -131,7 +132,7 @@ public class CloudDataJsonUtil { modelList.add(new LexicalModel(hashMap)); } } catch (JSONException | NullPointerException e) { - Log.e(CloudRepository.TAG, "JSONParse Error: " + e); + Log.e(TAG, "JSONParse Error: " + e); return new ArrayList<>(); // Is this ideal? } @@ -148,7 +149,7 @@ public class CloudDataJsonUtil { objInput.close(); } } catch (Exception e) { - Log.e(CloudRepository.TAG, "Failed to read from cache file. Error: " + e); + Log.e(TAG, "Failed to read from cache file. Error: " + e); lmData = null; } @@ -165,7 +166,7 @@ public class CloudDataJsonUtil { objInput.close(); } } catch (Exception e) { - Log.e(CloudRepository.TAG, "Failed to read from cache file. Error: " + e); + Log.e(TAG, "Failed to read from cache file. Error: " + e); kbData = null; } @@ -186,7 +187,7 @@ public class CloudDataJsonUtil { objOutput.writeObject(json.toString()); objOutput.close(); } catch (Exception e) { - Log.e(CloudRepository.TAG, "Failed to save to cache file. Error: " + e); + Log.e(TAG, "Failed to save to cache file. Error: " + e); } } @@ -204,7 +205,7 @@ public class CloudDataJsonUtil { objOutput.writeObject(json.toString()); objOutput.close(); } catch (Exception e) { - Log.e(CloudRepository.TAG, "Failed to save to cache file. Error: " + e); + Log.e(TAG, "Failed to save to cache file. Error: " + e); } } diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudDownloadMgr.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudDownloadMgr.java index db4e6f2948..5360ae4127 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudDownloadMgr.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudDownloadMgr.java @@ -97,7 +97,7 @@ public class CloudDownloadMgr{ */ private void processDownloadSet(Context aContext, CloudApiTypes.CloudDownloadSet aDownloadSet) { - aDownloadSet.setResultsAreProcessing(true); + aDownloadSet.setResultsReady(); ICloudDownloadCallback _callback = aDownloadSet.getCallback(); diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudRepository.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudRepository.java index f5eda4d645..a2af26564b 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudRepository.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/CloudRepository.java @@ -26,7 +26,7 @@ import java.util.List; public class CloudRepository { static public final CloudRepository shared = new CloudRepository(); - static final String TAG = "CloudRepository"; + private static final String TAG = "CloudRepository"; public static final boolean USE_DOWNLOAD_MANAGER = true; public static final String DOWNLOAD_IDENTIFIER_CATALOGUE = "catalogue"; diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/ICloudDownloadCallback.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/ICloudDownloadCallback.java index df7e72467d..4fe402c732 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/ICloudDownloadCallback.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/ICloudDownloadCallback.java @@ -4,10 +4,10 @@ import android.content.Context; /** * Interface for {@link CloudDownloadMgr} as callback to do use case specific task. - * @param the model objects type - * @param the result type of the download + * @param the model objects type + * @param the result type of the download */ -public interface ICloudDownloadCallback { +public interface ICloudDownloadCallback { /** @@ -15,7 +15,13 @@ public interface ICloudDownloadCallback { * @param aDownload the download * @return the result */ - R extractCloudResultFromDownloadSet(CloudApiTypes.CloudDownloadSet aDownload); + ResultType extractCloudResultFromDownloadSet(CloudApiTypes.CloudDownloadSet aDownload); - void applyCloudDownloadToModel(Context aContext, M aModel, R aCloudResult); + /** + * Apply download results to target model. + * @param aContext the context + * @param aModel the model + * @param aCloudResult the result + */ + void applyCloudDownloadToModel(Context aContext, ModelType aModel, ResultType aCloudResult); } diff --git a/android/KMEA/app/src/main/res/values/strings.xml b/android/KMEA/app/src/main/res/values/strings.xml index 4e412b50a7..df77ff5223 100644 --- a/android/KMEA/app/src/main/res/values/strings.xml +++ b/android/KMEA/app/src/main/res/values/strings.xml @@ -59,7 +59,7 @@ Downloading dictionary… The resource catalog is unavailable\n Catalog update started in background.\n - The download of catalog is running. Please, try again later!\n + The catalog is still downloading; please try again in a moment!\n Failed to access server!\n