diff --git a/app/build.gradle b/app/build.gradle
index c0e9253..39d1ac7 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -22,7 +22,7 @@ android {
applicationId "com.tommasoberlose.anotherwidget"
minSdkVersion 23
targetSdkVersion 30
- versionCode 132
+ versionCode 134
versionName "2.3.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/MainFragment.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/MainFragment.kt
index 67f4243..234df57 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/MainFragment.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/MainFragment.kt
@@ -16,6 +16,7 @@ import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.RelativeLayout
import androidx.core.content.ContextCompat
+import androidx.core.view.children
import androidx.core.view.isVisible
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
@@ -183,8 +184,6 @@ class MainFragment : Fragment() {
private var uiJob: Job? = null
private fun updateUI() {
- uiJob?.cancel()
-
if (Preferences.showPreview) {
lifecycleScope.launch(Dispatchers.IO) {
val bgColor: Int = ContextCompat.getColor(
@@ -207,24 +206,19 @@ class MainFragment : Fragment() {
}
WidgetHelper.runWithCustomTypeface(requireContext()) { typeface ->
+ uiJob?.cancel()
uiJob = lifecycleScope.launch(Dispatchers.IO) {
val generatedView = MainWidget.getWidgetView(requireContext(), typeface).root
withContext(Dispatchers.Main) {
- generatedView.measure(0, 0)
- binding.preview.measure(0, 0)
- }
- val bitmap = BitmapHelper.getBitmapFromView(
- generatedView,
- if (binding.preview.width > 0) binding.preview.width else generatedView.measuredWidth,
- generatedView.measuredHeight
- )
-
- withContext(Dispatchers.Main) {
- binding.widgetDetail.bitmapContainer.apply {
- setImageBitmap(bitmap)
+ binding.widgetDetail.content.removeAllViews()
+ val container = LinearLayout(requireContext()).apply {
+ layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)
}
+ container.gravity = if (Preferences.widgetAlign == Constants.WidgetAlign.CENTER.rawValue) Gravity.CENTER else Gravity.NO_GRAVITY
+ container.addView(generatedView)
+ binding.widgetDetail.content.addView(container)
binding.widgetLoader.animate().scaleX(0f).scaleY(0f).alpha(0f)
.setDuration(200L).start()
@@ -310,7 +304,7 @@ class MainFragment : Fragment() {
if (showClock) 0f else 1f,
if (showClock) 1f else 0f
).apply {
- duration = 300L
+ duration = 500L
addUpdateListener {
val animatedValue = animatedValue as Float
binding.widgetDetail.timeContainer.layoutParams =
@@ -318,6 +312,10 @@ class MainFragment : Fragment() {
height = (initialHeight * animatedValue).toInt()
}
binding.widgetDetail.time.alpha = animatedValue
+ binding.widgetDetail.timeAmPm.alpha = animatedValue
+ binding.widgetDetail.altTimezoneTime.alpha = animatedValue
+ binding.widgetDetail.altTimezoneTimeAmPm.alpha = animatedValue
+ binding.widgetDetail.altTimezoneLabel.alpha = animatedValue
}
}.start()
}
@@ -334,7 +332,7 @@ class MainFragment : Fragment() {
requireContext()
) else 0)
).apply {
- duration = 300L
+ duration = 500L
addUpdateListener {
val animatedValue = animatedValue as Int
val layoutParams = binding.preview.layoutParams
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/LeftAlignedWidget.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/LeftAlignedWidget.kt
index 6d89ea0..7ecf1e3 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/LeftAlignedWidget.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/LeftAlignedWidget.kt
@@ -88,6 +88,10 @@ class LeftAlignedWidget(val context: Context) {
private fun updateGridView(bindingView: LeftAlignedWidgetBinding, views: RemoteViews, widgetID: Int): RemoteViews {
val eventRepository = EventRepository(context)
+ val nextEvent = eventRepository.getNextEvent()
+ val eventsCount = eventRepository.getEventsCount()
+ eventRepository.close()
+
try {
// Weather
if (Preferences.showWeather && Preferences.weatherIcon != "") {
@@ -131,7 +135,6 @@ class LeftAlignedWidget(val context: Context) {
views.setOnClickPendingIntent(R.id.date_rect, calPIntent)
views.setViewVisibility(R.id.first_line_rect, View.VISIBLE)
- val nextEvent = eventRepository.getNextEvent()
val nextAlarm = AlarmHelper.getNextAlarm(context)
// Spacing
@@ -149,7 +152,7 @@ class LeftAlignedWidget(val context: Context) {
)
if (Preferences.showEvents && context.checkGrantedPermission(Manifest.permission.READ_CALENDAR) && nextEvent != null && !Preferences.showEventsAsGlanceProvider) {
- if (Preferences.showNextEvent && eventRepository.getEventsCount() > 1) {
+ if (Preferences.showNextEvent && eventsCount > 1) {
// Action next event
views.setImageViewBitmap(
@@ -381,8 +384,6 @@ class LeftAlignedWidget(val context: Context) {
} catch (ex: Exception) {
ex.printStackTrace()
CrashlyticsReceiver.sendCrash(context, ex)
- } finally {
- eventRepository.close()
}
return views
@@ -392,6 +393,10 @@ class LeftAlignedWidget(val context: Context) {
// Generates the widget bitmap from the view
fun generateWidgetView(typeface: Typeface? = null): LeftAlignedWidgetBinding {
val eventRepository = EventRepository(context)
+ val nextEvent = eventRepository.getNextEvent()
+ val eventsCount = eventRepository.getEventsCount()
+ eventRepository.close()
+
val bindingView = LeftAlignedWidgetBinding.inflate(LayoutInflater.from(context))
bindingView.loader.isVisible = false
@@ -440,13 +445,12 @@ class LeftAlignedWidget(val context: Context) {
bindingView.date.text = DateHelper.getDateText(context, now)
- val nextEvent = eventRepository.getNextEvent()
val nextAlarm = AlarmHelper.getNextAlarm(context)
if (Preferences.showEvents && context.checkGrantedPermission(Manifest.permission.READ_CALENDAR) && nextEvent != null && !Preferences.showEventsAsGlanceProvider) {
// Multiple counter
bindingView.actionNext.isVisible =
- Preferences.showNextEvent && eventRepository.getEventsCount() > 1
+ Preferences.showNextEvent && eventsCount > 1
bindingView.nextEvent.text = nextEvent.title
@@ -883,8 +887,6 @@ class LeftAlignedWidget(val context: Context) {
}
}
- eventRepository.close()
-
return bindingView
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/StandardWidget.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/StandardWidget.kt
index f4b2b79..19fa1f8 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/StandardWidget.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/StandardWidget.kt
@@ -89,6 +89,10 @@ class StandardWidget(val context: Context) {
private fun updateGridView(bindingView: TheWidgetBinding, views: RemoteViews, widgetID: Int): RemoteViews {
val eventRepository = EventRepository(context)
+ val nextEvent = eventRepository.getNextEvent()
+ val eventsCount = eventRepository.getEventsCount()
+ eventRepository.close()
+
try {
// Weather
if (Preferences.showWeather && Preferences.weatherIcon != "") {
@@ -138,7 +142,6 @@ class StandardWidget(val context: Context) {
BitmapHelper.getBitmapFromView(bindingView.subLine, draw = false)
)
- val nextEvent = eventRepository.getNextEvent()
val nextAlarm = AlarmHelper.getNextAlarm(context)
// Spacing
@@ -156,7 +159,7 @@ class StandardWidget(val context: Context) {
)
if (Preferences.showEvents && context.checkGrantedPermission(Manifest.permission.READ_CALENDAR) && nextEvent != null && !Preferences.showEventsAsGlanceProvider) {
- if (Preferences.showNextEvent && eventRepository.getEventsCount() > 1) {
+ if (Preferences.showNextEvent && eventsCount > 1) {
// Action next event
views.setImageViewBitmap(
@@ -402,8 +405,6 @@ class StandardWidget(val context: Context) {
} catch (ex: Exception) {
ex.printStackTrace()
CrashlyticsReceiver.sendCrash(context, ex)
- } finally {
- eventRepository.close()
}
return views
@@ -413,6 +414,10 @@ class StandardWidget(val context: Context) {
// Generates the widget bitmap from the view
fun generateWidgetView(typeface: Typeface? = null): TheWidgetBinding {
val eventRepository = EventRepository(context)
+ val nextEvent = eventRepository.getNextEvent()
+ val eventsCount = eventRepository.getEventsCount()
+ eventRepository.close()
+
val bindingView = TheWidgetBinding.inflate(LayoutInflater.from(context))
bindingView.loader.isVisible = false
@@ -462,15 +467,14 @@ class StandardWidget(val context: Context) {
bindingView.date.text = DateHelper.getDateText(context, now)
- val nextEvent = eventRepository.getNextEvent()
val nextAlarm = AlarmHelper.getNextAlarm(context)
if (Preferences.showEvents && context.checkGrantedPermission(Manifest.permission.READ_CALENDAR) && nextEvent != null && !Preferences.showEventsAsGlanceProvider) {
// Multiple counter
bindingView.actionNext.isVisible =
- Preferences.showNextEvent && eventRepository.getEventsCount() > 1
+ Preferences.showNextEvent && eventsCount > 1
bindingView.actionPrevious.isVisible =
- Preferences.showNextEvent && eventRepository.getEventsCount() > 1
+ Preferences.showNextEvent && eventsCount > 1
bindingView.nextEvent.text = nextEvent.title
@@ -923,7 +927,6 @@ class StandardWidget(val context: Context) {
}
}
- eventRepository.close()
return bindingView
}
diff --git a/app/src/main/res/drawable-hdpi/round_more_time_white_18.png b/app/src/main/res/drawable-hdpi/round_more_time_white_18.png
new file mode 100644
index 0000000..c03205e
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_more_time_white_18.png differ
diff --git a/app/src/main/res/drawable-hdpi/round_more_time_white_20.png b/app/src/main/res/drawable-hdpi/round_more_time_white_20.png
new file mode 100644
index 0000000..f4bc6aa
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_more_time_white_20.png differ
diff --git a/app/src/main/res/drawable-hdpi/round_more_time_white_24.png b/app/src/main/res/drawable-hdpi/round_more_time_white_24.png
new file mode 100644
index 0000000..8799b18
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_more_time_white_24.png differ
diff --git a/app/src/main/res/drawable-hdpi/round_more_time_white_36.png b/app/src/main/res/drawable-hdpi/round_more_time_white_36.png
new file mode 100644
index 0000000..b215ca3
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_more_time_white_36.png differ
diff --git a/app/src/main/res/drawable-hdpi/round_more_time_white_48.png b/app/src/main/res/drawable-hdpi/round_more_time_white_48.png
new file mode 100644
index 0000000..a66b5af
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_more_time_white_48.png differ
diff --git a/app/src/main/res/drawable-mdpi/round_more_time_white_18.png b/app/src/main/res/drawable-mdpi/round_more_time_white_18.png
new file mode 100644
index 0000000..0c4df40
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_more_time_white_18.png differ
diff --git a/app/src/main/res/drawable-mdpi/round_more_time_white_20.png b/app/src/main/res/drawable-mdpi/round_more_time_white_20.png
new file mode 100644
index 0000000..74d329e
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_more_time_white_20.png differ
diff --git a/app/src/main/res/drawable-mdpi/round_more_time_white_24.png b/app/src/main/res/drawable-mdpi/round_more_time_white_24.png
new file mode 100644
index 0000000..cc152e2
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_more_time_white_24.png differ
diff --git a/app/src/main/res/drawable-mdpi/round_more_time_white_36.png b/app/src/main/res/drawable-mdpi/round_more_time_white_36.png
new file mode 100644
index 0000000..8799b18
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_more_time_white_36.png differ
diff --git a/app/src/main/res/drawable-mdpi/round_more_time_white_48.png b/app/src/main/res/drawable-mdpi/round_more_time_white_48.png
new file mode 100644
index 0000000..374dda4
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_more_time_white_48.png differ
diff --git a/app/src/main/res/drawable-night-hdpi/round_more_time_24.png b/app/src/main/res/drawable-night-hdpi/round_more_time_24.png
new file mode 100644
index 0000000..43ad1d3
Binary files /dev/null and b/app/src/main/res/drawable-night-hdpi/round_more_time_24.png differ
diff --git a/app/src/main/res/drawable-night-mdpi/round_more_time_24.png b/app/src/main/res/drawable-night-mdpi/round_more_time_24.png
new file mode 100644
index 0000000..85b6c53
Binary files /dev/null and b/app/src/main/res/drawable-night-mdpi/round_more_time_24.png differ
diff --git a/app/src/main/res/drawable-night-xhdpi/round_more_time_24.png b/app/src/main/res/drawable-night-xhdpi/round_more_time_24.png
new file mode 100644
index 0000000..e98fae7
Binary files /dev/null and b/app/src/main/res/drawable-night-xhdpi/round_more_time_24.png differ
diff --git a/app/src/main/res/drawable-night-xxhdpi/round_more_time_24.png b/app/src/main/res/drawable-night-xxhdpi/round_more_time_24.png
new file mode 100644
index 0000000..b49401a
Binary files /dev/null and b/app/src/main/res/drawable-night-xxhdpi/round_more_time_24.png differ
diff --git a/app/src/main/res/drawable-night-xxxhdpi/round_more_time_24.png b/app/src/main/res/drawable-night-xxxhdpi/round_more_time_24.png
new file mode 100644
index 0000000..d182e18
Binary files /dev/null and b/app/src/main/res/drawable-night-xxxhdpi/round_more_time_24.png differ
diff --git a/app/src/main/res/drawable-xhdpi/round_more_time_white_18.png b/app/src/main/res/drawable-xhdpi/round_more_time_white_18.png
new file mode 100644
index 0000000..8799b18
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_more_time_white_18.png differ
diff --git a/app/src/main/res/drawable-xhdpi/round_more_time_white_20.png b/app/src/main/res/drawable-xhdpi/round_more_time_white_20.png
new file mode 100644
index 0000000..5200969
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_more_time_white_20.png differ
diff --git a/app/src/main/res/drawable-xhdpi/round_more_time_white_24.png b/app/src/main/res/drawable-xhdpi/round_more_time_white_24.png
new file mode 100644
index 0000000..374dda4
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_more_time_white_24.png differ
diff --git a/app/src/main/res/drawable-xhdpi/round_more_time_white_36.png b/app/src/main/res/drawable-xhdpi/round_more_time_white_36.png
new file mode 100644
index 0000000..a66b5af
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_more_time_white_36.png differ
diff --git a/app/src/main/res/drawable-xhdpi/round_more_time_white_48.png b/app/src/main/res/drawable-xhdpi/round_more_time_white_48.png
new file mode 100644
index 0000000..b1bc990
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_more_time_white_48.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/round_more_time_white_18.png b/app/src/main/res/drawable-xxhdpi/round_more_time_white_18.png
new file mode 100644
index 0000000..b215ca3
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_more_time_white_18.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/round_more_time_white_20.png b/app/src/main/res/drawable-xxhdpi/round_more_time_white_20.png
new file mode 100644
index 0000000..552c9c5
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_more_time_white_20.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/round_more_time_white_24.png b/app/src/main/res/drawable-xxhdpi/round_more_time_white_24.png
new file mode 100644
index 0000000..a66b5af
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_more_time_white_24.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/round_more_time_white_36.png b/app/src/main/res/drawable-xxhdpi/round_more_time_white_36.png
new file mode 100644
index 0000000..f74d78a
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_more_time_white_36.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/round_more_time_white_48.png b/app/src/main/res/drawable-xxhdpi/round_more_time_white_48.png
new file mode 100644
index 0000000..e20c973
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_more_time_white_48.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/round_more_time_white_18.png b/app/src/main/res/drawable-xxxhdpi/round_more_time_white_18.png
new file mode 100644
index 0000000..a66b5af
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_more_time_white_18.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/round_more_time_white_20.png b/app/src/main/res/drawable-xxxhdpi/round_more_time_white_20.png
new file mode 100644
index 0000000..7059750
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_more_time_white_20.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/round_more_time_white_24.png b/app/src/main/res/drawable-xxxhdpi/round_more_time_white_24.png
new file mode 100644
index 0000000..b1bc990
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_more_time_white_24.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/round_more_time_white_36.png b/app/src/main/res/drawable-xxxhdpi/round_more_time_white_36.png
new file mode 100644
index 0000000..e20c973
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_more_time_white_36.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/round_more_time_white_48.png b/app/src/main/res/drawable-xxxhdpi/round_more_time_white_48.png
new file mode 100644
index 0000000..a9f4535
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_more_time_white_48.png differ
diff --git a/app/src/main/res/drawable/round_more_time_20.xml b/app/src/main/res/drawable/round_more_time_20.xml
new file mode 100644
index 0000000..b6aa086
--- /dev/null
+++ b/app/src/main/res/drawable/round_more_time_20.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/round_more_time_24.xml b/app/src/main/res/drawable/round_more_time_24.xml
new file mode 100644
index 0000000..4250cae
--- /dev/null
+++ b/app/src/main/res/drawable/round_more_time_24.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_tab_clock.xml b/app/src/main/res/layout/fragment_tab_clock.xml
index e29d2f0..4a7a1b8 100644
--- a/app/src/main/res/layout/fragment_tab_clock.xml
+++ b/app/src/main/res/layout/fragment_tab_clock.xml
@@ -163,7 +163,7 @@
android:layout_width="48dp"
android:layout_height="48dp"
android:padding="12dp"
- android:src="@drawable/round_text_fields_24"
+ android:src="@drawable/round_more_time_24"
app:tint="@color/colorPrimaryText"/>
+ android:layout_height="wrap_content"
+ android:id="@+id/content">
diff --git a/app/src/main/res/layout/the_widget_sans.xml b/app/src/main/res/layout/the_widget_sans.xml
index 367dfd3..896c1c6 100644
--- a/app/src/main/res/layout/the_widget_sans.xml
+++ b/app/src/main/res/layout/the_widget_sans.xml
@@ -30,6 +30,7 @@
android:layout_height="wrap_content"
android:gravity="center"
android:format12Hour="h:mm"
+ android:includeFontPadding="false"
android:padding="0dp"
android:lines="1"
android:maxLines="1"
@@ -41,6 +42,7 @@
android:gravity="center"
android:format12Hour="a"
android:format24Hour=""
+ android:includeFontPadding="false"
android:padding="0dp"
android:lines="1"
android:maxLines="1"
@@ -66,6 +68,7 @@
android:padding="0dp"
android:lines="1"
android:maxLines="1"
+ android:includeFontPadding="false"
style="@style/AnotherWidget.Widget.Title"
android:gravity="center_vertical"/>
+ android:layout_height="wrap_content"
+ android:id="@+id/content">