From 236080a67e648ce99b23000ca9e86a333cbab76a Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 10 Jun 2015 12:16:51 +0300 Subject: browse directories by replacing list fragments instead of activities (2) --- .../java/org/fox/ttcomics2/ComicListFragment.java | 18 ++++++++++-------- .../src/main/java/org/fox/ttcomics2/MainActivity.java | 19 +++++++++++++++---- .../src/main/res/layout/fragment_comics_list.xml | 4 ++-- 3 files changed, 27 insertions(+), 14 deletions(-) (limited to 'org.fox.ttcomics') diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java index 212656c..38a9371 100644 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java @@ -54,7 +54,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener { private final static int MODE_UNFINISHED = 2; private final static int MODE_READ = 3; - private CommonActivity m_activity; + private MainActivity m_activity; private SharedPreferences m_prefs; private ComicsListAdapter m_adapter; private int m_mode = 0; @@ -298,7 +298,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener { } }); - grid.setEmptyView(view.findViewById(R.id.no_comics)); + //grid.setEmptyView(view.findViewById(R.id.no_comics)); grid.setOnItemClickListener(this); registerForContextMenu(grid); @@ -385,7 +385,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener { public void onAttach(Activity activity) { super.onAttach(activity); - m_activity = (CommonActivity)activity; + m_activity = (MainActivity)activity; m_prefs = PreferenceManager.getDefaultSharedPreferences(activity.getApplicationContext()); } @@ -510,16 +510,18 @@ public class ComicListFragment extends Fragment implements OnItemClickListener { @Override public void onResume() { super.onResume(); - - m_adapter.notifyDataSetChanged(); - + + if (m_activity.getMode() != m_mode) { + m_mode = m_activity.getMode(); + } + String comicsDir = m_prefs.getString("comics_directory", ""); if (m_activity.getCachedItemCount(m_baseDirectory.length() > 0 ? m_baseDirectory : comicsDir) == 0) { rescan(false); } else { - m_adapter.notifyDataSetChanged(); - } + updateWithoutRescan(); + } } public void onItemClick(AdapterView av, View view, int position, long id) { diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java index bc0df31..5566a2f 100644 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java @@ -134,7 +134,11 @@ public class MainActivity extends CommonActivity implements MaterialTabListener out.putInt("selectedTab", m_selectedTab); //out.putString("baseDir", m_baseDirectory); } - + + public int getMode() { + return m_selectedTab; + } + public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: @@ -224,12 +228,19 @@ public class MainActivity extends CommonActivity implements MaterialTabListener if (m_selectedTab != tab.getPosition() && m_selectedTab != -1) { - ComicListFragment frag = new ComicListFragment(); - frag.setMode(tab.getPosition()); + //ComicListFragment frag = new ComicListFragment(); + //frag.setMode(tab.getPosition()); //frag.setBaseDirectory(m_baseDirectory); - sft.replace(R.id.comics_list, frag, FRAG_COMICS_LIST); + //sft.replace(R.id.comics_list, frag, FRAG_COMICS_LIST); + + ComicListFragment frag = (ComicListFragment) getSupportFragmentManager().findFragmentByTag(FRAG_COMICS_LIST); + + if (frag != null && frag.isAdded()) { + frag.setMode(tab.getPosition()); + frag.updateWithoutRescan(); + } } m_selectedTab = tab.getPosition(); diff --git a/org.fox.ttcomics/src/main/res/layout/fragment_comics_list.xml b/org.fox.ttcomics/src/main/res/layout/fragment_comics_list.xml index 4fb0cf4..4fb8544 100644 --- a/org.fox.ttcomics/src/main/res/layout/fragment_comics_list.xml +++ b/org.fox.ttcomics/src/main/res/layout/fragment_comics_list.xml @@ -18,7 +18,7 @@ - - + -->