diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/receiver/WidgetProvider.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/receiver/WidgetProvider.kt
index 9cc1501d..dfda98b9 100644
--- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/receiver/WidgetProvider.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/receiver/WidgetProvider.kt
@@ -3,14 +3,13 @@ package com.v2ray.ang.receiver
import android.app.PendingIntent
import android.appwidget.AppWidgetManager
import android.appwidget.AppWidgetProvider
+import android.content.ComponentName
import android.content.Context
import android.content.Intent
-import android.os.Bundle
import android.widget.RemoteViews
import com.v2ray.ang.R
import com.v2ray.ang.AppConfig
import com.v2ray.ang.util.Utils
-import org.jetbrains.anko.toast
class WidgetProvider : AppWidgetProvider() {
/**
@@ -19,11 +18,21 @@ class WidgetProvider : AppWidgetProvider() {
override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {
super.onUpdate(context, appWidgetManager, appWidgetIds)
+ val isRunning = Utils.isServiceRun(context, "com.v2ray.ang.service.V2RayVpnService")
+ updateWidgetBackground(context, appWidgetManager, appWidgetIds, isRunning)
+ }
+
+ private fun updateWidgetBackground(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray, isRunning: Boolean) {
val remoteViews = RemoteViews(context.packageName, R.layout.widget_switch)
val intent = Intent(context, WidgetProvider::class.java)
intent.setAction(AppConfig.BROADCAST_ACTION_WIDGET_CLICK)
val pendingIntent = PendingIntent.getBroadcast(context, R.id.layout_switch, intent, PendingIntent.FLAG_UPDATE_CURRENT)
remoteViews.setOnClickPendingIntent(R.id.layout_switch, pendingIntent)
+ if (isRunning) {
+ remoteViews.setInt(R.id.layout_switch, "setBackgroundResource", R.drawable.ic_rounded_corner_theme);
+ } else {
+ remoteViews.setInt(R.id.layout_switch, "setBackgroundResource", R.drawable.ic_rounded_corner_grey);
+ }
for (appWidgetId in appWidgetIds) {
appWidgetManager.updateAppWidget(appWidgetId, remoteViews)
@@ -45,7 +54,9 @@ class WidgetProvider : AppWidgetProvider() {
// context.toast(R.string.toast_services_start)
Utils.startVService(context)
}
+ val manager = AppWidgetManager.getInstance(context)
+ updateWidgetBackground(context, manager, manager.getAppWidgetIds(ComponentName(context, WidgetProvider::class.java)),
+ !isRunning);
}
}
-
}
diff --git a/V2rayNG/app/src/main/res/drawable/ic_rounded_corner_grey.xml b/V2rayNG/app/src/main/res/drawable/ic_rounded_corner_grey.xml
new file mode 100644
index 00000000..92f9dc67
--- /dev/null
+++ b/V2rayNG/app/src/main/res/drawable/ic_rounded_corner_grey.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/V2rayNG/app/src/main/res/drawable/ic_rounded_corner_theme.xml b/V2rayNG/app/src/main/res/drawable/ic_rounded_corner_theme.xml
new file mode 100644
index 00000000..0463d8bf
--- /dev/null
+++ b/V2rayNG/app/src/main/res/drawable/ic_rounded_corner_theme.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/V2rayNG/app/src/main/res/layout/widget_switch.xml b/V2rayNG/app/src/main/res/layout/widget_switch.xml
index aa5d03ec..5d4ec237 100644
--- a/V2rayNG/app/src/main/res/layout/widget_switch.xml
+++ b/V2rayNG/app/src/main/res/layout/widget_switch.xml
@@ -1,12 +1,5 @@
-
-
-
-
-
-
+ android:padding="10dp"
+ android:src="@drawable/ic_v" />
\ No newline at end of file