From 6e4dac4f333e02e624c5b7a1d579c2c7b2888d89 Mon Sep 17 00:00:00 2001 From: Size43 Date: Wed, 10 Jun 2015 11:08:28 +0200 Subject: Removed hardcoded strings & only one TrainingCase is stored per Article. --- .../java/org/rssin/android/ArticleActivity.java | 4 +- .../org/rssin/android/NavigationDrawerAdapter.java | 59 +++------------------- .../main/java/org/rssin/neurons/FeedSorter.java | 8 ++- .../main/java/org/rssin/neurons/TrainingCase.java | 11 ++-- .../org/rssin/rssin/SortedFeedItemContainer.java | 9 +++- app/src/main/res/values/strings.xml | 5 ++ 6 files changed, 35 insertions(+), 61 deletions(-) diff --git a/app/src/main/java/org/rssin/android/ArticleActivity.java b/app/src/main/java/org/rssin/android/ArticleActivity.java index f5c0631..2512949 100755 --- a/app/src/main/java/org/rssin/android/ArticleActivity.java +++ b/app/src/main/java/org/rssin/android/ArticleActivity.java @@ -77,12 +77,12 @@ public class ArticleActivity extends ActionBarActivity { //noinspection SimplifiableIfStatement if (id == R.id.article_action_dislike) { - Toast.makeText(this, "Feedback saved.", Toast.LENGTH_SHORT).show(); + Toast.makeText(this, getString(R.string.article_feedback_saved), Toast.LENGTH_SHORT).show(); container.feedback(this, Dislike); return true; } else if(id == R.id.article_action_like) { - Toast.makeText(this, "Feedback saved.", Toast.LENGTH_SHORT).show(); + Toast.makeText(this, getString(R.string.article_feedback_saved), Toast.LENGTH_SHORT).show(); container.feedback(this, Like); return true; } else if(id == R.id.article_action_share) diff --git a/app/src/main/java/org/rssin/android/NavigationDrawerAdapter.java b/app/src/main/java/org/rssin/android/NavigationDrawerAdapter.java index 90ce041..2a24342 100755 --- a/app/src/main/java/org/rssin/android/NavigationDrawerAdapter.java +++ b/app/src/main/java/org/rssin/android/NavigationDrawerAdapter.java @@ -33,23 +33,22 @@ class NavigationDrawerAdapter implements ListAdapter { public void updateMenu(Context context) throws IOException { menuItems.clear(); - menuItems.add(new MenuSection("START")); - menuItems.add(new MenuUnifiedInbox()); - menuItems.add(new ManageFiltersSection("FILTERS (EDIT)")); + menuItems.add(new MenuSection(context.getString(R.string.navigation_drawer_start))); + menuItems.add(new MenuUnifiedInbox(context)); + menuItems.add(new ManageFiltersSection(context.getString(R.string.navigation_drawer_edit_filters))); for(Filter f : FiltersList.getInstance(context).getFilters()) { menuItems.add(new MenuFilterItem(f)); } - menuItems.add(new ManageFeedsSection("FEEDS (EDIT)")); + menuItems.add(new ManageFeedsSection(context.getString(R.string.navigation_drawer_edit_feeds))); for(Feed f : FeedsList.getInstance(context).getFeeds()) { menuItems.add(new MenuFeedItem(f)); } - for(DataSetObserver observer : observers) { observer.onChanged(); @@ -181,57 +180,11 @@ class NavigationDrawerAdapter implements ListAdapter { } } - class FilterListMenuItem extends MenuItem - { - public FilterListMenuItem() - { - super("Manage filters..."); - } - - @Override - public int getItemViewType() { - return ITEM_VIEW_TYPE_NORMAL; - } - - @Override - public Fragment getFragment() { - return NavigationDrawerManageFiltersFragment.newInstance(); - } - - @Override - public int getPreferredMenuId() { - return R.menu.menu_filters; - } - } - - class FeedListMenuItem extends MenuItem - { - public FeedListMenuItem() - { - super("Manage feeds..."); - } - - @Override - public int getItemViewType() { - return ITEM_VIEW_TYPE_NORMAL; - } - - @Override - public Fragment getFragment() { - return NavigationDrawerManageFeedsFragment.newInstance(); - } - - @Override - public int getPreferredMenuId() { - return R.menu.menu_feeds; - } - } - class MenuUnifiedInbox extends MenuItem { - public MenuUnifiedInbox() + public MenuUnifiedInbox(Context context) { - super("All feeds"); + super(context.getString(R.string.navigation_drawer_all_feeds)); } @Override diff --git a/app/src/main/java/org/rssin/neurons/FeedSorter.java b/app/src/main/java/org/rssin/neurons/FeedSorter.java index 4a8fe7e..8887b99 100755 --- a/app/src/main/java/org/rssin/neurons/FeedSorter.java +++ b/app/src/main/java/org/rssin/neurons/FeedSorter.java @@ -151,17 +151,21 @@ public class FeedSorter implements Storable { * @param feedback The feedback. Like will move these types of items up in the list, * dislike will move them down. */ - public void feedback(FeedItem item, Feedback feedback) { + public TrainingCase feedback(FeedItem item, Feedback feedback) { + TrainingCase trainingCase; Log.d("FeedSorter", "Collected feedback: " + feedback.toString()); PredictionInterface prediction = getPrediction(item); prediction.learn(feedback.toExpectedOutput()); - trainingCases.add(new TrainingCase(prediction.getInputs(), feedback)); + trainingCase = new TrainingCase(prediction.getInputs(), feedback); + trainingCases.add(trainingCase); final int MAX_TRAINING_HISTORY = 250; while (trainingCases.size() > MAX_TRAINING_HISTORY) { trainingCases.remove(0); } + + return trainingCase; } /** diff --git a/app/src/main/java/org/rssin/neurons/TrainingCase.java b/app/src/main/java/org/rssin/neurons/TrainingCase.java index 69f72cb..5c6172c 100755 --- a/app/src/main/java/org/rssin/neurons/TrainingCase.java +++ b/app/src/main/java/org/rssin/neurons/TrainingCase.java @@ -5,21 +5,26 @@ import java.io.Serializable; /** * @author Jos. */ -class TrainingCase implements Serializable { +public class TrainingCase implements Serializable { private static final long serialVersionUID = 0; private final double[] inputs; - private final Feedback feedback; + private Feedback feedback; public TrainingCase(double[] inputs, Feedback feedback) { this.inputs = inputs; this.feedback = feedback; } - public double[] getInputs() { + double[] getInputs() { return inputs; } public Feedback getFeedback() { return feedback; } + + public void setFeedback(Feedback feedback) + { + this.feedback = feedback; + } } diff --git a/app/src/main/java/org/rssin/rssin/SortedFeedItemContainer.java b/app/src/main/java/org/rssin/rssin/SortedFeedItemContainer.java index 2a69bfa..f96382a 100755 --- a/app/src/main/java/org/rssin/rssin/SortedFeedItemContainer.java +++ b/app/src/main/java/org/rssin/rssin/SortedFeedItemContainer.java @@ -6,6 +6,7 @@ import org.rssin.android.FeedSorterProvider; import org.rssin.android.FiltersList; import org.rssin.neurons.FeedSorter; import org.rssin.neurons.Feedback; +import org.rssin.neurons.TrainingCase; import org.rssin.rss.FeedItem; import java.io.Serializable; @@ -16,6 +17,7 @@ import java.io.Serializable; public class SortedFeedItemContainer implements Comparable, Serializable { private FeedItem feeditem; private long score; + private TrainingCase trainingCase; public SortedFeedItemContainer(FeedItem feeditem) { @@ -38,7 +40,12 @@ public class SortedFeedItemContainer implements ComparableUnknown author Published on: + All feeds + START + FILTERS (EDIT) + FEEDS (EDIT) + Feedback saved. -- cgit v1.2.3