Skip to content

Commit 5e6d5ad

Browse files
Merge branch 'main' into translate_main
2 parents b18e2e4 + 8c964e1 commit 5e6d5ad

File tree

21 files changed

+142
-99
lines changed

21 files changed

+142
-99
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,18 @@ All notable changes to this project will be documented in this file. See [conven
66

77
### Implemented Enhancements:
88

9+
- Added setting for icon packs. - ([0d8425d](https://github.com/DroidWorksStudio/EasyLauncher/commit/0d8425d746d7b076b81e456890e6b634d55e8f20))
910
- Added a new App Group Padding setting - ([a5397af](https://github.com/DroidWorksStudio/EasyLauncher/commit/a5397afbc67d78e14a45f2a9f4ce500ae046c9f9))
1011

1112
### Bug Fixes:
1213

1314
- Fixed the ContextProvider - ([527825a](https://github.com/DroidWorksStudio/EasyLauncher/commit/527825a886e0014d14b4fa5783fa2f67d81db81c))
1415
- Fixed the home screen gestures not working in blank spaces. - ([0513351](https://github.com/DroidWorksStudio/EasyLauncher/commit/051335107deb4f8db599ab74847d3d27b1f7e8ea))
1516

17+
### Feature Removal:
18+
19+
- Removed setting for dots. - ([27a2ad9](https://github.com/DroidWorksStudio/EasyLauncher/commit/27a2ad99bb9f24c25c523c6d4fb629b03c650a7c))
20+
1621
### Language Support:
1722

1823
- Updated Language Files. ([#177](https://github.com/DroidWorksStudio/EasyLauncher/issues/177)) - ([7ee6f16](https://github.com/DroidWorksStudio/EasyLauncher/commit/7ee6f16145b93e4c994b2e523890d1ff2e9f1ac3))

app/src/main/java/com/github/droidworksstudio/launcher/helper/PreferenceHelper.kt

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,6 @@ class PreferenceHelper @Inject constructor(@ApplicationContext context: Context)
9595
get() = prefs.getBoolean(Constants.SHOW_APP_ICON, false)
9696
set(value) = prefs.edit().putBoolean(Constants.SHOW_APP_ICON, value).apply()
9797

98-
var showAppIconAsDots: Boolean
99-
get() = prefs.getBoolean(Constants.SHOW_APP_ICON_DOTS, false)
100-
set(value) = prefs.edit().putBoolean(Constants.SHOW_APP_ICON_DOTS, value).apply()
101-
10298
var locationDenied: Boolean
10399
get() = prefs.getBoolean(Constants.LOCATION_DENIED, false)
104100
set(value) = prefs.edit().putBoolean(Constants.LOCATION_DENIED, value).apply()
@@ -198,6 +194,21 @@ class PreferenceHelper @Inject constructor(@ApplicationContext context: Context)
198194
}
199195
set(value) = prefs.edit().putString(Constants.SEARCH_ENGINE, value.name).apply()
200196

197+
var iconPack: Constants.IconPacks
198+
get() {
199+
return try {
200+
Constants.IconPacks.valueOf(
201+
prefs.getString(
202+
Constants.ICONS_PACK,
203+
Constants.IconPacks.System.name
204+
).toString()
205+
)
206+
} catch (_: Exception) {
207+
Constants.IconPacks.System
208+
}
209+
}
210+
set(value) = prefs.edit().putString(Constants.ICONS_PACK, value.name).apply()
211+
201212
var launcherFont: Constants.Fonts
202213
get() {
203214
return try {

app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawViewHolder.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import com.github.droidworksstudio.launcher.data.entities.AppInfo
1414
import com.github.droidworksstudio.launcher.databinding.ItemDrawBinding
1515
import com.github.droidworksstudio.launcher.helper.PreferenceHelper
1616
import com.github.droidworksstudio.launcher.listener.OnItemClickedListener
17+
import com.github.droidworksstudio.launcher.utils.Constants
1718

1819
class DrawViewHolder(
1920
private val binding: ItemDrawBinding,
@@ -44,11 +45,16 @@ class DrawViewHolder(
4445
if (preferenceHelper.showAppIcon) {
4546
val pm: PackageManager = binding.root.context.packageManager
4647
val appIcon = pm.getApplicationIcon(appInfo.packageName)
47-
val appIconSize = (preferenceHelper.appTextSize * if (preferenceHelper.showAppIconAsDots) 1.1f else 2f).toInt()
48+
val appIconSize = (preferenceHelper.appTextSize * if (preferenceHelper.iconPack == Constants.IconPacks.System) 2f else 1.1f).toInt()
4849

4950
val layoutParams = LinearLayoutCompat.LayoutParams(appIconSize, appIconSize)
50-
val appNewIcon: Drawable? = if (preferenceHelper.showAppIconAsDots) {
51-
val newIcon = ContextCompat.getDrawable(itemView.context, R.drawable.app_dot_icon)!!
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)!!
5258
val bitmap = ColorIconsExtensions.drawableToBitmap(appIcon)
5359
val dominantColor = ColorIconsExtensions.getDominantColor(bitmap)
5460
ColorIconsExtensions.recolorDrawable(newIcon, dominantColor)

app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeViewHolder.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import com.github.droidworksstudio.launcher.data.entities.AppInfo
1515
import com.github.droidworksstudio.launcher.databinding.ItemHomeBinding
1616
import com.github.droidworksstudio.launcher.helper.PreferenceHelper
1717
import com.github.droidworksstudio.launcher.listener.OnItemClickedListener
18+
import com.github.droidworksstudio.launcher.utils.Constants
1819
import javax.inject.Inject
1920

2021
class HomeViewHolder @Inject constructor(
@@ -44,11 +45,16 @@ class HomeViewHolder @Inject constructor(
4445
if (preferenceHelper.showAppIcon) {
4546
val pm: PackageManager = binding.root.context.packageManager
4647
val appIcon = pm.getApplicationIcon(appInfo.packageName)
47-
val appIconSize = (preferenceHelper.appTextSize * if (preferenceHelper.showAppIconAsDots) 1.1f else 2f).toInt()
48+
val appIconSize = (preferenceHelper.appTextSize * if (preferenceHelper.iconPack == Constants.IconPacks.System) 2f else 1.1f).toInt()
4849

4950
val layoutParams = LinearLayoutCompat.LayoutParams(appIconSize, appIconSize)
50-
val appNewIcon: Drawable? = if (preferenceHelper.showAppIconAsDots) {
51-
val newIcon = ContextCompat.getDrawable(itemView.context, R.drawable.app_dot_icon)!!
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)!!
5258
val bitmap = ColorIconsExtensions.drawableToBitmap(appIcon)
5359
val dominantColor = ColorIconsExtensions.getDominantColor(bitmap)
5460
ColorIconsExtensions.recolorDrawable(newIcon, dominantColor)

app/src/main/java/com/github/droidworksstudio/launcher/ui/settings/SettingsLookFeelFragment.kt

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ class SettingsLookFeelFragment : Fragment(),
7777

7878
binding.apply {
7979
miscellaneousLauncherFontsControl.text = preferenceHelper.launcherFont.getString(context)
80+
miscellaneousIconsControl.text = preferenceHelper.iconPack.name
8081
}
8182
}
8283

@@ -97,15 +98,6 @@ class SettingsLookFeelFragment : Fragment(),
9798
alarmClockSwitchCompat.isChecked = preferenceHelper.showAlarmClock
9899
dailyWordSwitchCompat.isChecked = preferenceHelper.showDailyWord
99100
appIconsSwitchCompat.isChecked = preferenceHelper.showAppIcon
100-
appIconDotsSwitchCompat.isChecked = preferenceHelper.showAppIconAsDots
101-
}
102-
103-
if (!binding.appIconsSwitchCompat.isChecked) {
104-
// Disable and gray out the other setting if appIconsSwitchCompat is checked
105-
binding.appIconDotsSwitchCompat.apply {
106-
isEnabled = binding.appIconsSwitchCompat.isChecked
107-
isChecked = false
108-
}
109101
}
110102
}
111103

@@ -139,6 +131,10 @@ class SettingsLookFeelFragment : Fragment(),
139131
startActivity(Intent.createChooser(intent, "Select Wallpaper"))
140132
}
141133

134+
miscellaneousIconsControl.setOnClickListener {
135+
showIconsDialog()
136+
}
137+
142138
miscellaneousLauncherFontsControl.setOnClickListener {
143139
showLauncherFontDialog()
144140
}
@@ -188,19 +184,38 @@ class SettingsLookFeelFragment : Fragment(),
188184
preferenceViewModel.setShowAppIcons(isChecked)
189185
val feedbackType = if (isChecked) "on" else "off"
190186
appHelper.triggerHapticFeedback(context, feedbackType)
191-
192-
// Disable and gray out the other setting if appIconsSwitchCompat is checked
193-
binding.appIconDotsSwitchCompat.isEnabled = isChecked
194-
binding.appIconDotsSwitchCompat.isChecked = false
195187
}
188+
}
196189

197-
appIconDotsSwitchCompat.setOnCheckedChangeListener { _, isChecked ->
198-
preferenceViewModel.setShowAppIconDots(isChecked)
199-
val feedbackType = if (isChecked) "on" else "off"
190+
}
191+
192+
private var iconsDialog: AlertDialog? = null
193+
194+
@RequiresApi(Build.VERSION_CODES.Q)
195+
private fun showIconsDialog() {
196+
// Dismiss any existing dialog to prevent multiple dialogs open simultaneously
197+
iconsDialog?.dismiss()
198+
// Get the array of SearchEngines enum values
199+
val items = Constants.IconPacks.entries.toTypedArray()
200+
201+
// Map the enum values to their string representations
202+
val itemStrings = items.map { it.getString(context) }.toTypedArray()
203+
204+
val dialogBuilder = MaterialAlertDialogBuilder(context).apply {
205+
setTitle(getString(R.string.settings_select_icons))
206+
setItems(itemStrings) { _, which ->
207+
val selectedItem = items[which]
208+
preferenceViewModel.setIconsPack(selectedItem)
209+
binding.miscellaneousIconsControl.text = preferenceHelper.iconPack.name
210+
211+
val feedbackType = "select"
200212
appHelper.triggerHapticFeedback(context, feedbackType)
201213
}
202214
}
203215

216+
// Assign the created dialog to launcherFontDialog
217+
iconsDialog = dialogBuilder.create()
218+
iconsDialog?.show()
204219
}
205220

206221
private var launcherFontDialog: AlertDialog? = null
@@ -238,6 +253,7 @@ class SettingsLookFeelFragment : Fragment(),
238253
}
239254

240255
private fun dismissDialogs() {
256+
iconsDialog?.dismiss()
241257
launcherFontDialog?.dismiss()
242258
}
243259
}

app/src/main/java/com/github/droidworksstudio/launcher/utils/Constants.kt

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ object Constants {
8989
const val URL_GOOGLE_PLAY_STORE = "https://play.google.com/store/search?c=apps&q"
9090
const val APP_GOOGLE_PLAY_STORE = "market://search?c=apps&q"
9191

92+
const val ICONS_PACK = "ICONS_PACK"
9293
const val LAUNCHER_FONT = "LAUNCHER_FONT"
9394

9495
const val REQUEST_INSTALL_PERMISSION = 123
@@ -196,6 +197,20 @@ object Constants {
196197
}
197198
}
198199

200+
enum class IconPacks {
201+
System,
202+
EasyDots,
203+
NiagaraDots;
204+
205+
fun getString(context: Context): String {
206+
return when (this) {
207+
System -> context.getString(R.string.settings_system)
208+
EasyDots -> context.getString(R.string.settings_icons_easy_dots)
209+
NiagaraDots -> context.getString(R.string.settings_icons_niagara_dots)
210+
}
211+
}
212+
}
213+
199214
enum class Fonts {
200215
System,
201216
Bitter,
@@ -229,7 +244,7 @@ object Constants {
229244

230245
fun getString(context: Context): String {
231246
return when (this) {
232-
System -> context.getString(R.string.settings_font_system)
247+
System -> context.getString(R.string.settings_system)
233248
Bitter -> context.getString(R.string.settings_font_bitter)
234249
Dotness -> context.getString(R.string.settings_font_dotness)
235250
DroidSans -> context.getString(R.string.settings_font_droidsans)
@@ -261,7 +276,7 @@ object Constants {
261276

262277
fun string(context: Context): String {
263278
return when (this) {
264-
System -> context.getString(R.string.app_system_language)
279+
System -> context.getString(R.string.settings_system)
265280
Czech -> "Czech"
266281
Danish -> "Danish"
267282
Dutch -> "Dutch"

app/src/main/java/com/github/droidworksstudio/launcher/viewmodel/PreferenceViewModel.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ class PreferenceViewModel @Inject constructor(
2323
private val showWeatherWidgetSunSetRiseLiveData: MutableLiveData<Boolean> = MutableLiveData()
2424
private val showBatteryWidgetLiveData: MutableLiveData<Boolean> = MutableLiveData()
2525
private val showAppIconLiveData: MutableLiveData<Boolean> = MutableLiveData()
26-
private val showAppIconAsDotsLiveData: MutableLiveData<Boolean> = MutableLiveData()
2726
private val homeAppAlignmentLiveData: MutableLiveData<Int> = MutableLiveData()
2827
private val homeDateAlignmentLiveData: MutableLiveData<Int> = MutableLiveData()
2928
private val homeTimeAlignmentLiveData: MutableLiveData<Int> = MutableLiveData()
@@ -56,6 +55,7 @@ class PreferenceViewModel @Inject constructor(
5655

5756
private val appLanguageLiveData: MutableLiveData<Constants.Language> = MutableLiveData()
5857
private val searchEngineLiveData: MutableLiveData<Constants.SearchEngines> = MutableLiveData()
58+
private val iconPackLiveData: MutableLiveData<Constants.IconPacks> = MutableLiveData()
5959
private val launcherFontLiveData: MutableLiveData<Constants.Fonts> = MutableLiveData()
6060
private val doubleTapActionLiveData: MutableLiveData<Constants.Action> = MutableLiveData()
6161
private val swipeUpActionLiveData: MutableLiveData<Constants.Action> = MutableLiveData()
@@ -103,11 +103,6 @@ class PreferenceViewModel @Inject constructor(
103103
showAppIconLiveData.postValue(preferenceHelper.showAppIcon)
104104
}
105105

106-
fun setShowAppIconDots(showAppIconAsDots: Boolean) {
107-
preferenceHelper.showAppIconAsDots = showAppIconAsDots
108-
showAppIconAsDotsLiveData.postValue(preferenceHelper.showAppIconAsDots)
109-
}
110-
111106
fun setAlarmClockColor(alarmClockColor: Int) {
112107
preferenceHelper.alarmClockColor = alarmClockColor
113108
alarmClockColorLiveData.postValue(preferenceHelper.alarmClockColor)
@@ -293,6 +288,11 @@ class PreferenceViewModel @Inject constructor(
293288
searchEngineLiveData.postValue((preferenceHelper.searchEngines))
294289
}
295290

291+
fun setIconsPack(iconPack: Constants.IconPacks) {
292+
preferenceHelper.iconPack = iconPack
293+
iconPackLiveData.postValue((preferenceHelper.iconPack))
294+
}
295+
296296
fun setFilterStrength(filterStrength: Int) {
297297
preferenceHelper.filterStrength = filterStrength
298298
filterStrengthLiveData.postValue((preferenceHelper.filterStrength))
File renamed without changes.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="50dp"
3+
android:height="50dp"
4+
android:viewportWidth="50"
5+
android:viewportHeight="50">
6+
<path
7+
android:fillColor="#030104"
8+
android:pathData="m42.6,7.3c-9.8,-9.8 -25.6,-9.7 -35.3,0.1 -9.8,9.7 -9.7,25.5 0.1,35.3 9.7,9.7 25.5,9.6 35.3,-0.1 9.7,-9.8 9.7,-25.6 -0.1,-35.3z" />
9+
</vector>

app/src/main/res/layout/fragment_settings_look_feel.xml

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -276,37 +276,6 @@
276276
tools:ignore="TouchTargetSizeCheck" />
277277

278278
</androidx.appcompat.widget.LinearLayoutCompat>
279-
280-
<androidx.appcompat.widget.LinearLayoutCompat
281-
android:layout_width="match_parent"
282-
android:layout_height="wrap_content"
283-
android:orientation="horizontal"
284-
tools:ignore="MissingConstraints">
285-
286-
<androidx.appcompat.widget.AppCompatTextView
287-
android:id="@+id/appIconDots_text"
288-
style="@style/TextDefaultStyle"
289-
android:layout_width="0dp"
290-
android:layout_height="wrap_content"
291-
android:layout_weight="1"
292-
android:gravity="left|center"
293-
android:text="@string/settings_display_app_icon_dots"
294-
android:textSize="@dimen/text_large"
295-
app:layout_constraintStart_toStartOf="parent"
296-
app:layout_constraintTop_toTopOf="parent"
297-
tools:ignore="RtlHardcoded" />
298-
299-
<androidx.appcompat.widget.SwitchCompat
300-
android:id="@+id/appIconDots_switchCompat"
301-
android:layout_width="wrap_content"
302-
android:layout_height="wrap_content"
303-
android:scaleX="0.7"
304-
android:scaleY="0.8"
305-
android:thumb="@drawable/shape_switch_thumb"
306-
app:track="@drawable/selector_switch"
307-
tools:ignore="TouchTargetSizeCheck" />
308-
309-
</androidx.appcompat.widget.LinearLayoutCompat>
310279
</androidx.appcompat.widget.LinearLayoutCompat>
311280

312281
<androidx.appcompat.widget.LinearLayoutCompat
@@ -430,6 +399,38 @@
430399
tools:ignore="RtlHardcoded" />
431400
</androidx.appcompat.widget.LinearLayoutCompat>
432401

402+
<androidx.appcompat.widget.LinearLayoutCompat
403+
android:layout_width="match_parent"
404+
android:layout_height="wrap_content"
405+
android:layout_marginVertical="10dp"
406+
android:orientation="horizontal"
407+
tools:ignore="MissingConstraints">
408+
409+
<androidx.appcompat.widget.AppCompatTextView
410+
android:id="@+id/miscellaneous_icons_text"
411+
style="@style/TextDefaultStyle"
412+
android:layout_width="0dp"
413+
android:layout_height="wrap_content"
414+
android:layout_weight="1"
415+
android:gravity="left|center"
416+
android:text="@string/settings_icons"
417+
android:textSize="@dimen/text_large"
418+
app:layout_constraintStart_toStartOf="parent"
419+
app:layout_constraintTop_toTopOf="parent"
420+
tools:ignore="RtlHardcoded" />
421+
422+
<androidx.appcompat.widget.AppCompatTextView
423+
android:id="@+id/miscellaneous_icons_control"
424+
style="@style/TextDefaultStyle"
425+
android:layout_width="wrap_content"
426+
android:layout_height="wrap_content"
427+
android:gravity="left|center"
428+
android:text="@string/settings_system"
429+
android:textSize="@dimen/text_large"
430+
tools:ignore="RtlHardcoded" />
431+
432+
</androidx.appcompat.widget.LinearLayoutCompat>
433+
433434
<androidx.appcompat.widget.LinearLayoutCompat
434435
android:layout_width="match_parent"
435436
android:layout_height="wrap_content"
@@ -456,7 +457,7 @@
456457
android:layout_width="wrap_content"
457458
android:layout_height="wrap_content"
458459
android:gravity="left|center"
459-
android:text="@string/settings_font_system"
460+
android:text="@string/settings_system"
460461
android:textSize="@dimen/text_large"
461462
tools:ignore="RtlHardcoded" />
462463

0 commit comments

Comments
 (0)