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