Change UI
This commit is contained in:
parent
98db1380b7
commit
526a9ac6ac
17
.idea/navEditor.xml
generated
17
.idea/navEditor.xml
generated
@ -87,6 +87,18 @@
|
|||||||
</LayoutPositions>
|
</LayoutPositions>
|
||||||
</value>
|
</value>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry key="gesturesFragment">
|
||||||
|
<value>
|
||||||
|
<LayoutPositions>
|
||||||
|
<option name="myPosition">
|
||||||
|
<Point>
|
||||||
|
<option name="x" value="703" />
|
||||||
|
<option name="y" value="14" />
|
||||||
|
</Point>
|
||||||
|
</option>
|
||||||
|
</LayoutPositions>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
<entry key="glanceTabFragment">
|
<entry key="glanceTabFragment">
|
||||||
<value>
|
<value>
|
||||||
<LayoutPositions>
|
<LayoutPositions>
|
||||||
@ -130,6 +142,11 @@
|
|||||||
<LayoutPositions />
|
<LayoutPositions />
|
||||||
</value>
|
</value>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry key="action_tabSelectorFragment_to_typographyTabFragment">
|
||||||
|
<value>
|
||||||
|
<LayoutPositions />
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
<entry key="action_tabSelectorFragment_to_weatherTabFragment">
|
<entry key="action_tabSelectorFragment_to_weatherTabFragment">
|
||||||
<value>
|
<value>
|
||||||
<LayoutPositions />
|
<LayoutPositions />
|
||||||
|
@ -117,10 +117,9 @@ object Preferences : KotprefModel() {
|
|||||||
var showXiaomiWarning by booleanPref(default = true)
|
var showXiaomiWarning by booleanPref(default = true)
|
||||||
|
|
||||||
// Glance
|
// Glance
|
||||||
var showGlance by booleanPref(default = true)
|
|
||||||
var enabledGlanceProviderOrder by stringPref(default = "")
|
var enabledGlanceProviderOrder by stringPref(default = "")
|
||||||
var customNotes by stringPref(default = "")
|
var customNotes by stringPref(default = "")
|
||||||
var showNextAlarm by booleanPref(default = true)
|
var showNextAlarm by booleanPref(default = false)
|
||||||
var showBatteryCharging by booleanPref(default = false)
|
var showBatteryCharging by booleanPref(default = false)
|
||||||
var isBatteryLevelLow by booleanPref(default = false)
|
var isBatteryLevelLow by booleanPref(default = false)
|
||||||
var isCharging by booleanPref(default = false)
|
var isCharging by booleanPref(default = false)
|
||||||
|
@ -101,7 +101,7 @@ object GlanceProviderHelper {
|
|||||||
val eventRepository = EventRepository(context)
|
val eventRepository = EventRepository(context)
|
||||||
BatteryHelper.updateBatteryInfo(context)
|
BatteryHelper.updateBatteryInfo(context)
|
||||||
|
|
||||||
val showGlance = Preferences.showGlance && (eventRepository.getEventsCount() == 0 || !Preferences.showEvents || Preferences.showEventsAsGlanceProvider)
|
val showGlance = (eventRepository.getEventsCount() == 0 || !Preferences.showEvents || Preferences.showEventsAsGlanceProvider)
|
||||||
&& (
|
&& (
|
||||||
(Preferences.showNotifications && ActiveNotificationsHelper.showLastNotification()) ||
|
(Preferences.showNotifications && ActiveNotificationsHelper.showLastNotification()) ||
|
||||||
(Preferences.showNextAlarm && AlarmHelper.getNextAlarm(context) != "") ||
|
(Preferences.showNextAlarm && AlarmHelper.getNextAlarm(context) != "") ||
|
||||||
|
@ -76,7 +76,7 @@ class CustomFontActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
injector.clicked(R.id.text) {
|
injector.clicked(R.id.text) {
|
||||||
val dialog = BottomSheetMenu<String>(this, header = item)
|
val dialog = BottomSheetMenu<String>(this, header = item)
|
||||||
listOf("100", "200", "regular", "500", "700", "800").forEachIndexed { index, s ->
|
listOf("100", "200", "regular", "500", "700", "800").forEachIndexed { _, s ->
|
||||||
dialog.addItem(SettingsStringHelper.getVariantLabel(this, s), s)
|
dialog.addItem(SettingsStringHelper.getVariantLabel(this, s), s)
|
||||||
}
|
}
|
||||||
dialog.addOnSelectItemListener { value ->
|
dialog.addOnSelectItemListener { value ->
|
||||||
|
@ -184,14 +184,14 @@ class MainFragment : Fragment(), SharedPreferences.OnSharedPreferenceChangeList
|
|||||||
binding.widgetDetail.clockBottomMarginLarge.isVisible =
|
binding.widgetDetail.clockBottomMarginLarge.isVisible =
|
||||||
Preferences.showClock && Preferences.clockBottomMargin == Constants.ClockBottomMargin.LARGE.value
|
Preferences.showClock && Preferences.clockBottomMargin == Constants.ClockBottomMargin.LARGE.value
|
||||||
|
|
||||||
if ((Preferences.showClock && (binding.widgetDetail.time.alpha ?: 1f < 1f)) || (!Preferences.showClock && (binding.widgetDetail.time.alpha ?: 0f > 0f))) {
|
if ((Preferences.showClock && (binding.widgetDetail.time.alpha < 1f)) || (!Preferences.showClock && (binding.widgetDetail.time.alpha > 0f))) {
|
||||||
if (Preferences.showClock) {
|
if (Preferences.showClock) {
|
||||||
binding.widgetDetail.timeContainer.layoutParams = binding.widgetDetail.timeContainer.layoutParams.apply {
|
binding.widgetDetail.timeContainer.layoutParams = binding.widgetDetail.timeContainer.layoutParams.apply {
|
||||||
height = RelativeLayout.LayoutParams.WRAP_CONTENT
|
height = RelativeLayout.LayoutParams.WRAP_CONTENT
|
||||||
}
|
}
|
||||||
binding.widgetDetail.timeContainer.measure(0, 0)
|
binding.widgetDetail.timeContainer.measure(0, 0)
|
||||||
}
|
}
|
||||||
val initialHeight = binding.widgetDetail.timeContainer.measuredHeight ?: 0
|
val initialHeight = binding.widgetDetail.timeContainer.measuredHeight
|
||||||
ValueAnimator.ofFloat(
|
ValueAnimator.ofFloat(
|
||||||
if (Preferences.showClock) 0f else 1f,
|
if (Preferences.showClock) 0f else 1f,
|
||||||
if (Preferences.showClock) 1f else 0f
|
if (Preferences.showClock) 1f else 0f
|
||||||
|
@ -94,7 +94,7 @@ class SettingsFragment : Fragment() {
|
|||||||
viewModel.darkThemePreference.observe(viewLifecycleOwner, Observer {
|
viewModel.darkThemePreference.observe(viewLifecycleOwner, Observer {
|
||||||
AppCompatDelegate.setDefaultNightMode(it)
|
AppCompatDelegate.setDefaultNightMode(it)
|
||||||
maintainScrollPosition {
|
maintainScrollPosition {
|
||||||
binding.theme?.text = when (it) {
|
binding.theme.text = when (it) {
|
||||||
AppCompatDelegate.MODE_NIGHT_NO -> getString(R.string.settings_subtitle_dark_theme_light)
|
AppCompatDelegate.MODE_NIGHT_NO -> getString(R.string.settings_subtitle_dark_theme_light)
|
||||||
AppCompatDelegate.MODE_NIGHT_YES -> getString(R.string.settings_subtitle_dark_theme_dark)
|
AppCompatDelegate.MODE_NIGHT_YES -> getString(R.string.settings_subtitle_dark_theme_dark)
|
||||||
AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY -> getString(R.string.settings_subtitle_dark_theme_by_battery_saver)
|
AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY -> getString(R.string.settings_subtitle_dark_theme_by_battery_saver)
|
||||||
@ -105,7 +105,7 @@ class SettingsFragment : Fragment() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
viewModel.installedIntegrations.observe(viewLifecycleOwner, Observer {
|
viewModel.installedIntegrations.observe(viewLifecycleOwner, Observer {
|
||||||
binding.integrationsCountLabel?.text =
|
binding.integrationsCountLabel.text =
|
||||||
getString(R.string.label_count_installed_integrations).format(
|
getString(R.string.label_count_installed_integrations).format(
|
||||||
it)
|
it)
|
||||||
})
|
})
|
||||||
|
@ -72,7 +72,6 @@ class CalendarFragment : Fragment() {
|
|||||||
binding.showAllDayToggle.setCheckedImmediatelyNoEvent(Preferences.calendarAllDay)
|
binding.showAllDayToggle.setCheckedImmediatelyNoEvent(Preferences.calendarAllDay)
|
||||||
binding.showOnlyBusyEventsToggle.setCheckedImmediatelyNoEvent(Preferences.showOnlyBusyEvents)
|
binding.showOnlyBusyEventsToggle.setCheckedImmediatelyNoEvent(Preferences.showOnlyBusyEvents)
|
||||||
binding.showDiffTimeToggle.setCheckedImmediatelyNoEvent(Preferences.showDiffTime)
|
binding.showDiffTimeToggle.setCheckedImmediatelyNoEvent(Preferences.showDiffTime)
|
||||||
binding.showMultipleEventsToggle.setCheckedImmediatelyNoEvent(Preferences.showNextEvent)
|
|
||||||
|
|
||||||
setupListener()
|
setupListener()
|
||||||
|
|
||||||
@ -125,36 +124,6 @@ class CalendarFragment : Fragment() {
|
|||||||
updateCalendar()
|
updateCalendar()
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.showNextEvent.observe(viewLifecycleOwner) {
|
|
||||||
maintainScrollPosition {
|
|
||||||
binding.showMultipleEventsLabel.text =
|
|
||||||
if (it) getString(R.string.settings_visible) else getString(R.string.settings_not_visible)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
viewModel.calendarAppName.observe(viewLifecycleOwner) {
|
|
||||||
maintainScrollPosition {
|
|
||||||
binding.calendarAppLabel.text = when {
|
|
||||||
Preferences.calendarAppName != "" -> Preferences.calendarAppName
|
|
||||||
else -> {
|
|
||||||
if (IntentHelper.getCalendarIntent(requireContext()).isDefaultSet(requireContext())) {
|
|
||||||
getString(
|
|
||||||
R.string.default_calendar_app
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
getString(R.string.nothing)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
viewModel.openEventDetails.observe(viewLifecycleOwner) {
|
|
||||||
maintainScrollPosition {
|
|
||||||
binding.openEventDetailsLabel.text = if (it) getString(R.string.default_event_app) else getString(R.string.default_calendar_app)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupListener() {
|
private fun setupListener() {
|
||||||
@ -264,14 +233,6 @@ class CalendarFragment : Fragment() {
|
|||||||
updateCalendar()
|
updateCalendar()
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.actionShowMultipleEvents.setOnClickListener {
|
|
||||||
binding.showMultipleEventsToggle.isChecked = !binding.showMultipleEventsToggle.isChecked
|
|
||||||
}
|
|
||||||
|
|
||||||
binding.showMultipleEventsToggle.setOnCheckedChangeListener { _, isChecked ->
|
|
||||||
Preferences.showNextEvent = isChecked
|
|
||||||
}
|
|
||||||
|
|
||||||
binding.actionShowDiffTime.setOnClickListener {
|
binding.actionShowDiffTime.setOnClickListener {
|
||||||
binding.showDiffTimeToggle.isChecked = !binding.showDiffTimeToggle.isChecked
|
binding.showDiffTimeToggle.isChecked = !binding.showDiffTimeToggle.isChecked
|
||||||
}
|
}
|
||||||
@ -311,20 +272,6 @@ class CalendarFragment : Fragment() {
|
|||||||
Preferences.showUntil = value
|
Preferences.showUntil = value
|
||||||
}.show()
|
}.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.actionOpenEventDetails.setOnClickListener {
|
|
||||||
BottomSheetMenu<Boolean>(requireContext(), header = getString(R.string.settings_event_app_title)).setSelectedValue(Preferences.openEventDetails)
|
|
||||||
.addItem(getString(R.string.default_event_app), true)
|
|
||||||
.addItem(getString(R.string.default_calendar_app), false)
|
|
||||||
.addOnSelectItemListener { value ->
|
|
||||||
Preferences.openEventDetails = value
|
|
||||||
}
|
|
||||||
.show()
|
|
||||||
}
|
|
||||||
|
|
||||||
binding.actionCalendarApp.setOnClickListener {
|
|
||||||
startActivityForResult(Intent(requireContext(), ChooseApplicationActivity::class.java), RequestCode.CALENDAR_APP_REQUEST_CODE.code)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateCalendar() {
|
private fun updateCalendar() {
|
||||||
|
@ -18,7 +18,7 @@ import com.google.android.material.transition.MaterialSharedAxis
|
|||||||
import com.tommasoberlose.anotherwidget.R
|
import com.tommasoberlose.anotherwidget.R
|
||||||
import com.tommasoberlose.anotherwidget.components.BottomSheetColorPicker
|
import com.tommasoberlose.anotherwidget.components.BottomSheetColorPicker
|
||||||
import com.tommasoberlose.anotherwidget.components.BottomSheetMenu
|
import com.tommasoberlose.anotherwidget.components.BottomSheetMenu
|
||||||
import com.tommasoberlose.anotherwidget.databinding.FragmentClockBinding
|
import com.tommasoberlose.anotherwidget.databinding.FragmentTabClockBinding
|
||||||
import com.tommasoberlose.anotherwidget.global.Constants
|
import com.tommasoberlose.anotherwidget.global.Constants
|
||||||
import com.tommasoberlose.anotherwidget.global.Preferences
|
import com.tommasoberlose.anotherwidget.global.Preferences
|
||||||
import com.tommasoberlose.anotherwidget.global.RequestCode
|
import com.tommasoberlose.anotherwidget.global.RequestCode
|
||||||
@ -45,7 +45,7 @@ class ClockFragment : Fragment() {
|
|||||||
|
|
||||||
private lateinit var viewModel: MainViewModel
|
private lateinit var viewModel: MainViewModel
|
||||||
private lateinit var colors: IntArray
|
private lateinit var colors: IntArray
|
||||||
private lateinit var binding: FragmentClockBinding
|
private lateinit var binding: FragmentTabClockBinding
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
@ -59,7 +59,7 @@ class ClockFragment : Fragment() {
|
|||||||
): View {
|
): View {
|
||||||
|
|
||||||
viewModel = ViewModelProvider(activity as MainActivity).get(MainViewModel::class.java)
|
viewModel = ViewModelProvider(activity as MainActivity).get(MainViewModel::class.java)
|
||||||
binding = FragmentClockBinding.inflate(inflater)
|
binding = FragmentTabClockBinding.inflate(inflater)
|
||||||
|
|
||||||
subscribeUi(viewModel)
|
subscribeUi(viewModel)
|
||||||
|
|
||||||
@ -94,11 +94,6 @@ class ClockFragment : Fragment() {
|
|||||||
binding.is24Format = DateFormat.is24HourFormat(requireContext())
|
binding.is24Format = DateFormat.is24HourFormat(requireContext())
|
||||||
binding.isDarkModeEnabled = activity?.isDarkTheme() == true
|
binding.isDarkModeEnabled = activity?.isDarkTheme() == true
|
||||||
|
|
||||||
viewModel.showBigClockWarning.observe(viewLifecycleOwner) {
|
|
||||||
binding.largeClockWarning.isVisible = it
|
|
||||||
binding.smallClockWarning.isVisible = !it
|
|
||||||
}
|
|
||||||
|
|
||||||
viewModel.clockTextSize.observe(viewLifecycleOwner) {
|
viewModel.clockTextSize.observe(viewLifecycleOwner) {
|
||||||
maintainScrollPosition {
|
maintainScrollPosition {
|
||||||
binding.clockTextSizeLabel.text = String.format("%.0fsp", it)
|
binding.clockTextSizeLabel.text = String.format("%.0fsp", it)
|
||||||
@ -154,40 +149,9 @@ class ClockFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.clockBottomMargin.observe(viewLifecycleOwner) {
|
|
||||||
maintainScrollPosition {
|
|
||||||
binding.clockBottomMarginLabel.text = when (it) {
|
|
||||||
Constants.ClockBottomMargin.NONE.value -> getString(R.string.settings_clock_bottom_margin_subtitle_none)
|
|
||||||
Constants.ClockBottomMargin.SMALL.value -> getString(R.string.settings_clock_bottom_margin_subtitle_small)
|
|
||||||
Constants.ClockBottomMargin.LARGE.value -> getString(R.string.settings_clock_bottom_margin_subtitle_large)
|
|
||||||
else -> getString(R.string.settings_clock_bottom_margin_subtitle_medium)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
viewModel.clockAppName.observe(viewLifecycleOwner) {
|
|
||||||
maintainScrollPosition {
|
|
||||||
binding.clockAppLabel.text = when {
|
|
||||||
Preferences.clockAppName != "" -> Preferences.clockAppName
|
|
||||||
else -> {
|
|
||||||
if (IntentHelper.getClockIntent(requireContext()).isDefaultSet(requireContext())) {
|
|
||||||
getString(
|
|
||||||
R.string.default_clock_app
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
getString(R.string.nothing)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupListener() {
|
private fun setupListener() {
|
||||||
binding.actionHideLargeClockWarning.setOnClickListener {
|
|
||||||
Preferences.showBigClockWarning = false
|
|
||||||
}
|
|
||||||
|
|
||||||
binding.actionClockTextSize.setOnClickListener {
|
binding.actionClockTextSize.setOnClickListener {
|
||||||
val dialog = BottomSheetMenu<Float>(
|
val dialog = BottomSheetMenu<Float>(
|
||||||
@ -236,39 +200,6 @@ class ClockFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
).show()
|
).show()
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.actionClockBottomMarginSize.setOnClickListener {
|
|
||||||
BottomSheetMenu<Int>(
|
|
||||||
requireContext(),
|
|
||||||
header = getString(R.string.settings_clock_bottom_margin_title)
|
|
||||||
).setSelectedValue(Preferences.clockBottomMargin)
|
|
||||||
.addItem(
|
|
||||||
getString(R.string.settings_clock_bottom_margin_subtitle_none),
|
|
||||||
Constants.ClockBottomMargin.NONE.value
|
|
||||||
)
|
|
||||||
.addItem(
|
|
||||||
getString(R.string.settings_clock_bottom_margin_subtitle_small),
|
|
||||||
Constants.ClockBottomMargin.SMALL.value
|
|
||||||
)
|
|
||||||
.addItem(
|
|
||||||
getString(R.string.settings_clock_bottom_margin_subtitle_medium),
|
|
||||||
Constants.ClockBottomMargin.MEDIUM.value
|
|
||||||
)
|
|
||||||
.addItem(
|
|
||||||
getString(R.string.settings_clock_bottom_margin_subtitle_large),
|
|
||||||
Constants.ClockBottomMargin.LARGE.value
|
|
||||||
)
|
|
||||||
.addOnSelectItemListener { value ->
|
|
||||||
Preferences.clockBottomMargin = value
|
|
||||||
}.show()
|
|
||||||
}
|
|
||||||
|
|
||||||
binding.actionClockApp.setOnClickListener {
|
|
||||||
startActivityForResult(
|
|
||||||
Intent(requireContext(), ChooseApplicationActivity::class.java),
|
|
||||||
RequestCode.CLOCK_APP_REQUEST_CODE.code
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||||
|
@ -0,0 +1,192 @@
|
|||||||
|
package com.tommasoberlose.anotherwidget.ui.fragments.tabs
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
|
import android.content.Intent
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import androidx.databinding.DataBindingUtil
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import androidx.lifecycle.Observer
|
||||||
|
import androidx.lifecycle.ViewModelProvider
|
||||||
|
import androidx.lifecycle.lifecycleScope
|
||||||
|
import com.chibatching.kotpref.blockingBulk
|
||||||
|
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.databinding.FragmentTabGesturesBinding
|
||||||
|
import com.tommasoberlose.anotherwidget.databinding.FragmentTabLayoutBinding
|
||||||
|
import com.tommasoberlose.anotherwidget.global.Constants
|
||||||
|
import com.tommasoberlose.anotherwidget.global.Preferences
|
||||||
|
import com.tommasoberlose.anotherwidget.global.RequestCode
|
||||||
|
import com.tommasoberlose.anotherwidget.helpers.ColorHelper
|
||||||
|
import com.tommasoberlose.anotherwidget.helpers.ColorHelper.toHexValue
|
||||||
|
import com.tommasoberlose.anotherwidget.helpers.ColorHelper.toIntValue
|
||||||
|
import com.tommasoberlose.anotherwidget.helpers.DateHelper
|
||||||
|
import com.tommasoberlose.anotherwidget.helpers.IntentHelper
|
||||||
|
import com.tommasoberlose.anotherwidget.ui.activities.tabs.CustomDateActivity
|
||||||
|
import com.tommasoberlose.anotherwidget.ui.activities.MainActivity
|
||||||
|
import com.tommasoberlose.anotherwidget.ui.activities.tabs.ChooseApplicationActivity
|
||||||
|
import com.tommasoberlose.anotherwidget.ui.viewmodels.MainViewModel
|
||||||
|
import com.tommasoberlose.anotherwidget.utils.isDarkTheme
|
||||||
|
import com.tommasoberlose.anotherwidget.utils.isDefaultSet
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.delay
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
class GesturesFragment : Fragment() {
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
fun newInstance() = GesturesFragment()
|
||||||
|
}
|
||||||
|
|
||||||
|
private lateinit var viewModel: MainViewModel
|
||||||
|
private lateinit var colors: IntArray
|
||||||
|
private lateinit var binding: FragmentTabGesturesBinding
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
enterTransition = MaterialSharedAxis(MaterialSharedAxis.X, true)
|
||||||
|
returnTransition = MaterialSharedAxis(MaterialSharedAxis.X, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onCreateView(
|
||||||
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
|
savedInstanceState: Bundle?
|
||||||
|
): View {
|
||||||
|
|
||||||
|
viewModel = ViewModelProvider(activity as MainActivity).get(MainViewModel::class.java)
|
||||||
|
binding = FragmentTabGesturesBinding.inflate(inflater)
|
||||||
|
|
||||||
|
subscribeUi(viewModel)
|
||||||
|
|
||||||
|
binding.lifecycleOwner = this
|
||||||
|
binding.viewModel = viewModel
|
||||||
|
|
||||||
|
return binding.root
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||||
|
super.onActivityCreated(savedInstanceState)
|
||||||
|
|
||||||
|
binding.showMultipleEventsToggle.setCheckedImmediatelyNoEvent(Preferences.showNextEvent)
|
||||||
|
setupListener()
|
||||||
|
|
||||||
|
binding.scrollView.viewTreeObserver?.addOnScrollChangedListener {
|
||||||
|
viewModel.fragmentScrollY.value = binding.scrollView.scrollY
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@SuppressLint("DefaultLocale")
|
||||||
|
private fun subscribeUi(
|
||||||
|
viewModel: MainViewModel
|
||||||
|
) {
|
||||||
|
|
||||||
|
viewModel.showNextEvent.observe(viewLifecycleOwner) {
|
||||||
|
maintainScrollPosition {
|
||||||
|
binding.showMultipleEventsLabel.text =
|
||||||
|
if (it) getString(R.string.settings_visible) else getString(R.string.settings_not_visible)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
viewModel.calendarAppName.observe(viewLifecycleOwner) {
|
||||||
|
maintainScrollPosition {
|
||||||
|
binding.calendarAppLabel.text = when {
|
||||||
|
Preferences.calendarAppName != "" -> Preferences.calendarAppName
|
||||||
|
else -> {
|
||||||
|
if (IntentHelper.getCalendarIntent(requireContext()).isDefaultSet(requireContext())) {
|
||||||
|
getString(
|
||||||
|
R.string.default_calendar_app
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
getString(R.string.nothing)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
viewModel.openEventDetails.observe(viewLifecycleOwner) {
|
||||||
|
maintainScrollPosition {
|
||||||
|
binding.openEventDetailsLabel.text = if (it) getString(R.string.default_event_app) else getString(R.string.default_calendar_app)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
viewModel.clockAppName.observe(viewLifecycleOwner) {
|
||||||
|
maintainScrollPosition {
|
||||||
|
binding.clockAppLabel.text = when {
|
||||||
|
Preferences.clockAppName != "" -> Preferences.clockAppName
|
||||||
|
else -> {
|
||||||
|
if (IntentHelper.getClockIntent(requireContext()).isDefaultSet(requireContext())) {
|
||||||
|
getString(
|
||||||
|
R.string.default_clock_app
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
getString(R.string.nothing)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
viewModel.weatherAppName.observe(viewLifecycleOwner) {
|
||||||
|
maintainScrollPosition {
|
||||||
|
binding.weatherAppLabel.text =
|
||||||
|
if (it != "") it else getString(R.string.default_weather_app)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setupListener() {
|
||||||
|
|
||||||
|
binding.actionShowMultipleEvents.setOnClickListener {
|
||||||
|
binding.showMultipleEventsToggle.isChecked = !binding.showMultipleEventsToggle.isChecked
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.showMultipleEventsToggle.setOnCheckedChangeListener { _, isChecked ->
|
||||||
|
Preferences.showNextEvent = isChecked
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.actionOpenEventDetails.setOnClickListener {
|
||||||
|
BottomSheetMenu<Boolean>(requireContext(), header = getString(R.string.settings_event_app_title)).setSelectedValue(Preferences.openEventDetails)
|
||||||
|
.addItem(getString(R.string.default_event_app), true)
|
||||||
|
.addItem(getString(R.string.default_calendar_app), false)
|
||||||
|
.addOnSelectItemListener { value ->
|
||||||
|
Preferences.openEventDetails = value
|
||||||
|
}
|
||||||
|
.show()
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.actionCalendarApp.setOnClickListener {
|
||||||
|
startActivityForResult(Intent(requireContext(), ChooseApplicationActivity::class.java), RequestCode.CALENDAR_APP_REQUEST_CODE.code)
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.actionClockApp.setOnClickListener {
|
||||||
|
startActivityForResult(
|
||||||
|
Intent(requireContext(), ChooseApplicationActivity::class.java),
|
||||||
|
RequestCode.CLOCK_APP_REQUEST_CODE.code
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.actionWeatherApp.setOnClickListener {
|
||||||
|
startActivityForResult(
|
||||||
|
Intent(requireContext(), ChooseApplicationActivity::class.java),
|
||||||
|
RequestCode.WEATHER_APP_REQUEST_CODE.code
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun maintainScrollPosition(callback: () -> Unit) {
|
||||||
|
binding.scrollView.isScrollable = false
|
||||||
|
callback.invoke()
|
||||||
|
lifecycleScope.launch {
|
||||||
|
delay(200)
|
||||||
|
binding.scrollView.isScrollable = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -104,20 +104,18 @@ class GlanceTabFragment : Fragment() {
|
|||||||
it.setImageDrawable(ContextCompat.getDrawable(requireContext(), item.icon))
|
it.setImageDrawable(ContextCompat.getDrawable(requireContext(), item.icon))
|
||||||
}
|
}
|
||||||
.clicked(R.id.item) {
|
.clicked(R.id.item) {
|
||||||
if (Preferences.showGlance) {
|
if (provider == Constants.GlanceProviderId.CUSTOM_INFO) {
|
||||||
if (provider == Constants.GlanceProviderId.CUSTOM_INFO) {
|
CustomNotesDialog(requireContext()){
|
||||||
CustomNotesDialog(requireContext()){
|
adapter.notifyItemRangeChanged(0, adapter.data.size)
|
||||||
adapter.notifyItemRangeChanged(0, adapter.data.size)
|
}.show()
|
||||||
}.show()
|
} else {
|
||||||
} else {
|
dialog = GlanceSettingsDialog(requireActivity(), provider) {
|
||||||
dialog = GlanceSettingsDialog(requireActivity(), provider) {
|
adapter.notifyItemRangeChanged(0, adapter.data.size)
|
||||||
adapter.notifyItemRangeChanged(0, adapter.data.size)
|
|
||||||
}
|
|
||||||
dialog?.setOnDismissListener {
|
|
||||||
dialog = null
|
|
||||||
}
|
|
||||||
dialog?.show()
|
|
||||||
}
|
}
|
||||||
|
dialog?.setOnDismissListener {
|
||||||
|
dialog = null
|
||||||
|
}
|
||||||
|
dialog?.show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var isVisible = false
|
var isVisible = false
|
||||||
@ -356,7 +354,6 @@ class GlanceTabFragment : Fragment() {
|
|||||||
private fun subscribeUi(
|
private fun subscribeUi(
|
||||||
viewModel: MainViewModel,
|
viewModel: MainViewModel,
|
||||||
) {
|
) {
|
||||||
binding.isGlanceVisible = Preferences.showGlance
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupListener() {
|
private fun setupListener() {
|
||||||
|
@ -102,6 +102,17 @@ class LayoutFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
viewModel.clockBottomMargin.observe(viewLifecycleOwner) {
|
||||||
|
maintainScrollPosition {
|
||||||
|
binding.clockBottomMarginLabel.text = when (it) {
|
||||||
|
Constants.ClockBottomMargin.NONE.value -> getString(R.string.settings_clock_bottom_margin_subtitle_none)
|
||||||
|
Constants.ClockBottomMargin.SMALL.value -> getString(R.string.settings_clock_bottom_margin_subtitle_small)
|
||||||
|
Constants.ClockBottomMargin.LARGE.value -> getString(R.string.settings_clock_bottom_margin_subtitle_large)
|
||||||
|
else -> getString(R.string.settings_clock_bottom_margin_subtitle_medium)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
viewModel.backgroundCardColor.observe(viewLifecycleOwner) {
|
viewModel.backgroundCardColor.observe(viewLifecycleOwner) {
|
||||||
maintainScrollPosition {
|
maintainScrollPosition {
|
||||||
if (Preferences.backgroundCardAlpha == "00") {
|
if (Preferences.backgroundCardAlpha == "00") {
|
||||||
@ -146,12 +157,6 @@ class LayoutFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.dateFormat.observe(viewLifecycleOwner) {
|
|
||||||
maintainScrollPosition {
|
|
||||||
binding.dateFormatLabel.text = DateHelper.getDateText(requireContext(), Calendar.getInstance())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
viewModel.showDividers.observe(viewLifecycleOwner) {
|
viewModel.showDividers.observe(viewLifecycleOwner) {
|
||||||
maintainScrollPosition {
|
maintainScrollPosition {
|
||||||
binding.showDividersLabel.text =
|
binding.showDividersLabel.text =
|
||||||
@ -188,33 +193,30 @@ class LayoutFragment : Fragment() {
|
|||||||
}.show()
|
}.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.actionDateFormat.setOnClickListener {
|
binding.actionClockBottomMarginSize.setOnClickListener {
|
||||||
val now = Calendar.getInstance()
|
BottomSheetMenu<Int>(
|
||||||
val dialog = BottomSheetMenu<String>(requireContext(), header = getString(R.string.settings_date_format_title)).setSelectedValue(Preferences.dateFormat)
|
requireContext(),
|
||||||
|
header = getString(R.string.settings_clock_bottom_margin_title)
|
||||||
dialog.addItem(DateHelper.getDefaultDateText(requireContext(), now), "")
|
).setSelectedValue(Preferences.clockBottomMargin)
|
||||||
if (Preferences.dateFormat != "") {
|
.addItem(
|
||||||
dialog.addItem(DateHelper.getDateText(requireContext(), now), Preferences.dateFormat)
|
getString(R.string.settings_clock_bottom_margin_subtitle_none),
|
||||||
}
|
Constants.ClockBottomMargin.NONE.value
|
||||||
dialog.addItem(getString(R.string.custom_date_format), "-")
|
)
|
||||||
|
.addItem(
|
||||||
dialog.addOnSelectItemListener { value ->
|
getString(R.string.settings_clock_bottom_margin_subtitle_small),
|
||||||
when (value) {
|
Constants.ClockBottomMargin.SMALL.value
|
||||||
"-" -> {
|
)
|
||||||
startActivity(Intent(requireContext(), CustomDateActivity::class.java))
|
.addItem(
|
||||||
}
|
getString(R.string.settings_clock_bottom_margin_subtitle_medium),
|
||||||
"" -> {
|
Constants.ClockBottomMargin.MEDIUM.value
|
||||||
Preferences.blockingBulk {
|
)
|
||||||
isDateCapitalize = false
|
.addItem(
|
||||||
isDateUppercase = false
|
getString(R.string.settings_clock_bottom_margin_subtitle_large),
|
||||||
}
|
Constants.ClockBottomMargin.LARGE.value
|
||||||
Preferences.dateFormat = value
|
)
|
||||||
}
|
.addOnSelectItemListener { value ->
|
||||||
else -> {
|
Preferences.clockBottomMargin = value
|
||||||
Preferences.dateFormat = value
|
}.show()
|
||||||
}
|
|
||||||
}
|
|
||||||
}.show()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.actionBackgroundColor.setOnClickListener {
|
binding.actionBackgroundColor.setOnClickListener {
|
||||||
|
@ -77,7 +77,6 @@ class PreferencesFragment : Fragment() {
|
|||||||
binding.isCalendarEnabled = Preferences.showEvents
|
binding.isCalendarEnabled = Preferences.showEvents
|
||||||
binding.isWeatherVisible = Preferences.showWeather
|
binding.isWeatherVisible = Preferences.showWeather
|
||||||
binding.isClockVisible = Preferences.showClock
|
binding.isClockVisible = Preferences.showClock
|
||||||
binding.isGlanceVisible = Preferences.showGlance
|
|
||||||
|
|
||||||
viewModel.showEvents.observe(viewLifecycleOwner) {
|
viewModel.showEvents.observe(viewLifecycleOwner) {
|
||||||
maintainScrollPosition {
|
maintainScrollPosition {
|
||||||
@ -104,13 +103,6 @@ class PreferencesFragment : Fragment() {
|
|||||||
binding.isClockVisible = it
|
binding.isClockVisible = it
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.showGlance.observe(viewLifecycleOwner) {
|
|
||||||
maintainScrollPosition {
|
|
||||||
binding.isGlanceVisible = it
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupListener() {
|
private fun setupListener() {
|
||||||
@ -149,12 +141,13 @@ class PreferencesFragment : Fragment() {
|
|||||||
binding.showClockSwitch.setOnCheckedChangeListener { _, enabled: Boolean ->
|
binding.showClockSwitch.setOnCheckedChangeListener { _, enabled: Boolean ->
|
||||||
Preferences.showClock = enabled
|
Preferences.showClock = enabled
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.actionShowGlance.setOnClickListener {
|
binding.actionShowGlance.setOnClickListener {
|
||||||
Navigation.findNavController(it).navigate(R.id.action_tabSelectorFragment_to_glanceTabFragment)
|
Navigation.findNavController(it).navigate(R.id.action_tabSelectorFragment_to_glanceTabFragment)
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.showGlanceSwitch.setOnCheckedChangeListener { _, enabled: Boolean ->
|
binding.actionTabDefaultApp.setOnClickListener {
|
||||||
Preferences.showGlance = enabled
|
Navigation.findNavController(it).navigate(R.id.action_tabSelectorFragment_to_gesturesFragment)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ import androidx.databinding.DataBindingUtil
|
|||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
|
import com.chibatching.kotpref.blockingBulk
|
||||||
import com.chibatching.kotpref.bulk
|
import com.chibatching.kotpref.bulk
|
||||||
import com.google.android.material.transition.MaterialSharedAxis
|
import com.google.android.material.transition.MaterialSharedAxis
|
||||||
import com.tommasoberlose.anotherwidget.R
|
import com.tommasoberlose.anotherwidget.R
|
||||||
@ -22,9 +23,11 @@ import com.tommasoberlose.anotherwidget.global.RequestCode
|
|||||||
import com.tommasoberlose.anotherwidget.helpers.ColorHelper
|
import com.tommasoberlose.anotherwidget.helpers.ColorHelper
|
||||||
import com.tommasoberlose.anotherwidget.helpers.ColorHelper.toHexValue
|
import com.tommasoberlose.anotherwidget.helpers.ColorHelper.toHexValue
|
||||||
import com.tommasoberlose.anotherwidget.helpers.ColorHelper.toIntValue
|
import com.tommasoberlose.anotherwidget.helpers.ColorHelper.toIntValue
|
||||||
|
import com.tommasoberlose.anotherwidget.helpers.DateHelper
|
||||||
import com.tommasoberlose.anotherwidget.helpers.SettingsStringHelper
|
import com.tommasoberlose.anotherwidget.helpers.SettingsStringHelper
|
||||||
import com.tommasoberlose.anotherwidget.ui.activities.tabs.CustomFontActivity
|
import com.tommasoberlose.anotherwidget.ui.activities.tabs.CustomFontActivity
|
||||||
import com.tommasoberlose.anotherwidget.ui.activities.MainActivity
|
import com.tommasoberlose.anotherwidget.ui.activities.MainActivity
|
||||||
|
import com.tommasoberlose.anotherwidget.ui.activities.tabs.CustomDateActivity
|
||||||
import com.tommasoberlose.anotherwidget.ui.viewmodels.MainViewModel
|
import com.tommasoberlose.anotherwidget.ui.viewmodels.MainViewModel
|
||||||
import com.tommasoberlose.anotherwidget.ui.widgets.MainWidget
|
import com.tommasoberlose.anotherwidget.ui.widgets.MainWidget
|
||||||
import com.tommasoberlose.anotherwidget.utils.isDarkTheme
|
import com.tommasoberlose.anotherwidget.utils.isDarkTheme
|
||||||
@ -32,6 +35,7 @@ import kotlinx.coroutines.Dispatchers
|
|||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class TypographyFragment : Fragment() {
|
class TypographyFragment : Fragment() {
|
||||||
|
|
||||||
@ -234,6 +238,12 @@ class TypographyFragment : Fragment() {
|
|||||||
MainWidget.updateWidget(requireContext())
|
MainWidget.updateWidget(requireContext())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
viewModel.dateFormat.observe(viewLifecycleOwner) {
|
||||||
|
maintainScrollPosition {
|
||||||
|
binding.dateFormatLabel.text = DateHelper.getDateText(requireContext(), Calendar.getInstance())
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupListener() {
|
private fun setupListener() {
|
||||||
@ -354,6 +364,35 @@ class TypographyFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
}.show()
|
}.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
binding.actionDateFormat.setOnClickListener {
|
||||||
|
val now = Calendar.getInstance()
|
||||||
|
val dialog = BottomSheetMenu<String>(requireContext(), header = getString(R.string.settings_date_format_title)).setSelectedValue(Preferences.dateFormat)
|
||||||
|
|
||||||
|
dialog.addItem(DateHelper.getDefaultDateText(requireContext(), now), "")
|
||||||
|
if (Preferences.dateFormat != "") {
|
||||||
|
dialog.addItem(DateHelper.getDateText(requireContext(), now), Preferences.dateFormat)
|
||||||
|
}
|
||||||
|
dialog.addItem(getString(R.string.custom_date_format), "-")
|
||||||
|
|
||||||
|
dialog.addOnSelectItemListener { value ->
|
||||||
|
when (value) {
|
||||||
|
"-" -> {
|
||||||
|
startActivity(Intent(requireContext(), CustomDateActivity::class.java))
|
||||||
|
}
|
||||||
|
"" -> {
|
||||||
|
Preferences.blockingBulk {
|
||||||
|
isDateCapitalize = false
|
||||||
|
isDateUppercase = false
|
||||||
|
}
|
||||||
|
Preferences.dateFormat = value
|
||||||
|
}
|
||||||
|
else -> {
|
||||||
|
Preferences.dateFormat = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.show()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun maintainScrollPosition(callback: () -> Unit) {
|
private fun maintainScrollPosition(callback: () -> Unit) {
|
||||||
|
@ -132,13 +132,6 @@ class WeatherFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
checkLocationPermission()
|
checkLocationPermission()
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.weatherAppName.observe(viewLifecycleOwner) {
|
|
||||||
maintainScrollPosition {
|
|
||||||
binding.weatherAppLabel.text =
|
|
||||||
if (it != "") it else getString(R.string.default_weather_app)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun checkLocationPermission() {
|
private fun checkLocationPermission() {
|
||||||
@ -220,13 +213,6 @@ class WeatherFragment : Fragment() {
|
|||||||
binding.actionWeatherIconPack.setOnClickListener {
|
binding.actionWeatherIconPack.setOnClickListener {
|
||||||
IconPackSelector(requireContext(), header = getString(R.string.settings_weather_icon_pack_title)).show()
|
IconPackSelector(requireContext(), header = getString(R.string.settings_weather_icon_pack_title)).show()
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.actionWeatherApp.setOnClickListener {
|
|
||||||
startActivityForResult(
|
|
||||||
Intent(requireContext(), ChooseApplicationActivity::class.java),
|
|
||||||
RequestCode.WEATHER_APP_REQUEST_CODE.code
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||||
|
@ -75,7 +75,6 @@ class MainViewModel : ViewModel() {
|
|||||||
val weatherProviderLocationError = Preferences.asLiveData(Preferences::weatherProviderLocationError)
|
val weatherProviderLocationError = Preferences.asLiveData(Preferences::weatherProviderLocationError)
|
||||||
|
|
||||||
// Glance
|
// Glance
|
||||||
val showGlance = Preferences.asLiveData(Preferences::showGlance)
|
|
||||||
val showMusic = Preferences.asLiveData(Preferences::showMusic)
|
val showMusic = Preferences.asLiveData(Preferences::showMusic)
|
||||||
val showNextAlarm = Preferences.asLiveData(Preferences::showNextAlarm)
|
val showNextAlarm = Preferences.asLiveData(Preferences::showNextAlarm)
|
||||||
val showBatteryCharging = Preferences.asLiveData(Preferences::showBatteryCharging)
|
val showBatteryCharging = Preferences.asLiveData(Preferences::showBatteryCharging)
|
||||||
|
@ -14,9 +14,6 @@
|
|||||||
<variable
|
<variable
|
||||||
name="isClockVisible"
|
name="isClockVisible"
|
||||||
type="Boolean" />
|
type="Boolean" />
|
||||||
<variable
|
|
||||||
name="isGlanceVisible"
|
|
||||||
type="Boolean" />
|
|
||||||
<import type="android.view.View" />
|
<import type="android.view.View" />
|
||||||
</data>
|
</data>
|
||||||
<com.tommasoberlose.anotherwidget.components.FixedFocusScrollView
|
<com.tommasoberlose.anotherwidget.components.FixedFocusScrollView
|
||||||
@ -358,26 +355,7 @@
|
|||||||
android:text="Change glace info"
|
android:text="Change glace info"
|
||||||
style="@style/AnotherWidget.Settings.Subtitle"/>
|
style="@style/AnotherWidget.Settings.Subtitle"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="1dp"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:background="@color/cardBorder"
|
|
||||||
android:layout_marginTop="4dp"
|
|
||||||
android:layout_marginBottom="4dp"
|
|
||||||
android:alpha="0.6" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<com.kyleduo.switchbutton.SwitchButton
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginEnd="24dp"
|
|
||||||
android:layout_marginStart="16dp"
|
|
||||||
app:kswThumbWidth="16sp"
|
|
||||||
app:kswThumbHeight="16sp"
|
|
||||||
app:kswBackRadius="16dp"
|
|
||||||
app:kswTintColor="@color/colorAccent"
|
|
||||||
android:checked="@{isGlanceVisible}"
|
|
||||||
android:id="@+id/show_glance_switch"
|
|
||||||
android:buttonTint="@color/colorAccent" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -376,138 +376,6 @@
|
|||||||
style="@style/AnotherWidget.Settings.Subtitle"/>
|
style="@style/AnotherWidget.Settings.Subtitle"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/actions_header"
|
|
||||||
android:paddingTop="16dp"
|
|
||||||
android:paddingLeft="20dp"
|
|
||||||
android:paddingRight="20dp"
|
|
||||||
android:textAppearance="@style/AnotherWidget.Settings.Header" />
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingTop="12dp"
|
|
||||||
android:paddingBottom="12dp"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp"
|
|
||||||
android:clickable="true"
|
|
||||||
android:focusable="true"
|
|
||||||
android:background="?android:attr/selectableItemBackground"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:id="@+id/action_show_multiple_events"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="48dp"
|
|
||||||
android:layout_height="48dp"
|
|
||||||
android:padding="12dp"
|
|
||||||
android:src="@drawable/round_code_24"
|
|
||||||
app:tint="@color/colorPrimaryText"/>
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp"
|
|
||||||
android:orientation="vertical">
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="@style/AnotherWidget.Settings.Title"
|
|
||||||
android:text="@string/settings_show_multiple_events_title"/>
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/show_multiple_events_label"
|
|
||||||
style="@style/AnotherWidget.Settings.Subtitle"/>
|
|
||||||
</LinearLayout>
|
|
||||||
<com.kyleduo.switchbutton.SwitchButton
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
app:kswThumbWidth="16sp"
|
|
||||||
app:kswThumbHeight="16sp"
|
|
||||||
app:kswBackRadius="16dp"
|
|
||||||
app:kswTintColor="@color/colorAccent"
|
|
||||||
android:layout_marginEnd="16dp"
|
|
||||||
android:id="@+id/show_multiple_events_toggle"
|
|
||||||
android:buttonTint="@color/colorAccent" />
|
|
||||||
</LinearLayout>
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingTop="12dp"
|
|
||||||
android:paddingBottom="12dp"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp"
|
|
||||||
android:clickable="true"
|
|
||||||
android:focusable="true"
|
|
||||||
android:background="?android:attr/selectableItemBackground"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:id="@+id/action_open_event_details"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="48dp"
|
|
||||||
android:layout_height="48dp"
|
|
||||||
android:padding="12dp"
|
|
||||||
android:src="@drawable/round_event_note_24"
|
|
||||||
app:tint="@color/colorPrimaryText" />
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp"
|
|
||||||
android:orientation="vertical">
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="@style/AnotherWidget.Settings.Title"
|
|
||||||
android:text="@string/settings_event_app_title"/>
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/open_event_details_label"
|
|
||||||
style="@style/AnotherWidget.Settings.Subtitle"/>
|
|
||||||
</LinearLayout>
|
|
||||||
</LinearLayout>
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingTop="12dp"
|
|
||||||
android:paddingBottom="12dp"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp"
|
|
||||||
android:clickable="true"
|
|
||||||
android:focusable="true"
|
|
||||||
android:background="?android:attr/selectableItemBackground"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:id="@+id/action_calendar_app"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="48dp"
|
|
||||||
android:layout_height="48dp"
|
|
||||||
android:padding="12dp"
|
|
||||||
android:src="@drawable/round_add_to_home_screen_24"
|
|
||||||
app:tint="@color/colorPrimaryText"/>
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp"
|
|
||||||
android:orientation="vertical">
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="@style/AnotherWidget.Settings.Title"
|
|
||||||
android:text="@string/settings_calendar_app_title"/>
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/calendar_app_label"
|
|
||||||
style="@style/AnotherWidget.Settings.Subtitle"/>
|
|
||||||
</LinearLayout>
|
|
||||||
</LinearLayout>
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</com.tommasoberlose.anotherwidget.components.FixedFocusScrollView>
|
</com.tommasoberlose.anotherwidget.components.FixedFocusScrollView>
|
||||||
|
@ -28,45 +28,6 @@
|
|||||||
android:paddingBottom="8dp"
|
android:paddingBottom="8dp"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
<com.google.android.material.card.MaterialCardView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
app:cardElevation="0dp"
|
|
||||||
app:cardCornerRadius="9dp"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:layout_marginBottom="8dp"
|
|
||||||
android:layout_marginLeft="16dp"
|
|
||||||
android:layout_marginRight="16dp"
|
|
||||||
android:id="@+id/large_clock_warning"
|
|
||||||
android:backgroundTint="@color/disabledButtonBackground"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical">
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingTop="16dp"
|
|
||||||
android:paddingLeft="16dp"
|
|
||||||
android:paddingRight="16dp"
|
|
||||||
android:duplicateParentState="true"
|
|
||||||
android:id="@+id/label"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:text="@string/clock_warning"
|
|
||||||
android:textColor="@color/colorPrimaryText"
|
|
||||||
android:letterSpacing="0"
|
|
||||||
android:textAppearance="@style/AnotherWidget.Settings.Title"
|
|
||||||
app:textAllCaps="false" />
|
|
||||||
<com.google.android.material.button.MaterialButton
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="@style/Widget.MaterialComponents.Button.TextButton"
|
|
||||||
android:text="@android:string/ok"
|
|
||||||
android:id="@+id/action_hide_large_clock_warning"
|
|
||||||
android:textColor="@color/colorPrimaryText"
|
|
||||||
android:layout_gravity="end" />
|
|
||||||
</LinearLayout>
|
|
||||||
</com.google.android.material.card.MaterialCardView>
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@ -235,88 +196,6 @@
|
|||||||
android:id="@+id/ampm_indicator_toggle"
|
android:id="@+id/ampm_indicator_toggle"
|
||||||
android:buttonTint="@color/colorAccent" />
|
android:buttonTint="@color/colorAccent" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingTop="12dp"
|
|
||||||
android:paddingBottom="12dp"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp"
|
|
||||||
android:clickable="true"
|
|
||||||
android:focusable="true"
|
|
||||||
android:background="?android:attr/selectableItemBackground"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:id="@+id/action_clock_bottom_margin_size"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="48dp"
|
|
||||||
android:layout_height="48dp"
|
|
||||||
android:padding="12dp"
|
|
||||||
android:src="@drawable/round_format_line_spacing"
|
|
||||||
app:tint="@color/colorPrimaryText"/>
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp"
|
|
||||||
android:orientation="vertical">
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="@style/AnotherWidget.Settings.Title"
|
|
||||||
android:text="@string/settings_clock_bottom_margin_title"/>
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/clock_bottom_margin_label"
|
|
||||||
style="@style/AnotherWidget.Settings.Subtitle"/>
|
|
||||||
</LinearLayout>
|
|
||||||
</LinearLayout>
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/actions_header"
|
|
||||||
android:paddingTop="16dp"
|
|
||||||
android:paddingStart="20dp"
|
|
||||||
android:paddingEnd="20dp"
|
|
||||||
android:textAppearance="@style/AnotherWidget.Settings.Header" />
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingTop="12dp"
|
|
||||||
android:paddingBottom="12dp"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp"
|
|
||||||
android:clickable="true"
|
|
||||||
android:focusable="true"
|
|
||||||
android:background="?android:attr/selectableItemBackground"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:id="@+id/action_clock_app"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="48dp"
|
|
||||||
android:layout_height="48dp"
|
|
||||||
android:padding="12dp"
|
|
||||||
android:src="@drawable/round_add_to_home_screen_24"
|
|
||||||
app:tint="@color/colorPrimaryText"/>
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp"
|
|
||||||
android:orientation="vertical">
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="@style/AnotherWidget.Settings.Title"
|
|
||||||
android:text="@string/settings_clock_app_title"/>
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/clock_app_label"
|
|
||||||
style="@style/AnotherWidget.Settings.Subtitle"/>
|
|
||||||
</LinearLayout>
|
|
||||||
</LinearLayout>
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
@ -1,6 +1,243 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
android:layout_height="match_parent">
|
<data>
|
||||||
|
<variable
|
||||||
|
name="viewModel"
|
||||||
|
type="com.tommasoberlose.anotherwidget.ui.viewmodels.MainViewModel" />
|
||||||
|
</data>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
<com.tommasoberlose.anotherwidget.components.FixedFocusScrollView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:id="@+id/scrollView"
|
||||||
|
android:scrollbarThumbVertical="@color/colorPrimary">
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="8dp"
|
||||||
|
android:paddingBottom="8dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/calendar_settings"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/actions_header"
|
||||||
|
android:paddingTop="16dp"
|
||||||
|
android:paddingLeft="20dp"
|
||||||
|
android:paddingRight="20dp"
|
||||||
|
android:textAppearance="@style/AnotherWidget.Settings.Header" />
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:paddingBottom="12dp"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:background="?android:attr/selectableItemBackground"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:id="@+id/action_show_multiple_events"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="48dp"
|
||||||
|
android:layout_height="48dp"
|
||||||
|
android:padding="12dp"
|
||||||
|
android:src="@drawable/round_code_24"
|
||||||
|
app:tint="@color/colorPrimaryText"/>
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/AnotherWidget.Settings.Title"
|
||||||
|
android:text="@string/settings_show_multiple_events_title"/>
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/show_multiple_events_label"
|
||||||
|
style="@style/AnotherWidget.Settings.Subtitle"/>
|
||||||
|
</LinearLayout>
|
||||||
|
<com.kyleduo.switchbutton.SwitchButton
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:kswThumbWidth="16sp"
|
||||||
|
app:kswThumbHeight="16sp"
|
||||||
|
app:kswBackRadius="16dp"
|
||||||
|
app:kswTintColor="@color/colorAccent"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:id="@+id/show_multiple_events_toggle"
|
||||||
|
android:buttonTint="@color/colorAccent" />
|
||||||
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:paddingBottom="12dp"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:background="?android:attr/selectableItemBackground"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:id="@+id/action_open_event_details"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="48dp"
|
||||||
|
android:layout_height="48dp"
|
||||||
|
android:padding="12dp"
|
||||||
|
android:src="@drawable/round_event_note_24"
|
||||||
|
app:tint="@color/colorPrimaryText" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/AnotherWidget.Settings.Title"
|
||||||
|
android:text="@string/settings_event_app_title"/>
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/open_event_details_label"
|
||||||
|
style="@style/AnotherWidget.Settings.Subtitle"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Default apps"
|
||||||
|
android:paddingTop="16dp"
|
||||||
|
android:paddingLeft="20dp"
|
||||||
|
android:paddingRight="20dp"
|
||||||
|
android:textAppearance="@style/AnotherWidget.Settings.Header" />
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:paddingBottom="12dp"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:background="?android:attr/selectableItemBackground"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:id="@+id/action_calendar_app"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="48dp"
|
||||||
|
android:layout_height="48dp"
|
||||||
|
android:padding="12dp"
|
||||||
|
android:src="@drawable/round_add_to_home_screen_24"
|
||||||
|
app:tint="@color/colorPrimaryText"/>
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/AnotherWidget.Settings.Title"
|
||||||
|
android:text="@string/settings_calendar_app_title"/>
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/calendar_app_label"
|
||||||
|
style="@style/AnotherWidget.Settings.Subtitle"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:paddingBottom="12dp"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:background="?android:attr/selectableItemBackground"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:id="@+id/action_weather_app"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="48dp"
|
||||||
|
android:layout_height="48dp"
|
||||||
|
android:padding="12dp"
|
||||||
|
android:src="@drawable/round_add_to_home_screen_24"
|
||||||
|
app:tint="@color/colorPrimaryText"/>
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/AnotherWidget.Settings.Title"
|
||||||
|
android:text="@string/settings_weather_app_title"/>
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/weather_app_label"
|
||||||
|
style="@style/AnotherWidget.Settings.Subtitle"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:paddingBottom="12dp"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:background="?android:attr/selectableItemBackground"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:id="@+id/action_clock_app"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="48dp"
|
||||||
|
android:layout_height="48dp"
|
||||||
|
android:padding="12dp"
|
||||||
|
android:src="@drawable/round_add_to_home_screen_24"
|
||||||
|
app:tint="@color/colorPrimaryText"/>
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/AnotherWidget.Settings.Title"
|
||||||
|
android:text="@string/settings_clock_app_title"/>
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/clock_app_label"
|
||||||
|
style="@style/AnotherWidget.Settings.Subtitle"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
</com.tommasoberlose.anotherwidget.components.FixedFocusScrollView>
|
||||||
|
</layout>
|
@ -24,48 +24,11 @@
|
|||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/preferences_header"
|
android:text="Spacing"
|
||||||
android:paddingTop="16dp"
|
android:paddingTop="16dp"
|
||||||
android:paddingLeft="20dp"
|
android:paddingLeft="20dp"
|
||||||
android:paddingRight="20dp"
|
android:paddingRight="20dp"
|
||||||
android:textAppearance="@style/AnotherWidget.Settings.Header" />
|
android:textAppearance="@style/AnotherWidget.Settings.Header" />
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingTop="12dp"
|
|
||||||
android:paddingBottom="12dp"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp"
|
|
||||||
android:clickable="true"
|
|
||||||
android:focusable="true"
|
|
||||||
android:background="?android:attr/selectableItemBackground"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:id="@+id/action_date_format"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="48dp"
|
|
||||||
android:layout_height="48dp"
|
|
||||||
android:padding="10dp"
|
|
||||||
android:src="@drawable/round_text_format_24"
|
|
||||||
app:tint="@color/colorPrimaryText"/>
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp"
|
|
||||||
android:orientation="vertical">
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="@style/AnotherWidget.Settings.Title"
|
|
||||||
android:text="@string/settings_date_format_title"/>
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/date_format_label"
|
|
||||||
style="@style/AnotherWidget.Settings.Subtitle"/>
|
|
||||||
</LinearLayout>
|
|
||||||
</LinearLayout>
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@ -103,6 +66,51 @@
|
|||||||
style="@style/AnotherWidget.Settings.Subtitle"/>
|
style="@style/AnotherWidget.Settings.Subtitle"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:paddingBottom="12dp"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:background="?android:attr/selectableItemBackground"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:id="@+id/action_clock_bottom_margin_size"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="48dp"
|
||||||
|
android:layout_height="48dp"
|
||||||
|
android:padding="12dp"
|
||||||
|
android:src="@drawable/round_format_line_spacing"
|
||||||
|
app:tint="@color/colorPrimaryText"/>
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/AnotherWidget.Settings.Title"
|
||||||
|
android:text="@string/settings_clock_bottom_margin_title"/>
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/clock_bottom_margin_label"
|
||||||
|
style="@style/AnotherWidget.Settings.Subtitle"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/preferences_header"
|
||||||
|
android:paddingTop="16dp"
|
||||||
|
android:paddingLeft="20dp"
|
||||||
|
android:paddingRight="20dp"
|
||||||
|
android:textAppearance="@style/AnotherWidget.Settings.Header" />
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@ -120,6 +128,7 @@
|
|||||||
android:layout_width="48dp"
|
android:layout_width="48dp"
|
||||||
android:layout_height="48dp"
|
android:layout_height="48dp"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
|
android:rotation="90"
|
||||||
android:src="@drawable/round_vertical_align_center_24"
|
android:src="@drawable/round_vertical_align_center_24"
|
||||||
app:tint="@color/colorPrimaryText"/>
|
app:tint="@color/colorPrimaryText"/>
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@ -151,14 +160,6 @@
|
|||||||
android:id="@+id/show_dividers_toggle"
|
android:id="@+id/show_dividers_toggle"
|
||||||
android:buttonTint="@color/colorAccent" />
|
android:buttonTint="@color/colorAccent" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/header_widget_background"
|
|
||||||
android:paddingTop="16dp"
|
|
||||||
android:paddingLeft="20dp"
|
|
||||||
android:paddingRight="20dp"
|
|
||||||
android:textAppearance="@style/AnotherWidget.Settings.Header" />
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -272,6 +272,43 @@
|
|||||||
android:paddingLeft="20dp"
|
android:paddingLeft="20dp"
|
||||||
android:paddingRight="20dp"
|
android:paddingRight="20dp"
|
||||||
android:textAppearance="@style/AnotherWidget.Settings.Header" />
|
android:textAppearance="@style/AnotherWidget.Settings.Header" />
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:paddingBottom="12dp"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:background="?android:attr/selectableItemBackground"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:id="@+id/action_date_format"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="48dp"
|
||||||
|
android:layout_height="48dp"
|
||||||
|
android:padding="10dp"
|
||||||
|
android:src="@drawable/round_text_format_24"
|
||||||
|
app:tint="@color/colorPrimaryText"/>
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/AnotherWidget.Settings.Title"
|
||||||
|
android:text="@string/settings_date_format_title"/>
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/date_format_label"
|
||||||
|
style="@style/AnotherWidget.Settings.Subtitle"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@ -327,6 +364,7 @@
|
|||||||
android:layout_width="48dp"
|
android:layout_width="48dp"
|
||||||
android:layout_height="48dp"
|
android:layout_height="48dp"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
|
android:visibility="invisible"
|
||||||
android:src="@drawable/round_texture_24"
|
android:src="@drawable/round_texture_24"
|
||||||
app:tint="@color/colorPrimaryText"/>
|
app:tint="@color/colorPrimaryText"/>
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -274,51 +274,6 @@
|
|||||||
style="@style/AnotherWidget.Settings.Subtitle"/>
|
style="@style/AnotherWidget.Settings.Subtitle"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/actions_header"
|
|
||||||
android:paddingTop="16dp"
|
|
||||||
android:paddingLeft="20dp"
|
|
||||||
android:paddingRight="20dp"
|
|
||||||
android:textAppearance="@style/AnotherWidget.Settings.Header" />
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingTop="12dp"
|
|
||||||
android:paddingBottom="12dp"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp"
|
|
||||||
android:clickable="true"
|
|
||||||
android:focusable="true"
|
|
||||||
android:background="?android:attr/selectableItemBackground"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:id="@+id/action_weather_app"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="48dp"
|
|
||||||
android:layout_height="48dp"
|
|
||||||
android:padding="12dp"
|
|
||||||
android:src="@drawable/round_add_to_home_screen_24"
|
|
||||||
app:tint="@color/colorPrimaryText"/>
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp"
|
|
||||||
android:orientation="vertical">
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="@style/AnotherWidget.Settings.Title"
|
|
||||||
android:text="@string/settings_weather_app_title"/>
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/weather_app_label"
|
|
||||||
style="@style/AnotherWidget.Settings.Subtitle"/>
|
|
||||||
</LinearLayout>
|
|
||||||
</LinearLayout>
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</com.tommasoberlose.anotherwidget.components.FixedFocusScrollView>
|
</com.tommasoberlose.anotherwidget.components.FixedFocusScrollView>
|
||||||
|
@ -45,9 +45,16 @@
|
|||||||
<action
|
<action
|
||||||
android:id="@+id/action_tabSelectorFragment_to_typographyTabFragment"
|
android:id="@+id/action_tabSelectorFragment_to_typographyTabFragment"
|
||||||
app:destination="@id/typographyTabFragment" />
|
app:destination="@id/typographyTabFragment" />
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_tabSelectorFragment_to_gesturesFragment"
|
||||||
|
app:destination="@id/gesturesFragment" />
|
||||||
</fragment>
|
</fragment>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/typographyTabFragment"
|
android:id="@+id/typographyTabFragment"
|
||||||
android:name="com.tommasoberlose.anotherwidget.ui.fragments.tabs.TypographyFragment"
|
android:name="com.tommasoberlose.anotherwidget.ui.fragments.tabs.TypographyFragment"
|
||||||
android:label="TypographyTabFragment" />
|
android:label="TypographyTabFragment" />
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/gesturesFragment"
|
||||||
|
android:name="com.tommasoberlose.anotherwidget.ui.fragments.tabs.GesturesFragment"
|
||||||
|
android:label="GesturesFragment" />
|
||||||
</navigation>
|
</navigation>
|
Loading…
x
Reference in New Issue
Block a user