From 52fa0a2e76f98e4c0c6844657f008e302b698ad9 Mon Sep 17 00:00:00 2001
From: maxwen <max.weninger@gmail.com>
Date: Sun, 29 Dec 2019 16:43:28 +0100
Subject: [PATCH] OpenDelta: set correct state after ab update and reboot

set navigation bar color accoring to other settings apps
add night theme to popup menus and dialogs

Change-Id: I7e5f2391fa4558d923234881d09b8f5365fea7f5
---

diff --git a/res/drawable/switchbar_background.xml b/res/drawable/switchbar_background.xml
deleted file mode 100644
index a58f2e9..0000000
--- a/res/drawable/switchbar_background.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<ripple xmlns:android="http://schemas.android.com/apk/res/android"
-    android:color="?android:attr/colorControlHighlight">
-    <item android:drawable="?android:attr/colorSecondary" />
-</ripple>
-
diff --git a/res/layout-land/activity_main.xml b/res/layout-land/activity_main.xml
index b792c3c..010d9d6 100644
--- a/res/layout-land/activity_main.xml
+++ b/res/layout-land/activity_main.xml
@@ -8,11 +8,12 @@
 
     <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="35dp"
+        android:layout_height="wrap_content"
         android:addStatesFromChildren="false"
         android:alwaysDrawnWithCache="false"
-        android:background="@drawable/switchbar_background"
-        android:orientation="horizontal">
+        android:orientation="horizontal"
+        android:paddingTop="8dp"
+        android:paddingBottom="8dp" >
 
         <TextView
             android:id="@+id/text_title"
@@ -23,7 +24,7 @@
             android:layout_marginStart="@dimen/activity_horizontal_margin"
             android:layout_weight="0.70"
             android:gravity="start"
-            android:textAppearance="@android:style/TextAppearance.Material.Large"
+            android:textAppearance="@android:style/TextAppearance.Material.Menu"
             android:textColor="?android:attr/textColorPrimary" />
 
 
@@ -51,7 +52,7 @@
             android:layout_marginStart="8dp"
             android:layout_marginTop="8dp"
             android:layout_weight="1"
-            app:cardBackgroundColor="?android:attr/colorBackground"
+            app:cardBackgroundColor="@color/card_bg_color"
             app:cardCornerRadius="2dp"
             app:contentPadding="10dp">
 
@@ -119,7 +120,7 @@
             android:layout_marginStart="4dp"
             android:layout_marginTop="8dp"
             android:layout_weight="1"
-            app:cardBackgroundColor="?android:attr/colorBackground"
+            app:cardBackgroundColor="@color/card_bg_color"
             app:cardCornerRadius="2dp"
             app:contentPadding="10dp">
 
diff --git a/res/layout/activity_main.xml b/res/layout/activity_main.xml
index c57b33f..2b4232f 100644
--- a/res/layout/activity_main.xml
+++ b/res/layout/activity_main.xml
@@ -8,11 +8,12 @@
 
     <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="67dp"
+        android:layout_height="wrap_content"
         android:addStatesFromChildren="false"
         android:alwaysDrawnWithCache="false"
-        android:background="@drawable/switchbar_background"
-        android:orientation="horizontal">
+        android:orientation="horizontal"
+        android:paddingTop="8dp"
+        android:paddingBottom="8dp" >
 
         <TextView
             android:id="@+id/text_title"
@@ -23,7 +24,7 @@
             android:layout_marginStart="@dimen/activity_horizontal_margin"
             android:layout_weight="1"
             android:gravity="start"
-            android:textAppearance="@android:style/TextAppearance.Material.Large"
+            android:textAppearance="@android:style/TextAppearance.Material.Menu"
             android:textColor="?android:attr/textColorPrimary" />
 
 
@@ -40,7 +41,6 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:elevation="0dp"
         android:orientation="vertical"
         android:weightSum="3" >
 
@@ -52,7 +52,7 @@
             android:layout_marginStart="8dp"
             android:layout_marginTop="8dp"
             android:layout_weight="1"
-            app:cardBackgroundColor="?android:attr/colorBackground"
+            app:cardBackgroundColor="@color/card_bg_color"
             app:cardCornerRadius="2dp"
             app:contentPadding="16dp">
 
@@ -119,7 +119,7 @@
             android:layout_marginStart="8dp"
             android:layout_marginTop="4dp"
             android:layout_weight="2"
-            app:cardBackgroundColor="?android:attr/colorBackground"
+            app:cardBackgroundColor="@color/card_bg_color"
             app:cardCornerRadius="2dp"
             app:contentPadding="16dp">
 
