From e22b1a66b94fd3bcbfde49d76fb5afd0237cb8f0 Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Sun, 19 Jun 2022 14:19:27 -0400 Subject: [PATCH] WebSocket banner --- .../main/java/io/heckel/ntfy/db/Repository.kt | 14 +++--- .../java/io/heckel/ntfy/ui/MainActivity.kt | 48 +++++++++++-------- app/src/main/res/layout/activity_main.xml | 38 +++++++-------- app/src/main/res/values-bg/strings.xml | 8 ++-- app/src/main/res/values-cs/strings.xml | 8 ++-- app/src/main/res/values-de/strings.xml | 8 ++-- app/src/main/res/values-es/strings.xml | 10 ++-- app/src/main/res/values-fr/strings.xml | 8 ++-- app/src/main/res/values-in/strings.xml | 8 ++-- app/src/main/res/values-it/strings.xml | 8 ++-- app/src/main/res/values-iw/strings.xml | 5 +- app/src/main/res/values-ja/strings.xml | 8 ++-- app/src/main/res/values-nb-rNO/strings.xml | 8 ++-- app/src/main/res/values-nl/strings.xml | 8 ++-- app/src/main/res/values-pt-rBR/strings.xml | 8 ++-- app/src/main/res/values-ru/strings.xml | 8 ++-- app/src/main/res/values-tr/strings.xml | 8 ++-- app/src/main/res/values-zh-rCN/strings.xml | 8 ++-- app/src/main/res/values/strings.xml | 14 +++--- app/src/main/res/values/values.xml | 1 - .../metadata/android/en-US/changelog/28.txt | 1 + 21 files changed, 106 insertions(+), 129 deletions(-) diff --git a/app/src/main/java/io/heckel/ntfy/db/Repository.kt b/app/src/main/java/io/heckel/ntfy/db/Repository.kt index a23a2d1..d35a25d 100644 --- a/app/src/main/java/io/heckel/ntfy/db/Repository.kt +++ b/app/src/main/java/io/heckel/ntfy/db/Repository.kt @@ -300,13 +300,13 @@ class Repository(private val sharedPrefs: SharedPreferences, private val databas .apply() } - fun getJsonStreamRemindTime(): Long { - return sharedPrefs.getLong(SHARED_PREFS_JSON_STREAM_REMIND_TIME, JSON_STREAM_REMIND_TIME_ALWAYS) + fun getWebSocketRemindTime(): Long { + return sharedPrefs.getLong(SHARED_PREFS_WEBSOCKET_REMIND_TIME, WEBSOCKET_REMIND_TIME_ALWAYS) } - fun setJsonStreamRemindTime(timeMillis: Long) { + fun setWebSocketRemindTime(timeMillis: Long) { sharedPrefs.edit() - .putLong(SHARED_PREFS_JSON_STREAM_REMIND_TIME, timeMillis) + .putLong(SHARED_PREFS_WEBSOCKET_REMIND_TIME, timeMillis) .apply() } @@ -451,7 +451,7 @@ class Repository(private val sharedPrefs: SharedPreferences, private val databas const val SHARED_PREFS_BROADCAST_ENABLED = "BroadcastEnabled" const val SHARED_PREFS_RECORD_LOGS_ENABLED = "RecordLogs" const val SHARED_PREFS_BATTERY_OPTIMIZATIONS_REMIND_TIME = "BatteryOptimizationsRemindTime" - const val SHARED_PREFS_JSON_STREAM_REMIND_TIME = "JsonStreamRemindTime" // Deprecation of JSON stream + const val SHARED_PREFS_WEBSOCKET_REMIND_TIME = "JsonStreamRemindTime" // "Use WebSocket" banner (used to be JSON stream deprecation banner) const val SHARED_PREFS_UNIFIED_PUSH_BASE_URL = "UnifiedPushBaseURL" // Legacy key required for migration to DefaultBaseURL const val SHARED_PREFS_DEFAULT_BASE_URL = "DefaultBaseURL" const val SHARED_PREFS_LAST_TOPICS = "LastTopics" @@ -486,8 +486,8 @@ class Repository(private val sharedPrefs: SharedPreferences, private val databas const val BATTERY_OPTIMIZATIONS_REMIND_TIME_ALWAYS = 1L const val BATTERY_OPTIMIZATIONS_REMIND_TIME_NEVER = Long.MAX_VALUE - const val JSON_STREAM_REMIND_TIME_ALWAYS = 1L - const val JSON_STREAM_REMIND_TIME_NEVER = Long.MAX_VALUE + const val WEBSOCKET_REMIND_TIME_ALWAYS = 1L + const val WEBSOCKET_REMIND_TIME_NEVER = Long.MAX_VALUE private const val TAG = "NtfyRepository" private var instance: Repository? = null diff --git a/app/src/main/java/io/heckel/ntfy/ui/MainActivity.kt b/app/src/main/java/io/heckel/ntfy/ui/MainActivity.kt index 7a837db..1dedf98 100644 --- a/app/src/main/java/io/heckel/ntfy/ui/MainActivity.kt +++ b/app/src/main/java/io/heckel/ntfy/ui/MainActivity.kt @@ -9,11 +9,13 @@ import android.net.Uri import android.os.Build import android.os.Bundle import android.provider.Settings +import android.text.method.LinkMovementMethod import android.view.ActionMode import android.view.Menu import android.view.MenuItem import android.view.View import android.widget.Button +import android.widget.TextView import android.widget.Toast import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity @@ -119,9 +121,9 @@ class MainActivity : AppCompatActivity(), ActionMode.Callback, AddFragment.Subsc Log.addScrubTerm(s.topic) } - // Update banner + JSON stream banner + // Update banner + WebSocket banner showHideBatteryBanner(subscriptions) - showHideJsonStreamBanner(subscriptions) + showHideWebSocketBanner(subscriptions) } } @@ -169,21 +171,25 @@ class MainActivity : AppCompatActivity(), ActionMode.Callback, AddFragment.Subsc } } - // JSON stream banner - val jsonStreamBanner = findViewById(R.id.main_banner_json_stream) // Banner visibility is toggled in onResume() - val jsonStreamDismissButton = findViewById