diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index fdc05c4..db8528f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -38,6 +38,7 @@
+
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/components/BottomSheetMenu.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/components/BottomSheetMenu.kt
index 0a300f7..68e9657 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/components/BottomSheetMenu.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/components/BottomSheetMenu.kt
@@ -2,6 +2,7 @@ package com.tommasoberlose.anotherwidget.components
import android.content.Context
import android.view.View
+import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.core.view.isVisible
import com.google.android.material.bottomsheet.BottomSheetDialog
@@ -9,6 +10,7 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.tommasoberlose.anotherwidget.R
import kotlinx.android.synthetic.main.bottom_sheet_menu.view.*
import kotlinx.android.synthetic.main.bottom_sheet_menu_item.view.*
+import org.w3c.dom.Text
/**
* [BottomSheetDialogFragment] that uses a custom
@@ -32,8 +34,8 @@ open class BottomSheetMenu(context: Context, private val header: String? = nu
return this
}
- fun addItem(title: String, value: T? = null): BottomSheetMenu {
- items.add(MenuItem(title, value))
+ fun addItem(title: String, value: T? = null, renderCallback: ((view: TextView) -> Unit)? = null): BottomSheetMenu {
+ items.add(MenuItem(title, value, renderCallback))
return this
}
@@ -94,7 +96,10 @@ open class BottomSheetMenu(context: Context, private val header: String? = nu
) else ContextCompat.getColor(context, R.color.colorSecondaryText)
)
}
+
+ item.renderCallback?.invoke(itemView.label)
}
+
view.menu.addView(itemView)
} else {
val itemView = View.inflate(context, R.layout.bottom_sheet_menu_divider, null)
@@ -106,6 +111,6 @@ open class BottomSheetMenu(context: Context, private val header: String? = nu
super.show()
}
- class MenuItem(val title: String, val value: T? = null)
+ class MenuItem(val title: String, val value: T? = null, val renderCallback: ((view: TextView) -> Unit)? = null)
}
\ No newline at end of file
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/components/IconPackSelector.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/components/IconPackSelector.kt
index 7957345..6bc8bd4 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/components/IconPackSelector.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/components/IconPackSelector.kt
@@ -32,10 +32,10 @@ class IconPackSelector(context: Context, private val header: String? = null) : B
itemView.label.text = context.getString(R.string.settings_weather_icon_pack_default).format(item.value + 1)
itemView.isSelected = item.value == Preferences.weatherIconPack
- itemView.icon_1.setImageDrawable(ContextCompat.getDrawable(context, WeatherHelper.getWeatherIconResource("01d", item.value)))
- itemView.icon_2.setImageDrawable(ContextCompat.getDrawable(context, WeatherHelper.getWeatherIconResource("01n", item.value)))
- itemView.icon_3.setImageDrawable(ContextCompat.getDrawable(context, WeatherHelper.getWeatherIconResource("10d", item.value)))
- itemView.icon_4.setImageDrawable(ContextCompat.getDrawable(context, WeatherHelper.getWeatherIconResource("09n", item.value)))
+ itemView.icon_1.setImageDrawable(ContextCompat.getDrawable(context, WeatherHelper.getWeatherIconResource(context, "01d", item.value)))
+ itemView.icon_2.setImageDrawable(ContextCompat.getDrawable(context, WeatherHelper.getWeatherIconResource(context, "01n", item.value)))
+ itemView.icon_3.setImageDrawable(ContextCompat.getDrawable(context, WeatherHelper.getWeatherIconResource(context, "10d", item.value)))
+ itemView.icon_4.setImageDrawable(ContextCompat.getDrawable(context, WeatherHelper.getWeatherIconResource(context, "09n", item.value)))
listOf(itemView.icon_1, itemView.icon_2, itemView.icon_3, itemView.icon_4).forEach {
if (item == Constants.WeatherIconPack.MINIMAL) {
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt
index 29ca963..e9daa23 100755
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt
@@ -94,6 +94,7 @@ object Preferences : KotprefModel() {
var customFont by intPref(key = "PREF_CUSTOM_FONT", default = Constants.CUSTOM_FONT_GOOGLE_SANS)
var customFontFile by stringPref(default = "")
var customFontName by stringPref(default = "")
+ var customFontVariant by stringPref(default = "regular")
var showNextEvent by booleanPref(key = "PREF_SHOW_NEXT_EVENT", default = true)
var showDividers by booleanPref(default = true)
@@ -122,6 +123,7 @@ object Preferences : KotprefModel() {
var mediaPlayerAlbum by stringPref(default = "")
var mediaPlayerArtist by stringPref(default = "")
var mediaPlayerPackage by stringPref(default = "")
+ var musicPlayersFilter by stringPref(default = "")
// Integrations
var installedIntegrations by intPref(default = 0)
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/MediaPlayerHelper.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/MediaPlayerHelper.kt
index e8d25af..d749e9f 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/MediaPlayerHelper.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/MediaPlayerHelper.kt
@@ -38,6 +38,8 @@ object MediaPlayerHelper {
)
} catch (ex: Exception) {
emptyList()
+ }.filter {
+ Preferences.musicPlayersFilter == "" || isMusicPlayerAccepted(it.packageName)
}
if (list.isNotEmpty()) {
@@ -89,4 +91,14 @@ object MediaPlayerHelper {
remove(Preferences::mediaPlayerPackage)
}
}
+
+ fun isMusicPlayerAccepted(appPkg: String): Boolean = Preferences.musicPlayersFilter.contains(appPkg)
+
+ fun toggleMusicPlayerFilter(appPkg: String) {
+ if (Preferences.musicPlayersFilter == "" || !Preferences.musicPlayersFilter.contains(appPkg)) {
+ Preferences.musicPlayersFilter = Preferences.musicPlayersFilter.split(",").union(listOf(appPkg)).joinToString(separator = ",")
+ } else {
+ Preferences.musicPlayersFilter = Preferences.musicPlayersFilter.split(",").filter { it != appPkg }.joinToString(separator = ",")
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/SettingsStringHelper.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/SettingsStringHelper.kt
index dd88f73..0c58b4a 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/SettingsStringHelper.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/SettingsStringHelper.kt
@@ -56,10 +56,9 @@ object SettingsStringHelper {
fun getCustomFontLabel(context: Context, font: Int): String {
return when (font) {
- 0 -> context.getString(R.string.custom_font_subtitle_0)
- Constants.CUSTOM_FONT_GOOGLE_SANS -> context.getString(R.string.custom_font_subtitle_1)
- Constants.CUSTOM_FONT_DOWNLOADED -> Preferences.customFontName
- else -> context.getString(R.string.custom_font_subtitle_1)
+ Constants.CUSTOM_FONT_GOOGLE_SANS -> context.getString(R.string.custom_font_subtitle_1) + " - ${getVariantLabel(context, Preferences.customFontVariant)}"
+ Constants.CUSTOM_FONT_DOWNLOADED -> Preferences.customFontName + " - ${getVariantLabel(context, Preferences.customFontVariant)}"
+ else -> context.getString(R.string.custom_font_subtitle_0)
}
}
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/WeatherHelper.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/WeatherHelper.kt
index a08d95d..9d7b21b 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/WeatherHelper.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/WeatherHelper.kt
@@ -11,6 +11,7 @@ import com.tommasoberlose.anotherwidget.network.WeatherNetworkApi
import com.tommasoberlose.anotherwidget.ui.fragments.MainFragment
import com.tommasoberlose.anotherwidget.ui.widgets.MainWidget
import com.tommasoberlose.anotherwidget.utils.checkGrantedPermission
+import com.tommasoberlose.anotherwidget.utils.isDarkTheme
import org.greenrobot.eventbus.EventBus
@@ -46,14 +47,14 @@ object WeatherHelper {
MainWidget.updateWidget(context)
}
- fun getWeatherIconResource(icon: String, style: Int = Preferences.weatherIconPack): Int {
+ fun getWeatherIconResource(context: Context, icon: String, style: Int = Preferences.weatherIconPack): Int {
return when (icon) {
"01d" -> {
when (style) {
Constants.WeatherIconPack.COOL.value -> R.drawable.clear_day_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.clear_day_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.clear_day_4
- else -> R.drawable.clear_day
+ else -> if (context.isDarkTheme()) R.drawable.clear_day_5 else R.drawable.clear_day_5_light
}
}
"02d" -> {
@@ -61,7 +62,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.partly_cloudy_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.partly_cloudy_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.partly_cloudy_4
- else -> R.drawable.partly_cloudy
+ else -> if (context.isDarkTheme()) R.drawable.partly_cloudy_5 else R.drawable.partly_cloudy_5_light
}
}
"03d" -> {
@@ -69,7 +70,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.mostly_cloudy_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.mostly_cloudy_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.mostly_cloudy_4
- else -> R.drawable.mostly_cloudy
+ else -> if (context.isDarkTheme()) R.drawable.mostly_cloudy_5 else R.drawable.mostly_cloudy_5_light
}
}
"04d" -> {
@@ -77,7 +78,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.cloudy_weather_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.cloudy_weather_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.cloudy_weather_4
- else -> R.drawable.cloudy_weather
+ else -> if (context.isDarkTheme()) R.drawable.cloudy_weather_5 else R.drawable.cloudy_weather_5_light
}
}
"09d" -> {
@@ -85,7 +86,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.storm_weather_day_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.storm_weather_day_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.storm_weather_day_4
- else -> R.drawable.storm_weather_day
+ else -> if (context.isDarkTheme()) R.drawable.storm_weather_day_5 else R.drawable.storm_weather_day_5_light
}
}
"10d" -> {
@@ -93,7 +94,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.rainy_day_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.rainy_day_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.rainy_day_4
- else -> R.drawable.rainy_day
+ else -> if (context.isDarkTheme()) R.drawable.rainy_day_5 else R.drawable.rainy_day_5_light
}
}
"11d" -> {
@@ -101,7 +102,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.thunder_day_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.thunder_day_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.thunder_day_4
- else -> R.drawable.thunder_day
+ else -> if (context.isDarkTheme()) R.drawable.thunder_day_5 else R.drawable.thunder_day_5_light
}
}
"13d" -> {
@@ -109,7 +110,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.snow_day_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.snow_day_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.snow_day_4
- else -> R.drawable.snow_day
+ else -> if (context.isDarkTheme()) R.drawable.snow_day_5 else R.drawable.snow_day_5_light
}
}
"50d" -> {
@@ -117,7 +118,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.haze_day_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.haze_day_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.haze_day_4
- else -> R.drawable.haze_day
+ else -> if (context.isDarkTheme()) R.drawable.haze_day_5 else R.drawable.haze_day_5_light
}
}
"80d" -> {
@@ -125,7 +126,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.windy_day_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.windy_day_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.windy_day_4
- else -> R.drawable.windy_day
+ else -> if (context.isDarkTheme()) R.drawable.windy_day_5 else R.drawable.windy_day_5_light
}
}
"81d" -> {
@@ -133,7 +134,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.rain_snow_day_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.rain_snow_day_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.rain_snow_day_4
- else -> R.drawable.rain_snow_day
+ else -> if (context.isDarkTheme()) R.drawable.rain_snow_day_5 else R.drawable.rain_snow_day_5_light
}
}
"82d" -> {
@@ -141,7 +142,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.haze_weather_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.haze_weather_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.haze_weather_4
- else -> R.drawable.haze_weather
+ else -> if (context.isDarkTheme()) R.drawable.haze_weather_5 else R.drawable.haze_weather_5_light
}
}
@@ -152,7 +153,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.clear_night_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.clear_night_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.clear_night_4
- else -> R.drawable.clear_night
+ else -> if (context.isDarkTheme()) R.drawable.clear_night_5 else R.drawable.clear_night_5_light
}
}
"02n" -> {
@@ -160,7 +161,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.partly_cloudy_night_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.partly_cloudy_night_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.partly_cloudy_night_4
- else -> R.drawable.partly_cloudy_night
+ else -> if (context.isDarkTheme()) R.drawable.partly_cloudy_night_5 else R.drawable.partly_cloudy_night_5_light
}
}
"03n" -> {
@@ -168,7 +169,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.mostly_cloudy_night_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.mostly_cloudy_night_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.mostly_cloudy_night_4
- else -> R.drawable.mostly_cloudy_night
+ else -> if (context.isDarkTheme()) R.drawable.mostly_cloudy_night_5 else R.drawable.mostly_cloudy_night_5_light
}
}
"04n" -> {
@@ -176,7 +177,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.cloudy_weather_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.cloudy_weather_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.cloudy_weather_4
- else -> R.drawable.cloudy_weather
+ else -> if (context.isDarkTheme()) R.drawable.cloudy_weather_5 else R.drawable.cloudy_weather_5_light
}
}
"09n" -> {
@@ -184,7 +185,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.storm_weather_night_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.storm_weather_night_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.storm_weather_night_4
- else -> R.drawable.storm_weather_night
+ else -> if (context.isDarkTheme()) R.drawable.storm_weather_night_5 else R.drawable.storm_weather_night_5_light
}
}
"10n" -> {
@@ -192,7 +193,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.rainy_night_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.rainy_night_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.rainy_night_4
- else -> R.drawable.rainy_night
+ else -> if (context.isDarkTheme()) R.drawable.rainy_night_5 else R.drawable.rainy_night_5_light
}
}
"11n" -> {
@@ -200,7 +201,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.thunder_night_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.thunder_night_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.thunder_night_4
- else -> R.drawable.thunder_night
+ else -> if (context.isDarkTheme()) R.drawable.thunder_night_5 else R.drawable.thunder_night_5_light
}
}
"13n" -> {
@@ -208,7 +209,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.snow_night_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.snow_night_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.snow_night_4
- else -> R.drawable.snow_night
+ else -> if (context.isDarkTheme()) R.drawable.snow_night_5 else R.drawable.snow_night_5_light
}
}
"50n" -> {
@@ -216,7 +217,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.haze_night_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.haze_night_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.haze_night_4
- else -> R.drawable.haze_night
+ else -> if (context.isDarkTheme()) R.drawable.haze_night_5 else R.drawable.haze_night_5_light
}
}
"80n" -> {
@@ -224,7 +225,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.windy_night_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.windy_night_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.windy_night_4
- else -> R.drawable.windy_night
+ else -> if (context.isDarkTheme()) R.drawable.windy_night_5 else R.drawable.windy_night_5_light
}
}
"81n" -> {
@@ -232,7 +233,7 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.rain_snow_night_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.rain_snow_night_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.rain_snow_night_4
- else -> R.drawable.rain_snow_night
+ else -> if (context.isDarkTheme()) R.drawable.rain_snow_night_5 else R.drawable.rain_snow_night_5_light
}
}
"82n" -> {
@@ -240,11 +241,11 @@ object WeatherHelper {
Constants.WeatherIconPack.COOL.value -> R.drawable.haze_weather_3
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.haze_weather_2
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.haze_weather_4
- else -> R.drawable.haze_weather
+ else -> if (context.isDarkTheme()) R.drawable.haze_weather_5 else R.drawable.haze_weather_5_light
}
}
else -> {
- return R.drawable.unknown
+ return if (context.isDarkTheme()) R.drawable.unknown_dark else R.drawable.unknown_light
}
}
}
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/services/UpdateCalendarJob.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/services/UpdateCalendarJob.kt
index 3a263f6..18b7b21 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/services/UpdateCalendarJob.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/services/UpdateCalendarJob.kt
@@ -108,19 +108,19 @@ class UpdateCalendarJob : JobIntentService() {
if (date.get(Calendar.DAY_OF_YEAR) == date1.get(Calendar.DAY_OF_YEAR) && date.get(Calendar.YEAR) == date1.get(Calendar.YEAR)) {
if (event.allDay && event1.allDay) {
- event1.startDate.compareTo(event.startDate)
+ event.startDate.compareTo(event1.startDate)
} else if (event.allDay) {
- -1
- } else if (event1.allDay) {
1
+ } else if (event1.allDay) {
+ -1
} else {
- event1.startDate.compareTo(event.startDate)
+ event.startDate.compareTo(event1.startDate)
}
} else {
- event1.startDate.compareTo(event.startDate)
+ event.startDate.compareTo(event1.startDate)
}
})
- eventList.reverse()
+
eventRepository.saveEvents(
eventList
)
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/CustomFontActivity.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/CustomFontActivity.kt
index c2654e2..d9d5c48 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/CustomFontActivity.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/CustomFontActivity.kt
@@ -63,6 +63,31 @@ class CustomFontActivity : AppCompatActivity() {
}
})
adapter
+ .register(R.layout.list_item) { item, injector ->
+ injector
+ .text(R.id.text, item)
+ .with(R.id.text) {
+ val googleSans: Typeface = when (Preferences.customFontVariant) {
+ "100" -> Typeface.createFromAsset(this.assets, "fonts/google_sans_thin.ttf")
+ "200" -> Typeface.createFromAsset(this.assets, "fonts/google_sans_light.ttf")
+ "500" -> Typeface.createFromAsset(this.assets, "fonts/google_sans_medium.ttf")
+ "700" -> Typeface.createFromAsset(this.assets, "fonts/google_sans_bold.ttf")
+ "800" -> Typeface.createFromAsset(this.assets, "fonts/google_sans_black.ttf")
+ else -> Typeface.createFromAsset(this.assets, "fonts/google_sans_regular.ttf")
+ }
+ it.typeface = googleSans
+ }
+
+ injector.clicked(R.id.text) {
+ val dialog = BottomSheetMenu(this, header = item)
+ listOf("100", "200", "regular", "500", "700", "800").forEachIndexed { index, s ->
+ dialog.addItem(SettingsStringHelper.getVariantLabel(this, s), s)
+ }
+ dialog.addOnSelectItemListener { value ->
+ saveGoogleSansFont(value)
+ }.show()
+ }
+ }
.register(R.layout.list_item) { item, injector ->
injector
.text(R.id.text, item.fontFamily)
@@ -101,17 +126,18 @@ class CustomFontActivity : AppCompatActivity() {
}
injector.clicked(R.id.text) {
- if (item.fontVariants.size <= 1) {
- saveFont(item)
+ val dialog = BottomSheetMenu(this, header = item.fontFamily)
+ if (item.fontVariants.isEmpty()) {
+ dialog.addItem(SettingsStringHelper.getVariantLabel(this, "regular"), -1)
} else {
- val dialog = BottomSheetMenu(this, header = item.fontFamily)
- item.fontVariants.filter { !it.contains("italic") }.forEachIndexed { index, s ->
- dialog.addItem(SettingsStringHelper.getVariantLabel(this, s), index)
- }
- dialog.addOnSelectItemListener { value ->
- saveFont(item, value)
- }.show()
+ item.fontVariants.filter { !it.contains("italic") }
+ .forEachIndexed { index, s ->
+ dialog.addItem(SettingsStringHelper.getVariantLabel(this, s), index)
+ }
}
+ dialog.addOnSelectItemListener { value ->
+ saveFont(item, value)
+ }.show()
}
}
.attachTo(list_view)
@@ -146,13 +172,33 @@ class CustomFontActivity : AppCompatActivity() {
filterJob = lifecycleScope.launch(Dispatchers.IO) {
if (list != null && list.isNotEmpty()) {
delay(200)
- val filteredList: List = if (search == null || search == "") {
- list
+ val filteredList: List = if (search == null || search == "") {
+ listOf(getString(R.string.custom_font_subtitle_1)) + list.distinctBy { it.fontFamily }
} else {
- list.filter {
- it.fontFamily.contains(search, true)
+ (listOf(getString(R.string.custom_font_subtitle_1)) + list.distinctBy { it.fontFamily }).filter {
+ when (it) {
+ is Font -> {
+ it.fontFamily.contains(search, true)
+ }
+ is String -> {
+ it.contains(search, ignoreCase = true)
+ }
+ else -> {
+ true
+ }
+ }
}
- }.distinctBy { it.fontFamily }
+ }.sortedWith { el1, el2 ->
+ if (el1 is Font && el2 is Font) {
+ el1.fontFamily.compareTo(el2.fontFamily)
+ } else if (el1 is Font && el2 is String) {
+ el1.fontFamily.compareTo(el2)
+ } else if (el1 is String && el2 is Font) {
+ el1.compareTo(el2.fontFamily)
+ } else {
+ 1
+ }
+ }
withContext(Dispatchers.Main) {
adapter.updateData(filteredList)
loader.visibility = View.INVISIBLE
@@ -172,7 +218,20 @@ class CustomFontActivity : AppCompatActivity() {
Preferences.blockingBulk {
customFont = Constants.CUSTOM_FONT_DOWNLOADED
customFontName = font.fontFamily
- customFontFile = if (variantPos != null) font.getQueryString(variantPos) else font.queryString
+ customFontFile = if (variantPos != null && variantPos > -1) font.getQueryString(variantPos) else font.queryString
+ customFontVariant = if (variantPos != null && variantPos > -1) font.fontVariants[variantPos] else "regular"
+ }
+ setResult(Activity.RESULT_OK, resultIntent)
+ finish()
+ }
+
+ private fun saveGoogleSansFont(variant: String) {
+ val resultIntent = Intent()
+ Preferences.blockingBulk {
+ customFont = Constants.CUSTOM_FONT_GOOGLE_SANS
+ customFontName = ""
+ customFontFile = ""
+ customFontVariant = variant
}
setResult(Activity.RESULT_OK, resultIntent)
finish()
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/MusicPlayersFilterActivity.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/MusicPlayersFilterActivity.kt
new file mode 100644
index 0000000..4b6fab2
--- /dev/null
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/MusicPlayersFilterActivity.kt
@@ -0,0 +1,141 @@
+package com.tommasoberlose.anotherwidget.ui.activities
+
+import android.app.Activity
+import android.os.Bundle
+import com.tommasoberlose.anotherwidget.R
+import android.content.Intent
+import android.content.pm.ApplicationInfo
+import android.content.pm.ResolveInfo
+import android.util.Log
+import android.view.View
+import android.widget.ImageView
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.content.ContextCompat
+import androidx.databinding.DataBindingUtil
+import androidx.lifecycle.Observer
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.bumptech.glide.Glide
+import com.tommasoberlose.anotherwidget.databinding.ActivityChooseApplicationBinding
+import com.tommasoberlose.anotherwidget.databinding.ActivityMusicPlayersFilterBinding
+import com.tommasoberlose.anotherwidget.global.Constants
+import com.tommasoberlose.anotherwidget.global.Preferences
+import com.tommasoberlose.anotherwidget.helpers.MediaPlayerHelper
+import com.tommasoberlose.anotherwidget.ui.viewmodels.ChooseApplicationViewModel
+import com.tommasoberlose.anotherwidget.ui.viewmodels.MusicPlayersFilterViewModel
+import kotlinx.android.synthetic.main.activity_choose_application.*
+import kotlinx.android.synthetic.main.activity_choose_application.list_view
+import kotlinx.coroutines.*
+import net.idik.lib.slimadapter.SlimAdapter
+import kotlin.Comparator as Comparator1
+
+
+class MusicPlayersFilterActivity : AppCompatActivity() {
+
+ private lateinit var adapter: SlimAdapter
+ private lateinit var viewModel: MusicPlayersFilterViewModel
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ viewModel = ViewModelProvider(this).get(MusicPlayersFilterViewModel::class.java)
+ val binding = DataBindingUtil.setContentView(this, R.layout.activity_music_players_filter)
+
+ list_view.setHasFixedSize(true)
+ val mLayoutManager = LinearLayoutManager(this)
+ list_view.layoutManager = mLayoutManager
+
+ adapter = SlimAdapter.create()
+ adapter
+ .register(R.layout.application_info_layout) { item, injector ->
+ injector
+ .text(R.id.text, item.loadLabel(viewModel.pm))
+ .with(R.id.icon) {
+ Glide
+ .with(this)
+ .load(item.loadIcon(viewModel.pm))
+ .centerCrop()
+ .into(it)
+ }
+ .visible(R.id.checkBox)
+ .clicked(R.id.item) {
+ toggleApp(item)
+ adapter.notifyItemRangeChanged(0, adapter.data.size)
+ }
+ .clicked(R.id.checkBox) {
+ toggleApp(item)
+ adapter.notifyItemRangeChanged(0, adapter.data.size)
+ }
+ .checked(R.id.checkBox, MediaPlayerHelper.isMusicPlayerAccepted(item.activityInfo.packageName))
+ }
+ .attachTo(list_view)
+
+ setupListener()
+ subscribeUi(binding, viewModel)
+
+ search.requestFocus()
+ }
+
+ private var filterJob: Job? = null
+
+ private fun subscribeUi(binding: ActivityMusicPlayersFilterBinding, viewModel: MusicPlayersFilterViewModel) {
+ binding.viewModel = viewModel
+
+ viewModel.appList.observe(this, Observer {
+ updateList(list = it)
+ loader.visibility = View.INVISIBLE
+ })
+
+ viewModel.searchInput.observe(this, Observer { search ->
+ updateList(search = search)
+ })
+
+ viewModel.musicPlayersFilter.observe(this, {
+ updateList()
+ })
+ }
+
+ private fun updateList(list: List? = viewModel.appList.value, search: String? = viewModel.searchInput.value) {
+ loader.visibility = View.VISIBLE
+ filterJob?.cancel()
+ filterJob = lifecycleScope.launch(Dispatchers.IO) {
+ if (list != null && list.isNotEmpty()) {
+ delay(200)
+ val filteredList: List = if (search == null || search == "") {
+ list
+ } else {
+ list.filter {
+ it.loadLabel(viewModel.pm).contains(search, true)
+ }
+ }.sortedWith { app1, app2 ->
+ if (MediaPlayerHelper.isMusicPlayerAccepted(app1.activityInfo.packageName) && MediaPlayerHelper.isMusicPlayerAccepted(app2.activityInfo.packageName)) {
+ app1.loadLabel(viewModel.pm).toString().compareTo(app2.loadLabel(viewModel.pm).toString(), ignoreCase = true)
+ } else if (MediaPlayerHelper.isMusicPlayerAccepted(app1.activityInfo.packageName)) {
+ -1
+ } else if (MediaPlayerHelper.isMusicPlayerAccepted(app2.activityInfo.packageName)) {
+ 1
+ } else {
+ app1.loadLabel(viewModel.pm).toString().compareTo(app2.loadLabel(viewModel.pm).toString(), ignoreCase = true)
+ }
+ }
+
+
+ withContext(Dispatchers.Main) {
+ adapter.updateData(filteredList)
+ loader.visibility = View.INVISIBLE
+ }
+ }
+ }
+ }
+
+ private fun setupListener() {
+ action_back.setOnClickListener {
+ onBackPressed()
+ }
+ }
+
+ private fun toggleApp(app: ResolveInfo) {
+ MediaPlayerHelper.toggleMusicPlayerFilter(app.activityInfo.packageName)
+ }
+}
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/GeneralTabFragment.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/GeneralTabFragment.kt
index d7a3752..c9928c4 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/GeneralTabFragment.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/GeneralTabFragment.kt
@@ -302,6 +302,13 @@ class GeneralTabFragment : Fragment() {
}
})
+ viewModel.customFontVariant.observe(viewLifecycleOwner, Observer {
+ maintainScrollPosition {
+ custom_font_label?.text = SettingsStringHelper.getCustomFontLabel(requireContext(), Preferences.customFont)
+ MainWidget.updateWidget(requireContext())
+ }
+ })
+
viewModel.showDividers.observe(viewLifecycleOwner, Observer {
maintainScrollPosition {
show_dividers_label?.text =
@@ -481,11 +488,14 @@ class GeneralTabFragment : Fragment() {
action_custom_font.setOnClickListener {
val dialog = BottomSheetMenu(requireContext(), header = getString(R.string.settings_custom_font_title)).setSelectedValue(Preferences.customFont)
- (0..1).forEach {
- dialog.addItem(SettingsStringHelper.getCustomFontLabel(requireContext(), it), it)
+ dialog.addItem(SettingsStringHelper.getCustomFontLabel(requireContext(), 0), 0)
+
+ if (Preferences.customFont == Constants.CUSTOM_FONT_GOOGLE_SANS) {
+ dialog.addItem(SettingsStringHelper.getCustomFontLabel(requireContext(), Constants.CUSTOM_FONT_GOOGLE_SANS), Constants.CUSTOM_FONT_GOOGLE_SANS)
}
+
if (Preferences.customFontFile != "") {
- dialog.addItem(Preferences.customFontName, Constants.CUSTOM_FONT_DOWNLOADED)
+ dialog.addItem(SettingsStringHelper.getCustomFontLabel(requireContext(), Preferences.customFont), Constants.CUSTOM_FONT_DOWNLOADED)
}
dialog.addItem(getString(R.string.action_custom_font_to_search), Constants.CUSTOM_FONT_DOWNLOAD_NEW)
dialog.addOnSelectItemListener { value ->
@@ -499,6 +509,7 @@ class GeneralTabFragment : Fragment() {
customFont = value
customFontFile = ""
customFontName = ""
+ customFontVariant = ""
}
}
}.show()
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/GlanceTabFragment.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/GlanceTabFragment.kt
index c8902e1..df8053a 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/GlanceTabFragment.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/GlanceTabFragment.kt
@@ -44,6 +44,7 @@ import com.tommasoberlose.anotherwidget.helpers.MediaPlayerHelper
import com.tommasoberlose.anotherwidget.receivers.ActivityDetectionReceiver
import com.tommasoberlose.anotherwidget.receivers.ActivityDetectionReceiver.Companion.FITNESS_OPTIONS
import com.tommasoberlose.anotherwidget.ui.activities.MainActivity
+import com.tommasoberlose.anotherwidget.ui.activities.MusicPlayersFilterActivity
import com.tommasoberlose.anotherwidget.ui.viewmodels.MainViewModel
import com.tommasoberlose.anotherwidget.utils.checkGrantedPermission
import com.tommasoberlose.anotherwidget.utils.checkIfFitInstalled
@@ -136,6 +137,9 @@ class GlanceTabFragment : Fragment() {
}
})
+ viewModel.musicPlayersFilter.observe(viewLifecycleOwner, Observer {
+
+ })
}
private fun setupListener() {
@@ -242,6 +246,10 @@ class GlanceTabFragment : Fragment() {
CustomNotesDialog(requireContext()).show()
}
}
+
+ action_filter_music_players.setOnClickListener {
+ startActivity(Intent(requireContext(), MusicPlayersFilterActivity::class.java))
+ }
}
private fun updateNextAlarmWarningUi() {
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt
index 2a2375a..ac84a5f 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt
@@ -26,6 +26,7 @@ class MainViewModel : ViewModel() {
val customFont = Preferences.asLiveData(Preferences::customFont)
val customFontFile = Preferences.asLiveData(Preferences::customFontFile)
val customFontName = Preferences.asLiveData(Preferences::customFontName)
+ val customFontVariant = Preferences.asLiveData(Preferences::customFontVariant)
val secondRowInformation = Preferences.asLiveData(Preferences::secondRowInformation)
val showDividers = Preferences.asLiveData(Preferences::showDividers)
val secondRowTopMargin = Preferences.asLiveData(Preferences::secondRowTopMargin)
@@ -77,6 +78,7 @@ class MainViewModel : ViewModel() {
val showBatteryCharging = Preferences.asLiveData(Preferences::showBatteryCharging)
val showDailySteps = Preferences.asLiveData(Preferences::showDailySteps)
val customInfo = Preferences.asLiveData(Preferences::customNotes)
+ val musicPlayersFilter = Preferences.asLiveData(Preferences::musicPlayersFilter)
// Advanced Settings
val darkThemePreference = Preferences.asLiveData(Preferences::darkThemePreference)
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MusicPlayersFilterViewModel.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MusicPlayersFilterViewModel.kt
new file mode 100644
index 0000000..0719c39
--- /dev/null
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MusicPlayersFilterViewModel.kt
@@ -0,0 +1,38 @@
+package com.tommasoberlose.anotherwidget.ui.viewmodels
+
+import android.app.Application
+import android.content.Intent
+import android.content.pm.ApplicationInfo
+import android.content.pm.PackageManager
+import android.content.pm.ResolveInfo
+import android.util.Log
+import androidx.lifecycle.*
+import com.chibatching.kotpref.livedata.asLiveData
+import com.tommasoberlose.anotherwidget.global.Preferences
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+class MusicPlayersFilterViewModel(application: Application) : AndroidViewModel(application) {
+
+ val pm: PackageManager by lazy { application.packageManager }
+ val appList: MutableLiveData> = MutableLiveData()
+ val searchInput: MutableLiveData = MutableLiveData("")
+ var musicPlayersFilter = Preferences.asLiveData(Preferences::musicPlayersFilter)
+
+ init {
+ viewModelScope.launch(Dispatchers.IO) {
+ val mainIntent = Intent(Intent.ACTION_MAIN, null).apply {
+ addCategory(Intent.CATEGORY_LAUNCHER)
+ }
+
+ val app = application.packageManager.queryIntentActivities(mainIntent, 0)
+ val sortedApp = app.sortedWith(Comparator { app1: ResolveInfo, app2: ResolveInfo ->
+ app1.loadLabel(pm).toString().compareTo(app2.loadLabel(pm).toString())
+ })
+ withContext(Dispatchers.Main) {
+ appList.postValue(sortedApp)
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt
index d7ca1f6..5627144 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt
@@ -507,6 +507,8 @@ class MainWidget : AppWidgetProvider() {
val eventRepository = EventRepository(context)
val v = View.inflate(context, R.layout.the_widget, null)
+ v.loader.isVisible = false
+
val now = Calendar.getInstance().apply {
set(Calendar.SECOND, 0)
set(Calendar.MILLISECOND, 0)
@@ -841,8 +843,15 @@ class MainWidget : AppWidgetProvider() {
// Custom Font
if (Preferences.customFont == Constants.CUSTOM_FONT_GOOGLE_SANS) {
- val googleSans: Typeface =
- Typeface.createFromAsset(context.assets, "fonts/google_sans_regular.ttf")
+ val googleSans: Typeface = when (Preferences.customFontVariant) {
+ "100" -> Typeface.createFromAsset(context.assets, "fonts/google_sans_thin.ttf")
+ "200" -> Typeface.createFromAsset(context.assets, "fonts/google_sans_light.ttf")
+ "500" -> Typeface.createFromAsset(context.assets, "fonts/google_sans_medium.ttf")
+ "700" -> Typeface.createFromAsset(context.assets, "fonts/google_sans_bold.ttf")
+ "800" -> Typeface.createFromAsset(context.assets, "fonts/google_sans_black.ttf")
+ else -> Typeface.createFromAsset(context.assets, "fonts/google_sans_regular.ttf")
+ }
+
listOf(
v.empty_date,
v.divider1,
@@ -892,17 +901,9 @@ class MainWidget : AppWidgetProvider() {
v.empty_weather_icon.visibility = View.GONE
v.special_weather_icon.visibility = View.GONE
} else {
- v.weather_icon.setImageResource(WeatherHelper.getWeatherIconResource(icon))
- v.empty_weather_icon.setImageResource(
- WeatherHelper.getWeatherIconResource(
- icon
- )
- )
- v.special_weather_icon.setImageResource(
- WeatherHelper.getWeatherIconResource(
- icon
- )
- )
+ v.weather_icon.setImageResource(WeatherHelper.getWeatherIconResource(context, icon))
+ v.empty_weather_icon.setImageResource(WeatherHelper.getWeatherIconResource(context, icon))
+ v.special_weather_icon.setImageResource(WeatherHelper.getWeatherIconResource(context, icon))
v.weather_icon.visibility = View.VISIBLE
v.empty_weather_icon.visibility = View.VISIBLE
v.special_weather_icon.visibility = View.VISIBLE
diff --git a/app/src/main/res/drawable-hdpi/round_radio.png b/app/src/main/res/drawable-hdpi/round_radio.png
new file mode 100644
index 0000000..84a680c
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_radio.png differ
diff --git a/app/src/main/res/drawable-hdpi/round_radio_white_18.png b/app/src/main/res/drawable-hdpi/round_radio_white_18.png
new file mode 100644
index 0000000..65505e8
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_radio_white_18.png differ
diff --git a/app/src/main/res/drawable-hdpi/round_radio_white_36.png b/app/src/main/res/drawable-hdpi/round_radio_white_36.png
new file mode 100644
index 0000000..cec12ec
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_radio_white_36.png differ
diff --git a/app/src/main/res/drawable-hdpi/round_radio_white_48.png b/app/src/main/res/drawable-hdpi/round_radio_white_48.png
new file mode 100644
index 0000000..70a6814
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_radio_white_48.png differ
diff --git a/app/src/main/res/drawable-mdpi/round_radio.png b/app/src/main/res/drawable-mdpi/round_radio.png
new file mode 100644
index 0000000..30261c2
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_radio.png differ
diff --git a/app/src/main/res/drawable-mdpi/round_radio_white_18.png b/app/src/main/res/drawable-mdpi/round_radio_white_18.png
new file mode 100644
index 0000000..98dccb9
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_radio_white_18.png differ
diff --git a/app/src/main/res/drawable-mdpi/round_radio_white_36.png b/app/src/main/res/drawable-mdpi/round_radio_white_36.png
new file mode 100644
index 0000000..84a680c
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_radio_white_36.png differ
diff --git a/app/src/main/res/drawable-mdpi/round_radio_white_48.png b/app/src/main/res/drawable-mdpi/round_radio_white_48.png
new file mode 100644
index 0000000..4fa8c35
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_radio_white_48.png differ
diff --git a/app/src/main/res/drawable-xhdpi/round_radio.png b/app/src/main/res/drawable-xhdpi/round_radio.png
new file mode 100644
index 0000000..4fa8c35
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_radio.png differ
diff --git a/app/src/main/res/drawable-xhdpi/round_radio_white_18.png b/app/src/main/res/drawable-xhdpi/round_radio_white_18.png
new file mode 100644
index 0000000..84a680c
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_radio_white_18.png differ
diff --git a/app/src/main/res/drawable-xhdpi/round_radio_white_36.png b/app/src/main/res/drawable-xhdpi/round_radio_white_36.png
new file mode 100644
index 0000000..70a6814
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_radio_white_36.png differ
diff --git a/app/src/main/res/drawable-xhdpi/round_radio_white_48.png b/app/src/main/res/drawable-xhdpi/round_radio_white_48.png
new file mode 100644
index 0000000..8f3db1c
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_radio_white_48.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/round_radio.png b/app/src/main/res/drawable-xxhdpi/round_radio.png
new file mode 100644
index 0000000..70a6814
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_radio.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/round_radio_white_18.png b/app/src/main/res/drawable-xxhdpi/round_radio_white_18.png
new file mode 100644
index 0000000..cec12ec
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_radio_white_18.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/round_radio_white_36.png b/app/src/main/res/drawable-xxhdpi/round_radio_white_36.png
new file mode 100644
index 0000000..5eb5aee
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_radio_white_36.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/round_radio_white_48.png b/app/src/main/res/drawable-xxhdpi/round_radio_white_48.png
new file mode 100644
index 0000000..8cb97fa
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_radio_white_48.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/round_radio.png b/app/src/main/res/drawable-xxxhdpi/round_radio.png
new file mode 100644
index 0000000..8f3db1c
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_radio.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/round_radio_white_18.png b/app/src/main/res/drawable-xxxhdpi/round_radio_white_18.png
new file mode 100644
index 0000000..70a6814
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_radio_white_18.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/round_radio_white_36.png b/app/src/main/res/drawable-xxxhdpi/round_radio_white_36.png
new file mode 100644
index 0000000..8cb97fa
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_radio_white_36.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/round_radio_white_48.png b/app/src/main/res/drawable-xxxhdpi/round_radio_white_48.png
new file mode 100644
index 0000000..14879bb
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_radio_white_48.png differ
diff --git a/app/src/main/res/drawable/clear_day_5.png b/app/src/main/res/drawable/clear_day_5.png
new file mode 100644
index 0000000..7174e01
Binary files /dev/null and b/app/src/main/res/drawable/clear_day_5.png differ
diff --git a/app/src/main/res/drawable/clear_day_5_light.png b/app/src/main/res/drawable/clear_day_5_light.png
new file mode 100644
index 0000000..e84815c
Binary files /dev/null and b/app/src/main/res/drawable/clear_day_5_light.png differ
diff --git a/app/src/main/res/drawable/clear_night_5.png b/app/src/main/res/drawable/clear_night_5.png
new file mode 100644
index 0000000..dcb258a
Binary files /dev/null and b/app/src/main/res/drawable/clear_night_5.png differ
diff --git a/app/src/main/res/drawable/clear_night_5_light.png b/app/src/main/res/drawable/clear_night_5_light.png
new file mode 100644
index 0000000..cfc1170
Binary files /dev/null and b/app/src/main/res/drawable/clear_night_5_light.png differ
diff --git a/app/src/main/res/drawable/cloudy_weather_5.png b/app/src/main/res/drawable/cloudy_weather_5.png
new file mode 100644
index 0000000..970ce21
Binary files /dev/null and b/app/src/main/res/drawable/cloudy_weather_5.png differ
diff --git a/app/src/main/res/drawable/cloudy_weather_5_light.png b/app/src/main/res/drawable/cloudy_weather_5_light.png
new file mode 100644
index 0000000..0d3f4d1
Binary files /dev/null and b/app/src/main/res/drawable/cloudy_weather_5_light.png differ
diff --git a/app/src/main/res/drawable/haze_day_5.png b/app/src/main/res/drawable/haze_day_5.png
new file mode 100644
index 0000000..0c12aed
Binary files /dev/null and b/app/src/main/res/drawable/haze_day_5.png differ
diff --git a/app/src/main/res/drawable/haze_day_5_light.png b/app/src/main/res/drawable/haze_day_5_light.png
new file mode 100644
index 0000000..3a11ca7
Binary files /dev/null and b/app/src/main/res/drawable/haze_day_5_light.png differ
diff --git a/app/src/main/res/drawable/haze_night_5.png b/app/src/main/res/drawable/haze_night_5.png
new file mode 100644
index 0000000..dc5d988
Binary files /dev/null and b/app/src/main/res/drawable/haze_night_5.png differ
diff --git a/app/src/main/res/drawable/haze_night_5_light.png b/app/src/main/res/drawable/haze_night_5_light.png
new file mode 100644
index 0000000..17b94f6
Binary files /dev/null and b/app/src/main/res/drawable/haze_night_5_light.png differ
diff --git a/app/src/main/res/drawable/haze_weather_5.png b/app/src/main/res/drawable/haze_weather_5.png
new file mode 100644
index 0000000..e5f194d
Binary files /dev/null and b/app/src/main/res/drawable/haze_weather_5.png differ
diff --git a/app/src/main/res/drawable/haze_weather_5_light.png b/app/src/main/res/drawable/haze_weather_5_light.png
new file mode 100644
index 0000000..8bb6dc9
Binary files /dev/null and b/app/src/main/res/drawable/haze_weather_5_light.png differ
diff --git a/app/src/main/res/drawable/mostly_cloudy_5.png b/app/src/main/res/drawable/mostly_cloudy_5.png
new file mode 100644
index 0000000..8777d2d
Binary files /dev/null and b/app/src/main/res/drawable/mostly_cloudy_5.png differ
diff --git a/app/src/main/res/drawable/mostly_cloudy_5_light.png b/app/src/main/res/drawable/mostly_cloudy_5_light.png
new file mode 100644
index 0000000..0595049
Binary files /dev/null and b/app/src/main/res/drawable/mostly_cloudy_5_light.png differ
diff --git a/app/src/main/res/drawable/mostly_cloudy_night_5.png b/app/src/main/res/drawable/mostly_cloudy_night_5.png
new file mode 100644
index 0000000..78d4e97
Binary files /dev/null and b/app/src/main/res/drawable/mostly_cloudy_night_5.png differ
diff --git a/app/src/main/res/drawable/mostly_cloudy_night_5_light.png b/app/src/main/res/drawable/mostly_cloudy_night_5_light.png
new file mode 100644
index 0000000..3e4e093
Binary files /dev/null and b/app/src/main/res/drawable/mostly_cloudy_night_5_light.png differ
diff --git a/app/src/main/res/drawable/partly_cloudy_5.png b/app/src/main/res/drawable/partly_cloudy_5.png
new file mode 100644
index 0000000..819682a
Binary files /dev/null and b/app/src/main/res/drawable/partly_cloudy_5.png differ
diff --git a/app/src/main/res/drawable/partly_cloudy_5_light.png b/app/src/main/res/drawable/partly_cloudy_5_light.png
new file mode 100644
index 0000000..ebb526f
Binary files /dev/null and b/app/src/main/res/drawable/partly_cloudy_5_light.png differ
diff --git a/app/src/main/res/drawable/partly_cloudy_night_5.png b/app/src/main/res/drawable/partly_cloudy_night_5.png
new file mode 100644
index 0000000..1046ec6
Binary files /dev/null and b/app/src/main/res/drawable/partly_cloudy_night_5.png differ
diff --git a/app/src/main/res/drawable/partly_cloudy_night_5_light.png b/app/src/main/res/drawable/partly_cloudy_night_5_light.png
new file mode 100644
index 0000000..3af6169
Binary files /dev/null and b/app/src/main/res/drawable/partly_cloudy_night_5_light.png differ
diff --git a/app/src/main/res/drawable/rain_snow_5.png b/app/src/main/res/drawable/rain_snow_5.png
new file mode 100644
index 0000000..34726b6
Binary files /dev/null and b/app/src/main/res/drawable/rain_snow_5.png differ
diff --git a/app/src/main/res/drawable/rain_snow_5_light.png b/app/src/main/res/drawable/rain_snow_5_light.png
new file mode 100644
index 0000000..d1f7114
Binary files /dev/null and b/app/src/main/res/drawable/rain_snow_5_light.png differ
diff --git a/app/src/main/res/drawable/rain_snow_day_5.png b/app/src/main/res/drawable/rain_snow_day_5.png
new file mode 100644
index 0000000..6e40f37
Binary files /dev/null and b/app/src/main/res/drawable/rain_snow_day_5.png differ
diff --git a/app/src/main/res/drawable/rain_snow_day_5_light.png b/app/src/main/res/drawable/rain_snow_day_5_light.png
new file mode 100644
index 0000000..d1f7114
Binary files /dev/null and b/app/src/main/res/drawable/rain_snow_day_5_light.png differ
diff --git a/app/src/main/res/drawable/rain_snow_night_5.png b/app/src/main/res/drawable/rain_snow_night_5.png
new file mode 100644
index 0000000..34726b6
Binary files /dev/null and b/app/src/main/res/drawable/rain_snow_night_5.png differ
diff --git a/app/src/main/res/drawable/rain_snow_night_5_light.png b/app/src/main/res/drawable/rain_snow_night_5_light.png
new file mode 100644
index 0000000..d1f7114
Binary files /dev/null and b/app/src/main/res/drawable/rain_snow_night_5_light.png differ
diff --git a/app/src/main/res/drawable/rainy_day_5.png b/app/src/main/res/drawable/rainy_day_5.png
new file mode 100644
index 0000000..b436edb
Binary files /dev/null and b/app/src/main/res/drawable/rainy_day_5.png differ
diff --git a/app/src/main/res/drawable/rainy_day_5_light.png b/app/src/main/res/drawable/rainy_day_5_light.png
new file mode 100644
index 0000000..d24c029
Binary files /dev/null and b/app/src/main/res/drawable/rainy_day_5_light.png differ
diff --git a/app/src/main/res/drawable/rainy_night_5.png b/app/src/main/res/drawable/rainy_night_5.png
new file mode 100644
index 0000000..0bd669d
Binary files /dev/null and b/app/src/main/res/drawable/rainy_night_5.png differ
diff --git a/app/src/main/res/drawable/rainy_night_5_light.png b/app/src/main/res/drawable/rainy_night_5_light.png
new file mode 100644
index 0000000..e244be1
Binary files /dev/null and b/app/src/main/res/drawable/rainy_night_5_light.png differ
diff --git a/app/src/main/res/drawable/rainy_weather_5.png b/app/src/main/res/drawable/rainy_weather_5.png
new file mode 100644
index 0000000..39057c3
Binary files /dev/null and b/app/src/main/res/drawable/rainy_weather_5.png differ
diff --git a/app/src/main/res/drawable/rainy_weather_5_light.png b/app/src/main/res/drawable/rainy_weather_5_light.png
new file mode 100644
index 0000000..0c2ad98
Binary files /dev/null and b/app/src/main/res/drawable/rainy_weather_5_light.png differ
diff --git a/app/src/main/res/drawable/round_radio_24.xml b/app/src/main/res/drawable/round_radio_24.xml
new file mode 100644
index 0000000..fa61e45
--- /dev/null
+++ b/app/src/main/res/drawable/round_radio_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/showcase_5.png b/app/src/main/res/drawable/showcase_5.png
new file mode 100644
index 0000000..62018f4
Binary files /dev/null and b/app/src/main/res/drawable/showcase_5.png differ
diff --git a/app/src/main/res/drawable/showcase_5_light.png b/app/src/main/res/drawable/showcase_5_light.png
new file mode 100644
index 0000000..2f82407
Binary files /dev/null and b/app/src/main/res/drawable/showcase_5_light.png differ
diff --git a/app/src/main/res/drawable/snow_day_5.png b/app/src/main/res/drawable/snow_day_5.png
new file mode 100644
index 0000000..358c301
Binary files /dev/null and b/app/src/main/res/drawable/snow_day_5.png differ
diff --git a/app/src/main/res/drawable/snow_day_5_light.png b/app/src/main/res/drawable/snow_day_5_light.png
new file mode 100644
index 0000000..7439bde
Binary files /dev/null and b/app/src/main/res/drawable/snow_day_5_light.png differ
diff --git a/app/src/main/res/drawable/snow_night_5.png b/app/src/main/res/drawable/snow_night_5.png
new file mode 100644
index 0000000..3d0fab4
Binary files /dev/null and b/app/src/main/res/drawable/snow_night_5.png differ
diff --git a/app/src/main/res/drawable/snow_night_5_light.png b/app/src/main/res/drawable/snow_night_5_light.png
new file mode 100644
index 0000000..b632fd9
Binary files /dev/null and b/app/src/main/res/drawable/snow_night_5_light.png differ
diff --git a/app/src/main/res/drawable/snow_weather_5.png b/app/src/main/res/drawable/snow_weather_5.png
new file mode 100644
index 0000000..1aad544
Binary files /dev/null and b/app/src/main/res/drawable/snow_weather_5.png differ
diff --git a/app/src/main/res/drawable/snow_weather_5_light.png b/app/src/main/res/drawable/snow_weather_5_light.png
new file mode 100644
index 0000000..c7e3d5b
Binary files /dev/null and b/app/src/main/res/drawable/snow_weather_5_light.png differ
diff --git a/app/src/main/res/drawable/storm_weather_5.png b/app/src/main/res/drawable/storm_weather_5.png
new file mode 100644
index 0000000..974ca18
Binary files /dev/null and b/app/src/main/res/drawable/storm_weather_5.png differ
diff --git a/app/src/main/res/drawable/storm_weather_5_light.png b/app/src/main/res/drawable/storm_weather_5_light.png
new file mode 100644
index 0000000..bbd9f5d
Binary files /dev/null and b/app/src/main/res/drawable/storm_weather_5_light.png differ
diff --git a/app/src/main/res/drawable/storm_weather_day_5.png b/app/src/main/res/drawable/storm_weather_day_5.png
new file mode 100644
index 0000000..62018f4
Binary files /dev/null and b/app/src/main/res/drawable/storm_weather_day_5.png differ
diff --git a/app/src/main/res/drawable/storm_weather_day_5_light.png b/app/src/main/res/drawable/storm_weather_day_5_light.png
new file mode 100644
index 0000000..2f82407
Binary files /dev/null and b/app/src/main/res/drawable/storm_weather_day_5_light.png differ
diff --git a/app/src/main/res/drawable/storm_weather_night_5.png b/app/src/main/res/drawable/storm_weather_night_5.png
new file mode 100644
index 0000000..c8b4547
Binary files /dev/null and b/app/src/main/res/drawable/storm_weather_night_5.png differ
diff --git a/app/src/main/res/drawable/storm_weather_night_5_light.png b/app/src/main/res/drawable/storm_weather_night_5_light.png
new file mode 100644
index 0000000..d3aec80
Binary files /dev/null and b/app/src/main/res/drawable/storm_weather_night_5_light.png differ
diff --git a/app/src/main/res/drawable/thunder_day_5.png b/app/src/main/res/drawable/thunder_day_5.png
new file mode 100644
index 0000000..62018f4
Binary files /dev/null and b/app/src/main/res/drawable/thunder_day_5.png differ
diff --git a/app/src/main/res/drawable/thunder_day_5_light.png b/app/src/main/res/drawable/thunder_day_5_light.png
new file mode 100644
index 0000000..2f82407
Binary files /dev/null and b/app/src/main/res/drawable/thunder_day_5_light.png differ
diff --git a/app/src/main/res/drawable/thunder_night_5.png b/app/src/main/res/drawable/thunder_night_5.png
new file mode 100644
index 0000000..02faa9d
Binary files /dev/null and b/app/src/main/res/drawable/thunder_night_5.png differ
diff --git a/app/src/main/res/drawable/thunder_night_5_light.png b/app/src/main/res/drawable/thunder_night_5_light.png
new file mode 100644
index 0000000..d3aec80
Binary files /dev/null and b/app/src/main/res/drawable/thunder_night_5_light.png differ
diff --git a/app/src/main/res/drawable/thunder_weather_5.png b/app/src/main/res/drawable/thunder_weather_5.png
new file mode 100644
index 0000000..974ca18
Binary files /dev/null and b/app/src/main/res/drawable/thunder_weather_5.png differ
diff --git a/app/src/main/res/drawable/thunder_weather_5_light.png b/app/src/main/res/drawable/thunder_weather_5_light.png
new file mode 100644
index 0000000..bbd9f5d
Binary files /dev/null and b/app/src/main/res/drawable/thunder_weather_5_light.png differ
diff --git a/app/src/main/res/drawable/unknown_dark.png b/app/src/main/res/drawable/unknown_dark.png
new file mode 100644
index 0000000..a74b47e
Binary files /dev/null and b/app/src/main/res/drawable/unknown_dark.png differ
diff --git a/app/src/main/res/drawable/unknown_light.png b/app/src/main/res/drawable/unknown_light.png
new file mode 100644
index 0000000..9522eef
Binary files /dev/null and b/app/src/main/res/drawable/unknown_light.png differ
diff --git a/app/src/main/res/drawable/windy_day_5.png b/app/src/main/res/drawable/windy_day_5.png
new file mode 100644
index 0000000..13f4fd3
Binary files /dev/null and b/app/src/main/res/drawable/windy_day_5.png differ
diff --git a/app/src/main/res/drawable/windy_day_5_light.png b/app/src/main/res/drawable/windy_day_5_light.png
new file mode 100644
index 0000000..7aef25c
Binary files /dev/null and b/app/src/main/res/drawable/windy_day_5_light.png differ
diff --git a/app/src/main/res/drawable/windy_night_5.png b/app/src/main/res/drawable/windy_night_5.png
new file mode 100644
index 0000000..13f4fd3
Binary files /dev/null and b/app/src/main/res/drawable/windy_night_5.png differ
diff --git a/app/src/main/res/drawable/windy_night_5_light.png b/app/src/main/res/drawable/windy_night_5_light.png
new file mode 100644
index 0000000..7aef25c
Binary files /dev/null and b/app/src/main/res/drawable/windy_night_5_light.png differ
diff --git a/app/src/main/res/drawable/windy_weather_5.png b/app/src/main/res/drawable/windy_weather_5.png
new file mode 100644
index 0000000..862bf15
Binary files /dev/null and b/app/src/main/res/drawable/windy_weather_5.png differ
diff --git a/app/src/main/res/drawable/windy_weather_5_light.png b/app/src/main/res/drawable/windy_weather_5_light.png
new file mode 100644
index 0000000..7aef25c
Binary files /dev/null and b/app/src/main/res/drawable/windy_weather_5_light.png differ
diff --git a/app/src/main/res/layout/activity_music_players_filter.xml b/app/src/main/res/layout/activity_music_players_filter.xml
new file mode 100644
index 0000000..a2efa61
--- /dev/null
+++ b/app/src/main/res/layout/activity_music_players_filter.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/application_info_layout.xml b/app/src/main/res/layout/application_info_layout.xml
index d3a49d6..4f40ae8 100644
--- a/app/src/main/res/layout/application_info_layout.xml
+++ b/app/src/main/res/layout/application_info_layout.xml
@@ -26,7 +26,8 @@
tools:ignore="HardcodedText" />
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_clock_settings.xml b/app/src/main/res/layout/fragment_clock_settings.xml
index 910d9bd..70e6ff8 100644
--- a/app/src/main/res/layout/fragment_clock_settings.xml
+++ b/app/src/main/res/layout/fragment_clock_settings.xml
@@ -86,7 +86,7 @@
android:layout_height="48dp"
android:padding="12dp"
app:tint="@color/colorPrimaryText"
- android:src="@drawable/round_alarm"/>
+ android:src="@drawable/round_schedule"/>
+
+
+
+
+
+
+
+
Carica
Providers
Glance info will show up only when there are no events displayed and only when a few conditions are verified.
+ Player Musica
+ Scegli i player musical che ti interessano
Condividi
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ad7f8c4..40597f0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -167,6 +167,8 @@
Charged
Providers
Glance info will show up only when there are no events displayed and only when a few conditions are verified.
+ Music Players
+ Choose your relevant music players
Share