diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 8289193..59bb54a 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index 88ea3aa..3cc336b 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -1,6 +1,22 @@ + + diff --git a/.idea/modules.xml b/.idea/modules.xml index e31ade1..cb3973f 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index 3a3add9..86eb895 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -59,13 +59,13 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.legacy:legacy-support-v4:1.0.0' testImplementation 'junit:junit:4.13' - androidTestImplementation 'androidx.test.ext:junit:1.1.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + androidTestImplementation 'androidx.test.ext:junit:1.1.2' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' // UI - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'androidx.constraintlayout:constraintlayout:1.1.3' - implementation 'com.google.android.material:material:1.2.0-alpha06' + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'androidx.constraintlayout:constraintlayout:2.0.1' + implementation 'com.google.android.material:material:1.3.0-alpha03' implementation 'androidx.browser:browser:1.2.0' implementation 'net.idik:slimadapter:2.1.2' implementation 'com.google.android:flexbox:2.0.1' @@ -75,18 +75,18 @@ dependencies { implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' - implementation "androidx.work:work-runtime-ktx:2.3.4" + implementation "androidx.work:work-runtime-ktx:2.4.0" // EventBus implementation 'org.greenrobot:eventbus:3.1.1' // Navigation - implementation 'androidx.navigation:navigation-fragment:2.3.0-alpha05' - implementation 'androidx.navigation:navigation-ui-ktx:2.2.2' + implementation 'androidx.navigation:navigation-fragment:2.3.0' + implementation 'androidx.navigation:navigation-ui-ktx:2.3.0' // Other implementation 'androidx.multidex:multidex:2.0.1' - implementation 'joda-time:joda-time:2.9.9' + implementation 'joda-time:joda-time:2.10.3' implementation 'me.everything:providers-android:1.0.1' implementation 'com.github.warkiz.widget:indicatorseekbar:2.1.2' @@ -96,34 +96,30 @@ dependencies { // Fitness implementation 'com.google.android.gms:play-services-fitness:18.0.0' - implementation 'com.google.android.gms:play-services-auth:18.0.0' + implementation 'com.google.android.gms:play-services-auth:18.1.0' //Weather implementation 'com.github.KwabenBerko:OpenWeatherMap-Android-Library:2.0.2' - implementation 'com.google.android.gms:play-services-location:17.0.0' + implementation 'com.google.android.gms:play-services-location:17.1.0' // Billing - implementation 'com.android.billingclient:billing:2.2.0' - implementation 'com.android.billingclient:billing-ktx:2.2.0' + implementation 'com.android.billingclient:billing:3.0.1' + implementation 'com.android.billingclient:billing-ktx:3.0.1' // KTX - implementation "androidx.core:core-ktx:1.2.0" + implementation "androidx.core:core-ktx:1.3.2" implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.2.0" implementation "androidx.palette:palette-ktx:1.0.0" - implementation 'androidx.core:core-ktx:1.2.0' + implementation 'androidx.core:core-ktx:1.3.2' // Add the Firebase SDK for Crashlytics. - implementation 'com.google.firebase:firebase-crashlytics:17.0.0' + implementation 'com.google.firebase:firebase-crashlytics:17.2.2' // Preferences - implementation 'com.chibatching.kotpref:kotpref:2.10.0' + implementation 'com.chibatching.kotpref:kotpref:2.11.0' implementation 'com.chibatching.kotpref:livedata-support:2.10.0' implementation 'androidx.preference:preference-ktx:1.1.1' // Permissions implementation 'com.karumi:dexter:6.1.0' - - // Billing - implementation 'com.android.billingclient:billing:2.2.0' - implementation 'com.android.billingclient:billing-ktx:2.2.0' } diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/db/EventRepository.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/db/EventRepository.kt index 5d2b725..1177a22 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/db/EventRepository.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/db/EventRepository.kt @@ -11,6 +11,7 @@ import com.tommasoberlose.anotherwidget.ui.widgets.MainWidget import io.realm.Realm import io.realm.RealmResults import java.util.* +import kotlin.Comparator import kotlin.collections.ArrayList class EventRepository(val context: Context) { @@ -68,7 +69,7 @@ class EventRepository(val context: Context) { val events = getEvents() if (events.isNotEmpty()) { val newNextEvent = events.first() - Preferences.nextEventId = newNextEvent!!.eventID + Preferences.nextEventId = newNextEvent.eventID newNextEvent } else { resetNextEventData() @@ -96,9 +97,9 @@ class EventRepository(val context: Context) { if (eventList.isNotEmpty()) { val index = eventList.indexOfFirst { it.eventID == Preferences.nextEventId } if (index > -1 && index < eventList.size - 1) { - Preferences.nextEventId = eventList[index + 1]!!.eventID + Preferences.nextEventId = eventList[index + 1].eventID } else { - Preferences.nextEventId = eventList.first()!!.eventID + Preferences.nextEventId = eventList.first().eventID } } else { resetNextEventData() @@ -112,9 +113,9 @@ class EventRepository(val context: Context) { if (eventList.isNotEmpty()) { val index = eventList.indexOfFirst { it.eventID == Preferences.nextEventId } if (index > 0) { - Preferences.nextEventId = eventList[index - 1]!!.eventID + Preferences.nextEventId = eventList[index - 1].eventID } else { - Preferences.nextEventId = eventList.last()!!.eventID + Preferences.nextEventId = eventList.last().eventID } } else { resetNextEventData() diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/BitmapHelper.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/BitmapHelper.kt index 4812ce2..3ba2239 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/BitmapHelper.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/BitmapHelper.kt @@ -104,13 +104,12 @@ object BitmapHelper { } fun drawableToBitmap(drawable: Drawable): Bitmap? { - var bitmap: Bitmap? = null if (drawable is BitmapDrawable) { if (drawable.bitmap != null) { return drawable.bitmap } } - bitmap = if (drawable.intrinsicWidth <= 0 || drawable.intrinsicHeight <= 0) { + val bitmap: Bitmap = if (drawable.intrinsicWidth <= 0 || drawable.intrinsicHeight <= 0) { Bitmap.createBitmap( 1, 1, 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 dbe9fd5..d7a463d 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/services/UpdateCalendarJob.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/services/UpdateCalendarJob.kt @@ -3,6 +3,7 @@ package com.tommasoberlose.anotherwidget.services import android.Manifest import android.content.Context import android.content.Intent +import android.provider.CalendarContract import android.util.Log import androidx.core.app.JobIntentService import com.tommasoberlose.anotherwidget.db.EventRepository @@ -92,17 +93,28 @@ class UpdateCalendarJob : JobIntentService() { } } - if (eventList.isEmpty()) { + val filteredEventList = eventList + .filter { (Preferences.showDeclinedEvents || it.selfAttendeeStatus != CalendarContract.Attendees.ATTENDEE_STATUS_DECLINED) } + .filter { (Preferences.calendarAllDay || !it.allDay) } + + if (filteredEventList.isEmpty()) { eventRepository.resetNextEventData() eventRepository.clearEvents() } else { eventList.sortWith(Comparator { event: Event, event1: Event -> - if (event.allDay && event1.allDay) { - event.startDate.compareTo(event1.startDate) - } else if (event.allDay) { - 1 - } else if (event1.allDay) { - -1 + val date = Calendar.getInstance().apply { timeInMillis = event.startDate } + val date1 = Calendar.getInstance().apply { timeInMillis = event1.startDate } + + 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) + } else if (event.allDay) { + -1 + } else if (event1.allDay) { + 1 + } else { + event1.startDate.compareTo(event.startDate) + } } else { event1.startDate.compareTo(event.startDate) } @@ -111,9 +123,7 @@ class UpdateCalendarJob : JobIntentService() { eventRepository.saveEvents( eventList ) - eventRepository.saveNextEventData( - eventList[0] - ) + eventRepository.saveNextEventData(filteredEventList.first()) } } catch (ignored: java.lang.Exception) { 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 2bb16e7..21fd688 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 @@ -62,8 +62,8 @@ class MainFragment : Fragment(), SharedPreferences.OnSharedPreferenceChangeList override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - enterTransition = MaterialSharedAxis.create(MaterialSharedAxis.X, true) - reenterTransition = MaterialSharedAxis.create(MaterialSharedAxis.X, false) + enterTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) + reenterTransition = MaterialSharedAxis(MaterialSharedAxis.X, false) } override fun onCreateView( diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/SettingsFragment.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/SettingsFragment.kt index 31003cf..6f2d723 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/SettingsFragment.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/SettingsFragment.kt @@ -50,8 +50,8 @@ class SettingsFragment : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - enterTransition = MaterialSharedAxis.create(MaterialSharedAxis.X, true) - returnTransition = MaterialSharedAxis.create(MaterialSharedAxis.X, false) + enterTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) + returnTransition = MaterialSharedAxis(MaterialSharedAxis.X, false) } override fun onCreateView( diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/WeatherTabFragment.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/WeatherTabFragment.kt index d019470..d09b370 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/WeatherTabFragment.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/WeatherTabFragment.kt @@ -216,6 +216,9 @@ class WeatherTabFragment : Fragment() { .addItem(getString(R.string.fahrenheit), "F") .addItem(getString(R.string.celsius), "C") .addOnSelectItemListener { value -> + if (value != Preferences.weatherTempUnit) { + WeatherHelper.updateWeather(requireContext()) + } Preferences.weatherTempUnit = value }.show() } diff --git a/build.gradle b/build.gradle index 0dcc9fe..bc5fe2b 100644 --- a/build.gradle +++ b/build.gradle @@ -10,12 +10,12 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.6.3' + classpath 'com.android.tools.build:gradle:4.0.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.3.3' // Add the Crashlytics Gradle plugin. - classpath 'com.google.firebase:firebase-crashlytics-gradle:2.0.0' + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.1.1' classpath 'io.realm:realm-gradle-plugin:6.0.2' diff --git a/google-play-badge.png b/google-play-badge.png deleted file mode 100644 index c77b746..0000000 Binary files a/google-play-badge.png and /dev/null differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d49b258..1cac6af 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Apr 17 19:52:28 CEST 2020 +#Mon Jun 15 17:31:53 CEST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip