From 1ffcebc2ab481a289cc74bc03efcaa49e9faec9a Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Sun, 10 Jan 2021 13:25:17 +0200 Subject: [PATCH] Added Dark Theme settings option Added drawable-night folder for night theme drawings --- app/build.gradle | 1 + .../com/tutpro/baresip/ChatListAdapter.kt | 11 ++------ .../com/tutpro/baresip/ConfigActivity.kt | 16 +++++++++++ .../kotlin/com/tutpro/baresip/MainActivity.kt | 16 +++++++++++ .../com/tutpro/baresip/MessageListAdapter.kt | 10 ++----- .../main/res/drawable-night/message_in_bg.xml | 11 ++++++++ .../res/drawable-night/message_out_bg.xml | 11 ++++++++ app/src/main/res/layout/activity_config.xml | 27 +++++++++++++++++++ app/src/main/res/values-fi/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ 10 files changed, 90 insertions(+), 17 deletions(-) create mode 100644 app/src/main/res/drawable-night/message_in_bg.xml create mode 100644 app/src/main/res/drawable-night/message_out_bg.xml diff --git a/app/build.gradle b/app/build.gradle index 2cef0e99..8e885a9d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -53,6 +53,7 @@ dependencies { implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0' implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" + implementation "androidx.preference:preference-ktx:1.1.1" } repositories { diff --git a/app/src/main/kotlin/com/tutpro/baresip/ChatListAdapter.kt b/app/src/main/kotlin/com/tutpro/baresip/ChatListAdapter.kt index 5548c01a..60a62c11 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/ChatListAdapter.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/ChatListAdapter.kt @@ -47,17 +47,10 @@ class ChatListAdapter(private val ctx: Context, private var rows: ArrayList { + Utils.alertView(this, getString(R.string.dark_theme), + getString(R.string.dark_theme_help)) + } binding.DebugTitle -> { Utils.alertView(this, getString(R.string.debug), getString(R.string.debug_help)) } diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt index 009ed4fb..6ad8cea2 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -21,6 +21,7 @@ import android.view.inputmethod.InputMethodManager import android.widget.* import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity +import androidx.appcompat.app.AppCompatDelegate import androidx.localbroadcastmanager.content.LocalBroadcastManager import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.tutpro.baresip.databinding.ActivityMainBinding @@ -67,6 +68,9 @@ class MainActivity : AppCompatActivity() { @SuppressLint("ClickableViewAccessibility") override fun onCreate(savedInstanceState: Bundle?) { + if (Preferences(applicationContext).displayTheme != AppCompatDelegate.getDefaultNightMode()) + AppCompatDelegate.setDefaultNightMode(Preferences(applicationContext).displayTheme) + super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) @@ -625,6 +629,11 @@ class MainActivity : AppCompatActivity() { super.onPause() } + override fun recreate() { + Log.d("Baresip", "Main onCreate") + super.recreate() + } + override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { when (keyCode) { KeyEvent.KEYCODE_VOLUME_DOWN, KeyEvent.KEYCODE_VOLUME_UP -> { @@ -668,6 +677,7 @@ class MainActivity : AppCompatActivity() { } return } + val uap = params[0] val ua = UserAgent.ofUap(uap) if (ua == null) { @@ -917,6 +927,7 @@ class MainActivity : AppCompatActivity() { override fun onDestroy() { Log.d("Baresip", "Main onDestroy") + BaresipService.activities.clear() super.onDestroy() } @@ -1031,6 +1042,11 @@ class MainActivity : AppCompatActivity() { show() } } + val displayTheme = Preferences(applicationContext).displayTheme + if (displayTheme != AppCompatDelegate.getDefaultNightMode()) { + AppCompatDelegate.setDefaultNightMode(displayTheme) + delegate.applyDayNight() + } } CALLS_CODE -> { diff --git a/app/src/main/kotlin/com/tutpro/baresip/MessageListAdapter.kt b/app/src/main/kotlin/com/tutpro/baresip/MessageListAdapter.kt index ca83b530..0f0ce191 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MessageListAdapter.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MessageListAdapter.kt @@ -26,17 +26,11 @@ class MessageListAdapter(private val ctx: Context, private val rows: ArrayList + + + + + + + + + + diff --git a/app/src/main/res/drawable-night/message_out_bg.xml b/app/src/main/res/drawable-night/message_out_bg.xml new file mode 100644 index 00000000..ca170a1f --- /dev/null +++ b/app/src/main/res/drawable-night/message_out_bg.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_config.xml b/app/src/main/res/layout/activity_config.xml index eb14cf86..1defceb4 100644 --- a/app/src/main/res/layout/activity_config.xml +++ b/app/src/main/res/layout/activity_config.xml @@ -172,6 +172,33 @@ + + + + + + + Jos valittu, puhelun äänen voimakkuus asteikolla 1–10. + Tumma teema + Käytä aina tummaa näyttöteemaa Videon kehyskoko Lähetettävän videon kehyskoko (leveys x korkeus). Tehdasasetus on 800x600. diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a715a6c5..fedcea0f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -277,6 +277,8 @@ Invalid Opus Packet Loss Percentage Default Call Volume If set, default call audio volume at scale 1–10. + Dark Theme + Force dark display theme Video Frame Size Size of transmitted video frames (width x height). Factory default is 800x600.