From 8abb9e79b1cce28cf1a2665e10c71e8c1ca9e6fe Mon Sep 17 00:00:00 2001
From: Janne Mareike Koschinski <janne@kuschku.de>
Date: Wed, 26 May 2021 21:36:56 +0200
Subject: [PATCH] Fix lint and test issues

---
 app/build.gradle.kts                          |  6 ++---
 .../quasseldroid/ui/chat/ChatActivity.kt      | 24 +++++++------------
 .../ui/setup/ServiceBoundSetupActivity.kt     | 20 +++++++---------
 .../quasseldroid/ui/setup/SetupActivity.kt    | 20 +++++++---------
 .../ui/setup/network/NetworkSetupActivity.kt  |  7 +++---
 .../settings/ServiceBoundSettingsActivity.kt  |  2 +-
 .../util/ui/settings/SettingsActivity.kt      |  2 +-
 .../layout-sw600dp-land/activity_setup.xml    |  1 +
 .../res/layout-sw600dp/activity_setup.xml     |  1 +
 app/src/main/res/layout/activity_setup.xml    |  1 +
 app/src/main/res/layout/chat_messages.xml     |  1 +
 .../main/res/layout/settings_aliaslist.xml    |  1 +
 app/src/main/res/values-de/strings.xml        |  2 ++
 app/src/main/res/values/strings.xml           |  2 ++
 invokergenerator/build.gradle.kts             |  2 +-
 malheur/build.gradle.kts                      |  4 ++--
 persistence/build.gradle.kts                  |  6 ++---
 ui_spinner/build.gradle.kts                   |  4 ++--
 viewmodel/build.gradle.kts                    |  4 ++--
 19 files changed, 54 insertions(+), 56 deletions(-)

diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 0e98fbf03..cb5cb09e5 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -24,7 +24,7 @@ plugins {
 }
 
 android {
-  compileSdkVersion(29)
+  compileSdkVersion(30)
 
   signingConfigs {
     SigningData.of(project.rootProject.properties("signing.properties"))?.let {
@@ -39,7 +39,7 @@ android {
 
   defaultConfig {
     minSdkVersion(20)
-    targetSdkVersion(29)
+    targetSdkVersion(30)
 
     applicationId = "com.iskrembilen.quasseldroid"
     versionCode = cmd("git", "rev-list", "--count", "HEAD")?.toIntOrNull() ?: 1
@@ -120,7 +120,7 @@ dependencies {
 
   withVersion("2.2.5") {
     implementation("androidx.room", "room-runtime", version)
-    kapt("androidx.room", "room-compiler", version)
+    annotationProcessor("androidx.room", "room-compiler", version)
     implementation("androidx.room", "room-rxjava2", version)
     testImplementation("androidx.room", "room-testing", version)
   }
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt
index e8c9bb369..a673a55f2 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt
@@ -85,6 +85,7 @@ import de.kuschku.quasseldroid.ui.setup.network.LinkNetwork
 import de.kuschku.quasseldroid.ui.setup.network.NetworkSetupActivity
 import de.kuschku.quasseldroid.ui.setup.user.UserSetupActivity
 import de.kuschku.quasseldroid.util.backport.OsConstants
+import de.kuschku.quasseldroid.util.deceptive_networks.DeceptiveNetworkDialog
 import de.kuschku.quasseldroid.util.helper.*
 import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer
 import de.kuschku.quasseldroid.util.missingfeatures.MissingFeaturesDialog
@@ -94,7 +95,6 @@ import de.kuschku.quasseldroid.util.ui.DragInterceptBottomSheetBehavior
 import de.kuschku.quasseldroid.util.ui.drawable.DrawerToggleActivityDrawable
 import de.kuschku.quasseldroid.util.ui.drawable.NickCountDrawable
 import de.kuschku.quasseldroid.util.ui.view.WarningBarView
-import de.kuschku.quasseldroid.util.deceptive_networks.DeceptiveNetworkDialog
 import de.kuschku.quasseldroid.viewmodel.ChatViewModel
 import de.kuschku.quasseldroid.viewmodel.data.BufferData
 import de.kuschku.quasseldroid.viewmodel.helper.ChatViewModelHelper
@@ -185,7 +185,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
         }
         intent.hasExtra(KEY_NETWORK_ID) && intent.hasExtra(KEY_CHANNEL)   -> {
           val networkId = NetworkId(intent.getIntExtra(KEY_NETWORK_ID, -1))
-          val channel = intent.getStringExtra(KEY_CHANNEL)
+          val channel = intent.getStringExtra(KEY_CHANNEL) ?: ""
 
           val forceJoin = intent.getBooleanExtra(KEY_FORCE_JOIN, false)
 
@@ -943,25 +943,19 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
     outState.putBoolean(KEY_OPEN_DRAWER_END, binding.drawerLayout.isDrawerOpen(GravityCompat.END))
   }
 
-  override fun onRestoreInstanceState(savedInstanceState: Bundle?) {
+  override fun onRestoreInstanceState(savedInstanceState: Bundle) {
     super.onRestoreInstanceState(savedInstanceState)
-    if (savedInstanceState != null) {
-      chatViewModel.onRestoreInstanceState(savedInstanceState)
-    }
+    chatViewModel.onRestoreInstanceState(savedInstanceState)
 
-    connectedAccount = AccountId(savedInstanceState?.getLong(KEY_CONNECTED_ACCOUNT, -1L) ?: -1L)
+    connectedAccount = AccountId(savedInstanceState.getLong(KEY_CONNECTED_ACCOUNT, -1L))
 
-    if (savedInstanceState?.getBoolean(KEY_OPEN_DRAWER_START) == true &&
-        resources.getBoolean(R.bool.buffer_drawer_exists)) {
+    if (savedInstanceState.getBoolean(KEY_OPEN_DRAWER_START) && resources.getBoolean(R.bool.buffer_drawer_exists)) {
       binding.drawerLayout.openDrawer(GravityCompat.START)
     }
-    if (savedInstanceState?.getBoolean(KEY_OPEN_DRAWER_END) == true) {
+    if (savedInstanceState.getBoolean(KEY_OPEN_DRAWER_END)) {
       binding.drawerLayout.openDrawer(GravityCompat.END)
     }
-    if (savedInstanceState?.getBoolean(KEY_OPEN_DRAWER_START) != null ||
-        savedInstanceState?.getBoolean(KEY_OPEN_DRAWER_END) != null) {
-      restoredDrawerState = true
-    }
+    restoredDrawerState = true
   }
 
   override fun onCreateOptionsMenu(menu: Menu?): Boolean {
@@ -984,7 +978,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
     return super.onCreateOptionsMenu(menu)
   }
 
-  override fun onOptionsItemSelected(item: MenuItem?) = when (item?.itemId) {
+  override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
     android.R.id.home           -> {
       drawerToggle.onOptionsItemSelected(item)
     }
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt
index 3bf5d1679..420a2c03c 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt
@@ -235,19 +235,17 @@ abstract class ServiceBoundSetupActivity :
     super.onSaveInstanceState(outState)
   }
 
-  override fun onRestoreInstanceState(savedInstanceState: Bundle?) {
+  override fun onRestoreInstanceState(savedInstanceState: Bundle) {
     super.onRestoreInstanceState(savedInstanceState)
-    if (savedInstanceState != null) {
-      if (savedInstanceState.containsKey(resultKey)) {
-        adapter.result.putAll(savedInstanceState.getBundle(resultKey))
-        adapter.allChanged()
-      }
-      if (savedInstanceState.containsKey(lastValidItemKey))
-        adapter.lastValidItem = savedInstanceState.getInt(lastValidItemKey)
-      if (savedInstanceState.containsKey(currentItemKey))
-        viewPager.currentItem = savedInstanceState.getInt(currentItemKey)
-      currentPage.value = adapter.getItem(viewPager.currentItem)
+    if (savedInstanceState.containsKey(resultKey)) {
+      adapter.result.putAll(savedInstanceState.getBundle(resultKey))
+      adapter.allChanged()
     }
+    if (savedInstanceState.containsKey(lastValidItemKey))
+      adapter.lastValidItem = savedInstanceState.getInt(lastValidItemKey)
+    if (savedInstanceState.containsKey(currentItemKey))
+      viewPager.currentItem = savedInstanceState.getInt(currentItemKey)
+    currentPage.value = adapter.getItem(viewPager.currentItem)
     pageChanged()
   }
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SetupActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SetupActivity.kt
index 2b4207695..ad12fd7cc 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SetupActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SetupActivity.kt
@@ -195,19 +195,17 @@ abstract class SetupActivity : DaggerAppCompatActivity() {
     super.onSaveInstanceState(outState)
   }
 
-  override fun onRestoreInstanceState(savedInstanceState: Bundle?) {
+  override fun onRestoreInstanceState(savedInstanceState: Bundle) {
     super.onRestoreInstanceState(savedInstanceState)
-    if (savedInstanceState != null) {
-      if (savedInstanceState.containsKey(resultKey)) {
-        adapter.result.putAll(savedInstanceState.getBundle(resultKey))
-        adapter.allChanged()
-      }
-      if (savedInstanceState.containsKey(lastValidItemKey))
-        adapter.lastValidItem = savedInstanceState.getInt(lastValidItemKey)
-      if (savedInstanceState.containsKey(currentItemKey))
-        viewPager.currentItem = savedInstanceState.getInt(currentItemKey)
-      currentPage.value = adapter.getItem(viewPager.currentItem)
+    if (savedInstanceState.containsKey(resultKey)) {
+      adapter.result.putAll(savedInstanceState.getBundle(resultKey))
+      adapter.allChanged()
     }
+    if (savedInstanceState.containsKey(lastValidItemKey))
+      adapter.lastValidItem = savedInstanceState.getInt(lastValidItemKey)
+    if (savedInstanceState.containsKey(currentItemKey))
+      viewPager.currentItem = savedInstanceState.getInt(currentItemKey)
+    currentPage.value = adapter.getItem(viewPager.currentItem)
     pageChanged()
   }
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/network/NetworkSetupActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/network/NetworkSetupActivity.kt
index a8554dbb0..2992b3fe8 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/network/NetworkSetupActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/network/NetworkSetupActivity.kt
@@ -36,12 +36,11 @@ class NetworkSetupActivity : ServiceBoundSetupActivity() {
   @Inject
   lateinit var modelHelper: EditorViewModelHelper
 
-  private lateinit var arguments: Bundle
-  override val initData: Bundle
-    get() = arguments
+  override var initData: Bundle = Bundle.EMPTY
+    private set
 
   override fun onCreate(savedInstanceState: Bundle?) {
-    arguments = intent.getBundleExtra("link")
+    initData = intent.getBundleExtra("link") ?: Bundle.EMPTY
     super.onCreate(savedInstanceState)
   }
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/ServiceBoundSettingsActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/ServiceBoundSettingsActivity.kt
index 575bcbfa9..22a053124 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/ServiceBoundSettingsActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/ServiceBoundSettingsActivity.kt
@@ -95,7 +95,7 @@ abstract class ServiceBoundSettingsActivity(private val fragment: Fragment? = nu
     super.onBackPressed()
   }
 
-  override fun onOptionsItemSelected(item: MenuItem?) = when (item?.itemId) {
+  override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
     android.R.id.home -> {
       shouldNavigateAway {
         if (supportParentActivityIntent != null) {
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/SettingsActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/SettingsActivity.kt
index 4b58a7270..8475ba15a 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/SettingsActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/SettingsActivity.kt
@@ -94,7 +94,7 @@ abstract class SettingsActivity(protected val fragment: Fragment? = null) : Them
     super.onBackPressed()
   }
 
-  override fun onOptionsItemSelected(item: MenuItem?) = when (item?.itemId) {
+  override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
     android.R.id.home -> {
       shouldNavigateAway {
         if (supportParentActivityIntent != null) {
diff --git a/app/src/main/res/layout-sw600dp-land/activity_setup.xml b/app/src/main/res/layout-sw600dp-land/activity_setup.xml
index 11b005eea..d90501b4f 100644
--- a/app/src/main/res/layout-sw600dp-land/activity_setup.xml
+++ b/app/src/main/res/layout-sw600dp-land/activity_setup.xml
@@ -46,6 +46,7 @@
     app:backgroundTint="#8A000000"
     app:elevation="0dip"
     app:fabSize="normal"
+    android:contentDescription="@string/label_next"
     app:pressedTranslationZ="0dip"
     app:srcCompat="@drawable/ic_forward"
     app:tint="#ffffffff"
diff --git a/app/src/main/res/layout-sw600dp/activity_setup.xml b/app/src/main/res/layout-sw600dp/activity_setup.xml
index 11b005eea..41117aed0 100644
--- a/app/src/main/res/layout-sw600dp/activity_setup.xml
+++ b/app/src/main/res/layout-sw600dp/activity_setup.xml
@@ -47,6 +47,7 @@
     app:elevation="0dip"
     app:fabSize="normal"
     app:pressedTranslationZ="0dip"
+    android:contentDescription="@string/label_next"
     app:srcCompat="@drawable/ic_forward"
     app:tint="#ffffffff"
     tools:ignore="RtlHardcoded" />
diff --git a/app/src/main/res/layout/activity_setup.xml b/app/src/main/res/layout/activity_setup.xml
index 6abe56c07..12f05ba74 100644
--- a/app/src/main/res/layout/activity_setup.xml
+++ b/app/src/main/res/layout/activity_setup.xml
@@ -47,6 +47,7 @@
     app:fabSize="normal"
     app:srcCompat="@drawable/ic_forward"
     app:tint="#ffffffff"
+    android:contentDescription="@string/label_next"
     tools:ignore="RtlHardcoded"
     tools:src="@drawable/ic_arrow_right" />
 
diff --git a/app/src/main/res/layout/chat_messages.xml b/app/src/main/res/layout/chat_messages.xml
index 3ee860ba4..c34962e4d 100644
--- a/app/src/main/res/layout/chat_messages.xml
+++ b/app/src/main/res/layout/chat_messages.xml
@@ -51,6 +51,7 @@
     android:visibility="gone"
     app:backgroundTint="#8A808080"
     app:elevation="0dip"
+    android:contentDescription="@string/label_scroll_to_latest"
     app:fabSize="mini"
     app:pressedTranslationZ="0dip"
     app:srcCompat="@drawable/ic_scroll_down" />
diff --git a/app/src/main/res/layout/settings_aliaslist.xml b/app/src/main/res/layout/settings_aliaslist.xml
index 5325ba9ff..c89b0f79c 100644
--- a/app/src/main/res/layout/settings_aliaslist.xml
+++ b/app/src/main/res/layout/settings_aliaslist.xml
@@ -35,6 +35,7 @@
     android:layout_height="wrap_content"
     android:layout_gravity="end|bottom"
     android:layout_margin="16dp"
+    android:contentDescription="@string/label_new_alias"
     app:fabSize="normal"
     app:srcCompat="@drawable/ic_add"
     app:tint="?colorTextPrimaryInverse" />
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index f31cfa96a..6b5b1e3d9 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -84,6 +84,7 @@
   <string name="label_mention_long">Kopiert den Nutzernamen in die Eingabezeile</string>
   <string name="label_network">Netzwerk</string>
   <string name="label_new_account">Account hinzufügen</string>
+  <string name="label_new_alias">Alias hinzufügen</string>
   <string name="label_new_chatlist">Chatliste hinzufügen</string>
   <string name="label_new_highlight_ignore_rule">Neue Hervorhebungsignorierregel</string>
   <string name="label_new_highlight_rule">Neue Hervorhebungsregel</string>
@@ -122,6 +123,7 @@
   <string name="label_reset">Zurücksetzen</string>
   <string name="label_save">Speichern</string>
   <string name="label_saving">Speichern…</string>
+  <string name="label_scroll_to_latest">Zu neuesten Nachrichten scrollen</string>
   <string name="label_search">Suchen…</string>
   <string name="label_search_buffer">Chats suchen</string>
   <string name="label_search_channels">Kanäle suchen</string>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a80544d11..89fcd16ab 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -84,6 +84,7 @@
   <string name="label_mention_long">Copy username into input line</string>
   <string name="label_network">Network</string>
   <string name="label_new_account">New Account</string>
+  <string name="label_new_alias">New Alias</string>
   <string name="label_new_chatlist">New Chatlist</string>
   <string name="label_new_highlight_ignore_rule">New Highlight Ignore Rule</string>
   <string name="label_new_highlight_rule">New Highlight Rule</string>
@@ -122,6 +123,7 @@
   <string name="label_reset">Reset</string>
   <string name="label_save">Save</string>
   <string name="label_saving">Saving…</string>
+  <string name="label_scroll_to_latest">Scroll to latest messages</string>
   <string name="label_search">Search…</string>
   <string name="label_search_buffer">Search Chats</string>
   <string name="label_search_channels">Search Channels</string>
diff --git a/invokergenerator/build.gradle.kts b/invokergenerator/build.gradle.kts
index 5b2e44471..e6d86c69c 100644
--- a/invokergenerator/build.gradle.kts
+++ b/invokergenerator/build.gradle.kts
@@ -34,5 +34,5 @@ dependencies {
   implementation("org.jetbrains.kotlin", "kotlin-compiler-embeddable", "1.4.31")
   implementation("com.squareup", "kotlinpoet", "1.8.0")
   compileOnly("com.google.auto.service:auto-service:1.0-rc7")
-  kapt("com.google.auto.service:auto-service:1.0-rc7")
+  annotationProcessor("com.google.auto.service:auto-service:1.0-rc7")
 }
diff --git a/malheur/build.gradle.kts b/malheur/build.gradle.kts
index 04f305f3d..aece73181 100644
--- a/malheur/build.gradle.kts
+++ b/malheur/build.gradle.kts
@@ -23,11 +23,11 @@ plugins {
 }
 
 android {
-  compileSdkVersion(29)
+  compileSdkVersion(30)
 
   defaultConfig {
     minSdkVersion(20)
-    targetSdkVersion(29)
+    targetSdkVersion(30)
 
     consumerProguardFiles("proguard-rules.pro")
 
diff --git a/persistence/build.gradle.kts b/persistence/build.gradle.kts
index c315cadd7..95891a99c 100644
--- a/persistence/build.gradle.kts
+++ b/persistence/build.gradle.kts
@@ -24,11 +24,11 @@ plugins {
 }
 
 android {
-  compileSdkVersion(29)
+  compileSdkVersion(30)
 
   defaultConfig {
     minSdkVersion(20)
-    targetSdkVersion(29)
+    targetSdkVersion(30)
 
     consumerProguardFiles("proguard-rules.pro")
 
@@ -55,7 +55,7 @@ dependencies {
 
   withVersion("2.2.5") {
     implementation("androidx.room", "room-runtime", version)
-    kapt("androidx.room", "room-compiler", version)
+    annotationProcessor("androidx.room", "room-compiler", version)
     implementation("androidx.room", "room-rxjava2", version)
     testImplementation("androidx.room", "room-testing", version)
   }
diff --git a/ui_spinner/build.gradle.kts b/ui_spinner/build.gradle.kts
index cb655b16a..436c0a0f5 100644
--- a/ui_spinner/build.gradle.kts
+++ b/ui_spinner/build.gradle.kts
@@ -23,11 +23,11 @@ plugins {
 }
 
 android {
-  compileSdkVersion(29)
+  compileSdkVersion(30)
 
   defaultConfig {
     minSdkVersion(20)
-    targetSdkVersion(29)
+    targetSdkVersion(30)
 
     consumerProguardFiles("proguard-rules.pro")
 
diff --git a/viewmodel/build.gradle.kts b/viewmodel/build.gradle.kts
index 60544b7e5..91df20375 100644
--- a/viewmodel/build.gradle.kts
+++ b/viewmodel/build.gradle.kts
@@ -23,11 +23,11 @@ plugins {
 }
 
 android {
-  compileSdkVersion(29)
+  compileSdkVersion(30)
 
   defaultConfig {
     minSdkVersion(20)
-    targetSdkVersion(29)
+    targetSdkVersion(30)
 
     consumerProguardFiles("proguard-rules.pro")
 
-- 
GitLab