Selaa lähdekoodia

Fetch temp with coroutine in background works

Thomas Chef 2 vuotta sitten
vanhempi
commit
088d51864e

+ 1 - 1
.idea/misc.xml

@@ -8,7 +8,7 @@
       </map>
     </option>
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">

+ 3 - 0
app/build.gradle

@@ -44,6 +44,9 @@ dependencies {
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
 
     implementation("com.android.volley:volley:1.2.1")
+    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4")
+
+    implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.5.1"
 
     //implementation 'com.squareup.retrofit2:retrofit:2.9.0'
     //implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

+ 27 - 24
app/src/main/java/chef/sundby/com/homecontroldisplay/FullscreenActivity.kt

@@ -16,7 +16,15 @@ import androidx.constraintlayout.widget.ConstraintLayout
 import androidx.core.view.WindowCompat
 import androidx.core.view.WindowInsetsCompat
 import androidx.core.view.WindowInsetsControllerCompat
+import androidx.lifecycle.*
 import chef.sundby.com.homecontroldisplay.databinding.ActivityFullscreenBinding
+import com.android.volley.Request
+import com.android.volley.Response
+import com.android.volley.toolbox.StringRequest
+import com.android.volley.toolbox.Volley
+import kotlinx.coroutines.*
+import java.lang.Runnable
+import kotlin.coroutines.coroutineContext
 
 class FullscreenActivity : AppCompatActivity() {
 
@@ -55,42 +63,37 @@ class FullscreenActivity : AppCompatActivity() {
             startService(intent)
         }
 
-        //updateHandler = Handler()
-        runnable = Runnable {
-            //updateDisplay() // some action(s)
-        }
-        updateHandler.postDelayed(runnable, 5000)
+        fetchDataInBackground()
+    }
 
+    private fun fetchDataInBackground() {
 
+        lifecycleScope.launchWhenStarted {
+            repeatOnLifecycle(Lifecycle.State.STARTED) {
+                while (true) {
+                    getTemperature()
+                    delay(10000)
+                }
+            }
+        }
     }
 
     private suspend fun getTemperature() {
         Log.i("THOMAS","getTemperature()")
-        val url = "http://chef.sundby.com/info/curr_temp.php"
-
         val queue = Volley.newRequestQueue(this)
         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")
-                    remoteViews.setTextColor(R.id.appwidget_text, Color.BLACK)
-                    remoteViews.setViewVisibility(R.id.progressBar, View.INVISIBLE)
-                    appWidgetManager.updateAppWidget(widgetId, remoteViews)
-                }
+            "https://chef.sundby.com/info/curr_temp.php",
+            { response ->
+                fullscreenContent.text = response
+                Log.i("THOMAS", "Response is: $response")
+
             },
-            Response.ErrorListener {
-                Log.i("SERVICE", "That didn't work!" )
-                for (widgetId in allWidgetIds) {
-                    remoteViews.setTextViewText(R.id.appwidget_text,"Error")
-                    appWidgetManager.updateAppWidget(widgetId, remoteViews)
-                }
+            { error ->
+                Log.i("THOMAS", "That didn't work! ${error}" )
             }
         )
-
-        //updateHandler.postDelayed(runnable, 5000)
+        queue.add(stringRequest)
     }
 
     private fun toggle() {

+ 4 - 3
app/src/main/res/layout/activity_fullscreen.xml

@@ -15,14 +15,15 @@
 
         <TextView
             android:id="@+id/fullscreenContent"
-            android:layout_width="200dp"
+            android:layout_width="300dp"
             android:layout_height="200dp"
             android:layout_marginStart="25dp"
             android:layout_marginTop="25dp"
             android:fontFamily="sans-serif-black"
-            android:text="3.5"
+            android:text="-3.5"
             android:textAlignment="center"
-            android:textSize="125sp"
+            android:textColor="#FFFFFF"
+            android:textSize="100sp"
             android:textStyle="bold"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent" />

+ 2 - 2
app/src/main/res/values-night/themes.xml

@@ -15,7 +15,7 @@
     </style>
 
     <style name="ThemeOverlay.HomeControlDisplay.FullscreenContainer" parent="">
-        <item name="fullscreenBackgroundColor">@color/light_blue_900</item>
-        <item name="fullscreenTextColor">@color/light_blue_A400</item>
+        <item name="fullscreenBackgroundColor">@color/black</item>
+        <item name="fullscreenTextColor">@color/white</item>
     </style>
 </resources>

+ 2 - 2
app/src/main/res/values/themes.xml

@@ -23,7 +23,7 @@
     </style>
 
     <style name="ThemeOverlay.HomeControlDisplay.FullscreenContainer" parent="">
-        <item name="fullscreenBackgroundColor">@color/light_blue_600</item>
-        <item name="fullscreenTextColor">@color/light_blue_A200</item>
+        <item name="fullscreenBackgroundColor">@color/black</item>
+        <item name="fullscreenTextColor">@color/white</item>
     </style>
 </resources>