Forráskód Böngészése

Composable Theme seams to work maybe

Thomas Chef 2 éve
szülő
commit
688ae5d598

+ 2 - 1
app/src/main/AndroidManifest.xml

@@ -27,7 +27,8 @@
             android:exported="true"
             android:label="@string/app_name"
             android:screenOrientation="landscape"
-            android:theme="@style/Theme.HomeControlDisplay.Fullscreen">
+            android:theme="@style/Theme.HomeControlDisplay.NoActionBar">
+
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 

+ 60 - 15
app/src/main/java/chef/sundby/com/homecontroldisplay/FullscreenActivity.kt

@@ -8,27 +8,69 @@ import android.os.Bundle
 import android.os.Handler
 import android.os.Looper
 import android.util.Log
-import android.view.View
 import android.view.WindowInsets
-import android.widget.Button
-import android.widget.TextView
-import androidx.constraintlayout.widget.ConstraintLayout
+import android.view.WindowInsetsController
+import android.view.WindowManager
+import androidx.activity.ComponentActivity
+import androidx.activity.compose.setContent
+import androidx.compose.material.MaterialTheme
 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 chef.sundby.com.homecontroldisplay.ui.HomeControlApp
 import kotlinx.coroutines.*
-import java.lang.Runnable
-import kotlin.coroutines.coroutineContext
+import androidx.compose.material.Surface
+import chef.sundby.com.homecontroldisplay.ui.theme.HomeControlDisplayTheme
 
-class FullscreenActivity : AppCompatActivity() {
+class FullscreenActivity : ComponentActivity() {
 
-    private lateinit var binding: ActivityFullscreenBinding
+    private var cnt : Int = 0
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setContent {
+            HomeControlDisplayTheme {
+                Surface(color = MaterialTheme.colors.background) {
+                    HomeControlApp()
+                }
+            }
+        }
+        hideSystemUI()
+        fetchDataInBackground()
+    }
+
+    private fun fetchDataInBackground() {
+
+        Log.i("THOMAS","Starting fetchDataInBackground()")
+
+        lifecycleScope.launchWhenStarted {
+            repeatOnLifecycle(Lifecycle.State.STARTED) {
+                while (true) {
+                    Log.i("THOMAS","Cnt: $cnt")
+                    delay(1000)
+                    cnt++
+                }
+            }
+        }
+    }
+
+    fun hideSystemUI() {
+
+        //Hides the ugly action bar at the top
+        actionBar?.hide()
+
+        WindowCompat.setDecorFitsSystemWindows(window, false)
+
+        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
+            window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
+        } else {
+            window.insetsController?.apply {
+                hide(WindowInsets.Type.statusBars())
+                systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
+            }
+        }
+    }
+
+    /*private lateinit var binding: ActivityFullscreenBinding
     private lateinit var fullscreenContent: TextView
     private lateinit var aButton: Button
     private val hideHandler = Handler(Looper.myLooper()!!)
@@ -129,6 +171,9 @@ class FullscreenActivity : AppCompatActivity() {
         isFullscreen = true
     }
 
+
+     */
+
     companion object {
         /**
          * Some older devices needs a small delay between UI widget updates

+ 16 - 4
app/src/main/java/chef/sundby/com/homecontroldisplay/ui/HomeControlApp.kt

@@ -1,20 +1,32 @@
 package chef.sundby.com.homecontroldisplay.ui
 
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.size
+import androidx.compose.material.MaterialTheme
 import androidx.compose.material.Surface
+import androidx.compose.material.Text
 import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
 import androidx.compose.ui.tooling.preview.Preview
-import androidx.compose.material.Text
+import androidx.compose.ui.unit.dp
+
 
 @Composable
 fun HomeControlApp() {
-    Text(text="Hej")
+
+        Text(text="Hej", modifier = Modifier.fillMaxSize() )
+        
+
 }
 
-@Preview
+
+
+@Preview(widthDp = 1280, heightDp = 720)
 @Composable
 fun HomeControlAppPreview() {
 
-    Surface {
+    Surface(color = MaterialTheme.colors.background,
+        modifier = Modifier.fillMaxSize()) {
 
         HomeControlApp()
     }

+ 54 - 0
app/src/main/java/chef/sundby/com/homecontroldisplay/ui/theme/Theme.kt

@@ -0,0 +1,54 @@
+package chef.sundby.com.homecontroldisplay.ui.theme
+
+import androidx.compose.foundation.isSystemInDarkTheme
+import androidx.compose.material.MaterialTheme
+import androidx.compose.material.darkColors
+import androidx.compose.material.lightColors
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.graphics.Color
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material.Shapes
+import androidx.compose.ui.unit.dp
+import androidx.compose.material.Typography
+import androidx.compose.ui.text.TextStyle
+import androidx.compose.ui.text.font.FontFamily
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.unit.sp
+
+val Typography = Typography(
+    body1 = TextStyle(
+        fontFamily = FontFamily.Default,
+        fontWeight = FontWeight.Normal,
+        fontSize = 16.sp
+    )
+)
+
+val Purple200 = Color(0xFFBB86FC)
+val Purple500 = Color(0xFF6200EE)
+val Purple700 = Color(0xFF3700B3)
+val Teal200 = Color(0xFF03DAC5)
+
+val Shapes = Shapes(
+    small = RoundedCornerShape(4.dp),
+    medium = RoundedCornerShape(4.dp),
+    large = RoundedCornerShape(0.dp)
+)
+
+private val DarkColorPalette = darkColors(
+    background = Color.Cyan,
+    primary = Color.Green, //Purple200,
+    primaryVariant = Color.Yellow, //Purple700,
+    secondary = Color.Cyan //Teal200
+)
+
+@Composable
+fun HomeControlDisplayTheme(
+    content: @Composable() () -> Unit
+) {
+    MaterialTheme(
+        colors = DarkColorPalette,
+        typography = Typography,
+        shapes = Shapes,
+        content = content
+    )
+}

+ 0 - 83
app/src/main/res/layout/activity_fullscreen.xml

@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="?attr/fullscreenBackgroundColor"
-    android:theme="@style/ThemeOverlay.HomeControlDisplay.FullscreenContainer"
-    tools:context=".FullscreenActivity">
-
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-        <TextView
-            android:id="@+id/fullscreenContent"
-            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:textAlignment="center"
-            android:textColor="#FFFFFF"
-            android:textSize="100sp"
-            android:textStyle="bold"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-
-        <Button
-            android:id="@+id/buttonA"
-            android:layout_width="200dp"
-            android:layout_height="50dp"
-            android:layout_marginTop="25dp"
-            android:layout_marginEnd="25dp"
-            android:text="Button A"
-            android:textAlignment="center"
-            android:textSize="24sp"
-            android:textStyle="bold"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-
-        <Button
-            android:id="@+id/button2"
-            android:layout_width="200dp"
-            android:layout_height="50dp"
-            android:layout_marginTop="25dp"
-            android:layout_marginEnd="25dp"
-            android:text="Button"
-            android:textAlignment="center"
-            android:textSize="24sp"
-            android:textStyle="bold"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/buttonA" />
-
-        <Button
-            android:id="@+id/button3"
-            android:layout_width="200dp"
-            android:layout_height="50dp"
-            android:layout_marginTop="25dp"
-            android:layout_marginEnd="25dp"
-            android:text="Button"
-            android:textAlignment="center"
-            android:textSize="24sp"
-            android:textStyle="bold"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/button2" />
-
-        <Button
-            android:id="@+id/button4"
-            android:layout_width="200dp"
-            android:layout_height="50dp"
-            android:layout_marginTop="25dp"
-            android:layout_marginEnd="25dp"
-            android:text="Button"
-            android:textAlignment="center"
-            android:textSize="24sp"
-            android:textStyle="bold"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/button3" />
-    </androidx.constraintlayout.widget.ConstraintLayout>
-</FrameLayout>

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

@@ -1,21 +0,0 @@
-<resources xmlns:tools="http://schemas.android.com/tools">
-    <!-- Base application theme. -->
-    <style name="Theme.HomeControlDisplay" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
-        <!-- Primary brand color. -->
-        <item name="colorPrimary">@color/purple_200</item>
-        <item name="colorPrimaryVariant">@color/purple_700</item>
-        <item name="colorOnPrimary">@color/black</item>
-        <!-- Secondary brand color. -->
-        <item name="colorSecondary">@color/teal_200</item>
-        <item name="colorSecondaryVariant">@color/teal_200</item>
-        <item name="colorOnSecondary">@color/black</item>
-        <!-- Status bar color. -->
-        <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
-        <!-- Customize your theme here. -->
-    </style>
-
-    <style name="ThemeOverlay.HomeControlDisplay.FullscreenContainer" parent="">
-        <item name="fullscreenBackgroundColor">@color/black</item>
-        <item name="fullscreenTextColor">@color/white</item>
-    </style>
-</resources>

+ 0 - 11
app/src/main/res/values/styles.xml

@@ -1,11 +0,0 @@
-<resources>
-
-    <style name="Widget.Theme.HomeControlDisplay.ActionBar.Fullscreen" parent="Widget.AppCompat.ActionBar">
-        <item name="android:background">@color/black_overlay</item>
-    </style>
-
-    <style name="Widget.Theme.HomeControlDisplay.ButtonBar.Fullscreen" parent="">
-        <item name="android:background">@color/black_overlay</item>
-        <item name="android:buttonBarStyle">?android:attr/buttonBarStyle</item>
-    </style>
-</resources>

+ 14 - 15
app/src/main/res/values/themes.xml

@@ -1,29 +1,28 @@
 <resources xmlns:tools="http://schemas.android.com/tools">
+
     <!-- Base application theme. -->
     <style name="Theme.HomeControlDisplay" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
-        <!-- Primary brand color. -->
+
+        <!--
         <item name="colorPrimary">@color/purple_500</item>
         <item name="colorPrimaryVariant">@color/purple_700</item>
-        <item name="colorOnPrimary">@color/white</item>
-        <!-- Secondary brand color. -->
+        <item name="colorOnPrimary">@color/teal_200</item>
+
         <item name="colorSecondary">@color/teal_200</item>
         <item name="colorSecondaryVariant">@color/teal_700</item>
         <item name="colorOnSecondary">@color/black</item>
-        <!-- Status bar color. -->
+
         <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
-        <!-- Customize your theme here. -->
-    </style>
+        -->
 
-    <style name="Theme.HomeControlDisplay.Fullscreen" parent="Theme.HomeControlDisplay">
-        <item name="android:actionBarStyle">
-            @style/Widget.Theme.HomeControlDisplay.ActionBar.Fullscreen
-        </item>
-        <item name="android:windowActionBarOverlay">true</item>
-        <item name="android:windowBackground">@null</item>
     </style>
 
-    <style name="ThemeOverlay.HomeControlDisplay.FullscreenContainer" parent="">
-        <item name="fullscreenBackgroundColor">@color/black</item>
-        <item name="fullscreenTextColor">@color/white</item>
+    <style name="Theme.HomeControlDisplay.NoActionBar">
+        <!--
+        <item name="windowActionBar">false</item>
+        <item name="windowNoTitle">true</item>
+        -->
+
     </style>
+
 </resources>