diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/numberpicker/NumberPickerAdapter.kt b/app/src/main/java/com/github/droidworksstudio/launcher/adapter/numberpicker/NumberPickerAdapter.kt
similarity index 95%
rename from app/src/main/java/com/github/droidworksstudio/launcher/ui/numberpicker/NumberPickerAdapter.kt
rename to app/src/main/java/com/github/droidworksstudio/launcher/adapter/numberpicker/NumberPickerAdapter.kt
index 1e54577..4a43e0f 100644
--- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/numberpicker/NumberPickerAdapter.kt
+++ b/app/src/main/java/com/github/droidworksstudio/launcher/adapter/numberpicker/NumberPickerAdapter.kt
@@ -1,4 +1,4 @@
-package com.github.droidworksstudio.launcher.ui.numberpicker
+package com.github.droidworksstudio.launcher.adapter.numberpicker
import android.view.LayoutInflater
import android.view.View
diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/helper/weather/WeatherResponse.kt b/app/src/main/java/com/github/droidworksstudio/launcher/helper/weather/WeatherResponse.kt
index 9279091..ab22507 100644
--- a/app/src/main/java/com/github/droidworksstudio/launcher/helper/weather/WeatherResponse.kt
+++ b/app/src/main/java/com/github/droidworksstudio/launcher/helper/weather/WeatherResponse.kt
@@ -25,8 +25,8 @@ data class Main(
data class Sys(
val country: String,
- val sunrise: Int,
- val sunset: Int
+ val sunrise: Long,
+ val sunset: Long
)
data class Weather(
diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/activities/MainActivity.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/activities/MainActivity.kt
index 119a70b..c1a0bf7 100644
--- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/activities/MainActivity.kt
+++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/activities/MainActivity.kt
@@ -35,7 +35,7 @@ import androidx.navigation.NavController
import androidx.navigation.findNavController
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.AppBarConfiguration
-import androidx.navigation.ui.navigateUp
+import androidx.navigation.ui.popBackStack
import com.github.droidworksstudio.common.hasInternetPermission
import com.github.droidworksstudio.common.isTablet
import com.github.droidworksstudio.common.showLongToast
@@ -275,10 +275,10 @@ class MainActivity : AppCompatActivity(), LocationListener {
}
}
- override fun onSupportNavigateUp(): Boolean {
+ override fun onSupportpopBackStack(): Boolean {
val navController = findNavController(R.id.nav_host_fragment_content_main)
- return navController.navigateUp(appBarConfiguration)
- || super.onSupportNavigateUp()
+ return navController.popBackStack(appBarConfiguration)
+ || super.onSupportpopBackStack()
}
@RequiresApi(Build.VERSION_CODES.R)
@@ -310,7 +310,7 @@ class MainActivity : AppCompatActivity(), LocationListener {
private fun backToHomeScreen() {
navController = findNavController(R.id.nav_host_fragment_content_main)
if (navController.currentDestination?.id != R.id.HomeFragment)
- navController.popBackStack(R.id.HomeFragment, false)
+ navController.navigate(R.id.HomeFragment)
}
private fun checkForUpdates() {
diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/widgets/WidgetFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/widgets/WidgetFragment.kt
index c3e57e9..3cc794f 100644
--- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/widgets/WidgetFragment.kt
+++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/widgets/WidgetFragment.kt
@@ -144,6 +144,11 @@ class WidgetFragment : Fragment(),
// Prepare UI elements concurrently
withContext(Dispatchers.Main) {
binding.apply {
+ val weatherWidgetDrawable = weatherRoot.background
+ if (weatherWidgetDrawable is GradientDrawable) {
+ weatherWidgetDrawable.setColor(widgetBackgroundColor)
+ }
+
weatherCity.setTextColor(widgetTextColor)
weatherTemperature.setTextColor(widgetTextColor)
weatherDescription.setTextColor(widgetTextColor)
@@ -151,6 +156,9 @@ class WidgetFragment : Fragment(),
weatherHumidity.setTextColor(widgetTextColor)
weatherRefresh.setTextColor(widgetTextColor)
weatherLastRun.setTextColor(widgetTextColor)
+
+ sunsetText.setTextColor(widgetTextColor)
+ sunriseText.setTextColor(widgetTextColor)
weatherRefresh.typeface = ResourcesCompat.getFont(requireActivity(), R.font.weather)
}
}
@@ -173,10 +181,21 @@ class WidgetFragment : Fragment(),
weatherIcon.setImageBitmap(weatherIconBitmap) // Ensure this matches your ImageView ID
weatherIcon.setColorFilter(widgetTextColor)
- val weatherWidgetDrawable = weatherRoot.background
- if (weatherWidgetDrawable is GradientDrawable) {
- weatherWidgetDrawable.setColor(widgetBackgroundColor)
- }
+ val sunriseIconBitmap = createSunIcon(context, getString(R.string.sunrise_icon))
+ sunriseIcon.setImageBitmap(sunriseIconBitmap)
+ sunriseIcon.setColorFilter(widgetTextColor)
+
+ val sunsetIconBitmap = createSunIcon(context, getString(R.string.sunset_icon))
+ sunsetIcon.setImageBitmap(sunsetIconBitmap)
+ sunsetIcon.setColorFilter(widgetTextColor)
+
+ val sunriseTime = convertTimestampToReadableDate(weatherResponse.sys.sunrise)
+ sunriseText.text = getString(R.string.widget_sunrise_time, sunriseTime)
+
+ val sunsetTime = convertTimestampToReadableDate(weatherResponse.sys.sunset)
+ sunsetText.text = getString(R.string.widget_sunset_time, sunsetTime)
+
+
weatherRoot.visibility = View.VISIBLE
}
}
@@ -197,12 +216,28 @@ class WidgetFragment : Fragment(),
paint.typeface = weatherFont
paint.style = Paint.Style.FILL
paint.color = ContextCompat.getColor(context, R.color.white)
- paint.textSize = 180f
+ paint.textSize = 200f
paint.textAlign = Paint.Align.CENTER
canvas.drawText(text, 128f, 200f, paint)
return bitmap
}
+ private fun createSunIcon(context: Context, text: String): Bitmap {
+ val bitmap = Bitmap.createBitmap(128, 128, Bitmap.Config.ARGB_8888)
+ val canvas = Canvas(bitmap)
+ val paint = Paint()
+ val weatherFont = ResourcesCompat.getFont(requireActivity(), R.font.weather)
+ paint.isAntiAlias = true
+ paint.isSubpixelText = true
+ paint.typeface = weatherFont
+ paint.style = Paint.Style.FILL
+ paint.color = ContextCompat.getColor(context, R.color.white)
+ paint.textSize = 96f
+ paint.textAlign = Paint.Align.CENTER
+ canvas.drawText(text, 64f, 96f, paint)
+ return bitmap
+ }
+
private fun setWeatherIcon(context: Context, id: Int): String {
val icon: String
val idDivided = id / 100
@@ -239,6 +274,11 @@ class WidgetFragment : Fragment(),
lifecycleScope.launch {
if (!preferenceHelper.showBatteryWidget) return@launch
try {
+ val weatherBatteryDrawable = binding.batteryRoot.background
+ if (weatherBatteryDrawable is GradientDrawable) {
+ weatherBatteryDrawable.setColor(preferenceHelper.widgetBackgroundColor)
+ }
+
binding.batteryLevel.setTextColor(preferenceHelper.widgetTextColor)
binding.batteryCount.setTextColor(preferenceHelper.widgetTextColor)
binding.chargingStatus.setTextColor(preferenceHelper.widgetTextColor)
@@ -247,10 +287,6 @@ class WidgetFragment : Fragment(),
binding.batteryVoltage.setTextColor(preferenceHelper.widgetTextColor)
binding.batteryTemperature.setTextColor(preferenceHelper.widgetTextColor)
- val weatherBatteryDrawable = binding.batteryRoot.background
- if (weatherBatteryDrawable is GradientDrawable) {
- weatherBatteryDrawable.setColor(preferenceHelper.widgetBackgroundColor)
- }
binding.batteryRoot.visibility = View.VISIBLE
} catch (e: Exception) {
Log.e("Battery", "Failed to fetch battery data: ${e.message}")
diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/widgets/settings/SettingsFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/widgets/settings/SettingsFragment.kt
index fa6f074..edb5330 100644
--- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/widgets/settings/SettingsFragment.kt
+++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/widgets/settings/SettingsFragment.kt
@@ -21,7 +21,7 @@ import com.github.droidworksstudio.launcher.helper.PreferenceHelper
import com.github.droidworksstudio.launcher.listener.OnSwipeTouchListener
import com.github.droidworksstudio.launcher.listener.ScrollEventListener
import com.github.droidworksstudio.launcher.ui.bottomsheetdialog.ColorBottomSheetDialogFragment
-import com.github.droidworksstudio.launcher.ui.numberpicker.NumberPickerAdapter
+import com.github.droidworksstudio.launcher.adapter.numberpicker.NumberPickerAdapter
import com.github.droidworksstudio.launcher.utils.Constants
import com.github.droidworksstudio.launcher.viewmodel.PreferenceViewModel
import com.google.android.material.dialog.MaterialAlertDialogBuilder
diff --git a/app/src/main/res/layout/fragment_widgets.xml b/app/src/main/res/layout/fragment_widgets.xml
index 2982402..55b0234 100644
--- a/app/src/main/res/layout/fragment_widgets.xml
+++ b/app/src/main/res/layout/fragment_widgets.xml
@@ -91,8 +91,8 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
%1$.0f %2$s
%1$s
+ %1$s
+ %1$s
+
m/s
mil/h