From 5ac4dccda691c340876d5d755dcc3f856cd01449 Mon Sep 17 00:00:00 2001
From: Andy Scherzinger <info@andy-scherzinger.de>
Date: Fri, 16 Sep 2022 12:59:11 +0200
Subject: [PATCH 1/5] bump AGP to 7.3.0

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
---
 build.gradle | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/build.gradle b/build.gradle
index 12bf8ad3a..d563b27ad 100644
--- a/build.gradle
+++ b/build.gradle
@@ -34,7 +34,7 @@ buildscript {
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.2.2'
+        classpath 'com.android.tools.build:gradle:7.3.0'
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}"
         classpath "org.jetbrains.kotlin:kotlin-serialization:${kotlinVersion}"
         classpath 'gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin:4.7.5'

From 8acb64638309e3c2a1f1b2672789b337d6cc3aec Mon Sep 17 00:00:00 2001
From: Andy Scherzinger <info@andy-scherzinger.de>
Date: Fri, 16 Sep 2022 13:35:10 +0200
Subject: [PATCH 2/5] close streams after use

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
---
 .../java/com/nextcloud/talk/controllers/ChatController.kt    | 5 +++++
 .../java/com/nextcloud/talk/upload/normal/FileUploader.kt    | 4 +++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt
index 3ecbaf15e..1626462de 100644
--- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt
+++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt
@@ -1551,6 +1551,11 @@ class ChatController(args: Bundle) :
                 input.copyTo(output)
             }
         }
+        try {
+            fd.close()
+        } catch (e: IOException) {
+            Log.w(TAG, "Failed to close AssetFileDescriptor", e)
+        }
     }
 
     override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