diff --git a/res/values-night/colors.xml b/res/values-night/colors.xml
new file mode 100644
index 0000000..8d837d2
--- /dev/null
+++ b/res/values-night/colors.xml
@@ -0,0 +1,12 @@
+<resources>
+    <color name="logo_none">#fffafafa</color>
+    <color name="logo_disabled">#ff9E9E9E</color>
+    <color name="logo_err">#F44336</color>
+    <color name="logo_white">@android:color/white</color>
+    <color name="material_grey_100">#f5f5f5</color>
+    <color name="material_grey_200">#eeeeee</color>
+    <color name="material_grey_300">#ffe0e0e0</color>
+    <color name="omni_color2">@*android:color/primary_dark_device_default_settings</color>
+    <color name="omni_color1">@*android:color/primary_device_default_settings</color>
+    <color name="card_bg_color">@color/omni_color1</color>
+</resources>
diff --git a/res/values-night/styles.xml b/res/values-night/styles.xml
new file mode 100644
index 0000000..ff43cc4
--- /dev/null
+++ b/res/values-night/styles.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <style name="Theme.OpenDelta" parent="@android:style/Theme.DeviceDefault.Settings">
+        <item name="android:buttonStyle">?android:attr/borderlessButtonStyle</item>
+        <item name="android:navigationBarColor">@color/omni_color2</item>
+        <item name="android:actionBarPopupTheme">@style/Theme.OpenDelta.PopupMenu</item>
+        <item name="android:dialogTheme">@style/Theme.OpenDelta.Dialog</item>
+        <item name="android:alertDialogTheme">@style/Theme.OpenDelta.AlertDialog</item>
+        <item name="android:windowBackground">@color/omni_color2</item>
+    </style>
+
+    <style name="Theme.OpenDelta.Settings" parent="@style/Theme.OpenDelta"></style>
+
+    <style name="Theme.OpenDelta.PopupMenu" parent="@android:style/Theme.DeviceDefault.Dialog" >
+        <item name="android:colorBackground">@color/omni_color1</item>
+    </style>
+
+    <style name="Theme.OpenDelta.Dialog" parent="@android:style/Theme.DeviceDefault.Dialog">
+        <item name="android:colorBackground">@color/omni_color1</item>
+    </style>
+
+    <style name="Theme.OpenDelta.AlertDialog" parent="@android:style/Theme.DeviceDefault.Dialog.Alert">
+        <item name="android:colorBackground">@color/omni_color1</item>
+    </style>
+</resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 0c02f27..8a377e7 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -6,7 +6,9 @@
     <color name="logo_err">#F44336</color>
     <color name="logo_alert">#FFEB3B</color>
     <color name="logo_white">@android:color/black</color>
+    <color name="material_grey_50">#fffafafa</color>
     <color name="material_grey_100">#f5f5f5</color>
     <color name="material_grey_200">#eeeeee</color>
     <color name="material_grey_300">#ffe0e0e0</color>
+    <color name="card_bg_color">@color/material_grey_50</color>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 15c7253..d897307 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -3,6 +3,8 @@
 
     <style name="Theme.CarbonDelta" parent="@android:style/Theme.DeviceDefault.Settings">
         <item name="android:buttonStyle">?android:attr/borderlessButtonStyle</item>
+        <item name="android:windowBackground">@color/material_grey_100</item>
+        <item name="android:navigationBarColor">@color/material_grey_100</item>
     </style>
 
     <style name="Theme.CarbonDelta.Settings" parent="@style/Theme.CarbonDelta"></style>
diff --git a/src/org/carbonrom/carbondelta/MainActivity.java b/src/org/carbonrom/carbondelta/MainActivity.java
index 4ea6820..0243e2e 100644
--- a/src/org/carbonrom/carbondelta/MainActivity.java
+++ b/src/org/carbonrom/carbondelta/MainActivity.java
@@ -360,8 +360,6 @@
                 disableCheckNow = true;
                 progress.setIndeterminate(false);
 
-                boolean fileFlash = mPrefs.getBoolean(UpdateService.PREF_FILE_FLASH, false);
-
                 final String flashImage = mPrefs.getString(
                         UpdateService.PREF_READY_FILENAME_NAME,
                         UpdateService.PREF_READY_FILENAME_DEFAULT);
@@ -371,11 +369,9 @@
                     updateVersion = flashImageBase.substring(0,
                             flashImageBase.lastIndexOf('.'));
                 }
-                if (fileFlash) {
-                    mPrefs.edit().putString(UpdateService.PREF_READY_FILENAME_NAME,
-                            UpdateService.PREF_READY_FILENAME_DEFAULT).commit();
-                    mPrefs.edit().putBoolean(UpdateService.PREF_FILE_FLASH, false).commit();
-                }
+                mPrefs.edit().putString(UpdateService.PREF_READY_FILENAME_NAME,
+                        UpdateService.PREF_READY_FILENAME_DEFAULT).commit();
+                mPrefs.edit().putBoolean(UpdateService.PREF_FILE_FLASH, false).commit();
                 DrawableCompat.setTint(mCarbonLogo.getDrawable(), ContextCompat.getColor(context, R.color.logo_white));
             } else if (UpdateService.STATE_ACTION_BUILD.equals(state)) {
                 enableCheck = true;
diff --git a/src/org/carbonrom/carbondelta/UpdateService.java b/src/org/carbonrom/carbondelta/UpdateService.java
index 1c0df01..0715393 100644
--- a/src/org/carbonrom/carbondelta/UpdateService.java
+++ b/src/org/carbonrom/carbondelta/UpdateService.java
@@ -1583,7 +1583,7 @@
     private String handleUpdateCleanup() throws FileNotFoundException {
         String flashFilename = prefs.getString(PREF_READY_FILENAME_NAME, PREF_READY_FILENAME_DEFAULT);
         String intialFile = prefs.getString(PREF_INITIAL_FILE, PREF_READY_FILENAME_DEFAULT);
-        boolean fileFlash =  prefs.getBoolean(SettingsActivity.PREF_FILE_FLASH, false);
+        boolean fileFlash =  prefs.getBoolean(PREF_FILE_FLASH, false);
 
         if (flashFilename == PREF_READY_FILENAME_DEFAULT
                 || (!fileFlash && !flashFilename.startsWith(config.getPathBase()))
