From dbc7fcd0206a3acde43b189083ae8f4296ec2948 Mon Sep 17 00:00:00 2001 From: Matt Brown Date: Tue, 10 Nov 2020 12:26:53 -0800 Subject: [PATCH] Add save button to synonym fragment. Add toast to notify user save status after pressing save button. --- .../SynonymCacheLoaderSaver.java | 6 ++-- .../SynonymFinder/SynonymCacher.java | 7 +++++ .../SynonymExpandableListAdapter.java | 1 - .../SynonymExpandableListFragment.java | 31 ++++++++++++++++++- .../main/res/drawable/ic_baseline_save_24.xml | 10 ++++++ .../res/layout/fragment_synonym_item_list.xml | 13 ++++++++ app/src/main/res/values/strings.xml | 1 + 7 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/drawable/ic_baseline_save_24.xml diff --git a/app/src/main/java/com/everspysolutions/everspinner/SynonymFinder/SynonymCacheLoaderSaver.java b/app/src/main/java/com/everspysolutions/everspinner/SynonymFinder/SynonymCacheLoaderSaver.java index e2597a4..5364f65 100644 --- a/app/src/main/java/com/everspysolutions/everspinner/SynonymFinder/SynonymCacheLoaderSaver.java +++ b/app/src/main/java/com/everspysolutions/everspinner/SynonymFinder/SynonymCacheLoaderSaver.java @@ -51,7 +51,7 @@ public static SynonymCacher loadLocalSynonymCache (Context ctx) { return synonymCacher; } - public static void saveLocalSynonymCache(Context ctx, SynonymCacher cache) { + public static Boolean saveLocalSynonymCache(Context ctx, SynonymCacher cache) { JSONObject obj = cache.toJSONObject(); File outputDir = ctx.getCacheDir(); File outputFile = new File(outputDir, FILENAME); @@ -69,14 +69,17 @@ public static void saveLocalSynonymCache(Context ctx, SynonymCacher cache) { Log.d(TAG, "saveLocalSynonymCache: Saved cache to JSON file"); } catch (IOException e) { e.printStackTrace(); + return false; } finally { try{ file.flush(); file.close(); } catch (IOException e) { e.printStackTrace(); + return false; } } + return true; } public static Date getLastSaveTime(Context ctx) { @@ -84,7 +87,6 @@ public static Date getLastSaveTime(Context ctx) { File file = new File(outputDir, FILENAME); return new Date(file.lastModified()); - } } diff --git a/app/src/main/java/com/everspysolutions/everspinner/SynonymFinder/SynonymCacher.java b/app/src/main/java/com/everspysolutions/everspinner/SynonymFinder/SynonymCacher.java index b3dc94c..b97f4d0 100644 --- a/app/src/main/java/com/everspysolutions/everspinner/SynonymFinder/SynonymCacher.java +++ b/app/src/main/java/com/everspysolutions/everspinner/SynonymFinder/SynonymCacher.java @@ -143,12 +143,19 @@ public void addSynonymToBaseWord(String baseWord, Synonym synonym) { ArrayList synonyms = cache.get(baseWord); int index = synonyms.size(); + boolean repeated = false; + for(int i = 0; i < synonyms.size(); i++) { if (synonym.getScore() > synonyms.get(i).getScore()) { index = i; break; } +// if (synonyms.get(i).getWord().equals(synonym.getWord())) { +// repeated = true; +// break; +// } } + synonyms.add(index, synonym); sortSynonyms(synonyms); } diff --git a/app/src/main/java/com/everspysolutions/everspinner/SynonymList/SynonymExpandableListAdapter.java b/app/src/main/java/com/everspysolutions/everspinner/SynonymList/SynonymExpandableListAdapter.java index cf2fa4e..eb7f569 100644 --- a/app/src/main/java/com/everspysolutions/everspinner/SynonymList/SynonymExpandableListAdapter.java +++ b/app/src/main/java/com/everspysolutions/everspinner/SynonymList/SynonymExpandableListAdapter.java @@ -77,7 +77,6 @@ public View getChildView(int groupPosition, final int childPosition, //holder.btnDeleteSyn.setOnClickListener(view -> ); holder.btnEditSyn.setOnClickListener(view -> onEditSynonymClick(view, null, holder)); - return row; } diff --git a/app/src/main/java/com/everspysolutions/everspinner/SynonymList/SynonymExpandableListFragment.java b/app/src/main/java/com/everspysolutions/everspinner/SynonymList/SynonymExpandableListFragment.java index 60999a7..d7498f7 100644 --- a/app/src/main/java/com/everspysolutions/everspinner/SynonymList/SynonymExpandableListFragment.java +++ b/app/src/main/java/com/everspysolutions/everspinner/SynonymList/SynonymExpandableListFragment.java @@ -2,6 +2,7 @@ import android.content.Context; import android.content.DialogInterface; +import android.media.Image; import android.os.Bundle; import androidx.annotation.NonNull; @@ -19,10 +20,12 @@ import android.widget.ExpandableListAdapter; import android.widget.ExpandableListView; import android.widget.ImageButton; +import android.widget.Toast; import com.everspysolutions.everspinner.R; import com.everspysolutions.everspinner.SavedFileRecyclerViewAdapter; import com.everspysolutions.everspinner.SynonymFinder.Synonym; +import com.everspysolutions.everspinner.SynonymFinder.SynonymCacheLoaderSaver; import com.everspysolutions.everspinner.SynonymFinder.SynonymCacher; import java.util.ArrayList; @@ -89,6 +92,9 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, ImageButton newBaseWordBtn = rootView.findViewById(R.id.btn_add_new_baseword); newBaseWordBtn.setOnClickListener(this::onNewBaseWordClick); + ImageButton saveCacheBtn = rootView.findViewById(R.id.btn_save_synonymcache); + saveCacheBtn.setOnClickListener(this::onSaveSynCacheClick); + // Inflate the layout for this fragment return rootView; } @@ -132,5 +138,28 @@ public void onClick(DialogInterface dialog, int which) { builder.show(); } + public void onSaveSynCacheClick(View view) { + final Boolean res = SynonymCacheLoaderSaver + .saveLocalSynonymCache(view.getContext(), synonymCacher); + + CharSequence text; + + if (res) { + text = "Saved synonym cache."; + } else { + text = "Failed to save cache."; + } + + Toast toast = Toast.makeText(view.getContext(), text, Toast.LENGTH_SHORT); + toast.show(); + + } -} \ No newline at end of file + @Override + public void onStop() { + + super.onStop(); + + + } +} diff --git a/app/src/main/res/drawable/ic_baseline_save_24.xml b/app/src/main/res/drawable/ic_baseline_save_24.xml new file mode 100644 index 0000000..1a8d86d --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_save_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/fragment_synonym_item_list.xml b/app/src/main/res/layout/fragment_synonym_item_list.xml index 03235f3..ff3f269 100644 --- a/app/src/main/res/layout/fragment_synonym_item_list.xml +++ b/app/src/main/res/layout/fragment_synonym_item_list.xml @@ -21,6 +21,19 @@ android:textSize="18sp" android:text="@string/synonym_cache_list_label" android:textColor="@color/colorPrimary"/> + + + Delete baseword from cache Delete synonym Edit synonym score + Save synonym cache changes \ No newline at end of file