diff --git a/app/build.gradle b/app/build.gradle index 2874e5c..9d78e77 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -64,4 +64,7 @@ dependencies { testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' + + // Material Library for NavDrawer + implementation 'com.google.android.material:material:1.0.0' } diff --git a/app/debug/app-debug.aab b/app/debug/app-debug.aab new file mode 100644 index 0000000..f5c0e2b Binary files /dev/null and b/app/debug/app-debug.aab differ diff --git a/app/release/app-release.aab b/app/release/app-release.aab new file mode 100644 index 0000000..f0e2a41 Binary files /dev/null and b/app/release/app-release.aab differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e000ff3..c491531 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,7 +8,7 @@ android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:theme="@style/AppTheme"> + android:theme="@style/AppTheme.NoActionBar"> diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png index 7817754..dee9210 100644 Binary files a/app/src/main/ic_launcher-playstore.png and b/app/src/main/ic_launcher-playstore.png differ diff --git a/app/src/main/java/com/taymath/tutortoolkit/addgrade/AddGradeFragment.kt b/app/src/main/java/com/taymath/tutortoolkit/addgrade/AddGradeFragment.kt index c972d82..349f154 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/addgrade/AddGradeFragment.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/addgrade/AddGradeFragment.kt @@ -1,23 +1,17 @@ package com.taymath.tutortoolkit.addgrade import android.os.Bundle -import android.text.Editable -import android.text.TextWatcher import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.EditText import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders import androidx.navigation.fragment.findNavController import com.taymath.tutortoolkit.R -import com.taymath.tutortoolkit.addstudent.AddStudentFragmentDirections import com.taymath.tutortoolkit.databinding.FragmentAddGradeBindingImpl -import com.taymath.tutortoolkit.databinding.FragmentAddStudentBindingImpl -import com.taymath.tutortoolkit.studentdatabase.StudentDatabase -import kotlinx.android.synthetic.main.fragment_add_grade.* +import com.taymath.tutortoolkit.database.StudentDatabase class AddGradeFragment : Fragment() { diff --git a/app/src/main/java/com/taymath/tutortoolkit/addgrade/AddGradeViewModel.kt b/app/src/main/java/com/taymath/tutortoolkit/addgrade/AddGradeViewModel.kt index 07c3857..341fec4 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/addgrade/AddGradeViewModel.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/addgrade/AddGradeViewModel.kt @@ -1,13 +1,12 @@ package com.taymath.tutortoolkit.addgrade -import android.content.Context import androidx.lifecycle.LiveData import androidx.lifecycle.MediatorLiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import com.taymath.tutortoolkit.studentdatabase.Grade -import com.taymath.tutortoolkit.studentdatabase.Student -import com.taymath.tutortoolkit.studentdatabase.StudentDatabaseDao +import com.taymath.tutortoolkit.database.Grade +import com.taymath.tutortoolkit.database.Student +import com.taymath.tutortoolkit.database.StudentDatabaseDao import kotlinx.coroutines.* class AddGradeViewModel( diff --git a/app/src/main/java/com/taymath/tutortoolkit/addgrade/AddGradeViewModelFactory.kt b/app/src/main/java/com/taymath/tutortoolkit/addgrade/AddGradeViewModelFactory.kt index 8f786dd..7741c2d 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/addgrade/AddGradeViewModelFactory.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/addgrade/AddGradeViewModelFactory.kt @@ -2,8 +2,7 @@ package com.taymath.tutortoolkit.addgrade import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.taymath.tutortoolkit.studentdatabase.Student -import com.taymath.tutortoolkit.studentdatabase.StudentDatabaseDao +import com.taymath.tutortoolkit.database.StudentDatabaseDao class AddGradeViewModelFactory( private val student_id: Long, diff --git a/app/src/main/java/com/taymath/tutortoolkit/addstudent/AddStudentFragment.kt b/app/src/main/java/com/taymath/tutortoolkit/addstudent/AddStudentFragment.kt index f010440..2628585 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/addstudent/AddStudentFragment.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/addstudent/AddStudentFragment.kt @@ -11,7 +11,7 @@ import androidx.lifecycle.ViewModelProviders import androidx.navigation.fragment.findNavController import com.taymath.tutortoolkit.R import com.taymath.tutortoolkit.databinding.FragmentAddStudentBindingImpl -import com.taymath.tutortoolkit.studentdatabase.StudentDatabase +import com.taymath.tutortoolkit.database.StudentDatabase class AddStudentFragment : Fragment() { diff --git a/app/src/main/java/com/taymath/tutortoolkit/addstudent/AddStudentViewModel.kt b/app/src/main/java/com/taymath/tutortoolkit/addstudent/AddStudentViewModel.kt index 41be8cb..0d05ec7 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/addstudent/AddStudentViewModel.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/addstudent/AddStudentViewModel.kt @@ -1,16 +1,10 @@ package com.taymath.tutortoolkit.addstudent -import android.util.Log -import android.widget.ImageView -import androidx.databinding.BindingAdapter import androidx.lifecycle.LiveData -import androidx.lifecycle.MediatorLiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import com.taymath.tutortoolkit.R -import com.taymath.tutortoolkit.studentdatabase.Student -import com.taymath.tutortoolkit.studentdatabase.StudentDatabaseDao -import com.taymath.tutortoolkit.studentdetail.StudentDetailFragmentArgs +import com.taymath.tutortoolkit.database.Student +import com.taymath.tutortoolkit.database.StudentDatabaseDao import kotlinx.coroutines.* diff --git a/app/src/main/java/com/taymath/tutortoolkit/addstudent/AddStudentViewModelFactory.kt b/app/src/main/java/com/taymath/tutortoolkit/addstudent/AddStudentViewModelFactory.kt index 58c5206..db1fdbf 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/addstudent/AddStudentViewModelFactory.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/addstudent/AddStudentViewModelFactory.kt @@ -2,7 +2,7 @@ package com.taymath.tutortoolkit.addstudent import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.taymath.tutortoolkit.studentdatabase.StudentDatabaseDao +import com.taymath.tutortoolkit.database.StudentDatabaseDao class AddStudentViewModelFactory( private val dataSource: StudentDatabaseDao diff --git a/app/src/main/java/com/taymath/tutortoolkit/chooseicon/ChooseIconFragment.kt b/app/src/main/java/com/taymath/tutortoolkit/chooseicon/ChooseIconFragment.kt index adf583d..4477aba 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/chooseicon/ChooseIconFragment.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/chooseicon/ChooseIconFragment.kt @@ -11,7 +11,7 @@ import androidx.lifecycle.ViewModelProviders import androidx.navigation.fragment.findNavController import com.taymath.tutortoolkit.R import com.taymath.tutortoolkit.databinding.FragmentChooseIconBinding -import com.taymath.tutortoolkit.studentdatabase.StudentDatabase +import com.taymath.tutortoolkit.database.StudentDatabase /** * Fragment that displays a list of clickable icons, diff --git a/app/src/main/java/com/taymath/tutortoolkit/chooseicon/ChooseIconViewModel.kt b/app/src/main/java/com/taymath/tutortoolkit/chooseicon/ChooseIconViewModel.kt index 31d9577..7bf4e42 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/chooseicon/ChooseIconViewModel.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/chooseicon/ChooseIconViewModel.kt @@ -3,7 +3,7 @@ package com.taymath.tutortoolkit.chooseicon import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import com.taymath.tutortoolkit.studentdatabase.StudentDatabaseDao +import com.taymath.tutortoolkit.database.StudentDatabaseDao import kotlinx.coroutines.* /** diff --git a/app/src/main/java/com/taymath/tutortoolkit/chooseicon/ChooseIconViewModelFactory.kt b/app/src/main/java/com/taymath/tutortoolkit/chooseicon/ChooseIconViewModelFactory.kt index 4534a61..d695cd2 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/chooseicon/ChooseIconViewModelFactory.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/chooseicon/ChooseIconViewModelFactory.kt @@ -2,7 +2,7 @@ package com.taymath.tutortoolkit.chooseicon import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.taymath.tutortoolkit.studentdatabase.StudentDatabaseDao +import com.taymath.tutortoolkit.database.StudentDatabaseDao /** * This is pretty much boiler plate code for a ViewModel Factory. diff --git a/app/src/main/java/com/taymath/tutortoolkit/studentdatabase/Grade.kt b/app/src/main/java/com/taymath/tutortoolkit/database/Grade.kt similarity index 93% rename from app/src/main/java/com/taymath/tutortoolkit/studentdatabase/Grade.kt rename to app/src/main/java/com/taymath/tutortoolkit/database/Grade.kt index 4f81180..2643675 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/studentdatabase/Grade.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/database/Grade.kt @@ -1,4 +1,4 @@ -package com.taymath.tutortoolkit.studentdatabase +package com.taymath.tutortoolkit.database import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/java/com/taymath/tutortoolkit/studentdatabase/Student.kt b/app/src/main/java/com/taymath/tutortoolkit/database/Student.kt similarity index 96% rename from app/src/main/java/com/taymath/tutortoolkit/studentdatabase/Student.kt rename to app/src/main/java/com/taymath/tutortoolkit/database/Student.kt index 61b46d9..54e8810 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/studentdatabase/Student.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/database/Student.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.taymath.tutortoolkit.studentdatabase +package com.taymath.tutortoolkit.database import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/java/com/taymath/tutortoolkit/studentdatabase/StudentDatabase.kt b/app/src/main/java/com/taymath/tutortoolkit/database/StudentDatabase.kt similarity index 91% rename from app/src/main/java/com/taymath/tutortoolkit/studentdatabase/StudentDatabase.kt rename to app/src/main/java/com/taymath/tutortoolkit/database/StudentDatabase.kt index a97f608..c257775 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/studentdatabase/StudentDatabase.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/database/StudentDatabase.kt @@ -14,14 +14,14 @@ * limitations under the License. */ -package com.taymath.tutortoolkit.studentdatabase +package com.taymath.tutortoolkit.database import android.content.Context import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase -@Database(entities = [Student::class, Grade::class], version = 1, exportSchema = false) +@Database(entities = [Student::class, Grade::class, Todo::class], version = 1, exportSchema = false) abstract class StudentDatabase : RoomDatabase() { abstract val studentDatabaseDao: StudentDatabaseDao diff --git a/app/src/main/java/com/taymath/tutortoolkit/studentdatabase/StudentDatabaseDao.kt b/app/src/main/java/com/taymath/tutortoolkit/database/StudentDatabaseDao.kt similarity index 81% rename from app/src/main/java/com/taymath/tutortoolkit/studentdatabase/StudentDatabaseDao.kt rename to app/src/main/java/com/taymath/tutortoolkit/database/StudentDatabaseDao.kt index 067e17f..68e6b8e 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/studentdatabase/StudentDatabaseDao.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/database/StudentDatabaseDao.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.taymath.tutortoolkit.studentdatabase +package com.taymath.tutortoolkit.database import androidx.lifecycle.LiveData import androidx.room.* @@ -83,5 +83,27 @@ interface StudentDatabaseDao { @Query("SELECT * from grade_table WHERE student_id_long = :studentId") fun getGradesWithStudentId(studentId: Long): LiveData> + // Todo Table Dao + @Insert + fun insertTodo(night: Todo) + + @Update + fun updateTodo(night: Todo) + + @Query("SELECT * FROM todo_list_table WHERE todoId= :key") + fun get(key: Long) : Todo? + + @Query("DELETE FROM todo_list_table") + fun clearTodos() + + @Query("SELECT * FROM todo_list_table ORDER BY todoId DESC LIMIT 1") + fun getTodo(): Todo? + + @Query("SELECT * FROM todo_list_table ORDER BY todoId DESC") + fun getAllTodos(): LiveData> + + @Query("DELETE FROM todo_list_table WHERE todoId= :key") + fun deleteTodoById(key: Long) + } diff --git a/app/src/main/java/com/taymath/tutortoolkit/database/Todo.kt b/app/src/main/java/com/taymath/tutortoolkit/database/Todo.kt new file mode 100644 index 0000000..a987ea0 --- /dev/null +++ b/app/src/main/java/com/taymath/tutortoolkit/database/Todo.kt @@ -0,0 +1,30 @@ +/* + * Copyright 2018, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.taymath.tutortoolkit.database + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey + +@Entity(tableName = "todo_list_table") +data class Todo ( + @PrimaryKey(autoGenerate = true) + var todoId: Long = 0L, + + @ColumnInfo(name = "todo_string") + var todoString : String = "CHECK_TODO.KT" +) diff --git a/app/src/main/java/com/taymath/tutortoolkit/gettodo/GetTodoFragment.kt b/app/src/main/java/com/taymath/tutortoolkit/gettodo/GetTodoFragment.kt new file mode 100644 index 0000000..774136c --- /dev/null +++ b/app/src/main/java/com/taymath/tutortoolkit/gettodo/GetTodoFragment.kt @@ -0,0 +1,74 @@ +/* + * Copyright 2018, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.taymath.tutortoolkit.gettodo + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.databinding.DataBindingUtil +import androidx.fragment.app.Fragment +import androidx.lifecycle.Observer +import androidx.lifecycle.ViewModelProviders +import androidx.navigation.fragment.findNavController +import com.taymath.tutortoolkit.R +import com.taymath.tutortoolkit.database.StudentDatabase +import com.taymath.tutortoolkit.databinding.FragmentGetTodoBinding + +/** + * Fragment that displays a list of clickable icons, + * each representing a sleep quality rating. + * Once the user taps an icon, the quality is set in the current sleepNight + * and the database is updated. + */ +class GetTodoFragment : Fragment() { + + /** + * Called when the Fragment is ready to display content to the screen. + * + * This function uses DataBindingUtil to inflate R.layout.fragment_get_todo. + */ + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle?): View? { + + // Get a reference to the binding object and inflate the fragment views. + val binding: FragmentGetTodoBinding = DataBindingUtil.inflate( + inflater, R.layout.fragment_get_todo, container, false) + + val application = requireNotNull(this.activity).application + + val dataSource = StudentDatabase.getInstance(application).studentDatabaseDao + + val viewModelFactory = GetTodoViewModelFactory(dataSource) + + val getTodoViewModel = + ViewModelProviders.of( + this, viewModelFactory).get(GetTodoViewModel::class.java) + + binding.getTodoViewModel = getTodoViewModel + + getTodoViewModel.navigateToTodoList.observe(viewLifecycleOwner, Observer { + if (it == true) { // Observed state is true. + this.findNavController().navigate( + GetTodoFragmentDirections.actionGetTodoFragmentToTodoListFragment()) + getTodoViewModel.doneNavigating() + } + }) + + return binding.root + } +} diff --git a/app/src/main/java/com/taymath/tutortoolkit/gettodo/GetTodoViewModel.kt b/app/src/main/java/com/taymath/tutortoolkit/gettodo/GetTodoViewModel.kt new file mode 100644 index 0000000..0f365f9 --- /dev/null +++ b/app/src/main/java/com/taymath/tutortoolkit/gettodo/GetTodoViewModel.kt @@ -0,0 +1,62 @@ +/* + * Copyright 2018, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.taymath.tutortoolkit.gettodo + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import com.taymath.tutortoolkit.database.StudentDatabaseDao +import com.taymath.tutortoolkit.database.Todo +import kotlinx.coroutines.* + +class GetTodoViewModel( + val database: StudentDatabaseDao) : ViewModel() { + + private val viewModelJob = Job() + private val uiScope = CoroutineScope(Dispatchers.Main + viewModelJob) + + override fun onCleared() { + super.onCleared() + viewModelJob.cancel() + } + + private val _navigateToTodoList = MutableLiveData() + + val navigateToTodoList: LiveData + get() = _navigateToTodoList + + fun doneNavigating() { + _navigateToTodoList.value = null + } + + private suspend fun insert(todo: Todo) { + withContext(Dispatchers.IO) { + database.insertTodo(todo) + } + } + + fun onEnterTodo(todoString: String) { + uiScope.launch { + withContext(Dispatchers.IO) { + val newTodo = Todo() + newTodo.todoString = todoString + insert(newTodo) + } + } + _navigateToTodoList.value = true + } +} diff --git a/app/src/main/java/com/taymath/tutortoolkit/gettodo/GetTodoViewModelFactory.kt b/app/src/main/java/com/taymath/tutortoolkit/gettodo/GetTodoViewModelFactory.kt new file mode 100644 index 0000000..070356d --- /dev/null +++ b/app/src/main/java/com/taymath/tutortoolkit/gettodo/GetTodoViewModelFactory.kt @@ -0,0 +1,34 @@ +/* + * Copyright 2018, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.taymath.tutortoolkit.gettodo + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider +import com.taymath.tutortoolkit.database.StudentDatabaseDao + +class GetTodoViewModelFactory( + private val dataSource: StudentDatabaseDao +) : ViewModelProvider.Factory { + + @Suppress("unchecked_cast") + override fun create(modelClass: Class): T { + if (modelClass.isAssignableFrom(GetTodoViewModel::class.java)) { + return GetTodoViewModel(dataSource) as T + } + throw IllegalArgumentException("Unknown ViewModel class") + } +} \ No newline at end of file diff --git a/app/src/main/java/com/taymath/tutortoolkit/studentdetail/GradeAdapter.kt b/app/src/main/java/com/taymath/tutortoolkit/studentdetail/GradeAdapter.kt index ba0f8cb..4e41be3 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/studentdetail/GradeAdapter.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/studentdetail/GradeAdapter.kt @@ -6,7 +6,7 @@ import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import com.taymath.tutortoolkit.databinding.ListItemGradeBinding -import com.taymath.tutortoolkit.studentdatabase.Grade +import com.taymath.tutortoolkit.database.Grade class GradeAdapter : ListAdapter(GradeDiffCallback()) { diff --git a/app/src/main/java/com/taymath/tutortoolkit/studentdetail/GradeBindingUtils.kt b/app/src/main/java/com/taymath/tutortoolkit/studentdetail/GradeBindingUtils.kt index 4b4a9f4..8f39a6d 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/studentdetail/GradeBindingUtils.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/studentdetail/GradeBindingUtils.kt @@ -2,7 +2,7 @@ package com.taymath.tutortoolkit.studentdetail import android.widget.TextView import androidx.databinding.BindingAdapter -import com.taymath.tutortoolkit.studentdatabase.Grade +import com.taymath.tutortoolkit.database.Grade @BindingAdapter("gradeFloat") fun TextView.setGradeFloat(item: Grade?){ diff --git a/app/src/main/java/com/taymath/tutortoolkit/studentdetail/StudentDetailFragment.kt b/app/src/main/java/com/taymath/tutortoolkit/studentdetail/StudentDetailFragment.kt index 9de61f2..a99650a 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/studentdetail/StudentDetailFragment.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/studentdetail/StudentDetailFragment.kt @@ -11,9 +11,7 @@ import androidx.lifecycle.ViewModelProviders import androidx.navigation.fragment.findNavController import com.taymath.tutortoolkit.R import com.taymath.tutortoolkit.databinding.FragmentStudentDetailBinding -import com.taymath.tutortoolkit.studentdatabase.StudentDatabase -import com.taymath.tutortoolkit.studentlist.StudentListFragmentDirections -import com.taymath.tutortoolkit.studentlist.StudentListener +import com.taymath.tutortoolkit.database.StudentDatabase class StudentDetailFragment: Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, diff --git a/app/src/main/java/com/taymath/tutortoolkit/studentdetail/StudentDetailViewModel.kt b/app/src/main/java/com/taymath/tutortoolkit/studentdetail/StudentDetailViewModel.kt index 93d27c1..6019dce 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/studentdetail/StudentDetailViewModel.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/studentdetail/StudentDetailViewModel.kt @@ -1,8 +1,8 @@ package com.taymath.tutortoolkit.studentdetail import androidx.lifecycle.* -import com.taymath.tutortoolkit.studentdatabase.Student -import com.taymath.tutortoolkit.studentdatabase.StudentDatabaseDao +import com.taymath.tutortoolkit.database.Student +import com.taymath.tutortoolkit.database.StudentDatabaseDao import kotlinx.coroutines.* class StudentDetailViewModel( diff --git a/app/src/main/java/com/taymath/tutortoolkit/studentdetail/StudentDetailViewModelFactory.kt b/app/src/main/java/com/taymath/tutortoolkit/studentdetail/StudentDetailViewModelFactory.kt index 2ac0467..d608347 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/studentdetail/StudentDetailViewModelFactory.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/studentdetail/StudentDetailViewModelFactory.kt @@ -2,8 +2,7 @@ package com.taymath.tutortoolkit.studentdetail import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.taymath.tutortoolkit.studentdatabase.Student -import com.taymath.tutortoolkit.studentdatabase.StudentDatabaseDao +import com.taymath.tutortoolkit.database.StudentDatabaseDao class StudentDetailViewModelFactory( private val dataSource: StudentDatabaseDao, diff --git a/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentAdapter.kt b/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentAdapter.kt index 40eafef..26a19bc 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentAdapter.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentAdapter.kt @@ -6,7 +6,7 @@ import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import com.taymath.tutortoolkit.databinding.ListItemStudentBinding -import com.taymath.tutortoolkit.studentdatabase.Student +import com.taymath.tutortoolkit.database.Student class StudentAdapter(val clickListener: StudentListener) : ListAdapter(StudentDiffCallback()) { diff --git a/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentBindingUtils.kt b/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentBindingUtils.kt index 3b41353..621036c 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentBindingUtils.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentBindingUtils.kt @@ -4,7 +4,7 @@ import android.widget.ImageView import android.widget.TextView import androidx.databinding.BindingAdapter import com.taymath.tutortoolkit.R -import com.taymath.tutortoolkit.studentdatabase.Student +import com.taymath.tutortoolkit.database.Student @BindingAdapter("subjectText") fun TextView.setSubjectText(item: Student?){ @@ -31,15 +31,22 @@ fun TextView.setGradeLevelText(item: Student?){ fun ImageView.setStudentImage(item: Student?) { item?.let { setImageResource(when (item.iconNumber) { - 1 -> R.drawable.icon_1 - 2 -> R.drawable.icon_2 - 3 -> R.drawable.icon_3 - 4 -> R.drawable.icon_4 - 5 -> R.drawable.icon_5 - 6 -> R.drawable.icon_6 - 7 -> R.drawable.icon_7 - 8 -> R.drawable.icon_8 - else -> R.drawable.icon_1 + 1 -> R.drawable.face1 + 2 -> R.drawable.face2 + 3 -> R.drawable.face3 + 4 -> R.drawable.face4 + 5 -> R.drawable.face5 + 6 -> R.drawable.face6 + 7 -> R.drawable.face7 + 8 -> R.drawable.face8 + 9 -> R.drawable.face9 + 10 -> R.drawable.face10 + 11 -> R.drawable.face11 + 12 -> R.drawable.face12 + 13 -> R.drawable.face13 + 14 -> R.drawable.face14 + 15 -> R.drawable.face15 + else -> R.drawable.face1 }) } } diff --git a/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentListFragment.kt b/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentListFragment.kt index c0efa9f..6739445 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentListFragment.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentListFragment.kt @@ -11,8 +11,7 @@ import androidx.lifecycle.ViewModelProviders import androidx.navigation.fragment.findNavController import com.taymath.tutortoolkit.R import com.taymath.tutortoolkit.databinding.FragmentStudentListBinding -import com.taymath.tutortoolkit.studentdatabase.StudentDatabase -import kotlinx.android.synthetic.main.fragment_add_student.* +import com.taymath.tutortoolkit.database.StudentDatabase /** * A fragment with buttons to record start and end times for sleep, which are saved in @@ -40,7 +39,7 @@ class StudentListFragment : Fragment() { val dataSource = StudentDatabase.getInstance(application).studentDatabaseDao // Create instance of viewModelFactory using DAO and application - val viewModelFactory = StudentListViewModelFactory(dataSource, application) + val viewModelFactory = StudentListViewModelFactory(dataSource) // Get reference to viewModel val studentListViewModel = diff --git a/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentListViewModel.kt b/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentListViewModel.kt index 5259802..6fbacbf 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentListViewModel.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentListViewModel.kt @@ -1,17 +1,14 @@ package com.taymath.tutortoolkit.studentlist -import android.app.Application -import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData -import com.taymath.tutortoolkit.studentdatabase.Student -import com.taymath.tutortoolkit.studentdatabase.StudentDatabaseDao +import androidx.lifecycle.ViewModel +import com.taymath.tutortoolkit.database.StudentDatabaseDao import kotlinx.coroutines.* class StudentListViewModel( - val database: StudentDatabaseDao, - application: Application -) : AndroidViewModel(application) { + val database: StudentDatabaseDao +) : ViewModel() { /** Coroutine setup variables */ diff --git a/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentListViewModelFactory.kt b/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentListViewModelFactory.kt index 50b84e8..a2f8f66 100644 --- a/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentListViewModelFactory.kt +++ b/app/src/main/java/com/taymath/tutortoolkit/studentlist/StudentListViewModelFactory.kt @@ -1,17 +1,15 @@ package com.taymath.tutortoolkit.studentlist -import android.app.Application import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.taymath.tutortoolkit.studentdatabase.StudentDatabaseDao +import com.taymath.tutortoolkit.database.StudentDatabaseDao class StudentListViewModelFactory( - private val dataSource: StudentDatabaseDao, - private val application: Application) : ViewModelProvider.Factory { + private val dataSource: StudentDatabaseDao) : ViewModelProvider.Factory { @Suppress("unchecked_cast") override fun create(modelClass: Class): T { if (modelClass.isAssignableFrom(StudentListViewModel::class.java)) { - return StudentListViewModel(dataSource, application) as T + return StudentListViewModel(dataSource) as T } throw IllegalArgumentException("Unknown ViewModel class") } diff --git a/app/src/main/java/com/taymath/tutortoolkit/titlemenu/TitleMenuFragment.kt b/app/src/main/java/com/taymath/tutortoolkit/titlemenu/TitleMenuFragment.kt new file mode 100644 index 0000000..16d5834 --- /dev/null +++ b/app/src/main/java/com/taymath/tutortoolkit/titlemenu/TitleMenuFragment.kt @@ -0,0 +1,65 @@ +package com.taymath.tutortoolkit.titlemenu + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.databinding.DataBindingUtil +import androidx.fragment.app.Fragment +import androidx.lifecycle.Observer +import androidx.lifecycle.ViewModelProviders +import androidx.navigation.fragment.findNavController +import com.taymath.tutortoolkit.R +import com.taymath.tutortoolkit.databinding.FragmentTitleMenuBinding +import com.taymath.tutortoolkit.database.StudentDatabase + +class TitleMenuFragment: Fragment() { + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle?): View?{ + + // Get a reference to the binding object and inflate the fragment views. + val binding: FragmentTitleMenuBinding = DataBindingUtil.inflate( + inflater, R.layout.fragment_title_menu, container, false) + + // Get reference to application + val application = requireNotNull(this.activity).application + + // Get a reference to the DAO + val dataSource = StudentDatabase.getInstance(application).studentDatabaseDao + + // Create instance of viewModelFactory using DAO and application + val viewModelFactory = TitleMenuViewModelFactory(dataSource, application) + + // Get reference to viewModel + val titleMenuViewModel = + ViewModelProviders.of( + this, viewModelFactory).get(TitleMenuViewModel::class.java) + + // Add ViewModel to our binding + binding.titleMenuViewModel = titleMenuViewModel + + binding.setLifecycleOwner(this) + + // Add an Observer to the state variable for Navigating when Add Student button is clicked. + titleMenuViewModel.navigateToStudentList.observe(viewLifecycleOwner, Observer { + if (it == true) { // Observed state is true. + this.findNavController().navigate( + TitleMenuFragmentDirections.actionTitleMenuFragmentToStudentListFragment()) + titleMenuViewModel.onNavigated() + } + }) + + // Add an Observer to the state variable for Navigating when Add Student button is clicked. + titleMenuViewModel.navigateToTodoList.observe(viewLifecycleOwner, Observer { + if (it == true) { // Observed state is true. + this.findNavController().navigate( + TitleMenuFragmentDirections.actionTitleMenuFragmentToTodoListFragment()) + titleMenuViewModel.onNavigated() + } + }) + + return binding.root + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/taymath/tutortoolkit/titlemenu/TitleMenuViewModel.kt b/app/src/main/java/com/taymath/tutortoolkit/titlemenu/TitleMenuViewModel.kt new file mode 100644 index 0000000..0117f44 --- /dev/null +++ b/app/src/main/java/com/taymath/tutortoolkit/titlemenu/TitleMenuViewModel.kt @@ -0,0 +1,34 @@ +package com.taymath.tutortoolkit.titlemenu + +import android.app.Application +import androidx.lifecycle.AndroidViewModel +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import com.taymath.tutortoolkit.database.StudentDatabaseDao + +class TitleMenuViewModel( + val database: StudentDatabaseDao, + application: Application): AndroidViewModel(application) { + + private val _navigateToStudentList = MutableLiveData() + val navigateToStudentList: LiveData + get() = _navigateToStudentList + + private val _navigateToTodoList = MutableLiveData() + val navigateToTodoList: LiveData + get() = _navigateToTodoList + + fun onNavigateToStudentList() { + _navigateToStudentList.value = true + } + + fun onNavigateToTodoList(){ + _navigateToTodoList.value = true + } + + fun onNavigated() { + _navigateToStudentList.value = false + _navigateToTodoList.value = false + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/taymath/tutortoolkit/titlemenu/TitleMenuViewModelFactory.kt b/app/src/main/java/com/taymath/tutortoolkit/titlemenu/TitleMenuViewModelFactory.kt new file mode 100644 index 0000000..d91bb0b --- /dev/null +++ b/app/src/main/java/com/taymath/tutortoolkit/titlemenu/TitleMenuViewModelFactory.kt @@ -0,0 +1,19 @@ +package com.taymath.tutortoolkit.titlemenu + +import android.app.Application +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider +import com.taymath.tutortoolkit.database.StudentDatabaseDao + +class TitleMenuViewModelFactory( + private val dataSource: StudentDatabaseDao, + private val application: Application +) : ViewModelProvider.Factory { + @Suppress("unchecked_cast") + override fun create(modelClass: Class): T { + if (modelClass.isAssignableFrom(TitleMenuViewModel::class.java)) { + return TitleMenuViewModel(dataSource, application) as T + } + throw IllegalArgumentException("Unknown ViewModel class") + } +} \ No newline at end of file diff --git a/app/src/main/java/com/taymath/tutortoolkit/todolist/TodoAdapter.kt b/app/src/main/java/com/taymath/tutortoolkit/todolist/TodoAdapter.kt new file mode 100644 index 0000000..130fb41 --- /dev/null +++ b/app/src/main/java/com/taymath/tutortoolkit/todolist/TodoAdapter.kt @@ -0,0 +1,61 @@ +package com.taymath.tutortoolkit.todolist + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.ListAdapter +import androidx.recyclerview.widget.RecyclerView +import com.taymath.tutortoolkit.database.Todo +import com.taymath.tutortoolkit.databinding.ListItemTodoBinding + +class TodoAdapter(val clickListener: TodoListener) : ListAdapter( + TodoDiffCallback() +) { + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + return ViewHolder.from( + parent + ) + } + + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + holder.bind(clickListener, getItem(position)!!) + } + + + class ViewHolder private constructor(val binding: ListItemTodoBinding): RecyclerView.ViewHolder(binding.root) { + + fun bind(clickListener: TodoListener,item: Todo) { + binding.todo = item + binding.clickListener = clickListener + binding.executePendingBindings() + } + + companion object { + fun from(parent: ViewGroup): ViewHolder { + val layoutInflater = LayoutInflater.from(parent.context) + val binding = ListItemTodoBinding.inflate(layoutInflater, parent, false) + return ViewHolder( + binding + ) + } + } + + } + + class TodoDiffCallback : DiffUtil.ItemCallback() { + override fun areItemsTheSame(oldItem: Todo, newItem: Todo): Boolean { + return oldItem.todoId == newItem.todoId + } + + override fun areContentsTheSame(oldItem: Todo, newItem: Todo): Boolean { + return oldItem == newItem + } + + } + + class TodoListener(val clickListener: (todoId: Long) -> Unit) { + fun onClick(todo: Todo) = clickListener(todo.todoId) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/taymath/tutortoolkit/todolist/TodoBindingUtils.kt b/app/src/main/java/com/taymath/tutortoolkit/todolist/TodoBindingUtils.kt new file mode 100644 index 0000000..94d5b00 --- /dev/null +++ b/app/src/main/java/com/taymath/tutortoolkit/todolist/TodoBindingUtils.kt @@ -0,0 +1,13 @@ +package com.taymath.tutortoolkit.todolist + +import android.widget.TextView +import androidx.databinding.BindingAdapter +import com.taymath.tutortoolkit.database.Todo + +@BindingAdapter("todoText") +fun TextView.setGradeLevelText(item: Todo?){ + item?.let { + text =item.todoString + } +} + diff --git a/app/src/main/java/com/taymath/tutortoolkit/todolist/TodoListFragment.kt b/app/src/main/java/com/taymath/tutortoolkit/todolist/TodoListFragment.kt new file mode 100644 index 0000000..1ef48dd --- /dev/null +++ b/app/src/main/java/com/taymath/tutortoolkit/todolist/TodoListFragment.kt @@ -0,0 +1,71 @@ +package com.taymath.tutortoolkit.todolist + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.databinding.DataBindingUtil +import androidx.fragment.app.Fragment +import androidx.lifecycle.Observer +import androidx.lifecycle.ViewModelProviders +import androidx.navigation.fragment.findNavController +import com.taymath.tutortoolkit.R +import com.taymath.tutortoolkit.database.StudentDatabase +import com.taymath.tutortoolkit.databinding.FragmentTodoListBinding + +class TodoListFragment : Fragment() { + + /** + * Called when the Fragment is ready to display content to the screen. + * + * This function uses DataBindingUtil to inflate R.layout.fragment_get_todo. + */ + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle?): View? { + + // Get a reference to the binding object and inflate the fragment views. + val binding: FragmentTodoListBinding = DataBindingUtil.inflate( + inflater, R.layout.fragment_todo_list, container, false) + + // Get reference to application + val application = requireNotNull(this.activity).application + + // Get a reference to the DAO + val dataSource = StudentDatabase.getInstance(application).studentDatabaseDao + + // Create instance of viewModelFactory using DAO + val viewModelFactory = TodoListViewModelFactory(dataSource) + + // Get reference to viewModel + val todoListViewModel = + ViewModelProviders.of( + this, viewModelFactory).get(TodoListViewModel::class.java) + + binding.todoListViewModel = todoListViewModel + + binding.setLifecycleOwner(this) + + todoListViewModel.navigateToAddTodo.observe(viewLifecycleOwner, Observer { + if (it == true) { // Observed state is true. + this.findNavController().navigate( + TodoListFragmentDirections.actionTodoListFragmentToGetTodoFragment()) + todoListViewModel.doneNavigating() + } + }) + + // Initialize adapter and add to studentList + val adapter = TodoAdapter(TodoAdapter.TodoListener { + todoId -> todoListViewModel.onDeleteTodo(todoId) + }) + binding.todoList.adapter = adapter + + // If we have a list of grades, send it to the adapter + todoListViewModel.todos.observe(viewLifecycleOwner, Observer { + it?.let { + adapter.submitList(it) + } + }) + + return binding.root + } +} \ No newline at end of file diff --git a/app/src/main/java/com/taymath/tutortoolkit/todolist/TodoListViewModel.kt b/app/src/main/java/com/taymath/tutortoolkit/todolist/TodoListViewModel.kt new file mode 100644 index 0000000..03c18ec --- /dev/null +++ b/app/src/main/java/com/taymath/tutortoolkit/todolist/TodoListViewModel.kt @@ -0,0 +1,57 @@ +package com.taymath.tutortoolkit.todolist + +import android.app.Application +import androidx.lifecycle.* +import com.taymath.tutortoolkit.database.Student +import com.taymath.tutortoolkit.database.StudentDatabaseDao +import com.taymath.tutortoolkit.database.Todo +import kotlinx.coroutines.* + +class TodoListViewModel( + val database: StudentDatabaseDao +) : ViewModel() { + + // Grab grades from grades_table with StudentId + val todos = database.getAllTodos() + + + private val viewModelJob = Job() + + // Initialize uiScope + private val uiScope = CoroutineScope(Dispatchers.Main + viewModelJob) + + // Add variable to navigation signaller + private val _navigateToAddTodo = MutableLiveData() + val navigateToAddTodo: LiveData + get() = _navigateToAddTodo + + private val _deleteTodo = MutableLiveData() + val deleteTodo: LiveData + get() = _deleteTodo + + val students = database.getAllStudents() + + override fun onCleared() { + super.onCleared() + viewModelJob.cancel() + } + + fun onDeleteTodo(todoId: Long) { + uiScope.launch { + withContext(Dispatchers.IO) { + database.deleteTodoById(todoId) + } + } + } + + // set navigate to student to be true when clicked + fun onNavToAddStudent() { + _navigateToAddTodo.value = true + } + + // Reset nav value after navigation + fun doneNavigating() { + _navigateToAddTodo.value = null + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/taymath/tutortoolkit/todolist/TodoListViewModelFactory.kt b/app/src/main/java/com/taymath/tutortoolkit/todolist/TodoListViewModelFactory.kt new file mode 100644 index 0000000..aaaa426 --- /dev/null +++ b/app/src/main/java/com/taymath/tutortoolkit/todolist/TodoListViewModelFactory.kt @@ -0,0 +1,22 @@ +package com.taymath.tutortoolkit.todolist + +import android.app.Application +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider +import com.taymath.tutortoolkit.database.StudentDatabaseDao + +/** + * This is pretty much boiler plate code for a ViewModel Factory. + * + * Provides the SleepDatabaseDao and context to the ViewModel. + */ +class TodoListViewModelFactory( + private val dataSource: StudentDatabaseDao) : ViewModelProvider.Factory { + @Suppress("unchecked_cast") + override fun create(modelClass: Class): T { + if (modelClass.isAssignableFrom(TodoListViewModel::class.java)) { + return TodoListViewModel(dataSource) as T + } + throw IllegalArgumentException("Unknown ViewModel class") + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/face1.png b/app/src/main/res/drawable/face1.png new file mode 100644 index 0000000..384b195 Binary files /dev/null and b/app/src/main/res/drawable/face1.png differ diff --git a/app/src/main/res/drawable/face10.png b/app/src/main/res/drawable/face10.png new file mode 100644 index 0000000..f0cb680 Binary files /dev/null and b/app/src/main/res/drawable/face10.png differ diff --git a/app/src/main/res/drawable/face11.png b/app/src/main/res/drawable/face11.png new file mode 100644 index 0000000..354afc8 Binary files /dev/null and b/app/src/main/res/drawable/face11.png differ diff --git a/app/src/main/res/drawable/face12.png b/app/src/main/res/drawable/face12.png new file mode 100644 index 0000000..2bbf243 Binary files /dev/null and b/app/src/main/res/drawable/face12.png differ diff --git a/app/src/main/res/drawable/face13.png b/app/src/main/res/drawable/face13.png new file mode 100644 index 0000000..1e7e5b7 Binary files /dev/null and b/app/src/main/res/drawable/face13.png differ diff --git a/app/src/main/res/drawable/face14.png b/app/src/main/res/drawable/face14.png new file mode 100644 index 0000000..6b94853 Binary files /dev/null and b/app/src/main/res/drawable/face14.png differ diff --git a/app/src/main/res/drawable/face15.png b/app/src/main/res/drawable/face15.png new file mode 100644 index 0000000..9fd992b Binary files /dev/null and b/app/src/main/res/drawable/face15.png differ diff --git a/app/src/main/res/drawable/face2.png b/app/src/main/res/drawable/face2.png new file mode 100644 index 0000000..29a751d Binary files /dev/null and b/app/src/main/res/drawable/face2.png differ diff --git a/app/src/main/res/drawable/face3.png b/app/src/main/res/drawable/face3.png new file mode 100644 index 0000000..fb96da2 Binary files /dev/null and b/app/src/main/res/drawable/face3.png differ diff --git a/app/src/main/res/drawable/face4.png b/app/src/main/res/drawable/face4.png new file mode 100644 index 0000000..9371fe3 Binary files /dev/null and b/app/src/main/res/drawable/face4.png differ diff --git a/app/src/main/res/drawable/face5.png b/app/src/main/res/drawable/face5.png new file mode 100644 index 0000000..06991dc Binary files /dev/null and b/app/src/main/res/drawable/face5.png differ diff --git a/app/src/main/res/drawable/face6.png b/app/src/main/res/drawable/face6.png new file mode 100644 index 0000000..1370864 Binary files /dev/null and b/app/src/main/res/drawable/face6.png differ diff --git a/app/src/main/res/drawable/face7.png b/app/src/main/res/drawable/face7.png new file mode 100644 index 0000000..16da563 Binary files /dev/null and b/app/src/main/res/drawable/face7.png differ diff --git a/app/src/main/res/drawable/face8.png b/app/src/main/res/drawable/face8.png new file mode 100644 index 0000000..613cdaa Binary files /dev/null and b/app/src/main/res/drawable/face8.png differ diff --git a/app/src/main/res/drawable/face9.png b/app/src/main/res/drawable/face9.png new file mode 100644 index 0000000..0a7359d Binary files /dev/null and b/app/src/main/res/drawable/face9.png differ diff --git a/app/src/main/res/drawable/main_icon.png b/app/src/main/res/drawable/main_icon.png new file mode 100644 index 0000000..d1f909c Binary files /dev/null and b/app/src/main/res/drawable/main_icon.png differ diff --git a/app/src/main/res/layout/fragment_add_grade.xml b/app/src/main/res/layout/fragment_add_grade.xml index 0bd2f28..5ad3523 100644 --- a/app/src/main/res/layout/fragment_add_grade.xml +++ b/app/src/main/res/layout/fragment_add_grade.xml @@ -11,7 +11,7 @@ type="com.taymath.tutortoolkit.addgrade.AddGradeViewModel"/> + type="com.taymath.tutortoolkit.database.Grade" /> diff --git a/app/src/main/res/layout/fragment_add_student.xml b/app/src/main/res/layout/fragment_add_student.xml index cca236f..d9649b6 100644 --- a/app/src/main/res/layout/fragment_add_student.xml +++ b/app/src/main/res/layout/fragment_add_student.xml @@ -11,7 +11,7 @@ type="com.taymath.tutortoolkit.addstudent.AddStudentViewModel"/> + type="com.taymath.tutortoolkit.database.Student" /> + app:srcCompat="@drawable/face1" /> + app:srcCompat="@drawable/face2" /> + app:srcCompat="@drawable/face3" /> + app:srcCompat="@drawable/face4" /> + app:srcCompat="@drawable/face5" /> + app:srcCompat="@drawable/face6" /> + app:srcCompat="@drawable/face7" /> + app:srcCompat="@drawable/face8" /> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_get_todo.xml b/app/src/main/res/layout/fragment_get_todo.xml new file mode 100644 index 0000000..a406e54 --- /dev/null +++ b/app/src/main/res/layout/fragment_get_todo.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + +