diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 9bba60d..526b4c2 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -4,7 +4,7 @@ <component name="GradleSettings"> <option name="linkedExternalProjectsSettings"> <GradleProjectSettings> - <option name="testRunner" value="PLATFORM" /> + <option name="testRunner" value="GRADLE" /> <option name="distributionType" value="DEFAULT_WRAPPED" /> <option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="modules"> @@ -14,7 +14,6 @@ </set> </option> <option name="resolveModulePerSourceSet" value="false" /> - <option name="useQualifiedModuleNames" value="true" /> </GradleProjectSettings> </option> </component> diff --git a/.idea/misc.xml b/.idea/misc.xml index a303beb..7dbe2e1 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -61,7 +61,7 @@ </profile-state> </entry> </component> - <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/build/classes" /> </component> <component name="ProjectType"> diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index e497da9..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="RunConfigurationProducerService"> - <option name="ignoredProducers"> - <set> - <option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" /> - <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" /> - <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" /> - <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" /> - </set> - </option> - </component> -</project> \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 653062c..7688e7c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,7 +16,6 @@ apikeyProperties.load(new FileInputStream(apikeyPropertiesFile)) android { compileSdkVersion 30 - buildToolsVersion "29.0.3" defaultConfig { applicationId "com.tommasoberlose.anotherwidget" @@ -70,7 +69,7 @@ dependencies { androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' // UI - implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'androidx.appcompat:appcompat:1.3.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation 'com.google.android.material:material:1.3.0' implementation 'androidx.browser:browser:1.3.0' @@ -115,10 +114,10 @@ dependencies { implementation 'com.android.billingclient:billing-ktx:3.0.3' // KTX - implementation "androidx.core:core-ktx:1.3.2" + implementation "androidx.core:core-ktx:1.5.0" implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1" implementation "androidx.palette:palette-ktx:1.0.0" - implementation 'androidx.core:core-ktx:1.3.2' + implementation 'androidx.core:core-ktx:1.5.0' //Retrofit implementation 'com.squareup.retrofit2:retrofit:2.9.0' @@ -131,7 +130,7 @@ dependencies { implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1' // Add the Firebase SDK for Crashlytics. - implementation 'com.google.firebase:firebase-crashlytics:17.4.1' + implementation 'com.google.firebase:firebase-crashlytics:18.0.0' // Preferences implementation 'com.chibatching.kotpref:kotpref:2.13.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 65950db..8629c88 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -24,13 +24,14 @@ android:usesCleartextTraffic="true" android:theme="@style/AppTheme" tools:ignore="LockedOrientationActivity"> - <activity android:name=".ui.activities.MainActivity" android:launchMode="singleInstance" android:theme="@style/AppTheme.Main" android:screenOrientation="portrait"> + <activity android:name=".ui.activities.SplashActivity" android:launchMode="singleInstance" android:theme="@style/AppTheme.Main" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> + <activity android:name=".ui.activities.MainActivity" android:launchMode="singleInstance" android:theme="@style/AppTheme" android:screenOrientation="portrait" /> <activity android:name=".ui.activities.tabs.ChooseApplicationActivity" android:launchMode="singleInstance" android:screenOrientation="portrait" /> <activity android:name=".ui.activities.tabs.CustomFontActivity" android:launchMode="singleInstance" android:screenOrientation="portrait" /> <activity android:name=".ui.activities.tabs.CustomLocationActivity" android:launchMode="singleInstance" android:screenOrientation="portrait" /> @@ -102,21 +103,12 @@ <receiver android:name=".receivers.WidgetClickListenerReceiver" android:enabled="true" - android:exported="false"> + android:exported="true"> <intent-filter> <action android:name="com.tommasoberlose.anotherwidget.action.ACTION_OPEN_WEATHER_INTENT" /> </intent-filter> </receiver> - <receiver - android:name=".receivers.CrashlyticsReceiver" - android:enabled="true" - android:exported="false"> - <intent-filter> - <action android:name="com.tommasoberlose.anotherwidget.action.ACTION_REPORT_CRASH" /> - </intent-filter> - </receiver> - <service android:name=".services.EventListenerJob" android:permission="android.permission.BIND_JOB_SERVICE" /> <service android:name=".services.BatteryListenerJob" android:permission="android.permission.BIND_JOB_SERVICE" /> @@ -141,7 +133,7 @@ </receiver> <receiver android:name=".receivers.ActivityDetectionReceiver" - android:exported="false" + android:exported="true" android:permission="com.google.android.gms.permission.ACTIVITY_RECOGNITION"> <intent-filter> <action android:name="com.mypackage.ACTION_PROCESS_ACTIVITY_TRANSITIONS" /> @@ -153,12 +145,12 @@ <service android:name=".services.UpdateCalendarService" android:enabled="true" - android:exported="false" + android:exported="true" android:foregroundServiceType="dataSync" /> <service android:name=".services.LocationService" android:enabled="true" - android:exported="false" + android:exported="true" android:foregroundServiceType="location" /> </application> 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 2ade627..c37515c 100755 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt @@ -85,7 +85,7 @@ object Preferences : KotprefModel() { var weatherIconPack by intPref(default = Constants.WeatherIconPack.DEFAULT.rawValue) // UI - var widgetMargin by floatPref(default = Constants.Dimension.SMALL.rawValue) + var widgetMargin by floatPref(default = Constants.Dimension.NONE.rawValue) var widgetPadding by floatPref(default = Constants.Dimension.SMALL.rawValue) // Clock diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/network/WeatherNetworkApi.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/network/WeatherNetworkApi.kt index 436944f..e3d637f 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/network/WeatherNetworkApi.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/network/WeatherNetworkApi.kt @@ -404,7 +404,7 @@ class WeatherNetworkApi(val context: Context) { val iconCode = summary["symbol_code"] as String Preferences.weatherTemp = temp.toFloat() - Preferences.weatherIcon = WeatherHelper.getYRIcon(iconCode, now.get(Calendar.HOUR_OF_DAY) >= 22 || now.get(Calendar.HOUR_OF_DAY) <= 8) + Preferences.weatherIcon = WeatherHelper.getYRIcon(iconCode, !(now.get(Calendar.HOUR_OF_DAY) >= 22 || now.get(Calendar.HOUR_OF_DAY) <= 8)) Preferences.weatherTempUnit = "C" Preferences.weatherRealTempUnit = Preferences.weatherTempUnit MainWidget.updateWidget(context) diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/receivers/CrashlyticsReceiver.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/receivers/CrashlyticsReceiver.kt deleted file mode 100644 index d3f36a4..0000000 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/receivers/CrashlyticsReceiver.kt +++ /dev/null @@ -1,32 +0,0 @@ -package com.tommasoberlose.anotherwidget.receivers - -import android.content.BroadcastReceiver -import android.content.Context -import android.content.Intent -import android.util.Log -import com.google.firebase.crashlytics.FirebaseCrashlytics -import com.tommasoberlose.anotherwidget.global.Actions -import java.lang.Exception - -class CrashlyticsReceiver : BroadcastReceiver() { - override fun onReceive(context: Context, intent: Intent) { - if (intent.action == Actions.ACTION_REPORT_CRASH) { - val exception: Exception = intent.getSerializableExtra(EXCEPTION) as Exception - FirebaseCrashlytics.getInstance().recordException(exception) - FirebaseCrashlytics.getInstance().sendUnsentReports() - } - } - - - companion object { - private const val EXCEPTION = "EXCEPTION" - - fun sendCrash(context: Context, exception: Exception) { - context.sendBroadcast(Intent(context, CrashlyticsReceiver::class.java).apply { - action = Actions.ACTION_REPORT_CRASH - putExtra(EXCEPTION, exception) - }) - } - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/MainActivity.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/MainActivity.kt index 6435d89..5bb464a 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/MainActivity.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/MainActivity.kt @@ -46,6 +46,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + overridePendingTransition(R.anim.nav_default_enter_anim, R.anim.nav_default_exit_anim) viewModel = ViewModelProvider(this).get(MainViewModel::class.java) binding = ActivityMainBinding.inflate(layoutInflater) diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/SplashActivity.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/SplashActivity.kt new file mode 100644 index 0000000..853697c --- /dev/null +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/SplashActivity.kt @@ -0,0 +1,28 @@ +package com.tommasoberlose.anotherwidget.ui.activities + +import android.content.Intent +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.lifecycleScope +import com.tommasoberlose.anotherwidget.R +import com.tommasoberlose.anotherwidget.databinding.ActivityMainBinding +import com.tommasoberlose.anotherwidget.global.Preferences +import com.tommasoberlose.anotherwidget.ui.viewmodels.MainViewModel +import kotlinx.coroutines.delay + +class SplashActivity: AppCompatActivity() { + + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + lifecycleScope.launchWhenResumed { + delay(1000) + + if (!this@SplashActivity.isDestroyed) { + startActivity(Intent(this@SplashActivity, MainActivity::class.java)) + finish() + } + } + } +} \ No newline at end of file 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 cd886b0..bd394c2 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 @@ -12,6 +12,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.RemoteViews +import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope @@ -141,6 +142,10 @@ class MainFragment : Fragment() { binding.toolbar.cardElevation = if (it > 0) 24f else 0f } + viewModel.showPreview.observe(viewLifecycleOwner) { + binding.preview.isVisible = it + } + viewModel.widgetPreferencesUpdate.observe(viewLifecycleOwner) { onUpdateUiEvent(null) } @@ -160,16 +165,13 @@ class MainFragment : Fragment() { view.measure(0, 0) withContext(Dispatchers.Main) { - binding.widgetLoader.animate().scaleX(1f).scaleY(1f).alpha(1f) - .setDuration(200L).start() + binding.widgetLoader.animate().alpha(0f).setDuration(200L).start() binding.widget.animate().alpha(0f).setDuration(200L).withEndAction { + updatePreviewVisibility(view.measuredHeight) binding.widget.removeAllViews() binding.widget.addView(view) - updatePreviewVisibility(view.measuredHeight) - binding.widgetLoader.animate().scaleX(0f).scaleY(0f).alpha(0f) - .setDuration(200L).start() - binding.widget.animate().alpha(1f).start() + binding.widget.animate().setStartDelay(300L).alpha(1f).start() }.start() } } @@ -179,28 +181,30 @@ class MainFragment : Fragment() { } private fun updatePreviewVisibility(widgetHeight: Int) { - val newHeight = widgetHeight + 32f.convertDpToPixel(requireContext()).toInt() - if (binding.preview.layoutParams.height != newHeight) { - binding.preview.clearAnimation() - ValueAnimator.ofInt( - binding.preview.height, - newHeight - ).apply { - duration = 500L - addUpdateListener { - val animatedValue = animatedValue as Int - val layoutParams = binding.preview.layoutParams - layoutParams.height = animatedValue - binding.preview.layoutParams = layoutParams - } - }.start() + if (isAdded) { + val newHeight = widgetHeight + 32f.convertDpToPixel(requireContext()).toInt() + if (binding.preview.layoutParams.height != newHeight) { + binding.preview.clearAnimation() + ValueAnimator.ofInt( + binding.preview.height, + newHeight + ).apply { + duration = 300L + addUpdateListener { + val animatedValue = animatedValue as Int + val layoutParams = binding.preview.layoutParams + layoutParams.height = animatedValue + binding.preview.layoutParams = layoutParams + } + }.start() + } } } override fun onResume() { super.onResume() EventBus.getDefault().register(this) - updateUI() +// updateUI() } override fun onPause() { 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 a3f562e..52be37d 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 @@ -135,7 +135,6 @@ class MainViewModel(context: Application) : AndroidViewModel(context) { addSource(Preferences.asLiveData(Preferences::customFontFile)) { value = true } addSource(Preferences.asLiveData(Preferences::customFontName)) { value = true } addSource(Preferences.asLiveData(Preferences::customFontVariant)) { value = true } - addSource(Preferences.asLiveData(Preferences::secondRowInformation)) { value = true } addSource(Preferences.asLiveData(Preferences::widgetAlign)) { value = true } addSource(Preferences.asLiveData(Preferences::widgetMargin)) { value = true } addSource(Preferences.asLiveData(Preferences::widgetPadding)) { value = true } diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/AlignedWidget.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/AlignedWidget.kt index c4a812c..9c7cdd0 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/AlignedWidget.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/AlignedWidget.kt @@ -7,7 +7,6 @@ import android.content.Intent import android.graphics.Color import android.graphics.Typeface import android.text.format.DateUtils -import android.util.Log import android.util.TypedValue import android.view.Gravity import android.view.LayoutInflater @@ -16,7 +15,6 @@ import android.view.ViewGroup import android.widget.* import androidx.core.content.ContextCompat import androidx.core.view.isVisible -import androidx.core.view.updateMargins import com.tommasoberlose.anotherwidget.R import com.tommasoberlose.anotherwidget.databinding.LeftAlignedWidgetBinding import com.tommasoberlose.anotherwidget.db.EventRepository @@ -26,7 +24,6 @@ import com.tommasoberlose.anotherwidget.global.Preferences import com.tommasoberlose.anotherwidget.helpers.* import com.tommasoberlose.anotherwidget.helpers.ColorHelper.toIntValue import com.tommasoberlose.anotherwidget.helpers.ImageHelper.applyShadow -import com.tommasoberlose.anotherwidget.receivers.CrashlyticsReceiver import com.tommasoberlose.anotherwidget.receivers.NewCalendarEventReceiver import com.tommasoberlose.anotherwidget.receivers.WidgetClickListenerReceiver import com.tommasoberlose.anotherwidget.utils.checkGrantedPermission @@ -69,7 +66,6 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) { views.setViewPadding(R.id.main_layout, padding, padding, padding, padding) } catch (ex: Exception) { ex.printStackTrace() - CrashlyticsReceiver.sendCrash(context, ex) } // Clock @@ -86,7 +82,6 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) { views = updateGridView(generatedBinding, views, appWidgetId) } catch (ex: Exception) { ex.printStackTrace() - CrashlyticsReceiver.sendCrash(context, ex) } return views @@ -421,7 +416,6 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) { ) } catch (ex: Exception) { ex.printStackTrace() - CrashlyticsReceiver.sendCrash(context, ex) } return views @@ -989,7 +983,6 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) { return bindingView } catch (ex: Exception) { ex.printStackTrace() - CrashlyticsReceiver.sendCrash(context, ex) return null } } diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/ClockWidget.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/ClockWidget.kt index 44c750a..2c6109e 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/ClockWidget.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/ClockWidget.kt @@ -3,7 +3,6 @@ package com.tommasoberlose.anotherwidget.ui.widgets import android.app.PendingIntent import android.content.Context import android.util.TypedValue -import android.view.Gravity import android.view.View import android.widget.RemoteViews import com.tommasoberlose.anotherwidget.R @@ -11,7 +10,6 @@ import com.tommasoberlose.anotherwidget.global.Constants import com.tommasoberlose.anotherwidget.global.Preferences import com.tommasoberlose.anotherwidget.helpers.ColorHelper import com.tommasoberlose.anotherwidget.helpers.IntentHelper -import com.tommasoberlose.anotherwidget.receivers.CrashlyticsReceiver import com.tommasoberlose.anotherwidget.utils.isDarkTheme import com.tommasoberlose.anotherwidget.utils.toPixel @@ -101,7 +99,6 @@ class ClockWidget(val context: Context) { } } catch (ex: Exception) { ex.printStackTrace() - CrashlyticsReceiver.sendCrash(context, ex) } return views 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 f458960..a698281 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 @@ -2,13 +2,11 @@ package com.tommasoberlose.anotherwidget.ui.widgets import android.Manifest import android.app.PendingIntent -import android.appwidget.AppWidgetManager import android.content.Context import android.content.Intent import android.graphics.Color import android.graphics.Typeface import android.text.format.DateUtils -import android.util.Log import android.util.TypedValue import android.view.Gravity import android.view.LayoutInflater @@ -28,13 +26,11 @@ import com.tommasoberlose.anotherwidget.global.Preferences import com.tommasoberlose.anotherwidget.helpers.* import com.tommasoberlose.anotherwidget.helpers.ColorHelper.toIntValue import com.tommasoberlose.anotherwidget.helpers.ImageHelper.applyShadow -import com.tommasoberlose.anotherwidget.receivers.CrashlyticsReceiver import com.tommasoberlose.anotherwidget.receivers.NewCalendarEventReceiver import com.tommasoberlose.anotherwidget.receivers.WidgetClickListenerReceiver import com.tommasoberlose.anotherwidget.utils.checkGrantedPermission import com.tommasoberlose.anotherwidget.utils.convertDpToPixel import com.tommasoberlose.anotherwidget.utils.isDarkTheme -import com.tommasoberlose.anotherwidget.utils.toPixel import java.text.DateFormat import java.util.* import java.util.concurrent.TimeUnit @@ -72,7 +68,6 @@ class StandardWidget(val context: Context) { views.setViewPadding(R.id.main_layout, padding, padding, padding, padding) } catch (ex: Exception) { ex.printStackTrace() - CrashlyticsReceiver.sendCrash(context, ex) } // Clock @@ -89,7 +84,6 @@ class StandardWidget(val context: Context) { views = updateGridView(generatedBinding, views, appWidgetId) } catch (ex: Exception) { ex.printStackTrace() - CrashlyticsReceiver.sendCrash(context, ex) } return views @@ -447,7 +441,6 @@ class StandardWidget(val context: Context) { } } catch (ex: Exception) { ex.printStackTrace() - CrashlyticsReceiver.sendCrash(context, ex) } return views @@ -1025,7 +1018,6 @@ class StandardWidget(val context: Context) { } catch (ex: Exception) { ex.printStackTrace() - CrashlyticsReceiver.sendCrash(context, ex) return null } } diff --git a/app/src/main/res/drawable-hdpi/ic_splash_logo.png b/app/src/main/res/drawable-hdpi/ic_splash_logo.png index c128da7..3b7f7b4 100644 Binary files a/app/src/main/res/drawable-hdpi/ic_splash_logo.png and b/app/src/main/res/drawable-hdpi/ic_splash_logo.png differ diff --git a/app/src/main/res/drawable-hdpi/round_upcoming_white_18.png b/app/src/main/res/drawable-hdpi/round_upcoming_white_18.png new file mode 100644 index 0000000..3add04c Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_upcoming_white_18.png differ diff --git a/app/src/main/res/drawable-hdpi/round_upcoming_white_20.png b/app/src/main/res/drawable-hdpi/round_upcoming_white_20.png new file mode 100644 index 0000000..c4eb912 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_upcoming_white_20.png differ diff --git a/app/src/main/res/drawable-hdpi/round_upcoming_white_24.png b/app/src/main/res/drawable-hdpi/round_upcoming_white_24.png new file mode 100644 index 0000000..8d08415 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_upcoming_white_24.png differ diff --git a/app/src/main/res/drawable-hdpi/round_upcoming_white_36.png b/app/src/main/res/drawable-hdpi/round_upcoming_white_36.png new file mode 100644 index 0000000..2e3d8dc Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_upcoming_white_36.png differ diff --git a/app/src/main/res/drawable-hdpi/round_upcoming_white_48.png b/app/src/main/res/drawable-hdpi/round_upcoming_white_48.png new file mode 100644 index 0000000..dcbe498 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_upcoming_white_48.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_splash_logo.png b/app/src/main/res/drawable-mdpi/ic_splash_logo.png index 8aa775a..07548a0 100644 Binary files a/app/src/main/res/drawable-mdpi/ic_splash_logo.png and b/app/src/main/res/drawable-mdpi/ic_splash_logo.png differ diff --git a/app/src/main/res/drawable-mdpi/round_upcoming_white_18.png b/app/src/main/res/drawable-mdpi/round_upcoming_white_18.png new file mode 100644 index 0000000..89791f7 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_upcoming_white_18.png differ diff --git a/app/src/main/res/drawable-mdpi/round_upcoming_white_20.png b/app/src/main/res/drawable-mdpi/round_upcoming_white_20.png new file mode 100644 index 0000000..5b0221a Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_upcoming_white_20.png differ diff --git a/app/src/main/res/drawable-mdpi/round_upcoming_white_24.png b/app/src/main/res/drawable-mdpi/round_upcoming_white_24.png new file mode 100644 index 0000000..b538fa3 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_upcoming_white_24.png differ diff --git a/app/src/main/res/drawable-mdpi/round_upcoming_white_36.png b/app/src/main/res/drawable-mdpi/round_upcoming_white_36.png new file mode 100644 index 0000000..8d08415 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_upcoming_white_36.png differ diff --git a/app/src/main/res/drawable-mdpi/round_upcoming_white_48.png b/app/src/main/res/drawable-mdpi/round_upcoming_white_48.png new file mode 100644 index 0000000..0154b17 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_upcoming_white_48.png differ diff --git a/app/src/main/res/drawable-night-hdpi/round_upcoming_24.png b/app/src/main/res/drawable-night-hdpi/round_upcoming_24.png new file mode 100644 index 0000000..6a3d77d Binary files /dev/null and b/app/src/main/res/drawable-night-hdpi/round_upcoming_24.png differ diff --git a/app/src/main/res/drawable-night-mdpi/round_upcoming_24.png b/app/src/main/res/drawable-night-mdpi/round_upcoming_24.png new file mode 100644 index 0000000..43c5c66 Binary files /dev/null and b/app/src/main/res/drawable-night-mdpi/round_upcoming_24.png differ diff --git a/app/src/main/res/drawable-night-xhdpi/round_upcoming_24.png b/app/src/main/res/drawable-night-xhdpi/round_upcoming_24.png new file mode 100644 index 0000000..09f6f6a Binary files /dev/null and b/app/src/main/res/drawable-night-xhdpi/round_upcoming_24.png differ diff --git a/app/src/main/res/drawable-night-xxhdpi/round_upcoming_24.png b/app/src/main/res/drawable-night-xxhdpi/round_upcoming_24.png new file mode 100644 index 0000000..bf104db Binary files /dev/null and b/app/src/main/res/drawable-night-xxhdpi/round_upcoming_24.png differ diff --git a/app/src/main/res/drawable-night-xxxhdpi/round_upcoming_24.png b/app/src/main/res/drawable-night-xxxhdpi/round_upcoming_24.png new file mode 100644 index 0000000..e65c88f Binary files /dev/null and b/app/src/main/res/drawable-night-xxxhdpi/round_upcoming_24.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_splash_logo.png b/app/src/main/res/drawable-xhdpi/ic_splash_logo.png index 2f85f22..fe3f46a 100644 Binary files a/app/src/main/res/drawable-xhdpi/ic_splash_logo.png and b/app/src/main/res/drawable-xhdpi/ic_splash_logo.png differ diff --git a/app/src/main/res/drawable-xhdpi/round_upcoming_white_18.png b/app/src/main/res/drawable-xhdpi/round_upcoming_white_18.png new file mode 100644 index 0000000..8d08415 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_upcoming_white_18.png differ diff --git a/app/src/main/res/drawable-xhdpi/round_upcoming_white_20.png b/app/src/main/res/drawable-xhdpi/round_upcoming_white_20.png new file mode 100644 index 0000000..db3f440 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_upcoming_white_20.png differ diff --git a/app/src/main/res/drawable-xhdpi/round_upcoming_white_24.png b/app/src/main/res/drawable-xhdpi/round_upcoming_white_24.png new file mode 100644 index 0000000..0154b17 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_upcoming_white_24.png differ diff --git a/app/src/main/res/drawable-xhdpi/round_upcoming_white_36.png b/app/src/main/res/drawable-xhdpi/round_upcoming_white_36.png new file mode 100644 index 0000000..dcbe498 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_upcoming_white_36.png differ diff --git a/app/src/main/res/drawable-xhdpi/round_upcoming_white_48.png b/app/src/main/res/drawable-xhdpi/round_upcoming_white_48.png new file mode 100644 index 0000000..8cc3119 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_upcoming_white_48.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_splash_logo.png b/app/src/main/res/drawable-xxhdpi/ic_splash_logo.png index ce08c7a..3dc137d 100644 Binary files a/app/src/main/res/drawable-xxhdpi/ic_splash_logo.png and b/app/src/main/res/drawable-xxhdpi/ic_splash_logo.png differ diff --git a/app/src/main/res/drawable-xxhdpi/round_upcoming_white_18.png b/app/src/main/res/drawable-xxhdpi/round_upcoming_white_18.png new file mode 100644 index 0000000..2e3d8dc Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_upcoming_white_18.png differ diff --git a/app/src/main/res/drawable-xxhdpi/round_upcoming_white_20.png b/app/src/main/res/drawable-xxhdpi/round_upcoming_white_20.png new file mode 100644 index 0000000..92806da Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_upcoming_white_20.png differ diff --git a/app/src/main/res/drawable-xxhdpi/round_upcoming_white_24.png b/app/src/main/res/drawable-xxhdpi/round_upcoming_white_24.png new file mode 100644 index 0000000..dcbe498 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_upcoming_white_24.png differ diff --git a/app/src/main/res/drawable-xxhdpi/round_upcoming_white_36.png b/app/src/main/res/drawable-xxhdpi/round_upcoming_white_36.png new file mode 100644 index 0000000..757ef12 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_upcoming_white_36.png differ diff --git a/app/src/main/res/drawable-xxhdpi/round_upcoming_white_48.png b/app/src/main/res/drawable-xxhdpi/round_upcoming_white_48.png new file mode 100644 index 0000000..ef000f1 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_upcoming_white_48.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_splash_logo.png b/app/src/main/res/drawable-xxxhdpi/ic_splash_logo.png index 30ce93f..23eeb08 100644 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_splash_logo.png and b/app/src/main/res/drawable-xxxhdpi/ic_splash_logo.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/round_upcoming_white_18.png b/app/src/main/res/drawable-xxxhdpi/round_upcoming_white_18.png new file mode 100644 index 0000000..dcbe498 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_upcoming_white_18.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/round_upcoming_white_20.png b/app/src/main/res/drawable-xxxhdpi/round_upcoming_white_20.png new file mode 100644 index 0000000..2634086 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_upcoming_white_20.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/round_upcoming_white_24.png b/app/src/main/res/drawable-xxxhdpi/round_upcoming_white_24.png new file mode 100644 index 0000000..8cc3119 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_upcoming_white_24.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/round_upcoming_white_36.png b/app/src/main/res/drawable-xxxhdpi/round_upcoming_white_36.png new file mode 100644 index 0000000..ef000f1 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_upcoming_white_36.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/round_upcoming_white_48.png b/app/src/main/res/drawable-xxxhdpi/round_upcoming_white_48.png new file mode 100644 index 0000000..a717440 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_upcoming_white_48.png differ diff --git a/app/src/main/res/drawable/card_background.xml b/app/src/main/res/drawable/card_background.xml index 82d7f7e..236cdff 100644 --- a/app/src/main/res/drawable/card_background.xml +++ b/app/src/main/res/drawable/card_background.xml @@ -3,9 +3,9 @@ <item> <shape android:shape="rectangle"> <corners - android:radius="9dp" /> + android:radius="20dp" /> <solid - android:color="@android:color/white"/> + android:color="@color/colorPrimary"/> </shape> </item> </selector> \ No newline at end of file diff --git a/app/src/main/res/drawable/outlined_circled_background.xml b/app/src/main/res/drawable/outlined_circled_background.xml new file mode 100644 index 0000000..c16ac5b --- /dev/null +++ b/app/src/main/res/drawable/outlined_circled_background.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item> + <shape android:shape="oval"> + <stroke android:color="@android:color/white" + android:width="2dp" /> + </shape> + </item> +</selector> \ No newline at end of file diff --git a/app/src/main/res/drawable/round_upcoming_20.xml b/app/src/main/res/drawable/round_upcoming_20.xml new file mode 100644 index 0000000..c1304e4 --- /dev/null +++ b/app/src/main/res/drawable/round_upcoming_20.xml @@ -0,0 +1,19 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="20dp" + android:height="20dp" + android:viewportWidth="20" + android:viewportHeight="20" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M16.5,10h-3.04c-0.52,0 -1.02,0.27 -1.28,0.73C11.75,11.49 10.94,12 10,12s-1.75,-0.51 -2.18,-1.27C7.56,10.27 7.07,10 6.54,10H3.5C2.67,10 2,10.67 2,11.5v4C2,16.33 2.67,17 3.5,17h13c0.83,0 1.5,-0.67 1.5,-1.5v-4C18,10.67 17.33,10 16.5,10z"/> + <path + android:fillColor="@android:color/white" + android:pathData="M10,3L10,3C9.59,3 9.25,3.34 9.25,3.75v2.5C9.25,6.66 9.59,7 10,7h0c0.41,0 0.75,-0.34 0.75,-0.75v-2.5C10.75,3.34 10.41,3 10,3z"/> + <path + android:fillColor="@android:color/white" + android:pathData="M16.36,5.64L16.36,5.64c-0.29,-0.29 -0.77,-0.29 -1.06,0L13.54,7.4c-0.29,0.29 -0.29,0.77 0,1.06l0,0c0.29,0.29 0.77,0.29 1.06,0l1.77,-1.77C16.66,6.4 16.66,5.93 16.36,5.64z"/> + <path + android:fillColor="@android:color/white" + android:pathData="M6.46,7.4L4.7,5.64c-0.29,-0.29 -0.77,-0.29 -1.06,0l0,0c-0.29,0.29 -0.29,0.77 0,1.06L5.4,8.46c0.29,0.29 0.77,0.29 1.06,0l0,0C6.76,8.17 6.76,7.7 6.46,7.4z"/> +</vector> diff --git a/app/src/main/res/drawable/round_upcoming_24.xml b/app/src/main/res/drawable/round_upcoming_24.xml new file mode 100644 index 0000000..f3c7980 --- /dev/null +++ b/app/src/main/res/drawable/round_upcoming_24.xml @@ -0,0 +1,19 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M20.45,6.55L20.45,6.55c-0.38,-0.38 -1.01,-0.38 -1.39,0L16.89,8.7c-0.39,0.38 -0.39,1.01 0,1.39l0.01,0.01c0.39,0.39 1.01,0.39 1.4,0c0.62,-0.63 1.52,-1.54 2.15,-2.17C20.83,7.55 20.83,6.93 20.45,6.55z"/> + <path + android:fillColor="@android:color/white" + android:pathData="M12.02,3h-0.03C11.44,3 11,3.44 11,3.98v3.03C11,7.56 11.44,8 11.98,8h0.03C12.56,8 13,7.56 13,7.02V3.98C13,3.44 12.56,3 12.02,3z"/> + <path + android:fillColor="@android:color/white" + android:pathData="M7.1,10.11l0.01,-0.01c0.38,-0.38 0.38,-1.01 0,-1.39L4.96,6.54c-0.38,-0.39 -1.01,-0.39 -1.39,0L3.55,6.55c-0.39,0.39 -0.39,1.01 0,1.39c0.63,0.62 1.53,1.54 2.15,2.17C6.09,10.49 6.72,10.49 7.1,10.11z"/> + <path + android:fillColor="@android:color/white" + android:pathData="M12,15c-1.24,0 -2.31,-0.75 -2.76,-1.83C8.92,12.43 8.14,12 7.34,12L4,12c-1.1,0 -2,0.9 -2,2l0,5c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2v-5c0,-1.1 -0.9,-2 -2,-2l-3.34,0c-0.8,0 -1.58,0.43 -1.9,1.17C14.31,14.25 13.24,15 12,15"/> +</vector> diff --git a/app/src/main/res/layout/left_aligned_widget.xml b/app/src/main/res/layout/left_aligned_widget.xml index 8096e04..adbf68f 100644 --- a/app/src/main/res/layout/left_aligned_widget.xml +++ b/app/src/main/res/layout/left_aligned_widget.xml @@ -1,4 +1,6 @@ <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clipChildren="false" @@ -146,7 +148,7 @@ android:layout_height="wrap_content" android:cropToPadding="false" android:clipChildren="false" - android:layout_marginTop="2dp" + android:layout_marginTop="3dp" android:layout_marginEnd="4dp"> <ImageView android:layout_width="16dp" diff --git a/app/src/main/res/layout/the_widget.xml b/app/src/main/res/layout/the_widget.xml index 2282237..643f0d1 100644 --- a/app/src/main/res/layout/the_widget.xml +++ b/app/src/main/res/layout/the_widget.xml @@ -1,6 +1,7 @@ <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" + xmlns:tools="http://schemas.android.com/tools" android:layout_gravity="center" android:clipChildren="false" android:clipToPadding="false" @@ -206,12 +207,12 @@ android:layout_height="wrap_content" android:gravity="center" android:visibility="gone" - android:layout_marginStart="4dp" android:id="@+id/weather_sub_line"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="8dp" + android:layout_marginStart="8dp" android:id="@+id/weather_sub_line_divider" android:text="@string/divider" android:includeFontPadding="false" @@ -221,7 +222,7 @@ android:layout_height="20dp" android:id="@+id/weather_sub_line_weather_icon" android:layout_marginStart="4dp" - android:layout_marginEnd="8dp"/> + android:layout_marginEnd="4dp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 520b04f..1a43822 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -19,6 +19,7 @@ <color name="colorPrimaryDark">#F8F8F8</color> <color name="colorAccent">#0092ca</color> <color name="colorAccent_op10">#1A1089FF</color> + <color name="colorAccent_op20">#331089FF</color> <color name="colorAccent_op30">#4D1089FF</color> <color name="colorTitle">#1089FF</color> <color name="black_op10">#1A000000</color> diff --git a/build.gradle b/build.gradle index bee755d..734e35f 100644 --- a/build.gradle +++ b/build.gradle @@ -10,12 +10,12 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:4.2.0' + classpath 'com.android.tools.build:gradle:7.0.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath 'com.google.gms:google-services:4.3.5' + classpath 'com.google.gms:google-services:4.3.8' // Add the Crashlytics Gradle plugin. - classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.2' + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.6.1' classpath 'io.realm:realm-gradle-plugin:10.4.0' diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ab7c9d5..f403e3d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip