diff --git a/WallPanelApp/build.gradle b/WallPanelApp/build.gradle
index 75cba73..3079d70 100644
--- a/WallPanelApp/build.gradle
+++ b/WallPanelApp/build.gradle
@@ -25,7 +25,7 @@ apply plugin: 'com.google.firebase.crashlytics'
def versionMajor = 0
def versionMinor = 9
def versionPatch = 5
-def versionBuild = 6 // bump for dog food builds, public betas, etc.
+def versionBuild = 9 // bump for dog food builds, public betas, etc.
def CODE() {
Properties properties = new Properties()
@@ -148,6 +148,7 @@ dependencies {
// LiveData + ViewModel
implementation "androidx.lifecycle:lifecycle-extensions:$versions.lifecycle"
+ implementation 'com.google.firebase:firebase-analytics:17.2.2'
annotationProcessor "androidx.lifecycle:lifecycle-compiler:$versions.lifecycle"
implementation "androidx.lifecycle:lifecycle-reactivestreams:$versions.lifecycle"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$versions.lifecycle"
@@ -179,10 +180,16 @@ dependencies {
// Logging
implementation 'com.jakewharton.timber:timber:4.5.1'
+ // Import the BoM for the Firebase platform
+ implementation platform('com.google.firebase:firebase-bom:28.4.0')
+
+ // Declare the dependencies for the Crashlytics and Analytics libraries
+ // When using the BoM, you don't specify versions in Firebase library dependencies
+ implementation 'com.google.firebase:firebase-analytics-ktx'
+ implementation 'com.google.firebase:firebase-crashlytics-ktx'
+
// Firebase
- implementation 'com.google.firebase:firebase-core:19.0.0'
- implementation 'com.google.firebase:firebase-crashlytics:18.0.1'
- implementation 'com.google.firebase:firebase-analytics:19.0.0'
+ implementation 'com.google.firebase:firebase-core:19.0.1'
// Picasso image loading
implementation 'com.squareup.picasso:picasso:2.71828'
diff --git a/WallPanelApp/src/main/AndroidManifest.xml b/WallPanelApp/src/main/AndroidManifest.xml
index a1ca0ec..517575a 100644
--- a/WallPanelApp/src/main/AndroidManifest.xml
+++ b/WallPanelApp/src/main/AndroidManifest.xml
@@ -1,23 +1,7 @@
-
-
+
-
@@ -25,22 +9,14 @@
-
-
-
-
-
-
+
+
-
-
-
+
-
-
+ tools:ignore="ProtectedPermissions" />
@@ -61,7 +37,7 @@
android:required="false" />
+
-
-
@@ -121,15 +101,9 @@
-
-
-
-
\ No newline at end of file
diff --git a/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/WallPanel.kt b/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/WallPanel.kt
index 2b68f4f..1aa0277 100644
--- a/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/WallPanel.kt
+++ b/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/WallPanel.kt
@@ -19,7 +19,9 @@ package com.thanksmister.iot.wallpanel
import android.content.Context
import androidx.multidex.MultiDex
import com.google.firebase.FirebaseApp
+import com.google.firebase.analytics.FirebaseAnalytics
import com.thanksmister.iot.wallpanel.di.DaggerApplicationComponent
+import com.thanksmister.iot.wallpanel.utils.CrashlyticsTree
import com.thanksmister.iot.wallpanel.utils.LauncherShortcuts
import dagger.android.AndroidInjector
import dagger.android.support.DaggerApplication
@@ -27,6 +29,7 @@ import timber.log.Timber
class WallPanel : DaggerApplication() {
+
override fun applicationInjector(): AndroidInjector {
return DaggerApplicationComponent.builder().create(this);
}
@@ -37,7 +40,8 @@ class WallPanel : DaggerApplication() {
Timber.plant(Timber.DebugTree())
}
LauncherShortcuts.createShortcuts(this)
- FirebaseApp.initializeApp(applicationContext)
+ //FirebaseApp.initializeApp(applicationContext)
+ //FirebaseAnalytics.getInstance(applicationContext)
}
override fun attachBaseContext(base: Context) {
diff --git a/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/activities/BaseBrowserActivity.kt b/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/activities/BaseBrowserActivity.kt
index 8b24433..2bf869f 100644
--- a/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/activities/BaseBrowserActivity.kt
+++ b/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/activities/BaseBrowserActivity.kt
@@ -25,8 +25,10 @@ import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.view.View
+import android.view.ViewGroup
import android.view.ViewTreeObserver
import android.view.WindowManager
+import android.widget.Button
import android.widget.Toast
import androidx.appcompat.app.AppCompatDelegate
import androidx.localbroadcastmanager.content.LocalBroadcastManager
diff --git a/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/activities/BrowserActivityNative.kt b/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/activities/BrowserActivityNative.kt
index 89da355..75a9ddb 100644
--- a/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/activities/BrowserActivityNative.kt
+++ b/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/activities/BrowserActivityNative.kt
@@ -26,6 +26,7 @@ import android.os.Bundle
import android.os.Handler
import android.view.*
import android.webkit.*
+import android.widget.Button
import android.widget.Toast
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AlertDialog
@@ -180,6 +181,8 @@ class BrowserActivityNative : BaseBrowserActivity(), LifecycleObserver {
}
return true
}
+
+
}
mWebView.webViewClient = object : WebViewClient() {
diff --git a/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/activities/TestActivity.kt b/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/activities/TestActivity.kt
new file mode 100644
index 0000000..40ea247
--- /dev/null
+++ b/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/activities/TestActivity.kt
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2021 ThanksMister LLC
+ *
+ * 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.
+ */
+
+package com.thanksmister.iot.wallpanel.ui.activities
+
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
+import android.view.ViewGroup
+import android.widget.Button
+import com.thanksmister.iot.wallpanel.R
+
+class TestActivity : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_test)
+
+ val crashButton = Button(this)
+ crashButton.text = "Test Crash"
+ crashButton.setOnClickListener {
+ throw RuntimeException("Test Crash") // Force a crash
+ }
+
+ addContentView(crashButton, ViewGroup.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT))
+ }
+}
\ No newline at end of file
diff --git a/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/fragments/SettingsFragment.kt b/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/fragments/SettingsFragment.kt
index 14da6ed..653ba26 100644
--- a/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/fragments/SettingsFragment.kt
+++ b/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/fragments/SettingsFragment.kt
@@ -378,10 +378,8 @@ class SettingsFragment : BaseSettingsFragment() {
}
PREF_SETTINGS_USER_AGENT -> {
val value = userAgentPreference.text.orEmpty()
- if (value.isNotEmpty()) {
- configuration.browserUserAgent = value
- userAgentPreference.summary = value
- }
+ configuration.browserUserAgent = value
+ userAgentPreference.summary = value
}
PREF_SETTINGS_WEB_SCREENSAVER_URL -> {
val value = webScreenSaverUrl.text.orEmpty()
diff --git a/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/views/ScreenSaverView.kt b/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/views/ScreenSaverView.kt
index a49eb70..f3e9bf0 100644
--- a/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/views/ScreenSaverView.kt
+++ b/WallPanelApp/src/main/java/com/thanksmister/iot/wallpanel/ui/views/ScreenSaverView.kt
@@ -129,19 +129,21 @@ class ScreenSaverView : RelativeLayout {
setClockViews()
timeHandler = Handler()
timeHandler?.postDelayed(timeRunnable, 10)
- screenSaverImageLayout.visibility = View.INVISIBLE
- screenSaverWebViewLayout.visibility = View.GONE
+ screenSaverClockLayout.visibility = View.VISIBLE
+ //screenSaverWebViewLayout.visibility = View.GONE
+ } else {
+ screenSaverClockLayout.visibility = View.GONE
}
// show optional screensaver layers
if (showWallpaper) {
wallPaperHandler = Handler()
wallPaperHandler?.postDelayed(wallPaperRunnable, 10)
- screenSaverClockLayout.visibility = View.INVISIBLE
+ screenSaverImageLayout.visibility = View.VISIBLE
screenSaverWebViewLayout.visibility = View.GONE
} else if (showWebPage) {
- screenSaverClockLayout.visibility = View.INVISIBLE
- screenSaverImageLayout.visibility = View.INVISIBLE
+ //c
+ screenSaverImageLayout.visibility = View.GONE
screenSaverWebViewLayout.visibility = View.VISIBLE
startWebScreenSaver(webUrl)
}
diff --git a/WallPanelApp/src/main/res/layout-land/dialog_screen_saver.xml b/WallPanelApp/src/main/res/layout-land/dialog_screen_saver.xml
index 3817922..6340686 100644
--- a/WallPanelApp/src/main/res/layout-land/dialog_screen_saver.xml
+++ b/WallPanelApp/src/main/res/layout-land/dialog_screen_saver.xml
@@ -31,6 +31,21 @@
android:layout_gravity="center"
tools:ignore="HardcodedText" />
+
+
+
+
+
+
+
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WallPanelApp/src/main/res/layout-sw600dp-land/dialog_screen_saver.xml b/WallPanelApp/src/main/res/layout-sw600dp-land/dialog_screen_saver.xml
index a4ffec4..357289a 100644
--- a/WallPanelApp/src/main/res/layout-sw600dp-land/dialog_screen_saver.xml
+++ b/WallPanelApp/src/main/res/layout-sw600dp-land/dialog_screen_saver.xml
@@ -31,6 +31,20 @@
android:layout_gravity="center"
tools:ignore="HardcodedText"/>
+
+
+
+
+
+
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WallPanelApp/src/main/res/layout-sw600dp/dialog_screen_saver.xml b/WallPanelApp/src/main/res/layout-sw600dp/dialog_screen_saver.xml
index a4ffec4..357289a 100644
--- a/WallPanelApp/src/main/res/layout-sw600dp/dialog_screen_saver.xml
+++ b/WallPanelApp/src/main/res/layout-sw600dp/dialog_screen_saver.xml
@@ -31,6 +31,20 @@
android:layout_gravity="center"
tools:ignore="HardcodedText"/>
+
+
+
+
+
+
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WallPanelApp/src/main/res/layout-sw720dp-land/dialog_screen_saver.xml b/WallPanelApp/src/main/res/layout-sw720dp-land/dialog_screen_saver.xml
index ee5ae87..a6210b9 100644
--- a/WallPanelApp/src/main/res/layout-sw720dp-land/dialog_screen_saver.xml
+++ b/WallPanelApp/src/main/res/layout-sw720dp-land/dialog_screen_saver.xml
@@ -32,6 +32,20 @@
android:scaleType="centerCrop"
tools:ignore="HardcodedText" />
+
+
+
+
+
+
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WallPanelApp/src/main/res/layout-sw720dp/dialog_screen_saver.xml b/WallPanelApp/src/main/res/layout-sw720dp/dialog_screen_saver.xml
index 67e3820..f460376 100644
--- a/WallPanelApp/src/main/res/layout-sw720dp/dialog_screen_saver.xml
+++ b/WallPanelApp/src/main/res/layout-sw720dp/dialog_screen_saver.xml
@@ -31,6 +31,20 @@
android:layout_gravity="center"
tools:ignore="HardcodedText"/>
+
+
+
+
+
+
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WallPanelApp/src/main/res/layout/activity_test.xml b/WallPanelApp/src/main/res/layout/activity_test.xml
new file mode 100644
index 0000000..76d2ec2
--- /dev/null
+++ b/WallPanelApp/src/main/res/layout/activity_test.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WallPanelApp/src/main/res/layout/dialog_screen_saver.xml b/WallPanelApp/src/main/res/layout/dialog_screen_saver.xml
index 03a05e9..f7c7707 100644
--- a/WallPanelApp/src/main/res/layout/dialog_screen_saver.xml
+++ b/WallPanelApp/src/main/res/layout/dialog_screen_saver.xml
@@ -16,6 +16,20 @@
android:layout_gravity="center"
tools:ignore="HardcodedText" />
+
+
+
+
+
+
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index b253111..ec71621 100644
--- a/build.gradle
+++ b/build.gradle
@@ -27,8 +27,8 @@ buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:4.1.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- classpath 'com.google.gms:google-services:4.3.8'
- classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.0'
+ classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
+ classpath 'com.google.gms:google-services:4.3.10'
}
}