package com.anas4tech.noteable import android.appwidget.AppWidgetManager import android.content.ComponentName import android.content.Context import android.app.PendingIntent import android.content.Intent import android.content.SharedPreferences import android.net.Uri import android.widget.RemoteViews import es.antonborri.home_widget.HomeWidgetLaunchIntent import es.antonborri.home_widget.HomeWidgetProvider class NoteableWidgetProvider : HomeWidgetProvider() { override fun onUpdate( context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray, widgetData: SharedPreferences ) { appWidgetIds.forEach { appWidgetId -> val views = RemoteViews( context.packageName, R.layout.noteable_widget ) val palette = WidgetTheme.palette(context, widgetData) views.setInt( R.id.widget_container, "setBackgroundResource", palette.backgroundResource ) val serviceIntent = Intent(context, NotesWidgetRemoteViewsService::class.java).apply { putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId) data = Uri.parse(toUri(Intent.URI_INTENT_SCHEME)) } views.setRemoteAdapter(R.id.widget_notes, serviceIntent) val itemIntent = Intent(context, WidgetItemClickReceiver::class.java) val itemPendingIntent = PendingIntent.getBroadcast( context, appWidgetId, itemIntent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_MUTABLE ) views.setPendingIntentTemplate(R.id.widget_notes, itemPendingIntent) val openAppIntent = HomeWidgetLaunchIntent.getActivity( context, MainActivity::class.java ) views.setOnClickPendingIntent(R.id.widget_container, openAppIntent) appWidgetManager.updateAppWidget( appWidgetId, views ) appWidgetManager.notifyAppWidgetViewDataChanged( appWidgetId, R.id.widget_notes ) } } }