diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..94a25f7f4cb416c083d265558da75d457237d671 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/app/src/main/java/com/example/todo/ui/todos/AddTodoFragment.kt b/app/src/main/java/com/example/todo/ui/todos/AddTodoFragment.kt index f1bc2e17e3a26d94ccbb85209956a9ebcb73fb47..e91d8abd85dc50e223d398b1097deab1a9d193da 100644 --- a/app/src/main/java/com/example/todo/ui/todos/AddTodoFragment.kt +++ b/app/src/main/java/com/example/todo/ui/todos/AddTodoFragment.kt @@ -34,14 +34,8 @@ class AddTodoFragment : Fragment() { // for this view (activity) val viewModel = ViewModelProvider(this, factory).get(TodosViewModel::class.java) button_add_todo.setOnClickListener { - val grocery = Todo(editText_todo_title.text.toString(), editText_todo_description.text.toString()) - viewModel.addTodo(grocery) - editText_todo_title.setText("") - editText_todo_description.setText("") - } - button_view_todo.setOnClickListener { - val grocery = Todo(editText_todo_title.text.toString(), editText_todo_description.text.toString()) - viewModel.addTodo(grocery) + val todo = Todo(editText_todo_title.text.toString(), editText_todo_description.text.toString()) + viewModel.addTodo(todo) editText_todo_title.setText("") editText_todo_description.setText("") } diff --git a/app/src/main/java/com/example/todo/ui/todos/ListTodoFragment.kt b/app/src/main/java/com/example/todo/ui/todos/ListTodoFragment.kt index 7b57e6d528312629a1bbb3ea3a5d62a05d67cc94..cc9a9715ee59c31bfbb32d5fed32cb7019e32ee0 100644 --- a/app/src/main/java/com/example/todo/ui/todos/ListTodoFragment.kt +++ b/app/src/main/java/com/example/todo/ui/todos/ListTodoFragment.kt @@ -5,6 +5,9 @@ import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.lifecycle.Observer +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.ViewModelProviders import com.example.todo.R import kotlinx.android.synthetic.main.fragment_list_todo.* @@ -19,8 +22,17 @@ class ListTodoFragment : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - arguments?.let { - todos = it.getString("data") + activity?.let { + val sharedViewModel = ViewModelProvider(it).get(TodosViewModel::class.java) + sharedViewModel.getTodo().observe(this, Observer { todo -> + if (todo.isNotEmpty()) { + val stringBuilder = StringBuilder() + todo.forEach { quote -> + stringBuilder.append("$quote\n\n") + } + textView_todos.text = stringBuilder.toString() + } + }) } } @@ -34,16 +46,11 @@ class ListTodoFragment : Fragment() { override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) - textView_todos.text = todos } companion object { @JvmStatic - fun newInstance(param1: String) = - ListTodoFragment().apply { - arguments = Bundle().apply { - putString("data", param1) - } - } + fun newInstance() = + ListTodoFragment() } } \ No newline at end of file diff --git a/app/src/main/java/com/example/todo/ui/todos/TodoActivity.kt b/app/src/main/java/com/example/todo/ui/todos/TodoActivity.kt index 4e59a4176a794953c0f78f6657a7222fb41072f4..c37a068cc1a0434fa8a5d3cda42d143cd4b851a7 100644 --- a/app/src/main/java/com/example/todo/ui/todos/TodoActivity.kt +++ b/app/src/main/java/com/example/todo/ui/todos/TodoActivity.kt @@ -4,46 +4,59 @@ import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentTransaction +import androidx.fragment.app.ListFragment import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider import com.example.todo.R import com.example.todo.utilities.InjectorUtils +import kotlinx.android.synthetic.main.activity_todo.* class TodoActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_todo) - val fragMan: FragmentManager = supportFragmentManager - val fragTransaction: FragmentTransaction = fragMan.beginTransaction() - val addTodoFragment : AddTodoFragment = AddTodoFragment() - fragTransaction.add(R.id.root_layout, addTodoFragment) - fragTransaction.commit() - initializeUi() - } - private fun initializeUi(){ // Get the provideTodosViewModelFactory with all of it's dependencies constructed val factory = InjectorUtils.provideTodosViewModelFactory() // Use ViewModelProviders class to create / get already created TodosViewModel // for this view (activity) val viewModel = ViewModelProvider(this, factory).get(TodosViewModel::class.java) - viewModel.getTodo().observe(this, Observer { todo -> - if (todo.isNotEmpty()) { - val bundle = Bundle() - val stringBuilder = StringBuilder() - todo.forEach { quote -> - stringBuilder.append("$quote\n\n") - } - bundle.putString("data", stringBuilder.toString()) - val fragMan: FragmentManager = supportFragmentManager - val listFragment : ListTodoFragment = ListTodoFragment() - listFragment.arguments = bundle - val transaction = fragMan.beginTransaction().replace(R.id.root_layout, listFragment).addToBackStack(null) - transaction.commit() - - } - }) + val listFragment = ListTodoFragment() + val addTodoFragment = AddTodoFragment() + supportFragmentManager.beginTransaction().apply { + replace(R.id.flFragment, addTodoFragment) + addToBackStack(null) + commit() + } + buttonNavList.setOnClickListener { + supportFragmentManager.beginTransaction().apply { + replace(R.id.flFragment, listFragment) + addToBackStack(null) + commit() + } + } } + +// private fun initializeUi(){ +// viewModel.getTodo().observe(this, Observer { todo -> +// if (todo.isNotEmpty()) { +// val bundle = Bundle() +// val stringBuilder = StringBuilder() +// todo.forEach { quote -> +// stringBuilder.append("$quote\n\n") +// } +// bundle.putString("data", stringBuilder.toString()) +// val fragMan: FragmentManager = supportFragmentManager +// val listFragment : ListTodoFragment = ListTodoFragment() +// listFragment.arguments = bundle +// val transaction = fragMan.beginTransaction().replace(R.id.root_layout, listFragment).addToBackStack(null) +// transaction.commit() +// +// } +// +// }) +// +// } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_todo.xml b/app/src/main/res/layout/activity_todo.xml index e4acc38e10e35e978cfab87daf656ac0b78011e2..91709d625dbef29b821a84119f696d78d97189ab 100644 --- a/app/src/main/res/layout/activity_todo.xml +++ b/app/src/main/res/layout/activity_todo.xml @@ -1,10 +1,47 @@ <?xml version="1.0" encoding="utf-8"?> -<FrameLayout - xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/root_layout" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".ui.todos.TodoActivity" - android:id="@+id/root_layout"> -</FrameLayout> \ No newline at end of file + tools:context=".ui.todos.TodoActivity"> + + <Button + android:id="@+id/buttonNavList" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="24dp" + android:text="View" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.5" + app:layout_constraintStart_toEndOf="@+id/buttonNavAdd" /> + + <Button + android:id="@+id/buttonNavAdd" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="24dp" + android:text="Add" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/buttonNavList" + app:layout_constraintHorizontal_bias="0.5" + app:layout_constraintStart_toStartOf="parent" /> + + <FrameLayout + android:id="@+id/flFragment" + android:layout_width="0dp" + android:layout_height="0dp" + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:layout_marginBottom="8dp" + app:layout_constraintBottom_toTopOf="@+id/buttonNavAdd" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.0" /> + +</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_add_todo.xml b/app/src/main/res/layout/fragment_add_todo.xml index 535261e77e3088cb68682a11ac75fafcc4dbde84..ff993a95777529a14ea707dda86006e30705dcf3 100644 --- a/app/src/main/res/layout/fragment_add_todo.xml +++ b/app/src/main/res/layout/fragment_add_todo.xml @@ -45,14 +45,6 @@ android:layout_marginTop="24dp" android:text="Save" /> - <Button - android:id="@+id/button_view_todo" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_margin="16dp" - android:layout_marginStart="16dp" - android:layout_marginTop="24dp" - android:text="View todos" /> </LinearLayout> </FrameLayout> \ No newline at end of file