WIP Transform TaskListsFragment into DynamicFragment

This commit is contained in:
2017-12-11 23:43:32 +01:00
parent c474d29fc3
commit 5020c169d6
2 changed files with 82 additions and 14 deletions

View File

@@ -15,6 +15,7 @@ import android.view.View;
import com.wismna.geoffroy.donext.R; import com.wismna.geoffroy.donext.R;
import com.wismna.geoffroy.donext.fragments.MainFragment; import com.wismna.geoffroy.donext.fragments.MainFragment;
import com.wismna.geoffroy.donext.fragments.TaskFormDialogFragment; import com.wismna.geoffroy.donext.fragments.TaskFormDialogFragment;
import com.wismna.geoffroy.donext.fragments.TaskListsFragment;
import com.wismna.geoffroy.donext.fragments.TasksFragment; import com.wismna.geoffroy.donext.fragments.TasksFragment;
/** /**
@@ -80,8 +81,32 @@ public class MainActivity extends AppCompatActivity {
/** Called when the user clicks the Edit Lists button */ /** Called when the user clicks the Edit Lists button */
public void openTaskLists(MenuItem menuItem) { public void openTaskLists(MenuItem menuItem) {
Intent intent = new Intent(this, TaskListActivity.class); /*Intent intent = new Intent(this, TaskListActivity.class);
startActivity(intent); startActivity(intent);*/
// Create the fragment
TaskListsFragment taskListFragment = new TaskListsFragment();
String title = getString(R.string.action_edit_task);
FragmentManager fragmentManager = getSupportFragmentManager();
// Set the arguments
Bundle args = new Bundle();
args.putBoolean("neutral", false);
args.putString("button_positive", getString(R.string.new_task_save));
args.putString("button_negative", getString(R.string.new_task_cancel));
taskListFragment.setArguments(args);
if (getResources().getBoolean(R.bool.large_layout))
taskListFragment.show(fragmentManager, title);
else {
// The device is smaller, so show the fragment fullscreen
FragmentTransaction transaction = fragmentManager.beginTransaction();
// For a little polish, specify a transition animation
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
// To make it fullscreen, use the 'content' root view as the container
// for the fragment, which is always the root view for the activity
transaction.add(android.R.id.content, taskListFragment, title)
.addToBackStack(null).commit();
}
} }
/** Called when the user clicks the History button*/ /** Called when the user clicks the History button*/

View File

