From 7b5caf5007fef297e6efb945fe82d067c9c61ed2 Mon Sep 17 00:00:00 2001 From: Ezhil Shanmugham Date: Thu, 18 May 2023 15:09:54 +0530 Subject: [PATCH] fixed deprecated onBackPressed Issue-#2961 Signed-off-by: Andy Scherzinger --- app/build.gradle | 2 +- .../activities/FullScreenImageActivity.kt | 11 +++++++- .../activities/FullScreenMediaActivity.kt | 10 ++++++- .../FullScreenTextViewerActivity.kt | 10 ++++++- .../nextcloud/talk/activities/MainActivity.kt | 10 ++++++- .../talk/activities/TakePhotoActivity.java | 27 ++++++++++-------- .../talk/contacts/ContactsActivity.kt | 9 +++++- .../ConversationInfoActivity.kt | 12 +++++++- .../ConversationInfoEditActivity.kt | 11 +++++++- .../ConversationsListActivity.kt | 28 ++++++++++++++++--- .../talk/location/GeocodingActivity.kt | 9 +++++- .../talk/location/LocationPickerActivity.kt | 2 ++ .../messagesearch/MessageSearchActivity.kt | 2 ++ .../nextcloud/talk/profile/ProfileActivity.kt | 12 +++++++- .../activities/RemoteFileBrowserActivity.kt | 15 ++++++++-- .../talk/settings/SettingsActivity.kt | 11 +++++++- .../activities/SharedItemsActivity.kt | 12 +++++++- 17 files changed, 163 insertions(+), 30 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e6dde6ee4..f734122f9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -301,7 +301,7 @@ dependencies { gplayImplementation 'com.google.android.gms:play-services-base:18.2.0' gplayImplementation "com.google.firebase:firebase-messaging:23.1.2" - // implementation 'androidx.activity:activity-ktx:1.4.0' + implementation 'androidx.activity:activity-ktx:1.6.0-rc02' implementation 'com.github.nextcloud.android-common:ui:0.10.0' diff --git a/app/src/main/java/com/nextcloud/talk/activities/FullScreenImageActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/FullScreenImageActivity.kt index 5bdd38f25..7d44b3ea7 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/FullScreenImageActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/FullScreenImageActivity.kt @@ -31,6 +31,7 @@ import android.view.Menu import android.view.MenuItem import android.view.View import android.widget.Toast +import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatActivity import androidx.core.content.FileProvider import com.nextcloud.talk.BuildConfig @@ -43,6 +44,13 @@ import java.io.File class FullScreenImageActivity : AppCompatActivity() { lateinit var binding: ActivityFullScreenImageBinding + + private val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + finish() + } + } + private lateinit var path: String private var showFullscreen = false @@ -53,7 +61,8 @@ class FullScreenImageActivity : AppCompatActivity() { override fun onOptionsItemSelected(item: MenuItem): Boolean { return if (item.itemId == android.R.id.home) { - onBackPressed() + // onBackPressed() + onBackPressedDispatcher.addCallback(this, callback) true } else if (item.itemId == R.id.share) { val shareUri = FileProvider.getUriForFile( diff --git a/app/src/main/java/com/nextcloud/talk/activities/FullScreenMediaActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/FullScreenMediaActivity.kt index 2a076065d..d20f3b545 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/FullScreenMediaActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/FullScreenMediaActivity.kt @@ -28,6 +28,7 @@ import android.view.Menu import android.view.MenuItem import android.view.View import android.view.WindowManager +import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatActivity import androidx.core.content.FileProvider import autodagger.AutoInjector @@ -46,6 +47,12 @@ import java.io.File class FullScreenMediaActivity : AppCompatActivity(), Player.Listener { lateinit var binding: ActivityFullScreenMediaBinding + private val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + finish() + } + } + private lateinit var path: String private lateinit var player: SimpleExoPlayer @@ -56,7 +63,8 @@ class FullScreenMediaActivity : AppCompatActivity(), Player.Listener { override fun onOptionsItemSelected(item: MenuItem): Boolean { return if (item.itemId == android.R.id.home) { - onBackPressed() + // onBackPressed() + onBackPressedDispatcher.addCallback(this, callback) true } else if (item.itemId == R.id.share) { val shareUri = FileProvider.getUriForFile( diff --git a/app/src/main/java/com/nextcloud/talk/activities/FullScreenTextViewerActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/FullScreenTextViewerActivity.kt index e8e7375f8..81ffff5b6 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/FullScreenTextViewerActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/FullScreenTextViewerActivity.kt @@ -26,6 +26,7 @@ import android.content.Intent import android.os.Bundle import android.view.Menu import android.view.MenuItem +import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatActivity import androidx.core.content.FileProvider import androidx.core.content.res.ResourcesCompat @@ -45,6 +46,12 @@ import javax.inject.Inject class FullScreenTextViewerActivity : AppCompatActivity() { lateinit var binding: ActivityFullScreenTextBinding + private val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + finish() + } + } + @Inject lateinit var viewThemeUtils: ViewThemeUtils @@ -57,7 +64,8 @@ class FullScreenTextViewerActivity : AppCompatActivity() { override fun onOptionsItemSelected(item: MenuItem): Boolean { return if (item.itemId == android.R.id.home) { - onBackPressed() + // onBackPressed() + onBackPressedDispatcher.addCallback(this, callback) true } else if (item.itemId == R.id.share) { val shareUri = FileProvider.getUriForFile( diff --git a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt index 151f11180..489303ffd 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt @@ -30,6 +30,7 @@ import android.os.Bundle import android.provider.ContactsContract import android.text.TextUtils import android.util.Log +import androidx.activity.OnBackPressedCallback import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.ProcessLifecycleOwner @@ -74,6 +75,12 @@ import javax.inject.Inject class MainActivity : BaseActivity(), ActionBarProvider { lateinit var binding: ActivityMainBinding + private val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + finish() + } + } + @Inject lateinit var ncApi: NcApi @@ -355,7 +362,8 @@ class MainActivity : BaseActivity(), ActionBarProvider { override fun onBackPressed() { if (!router!!.handleBack()) { - super.onBackPressed() + // super.onBackPressed() + onBackPressedDispatcher.addCallback(this, callback) } } diff --git a/app/src/main/java/com/nextcloud/talk/activities/TakePhotoActivity.java b/app/src/main/java/com/nextcloud/talk/activities/TakePhotoActivity.java index 3e8c6e52d..6a6f9c7a2 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/TakePhotoActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/TakePhotoActivity.java @@ -56,6 +56,7 @@ import java.util.concurrent.ExecutionException; import javax.inject.Inject; +import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.OptIn; @@ -76,7 +77,6 @@ import static com.nextcloud.talk.utils.Mimetype.IMAGE_JPEG; @AutoInjector(NextcloudTalkApplication.class) public class TakePhotoActivity extends AppCompatActivity { - private static final String TAG = TakePhotoActivity.class.getSimpleName(); private static final float MAX_SCALE = 6.0f; @@ -223,20 +223,23 @@ public class TakePhotoActivity extends AppCompatActivity { }, ContextCompat.getMainExecutor(this)); } - @Override - public void onBackPressed() { - Uri uri = (Uri) binding.photoPreview.getTag(); + private OnBackPressedCallback callback = new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + Uri uri = (Uri) binding.photoPreview.getTag(); - if (uri != null) { - File photoFile = new File(uri.getPath()); - if (!photoFile.delete()) { - Log.w(TAG, "Error deleting temp camera image"); + if (uri != null) { + File photoFile = new File(uri.getPath()); + if (!photoFile.delete()) { + Log.w(TAG, "Error deleting temp camera image"); + } + binding.photoPreview.setTag(null); } - binding.photoPreview.setTag(null); - } - super.onBackPressed(); - } + finish(); + } + }; + private void showCameraElements() { binding.send.setVisibility(View.GONE); diff --git a/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivity.kt b/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivity.kt index b26ba20df..916d355ee 100644 --- a/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivity.kt @@ -36,6 +36,7 @@ import android.view.Menu import android.view.MenuItem import android.view.View import android.view.inputmethod.EditorInfo +import androidx.activity.OnBackPressedCallback import androidx.appcompat.widget.SearchView import androidx.core.content.res.ResourcesCompat import androidx.core.view.MenuItemCompat @@ -92,6 +93,12 @@ class ContactsActivity : FlexibleAdapter.OnItemClickListener { private lateinit var binding: ControllerContactsRvBinding + private val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + finish() + } + } + @Inject lateinit var userManager: UserManager @@ -188,7 +195,7 @@ class ContactsActivity : private fun setupActionBar() { setSupportActionBar(binding.contactsToolbar) binding.contactsToolbar.setNavigationOnClickListener { - onBackPressed() + onBackPressedDispatcher.addCallback(this, callback) } supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.setDisplayShowHomeEnabled(true) diff --git a/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt index de1cf8918..7c30d45d7 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt @@ -5,10 +5,12 @@ * @author Andy Scherzinger * @author Tim Krüger * @author Marcel Hibbe + * @author Ezhil Shanmugham * Copyright (C) 2022-2023 Marcel Hibbe (dev@mhibbe.de) * Copyright (C) 2021-2022 Tim Krüger * Copyright (C) 2021 Andy Scherzinger (info@andy-scherzinger.de) * Copyright (C) 2017-2018 Mario Danic + * Copyright (C) 2023 Ezhil Shanmugham * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -39,6 +41,7 @@ import android.view.View import android.view.View.GONE import android.view.View.VISIBLE import android.widget.Toast +import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AlertDialog import androidx.appcompat.widget.SwitchCompat import androidx.work.Data @@ -107,6 +110,13 @@ class ConversationInfoActivity : private lateinit var binding: ActivityConversationInfoBinding + private val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + finish() + } + + } + @Inject lateinit var ncApi: NcApi @@ -193,7 +203,7 @@ class ConversationInfoActivity : private fun setupActionBar() { setSupportActionBar(binding.conversationInfoToolbar) binding.conversationInfoToolbar.setNavigationOnClickListener { - onBackPressed() + onBackPressedDispatcher.addCallback(this, callback) } supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.setDisplayShowHomeEnabled(true) diff --git a/app/src/main/java/com/nextcloud/talk/conversationinfoedit/ConversationInfoEditActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationinfoedit/ConversationInfoEditActivity.kt index ca836c839..980274d3d 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationinfoedit/ConversationInfoEditActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationinfoedit/ConversationInfoEditActivity.kt @@ -2,7 +2,9 @@ * Nextcloud Talk application * * @author Marcel Hibbe + * @author Ezhil Shanmugham * Copyright (C) 2023 Marcel Hibbe (dev@mhibbe.de) + * Copyright (C) 2023 Ezhil Shanmugham * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,6 +32,7 @@ import android.view.Menu import android.view.MenuItem import android.view.View import android.widget.Toast +import androidx.activity.OnBackPressedCallback import androidx.core.net.toFile import androidx.core.view.ViewCompat import autodagger.AutoInjector @@ -69,6 +72,12 @@ class ConversationInfoEditActivity : private lateinit var binding: ActivityConversationInfoEditBinding + private val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + finish() + } + } + @Inject lateinit var ncApi: NcApi @@ -149,7 +158,7 @@ class ConversationInfoEditActivity : private fun setupActionBar() { setSupportActionBar(binding.conversationInfoEditToolbar) binding.conversationInfoEditToolbar.setNavigationOnClickListener { - onBackPressed() + onBackPressedDispatcher.addCallback(this, callback) } supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.setDisplayShowHomeEnabled(true) diff --git a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt index ab137f1e1..cc25dd361 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt @@ -5,10 +5,12 @@ * @author Andy Scherzinger * @author Marcel Hibbe * @author Mario Danic + * @author Ezhil Shanmugham * Copyright (C) 2022 Álvaro Brey * Copyright (C) 2022 Andy Scherzinger (info@andy-scherzinger.de) * Copyright (C) 2022 Marcel Hibbe (dev@mhibbe.de) * Copyright (C) 2017-2020 Mario Danic (mario@lovelyhq.com) + * Copyright (C) 2023 Ezhil Shanmugham * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -47,6 +49,7 @@ import android.view.View import android.view.inputmethod.EditorInfo import android.view.inputmethod.InputMethodManager import android.widget.Toast +import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AlertDialog import androidx.appcompat.widget.SearchView import androidx.core.view.MenuItemCompat @@ -143,6 +146,12 @@ class ConversationsListActivity : private lateinit var binding: ControllerConversationsRvBinding + private val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + finish() + } + } + @Inject lateinit var userManager: UserManager @@ -244,7 +253,7 @@ class ConversationsListActivity : private fun setupActionBar() { setSupportActionBar(binding.conversationListToolbar) binding.conversationListToolbar.setNavigationOnClickListener { - onBackPressed() + onBackPressedDispatcher.addCallback(this, callback) } supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.setDisplayShowHomeEnabled(true) @@ -1358,13 +1367,24 @@ class ConversationsListActivity : showErrorDialog() } - override fun onBackPressed() { - super.onBackPressed() - // TODO: replace this when conductor is removed. For now it avoids to load the MainActiviy which has no UI. + override fun onBackPressed() { + val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + finish() + } + } + + onBackPressedDispatcher.addCallback(this, callback) + + // TODO: replace this when conductor is removed. For now it avoids loading the MainActivity which has no UI. + callback.isEnabled = true + callback.handleOnBackPressed() + finishAffinity() } + companion object { const val TAG = "ConvListController" const val UNREAD_BUBBLE_DELAY = 2500 diff --git a/app/src/main/java/com/nextcloud/talk/location/GeocodingActivity.kt b/app/src/main/java/com/nextcloud/talk/location/GeocodingActivity.kt index 0f43ecad0..c14a63c6a 100644 --- a/app/src/main/java/com/nextcloud/talk/location/GeocodingActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/location/GeocodingActivity.kt @@ -33,6 +33,7 @@ import android.view.MenuItem import android.view.inputmethod.EditorInfo import android.widget.AdapterView import android.widget.Toast +import androidx.activity.OnBackPressedCallback import androidx.appcompat.widget.SearchView import androidx.core.view.MenuItemCompat import androidx.preference.PreferenceManager @@ -78,6 +79,12 @@ class GeocodingActivity : lateinit var adapter: GeocodingAdapter private var geocodingResults: List
= ArrayList() + private val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + finish() + } + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this) @@ -123,7 +130,7 @@ class GeocodingActivity : private fun setupActionBar() { setSupportActionBar(binding.geocodingToolbar) binding.geocodingToolbar.setNavigationOnClickListener { - onBackPressed() + onBackPressedDispatcher.addCallback(this, callback) } supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.setDisplayShowHomeEnabled(true) diff --git a/app/src/main/java/com/nextcloud/talk/location/LocationPickerActivity.kt b/app/src/main/java/com/nextcloud/talk/location/LocationPickerActivity.kt index 48d4ced50..5033ff2e3 100644 --- a/app/src/main/java/com/nextcloud/talk/location/LocationPickerActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/location/LocationPickerActivity.kt @@ -2,7 +2,9 @@ * Nextcloud Talk application * * @author Marcel Hibbe + * @author Ezhil Shanmugham * Copyright (C) 2021 Marcel Hibbe + * Copyright (C) 2023 Ezhil Shanmugham * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/app/src/main/java/com/nextcloud/talk/messagesearch/MessageSearchActivity.kt b/app/src/main/java/com/nextcloud/talk/messagesearch/MessageSearchActivity.kt index 0d1db5fa6..084fa322a 100644 --- a/app/src/main/java/com/nextcloud/talk/messagesearch/MessageSearchActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/messagesearch/MessageSearchActivity.kt @@ -2,8 +2,10 @@ * Nextcloud Talk application * * @author Álvaro Brey + * @author Ezhil Shanmugham * Copyright (C) 2022 Álvaro Brey * Copyright (C) 2022 Nextcloud GmbH + * Copyright (C) 2023 Ezhil Shanmugham * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/app/src/main/java/com/nextcloud/talk/profile/ProfileActivity.kt b/app/src/main/java/com/nextcloud/talk/profile/ProfileActivity.kt index 01eab3bd7..1d46d8997 100644 --- a/app/src/main/java/com/nextcloud/talk/profile/ProfileActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/profile/ProfileActivity.kt @@ -4,9 +4,11 @@ * @author Tobias Kaminsky * @author Andy Scherzinger * @author Tim Krüger + * @author Ezhil Shanmugham * Copyright (C) 2022 Tim Krüger * Copyright (C) 2022 Andy Scherzinger * Copyright (C) 2021 Tobias Kaminsky + * Copyright (C) 2023 Ezhil Shanmugham * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -39,6 +41,7 @@ import android.view.MenuItem import android.view.View import android.view.ViewGroup import android.widget.Toast +import androidx.activity.OnBackPressedCallback import androidx.annotation.DrawableRes import androidx.core.content.ContextCompat import androidx.core.net.toFile @@ -86,6 +89,13 @@ import javax.inject.Inject class ProfileActivity : BaseActivity() { private lateinit var binding: ActivityProfileBinding + private val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + finish() + } + + } + @Inject lateinit var ncApi: NcApi @@ -185,7 +195,7 @@ class ProfileActivity : BaseActivity() { private fun setupActionBar() { setSupportActionBar(binding.profileToolbar) binding.profileToolbar.setNavigationOnClickListener { - onBackPressed() + onBackPressedDispatcher.addCallback(this, callback) } supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.setDisplayShowHomeEnabled(true) diff --git a/app/src/main/java/com/nextcloud/talk/remotefilebrowser/activities/RemoteFileBrowserActivity.kt b/app/src/main/java/com/nextcloud/talk/remotefilebrowser/activities/RemoteFileBrowserActivity.kt index 688845917..ff4da52d7 100644 --- a/app/src/main/java/com/nextcloud/talk/remotefilebrowser/activities/RemoteFileBrowserActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/remotefilebrowser/activities/RemoteFileBrowserActivity.kt @@ -3,8 +3,10 @@ * * @author Andy Scherzinger * @author Álvaro Brey + * @author Ezhil Shanmugham * Copyright (C) 2022 Andy Scherzinger * Copyright (C) 2022 Álvaro Brey + * Copyright (C) 2023 Ezhil Shanmugham * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,6 +32,7 @@ import android.util.Log import android.view.Menu import android.view.MenuItem import android.view.View +import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatActivity import androidx.core.content.res.ResourcesCompat import androidx.fragment.app.DialogFragment @@ -192,10 +195,18 @@ class RemoteFileBrowserActivity : AppCompatActivity(), SelectionInterface, Swipe } override fun onBackPressed() { - setResult(Activity.RESULT_CANCELED) - super.onBackPressed() + val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + setResult(Activity.RESULT_CANCELED) + finish() + } + } + + onBackPressedDispatcher.addCallback(this, callback) + callback.handleOnBackPressed() } + override fun onResume() { super.onResume() refreshCurrentPath() diff --git a/app/src/main/java/com/nextcloud/talk/settings/SettingsActivity.kt b/app/src/main/java/com/nextcloud/talk/settings/SettingsActivity.kt index c27e19d6c..8c3db9dfd 100644 --- a/app/src/main/java/com/nextcloud/talk/settings/SettingsActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/settings/SettingsActivity.kt @@ -4,9 +4,11 @@ * @author Andy Scherzinger * @author Mario Danic * @author Tim Krüger + * @author Ezhil Shanmugham * Copyright (C) 2021 Tim Krüger * Copyright (C) 2021-2022 Andy Scherzinger * Copyright (C) 2017 Mario Danic (mario@lovelyhq.com) + * Copyright (C) 2023 Ezhil Shanmugham * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -52,6 +54,7 @@ import android.widget.Checkable import android.widget.EditText import android.widget.LinearLayout import android.widget.Toast +import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AlertDialog import androidx.core.content.ContextCompat import androidx.core.view.ViewCompat @@ -107,6 +110,12 @@ import javax.inject.Inject class SettingsActivity : BaseActivity() { private lateinit var binding: ActivitySettingsBinding + private val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + finish() + } + } + @Inject lateinit var ncApi: NcApi @@ -246,7 +255,7 @@ class SettingsActivity : BaseActivity() { private fun setupActionBar() { setSupportActionBar(binding.settingsToolbar) binding.settingsToolbar.setNavigationOnClickListener { - onBackPressed() + onBackPressedDispatcher.addCallback(this, callback) } supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.setDisplayShowHomeEnabled(true) diff --git a/app/src/main/java/com/nextcloud/talk/shareditems/activities/SharedItemsActivity.kt b/app/src/main/java/com/nextcloud/talk/shareditems/activities/SharedItemsActivity.kt index ee5b34583..7327b4c9e 100644 --- a/app/src/main/java/com/nextcloud/talk/shareditems/activities/SharedItemsActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/shareditems/activities/SharedItemsActivity.kt @@ -4,9 +4,11 @@ * @author Tim Krüger * @author Álvaro Brey * @author Marcel Hibbe + * @author Ezhil Shanmugham * Copyright (C) 2023 Marcel Hibbe * Copyright (C) 2022 Álvaro Brey * Copyright (C) 2022 Tim Krüger + * Copyright (C) 2023 Ezhil Shanmugham * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,6 +30,7 @@ import android.os.Bundle import android.util.Log import android.view.MenuItem import android.view.View +import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatActivity import androidx.core.content.res.ResourcesCompat import androidx.lifecycle.ViewModelProvider @@ -53,6 +56,13 @@ import javax.inject.Inject @AutoInjector(NextcloudTalkApplication::class) class SharedItemsActivity : AppCompatActivity() { + private val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + finish() + } + + } + @Inject lateinit var viewModelFactory: ViewModelProvider.Factory @@ -246,7 +256,7 @@ class SharedItemsActivity : AppCompatActivity() { override fun onOptionsItemSelected(item: MenuItem): Boolean { return if (item.itemId == android.R.id.home) { - onBackPressed() + onBackPressedDispatcher.addCallback(this, callback) true } else { super.onOptionsItemSelected(item)