summaryrefslogtreecommitdiff
path: root/org.fox.ttrss/src/main
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2017-06-03 10:21:41 +0300
committerAndrew Dolgov <[email protected]>2017-06-03 10:21:41 +0300
commit76140cff3a95407f47ca46087fca55f3943d9e06 (patch)
tree2d546a267f0635b73a6f912123fedd8f82aa3b4f /org.fox.ttrss/src/main
parentf26b5dda51c453484bd6b867bb9411180af1f5d3 (diff)
do not reuse headline footer views
Diffstat (limited to 'org.fox.ttrss/src/main')
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java53
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeaderViewRecyclerAdapter.java4
2 files changed, 42 insertions, 15 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
index 60054b6e..2f30272b 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
@@ -118,9 +118,9 @@ public class HeadlinesFragment extends Fragment {
private RecyclerView m_list;
private LinearLayoutManager m_layoutManager;
- private View m_listLoadingView;
+ /*private View m_listLoadingView;
private View m_topChangedView;
- private View m_amrFooterView;
+ private View m_amrFooterView;*/
private MediaPlayer m_mediaPlayer;
private TextureView m_activeTexture;
@@ -285,6 +285,25 @@ public class HeadlinesFragment extends Fragment {
setRetainInstance(true);
}
+ public View createListFooter(int layoutId) {
+ if (isAdded() || m_activity != null) {
+ View view = getActivity().getLayoutInflater().inflate(layoutId, m_list, false);
+
+ if (layoutId == R.layout.headlines_footer) {
+ WindowManager wm = (WindowManager) m_activity.getSystemService(Context.WINDOW_SERVICE);
+ Display display = wm.getDefaultDisplay();
+ int screenHeight = display.getHeight();
+
+ view.setLayoutParams(new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, screenHeight));
+ }
+
+ return view;
+
+ } else {
+ return null;
+ }
+ }
+
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@@ -429,18 +448,18 @@ public class HeadlinesFragment extends Fragment {
fab.setVisibility(View.GONE);
}
- m_listLoadingView = inflater.inflate(R.layout.headlines_row_loadmore, m_list, false);
- m_topChangedView = inflater.inflate(R.layout.headlines_row_top_changed, m_list, false);
+ /*m_listLoadingView = inflater.inflate(R.layout.headlines_row_loadmore, m_list, false);
+ m_topChangedView = inflater.inflate(R.layout.headlines_row_top_changed, m_list, false);*/
if (m_prefs.getBoolean("headlines_mark_read_scroll", false)) {
- WindowManager wm = (WindowManager) m_activity.getSystemService(Context.WINDOW_SERVICE);
+ /*WindowManager wm = (WindowManager) m_activity.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
- int screenHeight = display.getHeight();
+ int screenHeight = display.getHeight();*/
- m_amrFooterView = inflater.inflate(R.layout.headlines_footer, container, false);
+ /*m_amrFooterView = inflater.inflate(R.layout.headlines_footer, container, false);
m_amrFooterView.setLayoutParams(new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, screenHeight));
- m_adapter.addFooterView(m_amrFooterView);
+ m_adapter.addFooterView(m_amrFooterView);*/
}
if (m_activity.isSmallScreen()) {
@@ -566,9 +585,11 @@ public class HeadlinesFragment extends Fragment {
@SuppressWarnings({ "serial" })
public void refresh(final boolean append, boolean userInitiated) {
- m_adapter.removeFooterView(m_listLoadingView);
+ /*m_adapter.removeFooterView(m_listLoadingView);
m_adapter.removeFooterView(m_topChangedView);
- m_adapter.removeFooterView(m_amrFooterView);
+ m_adapter.removeFooterView(m_amrFooterView);*/
+
+ m_adapter.removeAllFooterViews();
if (!append) m_lazyLoadDisabled = false;
@@ -598,9 +619,10 @@ public class HeadlinesFragment extends Fragment {
if (m_swipeLayout != null) m_swipeLayout.setRefreshing(false);
- m_adapter.removeFooterView(m_listLoadingView);
+ /*m_adapter.removeFooterView(m_listLoadingView);
m_adapter.removeFooterView(m_topChangedView);
- m_adapter.removeFooterView(m_amrFooterView);
+ m_adapter.removeFooterView(m_amrFooterView);*/
+ m_adapter.removeAllFooterViews();
if (result != null) {
m_refreshInProgress = false;
@@ -612,7 +634,7 @@ public class HeadlinesFragment extends Fragment {
if (m_firstIdChanged) {
m_lazyLoadDisabled = true;
- m_adapter.addFooterView(m_topChangedView);
+ m_adapter.addFooterView(createListFooter(R.layout.headlines_row_top_changed));
}
if (m_amountLoaded < HEADLINES_REQUEST_SIZE) {
@@ -637,7 +659,8 @@ public class HeadlinesFragment extends Fragment {
}
}
- if (m_amrFooterView != null) m_adapter.addFooterView(m_amrFooterView);
+ if (m_prefs.getBoolean("headlines_mark_read_scroll", false))
+ m_adapter.addFooterView(createListFooter(R.layout.headlines_footer));
}
};
@@ -668,7 +691,7 @@ public class HeadlinesFragment extends Fragment {
}
if (skip > 0) {
- m_adapter.addFooterView(m_listLoadingView);
+ m_adapter.addFooterView(createListFooter(R.layout.headlines_row_loadmore));
}
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeaderViewRecyclerAdapter.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeaderViewRecyclerAdapter.java
index 4de15531..c8337f87 100644
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeaderViewRecyclerAdapter.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeaderViewRecyclerAdapter.java
@@ -129,6 +129,10 @@ public class HeaderViewRecyclerAdapter extends RecyclerView.Adapter<RecyclerView
mFooterViews.remove(view);
}
+ public void removeAllFooterViews() {
+ mFooterViews.clear();
+ }
+
@Override
public int getItemCount() {
return getHeaderCount() + getFooterCount() + getWrappedItemCount();