@@ -6,13 +6,10 @@ import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.support.v4.app.DialogFragment; import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.helper.ItemTouchHelper; import android.support.v7.widget.helper.ItemTouchHelper;
import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.Button; import android.widget.Button;
import android.widget.CheckBox; import android.widget.CheckBox;
@@ -30,12 +27,12 @@ import java.util.List;
/** /**
* A fragment representing a list of Items. * A fragment representing a list of Items.
*/ */
public class TaskListsFragment extends Fragment implements public class TaskListsFragment extends DynamicDialogFragment implements
TaskListRecyclerViewAdapter.TaskListRecyclerViewAdapterListener, TaskListRecyclerViewAdapter.TaskListRecyclerViewAdapterListener,
ConfirmDialogFragment.ConfirmDialogListener { ConfirmDialogFragment.ConfirmDialogListener {
private TaskListRecyclerViewAdapter taskListRecyclerViewAdapter; private TaskListRecyclerViewAdapter taskListRecyclerViewAdapter;
private TaskListDataAccess taskListDataAccess; private TaskListDataAccess taskListDataAccess;
private View mView; //private View mView;
private ItemTouchHelper mItemTouchHelper; private ItemTouchHelper mItemTouchHelper;
/** /**
@@ -49,11 +46,17 @@ public class TaskListsFragment extends Fragment implements
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
Bundle args = getArguments();
if (args != null) {
mHasNeutralButton = args.getBoolean("neutral");
}
mContentLayoutId = R.layout.fragment_tasklists;
taskListDataAccess = new TaskListDataAccess(getContext(), TaskListDataAccess.MODE.WRITE); taskListDataAccess = new TaskListDataAccess(getContext(), TaskListDataAccess.MODE.WRITE);
new GetTaskListsTask().execute(taskListDataAccess); new GetTaskListsTask().execute(taskListDataAccess);
} }
@Override /*@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
@@ -80,6 +83,45 @@ public class TaskListsFragment extends Fragment implements
}); });
return mView; return mView;
}*/
@Override
public void onStart() {
super.onStart();
Button createTaskListButton = (Button) findViewById(R.id.new_task_list_button);
createTaskListButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText editText = (EditText) findViewById(R.id.new_task_list_name);
String text = editText.getText().toString();
if (text.matches("")) {
editText.setError(getResources().getString(R.string.task_list_new_list_error));
return;
}
int position = taskListRecyclerViewAdapter.getItemCount();
TaskList taskList = taskListDataAccess.createTaskList(text, position);
taskListRecyclerViewAdapter.add(taskList, position);
editText.setText("");
toggleVisibleCreateNewTaskListLayout();
}
});
}
@Override
protected void onPositiveButtonClick(View view) {
}
@Override
protected void onNeutralButtonClick(View view) {
}
@Override
protected void onNegativeButtonClick() {
} }
@Override @Override
@@ -96,8 +138,8 @@ public class TaskListsFragment extends Fragment implements
taskListDataAccess.open(TaskListDataAccess.MODE.WRITE); taskListDataAccess.open(TaskListDataAccess.MODE.WRITE);
} }
private void toggleVisibleCreateNewTaskListLayout(View view) { private void toggleVisibleCreateNewTaskListLayout() {
LinearLayout layout = view.findViewById(R.id.new_task_list_layout); LinearLayout layout = (LinearLayout) findViewById(R.id.new_task_list_layout);
int taskListCount = taskListRecyclerViewAdapter.getItemCount(); int taskListCount = taskListRecyclerViewAdapter.getItemCount();
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getContext()); SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getContext());
String maxTaskListsString = sharedPref.getString("pref_conf_max_lists", "5"); String maxTaskListsString = sharedPref.getString("pref_conf_max_lists", "5");
@@ -147,6 +189,7 @@ public class TaskListsFragment extends Fragment implements
if (event == ConfirmDialogFragment.ButtonEvent.NO) return; if (event == ConfirmDialogFragment.ButtonEvent.NO) return;
Bundle args = dialog.getArguments(); Bundle args = dialog.getArguments();
assert args != null;
deleteTaskList(args.getInt("ItemPosition"), args.getLong("ItemId")); deleteTaskList(args.getInt("ItemPosition"), args.getLong("ItemId"));
} }
@@ -165,7 +208,7 @@ public class TaskListsFragment extends Fragment implements
{ {
taskListRecyclerViewAdapter.remove(position); taskListRecyclerViewAdapter.remove(position);
taskListDataAccess.deleteTaskList(id); taskListDataAccess.deleteTaskList(id);
toggleVisibleCreateNewTaskListLayout(mView); toggleVisibleCreateNewTaskListLayout();
} }
/** Helper method to clear focus by giving it to the parent layout */ /** Helper method to clear focus by giving it to the parent layout */
@@ -194,8 +237,8 @@ public class TaskListsFragment extends Fragment implements
new TaskListRecyclerViewAdapter(taskLists, TaskListsFragment.this); new TaskListRecyclerViewAdapter(taskLists, TaskListsFragment.this);
// Set the adapter // Set the adapter
Context context = mView.getContext(); Context context = getContext();
RecyclerView recyclerView = mView.findViewById(R.id.task_lists_view); RecyclerView recyclerView = (RecyclerView) findViewById(R.id.task_lists_view);
recyclerView.setLayoutManager(new LinearLayoutManager(context)); recyclerView.setLayoutManager(new LinearLayoutManager(context));
recyclerView.setAdapter(taskListRecyclerViewAdapter); recyclerView.setAdapter(taskListRecyclerViewAdapter);
@@ -204,7 +247,7 @@ public class TaskListsFragment extends Fragment implements
mItemTouchHelper = new ItemTouchHelper(callback); mItemTouchHelper = new ItemTouchHelper(callback);
mItemTouchHelper.attachToRecyclerView(recyclerView); mItemTouchHelper.attachToRecyclerView(recyclerView);
toggleVisibleCreateNewTaskListLayout(mView); toggleVisibleCreateNewTaskListLayout();
} }
} }
} }