mirror of
https://github.com/SimpleMobileTools/Simple-Notes.git
synced 2025-03-13 07:00:10 +01:00
some cleanup around widgetProvider
This commit is contained in:
parent
ce7485fa85
commit
10a4695062
@ -13,13 +13,14 @@ import com.simplemobiletools.notes.R
|
|||||||
import com.simplemobiletools.notes.activities.SplashActivity
|
import com.simplemobiletools.notes.activities.SplashActivity
|
||||||
import com.simplemobiletools.notes.extensions.config
|
import com.simplemobiletools.notes.extensions.config
|
||||||
import com.simplemobiletools.notes.extensions.dbHelper
|
import com.simplemobiletools.notes.extensions.dbHelper
|
||||||
|
import com.simplemobiletools.notes.models.Widget
|
||||||
import com.simplemobiletools.notes.services.WidgetService
|
import com.simplemobiletools.notes.services.WidgetService
|
||||||
|
|
||||||
class MyWidgetProvider : AppWidgetProvider() {
|
class MyWidgetProvider : AppWidgetProvider() {
|
||||||
private fun setupAppOpenIntent(context: Context, views: RemoteViews, id: Int, noteId: Int) {
|
private fun setupAppOpenIntent(context: Context, views: RemoteViews, id: Int, widget: Widget) {
|
||||||
val intent = context.getLaunchIntent() ?: Intent(context, SplashActivity::class.java)
|
val intent = context.getLaunchIntent() ?: Intent(context, SplashActivity::class.java)
|
||||||
intent.putExtra(OPEN_NOTE_ID, noteId)
|
intent.putExtra(OPEN_NOTE_ID, widget.noteId)
|
||||||
val pendingIntent = PendingIntent.getActivity(context, noteId, intent, PendingIntent.FLAG_UPDATE_CURRENT)
|
val pendingIntent = PendingIntent.getActivity(context, widget.widgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||||
views.setOnClickPendingIntent(id, pendingIntent)
|
views.setOnClickPendingIntent(id, pendingIntent)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -27,25 +28,23 @@ class MyWidgetProvider : AppWidgetProvider() {
|
|||||||
super.onUpdate(context, appWidgetManager, appWidgetIds)
|
super.onUpdate(context, appWidgetManager, appWidgetIds)
|
||||||
val widgets = context.dbHelper.getWidgets()
|
val widgets = context.dbHelper.getWidgets()
|
||||||
widgets.forEach {
|
widgets.forEach {
|
||||||
val widgetId = it.widgetId
|
|
||||||
val noteId = it.noteId
|
|
||||||
val views = RemoteViews(context.packageName, R.layout.widget)
|
val views = RemoteViews(context.packageName, R.layout.widget)
|
||||||
views.setBackgroundColor(R.id.notes_widget_holder, context.config.widgetBgColor)
|
views.setBackgroundColor(R.id.notes_widget_holder, context.config.widgetBgColor)
|
||||||
setupAppOpenIntent(context, views, R.id.notes_widget_holder, noteId)
|
setupAppOpenIntent(context, views, R.id.notes_widget_holder, it)
|
||||||
|
|
||||||
Intent(context, WidgetService::class.java).apply {
|
Intent(context, WidgetService::class.java).apply {
|
||||||
putExtra(NOTE_ID, noteId)
|
putExtra(NOTE_ID, it.noteId)
|
||||||
data = Uri.parse(this.toUri(Intent.URI_INTENT_SCHEME))
|
data = Uri.parse(this.toUri(Intent.URI_INTENT_SCHEME))
|
||||||
views.setRemoteAdapter(R.id.notes_widget_listview, this)
|
views.setRemoteAdapter(R.id.notes_widget_listview, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
val startActivityIntent = context.getLaunchIntent() ?: Intent(context, SplashActivity::class.java)
|
val startActivityIntent = context.getLaunchIntent() ?: Intent(context, SplashActivity::class.java)
|
||||||
startActivityIntent.putExtra(OPEN_NOTE_ID, noteId)
|
startActivityIntent.putExtra(OPEN_NOTE_ID, it.noteId)
|
||||||
val startActivityPendingIntent = PendingIntent.getActivity(context, widgetId, startActivityIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
val startActivityPendingIntent = PendingIntent.getActivity(context, it.widgetId, startActivityIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||||
views.setPendingIntentTemplate(R.id.notes_widget_listview, startActivityPendingIntent)
|
views.setPendingIntentTemplate(R.id.notes_widget_listview, startActivityPendingIntent)
|
||||||
|
|
||||||
appWidgetManager.updateAppWidget(widgetId, views)
|
appWidgetManager.updateAppWidget(it.widgetId, views)
|
||||||
appWidgetManager.notifyAppWidgetViewDataChanged(widgetId, R.id.notes_widget_listview)
|
appWidgetManager.notifyAppWidgetViewDataChanged(it.widgetId, R.id.notes_widget_listview)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user