From 21d3c3acf53b07b88ef22862eb9926d16f8c5750 Mon Sep 17 00:00:00 2001
From: Size43
Date: Wed, 3 Jun 2015 12:35:08 +0200
Subject: Strings.xml
---
app/src/main/res/values/strings.xml | 10 ++++++++++
1 file changed, 10 insertions(+)
(limited to 'app/src/main/res')
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 77a55f0..2362102 100755
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -46,4 +46,14 @@
feeds
Dislike
Like
+ HomeScreenActivity
+
+ Section 1
+ Section 2
+ Section 3
+
+ Open navigation drawer
+ Close navigation drawer
+
+ Example action
--
cgit v1.2.3
From 22d240bb367d369117605e040d0f17cf1077aafe Mon Sep 17 00:00:00 2001
From: Size43
Date: Thu, 4 Jun 2015 14:54:35 +0200
Subject: Added hamburger menu, working filters and unified inbox. Open old UI
by going to the settings
---
.../java/org/rssin/android/ArticleActivity.java | 3 +
.../java/org/rssin/android/HomeScreenActivity.java | 111 ++------------
.../org/rssin/android/NavigationDrawerAdapter.java | 165 ++++++++++++++++++---
.../android/NavigationDrawerAllFeedsFragment.java | 87 +++++++++++
.../android/NavigationDrawerFeedFragment.java | 107 +++++++++++++
.../android/NavigationDrawerFilterFragment.java | 100 +++++++++++++
.../rssin/android/NavigationDrawerFragment.java | 23 ++-
.../org/rssin/rssin/SortedFeedItemContainer.java | 2 +-
app/src/main/res/layout/fragment_home_screen.xml | 8 +-
app/src/main/res/menu/home_screen.xml | 2 -
10 files changed, 474 insertions(+), 134 deletions(-)
create mode 100755 app/src/main/java/org/rssin/android/NavigationDrawerAllFeedsFragment.java
create mode 100755 app/src/main/java/org/rssin/android/NavigationDrawerFeedFragment.java
create mode 100755 app/src/main/java/org/rssin/android/NavigationDrawerFilterFragment.java
(limited to 'app/src/main/res')
diff --git a/app/src/main/java/org/rssin/android/ArticleActivity.java b/app/src/main/java/org/rssin/android/ArticleActivity.java
index 7d9fa2b..a6bf4d8 100755
--- a/app/src/main/java/org/rssin/android/ArticleActivity.java
+++ b/app/src/main/java/org/rssin/android/ArticleActivity.java
@@ -7,6 +7,7 @@ import android.text.Html;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
+import android.widget.Toast;
import org.rssin.rssin.SortedFeedItemContainer;
import org.rssin.rss.FeedItem;
@@ -71,10 +72,12 @@ public class ArticleActivity extends ActionBarActivity {
//noinspection SimplifiableIfStatement
if (id == R.id.article_action_dislike) {
+ Toast.makeText(this, "Feedback saved.", Toast.LENGTH_SHORT).show();
container.feedback(Dislike);
return true;
} else if(id == R.id.article_action_like)
{
+ Toast.makeText(this, "Feedback saved.", Toast.LENGTH_SHORT).show();
container.feedback(Like);
return true;
}
diff --git a/app/src/main/java/org/rssin/android/HomeScreenActivity.java b/app/src/main/java/org/rssin/android/HomeScreenActivity.java
index ebcf180..082d810 100755
--- a/app/src/main/java/org/rssin/android/HomeScreenActivity.java
+++ b/app/src/main/java/org/rssin/android/HomeScreenActivity.java
@@ -20,6 +20,7 @@ import android.support.v4.widget.DrawerLayout;
import com.android.volley.VolleyError;
import org.rssin.listener.FallibleListener;
+import org.rssin.rssin.Feed;
import org.rssin.rssin.Filter;
import org.rssin.rssin.R;
import org.rssin.rssin.SortedFeedItemContainer;
@@ -49,37 +50,29 @@ public class HomeScreenActivity extends ActionBarActivity
mNavigationDrawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
- mTitle = getTitle();
// Set up the drawer.
mNavigationDrawerFragment.setUp(
R.id.navigation_drawer,
(DrawerLayout) findViewById(R.id.drawer_layout));
- }
- @Override
- public void onNavigationDrawerItemSelected(int position) {
- // update the main content by replacing fragments
+ NavigationDrawerAllFeedsFragment initialFragment = NavigationDrawerAllFeedsFragment.newInstance();
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
- .replace(R.id.container, PlaceholderFragment.newInstance(position + 1))
+ .replace(R.id.container, initialFragment)
.commit();
+ mTitle = "All feeds";
}
- public void onSectionAttached(int number) {
- switch (number) {
- case 1:
- mTitle = getString(R.string.title_section1);
- break;
- case 2:
- mTitle = getString(R.string.title_section2);
- break;
- case 3:
- mTitle = getString(R.string.title_section3);
- break;
- default:
- mTitle = "ERROR";
- break;
+ @Override
+ public void onNavigationDrawerItemSelected(int position) {
+ // update the main content by replacing fragments
+ if(mNavigationDrawerFragment != null) {
+ FragmentManager fragmentManager = getSupportFragmentManager();
+ fragmentManager.beginTransaction()
+ .replace(R.id.container, mNavigationDrawerFragment.getAdapter().getFragment(position))
+ .commit();
+ mTitle = mNavigationDrawerFragment.getAdapter().getText(position);
}
}
@@ -119,82 +112,4 @@ public class HomeScreenActivity extends ActionBarActivity
return super.onOptionsItemSelected(item);
}
- /**
- * A placeholder fragment containing a simple view.
- */
- public static class PlaceholderFragment extends Fragment {
- /**
- * The fragment argument representing the section number for this
- * fragment.
- */
- private static final String ARG_SECTION_NUMBER = "section_number";
-
- /**
- * Returns a new instance of this fragment for the given section
- * number.
- */
- public static PlaceholderFragment newInstance(int sectionNumber) {
- PlaceholderFragment fragment = new PlaceholderFragment();
- Bundle args = new Bundle();
- args.putInt(ARG_SECTION_NUMBER, sectionNumber);
- fragment.setArguments(args);
- return fragment;
- }
-
- public PlaceholderFragment() {
- }
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- final View rootView = inflater.inflate(R.layout.fragment_home_screen, container, false);
- final RecyclerView mRecyclerView = (RecyclerView) rootView.findViewById(R.id.unified_inbox_feeditems);
- final Context context = mRecyclerView.getContext();
- RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(context);
- mRecyclerView.setLayoutManager(mLayoutManager);
-
- try {
- FiltersList filtersList = FiltersList.getInstance(context);
-
- for(Filter filter : filtersList.getFilters()) {
- filter.ensureFeedSorter(DefaultStorageProvider.getInstance(context));
- filter.ensureFeeds(DefaultStorageProvider.getInstance(context));
- }
-
- /**
- * @todo Load feeds in separate thread so that the UI is immediately available
- *
- * @todo Now, feed items are only returned after *all* feeds have been loaded. With many
- * filters that may take a while, so it would be preferable to return intermediate
- * results. We could do this for example with {@link org.rssin.listener.RealtimeListener}
- */
- UnifiedFilterLoader loaderAndSorter = new UnifiedFilterLoader(filtersList.getFilters());
- loaderAndSorter.getFilteredFeedItems(new VolleyFetcher(context), new FallibleListener, VolleyError>() {
- @Override
- public void onReceive(List data) {
- FeedItemAdapter feedItemAdapter = new FeedItemAdapter(data);
- mRecyclerView.setAdapter(feedItemAdapter);
- mRecyclerView.setHasFixedSize(true);
- }
-
- @Override
- public void onError(VolleyError error) {
- Frontend.error(context, R.string.error_net_load);
- }
- });
- } catch (IOException e) {
- Frontend.error(context, R.string.error_load_filters, e);
- }
-
- return rootView;
- }
-
- @Override
- public void onAttach(Activity activity) {
- super.onAttach(activity);
- ((HomeScreenActivity) activity).onSectionAttached(
- getArguments().getInt(ARG_SECTION_NUMBER));
- }
- }
-
}
diff --git a/app/src/main/java/org/rssin/android/NavigationDrawerAdapter.java b/app/src/main/java/org/rssin/android/NavigationDrawerAdapter.java
index d2e58ce..f7a1265 100755
--- a/app/src/main/java/org/rssin/android/NavigationDrawerAdapter.java
+++ b/app/src/main/java/org/rssin/android/NavigationDrawerAdapter.java
@@ -1,34 +1,48 @@
package org.rssin.android;
+import android.content.Context;
import android.database.DataSetObserver;
+import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListAdapter;
import android.widget.TextView;
+import org.rssin.rssin.Feed;
+import org.rssin.rssin.Filter;
import org.rssin.rssin.R;
+import java.io.IOException;
+import java.util.List;
+import java.util.ArrayList;
+
/**
* @author Jos.
*/
class NavigationDrawerAdapter implements ListAdapter {
- private static final int ITEM_VIEW_TYPE_VIDEO = 0;
+ private static final int ITEM_VIEW_TYPE_NORMAL = 0;
private static final int ITEM_VIEW_TYPE_SEPARATOR = 1;
private static final int ITEM_VIEW_TYPE_COUNT = 2;
- private final Object[] menuItems = new Object[] {
- "MAIN",
- new MenuItemHolder("Text 1"),
- "FILTERS",
- new MenuItemHolder("Text 1"),
- "FEEDS",
- new MenuItemHolder("Lorem ipsum"),
- new MenuItemHolder("Dolor sit amet"),
- new MenuItemHolder("Text 1"),
- new MenuItemHolder("Text 1"),
- new MenuItemHolder("Text Text Text"),
- new MenuItemHolder("Even more text"),
- };
+ private final List