Compare commits
6 Commits
v2.0.5-bet
...
v2.0.5-bet
Author | SHA1 | Date | |
---|---|---|---|
6a4cfdf22b | |||
0b9e9e081e | |||
15884bd9b2 | |||
0adf192965 | |||
d72ba08960 | |||
1848951a74 |
32
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
32
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: Create a report to help us improve
|
||||||
|
title: ''
|
||||||
|
labels: ''
|
||||||
|
assignees: tommasoberlose
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Describe the bug**
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
Steps to reproduce the behavior:
|
||||||
|
1. Go to '...'
|
||||||
|
2. Click on '....'
|
||||||
|
3. Scroll down to '....'
|
||||||
|
4. See error
|
||||||
|
|
||||||
|
**Expected behavior**
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
**Screenshots**
|
||||||
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
|
**Smartphone (please complete the following information):**
|
||||||
|
- Device: [e.g. OnePlus 6]
|
||||||
|
- OS Version: [e.g. Android 9.0]
|
||||||
|
- App Version (that you can find inside the advanced settings) [e.g. v2.0.5 (71)]
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context about the problem here.
|
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
name: Feature request
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
title: ''
|
||||||
|
labels: ''
|
||||||
|
assignees: tommasoberlose
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Is your feature request related to a problem? Please describe.**
|
||||||
|
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
|
**Describe alternatives you've considered**
|
||||||
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context or screenshots about the feature request here.
|
BIN
.idea/caches/build_file_checksums.ser
generated
BIN
.idea/caches/build_file_checksums.ser
generated
Binary file not shown.
@ -18,7 +18,7 @@ android {
|
|||||||
applicationId "com.tommasoberlose.anotherwidget"
|
applicationId "com.tommasoberlose.anotherwidget"
|
||||||
minSdkVersion 23
|
minSdkVersion 23
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
versionCode 74
|
versionCode 76
|
||||||
versionName "2.0.5"
|
versionName "2.0.5"
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
Binary file not shown.
@ -16,6 +16,7 @@ import androidx.core.content.ContextCompat
|
|||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import androidx.core.widget.addTextChangedListener
|
import androidx.core.widget.addTextChangedListener
|
||||||
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.GridLayoutManager
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||||
import com.google.android.material.card.MaterialCardView
|
import com.google.android.material.card.MaterialCardView
|
||||||
@ -79,61 +80,51 @@ class BottomSheetColorPicker(
|
|||||||
|
|
||||||
// List
|
// List
|
||||||
|
|
||||||
view.menu.setHasFixedSize(true)
|
|
||||||
val mLayoutManager = GridLayoutManager(context, 6)
|
|
||||||
view.menu.layoutManager = mLayoutManager
|
|
||||||
|
|
||||||
adapter = SlimAdapter.create()
|
adapter = SlimAdapter.create()
|
||||||
|
|
||||||
adapter
|
|
||||||
.register<Int>(R.layout.color_picker_menu_item) { item, injector ->
|
|
||||||
injector
|
|
||||||
.with<MaterialCardView>(R.id.color) {
|
|
||||||
loadingJobs.add(GlobalScope.launch(Dispatchers.IO) {
|
|
||||||
val colorList = ColorStateList.valueOf(item)
|
|
||||||
withContext(Dispatchers.Main) {
|
|
||||||
it.setCardBackgroundColor(colorList)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
.with<AppCompatImageView>(R.id.check) {
|
|
||||||
if (getSelected?.invoke() == item) {
|
|
||||||
loadingJobs.add(GlobalScope.launch(Dispatchers.IO) {
|
|
||||||
val colorList = ContextCompat.getColor(
|
|
||||||
context,
|
|
||||||
if (item.isColorDark()) android.R.color.white else android.R.color.black
|
|
||||||
)
|
|
||||||
withContext(Dispatchers.Main) {
|
|
||||||
it.setColorFilter(
|
|
||||||
colorList,
|
|
||||||
android.graphics.PorterDuff.Mode.MULTIPLY
|
|
||||||
)
|
|
||||||
it.isVisible = true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
it.isVisible = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
injector.clicked(R.id.color) {
|
|
||||||
adapter.notifyItemChanged(adapter.data.indexOf(getSelected?.invoke()))
|
|
||||||
onColorSelected?.invoke(item)
|
|
||||||
val position = adapter.data.indexOf(item)
|
|
||||||
adapter.notifyItemChanged(position)
|
|
||||||
(view.menu.layoutManager as GridLayoutManager).scrollToPositionWithOffset(position,0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.attachTo(view.menu)
|
|
||||||
|
|
||||||
loadingJobs.add(GlobalScope.launch(Dispatchers.IO) {
|
loadingJobs.add(GlobalScope.launch(Dispatchers.IO) {
|
||||||
|
val listView = View.inflate(context, R.layout.bottom_sheet_menu_list, null) as RecyclerView
|
||||||
|
listView.setHasFixedSize(true)
|
||||||
|
val mLayoutManager = GridLayoutManager(context, 6)
|
||||||
|
listView.layoutManager = mLayoutManager
|
||||||
|
|
||||||
|
adapter
|
||||||
|
.register<Int>(R.layout.color_picker_menu_item) { item, injector ->
|
||||||
|
injector
|
||||||
|
.with<MaterialCardView>(R.id.color) {
|
||||||
|
it.setCardBackgroundColor(ColorStateList.valueOf(item))
|
||||||
|
}
|
||||||
|
.with<AppCompatImageView>(R.id.check) {
|
||||||
|
if (getSelected?.invoke() == item) {
|
||||||
|
it.setColorFilter(
|
||||||
|
ContextCompat.getColor(
|
||||||
|
context,
|
||||||
|
if (item.isColorDark()) android.R.color.white else android.R.color.black
|
||||||
|
),
|
||||||
|
android.graphics.PorterDuff.Mode.MULTIPLY
|
||||||
|
)
|
||||||
|
it.isVisible = true
|
||||||
|
} else {
|
||||||
|
it.isVisible = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.clicked(R.id.color) {
|
||||||
|
adapter.notifyItemChanged(adapter.data.indexOf(getSelected?.invoke()))
|
||||||
|
onColorSelected?.invoke(item)
|
||||||
|
val position = adapter.data.indexOf(item)
|
||||||
|
adapter.notifyItemChanged(position)
|
||||||
|
(listView.layoutManager as GridLayoutManager).scrollToPositionWithOffset(position,0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.attachTo(listView)
|
||||||
|
|
||||||
adapter.updateData(colors.toList())
|
adapter.updateData(colors.toList())
|
||||||
|
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
view.color_loader.isVisible = false
|
view.color_loader.isVisible = false
|
||||||
|
view.list_container.addView(listView)
|
||||||
this@BottomSheetColorPicker.behavior.state = BottomSheetBehavior.STATE_EXPANDED
|
this@BottomSheetColorPicker.behavior.state = BottomSheetBehavior.STATE_EXPANDED
|
||||||
// this@BottomSheetColorPicker.behavior.isFitToContents = false
|
view.list_container.isVisible = true
|
||||||
view.menu.isVisible = true
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -15,11 +15,13 @@ object BitmapHelper {
|
|||||||
|
|
||||||
fun getBitmapFromView(view: View, width: Int? = null, height: Int? = null, draw: Boolean = true): Bitmap {
|
fun getBitmapFromView(view: View, width: Int? = null, height: Int? = null, draw: Boolean = true): Bitmap {
|
||||||
//Define a bitmap with the same size as the view
|
//Define a bitmap with the same size as the view
|
||||||
val measuredWidth = View.MeasureSpec.makeMeasureSpec(width ?: view.width, if (width != null) View.MeasureSpec.EXACTLY else View.MeasureSpec.UNSPECIFIED)
|
val measuredWidth = View.MeasureSpec.makeMeasureSpec(width ?: view.width, if (width != null) View.MeasureSpec.EXACTLY else View.MeasureSpec.AT_MOST)
|
||||||
val measuredHeight = View.MeasureSpec.makeMeasureSpec(height ?: view.height, if (height != null) View.MeasureSpec.EXACTLY else View.MeasureSpec.UNSPECIFIED)
|
val measuredHeight = View.MeasureSpec.makeMeasureSpec(height ?: view.height, if (height != null) View.MeasureSpec.EXACTLY else View.MeasureSpec.UNSPECIFIED)
|
||||||
view.measure(measuredWidth, measuredHeight)
|
view.measure(measuredWidth, measuredHeight)
|
||||||
|
|
||||||
if (draw) {
|
if (draw) {
|
||||||
|
FirebaseCrashlytics.getInstance().setCustomKey("initialWidth", width ?: -1)
|
||||||
|
FirebaseCrashlytics.getInstance().setCustomKey("initialHeight", height ?: -1)
|
||||||
FirebaseCrashlytics.getInstance().setCustomKey("measuredWidth", view.measuredWidth)
|
FirebaseCrashlytics.getInstance().setCustomKey("measuredWidth", view.measuredWidth)
|
||||||
FirebaseCrashlytics.getInstance().setCustomKey("measuredWidth_spec", measuredWidth)
|
FirebaseCrashlytics.getInstance().setCustomKey("measuredWidth_spec", measuredWidth)
|
||||||
FirebaseCrashlytics.getInstance().setCustomKey("measuredHeight", view.measuredHeight)
|
FirebaseCrashlytics.getInstance().setCustomKey("measuredHeight", view.measuredHeight)
|
||||||
|
@ -79,7 +79,7 @@ object IntentHelper {
|
|||||||
val calendarUri = CalendarContract.CONTENT_URI
|
val calendarUri = CalendarContract.CONTENT_URI
|
||||||
.buildUpon()
|
.buildUpon()
|
||||||
.appendPath("time")
|
.appendPath("time")
|
||||||
.appendPath("0".toString())
|
.appendPath(Calendar.getInstance().timeInMillis.toString())
|
||||||
.build()
|
.build()
|
||||||
return when (Preferences.calendarAppPackage) {
|
return when (Preferences.calendarAppPackage) {
|
||||||
"" -> {
|
"" -> {
|
||||||
@ -116,6 +116,8 @@ object IntentHelper {
|
|||||||
data = uri
|
data = uri
|
||||||
putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, e.startDate)
|
putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, e.startDate)
|
||||||
putExtra(CalendarContract.EXTRA_EVENT_END_TIME, e.endDate)
|
putExtra(CalendarContract.EXTRA_EVENT_END_TIME, e.endDate)
|
||||||
|
// putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, if (e.allDay) 1 else 0)
|
||||||
|
// type = "vnd.android.cursor.item/event"
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
getCalendarIntent(context).apply {
|
getCalendarIntent(context).apply {
|
||||||
@ -123,6 +125,8 @@ object IntentHelper {
|
|||||||
data = uri
|
data = uri
|
||||||
putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, e.startDate)
|
putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, e.startDate)
|
||||||
putExtra(CalendarContract.EXTRA_EVENT_END_TIME, e.endDate)
|
putExtra(CalendarContract.EXTRA_EVENT_END_TIME, e.endDate)
|
||||||
|
// putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, if (e.allDay) 1 else 0)
|
||||||
|
// type = "vnd.android.cursor.item/event"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package com.tommasoberlose.anotherwidget.helpers
|
|||||||
import android.appwidget.AppWidgetManager
|
import android.appwidget.AppWidgetManager
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.res.Configuration.ORIENTATION_PORTRAIT
|
import android.content.res.Configuration.ORIENTATION_PORTRAIT
|
||||||
|
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
||||||
|
|
||||||
object WidgetHelper {
|
object WidgetHelper {
|
||||||
class WidgetSizeProvider(
|
class WidgetSizeProvider(
|
||||||
@ -16,6 +17,8 @@ object WidgetHelper {
|
|||||||
val height = getWidgetHeight(isPortrait, widgetId)
|
val height = getWidgetHeight(isPortrait, widgetId)
|
||||||
val widthInPx = context.dip(width)
|
val widthInPx = context.dip(width)
|
||||||
val heightInPx = context.dip(height)
|
val heightInPx = context.dip(height)
|
||||||
|
FirebaseCrashlytics.getInstance().setCustomKey("widthInPx", widthInPx)
|
||||||
|
FirebaseCrashlytics.getInstance().setCustomKey("heightInPx", heightInPx)
|
||||||
return widthInPx to heightInPx
|
return widthInPx to heightInPx
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,8 +34,6 @@ class WeatherReceiver : BroadcastReceiver() {
|
|||||||
removeUpdates(context)
|
removeUpdates(context)
|
||||||
|
|
||||||
if (Preferences.showWeather && Preferences.weatherProviderApi != "") {
|
if (Preferences.showWeather && Preferences.weatherProviderApi != "") {
|
||||||
WeatherHelper.updateWeather(context)
|
|
||||||
|
|
||||||
val interval = MINUTE * when (Preferences.weatherRefreshPeriod) {
|
val interval = MINUTE * when (Preferences.weatherRefreshPeriod) {
|
||||||
0 -> 30
|
0 -> 30
|
||||||
1 -> 60
|
1 -> 60
|
||||||
@ -48,7 +46,7 @@ class WeatherReceiver : BroadcastReceiver() {
|
|||||||
with(context.getSystemService(Context.ALARM_SERVICE) as AlarmManager) {
|
with(context.getSystemService(Context.ALARM_SERVICE) as AlarmManager) {
|
||||||
setRepeating(
|
setRepeating(
|
||||||
AlarmManager.RTC,
|
AlarmManager.RTC,
|
||||||
Calendar.getInstance().timeInMillis + interval,
|
Calendar.getInstance().timeInMillis,
|
||||||
interval,
|
interval,
|
||||||
PendingIntent.getBroadcast(context, 0, Intent(context, WeatherReceiver::class.java).apply { action = Actions.ACTION_WEATHER_UPDATE }, 0)
|
PendingIntent.getBroadcast(context, 0, Intent(context, WeatherReceiver::class.java).apply { action = Actions.ACTION_WEATHER_UPDATE }, 0)
|
||||||
)
|
)
|
||||||
|
@ -92,9 +92,6 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
|
|||||||
subscribeUi(viewModel)
|
subscribeUi(viewModel)
|
||||||
updateUI()
|
updateUI()
|
||||||
|
|
||||||
WeatherHelper.updateWeather(this)
|
|
||||||
|
|
||||||
|
|
||||||
// Warnings
|
// Warnings
|
||||||
if (getString(R.string.xiaomi_manufacturer).equals(Build.MANUFACTURER, ignoreCase = true) && Preferences.showXiaomiWarning) {
|
if (getString(R.string.xiaomi_manufacturer).equals(Build.MANUFACTURER, ignoreCase = true) && Preferences.showXiaomiWarning) {
|
||||||
MaterialBottomSheetDialog(this, getString(R.string.xiaomi_warning_title), getString(R.string.xiaomi_warning_message))
|
MaterialBottomSheetDialog(this, getString(R.string.xiaomi_warning_title), getString(R.string.xiaomi_warning_message))
|
||||||
|
@ -29,6 +29,7 @@ import com.tommasoberlose.anotherwidget.ui.activities.MainActivity
|
|||||||
import com.tommasoberlose.anotherwidget.ui.activities.SupportDevActivity
|
import com.tommasoberlose.anotherwidget.ui.activities.SupportDevActivity
|
||||||
import com.tommasoberlose.anotherwidget.ui.viewmodels.MainViewModel
|
import com.tommasoberlose.anotherwidget.ui.viewmodels.MainViewModel
|
||||||
import com.tommasoberlose.anotherwidget.helpers.CalendarHelper
|
import com.tommasoberlose.anotherwidget.helpers.CalendarHelper
|
||||||
|
import com.tommasoberlose.anotherwidget.helpers.WeatherHelper
|
||||||
import com.tommasoberlose.anotherwidget.ui.widgets.MainWidget
|
import com.tommasoberlose.anotherwidget.ui.widgets.MainWidget
|
||||||
import com.tommasoberlose.anotherwidget.utils.checkGrantedPermission
|
import com.tommasoberlose.anotherwidget.utils.checkGrantedPermission
|
||||||
import com.tommasoberlose.anotherwidget.utils.openURI
|
import com.tommasoberlose.anotherwidget.utils.openURI
|
||||||
@ -187,7 +188,7 @@ class AdvancedSettingsFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
action_refresh_widget.setOnClickListener {
|
action_refresh_widget.setOnClickListener {
|
||||||
MainWidget.updateWidget(requireContext())
|
WeatherHelper.updateWeather(requireContext())
|
||||||
CalendarHelper.updateEventList(requireContext())
|
CalendarHelper.updateEventList(requireContext())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -156,6 +156,9 @@ class CalendarSettingsFragment : Fragment() {
|
|||||||
|
|
||||||
action_show_events.setOnClickListener {
|
action_show_events.setOnClickListener {
|
||||||
Preferences.showEvents = !Preferences.showEvents
|
Preferences.showEvents = !Preferences.showEvents
|
||||||
|
if (Preferences.showEvents) {
|
||||||
|
requirePermission()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
action_filter_calendar.setOnClickListener {
|
action_filter_calendar.setOnClickListener {
|
||||||
|
@ -81,12 +81,14 @@ class WeatherSettingsFragment : Fragment() {
|
|||||||
) {
|
) {
|
||||||
viewModel.showWeatherWarning.observe(viewLifecycleOwner, Observer {
|
viewModel.showWeatherWarning.observe(viewLifecycleOwner, Observer {
|
||||||
weather_warning?.isVisible = it
|
weather_warning?.isVisible = it
|
||||||
|
checkLocationPermission()
|
||||||
})
|
})
|
||||||
|
|
||||||
viewModel.showWeather.observe(viewLifecycleOwner, Observer {
|
viewModel.showWeather.observe(viewLifecycleOwner, Observer {
|
||||||
maintainScrollPosition {
|
maintainScrollPosition {
|
||||||
show_weather_label?.text =
|
show_weather_label?.text =
|
||||||
if (it) getString(R.string.show_weather_visible) else getString(R.string.show_weather_not_visible)
|
if (it) getString(R.string.show_weather_visible) else getString(R.string.show_weather_not_visible)
|
||||||
|
checkWeatherProviderConfig()
|
||||||
binding.isWeatherVisible = it
|
binding.isWeatherVisible = it
|
||||||
}
|
}
|
||||||
checkLocationPermission()
|
checkLocationPermission()
|
||||||
@ -94,11 +96,7 @@ class WeatherSettingsFragment : Fragment() {
|
|||||||
|
|
||||||
viewModel.weatherProviderApi.observe(viewLifecycleOwner, Observer {
|
viewModel.weatherProviderApi.observe(viewLifecycleOwner, Observer {
|
||||||
maintainScrollPosition {
|
maintainScrollPosition {
|
||||||
label_weather_provider_api_key?.text =
|
checkWeatherProviderConfig()
|
||||||
if (it == "") getString(R.string.settings_weather_provider_api_key_subtitle_not_set) else getString(
|
|
||||||
R.string.settings_weather_provider_api_key_subtitle_all_set
|
|
||||||
)
|
|
||||||
label_weather_provider_api_key?.setTextColor(ContextCompat.getColor(requireContext(), if (it == "") R.color.errorColorText else R.color.colorSecondaryText))
|
|
||||||
}
|
}
|
||||||
checkLocationPermission()
|
checkLocationPermission()
|
||||||
})
|
})
|
||||||
@ -148,9 +146,19 @@ class WeatherSettingsFragment : Fragment() {
|
|||||||
location_permission_alert?.setOnClickListener {
|
location_permission_alert?.setOnClickListener {
|
||||||
requirePermission()
|
requirePermission()
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
location_permission_alert?.isVisible = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun checkWeatherProviderConfig() {
|
||||||
|
label_weather_provider_api_key?.text =
|
||||||
|
if (Preferences.weatherProviderApi == "") getString(R.string.settings_weather_provider_api_key_subtitle_not_set) else getString(
|
||||||
|
R.string.settings_weather_provider_api_key_subtitle_all_set
|
||||||
|
)
|
||||||
|
label_weather_provider_api_key?.setTextColor(ContextCompat.getColor(requireContext(), if (Preferences.weatherProviderApi == "" && Preferences.showWeather) R.color.errorColorText else R.color.colorSecondaryText))
|
||||||
|
}
|
||||||
|
|
||||||
private fun setupListener() {
|
private fun setupListener() {
|
||||||
action_hide_weather_warning.setOnClickListener {
|
action_hide_weather_warning.setOnClickListener {
|
||||||
Preferences.showWeatherWarning = false
|
Preferences.showWeatherWarning = false
|
||||||
|
@ -26,6 +26,7 @@ import com.tommasoberlose.anotherwidget.global.Actions
|
|||||||
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.helpers.*
|
import com.tommasoberlose.anotherwidget.helpers.*
|
||||||
|
import com.tommasoberlose.anotherwidget.helpers.WidgetHelper.reduceDimensionWithMaxWidth
|
||||||
import com.tommasoberlose.anotherwidget.receivers.*
|
import com.tommasoberlose.anotherwidget.receivers.*
|
||||||
import com.tommasoberlose.anotherwidget.utils.checkGrantedPermission
|
import com.tommasoberlose.anotherwidget.utils.checkGrantedPermission
|
||||||
import com.tommasoberlose.anotherwidget.utils.getCapWordString
|
import com.tommasoberlose.anotherwidget.utils.getCapWordString
|
||||||
|
@ -96,13 +96,11 @@
|
|||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="300dp"
|
android:layout_height="260dp"
|
||||||
android:id="@+id/menu"
|
android:id="@+id/list_container"
|
||||||
android:visibility="gone"
|
android:orientation="vertical" />
|
||||||
android:clipToPadding="false"
|
|
||||||
android:padding="16dp"/>
|
|
||||||
<ProgressBar
|
<ProgressBar
|
||||||
android:layout_width="32dp"
|
android:layout_width="32dp"
|
||||||
android:layout_height="32dp"
|
android:layout_height="32dp"
|
||||||
|
8
app/src/main/res/layout/bottom_sheet_menu_list.xml
Normal file
8
app/src/main/res/layout/bottom_sheet_menu_list.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="260dp"
|
||||||
|
android:id="@+id/menu"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:padding="16dp"/>
|
@ -198,6 +198,7 @@
|
|||||||
android:paddingBottom="0dp"
|
android:paddingBottom="0dp"
|
||||||
android:paddingTop="0dp"
|
android:paddingTop="0dp"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
|
android:visibility="gone"
|
||||||
android:id="@+id/location_permission_alert"
|
android:id="@+id/location_permission_alert"
|
||||||
android:textColor="@color/errorColorText"
|
android:textColor="@color/errorColorText"
|
||||||
android:text="@string/action_grant_permission"/>
|
android:text="@string/action_grant_permission"/>
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
<string name="main_calendar">Account calendar</string>
|
<string name="main_calendar">Account calendar</string>
|
||||||
<string name="settings_calendar_title">Calendar</string>
|
<string name="settings_calendar_title">Calendar</string>
|
||||||
<string name="settings_weather_title">Weather</string>
|
<string name="settings_weather_title">Weather</string>
|
||||||
<string name="settings_general_title">Typography</string>
|
<string name="settings_general_title">General</string>
|
||||||
<string name="calendar_settings_list_error">Error loading the calendar list</string>
|
<string name="calendar_settings_list_error">Error loading the calendar list</string>
|
||||||
<string name="settings_hour_format_title">Hour format</string>
|
<string name="settings_hour_format_title">Hour format</string>
|
||||||
<string name="settings_hour_format_subtitle_12">12 hour</string>
|
<string name="settings_hour_format_subtitle_12">12 hour</string>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
xmlns:dist="http://schemas.android.com/apk/distribution"
|
xmlns:dist="http://schemas.android.com/apk/distribution"
|
||||||
featureSplit="tasksintegration"
|
featureSplit="tasksintegration"
|
||||||
package="com.tommasoberlose.anotherwidget"
|
package="com.tommasoberlose.anotherwidget"
|
||||||
android:versionCode="74"
|
android:versionCode="75"
|
||||||
android:versionName="2.0.5" >
|
android:versionName="2.0.5" >
|
||||||
|
|
||||||
<uses-sdk
|
<uses-sdk
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#Thu May 07 12:28:58 CEST 2020
|
#Thu May 07 17:54:22 CEST 2020
|
||||||
base.0=/Users/tommaso/Documents/MyCode/another-widget/tasksintegration/build/intermediates/dex/debug/mergeProjectDexDebug/out/classes.dex
|
base.0=/Users/tommaso/Documents/MyCode/another-widget/tasksintegration/build/intermediates/dex/debug/mergeProjectDexDebug/out/classes.dex
|
||||||
path.0=classes.dex
|
path.0=classes.dex
|
||||||
renamed.0=classes.dex
|
renamed.0=classes.dex
|
||||||
|
Binary file not shown.
@ -4,7 +4,7 @@
|
|||||||
featureSplit="tasksintegration"
|
featureSplit="tasksintegration"
|
||||||
package="com.tommasoberlose.anotherwidget"
|
package="com.tommasoberlose.anotherwidget"
|
||||||
android:targetSandboxVersion="2"
|
android:targetSandboxVersion="2"
|
||||||
android:versionCode="74"
|
android:versionCode="75"
|
||||||
android:versionName="2.0.5" >
|
android:versionName="2.0.5" >
|
||||||
|
|
||||||
<uses-sdk
|
<uses-sdk
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
3 xmlns:dist="http://schemas.android.com/apk/distribution"
|
3 xmlns:dist="http://schemas.android.com/apk/distribution"
|
||||||
4 featureSplit="tasksintegration"
|
4 featureSplit="tasksintegration"
|
||||||
5 package="com.tommasoberlose.anotherwidget"
|
5 package="com.tommasoberlose.anotherwidget"
|
||||||
6 android:versionCode="74"
|
6 android:versionCode="75"
|
||||||
7 android:versionName="2.0.5" >
|
7 android:versionName="2.0.5" >
|
||||||
8
|
8
|
||||||
9 <uses-sdk
|
9 <uses-sdk
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
xmlns:dist="http://schemas.android.com/apk/distribution"
|
xmlns:dist="http://schemas.android.com/apk/distribution"
|
||||||
featureSplit="tasksintegration"
|
featureSplit="tasksintegration"
|
||||||
package="com.tommasoberlose.anotherwidget"
|
package="com.tommasoberlose.anotherwidget"
|
||||||
android:versionCode="74"
|
android:versionCode="75"
|
||||||
android:versionName="2.0.5" >
|
android:versionName="2.0.5" >
|
||||||
|
|
||||||
<uses-sdk
|
<uses-sdk
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
xmlns:dist="http://schemas.android.com/apk/distribution"
|
xmlns:dist="http://schemas.android.com/apk/distribution"
|
||||||
featureSplit="tasksintegration"
|
featureSplit="tasksintegration"
|
||||||
package="com.tommasoberlose.anotherwidget"
|
package="com.tommasoberlose.anotherwidget"
|
||||||
android:versionCode="74"
|
android:versionCode="75"
|
||||||
android:versionName="2.0.5" >
|
android:versionName="2.0.5" >
|
||||||
|
|
||||||
<uses-sdk android:targetSdkVersion="29" />
|
<uses-sdk android:targetSdkVersion="29" />
|
||||||
|
Reference in New Issue
Block a user