From 9a0149def89ea4f55efaf1902e09e97fa427a6ff Mon Sep 17 00:00:00 2001 From: realwk <97958348+realwk@users.noreply.github.com> Date: Wed, 30 Jul 2025 21:21:55 +0200 Subject: [PATCH] Initial widget work Co-authored-by: Sylvia van Os --- app/src/main/AndroidManifest.xml | 18 +++ .../card_locker/CatimaRemoteViewsService.kt | 110 ++++++++++++++++++ .../java/protect/card_locker/CatimaWidget.kt | 34 ++++++ .../protect/card_locker/MainActivity.java | 28 ++--- .../main/java/protect/card_locker/Utils.java | 37 ++++++ .../res/drawable-nodpi/widget_preview.png | Bin 0 -> 61139 bytes app/src/main/res/layout/catima_widget.xml | 17 +++ .../main/res/layout/catima_widget_empty.xml | 12 ++ .../main/res/layout/catima_widget_item.xml | 26 +++++ app/src/main/res/values/strings.xml | 2 + app/src/main/res/xml/catima_widget_info.xml | 12 ++ 11 files changed, 280 insertions(+), 16 deletions(-) create mode 100644 app/src/main/java/protect/card_locker/CatimaRemoteViewsService.kt create mode 100644 app/src/main/java/protect/card_locker/CatimaWidget.kt create mode 100644 app/src/main/res/drawable-nodpi/widget_preview.png create mode 100644 app/src/main/res/layout/catima_widget.xml create mode 100644 app/src/main/res/layout/catima_widget_empty.xml create mode 100644 app/src/main/res/layout/catima_widget_item.xml create mode 100644 app/src/main/res/xml/catima_widget_info.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 98f978d98..a65683a29 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -30,6 +30,20 @@ android:supportsRtl="true" android:theme="@style/AppTheme" android:localeConfig="@xml/locales_config"> + + + + + + + + + + + diff --git a/app/src/main/java/protect/card_locker/CatimaRemoteViewsService.kt b/app/src/main/java/protect/card_locker/CatimaRemoteViewsService.kt new file mode 100644 index 000000000..d4ca18443 --- /dev/null +++ b/app/src/main/java/protect/card_locker/CatimaRemoteViewsService.kt @@ -0,0 +1,110 @@ +package protect.card_locker + +import android.content.Context +import android.content.Intent +import android.database.sqlite.SQLiteDatabase +import android.graphics.Color +import android.graphics.drawable.Icon +import android.os.Build +import android.view.View +import android.widget.RemoteViews +import android.widget.RemoteViewsService +import protect.card_locker.DBHelper.LoyaltyCardArchiveFilter +import kotlin.math.max + +class CatimaWidgetRemoteViewsFactory(private var context: Context) : + RemoteViewsService.RemoteViewsFactory { + + private var mDatabase: SQLiteDatabase = DBHelper(context).readableDatabase + + override fun onCreate() { + onDataSetChanged() + } + + private var mCards: ArrayList = ArrayList() + + override fun onDataSetChanged() { + val mOrder = Utils.getLoyaltyCardOrder(context); + val mOrderDirection = Utils.getLoyaltyCardOrderDirection(context); + + val cur = DBHelper.getLoyaltyCardCursor( + mDatabase, + "", + null, + mOrder, + mOrderDirection, + LoyaltyCardArchiveFilter.Unarchived + ) + + mCards.clear() + if (cur.moveToFirst()) { + do { + val item = LoyaltyCard.fromCursor(context, cur) + mCards.add(item) + } while (cur.moveToNext()) + } + } + + override fun onDestroy() {} + + override fun getCount(): Int { + return max(1, mCards.count()) + } + + private fun createRemoteView(item: LoyaltyCard): RemoteViews + { + val rv = RemoteViews(context.packageName, R.layout.catima_widget_item).apply { + val headerColor = Utils.getHeaderColor(context, item) + val foreground = if (Utils.needsDarkForeground(headerColor)) Color.BLACK else Color.WHITE + setInt(R.id.item_container, "setBackgroundColor", headerColor) + val icon = item.getImageThumbnail(context) + // setImageViewIcon is not supported on Android 5, so force Android 5 down the text path + if (icon != null && Build.VERSION.SDK_INT >= 23) { + setInt(R.id.item_container, "setBackgroundColor", foreground) + setImageViewIcon(R.id.item_image, Icon.createWithBitmap(icon)) + setViewVisibility(R.id.item_text, View.INVISIBLE) + setViewVisibility(R.id.item_image, View.VISIBLE) + } else { + setImageViewBitmap(R.id.item_image, null) + setTextViewText(R.id.item_text, item.store) + setViewVisibility(R.id.item_text, View.VISIBLE) + setViewVisibility(R.id.item_image, View.INVISIBLE) + setTextColor( + R.id.item_text, + foreground + ) + } + + val fillInIntent = Intent().apply { + putExtra(LoyaltyCardViewActivity.BUNDLE_ID, item.id) + } + + setOnClickFillInIntent(R.id.item_container, fillInIntent) + } + + return rv + } + + override fun getViewAt(position: Int): RemoteViews { + if (mCards.isEmpty()) { + return RemoteViews(context.packageName, R.layout.catima_widget_empty) + } + + val item = mCards[position] + return createRemoteView(item) + } + + override fun getLoadingView(): RemoteViews? = null + + override fun getViewTypeCount(): Int = 1 + + override fun getItemId(position: Int): Long = position.toLong() + + override fun hasStableIds(): Boolean = true +} + +class CatimaRemoteViewsService : RemoteViewsService() { + override fun onGetViewFactory(intent: Intent?): RemoteViewsFactory { + return CatimaWidgetRemoteViewsFactory(applicationContext) + } +} \ No newline at end of file diff --git a/app/src/main/java/protect/card_locker/CatimaWidget.kt b/app/src/main/java/protect/card_locker/CatimaWidget.kt new file mode 100644 index 000000000..86b6c6070 --- /dev/null +++ b/app/src/main/java/protect/card_locker/CatimaWidget.kt @@ -0,0 +1,34 @@ +package protect.card_locker + +import android.app.PendingIntent +import android.appwidget.AppWidgetManager +import android.appwidget.AppWidgetProvider +import android.content.Context +import android.content.Intent +import android.widget.RemoteViews + +class CatimaWidget : AppWidgetProvider() { + override fun onUpdate( + context: Context, + appWidgetManager: AppWidgetManager, + appWidgetIds: IntArray + ) { + for (appWidgetId in appWidgetIds) { + val views = RemoteViews(context.packageName, R.layout.catima_widget) + val intent = Intent(context, CatimaRemoteViewsService::class.java) + intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId) + views.setRemoteAdapter(R.id.grid_view, intent) + + val templateIntent = Intent(context, LoyaltyCardViewActivity::class.java) + val pendingIntent = PendingIntent.getActivity( + context, + 0, + templateIntent, + PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT + ) + + views.setPendingIntentTemplate(R.id.grid_view, pendingIntent) + appWidgetManager.updateAppWidget(appWidgetId, views) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/protect/card_locker/MainActivity.java b/app/src/main/java/protect/card_locker/MainActivity.java index dbcbd8a0d..9adc8ee10 100644 --- a/app/src/main/java/protect/card_locker/MainActivity.java +++ b/app/src/main/java/protect/card_locker/MainActivity.java @@ -2,6 +2,8 @@ package protect.card_locker; import android.app.Activity; import android.app.SearchManager; +import android.appwidget.AppWidgetManager; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; @@ -330,22 +332,8 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard selectedTab = activeTabPref.getInt(getString(R.string.sharedpreference_active_tab), 0); // Restore sort preferences from Shared Preferences - // If one of the sorting prefererences has never been set or is set to an invalid value, - // stick to the defaults. - SharedPreferences sortPref = getApplicationContext().getSharedPreferences( - getString(R.string.sharedpreference_sort), - Context.MODE_PRIVATE); - - String orderString = sortPref.getString(getString(R.string.sharedpreference_sort_order), null); - String orderDirectionString = sortPref.getString(getString(R.string.sharedpreference_sort_direction), null); - - if (orderString != null && orderDirectionString != null) { - try { - mOrder = DBHelper.LoyaltyCardOrder.valueOf(orderString); - mOrderDirection = DBHelper.LoyaltyCardOrderDirection.valueOf(orderDirectionString); - } catch (IllegalArgumentException ignored) { - } - } + mOrder = Utils.getLoyaltyCardOrder(this); + mOrderDirection = Utils.getLoyaltyCardOrderDirection(this); mGroup = null; @@ -442,6 +430,14 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard if (mCurrentActionMode != null) { mCurrentActionMode.finish(); } + + updateWidget(mAdapter.mContext); + } + + private void updateWidget(Context context) { + AppWidgetManager manager = AppWidgetManager.getInstance(context); + int[] ids = manager.getAppWidgetIds(new ComponentName(context, CatimaWidget.class)); + manager.notifyAppWidgetViewDataChanged(ids, R.id.grid_view); } private void processParseResultList(List parseResultList, String group, boolean closeAppOnNoBarcode) { diff --git a/app/src/main/java/protect/card_locker/Utils.java b/app/src/main/java/protect/card_locker/Utils.java index a8eec2319..87a96371d 100644 --- a/app/src/main/java/protect/card_locker/Utils.java +++ b/app/src/main/java/protect/card_locker/Utils.java @@ -4,6 +4,7 @@ import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; @@ -1176,4 +1177,40 @@ public class Utils { return ImageView.ScaleType.FIT_CENTER; } + + public static DBHelper.LoyaltyCardOrder getLoyaltyCardOrder(Context context) { + SharedPreferences sortPref = context.getSharedPreferences( + "sharedpreference_sort", + Context.MODE_PRIVATE + ); + + String orderString = sortPref.getString("sharedpreference_sort_order", null); + + if (orderString != null) { + try { + return DBHelper.LoyaltyCardOrder.valueOf(orderString); + } catch (IllegalArgumentException ignored) { + } + } + + return DBHelper.LoyaltyCardOrder.Alpha; + } + + public static DBHelper.LoyaltyCardOrderDirection getLoyaltyCardOrderDirection(Context context) { + SharedPreferences sortPref = context.getSharedPreferences( + "sharedpreference_sort", + Context.MODE_PRIVATE + ); + + String orderDirectionString = sortPref.getString("sharedpreference_sort_direction", null); + + if (orderDirectionString != null) { + try { + return DBHelper.LoyaltyCardOrderDirection.valueOf(orderDirectionString); + } catch (IllegalArgumentException ignored) { + } + } + + return DBHelper.LoyaltyCardOrderDirection.Ascending; + } } diff --git a/app/src/main/res/drawable-nodpi/widget_preview.png b/app/src/main/res/drawable-nodpi/widget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..2e738a426f9eb8896fb95b5756450a091c2c3b8c GIT binary patch literal 61139 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/catima_widget.xml b/app/src/main/res/layout/catima_widget.xml new file mode 100644 index 000000000..e85e1091a --- /dev/null +++ b/app/src/main/res/layout/catima_widget.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/catima_widget_empty.xml b/app/src/main/res/layout/catima_widget_empty.xml new file mode 100644 index 000000000..a1857232c --- /dev/null +++ b/app/src/main/res/layout/catima_widget_empty.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/catima_widget_item.xml b/app/src/main/res/layout/catima_widget_item.xml new file mode 100644 index 000000000..84b757039 --- /dev/null +++ b/app/src/main/res/layout/catima_widget_item.xml @@ -0,0 +1,26 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d78a86dc2..420f84b2f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -362,5 +362,7 @@ This file is not supported Sorry, something went wrong, please try again... Width + Card list Set Barcode Width + No loyalty cards diff --git a/app/src/main/res/xml/catima_widget_info.xml b/app/src/main/res/xml/catima_widget_info.xml new file mode 100644 index 000000000..2efb897aa --- /dev/null +++ b/app/src/main/res/xml/catima_widget_info.xml @@ -0,0 +1,12 @@ + +