Fix adding widgets
This commit is contained in:
parent
1c54166b58
commit
3f7209035e
@ -78,6 +78,8 @@ class BindAndConfigureAppWidgetActivity : Activity() {
|
|||||||
private lateinit var appWidgetHost: AppWidgetHost
|
private lateinit var appWidgetHost: AppWidgetHost
|
||||||
private lateinit var appWidgetManager: AppWidgetManager
|
private lateinit var appWidgetManager: AppWidgetManager
|
||||||
|
|
||||||
|
private var appWidgetId: Int? = null
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
appWidgetHost = AppWidgetHost(this, 44203)
|
appWidgetHost = AppWidgetHost(this, 44203)
|
||||||
@ -92,7 +94,9 @@ class BindAndConfigureAppWidgetActivity : Activity() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
val widgetId = appWidgetHost.allocateAppWidgetId()
|
val widgetId = appWidgetHost.allocateAppWidgetId().also {
|
||||||
|
appWidgetId = it
|
||||||
|
}
|
||||||
|
|
||||||
val canBind =
|
val canBind =
|
||||||
appWidgetManager.bindAppWidgetIdIfAllowed(
|
appWidgetManager.bindAppWidgetIdIfAllowed(
|
||||||
@ -153,8 +157,12 @@ class BindAndConfigureAppWidgetActivity : Activity() {
|
|||||||
super.onActivityResult(requestCode, resultCode, data)
|
super.onActivityResult(requestCode, resultCode, data)
|
||||||
when (requestCode) {
|
when (requestCode) {
|
||||||
RequestCodeBind -> {
|
RequestCodeBind -> {
|
||||||
val appWidgetId =
|
val appWidgetId = appWidgetId
|
||||||
data?.extras?.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID) ?: return cancel()
|
if (appWidgetId == null) {
|
||||||
|
Log.e("MM20", "No app widget id provided, canceling")
|
||||||
|
cancel()
|
||||||
|
return
|
||||||
|
}
|
||||||
if (resultCode == RESULT_OK) {
|
if (resultCode == RESULT_OK) {
|
||||||
val widget = appWidgetManager.getAppWidgetInfo(appWidgetId)
|
val widget = appWidgetManager.getAppWidgetInfo(appWidgetId)
|
||||||
configureAppWidget(widget, appWidgetId)
|
configureAppWidget(widget, appWidgetId)
|
||||||
@ -166,8 +174,12 @@ class BindAndConfigureAppWidgetActivity : Activity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
RequestCodeConfigure -> {
|
RequestCodeConfigure -> {
|
||||||
val appWidgetId =
|
val appWidgetId = appWidgetId
|
||||||
data?.extras?.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID) ?: return cancel()
|
if (appWidgetId == null) {
|
||||||
|
Log.e("MM20", "No app widget id provided, canceling")
|
||||||
|
cancel()
|
||||||
|
return
|
||||||
|
}
|
||||||
if (resultCode == RESULT_OK) {
|
if (resultCode == RESULT_OK) {
|
||||||
finishWithResult(appWidgetId)
|
finishWithResult(appWidgetId)
|
||||||
} else {
|
} else {
|
||||||
@ -187,6 +199,7 @@ class BindAndConfigureAppWidgetActivity : Activity() {
|
|||||||
val data = Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId)
|
val data = Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId)
|
||||||
data.putExtra(ExtraAppWidgetProviderInfo, intent.getParcelableExtra<AppWidgetProviderInfo>(ExtraAppWidgetProviderInfo))
|
data.putExtra(ExtraAppWidgetProviderInfo, intent.getParcelableExtra<AppWidgetProviderInfo>(ExtraAppWidgetProviderInfo))
|
||||||
setResult(RESULT_OK, data)
|
setResult(RESULT_OK, data)
|
||||||
|
appWidgetId = null
|
||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -225,7 +238,11 @@ private class BindAndConfigureAppWidgetContract(
|
|||||||
widgetId = widgetId,
|
widgetId = widgetId,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
} else {
|
||||||
|
Log.e("MM20", "Could not parse widget result: widgetId=$widgetId, widgetProviderInfo=$widgetProviderInfo")
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
Log.e("MM20", "Widget result was not OK")
|
||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user