diff --git a/app/src/main/java/com/dzeio/openhealth/core/BaseActivity.kt b/app/src/main/java/com/dzeio/openhealth/core/BaseActivity.kt index e92cbb8..8705c2b 100644 --- a/app/src/main/java/com/dzeio/openhealth/core/BaseActivity.kt +++ b/app/src/main/java/com/dzeio/openhealth/core/BaseActivity.kt @@ -5,6 +5,9 @@ import android.view.LayoutInflater import androidx.appcompat.app.AppCompatActivity import androidx.viewbinding.ViewBinding +/** + * Base around the Activity class to simplify usage + */ abstract class BaseActivity() : AppCompatActivity() { @@ -28,4 +31,4 @@ abstract class BaseActivity() : AppCompatActivity() { } protected open fun onCreated(savedInstanceState: Bundle?) {} -} \ No newline at end of file +} diff --git a/app/src/main/java/com/dzeio/openhealth/core/BaseAdapter.kt b/app/src/main/java/com/dzeio/openhealth/core/BaseAdapter.kt index 1e5e2f8..643869c 100644 --- a/app/src/main/java/com/dzeio/openhealth/core/BaseAdapter.kt +++ b/app/src/main/java/com/dzeio/openhealth/core/BaseAdapter.kt @@ -6,9 +6,11 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import androidx.viewbinding.ViewBinding +/** + * Base around the adapter to simplify usage + */ abstract class BaseAdapter : RecyclerView.Adapter>() { private var items = mutableListOf() - // private var lastPosition = -1 @SuppressLint("NotifyDataSetChanged") fun set(items: List) { @@ -29,6 +31,9 @@ abstract class BaseAdapter : RecyclerView.Adapter VB + /** + * function run when an item is displayed + */ abstract fun onBindData(holder: BaseViewHolder, item: T, position: Int) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder { @@ -43,4 +48,4 @@ abstract class BaseAdapter : RecyclerView.Adapter { @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun insert(vararg obj: T): List @@ -18,4 +20,4 @@ interface BaseDao { @Delete suspend fun delete(vararg obj: T) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/dzeio/openhealth/core/BaseFragment.kt b/app/src/main/java/com/dzeio/openhealth/core/BaseFragment.kt index e69a93a..73370c6 100644 --- a/app/src/main/java/com/dzeio/openhealth/core/BaseFragment.kt +++ b/app/src/main/java/com/dzeio/openhealth/core/BaseFragment.kt @@ -3,6 +3,9 @@ package com.dzeio.openhealth.core import androidx.lifecycle.ViewModelProvider import androidx.viewbinding.ViewBinding +/** + * Base around the Fragment class to simplify usage + */ abstract class BaseFragment( private val viewModelClass: Class ) : diff --git a/app/src/main/java/com/dzeio/openhealth/core/BaseFullscreenDialog.kt b/app/src/main/java/com/dzeio/openhealth/core/BaseFullscreenDialog.kt index e613597..87c3d15 100644 --- a/app/src/main/java/com/dzeio/openhealth/core/BaseFullscreenDialog.kt +++ b/app/src/main/java/com/dzeio/openhealth/core/BaseFullscreenDialog.kt @@ -13,8 +13,14 @@ import androidx.viewbinding.ViewBinding import com.dzeio.openhealth.R import com.google.android.material.dialog.MaterialAlertDialogBuilder +/** + * Base around the DialogFragment class to simplify usage + */ abstract class BaseFullscreenDialog(private val viewModelClass: Class) : DialogFragment() { + /** + * Lazyload the viewModel + */ val viewModel by lazy { ViewModelProvider(this)[viewModelClass] } @@ -22,14 +28,15 @@ abstract class BaseFullscreenDialog(privat private var _binding: VB? = null val binding get() = _binding!! - /** * Function to inflate the Fragment Bindings */ abstract val bindingInflater: (LayoutInflater) -> VB - abstract val isFullscreenLayout: Boolean + /** + * Function run when the dialog was created + */ open fun onCreated(savedInstanceState: Bundle?) {} override fun onCreateView( @@ -59,14 +66,18 @@ abstract class BaseFullscreenDialog(privat onDialogInit(dialog) -// onCreated() - dialog } ?: throw IllegalStateException("Activity cannot be null") } - open fun onDialogInit(dialog: Dialog): Unit {} + /** + * Function to modify the Dialog + */ + open fun onDialogInit(dialog: Dialog) {} + /** + * FIXME: Remove it from the Base and put it in the implementations + */ override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { super.onCreateOptionsMenu(menu, inflater) @@ -75,10 +86,6 @@ abstract class BaseFullscreenDialog(privat super.onCreateOptionsMenu(menu, inflater) } - override fun onDestroy() { - super.onDestroy() - } - /** * Destroy binding */ @@ -86,4 +93,4 @@ abstract class BaseFullscreenDialog(privat super.onDestroyView() _binding = null } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/dzeio/openhealth/core/BaseSimpleDialog.kt b/app/src/main/java/com/dzeio/openhealth/core/BaseSimpleDialog.kt index 9adf943..e13e2a8 100644 --- a/app/src/main/java/com/dzeio/openhealth/core/BaseSimpleDialog.kt +++ b/app/src/main/java/com/dzeio/openhealth/core/BaseSimpleDialog.kt @@ -8,8 +8,16 @@ import androidx.fragment.app.DialogFragment import androidx.viewbinding.ViewBinding import com.google.android.material.dialog.MaterialAlertDialogBuilder +/** + * Base around the DialogFragment class to simplify usage + */ abstract class BaseSimpleDialog : DialogFragment() { + /** + * Function to inflate the Fragment Bindings + */ + abstract val bindingInflater: (LayoutInflater) -> VB + private var _binding: VB? = null val binding get() = _binding!! @@ -36,16 +44,20 @@ abstract class BaseSimpleDialog : DialogFragment() { } ?: throw IllegalStateException("Activity cannot be null") } + /** + * Function to add more customization to the AlertDialogBuilder + */ open fun onBuilderInit(builder: MaterialAlertDialogBuilder) {} + /** + * Function that allow to modificate some elements of the final dialog + */ open fun onDialogInit(dialog: AlertDialog) {} - open fun onCreated() {} - /** - * Function to inflate the Fragment Bindings + * Function run when the dialog is created */ - abstract val bindingInflater: (LayoutInflater) -> VB + open fun onCreated() {} /** * Destroy binding diff --git a/app/src/main/java/com/dzeio/openhealth/core/BaseStaticFragment.kt b/app/src/main/java/com/dzeio/openhealth/core/BaseStaticFragment.kt index 0e2e17d..4057ca9 100644 --- a/app/src/main/java/com/dzeio/openhealth/core/BaseStaticFragment.kt +++ b/app/src/main/java/com/dzeio/openhealth/core/BaseStaticFragment.kt @@ -1,6 +1,5 @@ package com.dzeio.openhealth.core -import android.content.Context import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -8,11 +7,23 @@ import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.viewbinding.ViewBinding +/** + * Base around the Fragment class to simplify usage + * + * Without ViewModel support (use `BaseFragment` instead) + */ abstract class BaseStaticFragment : Fragment() { private var _binding: VB? = null val binding get() = _binding!! + /** + * Function to inflate the Fragment Bindings + * + * use like this: `ViewBinding::inflater` + */ + abstract val bindingInflater: (LayoutInflater, ViewGroup?, Boolean) -> VB + /** * Setup everything! */ @@ -28,12 +39,6 @@ abstract class BaseStaticFragment : Fragment() { return binding.root } - /** - * Function to inflate the Fragment Bindings - * - * use like this: `ViewBinding::inflater` - */ - abstract val bindingInflater: (LayoutInflater, ViewGroup?, Boolean) -> VB /** * Destroy binding diff --git a/app/src/main/java/com/dzeio/openhealth/core/BaseViewHolder.kt b/app/src/main/java/com/dzeio/openhealth/core/BaseViewHolder.kt index fcadf2c..3c8113c 100644 --- a/app/src/main/java/com/dzeio/openhealth/core/BaseViewHolder.kt +++ b/app/src/main/java/com/dzeio/openhealth/core/BaseViewHolder.kt @@ -3,7 +3,10 @@ package com.dzeio.openhealth.core import androidx.recyclerview.widget.RecyclerView import androidx.viewbinding.ViewBinding +/** + * Simple implementation of RecyclerView.ViewHolder to limitate usage + */ class BaseViewHolder( val binding : VB ) : RecyclerView.ViewHolder(binding.root) { -} \ No newline at end of file +} diff --git a/app/src/main/java/com/dzeio/openhealth/core/BaseViewModel.kt b/app/src/main/java/com/dzeio/openhealth/core/BaseViewModel.kt index fe5c162..aa6c1fc 100644 --- a/app/src/main/java/com/dzeio/openhealth/core/BaseViewModel.kt +++ b/app/src/main/java/com/dzeio/openhealth/core/BaseViewModel.kt @@ -2,4 +2,7 @@ package com.dzeio.openhealth.core import androidx.lifecycle.ViewModel -abstract class BaseViewModel : ViewModel() \ No newline at end of file +/** + * Simple Extension of the base ViewModel + */ +abstract class BaseViewModel : ViewModel() diff --git a/app/src/main/java/com/dzeio/openhealth/core/BaseWorker.kt b/app/src/main/java/com/dzeio/openhealth/core/BaseWorker.kt index 60ffde0..3d3f2bd 100644 --- a/app/src/main/java/com/dzeio/openhealth/core/BaseWorker.kt +++ b/app/src/main/java/com/dzeio/openhealth/core/BaseWorker.kt @@ -9,6 +9,9 @@ import androidx.work.Worker import androidx.work.WorkerParameters import com.dzeio.openhealth.Application +/** + * Worker Wrapper to simplify work and usage + */ abstract class BaseWorker(context: Context, params: WorkerParameters) : Worker(context, params) { companion object { @@ -19,4 +22,4 @@ abstract class BaseWorker(context: Context, params: WorkerParameters) : Worker(c .enqueueUniquePeriodicWork(tag, ExistingPeriodicWorkPolicy.KEEP, request) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/dzeio/openhealth/core/Observable.kt b/app/src/main/java/com/dzeio/openhealth/core/Observable.kt index 5b1f872..e7df48f 100644 --- a/app/src/main/java/com/dzeio/openhealth/core/Observable.kt +++ b/app/src/main/java/com/dzeio/openhealth/core/Observable.kt @@ -3,6 +3,9 @@ package com.dzeio.openhealth.core import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData +/** + * Simple Observable implementation + */ open class Observable(baseValue: T) { private val functionObservers: ArrayList<(T) -> Unit> = ArrayList() diff --git a/app/src/main/java/com/dzeio/openhealth/ui/water/EditWaterDialog.kt b/app/src/main/java/com/dzeio/openhealth/ui/water/EditWaterDialog.kt index 916490a..1915680 100644 --- a/app/src/main/java/com/dzeio/openhealth/ui/water/EditWaterDialog.kt +++ b/app/src/main/java/com/dzeio/openhealth/ui/water/EditWaterDialog.kt @@ -20,7 +20,7 @@ import com.google.android.material.datepicker.DateValidatorPointBackward import com.google.android.material.datepicker.MaterialDatePicker import com.google.android.material.dialog.MaterialAlertDialogBuilder import dagger.hilt.android.AndroidEntryPoint -import java.util.* +import java.util.Date @AndroidEntryPoint class EditWaterDialog : @@ -31,8 +31,6 @@ class EditWaterDialog : private val args: EditWaterDialogArgs by navArgs() - override val isFullscreenLayout = true - var newValue: Int = 0 override fun onDialogInit(dialog: Dialog) { diff --git a/app/src/main/java/com/dzeio/openhealth/ui/weight/EditWeightDialog.kt b/app/src/main/java/com/dzeio/openhealth/ui/weight/EditWeightDialog.kt index d3447fa..1d3eec6 100644 --- a/app/src/main/java/com/dzeio/openhealth/ui/weight/EditWeightDialog.kt +++ b/app/src/main/java/com/dzeio/openhealth/ui/weight/EditWeightDialog.kt @@ -28,8 +28,6 @@ class EditWeightDialog : override val bindingInflater: (LayoutInflater) -> DialogEditWeightBinding = DialogEditWeightBinding::inflate - override val isFullscreenLayout = true - private val args: EditWeightDialogArgs by navArgs() lateinit var weight: Weight