Merge branch 'patch-2' into patch-develop
# Conflicts: # app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/AlignedWidget.kt # app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/StandardWidget.kt
This commit is contained in:
@ -143,7 +143,6 @@ class BottomSheetColorPicker(
|
||||
withContext(Dispatchers.Main) {
|
||||
binding.loader.isVisible = false
|
||||
binding.listContainer.addView(listBinding.root)
|
||||
this@BottomSheetColorPicker.behavior.state = BottomSheetBehavior.STATE_EXPANDED
|
||||
binding.listContainer.isVisible = true
|
||||
|
||||
val idx = colors.toList().indexOf(getSelected?.invoke())
|
||||
@ -152,6 +151,10 @@ class BottomSheetColorPicker(
|
||||
})
|
||||
|
||||
setContentView(binding.root)
|
||||
behavior.run {
|
||||
skipCollapsed = true
|
||||
state = BottomSheetBehavior.STATE_EXPANDED
|
||||
}
|
||||
super.show()
|
||||
}
|
||||
|
||||
|
@ -108,6 +108,10 @@ open class BottomSheetMenu<T>(context: Context, private val header: String? = nu
|
||||
}
|
||||
}
|
||||
setContentView(binding.root)
|
||||
behavior.run {
|
||||
skipCollapsed = true
|
||||
state = com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED
|
||||
}
|
||||
super.show()
|
||||
}
|
||||
|
||||
|
@ -86,7 +86,6 @@ class BottomSheetPicker<T>(
|
||||
withContext(Dispatchers.Main) {
|
||||
binding.loader.isVisible = false
|
||||
binding.listContainer.addView(listBinding.root)
|
||||
this@BottomSheetPicker.behavior.state = BottomSheetBehavior.STATE_EXPANDED
|
||||
binding.listContainer.isVisible = true
|
||||
|
||||
val idx = items.toList().indexOfFirst { it.value == getSelected?.invoke() }
|
||||
@ -95,6 +94,10 @@ class BottomSheetPicker<T>(
|
||||
})
|
||||
|
||||
setContentView(binding.root)
|
||||
behavior.run {
|
||||
skipCollapsed = true
|
||||
state = BottomSheetBehavior.STATE_EXPANDED
|
||||
}
|
||||
super.show()
|
||||
}
|
||||
|
||||
|
@ -61,5 +61,9 @@ class BottomSheetWeatherProviderSettings(context: Context, callback: () -> Unit)
|
||||
}
|
||||
|
||||
setContentView(binding.root)
|
||||
behavior.run {
|
||||
skipCollapsed = true
|
||||
state = com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED
|
||||
}
|
||||
}
|
||||
}
|
@ -26,5 +26,9 @@ class CustomNotesDialog(context: Context, callback: (() -> Unit)?) : BottomSheet
|
||||
binding.notes.requestFocus()
|
||||
|
||||
setContentView(binding.root)
|
||||
behavior.run {
|
||||
skipCollapsed = true
|
||||
state = com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED
|
||||
}
|
||||
}
|
||||
}
|
@ -230,10 +230,16 @@ class GlanceSettingsDialog(val context: Activity, val provider: Constants.Glance
|
||||
}
|
||||
|
||||
setContentView(binding.root)
|
||||
behavior.run {
|
||||
skipCollapsed = true
|
||||
state = com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED
|
||||
}
|
||||
super.show()
|
||||
}
|
||||
|
||||
private fun checkNextAlarm() {
|
||||
if (!Preferences.showNextAlarm)
|
||||
AlarmHelper.clearTimeout(context)
|
||||
with(context.getSystemService(Context.ALARM_SERVICE) as AlarmManager) {
|
||||
val alarm = nextAlarmClock
|
||||
if (alarm != null && alarm.showIntent != null) {
|
||||
|
@ -50,6 +50,10 @@ class IconPackSelector(context: Context, private val header: String? = null) : B
|
||||
binding.menu.addView(itemBinding.root)
|
||||
}
|
||||
setContentView(binding.root)
|
||||
behavior.run {
|
||||
skipCollapsed = true
|
||||
state = com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED
|
||||
}
|
||||
super.show()
|
||||
}
|
||||
}
|
@ -57,6 +57,10 @@ class MaterialBottomSheetDialog(
|
||||
}
|
||||
|
||||
setContentView(binding.root)
|
||||
behavior.run {
|
||||
skipCollapsed = true
|
||||
state = com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED
|
||||
}
|
||||
super.show()
|
||||
}
|
||||
|
||||
|
@ -95,7 +95,7 @@ object Preferences : KotprefModel() {
|
||||
// Global
|
||||
var textMainSize by floatPref(key = "PREF_TEXT_MAIN_SIZE", default = 26f)
|
||||
var textSecondSize by floatPref(key = "PREF_TEXT_SECOND_SIZE", default = 18f)
|
||||
var clockTextSize by floatPref(key = "PREF_TEXT_CLOCK_SIZE", default = 90f)
|
||||
var clockTextSize by floatPref(key = "PREF_TEXT_CLOCK_SIZE", default = 26f)
|
||||
var clockBottomMargin by intPref(default = Constants.ClockBottomMargin.MEDIUM.rawValue)
|
||||
var secondRowTopMargin by intPref(default = Constants.SecondRowTopMargin.NONE.rawValue)
|
||||
var showClock by booleanPref(key = "PREF_SHOW_CLOCK", default = false)
|
||||
|
@ -44,7 +44,6 @@ object AlarmHelper {
|
||||
val intent = Intent(context, UpdatesReceiver::class.java).apply {
|
||||
action = Actions.ACTION_ALARM_UPDATE
|
||||
}
|
||||
cancel(PendingIntent.getBroadcast(context, ALARM_UPDATE_ID, intent, 0))
|
||||
setExact(
|
||||
AlarmManager.RTC,
|
||||
trigger,
|
||||
@ -58,5 +57,14 @@ object AlarmHelper {
|
||||
}
|
||||
}
|
||||
|
||||
fun clearTimeout(context: Context) {
|
||||
with(context.getSystemService(Context.ALARM_SERVICE) as AlarmManager) {
|
||||
val intent = Intent(context, UpdatesReceiver::class.java).apply {
|
||||
action = Actions.ACTION_ALARM_UPDATE
|
||||
}
|
||||
cancel(PendingIntent.getBroadcast(context, ALARM_UPDATE_ID, intent, 0))
|
||||
}
|
||||
}
|
||||
|
||||
private const val ALARM_UPDATE_ID = 24953
|
||||
}
|
@ -73,6 +73,9 @@ object ImageHelper {
|
||||
|
||||
allocationIn.destroy()
|
||||
allocationOut.destroy()
|
||||
colorMatrixScript.destroy()
|
||||
blurScript.destroy()
|
||||
//rs.destroy()
|
||||
|
||||
return bitmap
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.tommasoberlose.anotherwidget.helpers
|
||||
|
||||
import android.app.PendingIntent
|
||||
import android.appwidget.AppWidgetManager
|
||||
import android.content.ComponentName
|
||||
import android.content.ContentUris
|
||||
@ -27,6 +28,13 @@ object IntentHelper {
|
||||
const val DO_NOTHING_OPTION = "DO_NOTHING"
|
||||
const val REFRESH_WIDGET_OPTION = "REFRESH_WIDGET"
|
||||
|
||||
fun getPendingIntent(context: Context, requestCode: Int, intent: Intent, flags: Int): PendingIntent {
|
||||
return if (intent.flags and Intent.FLAG_ACTIVITY_NEW_TASK == Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
PendingIntent.getActivity(context, requestCode, intent, flags)
|
||||
else
|
||||
PendingIntent.getBroadcast(context, requestCode, intent, 0)
|
||||
}
|
||||
|
||||
fun getWidgetUpdateIntent(context: Context): Intent {
|
||||
val widgetManager = AppWidgetManager.getInstance(context)
|
||||
val widgetComponent = ComponentName(context, MainWidget::class.java)
|
||||
@ -40,21 +48,19 @@ object IntentHelper {
|
||||
private fun getWidgetRefreshIntent(context: Context): Intent {
|
||||
return Intent(context, UpdatesReceiver::class.java).apply {
|
||||
action = Actions.ACTION_REFRESH
|
||||
flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
}
|
||||
}
|
||||
|
||||
fun getGoogleMapsIntentFromAddress(context: Context, address: String): Intent {
|
||||
val gmmIntentUri: Uri = Uri.parse("geo:0,0?q=$address")
|
||||
val gmmIntentUri: Uri = Uri.parse("geo:0,0?q=${Uri.encode(address)}")
|
||||
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
|
||||
mapIntent.`package` = "com.google.android.apps.maps"
|
||||
//mapIntent.`package` = "com.google.android.apps.maps"
|
||||
|
||||
return if (mapIntent.resolveActivity(context.packageManager) != null) {
|
||||
mapIntent
|
||||
mapIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
} else {
|
||||
val map = "http://maps.google.co.in/maps?q=$address"
|
||||
val i = Intent(Intent.ACTION_VIEW, Uri.parse(map));
|
||||
i
|
||||
val map = "https://www.google.com/maps/search/?api=1&query=${Uri.encode(address)}"
|
||||
Intent(Intent.ACTION_VIEW, Uri.parse(map)).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,7 +68,6 @@ object IntentHelper {
|
||||
return when (Preferences.weatherAppPackage) {
|
||||
DEFAULT_OPTION -> {
|
||||
Intent(Intent.ACTION_VIEW).apply {
|
||||
addCategory(Intent.CATEGORY_DEFAULT)
|
||||
flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
data = Uri.parse("dynact://velour/weather/ProxyActivity")
|
||||
component = ComponentName("com.google.android.googlequicksearchbox", "com.google.android.apps.gsa.velour.DynamicActivityTrampoline")
|
||||
@ -89,15 +94,16 @@ object IntentHelper {
|
||||
}
|
||||
}
|
||||
|
||||
fun getCalendarIntent(context: Context): Intent {
|
||||
fun getCalendarIntent(context: Context, time: Long? = null): Intent {
|
||||
val calendarUri = CalendarContract.CONTENT_URI
|
||||
.buildUpon()
|
||||
.appendPath("time")
|
||||
.appendPath(Calendar.getInstance().timeInMillis.toString())
|
||||
.appendPath((time ?: Calendar.getInstance().timeInMillis).toString())
|
||||
.build()
|
||||
return when (Preferences.calendarAppPackage) {
|
||||
DEFAULT_OPTION -> {
|
||||
Intent(Intent.ACTION_VIEW).apply {
|
||||
flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
data = calendarUri
|
||||
}
|
||||
}
|
||||
@ -111,6 +117,8 @@ object IntentHelper {
|
||||
val pm: PackageManager = context.packageManager
|
||||
try {
|
||||
pm.getLaunchIntentForPackage(Preferences.calendarAppPackage)!!.apply {
|
||||
addCategory(Intent.CATEGORY_LAUNCHER)
|
||||
flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
action = Intent.ACTION_VIEW
|
||||
data = calendarUri
|
||||
}
|
||||
@ -177,7 +185,7 @@ object IntentHelper {
|
||||
}
|
||||
}
|
||||
false -> {
|
||||
getCalendarIntent(context)
|
||||
getCalendarIntent(context, e.startDate)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -209,7 +217,7 @@ object IntentHelper {
|
||||
}
|
||||
|
||||
fun getBatteryIntent(): Intent {
|
||||
return Intent(Intent.ACTION_POWER_USAGE_SUMMARY)
|
||||
return Intent(Intent.ACTION_POWER_USAGE_SUMMARY).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
}
|
||||
|
||||
fun getMusicIntent(context: Context): Intent {
|
||||
@ -222,6 +230,7 @@ object IntentHelper {
|
||||
try {
|
||||
pm.getLaunchIntentForPackage(Preferences.mediaPlayerPackage)!!.apply {
|
||||
addCategory(Intent.CATEGORY_LAUNCHER)
|
||||
flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Intent()
|
||||
@ -235,6 +244,7 @@ object IntentHelper {
|
||||
return try {
|
||||
pm.getLaunchIntentForPackage("com.google.android.apps.fitness")!!.apply {
|
||||
addCategory(Intent.CATEGORY_LAUNCHER)
|
||||
flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Intent()
|
||||
@ -246,6 +256,7 @@ object IntentHelper {
|
||||
return try {
|
||||
pm.getLaunchIntentForPackage(Preferences.lastNotificationPackage)!!.apply {
|
||||
addCategory(Intent.CATEGORY_LAUNCHER)
|
||||
flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Intent()
|
||||
|
@ -63,21 +63,23 @@ object WidgetHelper {
|
||||
R.array.com_google_android_gms_fonts_certs
|
||||
)
|
||||
|
||||
val handlerThread = HandlerThread("generateView")
|
||||
val callback = object : FontsContractCompat.FontRequestCallback() {
|
||||
override fun onTypefaceRetrieved(typeface: Typeface) {
|
||||
handlerThread.quit()
|
||||
function.invoke(typeface)
|
||||
}
|
||||
|
||||
override fun onTypefaceRequestFailed(reason: Int) {
|
||||
handlerThread.quit()
|
||||
function.invoke(null)
|
||||
}
|
||||
}
|
||||
|
||||
val handlerThread = HandlerThread("generateView")
|
||||
handlerThread.start()
|
||||
if (Looper.myLooper() == null) {
|
||||
Looper.prepare()
|
||||
}
|
||||
//if (Looper.myLooper() == null) {
|
||||
// Looper.prepare()
|
||||
//}
|
||||
|
||||
Handler(handlerThread.looper).run {
|
||||
FontsContractCompat.requestFont(context, request, callback, this)
|
||||
|
@ -16,14 +16,15 @@ class WidgetClickListenerReceiver : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
if (intent.action == Actions.ACTION_OPEN_WEATHER_INTENT) {
|
||||
try {
|
||||
if (Preferences.weatherAppPackage == IntentHelper.REFRESH_WIDGET_OPTION) {
|
||||
context.sendBroadcast(IntentHelper.getWeatherIntent(context))
|
||||
} else {
|
||||
context.startActivity(IntentHelper.getWeatherIntent(context))
|
||||
IntentHelper.getWeatherIntent(context).run {
|
||||
if (flags and Intent.FLAG_ACTIVITY_NEW_TASK == Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
context.startActivity(this)
|
||||
else
|
||||
context.sendBroadcast(this)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
val uri = Uri.parse("http://www.google.com/search?q=weather")
|
||||
val uri = Uri.parse("https://www.google.com/search?q=weather")
|
||||
val i = Intent(Intent.ACTION_VIEW, uri)
|
||||
i.flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
try {
|
||||
|
@ -38,12 +38,15 @@ class CustomFontActivity : AppCompatActivity() {
|
||||
private lateinit var adapter: SlimAdapter
|
||||
private lateinit var viewModel: CustomFontViewModel
|
||||
private lateinit var binding: ActivityCustomFontBinding
|
||||
private lateinit var handlerThread: HandlerThread
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
viewModel = ViewModelProvider(this).get(CustomFontViewModel::class.java)
|
||||
binding = ActivityCustomFontBinding.inflate(layoutInflater)
|
||||
handlerThread = HandlerThread("listCustomFonts")
|
||||
handlerThread.start()
|
||||
|
||||
binding.listView.setHasFixedSize(true)
|
||||
val mLayoutManager = LinearLayoutManager(this)
|
||||
@ -64,14 +67,17 @@ class CustomFontActivity : AppCompatActivity() {
|
||||
injector
|
||||
.text(R.id.text, item)
|
||||
.with<TextView>(R.id.text) {
|
||||
val googleSans: Typeface = when (Preferences.customFontVariant) {
|
||||
"100" -> Typeface.createFromAsset(this.assets, "fonts/google_sans_thin.ttf")
|
||||
"200" -> Typeface.createFromAsset(this.assets, "fonts/google_sans_light.ttf")
|
||||
"500" -> Typeface.createFromAsset(this.assets, "fonts/google_sans_medium.ttf")
|
||||
"700" -> Typeface.createFromAsset(this.assets, "fonts/google_sans_bold.ttf")
|
||||
"800" -> Typeface.createFromAsset(this.assets, "fonts/google_sans_black.ttf")
|
||||
else -> Typeface.createFromAsset(this.assets, "fonts/google_sans_regular.ttf")
|
||||
}
|
||||
val googleSans: Typeface? = androidx.core.content.res.ResourcesCompat.getFont(
|
||||
this,
|
||||
when (Preferences.customFontVariant) {
|
||||
"100" -> R.font.google_sans_thin
|
||||
"200" -> R.font.google_sans_light
|
||||
"500" -> R.font.google_sans_medium
|
||||
"700" -> R.font.google_sans_bold
|
||||
"800" -> R.font.google_sans_black
|
||||
else -> R.font.google_sans_regular
|
||||
}
|
||||
)
|
||||
it.typeface = googleSans
|
||||
}
|
||||
|
||||
@ -97,32 +103,49 @@ class CustomFontActivity : AppCompatActivity() {
|
||||
)
|
||||
|
||||
|
||||
val callback = object : FontsContractCompat.FontRequestCallback() {
|
||||
override fun onTypefaceRetrieved(typeface: Typeface) {
|
||||
it.typeface = typeface
|
||||
it.isVisible = true
|
||||
class Callback : FontsContractCompat.FontRequestCallback() {
|
||||
var handler: Handler? = Handler(handlerThread.looper)
|
||||
|
||||
it.measure(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
fun cancel() {
|
||||
if (handler != null) {
|
||||
handler!!.removeCallbacksAndMessages(null)
|
||||
handler = null
|
||||
}
|
||||
}
|
||||
|
||||
protected fun finalize() {
|
||||
cancel()
|
||||
}
|
||||
|
||||
override fun onTypefaceRetrieved(typeface: Typeface) {
|
||||
if (it.tag == this) {
|
||||
it.tag = null
|
||||
it.typeface = typeface
|
||||
it.setTextColor(getColor(R.color.colorPrimaryText))
|
||||
}
|
||||
}
|
||||
|
||||
override fun onTypefaceRequestFailed(reason: Int) {
|
||||
it.isVisible = false
|
||||
it.layoutParams = it.layoutParams.apply {
|
||||
height = 0
|
||||
if (it.tag == this) {
|
||||
it.tag = null
|
||||
//it.text = item.fontFamily + " ($reason)"
|
||||
it.setTextColor(getColor(R.color.errorColorText))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val handlerThread = HandlerThread(item.fontFamily)
|
||||
handlerThread.start()
|
||||
val mHandler = Handler(handlerThread.looper)
|
||||
(it.tag as Callback?)?.cancel()
|
||||
val callback = Callback()
|
||||
it.tag = callback
|
||||
it.typeface = null
|
||||
it.setTextColor(getColor(R.color.colorSecondaryText))
|
||||
|
||||
val mHandler = callback.handler!!
|
||||
FontsContractCompat.requestFont(this, request, callback, mHandler)
|
||||
}
|
||||
|
||||
injector.clicked(R.id.text) {
|
||||
if ((it as TextView).typeface == null) return@clicked
|
||||
val dialog = BottomSheetMenu<Int>(this, header = item.fontFamily)
|
||||
if (item.fontVariants.isEmpty()) {
|
||||
dialog.addItem(SettingsStringHelper.getVariantLabel(this, "regular"), -1)
|
||||
@ -147,6 +170,12 @@ class CustomFontActivity : AppCompatActivity() {
|
||||
setContentView(binding.root)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
handlerThread.quit()
|
||||
filterJob?.cancel()
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
private var filterJob: Job? = null
|
||||
|
||||
private fun subscribeUi(binding: ActivityCustomFontBinding, viewModel: CustomFontViewModel) {
|
||||
@ -204,6 +233,13 @@ class CustomFontActivity : AppCompatActivity() {
|
||||
adapter.updateData(filteredList)
|
||||
binding.loader.visibility = View.INVISIBLE
|
||||
}
|
||||
} else {
|
||||
delay(200)
|
||||
withContext(Dispatchers.Main) {
|
||||
adapter.updateData(listOf(getString(R.string.custom_font_subtitle_1)).filter {
|
||||
it.contains(search ?: "", ignoreCase = true)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ import com.chibatching.kotpref.bulk
|
||||
import com.google.android.material.transition.MaterialSharedAxis
|
||||
import com.tommasoberlose.anotherwidget.R
|
||||
import com.tommasoberlose.anotherwidget.components.BottomSheetColorPicker
|
||||
import com.tommasoberlose.anotherwidget.components.BottomSheetMenu
|
||||
import com.tommasoberlose.anotherwidget.components.BottomSheetPicker
|
||||
import com.tommasoberlose.anotherwidget.databinding.FragmentTabClockBinding
|
||||
import com.tommasoberlose.anotherwidget.global.Constants
|
||||
import com.tommasoberlose.anotherwidget.global.Preferences
|
||||
@ -144,16 +144,15 @@ class ClockFragment : Fragment() {
|
||||
private fun setupListener() {
|
||||
|
||||
binding.actionClockTextSize.setOnClickListener {
|
||||
val dialog = BottomSheetMenu<Float>(
|
||||
BottomSheetPicker(
|
||||
requireContext(),
|
||||
header = getString(R.string.settings_clock_text_size_title)
|
||||
).setSelectedValue(Preferences.clockTextSize)
|
||||
(46 downTo 12).filter { it % 2 == 0 }.forEach {
|
||||
dialog.addItem("${it}sp", it.toFloat())
|
||||
}
|
||||
dialog.addOnSelectItemListener { value ->
|
||||
Preferences.clockTextSize = value
|
||||
}.show()
|
||||
items = (46 downTo 12).map { BottomSheetPicker.MenuItem("${it}sp", it.toFloat()) },
|
||||
getSelected = { Preferences.clockTextSize },
|
||||
header = getString(R.string.settings_clock_text_size_title),
|
||||
onItemSelected = {value ->
|
||||
if (value != null) Preferences.clockTextSize = value
|
||||
}
|
||||
).show()
|
||||
}
|
||||
|
||||
binding.actionAltTimezoneClock.setOnClickListener {
|
||||
|
@ -102,15 +102,7 @@ class GesturesFragment : Fragment() {
|
||||
it == IntentHelper.DO_NOTHING_OPTION -> getString(R.string.gestures_do_nothing)
|
||||
it == IntentHelper.REFRESH_WIDGET_OPTION -> getString(R.string.gestures_refresh_widget)
|
||||
it != IntentHelper.DEFAULT_OPTION -> it
|
||||
else -> {
|
||||
if (IntentHelper.getCalendarIntent(requireContext()).isDefaultSet(requireContext())) {
|
||||
getString(
|
||||
R.string.default_calendar_app
|
||||
)
|
||||
} else {
|
||||
getString(R.string.gestures_do_nothing)
|
||||
}
|
||||
}
|
||||
else -> getString(R.string.default_calendar_app)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -127,15 +119,7 @@ class GesturesFragment : Fragment() {
|
||||
it == IntentHelper.DO_NOTHING_OPTION -> getString(R.string.gestures_do_nothing)
|
||||
it == IntentHelper.REFRESH_WIDGET_OPTION -> getString(R.string.gestures_refresh_widget)
|
||||
it != IntentHelper.DEFAULT_OPTION -> it
|
||||
else -> {
|
||||
if (IntentHelper.getClockIntent(requireContext()).isDefaultSet(requireContext())) {
|
||||
getString(
|
||||
R.string.default_clock_app
|
||||
)
|
||||
} else {
|
||||
getString(R.string.gestures_do_nothing)
|
||||
}
|
||||
}
|
||||
else -> getString(R.string.default_clock_app)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -173,9 +157,12 @@ class GesturesFragment : Fragment() {
|
||||
}
|
||||
|
||||
binding.actionCalendarApp.setOnClickListener {
|
||||
startActivityForResult(Intent(requireContext(), ChooseApplicationActivity::class.java).apply {
|
||||
putExtra(Constants.RESULT_APP_PACKAGE, Preferences.calendarAppPackage)
|
||||
}, RequestCode.CALENDAR_APP_REQUEST_CODE.code)
|
||||
startActivityForResult(
|
||||
Intent(requireContext(), ChooseApplicationActivity::class.java).apply {
|
||||
putExtra(Constants.RESULT_APP_PACKAGE, Preferences.calendarAppPackage)
|
||||
},
|
||||
RequestCode.CALENDAR_APP_REQUEST_CODE.code
|
||||
)
|
||||
}
|
||||
|
||||
binding.actionClockApp.setOnClickListener {
|
||||
|
@ -276,7 +276,7 @@ class TypographyFragment : Fragment() {
|
||||
Intent(requireContext(), CustomFontActivity::class.java),
|
||||
RequestCode.CUSTOM_FONT_CHOOSER_REQUEST_CODE.code
|
||||
)
|
||||
} else if (value != Constants.CUSTOM_FONT_DOWNLOADED) {
|
||||
} else if (value != Preferences.customFont) {
|
||||
Preferences.bulk {
|
||||
customFont = value
|
||||
customFontFile = ""
|
||||
|
@ -56,7 +56,7 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
)
|
||||
val margin = Preferences.widgetMargin.convertDpToPixel(context).toInt()
|
||||
views.setViewPadding(R.id.widget_shape_background, margin, margin, margin, margin)
|
||||
val refreshIntent = PendingIntent.getActivity(
|
||||
val refreshIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
appWidgetId,
|
||||
IntentHelper.getWidgetUpdateIntent(context),
|
||||
@ -102,7 +102,7 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
// Weather
|
||||
if (Preferences.showWeather && Preferences.weatherIcon != "") {
|
||||
views.setViewVisibility(R.id.weather_rect, View.VISIBLE)
|
||||
views.setViewVisibility(R.id.weather_sub_line, View.GONE)
|
||||
views.setViewVisibility(R.id.weather_sub_line_rect, View.GONE)
|
||||
|
||||
val i = Intent(context, WidgetClickListenerReceiver::class.java)
|
||||
i.action = Actions.ACTION_OPEN_WEATHER_INTENT
|
||||
@ -122,7 +122,7 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
)
|
||||
} else {
|
||||
views.setViewVisibility(R.id.weather_rect, View.GONE)
|
||||
views.setViewVisibility(R.id.weather_sub_line, View.GONE)
|
||||
views.setViewVisibility(R.id.weather_sub_line_rect, View.GONE)
|
||||
}
|
||||
|
||||
|
||||
@ -132,7 +132,7 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
BitmapHelper.getBitmapFromView(bindingView.date, draw = false, width = bindingView.date.width, height = bindingView.date.height)
|
||||
)
|
||||
|
||||
val calPIntent = PendingIntent.getActivity(
|
||||
val calPIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getCalendarIntent(context),
|
||||
@ -141,8 +141,6 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
views.setOnClickPendingIntent(R.id.date_rect, calPIntent)
|
||||
views.setViewVisibility(R.id.first_line_rect, View.VISIBLE)
|
||||
|
||||
val nextAlarm = AlarmHelper.getNextAlarm(context)
|
||||
|
||||
// Spacing
|
||||
views.setViewVisibility(
|
||||
R.id.sub_line_top_margin_small_sans,
|
||||
@ -185,7 +183,7 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
}
|
||||
|
||||
// Event intent
|
||||
val eventIntent = PendingIntent.getActivity(
|
||||
val eventIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getEventIntent(context, nextEvent),
|
||||
@ -222,7 +220,7 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
|
||||
// Event information
|
||||
if (nextEvent.address != "" && Preferences.secondRowInformation == 1) {
|
||||
val mapIntent = PendingIntent.getActivity(
|
||||
val mapIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getGoogleMapsIntentFromAddress(context, nextEvent.address),
|
||||
@ -230,14 +228,10 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.sub_line_rect, mapIntent)
|
||||
} else {
|
||||
val pIntentDetail = PendingIntent.getActivity(
|
||||
val pIntentDetail = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getEventIntent(
|
||||
context,
|
||||
nextEvent,
|
||||
forceEventDetails = true
|
||||
),
|
||||
IntentHelper.getCalendarIntent(context, nextEvent.startDate),
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.sub_line_rect, pIntentDetail)
|
||||
@ -245,7 +239,7 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
|
||||
views.setViewVisibility(R.id.calendar_layout_rect, View.VISIBLE)
|
||||
views.setViewVisibility(R.id.sub_line_rect, View.VISIBLE)
|
||||
views.setViewVisibility(R.id.weather_sub_line_rect, View.VISIBLE)
|
||||
views.setViewVisibility(R.id.weather_sub_line_rect, if (Preferences.showWeather && Preferences.weatherIcon != "") View.VISIBLE else View.GONE)
|
||||
views.setViewVisibility(R.id.first_line_rect, View.GONE)
|
||||
|
||||
views.setViewVisibility(R.id.sub_line_top_margin_small_sans, View.GONE)
|
||||
@ -258,7 +252,7 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
when (provider) {
|
||||
Constants.GlanceProviderId.PLAYING_SONG -> {
|
||||
if (MediaPlayerHelper.isSomeonePlaying(context)) {
|
||||
val musicIntent = PendingIntent.getActivity(
|
||||
val musicIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getMusicIntent(context),
|
||||
@ -270,23 +264,26 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
}
|
||||
}
|
||||
Constants.GlanceProviderId.NEXT_CLOCK_ALARM -> {
|
||||
if (Preferences.showNextAlarm && nextAlarm != "") {
|
||||
val alarmIntent = PendingIntent.getActivity(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getClockIntent(context),
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.sub_line_rect, alarmIntent)
|
||||
showSomething = true
|
||||
break@loop
|
||||
if (Preferences.showNextAlarm) {
|
||||
val nextAlarm = AlarmHelper.getNextAlarm(context)
|
||||
if (nextAlarm != "") {
|
||||
val alarmIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getClockIntent(context),
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.sub_line_rect, alarmIntent)
|
||||
showSomething = true
|
||||
break@loop
|
||||
}
|
||||
}
|
||||
}
|
||||
Constants.GlanceProviderId.BATTERY_LEVEL_LOW -> {
|
||||
if (Preferences.showBatteryCharging) {
|
||||
BatteryHelper.updateBatteryInfo(context)
|
||||
if (Preferences.isCharging || Preferences.isBatteryLevelLow) {
|
||||
val batteryIntent = PendingIntent.getActivity(
|
||||
val batteryIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getBatteryIntent(),
|
||||
@ -305,7 +302,7 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
}
|
||||
Constants.GlanceProviderId.GOOGLE_FIT_STEPS -> {
|
||||
if (Preferences.showDailySteps && Preferences.googleFitSteps > 0) {
|
||||
val fitIntent = PendingIntent.getActivity(
|
||||
val fitIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getFitIntent(context),
|
||||
@ -326,7 +323,7 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
remotePackageContext,
|
||||
Preferences.lastNotificationIcon)
|
||||
}
|
||||
val notificationIntent = PendingIntent.getActivity(
|
||||
val notificationIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getNotificationIntent(context),
|
||||
@ -350,7 +347,7 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
Constants.GlanceProviderId.EVENTS -> {
|
||||
if (Preferences.showEventsAsGlanceProvider&& Preferences.showEvents && context.checkGrantedPermission(
|
||||
Manifest.permission.READ_CALENDAR) && nextEvent != null) {
|
||||
val pIntentDetail = PendingIntent.getActivity(
|
||||
val pIntentDetail = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getEventIntent(
|
||||
@ -485,8 +482,6 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
|
||||
bindingView.date.text = DateHelper.getDateText(context, now)
|
||||
|
||||
val nextAlarm = AlarmHelper.getNextAlarm(context)
|
||||
|
||||
if (Preferences.showEvents && context.checkGrantedPermission(Manifest.permission.READ_CALENDAR) && nextEvent != null && !Preferences.showEventsAsGlanceProvider) {
|
||||
// Multiple counter
|
||||
bindingView.actionNext.isVisible =
|
||||
@ -587,18 +582,16 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
}
|
||||
|
||||
} else {
|
||||
val flags: Int =
|
||||
DateUtils.FORMAT_SHOW_DATE or DateUtils.FORMAT_NO_YEAR or DateUtils.FORMAT_ABBREV_MONTH
|
||||
val start = Calendar.getInstance().apply { timeInMillis = nextEvent.startDate }
|
||||
|
||||
bindingView.subLineText.text = if (now.get(Calendar.DAY_OF_YEAR) == start.get(
|
||||
Calendar.DAY_OF_YEAR)) {
|
||||
DateUtils.formatDateTime(context, nextEvent.startDate, flags)
|
||||
DateHelper.getDateText(context, start)
|
||||
} else if (now.get(Calendar.DAY_OF_YEAR) > start.get(Calendar.DAY_OF_YEAR) || now.get(
|
||||
Calendar.YEAR) > start.get(Calendar.YEAR)) {
|
||||
DateUtils.formatDateTime(context, now.timeInMillis, flags)
|
||||
DateHelper.getDateText(context, now)
|
||||
} else {
|
||||
DateUtils.formatDateTime(context, nextEvent.startDate, flags)
|
||||
DateHelper.getDateText(context, start)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -606,7 +599,7 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
bindingView.dateLayout.isVisible = false
|
||||
bindingView.calendarLayout.isVisible = true
|
||||
bindingView.subLine.isVisible = true
|
||||
bindingView.weatherSubLine.isVisible = true
|
||||
bindingView.weatherSubLine.isVisible = Preferences.showWeather && Preferences.weatherIcon != ""
|
||||
|
||||
bindingView.subLineTopMarginSmall.visibility = View.GONE
|
||||
bindingView.subLineTopMarginMedium.visibility = View.GONE
|
||||
@ -632,16 +625,19 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
}
|
||||
}
|
||||
Constants.GlanceProviderId.NEXT_CLOCK_ALARM -> {
|
||||
if (Preferences.showNextAlarm && nextAlarm != "") {
|
||||
bindingView.subLineIcon.setImageDrawable(
|
||||
ContextCompat.getDrawable(
|
||||
context,
|
||||
R.drawable.round_alarm_24
|
||||
if (Preferences.showNextAlarm) {
|
||||
val nextAlarm = AlarmHelper.getNextAlarm(context)
|
||||
if (nextAlarm != "") {
|
||||
bindingView.subLineIcon.setImageDrawable(
|
||||
ContextCompat.getDrawable(
|
||||
context,
|
||||
R.drawable.round_alarm_24
|
||||
)
|
||||
)
|
||||
)
|
||||
bindingView.subLineText.text = AlarmHelper.getNextAlarm(context)
|
||||
showSomething = true
|
||||
break@loop
|
||||
bindingView.subLineText.text = nextAlarm
|
||||
showSomething = true
|
||||
break@loop
|
||||
}
|
||||
}
|
||||
}
|
||||
Constants.GlanceProviderId.BATTERY_LEVEL_LOW -> {
|
||||
@ -933,14 +929,17 @@ class AlignedWidget(val context: Context, val rightAligned: Boolean = false) {
|
||||
|
||||
// Custom Font
|
||||
if (Preferences.customFont == Constants.CUSTOM_FONT_GOOGLE_SANS) {
|
||||
val googleSans: Typeface = when (Preferences.customFontVariant) {
|
||||
"100" -> Typeface.createFromAsset(context.assets, "fonts/google_sans_thin.ttf")
|
||||
"200" -> Typeface.createFromAsset(context.assets, "fonts/google_sans_light.ttf")
|
||||
"500" -> Typeface.createFromAsset(context.assets, "fonts/google_sans_medium.ttf")
|
||||
"700" -> Typeface.createFromAsset(context.assets, "fonts/google_sans_bold.ttf")
|
||||
"800" -> Typeface.createFromAsset(context.assets, "fonts/google_sans_black.ttf")
|
||||
else -> Typeface.createFromAsset(context.assets, "fonts/google_sans_regular.ttf")
|
||||
}
|
||||
val googleSans: Typeface? = androidx.core.content.res.ResourcesCompat.getFont(
|
||||
context,
|
||||
when (Preferences.customFontVariant) {
|
||||
"100" -> R.font.google_sans_thin
|
||||
"200" -> R.font.google_sans_light
|
||||
"500" -> R.font.google_sans_medium
|
||||
"700" -> R.font.google_sans_bold
|
||||
"800" -> R.font.google_sans_black
|
||||
else -> R.font.google_sans_regular
|
||||
}
|
||||
)
|
||||
|
||||
listOf<TextView>(
|
||||
bindingView.date,
|
||||
|
@ -39,7 +39,7 @@ class ClockWidget(val context: Context) {
|
||||
TypedValue.COMPLEX_UNIT_SP,
|
||||
Preferences.clockTextSize.toPixel(context) / 5 * 2
|
||||
)
|
||||
val clockPIntent = PendingIntent.getActivity(
|
||||
val clockPIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getClockIntent(context),
|
||||
|
@ -59,7 +59,7 @@ class StandardWidget(val context: Context) {
|
||||
)
|
||||
val margin = Preferences.widgetMargin.convertDpToPixel(context).toInt()
|
||||
views.setViewPadding(R.id.widget_shape_background, margin, margin, margin, margin)
|
||||
val refreshIntent = PendingIntent.getActivity(
|
||||
val refreshIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
appWidgetId,
|
||||
IntentHelper.getWidgetUpdateIntent(context),
|
||||
@ -105,7 +105,7 @@ class StandardWidget(val context: Context) {
|
||||
// Weather
|
||||
if (Preferences.showWeather && Preferences.weatherIcon != "") {
|
||||
views.setViewVisibility(R.id.weather_rect, View.VISIBLE)
|
||||
views.setViewVisibility(R.id.weather_sub_line, View.GONE)
|
||||
views.setViewVisibility(R.id.weather_sub_line_rect, View.GONE)
|
||||
|
||||
val i = Intent(context, WidgetClickListenerReceiver::class.java)
|
||||
i.action = Actions.ACTION_OPEN_WEATHER_INTENT
|
||||
@ -125,7 +125,7 @@ class StandardWidget(val context: Context) {
|
||||
)
|
||||
} else {
|
||||
views.setViewVisibility(R.id.weather_rect, View.GONE)
|
||||
views.setViewVisibility(R.id.weather_sub_line, View.GONE)
|
||||
views.setViewVisibility(R.id.weather_sub_line_rect, View.GONE)
|
||||
}
|
||||
|
||||
|
||||
@ -135,7 +135,7 @@ class StandardWidget(val context: Context) {
|
||||
BitmapHelper.getBitmapFromView(bindingView.date, draw = false, width = bindingView.date.width, height = bindingView.date.height)
|
||||
)
|
||||
|
||||
val calPIntent = PendingIntent.getActivity(
|
||||
val calPIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getCalendarIntent(context),
|
||||
@ -150,8 +150,6 @@ class StandardWidget(val context: Context) {
|
||||
BitmapHelper.getBitmapFromView(bindingView.subLine, draw = false, width = bindingView.subLine.width, height = bindingView.subLine.height)
|
||||
)
|
||||
|
||||
val nextAlarm = AlarmHelper.getNextAlarm(context)
|
||||
|
||||
// Spacing
|
||||
views.setViewVisibility(
|
||||
R.id.sub_line_top_margin_small_sans,
|
||||
@ -215,7 +213,7 @@ class StandardWidget(val context: Context) {
|
||||
}
|
||||
|
||||
// Event intent
|
||||
val eventIntent = PendingIntent.getActivity(
|
||||
val eventIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getEventIntent(context, nextEvent),
|
||||
@ -248,7 +246,7 @@ class StandardWidget(val context: Context) {
|
||||
|
||||
// Event information
|
||||
if (nextEvent.address != "" && Preferences.secondRowInformation == 1) {
|
||||
val mapIntent = PendingIntent.getActivity(
|
||||
val mapIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getGoogleMapsIntentFromAddress(context, nextEvent.address),
|
||||
@ -256,14 +254,10 @@ class StandardWidget(val context: Context) {
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.sub_line_rect, mapIntent)
|
||||
} else {
|
||||
val pIntentDetail = PendingIntent.getActivity(
|
||||
val pIntentDetail = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getEventIntent(
|
||||
context,
|
||||
nextEvent,
|
||||
forceEventDetails = true
|
||||
),
|
||||
IntentHelper.getCalendarIntent(context, nextEvent.startDate),
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.sub_line_rect, pIntentDetail)
|
||||
@ -275,7 +269,7 @@ class StandardWidget(val context: Context) {
|
||||
)
|
||||
views.setViewVisibility(R.id.calendar_layout_rect, View.VISIBLE)
|
||||
views.setViewVisibility(R.id.sub_line_rect, View.VISIBLE)
|
||||
views.setViewVisibility(R.id.weather_sub_line_rect, View.VISIBLE)
|
||||
views.setViewVisibility(R.id.weather_sub_line_rect, if (Preferences.showWeather && Preferences.weatherIcon != "") View.VISIBLE else View.GONE)
|
||||
|
||||
views.setViewVisibility(R.id.first_line_rect, View.GONE)
|
||||
|
||||
@ -286,7 +280,7 @@ class StandardWidget(val context: Context) {
|
||||
when (provider) {
|
||||
Constants.GlanceProviderId.PLAYING_SONG -> {
|
||||
if (MediaPlayerHelper.isSomeonePlaying(context)) {
|
||||
val musicIntent = PendingIntent.getActivity(
|
||||
val musicIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getMusicIntent(context),
|
||||
@ -298,23 +292,26 @@ class StandardWidget(val context: Context) {
|
||||
}
|
||||
}
|
||||
Constants.GlanceProviderId.NEXT_CLOCK_ALARM -> {
|
||||
if (Preferences.showNextAlarm && nextAlarm != "") {
|
||||
val alarmIntent = PendingIntent.getActivity(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getClockIntent(context),
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.sub_line_rect, alarmIntent)
|
||||
showSomething = true
|
||||
break@loop
|
||||
if (Preferences.showNextAlarm) {
|
||||
val nextAlarm = AlarmHelper.getNextAlarm(context)
|
||||
if (nextAlarm != "") {
|
||||
val alarmIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getClockIntent(context),
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.sub_line_rect, alarmIntent)
|
||||
showSomething = true
|
||||
break@loop
|
||||
}
|
||||
}
|
||||
}
|
||||
Constants.GlanceProviderId.BATTERY_LEVEL_LOW -> {
|
||||
if (Preferences.showBatteryCharging) {
|
||||
BatteryHelper.updateBatteryInfo(context)
|
||||
if (Preferences.isCharging || Preferences.isBatteryLevelLow) {
|
||||
val batteryIntent = PendingIntent.getActivity(
|
||||
val batteryIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getBatteryIntent(),
|
||||
@ -333,7 +330,7 @@ class StandardWidget(val context: Context) {
|
||||
}
|
||||
Constants.GlanceProviderId.GOOGLE_FIT_STEPS -> {
|
||||
if (Preferences.showDailySteps && Preferences.googleFitSteps > 0) {
|
||||
val fitIntent = PendingIntent.getActivity(
|
||||
val fitIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getFitIntent(context),
|
||||
@ -354,7 +351,7 @@ class StandardWidget(val context: Context) {
|
||||
remotePackageContext,
|
||||
Preferences.lastNotificationIcon)
|
||||
}
|
||||
val notificationIntent = PendingIntent.getActivity(
|
||||
val notificationIntent = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getNotificationIntent(context),
|
||||
@ -378,7 +375,7 @@ class StandardWidget(val context: Context) {
|
||||
Constants.GlanceProviderId.EVENTS -> {
|
||||
if (Preferences.showEventsAsGlanceProvider&& Preferences.showEvents && context.checkGrantedPermission(
|
||||
Manifest.permission.READ_CALENDAR) && nextEvent != null) {
|
||||
val pIntentDetail = PendingIntent.getActivity(
|
||||
val pIntentDetail = IntentHelper.getPendingIntent(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getEventIntent(
|
||||
@ -512,8 +509,6 @@ class StandardWidget(val context: Context) {
|
||||
|
||||
bindingView.date.text = DateHelper.getDateText(context, now)
|
||||
|
||||
val nextAlarm = AlarmHelper.getNextAlarm(context)
|
||||
|
||||
if (Preferences.showEvents && context.checkGrantedPermission(Manifest.permission.READ_CALENDAR) && nextEvent != null && !Preferences.showEventsAsGlanceProvider) {
|
||||
// Multiple counter
|
||||
bindingView.actionNext.isVisible =
|
||||
@ -616,18 +611,16 @@ class StandardWidget(val context: Context) {
|
||||
}
|
||||
|
||||
} else {
|
||||
val flags: Int =
|
||||
DateUtils.FORMAT_SHOW_DATE or DateUtils.FORMAT_NO_YEAR or DateUtils.FORMAT_ABBREV_MONTH
|
||||
val start = Calendar.getInstance().apply { timeInMillis = nextEvent.startDate }
|
||||
|
||||
bindingView.subLineText.text = if (now.get(Calendar.DAY_OF_YEAR) == start.get(
|
||||
Calendar.DAY_OF_YEAR)) {
|
||||
DateUtils.formatDateTime(context, nextEvent.startDate, flags)
|
||||
DateHelper.getDateText(context, start)
|
||||
} else if (now.get(Calendar.DAY_OF_YEAR) > start.get(Calendar.DAY_OF_YEAR) || now.get(
|
||||
Calendar.YEAR) > start.get(Calendar.YEAR)) {
|
||||
DateUtils.formatDateTime(context, now.timeInMillis, flags)
|
||||
DateHelper.getDateText(context, now)
|
||||
} else {
|
||||
DateUtils.formatDateTime(context, nextEvent.startDate, flags)
|
||||
DateHelper.getDateText(context, start)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -635,7 +628,7 @@ class StandardWidget(val context: Context) {
|
||||
bindingView.dateLayout.isVisible = false
|
||||
bindingView.calendarLayout.isVisible = true
|
||||
bindingView.subLine.isVisible = true
|
||||
bindingView.weatherSubLine.isVisible = true
|
||||
bindingView.weatherSubLine.isVisible = Preferences.showWeather && Preferences.weatherIcon != ""
|
||||
|
||||
bindingView.subLineTopMarginSmall.visibility =
|
||||
if (Preferences.secondRowTopMargin == Constants.SecondRowTopMargin.SMALL.rawValue) View.VISIBLE else View.GONE
|
||||
@ -664,16 +657,19 @@ class StandardWidget(val context: Context) {
|
||||
}
|
||||
}
|
||||
Constants.GlanceProviderId.NEXT_CLOCK_ALARM -> {
|
||||
if (Preferences.showNextAlarm && nextAlarm != "") {
|
||||
bindingView.subLineIcon.setImageDrawable(
|
||||
ContextCompat.getDrawable(
|
||||
context,
|
||||
R.drawable.round_alarm_24
|
||||
if (Preferences.showNextAlarm) {
|
||||
val nextAlarm = AlarmHelper.getNextAlarm(context)
|
||||
if (nextAlarm != "") {
|
||||
bindingView.subLineIcon.setImageDrawable(
|
||||
ContextCompat.getDrawable(
|
||||
context,
|
||||
R.drawable.round_alarm_24
|
||||
)
|
||||
)
|
||||
)
|
||||
bindingView.subLineText.text = AlarmHelper.getNextAlarm(context)
|
||||
showSomething = true
|
||||
break@loop
|
||||
bindingView.subLineText.text = nextAlarm
|
||||
showSomething = true
|
||||
break@loop
|
||||
}
|
||||
}
|
||||
}
|
||||
Constants.GlanceProviderId.BATTERY_LEVEL_LOW -> {
|
||||
@ -976,14 +972,17 @@ class StandardWidget(val context: Context) {
|
||||
|
||||
// Custom Font
|
||||
if (Preferences.customFont == Constants.CUSTOM_FONT_GOOGLE_SANS) {
|
||||
val googleSans: Typeface = when (Preferences.customFontVariant) {
|
||||
"100" -> Typeface.createFromAsset(context.assets, "fonts/google_sans_thin.ttf")
|
||||
"200" -> Typeface.createFromAsset(context.assets, "fonts/google_sans_light.ttf")
|
||||
"500" -> Typeface.createFromAsset(context.assets, "fonts/google_sans_medium.ttf")
|
||||
"700" -> Typeface.createFromAsset(context.assets, "fonts/google_sans_bold.ttf")
|
||||
"800" -> Typeface.createFromAsset(context.assets, "fonts/google_sans_black.ttf")
|
||||
else -> Typeface.createFromAsset(context.assets, "fonts/google_sans_regular.ttf")
|
||||
}
|
||||
val googleSans: Typeface? = androidx.core.content.res.ResourcesCompat.getFont(
|
||||
context,
|
||||
when (Preferences.customFontVariant) {
|
||||
"100" -> R.font.google_sans_thin
|
||||
"200" -> R.font.google_sans_light
|
||||
"500" -> R.font.google_sans_medium
|
||||
"700" -> R.font.google_sans_bold
|
||||
"800" -> R.font.google_sans_black
|
||||
else -> R.font.google_sans_regular
|
||||
}
|
||||
)
|
||||
|
||||
listOf<TextView>(
|
||||
bindingView.date,
|
||||
|
Reference in New Issue
Block a user