From 1ebca3204a198352203c96a3a3450bc1be15b90b Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 10 Jun 2015 18:42:51 +0200 Subject: javadoc --- .../java/org/rssin/android/ArticleActivity.java | 11 +- .../java/org/rssin/android/FeedItemAdapter.java | 17 ++- .../org/rssin/android/FeedItemsListFragment.java | 15 ++- .../main/java/org/rssin/android/FeedsActivity.java | 3 +- app/src/main/java/org/rssin/android/FeedsList.java | 31 ++--- .../org/rssin/android/FilterSettingsActivity.java | 9 +- .../main/java/org/rssin/android/FirstTimeBoot.java | 150 --------------------- .../org/rssin/android/FirstTimeBootActivity.java | 148 ++++++++++++++++++++ .../java/org/rssin/android/HomeScreenActivity.java | 38 +++--- app/src/main/java/org/rssin/rssin/Feed.java | 1 + 10 files changed, 219 insertions(+), 204 deletions(-) delete mode 100644 app/src/main/java/org/rssin/android/FirstTimeBoot.java create mode 100644 app/src/main/java/org/rssin/android/FirstTimeBootActivity.java (limited to 'app/src/main/java/org') diff --git a/app/src/main/java/org/rssin/android/ArticleActivity.java b/app/src/main/java/org/rssin/android/ArticleActivity.java index 82190db..6c80fb6 100644 --- a/app/src/main/java/org/rssin/android/ArticleActivity.java +++ b/app/src/main/java/org/rssin/android/ArticleActivity.java @@ -35,6 +35,9 @@ import org.rssin.rssin.R; import static org.rssin.neurons.Feedback.Dislike; import static org.rssin.neurons.Feedback.Like; +/** + * An activity for viewing one article + */ public class ArticleActivity extends ActionBarActivity { private SortedFeedItemContainer container; @@ -78,19 +81,14 @@ public class ArticleActivity 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.article, 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.article_action_dislike) { Toast.makeText(this, getString(R.string.article_feedback_saved), Toast.LENGTH_SHORT).show(); container.feedback(this, Dislike); @@ -109,6 +107,9 @@ public class ArticleActivity extends ActionBarActivity { return super.onOptionsItemSelected(item); } + /** + * Open the Android share dialogue + */ private void shareArticle() { FeedItem item = container.getFeeditem(); diff --git a/app/src/main/java/org/rssin/android/FeedItemAdapter.java b/app/src/main/java/org/rssin/android/FeedItemAdapter.java index a67b267..2d2e582 100644 --- a/app/src/main/java/org/rssin/android/FeedItemAdapter.java +++ b/app/src/main/java/org/rssin/android/FeedItemAdapter.java @@ -18,10 +18,6 @@ */ package org.rssin.android; -/** - * @author Jos. - */ - import android.content.Intent; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; @@ -37,12 +33,22 @@ import org.rssin.summaries.SummaryAPIInterface; import java.util.List; +/** + * A FeedItemAdapter is able to put FeedItems in a RecyclerView + * @author Jos. + */ class FeedItemAdapter extends RecyclerView.Adapter { List feedItems; + /** + * To summarise article texts + */ SummaryAPIInterface sapInterface; - + /** + * Create a new instance + * @param objects the objects to put in the RecyclerView + */ public FeedItemAdapter(List objects) { feedItems = objects; @@ -75,7 +81,6 @@ class FeedItemAdapter extends RecyclerView.Adapter feeds) { FeedItemsListFragment fragment = new FeedItemsListFragment(); fragment.setFeedsList(feeds); return fragment; } + /** + * Create a new instance + * @param feeds + */ public void setFeedsList(List feeds) { this.feeds = feeds; } @@ -77,6 +87,9 @@ public class FeedItemsListFragment extends Fragment { return rootView; } + /** + * Refresh the RecyclerView + */ private void refresh() { loadingView.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/org/rssin/android/FeedsActivity.java b/app/src/main/java/org/rssin/android/FeedsActivity.java index b4ed587..f90d510 100644 --- a/app/src/main/java/org/rssin/android/FeedsActivity.java +++ b/app/src/main/java/org/rssin/android/FeedsActivity.java @@ -46,8 +46,7 @@ import java.io.IOException; import java.util.List; /** - * List of feeds - * + * List of feeds to add and edit * @author Camil Staps */ public class FeedsActivity extends ActionBarActivity { diff --git a/app/src/main/java/org/rssin/android/FeedsList.java b/app/src/main/java/org/rssin/android/FeedsList.java index 41fc0f0..d855ae5 100644 --- a/app/src/main/java/org/rssin/android/FeedsList.java +++ b/app/src/main/java/org/rssin/android/FeedsList.java @@ -72,12 +72,25 @@ class FeedsList { } } + /** + * This is a singleton, so you need to get its instance. Only once the Context is needed, after + * the object is instantiated it is ignored + * @param context + * @return + * @throws IOException + */ public static FeedsList getInstance(Context context) throws IOException { if (instance == null) instance = new FeedsList(context); return instance; } + /** + * This is a singleton, so you need to get its instance. + * Be sure to call {@link #getInstance(Context)} at least once, or the object cannot be + * instantiated + * @return + */ public static FeedsList getInstance() { return instance; } @@ -90,22 +103,4 @@ class FeedsList { Collections.sort(feeds); } - /** - * Save all feeds - * @throws Exception if serializing or saving failed - */ - public synchronized void save() throws Exception { - Exception e = null; - for (Feed feed : feeds) { - try { - feed.store(storageProvider); - } catch (Exception ex) { - e = ex; - } - } - if (e != null) { - throw e; - } - } - } diff --git a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java index cfc3095..3c72772 100644 --- a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java +++ b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java @@ -49,6 +49,10 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.List; +/** + * The settings of a filter (i.e., the list of feeds) + * @author Camil Staps + */ public class FilterSettingsActivity extends ActionBarActivity { private FiltersList filtersList; @@ -94,6 +98,7 @@ public class FilterSettingsActivity extends ActionBarActivity { final ListView feedsListView = (ListView) findViewById(R.id.filter_settings_feeds_list); feedsListView.setAdapter(feedAdapter); + // Select/Deselect on click feedsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { @@ -116,9 +121,7 @@ public class FilterSettingsActivity extends ActionBarActivity { final Context context = feedsListView.getContext(); - /** - * @todo Allow users to enter links without scheme (http:// ...) - */ + // Add handler findViewById(R.id.filter_settings_add_feed_button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/org/rssin/android/FirstTimeBoot.java b/app/src/main/java/org/rssin/android/FirstTimeBoot.java deleted file mode 100644 index 4fc6aa7..0000000 --- a/app/src/main/java/org/rssin/android/FirstTimeBoot.java +++ /dev/null @@ -1,150 +0,0 @@ -/** - * RSSin - Clever RSS reader for Android - * Copyright (C) 2015 Randy Wanga, Jos Craaijo, Joep Bernards, Camil Staps - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -package org.rssin.android; - -/** - * Created by Randy on 4-6-2015. - */ - -import android.app.Activity; -import android.content.Context; -import android.os.Bundle; -import android.support.v4.view.PagerAdapter; -import android.support.v4.view.ViewPager; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import org.rssin.rssin.R; - -public class FirstTimeBoot extends Activity { - - private static final int MAX_VIEWS = 5; - - ViewPager mViewPager; - TextView button; - - @Override - protected void onCreate(Bundle savedInstanceState) { - - super.onCreate(savedInstanceState); - setContentView(R.layout.walkthrough_activity); - button = (TextView) findViewById(R.id.screen_navigation_button); - button.setText(getString(R.string.walkthrough_text_button)); - button.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - mViewPager = (ViewPager) findViewById(R.id.view_pager); - mViewPager.setAdapter(new WalkthroughPagerAdapter()); - mViewPager.setOnPageChangeListener(new WalkthroughPageChangeListener()); - } - - - - class WalkthroughPagerAdapter extends PagerAdapter { - - @Override - public int getCount() { - return MAX_VIEWS; - } - - @Override - public boolean isViewFromObject(View view, Object object) { - return view == (View) object; - } - - @Override - public Object instantiateItem(View container, int position) { - LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); - View imageViewContainer = inflater.inflate(R.layout.walkthrough_single_view, null); - ImageView imageView = (ImageView) imageViewContainer.findViewById(R.id.image_view); - TextView textView = (TextView) imageViewContainer.findViewById(R.id.text_view); - - switch (position) { - case 0: - imageView.setImageResource(R.drawable.image1); - textView.setText(getString(R.string.walkthrough_text_1)); - break; - - case 1: - imageView.setImageResource(R.drawable.image2); - textView.setText(getString(R.string.walkthrough_text_2)); - break; - - case 2: - imageView.setImageResource(R.drawable.image3); - textView.setText(getString(R.string.walkthrough_text_3)); - break; - - case 3: - imageView.setImageResource(R.drawable.image4); - textView.setText(getString(R.string.walkthrough_text_4)); - break; - - case 4: - imageView.setImageResource(R.drawable.image5); - textView.setText(getString(R.string.walkthrough_text_5)); - break; - } - - ((ViewPager) container).addView(imageViewContainer, 0); - return imageViewContainer; - } - - @Override - public void destroyItem(ViewGroup container, int position, Object object) { - ((ViewPager) container).removeView((View) object); - } - } - - - class WalkthroughPageChangeListener implements ViewPager.OnPageChangeListener { - - @Override - public void onPageScrollStateChanged(int arg0) { - - } - - @Override - public void onPageScrolled(int arg0, float arg1, int arg2) { - - } - - @Override - public void onPageSelected(int position) { - // Here is where you should show change the view of page indicator - switch (position) { - - case MAX_VIEWS - 1: - break; - - default: - - } - - } - - } -} - diff --git a/app/src/main/java/org/rssin/android/FirstTimeBootActivity.java b/app/src/main/java/org/rssin/android/FirstTimeBootActivity.java new file mode 100644 index 0000000..8f53a28 --- /dev/null +++ b/app/src/main/java/org/rssin/android/FirstTimeBootActivity.java @@ -0,0 +1,148 @@ +/** + * RSSin - Clever RSS reader for Android + * Copyright (C) 2015 Randy Wanga, Jos Craaijo, Joep Bernards, Camil Staps + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.rssin.android; + +/** + * Created by Randy on 4-6-2015. + */ + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.support.v4.view.PagerAdapter; +import android.support.v4.view.ViewPager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import org.rssin.rssin.R; + +public class FirstTimeBootActivity extends Activity { + + private static final int MAX_VIEWS = 5; + + ViewPager mViewPager; + TextView button; + + @Override + protected void onCreate(Bundle savedInstanceState) { + + super.onCreate(savedInstanceState); + setContentView(R.layout.walkthrough_activity); + button = (TextView) findViewById(R.id.screen_navigation_button); + button.setText(getString(R.string.walkthrough_text_button)); + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mViewPager = (ViewPager) findViewById(R.id.view_pager); + mViewPager.setAdapter(new WalkthroughPagerAdapter()); + mViewPager.setOnPageChangeListener(new WalkthroughPageChangeListener()); + } + + class WalkthroughPagerAdapter extends PagerAdapter { + + @Override + public int getCount() { + return MAX_VIEWS; + } + + @Override + public boolean isViewFromObject(View view, Object object) { + return view == (View) object; + } + + @Override + public Object instantiateItem(View container, int position) { + LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); + View imageViewContainer = inflater.inflate(R.layout.walkthrough_single_view, null); + ImageView imageView = (ImageView) imageViewContainer.findViewById(R.id.image_view); + TextView textView = (TextView) imageViewContainer.findViewById(R.id.text_view); + + switch (position) { + case 0: + imageView.setImageResource(R.drawable.image1); + textView.setText(getString(R.string.walkthrough_text_1)); + break; + + case 1: + imageView.setImageResource(R.drawable.image2); + textView.setText(getString(R.string.walkthrough_text_2)); + break; + + case 2: + imageView.setImageResource(R.drawable.image3); + textView.setText(getString(R.string.walkthrough_text_3)); + break; + + case 3: + imageView.setImageResource(R.drawable.image4); + textView.setText(getString(R.string.walkthrough_text_4)); + break; + + case 4: + imageView.setImageResource(R.drawable.image5); + textView.setText(getString(R.string.walkthrough_text_5)); + break; + } + + ((ViewPager) container).addView(imageViewContainer, 0); + return imageViewContainer; + } + + @Override + public void destroyItem(ViewGroup container, int position, Object object) { + ((ViewPager) container).removeView((View) object); + } + } + + + class WalkthroughPageChangeListener implements ViewPager.OnPageChangeListener { + + @Override + public void onPageScrollStateChanged(int arg0) { + + } + + @Override + public void onPageScrolled(int arg0, float arg1, int arg2) { + + } + + @Override + public void onPageSelected(int position) { + // Here is where you should show change the view of page indicator + switch (position) { + + case MAX_VIEWS - 1: + break; + + default: + + } + + } + + } +} + diff --git a/app/src/main/java/org/rssin/android/HomeScreenActivity.java b/app/src/main/java/org/rssin/android/HomeScreenActivity.java index 70bd611..a1ed705 100644 --- a/app/src/main/java/org/rssin/android/HomeScreenActivity.java +++ b/app/src/main/java/org/rssin/android/HomeScreenActivity.java @@ -1,21 +1,21 @@ -/** - * RSSin - Clever RSS reader for Android - * Copyright (C) 2015 Randy Wanga, Jos Craaijo, Joep Bernards, Camil Staps - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ +/** + * RSSin - Clever RSS reader for Android + * Copyright (C) 2015 Randy Wanga, Jos Craaijo, Joep Bernards, Camil Staps + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ package org.rssin.android; import android.content.Intent; @@ -47,7 +47,7 @@ public class HomeScreenActivity extends ActionBarActivity implements NavigationD super.onCreate(savedInstanceState); setContentView(R.layout.activity_home_screen); - Intent intent = new Intent(this, FirstTimeBoot.class); + Intent intent = new Intent(this, FirstTimeBootActivity.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 2679633..24c8609 100644 --- a/app/src/main/java/org/rssin/rssin/Feed.java +++ b/app/src/main/java/org/rssin/rssin/Feed.java @@ -38,6 +38,7 @@ import java.net.URL; /** * Feed holder * @author Camil Staps + * @todo Allow users to enter links without scheme (http:// ...) */ public class Feed implements Storable, Comparable, Jsonable { private static final long serialVersionUID = 0; -- cgit v1.2.3