aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/org
diff options
context:
space:
mode:
authorCamil Staps2015-05-20 13:04:19 +0200
committerCamil Staps2015-05-20 13:04:19 +0200
commite0e84153b8de8a73773bec1d808c537db963c1a7 (patch)
tree3d38ad04ed67490292a0f09cd2dee545a7d0e9a7 /app/src/main/java/org
parentMerge branch 'app' (diff)
JavaDoc
Diffstat (limited to 'app/src/main/java/org')
-rw-r--r--app/src/main/java/org/rssin/android/FilterSettingsActivity.java23
-rw-r--r--app/src/main/java/org/rssin/android/FiltersActivity.java58
-rw-r--r--app/src/main/java/org/rssin/android/FiltersList.java14
-rw-r--r--app/src/main/java/org/rssin/android/SettingsActivity.java15
-rw-r--r--app/src/main/java/org/rssin/android/UnifiedInboxActivity.java10
-rw-r--r--app/src/main/java/org/rssin/rssin/Feed.java7
-rwxr-xr-xapp/src/main/java/org/rssin/rssin/Filter.java11
-rw-r--r--app/src/main/java/org/rssin/rssin/Keyword.java8
8 files changed, 102 insertions, 44 deletions
diff --git a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
index a3ae710..ae31943 100644
--- a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
+++ b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
@@ -54,13 +54,17 @@ public class FilterSettingsActivity extends ActionBarActivity {
int id = item.getItemId();
if (id == R.id.action_feeds) {
- openKeywordsDialog(null);
+ openFeedsDialog();
+ return true;
}
return super.onOptionsItemSelected(item);
}
- public void openKeywordsDialog(View v) {
+ /**
+ * Open dialog to edit feeds
+ */
+ public void openFeedsDialog() {
FeedsDialogFragment f = new FeedsDialogFragment();
Bundle bundle = new Bundle();
bundle.putSerializable("filter", filter);
@@ -68,6 +72,9 @@ public class FilterSettingsActivity extends ActionBarActivity {
f.show(getFragmentManager(), "");
}
+ /**
+ * Custom Dialog to display & edit feeds
+ */
public static class FeedsDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
@@ -91,6 +98,9 @@ public class FilterSettingsActivity extends ActionBarActivity {
return builder.create();
}
+ /**
+ * Custom ArrayAdapter to display feeds
+ */
private static class FeedAdapter extends ArrayAdapter<Feed> {
Context context;
@@ -129,6 +139,9 @@ public class FilterSettingsActivity extends ActionBarActivity {
return row;
}
+ /**
+ * TextViews holder
+ */
private static class FeedHolder {
TextView title;
TextView url;
@@ -136,6 +149,9 @@ public class FilterSettingsActivity extends ActionBarActivity {
}
}
+ /**
+ * Custom ArrayAdapter to display Keywords
+ */
private static class KeywordAdapter extends ArrayAdapter<Keyword> {
Context context;
int layoutResourceId;
@@ -171,6 +187,9 @@ public class FilterSettingsActivity extends ActionBarActivity {
return row;
}
+ /**
+ * TextViews holder
+ */
private static class KeywordHolder {
TextView title;
}
diff --git a/app/src/main/java/org/rssin/android/FiltersActivity.java b/app/src/main/java/org/rssin/android/FiltersActivity.java
index dd32fab..07f20c2 100644
--- a/app/src/main/java/org/rssin/android/FiltersActivity.java
+++ b/app/src/main/java/org/rssin/android/FiltersActivity.java
@@ -24,6 +24,14 @@ import java.io.IOException;
import java.net.MalformedURLException;
import java.util.List;
+/**
+ * List of filters
+ *
+ * Short tap opens the list with current articles that the filter returns
+ * Long tap opens filter settings
+ *
+ * @author Camil Staps
+ */
public class FiltersActivity extends ActionBarActivity {
private FiltersList filters;
@@ -44,28 +52,10 @@ public class FiltersActivity extends ActionBarActivity {
} catch (IOException ex) {
Toast.makeText(this, "Couldn't load filters.", Toast.LENGTH_SHORT).show();
Log.e("FILTER", "IOException", ex);
-
filters = new FiltersList();
}
- filters.getFilters().clear();
-
- Filter filter = new Filter("Filter test");
- filter.getKeywords().add(new Keyword("Test"));
- try {
- filter.getFeeds().add(new Feed("http://nu.nl/algemeen.rss", "Feed test 1"));
- } catch (MalformedURLException e) {
- Log.w("FA-URL", e.getMessage(), e);
- }
- try {
- filter.getFeeds().add(new Feed("http://nu.nl/sport.rss", "Feed test 2"));
- } catch (MalformedURLException e) {
- Log.w("FA-URL", e.getMessage(), e);
- }
- filters.getFilters().add(filter);
- try {
- filters.save(this);
- } catch (IOException e) {}
+ putDummyFilter();
final FilterAdapter adapter = new FilterAdapter(this, R.layout.item_filter, filters.getFilters());
filtersView.setAdapter(adapter);
@@ -77,6 +67,13 @@ public class FiltersActivity extends ActionBarActivity {
Log.e("FILTER", "IOException", ex);
}
+ setupListeners();
+ }
+
+ /**
+ * Setup listeners for the list items
+ */
+ private void setupListeners() {
onFilterClickListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
@@ -99,6 +96,9 @@ public class FiltersActivity extends ActionBarActivity {
filtersView.setOnItemLongClickListener(onFilterLongClickListener);
}
+ /**
+ * Custom ArrayAdapter to display filters with our own menu item
+ */
private static class FilterAdapter extends ArrayAdapter<Filter> {
Context context;
@@ -137,10 +137,30 @@ public class FiltersActivity extends ActionBarActivity {
return row;
}
+ /**
+ * TextViews holder
+ */
private static class FilterHolder {
TextView title;
TextView keywords;
}
}
+ /**
+ * Dummy filter for testing
+ */
+ private void putDummyFilter() {
+ filters.getFilters().clear();
+
+ Filter filter = new Filter("Filter test");
+ filter.getKeywords().add(new Keyword("Test"));
+ try {
+ filter.getFeeds().add(new Feed("http://nu.nl/algemeen.rss", "Feed test 1"));
+ } catch (MalformedURLException e) {}
+ try {
+ filter.getFeeds().add(new Feed("http://nu.nl/sport.rss", "Feed test 2"));
+ } catch (MalformedURLException e) {}
+ filters.getFilters().add(filter);
+ }
+
}
diff --git a/app/src/main/java/org/rssin/android/FiltersList.java b/app/src/main/java/org/rssin/android/FiltersList.java
index 99810a0..cf85b47 100644
--- a/app/src/main/java/org/rssin/android/FiltersList.java
+++ b/app/src/main/java/org/rssin/android/FiltersList.java
@@ -6,7 +6,6 @@ import android.util.Base64;
import org.rssin.rssin.Filter;
-import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -16,13 +15,19 @@ import java.util.ArrayList;
import java.util.List;
/**
- * Created by camilstaps on 19-5-15.
+ * A list of filters that can be saved in sharedpreferences
+ * @author Camil Staps
*/
public class FiltersList {
private static final String PREF_KEY = "filters_list";
private final List<Filter> filters;
+ /**
+ * Fetch from sharedPreferences
+ * @param context
+ * @throws IOException if data is corrupted, and deserializing fails
+ */
public FiltersList(Context context) throws IOException {
String filters = PreferenceManager.getDefaultSharedPreferences(context).getString(PREF_KEY, null);
if (filters == null) {
@@ -51,6 +56,11 @@ public class FiltersList {
return filters;
}
+ /**
+ * Save in sharedPreferences
+ * @param context
+ * @throws IOException if serializing failed
+ */
public void save(Context context) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
diff --git a/app/src/main/java/org/rssin/android/SettingsActivity.java b/app/src/main/java/org/rssin/android/SettingsActivity.java
index 99ccdfa..6ef38e2 100644
--- a/app/src/main/java/org/rssin/android/SettingsActivity.java
+++ b/app/src/main/java/org/rssin/android/SettingsActivity.java
@@ -3,9 +3,6 @@ package org.rssin.android;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.Configuration;
-import android.media.Ringtone;
-import android.media.RingtoneManager;
-import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.preference.ListPreference;
@@ -14,13 +11,14 @@ import android.preference.PreferenceActivity;
import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
-import android.preference.RingtonePreference;
-import android.text.TextUtils;
import org.rssin.rssin.R;
-import java.util.List;
-
+/**
+ * Global app settings
+ *
+ * @author Camil Staps
+ */
public class SettingsActivity extends PreferenceActivity {
/**
* Determines whether to always show the simplified settings UI, where
@@ -63,9 +61,6 @@ public class SettingsActivity extends PreferenceActivity {
bindPreferenceSummaryToValue(findPreference("sync_frequency"));
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean onIsMultiPane() {
return isXLargeTablet(this) && !isSimplePreferences(this);
diff --git a/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java b/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java
index 6335406..6283dae 100644
--- a/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java
+++ b/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java
@@ -8,7 +8,10 @@ import android.view.MenuItem;
import org.rssin.rssin.R;
-
+/**
+ * Unified view of all filters
+ * @author Camil Staps
+ */
public class UnifiedInboxActivity extends ActionBarActivity {
@Override
@@ -19,19 +22,14 @@ public class UnifiedInboxActivity extends ActionBarActivity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_unified_inbox, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
- //noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
diff --git a/app/src/main/java/org/rssin/rssin/Feed.java b/app/src/main/java/org/rssin/rssin/Feed.java
index d2677b8..0abbd67 100644
--- a/app/src/main/java/org/rssin/rssin/Feed.java
+++ b/app/src/main/java/org/rssin/rssin/Feed.java
@@ -5,11 +5,16 @@ import java.net.MalformedURLException;
import java.net.URL;
/**
- * Created by camilstaps on 20-5-15.
+ * Feed holder
+ * @author Camil Staps
*/
public class Feed implements Serializable {
private static int serialVersionUID = 0;
+ /**
+ * This feed does not have any information about the current status of the feed.
+ * It is merely a reference to an external feed, and a name (title)
+ */
private String title;
private URL url;
diff --git a/app/src/main/java/org/rssin/rssin/Filter.java b/app/src/main/java/org/rssin/rssin/Filter.java
index e0e05d0..f411ca3 100755
--- a/app/src/main/java/org/rssin/rssin/Filter.java
+++ b/app/src/main/java/org/rssin/rssin/Filter.java
@@ -3,19 +3,22 @@ package org.rssin.rssin;
import android.text.TextUtils;
import org.rssin.neurons.FeedSorter;
-import org.rssin.rss.FeedItem;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
- * Created by camilstaps on 19-5-15.
+ * Filter holder
+ * @author Camil Staps
*/
public class Filter implements Serializable {
private static final long serialVersionUID = 0;
+ /**
+ * A filter is a list of Feeds with a list of Keywords. A title can be added as well.
+ */
private final List<Feed> feeds;
private final List<Keyword> keywords;
private String title = "";
@@ -52,6 +55,10 @@ public class Filter implements Serializable {
return keywords;
}
+ /**
+ * The Keyword's toString() method, joined with ", "
+ * @return
+ */
public String getKeywordsAsString() {
Keyword[] keywords = new Keyword[this.keywords.size()];
int i = 0;
diff --git a/app/src/main/java/org/rssin/rssin/Keyword.java b/app/src/main/java/org/rssin/rssin/Keyword.java
index 8555e1a..2ea1012 100644
--- a/app/src/main/java/org/rssin/rssin/Keyword.java
+++ b/app/src/main/java/org/rssin/rssin/Keyword.java
@@ -3,12 +3,16 @@ package org.rssin.rssin;
import java.io.Serializable;
/**
- * Created by camilstaps on 19-5-15.
+ * Keyword holder
+ * @author Camil Staps
*/
public class Keyword implements Serializable {
- private static final long serialVersionUID = 1;
+ private static final long serialVersionUID = 0;
+ /**
+ * For now, Keywords only have a single String keyword. Later, more options may be added
+ */
private final String keyword;
public Keyword(String keyword) {