1
1
package com.github.droidworksstudio.launcher.ui.drawer
2
2
3
- import android.content.pm.PackageManager
4
3
import android.graphics.drawable.Drawable
5
4
import android.view.Gravity
6
5
import android.view.View
@@ -9,6 +8,7 @@ import androidx.core.content.ContextCompat
9
8
import androidx.recyclerview.widget.RecyclerView
10
9
import com.github.droidworksstudio.common.ColorIconsExtensions
11
10
import com.github.droidworksstudio.common.dpToPx
11
+ import com.github.droidworksstudio.common.getAllProfileAppIcons
12
12
import com.github.droidworksstudio.launcher.R
13
13
import com.github.droidworksstudio.launcher.data.entities.AppInfo
14
14
import com.github.droidworksstudio.launcher.databinding.ItemDrawBinding
@@ -20,7 +20,7 @@ class DrawViewHolder(
20
20
private val binding : ItemDrawBinding ,
21
21
private val onAppClickedListener : OnItemClickedListener .OnAppsClickedListener ,
22
22
private val onAppLongClickedListener : OnItemClickedListener .OnAppLongClickedListener ,
23
- private val preferenceHelper : PreferenceHelper
23
+ private val preferenceHelper : PreferenceHelper ,
24
24
) :
25
25
26
26
RecyclerView .ViewHolder (binding.root) {
@@ -43,48 +43,57 @@ class DrawViewHolder(
43
43
appDrawName.gravity = preferenceHelper.homeAppAlignment
44
44
45
45
if (preferenceHelper.showAppIcon) {
46
- val pm: PackageManager = binding.root.context.packageManager
47
- val appIcon = pm.getApplicationIcon(appInfo.packageName)
48
- val appIconSize = (preferenceHelper.appTextSize * if (preferenceHelper.iconPack == Constants .IconPacks .System ) 2f else 1.1f ).toInt()
49
-
50
- val layoutParams = LinearLayoutCompat .LayoutParams (appIconSize, appIconSize)
51
- val appNewIcon: Drawable ? = if (preferenceHelper.iconPack == Constants .IconPacks .EasyDots ) {
52
- val newIcon = ContextCompat .getDrawable(itemView.context, R .drawable.app_easy_dot_icon)!!
53
- val bitmap = ColorIconsExtensions .drawableToBitmap(appIcon)
54
- val dominantColor = ColorIconsExtensions .getDominantColor(bitmap)
55
- ColorIconsExtensions .recolorDrawable(newIcon, dominantColor)
56
- } else if (preferenceHelper.iconPack == Constants .IconPacks .NiagaraDots ) {
57
- val newIcon = ContextCompat .getDrawable(itemView.context, R .drawable.app_niagara_dot_icon)!!
58
- val bitmap = ColorIconsExtensions .drawableToBitmap(appIcon)
59
- val dominantColor = ColorIconsExtensions .getDominantColor(bitmap)
60
- ColorIconsExtensions .recolorDrawable(newIcon, dominantColor)
61
- } else {
62
- null
63
- }
64
-
65
- appDrawIcon.layoutParams = layoutParams
66
- appDrawIcon.setImageDrawable(appNewIcon ? : appIcon)
67
- appDrawIcon.visibility = View .VISIBLE
68
-
69
- val parentLayout = appDrawName.parent as LinearLayoutCompat
70
- parentLayout.orientation = LinearLayoutCompat .HORIZONTAL
71
- parentLayout.removeAllViews()
72
-
73
- when (preferenceHelper.homeAppAlignment) {
74
- Gravity .START -> {
75
- layoutParams.marginEnd = 10 .dpToPx()
76
- parentLayout.addView(appDrawIcon)
77
- parentLayout.addView(appDrawName)
78
- }
79
-
80
- Gravity .END -> {
81
- layoutParams.marginStart = 10 .dpToPx()
82
- parentLayout.addView(appDrawName)
83
- parentLayout.addView(appDrawIcon)
84
- }
85
-
86
- else -> {
87
- appDrawIcon.visibility = View .GONE
46
+ val appInfoMap = root.context.getAllProfileAppIcons()
47
+ appInfoMap.forEach { (key, icon) ->
48
+ val userHandle: Int? = key.first
49
+ val packageName: String? = key.second
50
+ if (appInfo.packageName == packageName && appInfo.userHandle == userHandle) {
51
+ val easyDot = ContextCompat .getDrawable(itemView.context, R .drawable.app_easy_dot_icon)!!
52
+ val appIcon = icon
53
+ val nonNullDrawable: Drawable = appIcon ? : easyDot
54
+
55
+ val appIconSize = (preferenceHelper.appTextSize * if (preferenceHelper.iconPack == Constants .IconPacks .System ) 2f else 1.1f ).toInt()
56
+
57
+ val layoutParams = LinearLayoutCompat .LayoutParams (appIconSize, appIconSize)
58
+ val appNewIcon: Drawable ? = if (preferenceHelper.iconPack == Constants .IconPacks .EasyDots ) {
59
+ val newIcon = ContextCompat .getDrawable(itemView.context, R .drawable.app_easy_dot_icon)!!
60
+ val bitmap = ColorIconsExtensions .drawableToBitmap(nonNullDrawable)
61
+ val dominantColor = ColorIconsExtensions .getDominantColor(bitmap)
62
+ ColorIconsExtensions .recolorDrawable(newIcon, dominantColor)
63
+ } else if (preferenceHelper.iconPack == Constants .IconPacks .NiagaraDots ) {
64
+ val newIcon = ContextCompat .getDrawable(itemView.context, R .drawable.app_niagara_dot_icon)!!
65
+ val bitmap = ColorIconsExtensions .drawableToBitmap(nonNullDrawable)
66
+ val dominantColor = ColorIconsExtensions .getDominantColor(bitmap)
67
+ ColorIconsExtensions .recolorDrawable(newIcon, dominantColor)
68
+ } else {
69
+ null
70
+ }
71
+
72
+ appDrawIcon.layoutParams = layoutParams
73
+ appDrawIcon.setImageDrawable(appNewIcon ? : nonNullDrawable)
74
+ appDrawIcon.visibility = View .VISIBLE
75
+
76
+ val parentLayout = appDrawName.parent as LinearLayoutCompat
77
+ parentLayout.orientation = LinearLayoutCompat .HORIZONTAL
78
+ parentLayout.removeAllViews()
79
+
80
+ when (preferenceHelper.homeAppAlignment) {
81
+ Gravity .START -> {
82
+ layoutParams.marginEnd = 10 .dpToPx()
83
+ parentLayout.addView(appDrawIcon)
84
+ parentLayout.addView(appDrawName)
85
+ }
86
+
87
+ Gravity .END -> {
88
+ layoutParams.marginStart = 10 .dpToPx()
89
+ parentLayout.addView(appDrawName)
90
+ parentLayout.addView(appDrawIcon)
91
+ }
92
+
93
+ else -> {
94
+ parentLayout.addView(appDrawName)
95
+ }
96
+ }
88
97
}
89
98
}
90
99
} else {
@@ -97,9 +106,7 @@ class DrawViewHolder(
97
106
}
98
107
99
108
itemView.setOnLongClickListener {
100
- if (appInfo.userHandle <= 0 ) {
101
- onAppLongClickedListener.onAppLongClicked(appInfo)
102
- }
109
+ onAppLongClickedListener.onAppLongClicked(appInfo)
103
110
true
104
111
}
105
112
}
0 commit comments