From be6331256cf8ffabd45eaf60a3d635d2b1abba99 Mon Sep 17 00:00:00 2001 From: "muindi.stephen" Date: Tue, 16 Apr 2024 08:42:28 +0300 Subject: [PATCH 1/2] added search functionality to enable farmer search through various cycles --- .../crop_cycle/CropCycleTasksListFragment.kt | 32 +++++++++++++++ .../ui/fragments/splash/SplashFragment.kt | 3 +- .../smartmkulima/utils/ExtensionFunctions.kt | 30 ++++++++++++++ app/src/main/res/drawable/eclectics_svg.xml | 22 ++++++++++ app/src/main/res/drawable/group.xml | 14 +++++++ app/src/main/res/layout/custom_toolbar.xml | 1 + .../fragment_auto_create_crop_cycle.xml | 2 +- .../res/layout/fragment_change_password.xml | 2 +- .../res/layout/fragment_crop_cycle_list.xml | 40 ++++++++++++++++--- .../layout/fragment_email_verification.xml | 2 +- .../res/layout/fragment_home_dashboard.xml | 1 + .../main/res/layout/fragment_login_main.xml | 2 +- .../main/res/layout/fragment_main_auths.xml | 2 +- .../layout/fragment_phone_verification.xml | 2 +- .../fragment_recover_password_with_email.xml | 4 +- .../fragment_recover_password_with_phone.xml | 4 +- .../fragment_sign_in_details_with_email.xml | 4 +- .../fragment_sign_in_details_with_phone.xml | 2 +- .../fragment_sign_up_details_with_email.xml | 2 +- .../fragment_sign_up_details_with_phone.xml | 4 +- app/src/main/res/layout/fragment_splash.xml | 21 ++-------- app/src/main/res/layout/transaction_row.xml | 1 + app/src/main/res/values/colors.xml | 4 +- app/src/main/res/values/themes.xml | 3 +- 24 files changed, 160 insertions(+), 44 deletions(-) create mode 100644 app/src/main/res/drawable/eclectics_svg.xml create mode 100644 app/src/main/res/drawable/group.xml diff --git a/app/src/main/java/com/steve_md/smartmkulima/ui/fragments/others/crop_cycle/CropCycleTasksListFragment.kt b/app/src/main/java/com/steve_md/smartmkulima/ui/fragments/others/crop_cycle/CropCycleTasksListFragment.kt index f2e96b6..55b57c8 100644 --- a/app/src/main/java/com/steve_md/smartmkulima/ui/fragments/others/crop_cycle/CropCycleTasksListFragment.kt +++ b/app/src/main/java/com/steve_md/smartmkulima/ui/fragments/others/crop_cycle/CropCycleTasksListFragment.kt @@ -7,6 +7,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.inputmethod.EditorInfo import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import androidx.navigation.fragment.findNavController @@ -22,6 +23,7 @@ import com.steve_md.smartmkulima.model.CropCycleTask import com.steve_md.smartmkulima.model.Cycle import com.steve_md.smartmkulima.model.FarmEquipment import com.steve_md.smartmkulima.utils.displaySnackBar +import com.steve_md.smartmkulima.utils.hideKeyboard import com.steve_md.smartmkulima.utils.toast import retrofit2.Call import retrofit2.Response @@ -92,6 +94,36 @@ class CropCycleTasksListFragment : Fragment() { filterCycles("Livestock cycle") } + binding.searchProduct.setOnEditorActionListener { _, actionId, _ -> + if (actionId == EditorInfo.IME_ACTION_SEARCH) { + + hideKeyboard() + + val searchText = binding.searchView.editText?.text.toString().trim() + + if (searchText.isEmpty()) { + toast("Enter some text in order to search") + false + } + filterCycles(searchText) + true + } else { + false + } + + } + + binding.searchView.setEndIconOnClickListener { + hideKeyboard() + + if (binding.searchView.editText?.text.isNullOrEmpty()) { + return@setEndIconOnClickListener + } + + binding.searchView.editText?.setText("") + getAllAvailableCropCycle() + } + } // Fetch from remote API (web-service) diff --git a/app/src/main/java/com/steve_md/smartmkulima/ui/fragments/splash/SplashFragment.kt b/app/src/main/java/com/steve_md/smartmkulima/ui/fragments/splash/SplashFragment.kt index 37f1207..530b9b3 100644 --- a/app/src/main/java/com/steve_md/smartmkulima/ui/fragments/splash/SplashFragment.kt +++ b/app/src/main/java/com/steve_md/smartmkulima/ui/fragments/splash/SplashFragment.kt @@ -13,6 +13,7 @@ import androidx.navigation.fragment.findNavController import com.google.firebase.auth.FirebaseAuth import com.steve_md.smartmkulima.R import com.steve_md.smartmkulima.databinding.FragmentSplashBinding +import com.steve_md.smartmkulima.utils.makeStatusBarTransparent import dagger.hilt.android.AndroidEntryPoint @@ -33,10 +34,10 @@ class SplashFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + // makeStatusBarTransparent() val userIsLoggedIn = FirebaseAuth.getInstance().currentUser - Handler(Looper.getMainLooper()).postDelayed({ if (userIsLoggedIn != null) { diff --git a/app/src/main/java/com/steve_md/smartmkulima/utils/ExtensionFunctions.kt b/app/src/main/java/com/steve_md/smartmkulima/utils/ExtensionFunctions.kt index e5631a2..57154ee 100644 --- a/app/src/main/java/com/steve_md/smartmkulima/utils/ExtensionFunctions.kt +++ b/app/src/main/java/com/steve_md/smartmkulima/utils/ExtensionFunctions.kt @@ -1,9 +1,15 @@ package com.steve_md.smartmkulima.utils import android.app.Activity +import android.graphics.Color +import android.os.Build import android.view.View +import android.view.WindowManager import android.view.inputmethod.InputMethodManager +import android.widget.FrameLayout import android.widget.Toast +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.updateMargins import androidx.fragment.app.Fragment import com.google.android.material.snackbar.Snackbar @@ -43,3 +49,27 @@ inline fun safeCall(action: () -> Resource): Resource { } } +fun Fragment.makeStatusBarTransparent() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + requireActivity().window.apply { + clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) + addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + decorView.systemUiVisibility = + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or + View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR + } else { + decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + } + statusBarColor = Color.TRANSPARENT + } + } +} + + +fun Fragment.hideSupportActionBar() { + (requireActivity() as AppCompatActivity).supportActionBar?.hide() + val layoutparams = view!!.layoutParams as FrameLayout.LayoutParams + layoutparams.updateMargins(top = 0) +} + diff --git a/app/src/main/res/drawable/eclectics_svg.xml b/app/src/main/res/drawable/eclectics_svg.xml new file mode 100644 index 0000000..7815308 --- /dev/null +++ b/app/src/main/res/drawable/eclectics_svg.xml @@ -0,0 +1,22 @@ + + + + + + diff --git a/app/src/main/res/drawable/group.xml b/app/src/main/res/drawable/group.xml new file mode 100644 index 0000000..d12ba3c --- /dev/null +++ b/app/src/main/res/drawable/group.xml @@ -0,0 +1,14 @@ + + + + diff --git a/app/src/main/res/layout/custom_toolbar.xml b/app/src/main/res/layout/custom_toolbar.xml index e3ff7b0..5a695e9 100644 --- a/app/src/main/res/layout/custom_toolbar.xml +++ b/app/src/main/res/layout/custom_toolbar.xml @@ -53,6 +53,7 @@ android:alpha="1" android:textSize="12sp" android:textStyle="bold" + android:textColor="@color/main" android:layout_marginTop="4dp" android:fontFamily="@font/montserrat_medium" app:layout_constraintStart_toStartOf="@+id/textViewUserNameProfile" diff --git a/app/src/main/res/layout/fragment_auto_create_crop_cycle.xml b/app/src/main/res/layout/fragment_auto_create_crop_cycle.xml index b36b908..dd453f7 100644 --- a/app/src/main/res/layout/fragment_auto_create_crop_cycle.xml +++ b/app/src/main/res/layout/fragment_auto_create_crop_cycle.xml @@ -139,7 +139,7 @@ android:fontFamily="@font/montserrat_medium" android:padding="16dp" android:text="Schedule" - android:textColor="@color/main1" + android:textColor="@color/main" android:textSize="12sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="1.0" diff --git a/app/src/main/res/layout/fragment_change_password.xml b/app/src/main/res/layout/fragment_change_password.xml index 99726d0..718259f 100644 --- a/app/src/main/res/layout/fragment_change_password.xml +++ b/app/src/main/res/layout/fragment_change_password.xml @@ -25,7 +25,7 @@ android:layout_width="38.75dp" android:layout_height="50.45dp" android:layout_marginTop="1dp" - android:src="@drawable/ic_plant_growing_svgrepo_com2" + android:src="@drawable/group" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/mainAuthsToolbar" /> diff --git a/app/src/main/res/layout/fragment_crop_cycle_list.xml b/app/src/main/res/layout/fragment_crop_cycle_list.xml index 4fab4cb..182f8db 100644 --- a/app/src/main/res/layout/fragment_crop_cycle_list.xml +++ b/app/src/main/res/layout/fragment_crop_cycle_list.xml @@ -39,17 +39,45 @@ android:textSize="18sp" /> + + + + + + + + diff --git a/app/src/main/res/layout/fragment_home_dashboard.xml b/app/src/main/res/layout/fragment_home_dashboard.xml index 22ac9c7..f611ef2 100644 --- a/app/src/main/res/layout/fragment_home_dashboard.xml +++ b/app/src/main/res/layout/fragment_home_dashboard.xml @@ -303,6 +303,7 @@ android:layout_marginStart="22dp" android:text="@string/last_login_apr_10_2024" android:textSize="12sp" + android:textColor="@color/main" android:fontFamily="@font/montserrat_medium" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/includeToolBar" /> diff --git a/app/src/main/res/layout/fragment_login_main.xml b/app/src/main/res/layout/fragment_login_main.xml index 70c4bcd..d54f524 100644 --- a/app/src/main/res/layout/fragment_login_main.xml +++ b/app/src/main/res/layout/fragment_login_main.xml @@ -28,7 +28,7 @@ android:fontFamily="@font/montserrat_semibold" android:layout_marginStart="160.62dp" android:layout_marginEnd="160.62dp" - android:src="@drawable/ic_plant_growing_svgrepo_com2" + android:src="@drawable/group" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/mainAuthsToolbar" diff --git a/app/src/main/res/layout/fragment_main_auths.xml b/app/src/main/res/layout/fragment_main_auths.xml index 5bfb9ca..474ad1c 100644 --- a/app/src/main/res/layout/fragment_main_auths.xml +++ b/app/src/main/res/layout/fragment_main_auths.xml @@ -16,7 +16,7 @@ android:fontFamily="@font/montserrat_semibold" android:layout_marginStart="160.62dp" android:layout_marginEnd="160.62dp" - android:src="@drawable/ic_plant_growing_svgrepo_com2" + android:src="@drawable/group" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/mainAuthsToolbar" diff --git a/app/src/main/res/layout/fragment_phone_verification.xml b/app/src/main/res/layout/fragment_phone_verification.xml index 3963d1a..458eb42 100644 --- a/app/src/main/res/layout/fragment_phone_verification.xml +++ b/app/src/main/res/layout/fragment_phone_verification.xml @@ -26,7 +26,7 @@ android:layout_height="50.45dp" android:layout_marginTop="1dp" android:alpha="1" - android:src="@drawable/ic_plant_growing_svgrepo_com2" + android:src="@drawable/group" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/mainAuthsToolbar" /> diff --git a/app/src/main/res/layout/fragment_recover_password_with_email.xml b/app/src/main/res/layout/fragment_recover_password_with_email.xml index 5fa2f96..1d27d63 100644 --- a/app/src/main/res/layout/fragment_recover_password_with_email.xml +++ b/app/src/main/res/layout/fragment_recover_password_with_email.xml @@ -26,7 +26,7 @@ android:layout_width="38.75dp" android:layout_height="50.45dp" android:layout_marginTop="1dp" - android:src="@drawable/ic_plant_growing_svgrepo_com2" + android:src="@drawable/group" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/mainAuthsToolbar"/> @@ -116,7 +116,7 @@ android:text="Use phone instead" android:fontFamily="@font/montserrat_medium" android:textSize="13sp" - android:textColor="@color/main" + android:textColor="@color/textColor" app:layout_constraintEnd_toEndOf="@+id/enterEmailAddress" app:layout_constraintTop_toBottomOf="@+id/enterEmailAddress" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_recover_password_with_phone.xml b/app/src/main/res/layout/fragment_recover_password_with_phone.xml index 1375bd5..20bb0a6 100644 --- a/app/src/main/res/layout/fragment_recover_password_with_phone.xml +++ b/app/src/main/res/layout/fragment_recover_password_with_phone.xml @@ -25,7 +25,7 @@ android:layout_width="38.75dp" android:layout_height="50.45dp" android:layout_marginTop="1dp" - android:src="@drawable/ic_plant_growing_svgrepo_com2" + android:src="@drawable/group" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/mainAuthsToolbar" /> @@ -113,7 +113,7 @@ android:layout_height="wrap_content" android:layout_marginTop="16dp" android:fontFamily="@font/montserrat_medium" - android:textColor="@color/main" + android:textColor="@color/textColor" android:textSize="13sp" android:text="Use email instead" app:layout_constraintEnd_toEndOf="@+id/enterPhoneNumber" diff --git a/app/src/main/res/layout/fragment_sign_in_details_with_email.xml b/app/src/main/res/layout/fragment_sign_in_details_with_email.xml index bcf7eaa..066e71f 100644 --- a/app/src/main/res/layout/fragment_sign_in_details_with_email.xml +++ b/app/src/main/res/layout/fragment_sign_in_details_with_email.xml @@ -24,7 +24,7 @@ android:layout_width="38.75dp" android:layout_height="50.45dp" android:layout_marginTop="1dp" - android:src="@drawable/ic_plant_growing_svgrepo_com2" + android:src="@drawable/group" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/mainAuthsToolbar" /> @@ -154,7 +154,7 @@ android:layout_marginTop="8dp" android:fontFamily="@font/montserrat_medium" android:text="Forgot password?" - android:textColor="@color/main" + android:textColor="@color/textColor" android:textSize="14sp" app:layout_constraintEnd_toEndOf="@+id/enterLoginPassword" app:layout_constraintTop_toBottomOf="@+id/enterLoginPassword" /> diff --git a/app/src/main/res/layout/fragment_sign_in_details_with_phone.xml b/app/src/main/res/layout/fragment_sign_in_details_with_phone.xml index f6c7a81..fcefd6a 100644 --- a/app/src/main/res/layout/fragment_sign_in_details_with_phone.xml +++ b/app/src/main/res/layout/fragment_sign_in_details_with_phone.xml @@ -24,7 +24,7 @@ android:layout_width="38.75dp" android:layout_height="50.45dp" android:layout_marginTop="1dp" - android:src="@drawable/ic_plant_growing_svgrepo_com2" + android:src="@drawable/group" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/mainAuthsToolbar" /> diff --git a/app/src/main/res/layout/fragment_sign_up_details_with_email.xml b/app/src/main/res/layout/fragment_sign_up_details_with_email.xml index d0186a7..8653a82 100644 --- a/app/src/main/res/layout/fragment_sign_up_details_with_email.xml +++ b/app/src/main/res/layout/fragment_sign_up_details_with_email.xml @@ -25,7 +25,7 @@ android:layout_width="38.75dp" android:layout_height="50.45dp" android:layout_marginTop="1dp" - android:src="@drawable/ic_plant_growing_svgrepo_com2" + android:src="@drawable/group" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/mainAuthsToolbar"/> diff --git a/app/src/main/res/layout/fragment_sign_up_details_with_phone.xml b/app/src/main/res/layout/fragment_sign_up_details_with_phone.xml index 91cbf16..33cd25e 100644 --- a/app/src/main/res/layout/fragment_sign_up_details_with_phone.xml +++ b/app/src/main/res/layout/fragment_sign_up_details_with_phone.xml @@ -24,7 +24,7 @@ android:layout_width="38.75dp" android:layout_height="50.45dp" android:layout_marginTop="1dp" - android:src="@drawable/ic_plant_growing_svgrepo_com2" + android:src="@drawable/group" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/mainAuthsToolbar" /> @@ -54,7 +54,7 @@ android:textSize="13sp" android:layout_marginStart="60dp" android:layout_marginEnd="60dp" - android:textColor="@color/textColor" + android:textColor="@color/black" android:layout_marginTop="16dp" android:fontFamily="@font/montserrat" app:layout_constraintEnd_toEndOf="@+id/textView6" diff --git a/app/src/main/res/layout/fragment_splash.xml b/app/src/main/res/layout/fragment_splash.xml index fe2491f..8454f6f 100644 --- a/app/src/main/res/layout/fragment_splash.xml +++ b/app/src/main/res/layout/fragment_splash.xml @@ -10,28 +10,15 @@ - \ No newline at end of file diff --git a/app/src/main/res/layout/transaction_row.xml b/app/src/main/res/layout/transaction_row.xml index ee83b71..2f654b8 100644 --- a/app/src/main/res/layout/transaction_row.xml +++ b/app/src/main/res/layout/transaction_row.xml @@ -11,6 +11,7 @@ android:layout_marginStart="16dp" android:layout_marginLeft="16dp" android:layout_marginTop="8dp" + android:visibility="invisible" android:layout_marginBottom="8dp" app:layout_constraintBottom_toBottomOf="@+id/tvDate" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 2af74d5..b626d89 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -8,8 +8,8 @@ #FF000000 #FFFFFFFF - #027373 - #0E7373 + #083273 + #083273 #FFFFFF #FF0D0D0D #0D0D0D9A diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index aeae124..041af01 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -14,6 +14,5 @@ - - @color/main + @color/black \ No newline at end of file From 8c099e80e03bbd1489ed31b67df88da89569e26d Mon Sep 17 00:00:00 2001 From: "muindi.stephen" Date: Tue, 16 Apr 2024 09:07:04 +0300 Subject: [PATCH 2/2] tabular format and crop cycle statuses --- app/src/main/res/layout/detail_cycle_row.xml | 19 ++++++++++------ .../layout/fragment_detailed_farm_cycle.xml | 22 +++++++++++++++---- app/src/main/res/values/strings.xml | 2 +- 3 files changed, 31 insertions(+), 12 deletions(-) diff --git a/app/src/main/res/layout/detail_cycle_row.xml b/app/src/main/res/layout/detail_cycle_row.xml index 34d6d93..9d27221 100644 --- a/app/src/main/res/layout/detail_cycle_row.xml +++ b/app/src/main/res/layout/detail_cycle_row.xml @@ -13,32 +13,36 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent"> - + + app:layout_constraintTop_toTopOf="parent" + android:layout_weight="1"/> @@ -72,7 +72,7 @@ android:id="@+id/viewSeparator" android:layout_width="match_parent" android:layout_height="1dp" - android:layout_marginTop="4dp" + android:layout_marginTop="14dp" android:layout_marginStart="16dp" android:layout_marginEnd="50dp" android:background="@color/main" @@ -133,4 +133,18 @@ app:layout_constraintBottom_toBottomOf="@+id/textView81" app:layout_constraintStart_toEndOf="@+id/textView81" app:layout_constraintTop_toTopOf="@+id/textView81" /> + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9ddfb32..5efc03b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -62,7 +62,7 @@ - UPCOMING + OPEN IN_PROGRESS COMPLETED OVERDUE