diff --git a/app/src/main/java/com/nextcloud/talk/upload/normal/FileUploader.kt b/app/src/main/java/com/nextcloud/talk/upload/normal/FileUploader.kt
index a0242efea..435da2bd1 100644
--- a/app/src/main/java/com/nextcloud/talk/upload/normal/FileUploader.kt
+++ b/app/src/main/java/com/nextcloud/talk/upload/normal/FileUploader.kt
@@ -55,8 +55,10 @@ class FileUploader(
         try {
             val input: InputStream = context.contentResolver.openInputStream(sourceFileUri)!!
             val buf = ByteArray(input.available())
-            while (input.read(buf) != -1)
+            while (input.read(buf) != -1) {
                 requestBody = RequestBody.create("application/octet-stream".toMediaTypeOrNull(), buf)
+            }
+            input.close()
         } catch (e: Exception) {
             Log.e(TAG, "failed to create RequestBody for $sourceFileUri", e)
         }

From 928b9d5aa30a7738b4010c9a58e13adbce529342 Mon Sep 17 00:00:00 2001
From: Andy Scherzinger <info@andy-scherzinger.de>
Date: Fri, 16 Sep 2022 13:35:45 +0200
Subject: [PATCH 3/5] Remove unneeded nonNull annotations in kotlin

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
---
 .../com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt     | 5 ++---
 .../java/com/nextcloud/talk/ui/dialog/ShowReactionsDialog.kt | 5 ++---
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt
index cc1d4924a..51d392aee 100644
--- a/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt
+++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt
@@ -30,7 +30,6 @@ import android.view.MotionEvent
 import android.view.View
 import android.view.ViewGroup
 import android.view.inputmethod.InputMethodManager
-import androidx.annotation.NonNull
 import autodagger.AutoInjector
 import com.google.android.material.bottomsheet.BottomSheetBehavior
 import com.google.android.material.bottomsheet.BottomSheetDialog
@@ -330,7 +329,7 @@ class MessageActionsDialog(
                     // unused atm
                 }
 
-                override fun onNext(@NonNull genericOverall: GenericOverall) {
+                override fun onNext(genericOverall: GenericOverall) {
                     val statusCode = genericOverall.ocs?.meta?.statusCode
                     if (statusCode == HTTP_CREATED) {
                         chatController.updateAdapterAfterSendReaction(message, emoji)
@@ -366,7 +365,7 @@ class MessageActionsDialog(
                     // unused atm
                 }
 
-                override fun onNext(@NonNull genericOverall: GenericOverall) {
+                override fun onNext(genericOverall: GenericOverall) {
                     Log.d(TAG, "deleted reaction: $emoji")
                 }
 
diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/ShowReactionsDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/ShowReactionsDialog.kt
index a8f71014e..02c61bf7e 100644
--- a/app/src/main/java/com/nextcloud/talk/ui/dialog/ShowReactionsDialog.kt
+++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/ShowReactionsDialog.kt
@@ -31,7 +31,6 @@ import android.os.Bundle
 import android.util.Log
 import android.view.View
 import android.view.ViewGroup
-import androidx.annotation.NonNull
 import androidx.recyclerview.widget.LinearLayoutManager
 import autodagger.AutoInjector
 import com.google.android.material.bottomsheet.BottomSheetBehavior
@@ -172,7 +171,7 @@ class ShowReactionsDialog(
                     // unused atm
                 }
 
-                override fun onNext(@NonNull reactionsOverall: ReactionsOverall) {
+                override fun onNext(reactionsOverall: ReactionsOverall) {
                     val reactionVoters: ArrayList<ReactionItem> = ArrayList()
                     if (reactionsOverall.ocs?.data != null) {
                         val map = reactionsOverall.ocs?.data
@@ -227,7 +226,7 @@ class ShowReactionsDialog(
                     // unused atm
                 }
 
-                override fun onNext(@NonNull genericOverall: GenericOverall) {
+                override fun onNext(genericOverall: GenericOverall) {
                     Log.d(TAG, "deleted reaction: $emoji")
                 }
 

From 58436286c7b165bd454959211f06d7bec89b9d7f Mon Sep 17 00:00:00 2001
From: Andy Scherzinger <info@andy-scherzinger.de>
Date: Fri, 16 Sep 2022 14:09:40 +0200
Subject: [PATCH 4/5] move to namespace

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
---
 app/build.gradle                  | 3 +++
 app/src/gplay/AndroidManifest.xml | 3 +--
 app/src/main/AndroidManifest.xml  | 3 +--
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/app/build.gradle b/app/build.gradle
index d1452609e..5c45870b6 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -38,6 +38,9 @@ apply plugin: 'kotlinx-serialization'
 android {
     compileSdkVersion 31
     buildToolsVersion '33.0.0'
+
+    namespace 'com.nextcloud.talk'
+
     defaultConfig {
         minSdkVersion 21
         targetSdkVersion 31
diff --git a/app/src/gplay/AndroidManifest.xml b/app/src/gplay/AndroidManifest.xml
index 794a2c8a1..7da9db5a5 100644
--- a/app/src/gplay/AndroidManifest.xml
+++ b/app/src/gplay/AndroidManifest.xml
@@ -21,8 +21,7 @@
   -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          xmlns:tools="http://schemas.android.com/tools"
-          package="com.nextcloud.talk">
+          xmlns:tools="http://schemas.android.com/tools">
 
     <application
         android:name=".application.NextcloudTalkApplication"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index fabae6d8f..18f3cc2db 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -21,8 +21,7 @@
   -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    package="com.nextcloud.talk">
+    xmlns:tools="http://schemas.android.com/tools">
 
     <uses-feature
         android:name="android.hardware.camera.any"

From 5a2b04740b0123e42670defb85535a5843630b7e Mon Sep 17 00:00:00 2001
From: Andy Scherzinger <info@andy-scherzinger.de>
Date: Fri, 16 Sep 2022 14:48:23 +0200
Subject: [PATCH 5/5] move streams to utilize "use"

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
---
 .../talk/controllers/ChatController.kt          | 17 +++++++----------
 .../talk/upload/normal/FileUploader.kt          |  9 +++++----
 2 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt
index 1626462de..66c337aaa 100644
--- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt
+++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt
@@ -1543,19 +1543,16 @@ class ChatController(args: Bundle) :
         val uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey)
 
         val fd: AssetFileDescriptor = activity?.contentResolver!!.openAssetFileDescriptor(uri, "r")!!
-        val fis = fd.createInputStream()
+        fd.use {
+            val fis = fd.createInputStream()
 
-        file.createNewFile()
-        fis.use { input ->
-            file.outputStream().use { output ->
-                input.copyTo(output)
+            file.createNewFile()
+            fis.use { input ->
+                file.outputStream().use { output ->
+                    input.copyTo(output)
+                }
             }
         }
-        try {
-            fd.close()
-        } catch (e: IOException) {
-            Log.w(TAG, "Failed to close AssetFileDescriptor", e)
-        }
     }
 
     override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
diff --git a/app/src/main/java/com/nextcloud/talk/upload/normal/FileUploader.kt b/app/src/main/java/com/nextcloud/talk/upload/normal/FileUploader.kt
index 435da2bd1..514aae0da 100644
--- a/app/src/main/java/com/nextcloud/talk/upload/normal/FileUploader.kt
+++ b/app/src/main/java/com/nextcloud/talk/upload/normal/FileUploader.kt
@@ -54,11 +54,12 @@ class FileUploader(
         var requestBody: RequestBody? = null
         try {
             val input: InputStream = context.contentResolver.openInputStream(sourceFileUri)!!
-            val buf = ByteArray(input.available())
-            while (input.read(buf) != -1) {
-                requestBody = RequestBody.create("application/octet-stream".toMediaTypeOrNull(), buf)
+            input.use {
+                val buf = ByteArray(input.available())
+                while (it.read(buf) != -1) {
+                    requestBody = RequestBody.create("application/octet-stream".toMediaTypeOrNull(), buf)
+                }
             }
-            input.close()
         } catch (e: Exception) {
             Log.e(TAG, "failed to create RequestBody for $sourceFileUri", e)
         }