|
@@ -0,0 +1,70 @@
|
|
|
+package com.flacksta.chef.journeygpstracker
|
|
|
+
|
|
|
+
|
|
|
+import android.app.PendingIntent
|
|
|
+import android.app.Service
|
|
|
+import android.appwidget.AppWidgetManager
|
|
|
+import android.content.Intent
|
|
|
+import android.os.IBinder
|
|
|
+import android.util.Log
|
|
|
+import android.widget.RemoteViews
|
|
|
+import android.widget.TextView
|
|
|
+import com.android.volley.Request
|
|
|
+import com.android.volley.Response
|
|
|
+import com.android.volley.toolbox.StringRequest
|
|
|
+import com.android.volley.toolbox.Volley
|
|
|
+import java.util.*
|
|
|
+
|
|
|
+
|
|
|
+class UpdateWidgetService : Service() {
|
|
|
+
|
|
|
+ override fun onStart(intent: Intent, startId: Int) {
|
|
|
+ val appWidgetManager = AppWidgetManager.getInstance(this.applicationContext)
|
|
|
+ val allWidgetIds = intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS)
|
|
|
+
|
|
|
+ val remoteViews = RemoteViews(this.applicationContext.packageName, R.layout.home_temp_app_widget )
|
|
|
+
|
|
|
+ val queue = Volley.newRequestQueue(this)
|
|
|
+ val url = "http://chef.maya.se/info/curr_temp.php"
|
|
|
+
|
|
|
+ // Request a string response from the provided URL.
|
|
|
+ val stringRequest = StringRequest(
|
|
|
+ Request.Method.GET, url,
|
|
|
+ Response.Listener<String> { response ->
|
|
|
+ Log.i("SERVICE", "Response is: $response")
|
|
|
+ for (widgetId in allWidgetIds!!) {
|
|
|
+ remoteViews.setTextViewText(R.id.appwidget_text,"$response")
|
|
|
+ appWidgetManager.updateAppWidget(widgetId, remoteViews)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ Response.ErrorListener {
|
|
|
+ Log.i("SERVICE", "That didn't work!" )
|
|
|
+ for (widgetId in allWidgetIds!!) {
|
|
|
+ remoteViews.setTextViewText(R.id.appwidget_text,"ERR")
|
|
|
+ appWidgetManager.updateAppWidget(widgetId, remoteViews)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ )
|
|
|
+
|
|
|
+ queue.add(stringRequest)
|
|
|
+
|
|
|
+ for (widgetId in allWidgetIds!!) {
|
|
|
+
|
|
|
+ val clickIntent = Intent(this.applicationContext,HomeTempAppWidget::class.java )
|
|
|
+ clickIntent.action = AppWidgetManager.ACTION_APPWIDGET_UPDATE
|
|
|
+ clickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, allWidgetIds )
|
|
|
+ val pendingIntent = PendingIntent.getBroadcast(
|
|
|
+ applicationContext, 0, clickIntent,
|
|
|
+ PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
|
|
|
+ )
|
|
|
+ remoteViews.setOnClickPendingIntent(R.id.appwidget_text, pendingIntent)
|
|
|
+ }
|
|
|
+ stopSelf()
|
|
|
+ super.onStart(intent, startId)
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onBind(intent: Intent): IBinder? {
|
|
|
+ return null
|
|
|
+ }
|
|
|
+}
|
|
|
+
|