Skip to content

Commit 3df5629

Browse files
committed
revert: remove widget configuration screen (v1.6.0 and v1.6.1)
This reverts commits fb4b851 and 25073d2. The widget configuration activity was causing errors when trying to add widgets. Reverting to stable v1.5.2 behavior with fixed-size widgets that use global plugin data.
1 parent 25073d2 commit 3df5629

File tree

9 files changed

+13
-435
lines changed

9 files changed

+13
-435
lines changed

android/app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,16 +71,7 @@
7171
android:name="android.appwidget.provider"
7272
android:resource="@xml/crossbar_widget_large_info" />
7373
</receiver>
74-
75-
<!-- Widget Configuration Activity -->
76-
<activity
77-
android:name=".WidgetConfigActivity"
78-
android:exported="true"
79-
android:theme="@android:style/Theme.Translucent.NoTitleBar">
80-
<intent-filter>
81-
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
82-
</intent-filter>
83-
</activity>
74+
8475
<!-- Boot Completed Receiver for auto-start -->
8576
<receiver
8677
android:name=".BootReceiver"

android/app/src/main/kotlin/com/verseles/crossbar/CrossbarWidgetBase.kt

Lines changed: 10 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -53,35 +53,18 @@ abstract class CrossbarWidgetBase : HomeWidgetProvider() {
5353
val layoutId = getLayoutId()
5454
val views = RemoteViews(context.packageName, layoutId)
5555

56-
// First, try to get widget-specific plugin configuration
57-
val widgetPluginsJson = widgetData.getString("widget_${appWidgetId}_plugins", null)
58-
var pluginIds: List<String> = emptyList()
59-
60-
if (widgetPluginsJson != null) {
61-
// Use widget-specific plugin selection
62-
try {
63-
val jsonArray = JSONArray(widgetPluginsJson)
64-
pluginIds = (0 until jsonArray.length()).map { jsonArray.getString(it) }
65-
android.util.Log.d(TAG, "Widget $appWidgetId using configured plugins: $pluginIds")
66-
} catch (e: Exception) {
67-
android.util.Log.e(TAG, "Error parsing widget config for $appWidgetId", e)
68-
}
69-
}
70-
71-
// Fallback to global plugin_ids if no specific config
72-
if (pluginIds.isEmpty()) {
73-
val pluginIdsJson = widgetData.getString("plugin_ids", null)
74-
pluginIds = try {
75-
if (pluginIdsJson != null) {
76-
val jsonArray = JSONArray(pluginIdsJson)
77-
(0 until jsonArray.length()).map { jsonArray.getString(it) }
78-
} else {
79-
emptyList()
80-
}
81-
} catch (e: Exception) {
82-
android.util.Log.e(TAG, "Error parsing plugin IDs", e)
56+
// Get plugin IDs from stored data
57+
val pluginIdsJson = widgetData.getString("plugin_ids", null)
58+
val pluginIds = try {
59+
if (pluginIdsJson != null) {
60+
val jsonArray = JSONArray(pluginIdsJson)
61+
(0 until jsonArray.length()).map { jsonArray.getString(it) }
62+
} else {
8363
emptyList()
8464
}
65+
} catch (e: Exception) {
66+
android.util.Log.e(TAG, "Error parsing plugin IDs", e)
67+
emptyList()
8568
}
8669

8770
if (pluginIds.isEmpty()) {

android/app/src/main/kotlin/com/verseles/crossbar/MainActivity.kt

Lines changed: 2 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@ import java.io.RandomAccessFile
1313

1414
class MainActivity : FlutterActivity() {
1515
private val CHANNEL = "com.verseles.crossbar/system"
16-
private val WIDGET_CONFIG_CHANNEL = "com.verseles.crossbar/widget_config"
17-
18-
// Store widget config intent data to pass to Flutter
19-
private var pendingWidgetConfig: Map<String, Any>? = null
2016

2117
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
2218
GeneratedPluginRegistrant.registerWith(flutterEngine)
@@ -50,17 +46,6 @@ class MainActivity : FlutterActivity() {
5046
else -> result.notImplemented()
5147
}
5248
}
53-
54-
// Widget configuration channel
55-
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, WIDGET_CONFIG_CHANNEL).setMethodCallHandler { call, result ->
56-
when (call.method) {
57-
"getWidgetConfigIntent" -> {
58-
result.success(pendingWidgetConfig)
59-
pendingWidgetConfig = null // Clear after reading
60-
}
61-
else -> result.notImplemented()
62-
}
63-
}
6449
}
6550

6651
private fun getBatteryLevel(): Int {
@@ -158,43 +143,13 @@ class MainActivity : FlutterActivity() {
158143
}
159144

160145
private fun handleIntent(intent: Intent?) {
161-
if (intent == null) return
162-
163-
// Handle widget refresh action
164-
if (intent.action == "com.verseles.crossbar.ACTION_REFRESH") {
146+
if (intent?.action == "com.verseles.crossbar.ACTION_REFRESH") {
165147
android.util.Log.d("Crossbar", "Widget refresh requested")
148+
// Notify Flutter to refresh widgets via Method Channel
166149
flutterEngine?.dartExecutor?.binaryMessenger?.let { messenger ->
167150
MethodChannel(messenger, CHANNEL).invokeMethod("onWidgetRefresh", null)
168151
}
169152
}
170-
171-
// Handle widget configuration deep link
172-
val data = intent.data
173-
if (data != null && data.scheme == "crossbar" && data.host == "widget-config") {
174-
val widgetIdStr = data.pathSegments.firstOrNull()
175-
val widgetId = widgetIdStr?.toIntOrNull()
176-
val widgetSize = data.getQueryParameter("size") ?:
177-
intent.getStringExtra("widget_size") ?: "medium"
178-
179-
if (widgetId != null) {
180-
android.util.Log.d("Crossbar", "Widget config requested for widget $widgetId (size: $widgetSize)")
181-
pendingWidgetConfig = mapOf(
182-
"widgetId" to widgetId,
183-
"widgetSize" to widgetSize
184-
)
185-
}
186-
}
187-
188-
// Also check for extras (from WidgetConfigActivity)
189-
val extraWidgetId = intent.getIntExtra(android.appwidget.AppWidgetManager.EXTRA_APPWIDGET_ID, -1)
190-
if (extraWidgetId != -1 && pendingWidgetConfig == null) {
191-
val widgetSize = intent.getStringExtra("widget_size") ?: "medium"
192-
android.util.Log.d("Crossbar", "Widget config from extras for widget $extraWidgetId (size: $widgetSize)")
193-
pendingWidgetConfig = mapOf(
194-
"widgetId" to extraWidgetId,
195-
"widgetSize" to widgetSize
196-
)
197-
}
198153
}
199154

200155
private fun startCrossbarForegroundService() {

android/app/src/main/kotlin/com/verseles/crossbar/WidgetConfigActivity.kt

Lines changed: 0 additions & 91 deletions
This file was deleted.

android/app/src/main/res/xml/crossbar_widget_large_info.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
3-
android:configure="com.verseles.crossbar.WidgetConfigActivity"
43
android:description="@string/widget_description"
54
android:initialLayout="@layout/crossbar_widget_large"
65
android:minWidth="180dp"

android/app/src/main/res/xml/crossbar_widget_medium_info.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
3-
android:configure="com.verseles.crossbar.WidgetConfigActivity"
43
android:description="@string/widget_description"
54
android:initialLayout="@layout/crossbar_widget_medium"
65
android:minWidth="110dp"

android/app/src/main/res/xml/crossbar_widget_small_info.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
3-
android:configure="com.verseles.crossbar.WidgetConfigActivity"
43
android:description="@string/widget_description"
54
android:initialLayout="@layout/crossbar_widget_small"
65
android:minWidth="40dp"

0 commit comments

Comments
 (0)