diff --git a/DoNExt/app/build.gradle b/DoNExt/app/build.gradle index e5ce9eb..894dda8 100644 --- a/DoNExt/app/build.gradle +++ b/DoNExt/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "com.wismna.geoffroy.donext" minSdkVersion 15 targetSdkVersion 23 - versionCode 6 - versionName "0.6" + versionCode 7 + versionName "0.7" } buildTypes { release { diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java index 29e9e45..aee6a12 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java @@ -1,7 +1,9 @@ package com.wismna.geoffroy.donext.activities; import android.content.Intent; +import android.content.SharedPreferences; import android.os.Bundle; +import android.preference.PreferenceManager; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; @@ -72,6 +74,10 @@ public class MainActivity extends AppCompatActivity implements TasksFragment.Tas // Set up the ViewPager with the sections adapter. mViewPager = (ViewPager) findViewById(R.id.container); mViewPager.setAdapter(mSectionsPagerAdapter); + // Open last opened tab + SharedPreferences sharedPref = + PreferenceManager.getDefaultSharedPreferences(MainActivity.this); + mViewPager.setCurrentItem(sharedPref.getInt("last_opened_tab", 0)); TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(mViewPager); @@ -80,8 +86,36 @@ public class MainActivity extends AppCompatActivity implements TasksFragment.Tas FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.show(); } - } + + @Override + protected void onPause() { + super.onPause(); + // Save currently opened tab + SharedPreferences sharedPref = + PreferenceManager.getDefaultSharedPreferences(MainActivity.this); + SharedPreferences.Editor editor = sharedPref.edit(); + editor.putInt("last_opened_tab", mViewPager.getCurrentItem()); + editor.apply(); + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + MenuItem item = menu.findItem(R.id.action_changeLayout); + SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this); + String layoutType = sharedPref.getString("pref_conf_task_layout", "1"); + switch (layoutType) { + case "1" : + item.setIcon(R.drawable.ic_list_white_24dp); + break; + case "2" : + item.setIcon(R.drawable.ic_view_list_white_24dp); + break; + } + + return super.onPrepareOptionsMenu(menu); + } + @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. @@ -122,17 +156,33 @@ public class MainActivity extends AppCompatActivity implements TasksFragment.Tas taskDialogFragment.show(manager, "Create new task"); } - /** Called when the user clicks the Settings button */ - public void openSettings(MenuItem menuItem) { - Intent intent = new Intent(this, SettingsActivity.class); - startActivity(intent); + /** Called when the user clicks on the Change Layout button */ + public void changeLayout(MenuItem item) { + SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this); + SharedPreferences.Editor editor = sharedPref.edit(); + String layoutTypeString = sharedPref.getString("pref_conf_task_layout", "1"); + int layoutType = Integer.valueOf(layoutTypeString); + editor.putString("pref_conf_task_layout", String.valueOf(layoutType % 2 + 1)); + editor.apply(); + + // Update the ViewPagerAdapter to refresh all tabs + mSectionsPagerAdapter.notifyDataSetChanged(); + // Invalidate the menu to redraw the icon + invalidateOptionsMenu(); } + /** Called when the user clicks the Edit Lists button */ public void openTaskLists(MenuItem menuItem) { Intent intent = new Intent(this, TaskListActivity.class); startActivity(intent); } + /** Called when the user clicks the Settings button */ + public void openSettings(MenuItem menuItem) { + Intent intent = new Intent(this, SettingsActivity.class); + startActivity(intent); + } + private TaskRecyclerViewAdapter getSpecificTabAdapter(int position) { TasksFragment taskFragment = (TasksFragment) mSectionsPagerAdapter.getRegisteredFragment(position); if (taskFragment == null) return null; diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/adapters/SmartFragmentStatePagerAdapter.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/adapters/SmartFragmentStatePagerAdapter.java index c7156e5..a2e8b34 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/adapters/SmartFragmentStatePagerAdapter.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/adapters/SmartFragmentStatePagerAdapter.java @@ -21,6 +21,11 @@ public abstract class SmartFragmentStatePagerAdapter extends FragmentStatePagerA super(fragmentManager); } + @Override + public int getItemPosition(Object object) { + return POSITION_NONE; + } + // Register the fragment when the item is instantiated @Override public Object instantiateItem(ViewGroup container, int position) { diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java index c69c22e..3a644f2 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java @@ -52,6 +52,7 @@ public class TasksFragment extends Fragment implements private View view; private RecyclerView recyclerView; private TaskChangedAdapter mAdapter; + private Snackbar snackbar; /** * Mandatory empty constructor for the fragment manager to instantiate the @@ -164,6 +165,7 @@ public class TasksFragment extends Fragment implements @Override public void onDestroy() { super.onDestroy(); + if (snackbar != null) snackbar.dismiss(); taskDataAccess.close(); } @@ -198,7 +200,7 @@ public class TasksFragment extends Fragment implements } // Setup the snack bar - Snackbar.make(view, "Task " + action, Snackbar.LENGTH_LONG) + snackbar = Snackbar.make(view, "Task " + action, Snackbar.LENGTH_LONG) .setAction("Undo", new View.OnClickListener() { @Override public void onClick(View v) { @@ -220,33 +222,32 @@ public class TasksFragment extends Fragment implements taskRecyclerViewAdapter.add(task, itemPosition); recyclerView.scrollToPosition(0); } - }).setCallback(new Snackbar.Callback() { - @Override - public void onDismissed(Snackbar snackbar, int event) { - super.onDismissed(snackbar, event); + }); + snackbar.setCallback(new Snackbar.Callback() { + @Override + public void onDismissed(Snackbar snackbar, int event) { + super.onDismissed(snackbar, event); - // When clicked on undo, do not write to DB - if (event == DISMISS_EVENT_ACTION) return; + // When clicked on undo, do not write to DB + if (event == DISMISS_EVENT_ACTION) return; - // Commit the changes to DB - switch (direction) - { - // Mark item as Done - case ItemTouchHelper.LEFT: - taskDataAccess.setDone(itemId); - break; - // Increase task cycle count - case ItemTouchHelper.RIGHT: - taskDataAccess.increaseCycle(task.getCycle(), itemId); - break; - case -1: - // Commit the changes to DB - taskDataAccess.deleteTask(itemId); - } - - //UpdateCycleCount(); + // Commit the changes to DB + switch (direction) + { + // Mark item as Done + case ItemTouchHelper.LEFT: + taskDataAccess.setDone(itemId); + break; + // Increase task cycle count + case ItemTouchHelper.RIGHT: + taskDataAccess.increaseCycle(task.getCycle(), itemId); + break; + case -1: + // Commit the changes to DB + taskDataAccess.deleteTask(itemId); } - }).show(); + } + }).show(); } @Override diff --git a/DoNExt/app/src/main/res/layout/activity_main.xml b/DoNExt/app/src/main/res/layout/activity_main.xml index c9abe80..ba2ab0d 100644 --- a/DoNExt/app/src/main/res/layout/activity_main.xml +++ b/DoNExt/app/src/main/res/layout/activity_main.xml @@ -26,7 +26,8 @@ + android:layout_height="wrap_content" + app:tabMode="scrollable" /> diff --git a/DoNExt/app/src/main/res/menu/menu_main.xml b/DoNExt/app/src/main/res/menu/menu_main.xml index f2d90f8..d93b89e 100644 --- a/DoNExt/app/src/main/res/menu/menu_main.xml +++ b/DoNExt/app/src/main/res/menu/menu_main.xml @@ -9,11 +9,19 @@ android:onClick="openNewTaskDialog" app:showAsAction="never" />--> + + android:icon="@drawable/ic_create_new_folder_white_24dp" + app:showAsAction="ifRoom" /> Edit lists About New task + Change layout Settings