Merge branch 'develop' into patch-develop
This commit is contained in:
@ -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
|
||||
|
@ -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)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -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)
|
||||
|
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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
|
||||
@ -146,6 +147,10 @@ class MainFragment : Fragment() {
|
||||
binding.toolbar.cardElevation = if (it > 0) 32f else 0f
|
||||
}
|
||||
|
||||
viewModel.showPreview.observe(viewLifecycleOwner) {
|
||||
binding.preview.isVisible = it
|
||||
}
|
||||
|
||||
viewModel.widgetPreferencesUpdate.observe(viewLifecycleOwner) {
|
||||
onUpdateUiEvent(null)
|
||||
}
|
||||
@ -169,16 +174,13 @@ class MainFragment : Fragment() {
|
||||
val view: View = generatedView.apply(requireActivity().applicationContext, binding.widget)
|
||||
view.measure(0, 0)
|
||||
|
||||
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()
|
||||
}
|
||||
}
|
||||
@ -188,28 +190,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() {
|
||||
|
@ -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 }
|
||||
|
@ -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
|
||||
@ -70,7 +67,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
|
||||
@ -88,7 +84,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
|
||||
@ -417,7 +412,6 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
)
|
||||
} catch (ex: Exception) {
|
||||
ex.printStackTrace()
|
||||
CrashlyticsReceiver.sendCrash(context, ex)
|
||||
}
|
||||
|
||||
return views
|
||||
@ -996,7 +990,6 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
return bindingView
|
||||
} catch (ex: Exception) {
|
||||
ex.printStackTrace()
|
||||
CrashlyticsReceiver.sendCrash(context, ex)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
@ -111,7 +109,6 @@ class ClockWidget(val context: Context) {
|
||||
}
|
||||
} catch (ex: Exception) {
|
||||
ex.printStackTrace()
|
||||
CrashlyticsReceiver.sendCrash(context, ex)
|
||||
}
|
||||
|
||||
return views
|
||||
|
@ -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
|
||||
@ -90,7 +85,6 @@ class StandardWidget(val context: Context) {
|
||||
views = updateGridView(generatedBinding, views, appWidgetId)
|
||||
} catch (ex: Exception) {
|
||||
ex.printStackTrace()
|
||||
CrashlyticsReceiver.sendCrash(context, ex)
|
||||
}
|
||||
|
||||
return views
|
||||
@ -446,7 +440,6 @@ class StandardWidget(val context: Context) {
|
||||
}
|
||||
} catch (ex: Exception) {
|
||||
ex.printStackTrace()
|
||||
CrashlyticsReceiver.sendCrash(context, ex)
|
||||
}
|
||||
|
||||
return views
|
||||
@ -1027,7 +1020,6 @@ class StandardWidget(val context: Context) {
|
||||
|
||||
} catch (ex: Exception) {
|
||||
ex.printStackTrace()
|
||||
CrashlyticsReceiver.sendCrash(context, ex)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user