From 4d1f07884c7ecf55cce1b5e4a9d2204a6b5e6232 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 11 Jun 2015 12:23:35 +0300 Subject: add option to disable FAB properly implement restarting on needed pref change --- .../java/org/fox/ttcomics2/ComicListFragment.java | 23 ++++++++++------ .../main/java/org/fox/ttcomics2/MainActivity.java | 32 +++++++++++----------- org.fox.ttcomics/src/main/res/xml/preferences.xml | 5 ++++ 3 files changed, 35 insertions(+), 25 deletions(-) (limited to 'org.fox.ttcomics/src') 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 362719c..6f3a598 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 @@ -261,18 +261,23 @@ public class ComicListFragment extends Fragment implements OnItemClickListener { new String[] { "filename" }, new int[] { R.id.file_name }, 0); m_animationAdapter = new ScaleInAnimationAdapter(m_adapter); + HeaderFooterGridView grid = (HeaderFooterGridView) view.findViewById(R.id.comics_grid); + FloatingActionButton fab = (FloatingActionButton) view.findViewById(R.id.fab); - fab.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - rescan(true); - } - }); - HeaderFooterGridView grid = (HeaderFooterGridView) view.findViewById(R.id.comics_grid); + if (m_prefs.getBoolean("enable_fab", true)) { + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + rescan(true); + } + }); - View footer = inflater.inflate(R.layout.comics_grid_footer, grid, false); - grid.addFooterView(footer, null, false); + View footer = inflater.inflate(R.layout.comics_grid_footer, grid, false); + grid.addFooterView(footer, null, false); + } else { + fab.setVisibility(View.GONE); + } m_animationAdapter.setAbsListView(grid); grid.setAdapter(m_animationAdapter); 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 5eb833b..8910d4b 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 @@ -10,6 +10,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; +import android.content.SharedPreferences; import android.os.Bundle; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.ActionBar; @@ -22,20 +23,20 @@ import org.fox.ttcomics2.sync.SyncClient; import org.fox.ttcomics2.sync.SyncFolderService; import java.io.File; +import java.util.Arrays; import it.neokree.materialtabs.MaterialTab; import it.neokree.materialtabs.MaterialTabHost; import it.neokree.materialtabs.MaterialTabListener; -public class MainActivity extends CommonActivity implements MaterialTabListener { +public class MainActivity extends CommonActivity implements MaterialTabListener, SharedPreferences.OnSharedPreferenceChangeListener { private final String TAG = this.getClass().getSimpleName(); private final static int TRIAL_DAYS = 7; private int m_selectedTab; - private String m_rootDirectory = ""; private MaterialTabHost tabHost; - private boolean m_useSync; private ProgressDialog m_progressDialog; + private boolean m_needRestart; private BroadcastReceiver m_serviceReceiver = new BroadcastReceiver() { @Override @@ -64,8 +65,7 @@ public class MainActivity extends CommonActivity implements MaterialTabListener public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - m_rootDirectory = m_prefs.getString("comics_directory", ""); - m_useSync = m_prefs.getBoolean("use_position_sync", false); + m_prefs.registerOnSharedPreferenceChangeListener(this); setContentView(R.layout.activity_main); setSupportActionBar((Toolbar) findViewById(R.id.toolbar)); @@ -151,7 +151,7 @@ public class MainActivity extends CommonActivity implements MaterialTabListener //} //((ViewGroup)findViewById(R.id.comics_list)).setLayoutTransition(new LayoutTransition()); - } + } @Override public void onResume() { @@ -164,19 +164,13 @@ public class MainActivity extends CommonActivity implements MaterialTabListener registerReceiver(m_serviceReceiver, filter); - if (!m_rootDirectory.equals(m_prefs.getString("comics_directory", ""))) { - Log.d(TAG, "root directory changed, restarting"); - - finish(); - startActivity(getIntent()); - } + //if (m_enableFab != m_prefs.getBoolean("enable_fab", true)) { - if (m_useSync != m_prefs.getBoolean("use_position_sync", false)) { - Log.d(TAG, "sync settings changed, restarting"); + if (m_needRestart) { + Log.d(TAG, "shared preferences changed, restarting"); finish(); startActivity(getIntent()); - } } @@ -194,7 +188,6 @@ public class MainActivity extends CommonActivity implements MaterialTabListener super.onSaveInstanceState(out); out.putInt("selectedTab", m_selectedTab); - //out.putString("baseDir", m_baseDirectory); } public int getMode() { @@ -379,4 +372,11 @@ public class MainActivity extends CommonActivity implements MaterialTabListener unregisterReceiver(m_serviceReceiver); } + + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + String[] filter = new String[] { "enable_fab", "comics_directory", "use_position_sync" }; + + m_needRestart = Arrays.asList(filter).indexOf(key) != -1; + } } diff --git a/org.fox.ttcomics/src/main/res/xml/preferences.xml b/org.fox.ttcomics/src/main/res/xml/preferences.xml index 32ae1a3..7305a3d 100644 --- a/org.fox.ttcomics/src/main/res/xml/preferences.xml +++ b/org.fox.ttcomics/src/main/res/xml/preferences.xml @@ -8,6 +8,11 @@ android:summary="@string/prefs_comics_directory_summary" android:title="@string/prefs_comics_directory" > +