diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt index 67bdb85..d3d96b1 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt @@ -3,6 +3,9 @@ package com.github.droidworksstudio.launcher.ui.drawer import android.annotation.SuppressLint import android.content.Context import android.os.Bundle +import android.text.Spannable +import android.text.SpannableString +import android.text.style.ForegroundColorSpan import android.util.Log import android.view.LayoutInflater import android.view.View @@ -98,6 +101,16 @@ class DrawFragment : Fragment(), private fun observeDrawerApps() { viewModel.compareInstalledAppInfo() + val searchAppsHint = getString(R.string.search) + val coloredHint = SpannableString(searchAppsHint) + coloredHint.setSpan( + ForegroundColorSpan(preferenceHelper.appColor), + 0, + searchAppsHint.length, + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE + ) + binding.searchViewText.queryHint = coloredHint + @Suppress("DEPRECATION") viewLifecycleOwner.lifecycleScope.launchWhenCreated { viewModel.drawApps.collect { diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteAdapter.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteAdapter.kt index c8b9356..0ce0316 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteAdapter.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteAdapter.kt @@ -7,12 +7,14 @@ import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import com.github.droidworksstudio.launcher.data.entities.AppInfo import com.github.droidworksstudio.launcher.databinding.ItemFavoriteBinding +import com.github.droidworksstudio.launcher.helper.PreferenceHelper import com.github.droidworksstudio.launcher.listener.OnItemClickedListener import com.github.droidworksstudio.launcher.listener.OnItemMoveListener class FavoriteAdapter( private val onAppClickedListener: OnItemClickedListener.OnAppsClickedListener, + private val preferenceHelperProvider: PreferenceHelper ) : ListAdapter(DiffCallback()), OnItemMoveListener.OnItemActionListener { @@ -27,7 +29,13 @@ class FavoriteAdapter( parent, false ) - return FavoriteViewHolder(binding, onAppClickedListener, touchHelper) + val preferenceHelper = preferenceHelperProvider + return FavoriteViewHolder( + binding, + onAppClickedListener, + preferenceHelper, + touchHelper + ) } override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteFragment.kt index 5b87296..320304b 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteFragment.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteFragment.kt @@ -58,7 +58,7 @@ class FavoriteFragment : Fragment(), @Inject lateinit var appHelper: AppHelper - private val favoriteAdapter: FavoriteAdapter by lazy { FavoriteAdapter(this) } + private val favoriteAdapter: FavoriteAdapter by lazy { FavoriteAdapter(this, preferenceHelper) } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -107,6 +107,8 @@ class FavoriteFragment : Fragment(), } private fun observeFavorite() { + binding.topTextView.setTextColor(preferenceHelper.appColor) + viewModel.compareInstalledAppInfo() viewLifecycleOwner.lifecycleScope.launch { viewModel.favoriteApps.collect { @@ -180,7 +182,7 @@ class FavoriteFragment : Fragment(), @SuppressLint("ClickableViewAccessibility") private fun observeSwipeTouchListener() { - binding.touchArea.setOnTouchListener(getSwipeGestureListener(context)) + binding.fragmentContainer.setOnTouchListener(getSwipeGestureListener(context)) binding.favoriteAdapter.setOnTouchListener(getSwipeGestureListener(context)) } diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteViewHolder.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteViewHolder.kt index f206fb8..079dfa2 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteViewHolder.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteViewHolder.kt @@ -1,18 +1,26 @@ package com.github.droidworksstudio.launcher.ui.favorite import android.annotation.SuppressLint +import android.graphics.BlendMode +import android.graphics.BlendModeColorFilter +import android.graphics.PorterDuff +import android.graphics.PorterDuffColorFilter +import android.os.Build import android.util.Log import android.view.MotionEvent +import androidx.appcompat.widget.LinearLayoutCompat import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.RecyclerView import com.github.droidworksstudio.launcher.data.entities.AppInfo import com.github.droidworksstudio.launcher.databinding.ItemFavoriteBinding +import com.github.droidworksstudio.launcher.helper.PreferenceHelper import com.github.droidworksstudio.launcher.listener.OnItemClickedListener @SuppressLint("ClickableViewAccessibility") class FavoriteViewHolder( private val binding: ItemFavoriteBinding, private val onAppClickedListener: OnItemClickedListener.OnAppsClickedListener, + private val preferenceHelper: PreferenceHelper, private val touchHelper: ItemTouchHelper, ) : RecyclerView.ViewHolder(binding.root) { @@ -27,10 +35,42 @@ class FavoriteViewHolder( } fun bind(appInfo: AppInfo) { + + binding.apply { + // Get the current LayoutParams of appFavoriteName + val layoutParams = appFavoriteName.layoutParams as LinearLayoutCompat.LayoutParams + + // Set the margins + layoutParams.topMargin = preferenceHelper.homeAppPadding.toInt() + layoutParams.bottomMargin = preferenceHelper.homeAppPadding.toInt() + + appFavoriteName.layoutParams = layoutParams appFavoriteName.text = appInfo.appName - //appFavoriteDragIcon.visibility = View.GONE + appFavoriteName.setTextColor(preferenceHelper.appColor) + appFavoriteName.textSize = preferenceHelper.appTextSize Log.d("Tag", "Draw Adapter: ${appInfo.appName}") + + + // Create a BlendModeColorFilter with the specified color and blend mode + val blendModeColorFilter = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + BlendModeColorFilter( + preferenceHelper.appColor, + BlendMode.SRC_IN + ) + } else { + PorterDuffColorFilter( + preferenceHelper.appColor, + PorterDuff.Mode.SRC_IN + ) + } + + // Get the current drawable set as the background + val drawable = appFavoriteDragIcon.background.mutate() + // Apply a color filter to change its color + drawable.colorFilter = blendModeColorFilter + // Set the modified drawable back as the background + appFavoriteDragIcon.background = drawable } itemView.setOnClickListener { diff --git a/app/src/main/res/layout/fragment_favorite.xml b/app/src/main/res/layout/fragment_favorite.xml index 18327be..41531e6 100644 --- a/app/src/main/res/layout/fragment_favorite.xml +++ b/app/src/main/res/layout/fragment_favorite.xml @@ -7,13 +7,6 @@ android:id="@+id/favorite_view" tools:context=".ui.favorite.FavoriteFragment"> - - diff --git a/app/src/main/res/layout/item_favorite.xml b/app/src/main/res/layout/item_favorite.xml index 4524ce0..c12d661 100644 --- a/app/src/main/res/layout/item_favorite.xml +++ b/app/src/main/res/layout/item_favorite.xml @@ -14,7 +14,7 @@ + style="@style/TextDefaultStyle" />