浏览代码

fix new onBackPressed handling

this commit fixes bugs from d3056ff2825e53040ca49b86b84f91f73a3eb11c and 1185dcf17a99ca62efd32f8a53c298ec4fd6c4d0

fix onBackPressed handling to use OnBackPressedCallback

remove unnecessary onBackPressedCallback's when they only finished the activity

replaced some finishAffinity methods with finish

...

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Marcel Hibbe 1 年之前
父节点
当前提交
d127c5401a
共有 19 个文件被更改,包括 102 次插入159 次删除
  1. 14 7
      app/src/main/java/com/nextcloud/talk/activities/CallBaseActivity.java
  2. 0 8
      app/src/main/java/com/nextcloud/talk/activities/FullScreenImageActivity.kt
  3. 0 8
      app/src/main/java/com/nextcloud/talk/activities/FullScreenMediaActivity.kt
  4. 0 8
      app/src/main/java/com/nextcloud/talk/activities/FullScreenTextViewerActivity.kt
  5. 9 12
      app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt
  6. 19 18
      app/src/main/java/com/nextcloud/talk/activities/TakePhotoActivity.java
  7. 12 7
      app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt
  8. 1 8
      app/src/main/java/com/nextcloud/talk/contacts/ContactsActivity.kt
  9. 1 8
      app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt
  10. 1 8
      app/src/main/java/com/nextcloud/talk/conversationinfoedit/ConversationInfoEditActivity.kt
  11. 8 8
      app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt
  12. 1 8
      app/src/main/java/com/nextcloud/talk/location/GeocodingActivity.kt
  13. 11 6
      app/src/main/java/com/nextcloud/talk/location/LocationPickerActivity.kt
  14. 12 7
      app/src/main/java/com/nextcloud/talk/messagesearch/MessageSearchActivity.kt
  15. 1 8
      app/src/main/java/com/nextcloud/talk/profile/ProfileActivity.kt
  16. 10 13
      app/src/main/java/com/nextcloud/talk/remotefilebrowser/activities/RemoteFileBrowserActivity.kt
  17. 1 8
      app/src/main/java/com/nextcloud/talk/settings/SettingsActivity.kt
  18. 0 8
      app/src/main/java/com/nextcloud/talk/shareditems/activities/SharedItemsActivity.kt
  19. 1 1
      app/src/main/java/com/nextcloud/talk/translate/ui/TranslateActivity.kt

+ 14 - 7
app/src/main/java/com/nextcloud/talk/activities/CallBaseActivity.java

@@ -35,6 +35,8 @@ import android.view.WindowManager;
 
 
 import com.nextcloud.talk.BuildConfig;
 import com.nextcloud.talk.BuildConfig;
 
 
+import androidx.activity.OnBackPressedCallback;
+
 public abstract class CallBaseActivity extends BaseActivity {
 public abstract class CallBaseActivity extends BaseActivity {
 
 
     public static final String TAG = "CallBaseActivity";
     public static final String TAG = "CallBaseActivity";
@@ -43,6 +45,16 @@ public abstract class CallBaseActivity extends BaseActivity {
     public Boolean isInPipMode = Boolean.FALSE;
     public Boolean isInPipMode = Boolean.FALSE;
     long onCreateTime;
     long onCreateTime;
 
 
+
+    private OnBackPressedCallback onBackPressedCallback = new OnBackPressedCallback(true) {
+        @Override
+        public void handleOnBackPressed() {
+            if (isPipModePossible()) {
+                enterPipMode();
+            }
+        }
+    };
+
     @SuppressLint("ClickableViewAccessibility")
     @SuppressLint("ClickableViewAccessibility")
     @Override
     @Override
     public void onCreate(Bundle savedInstanceState) {
     public void onCreate(Bundle savedInstanceState) {
@@ -58,6 +70,8 @@ public abstract class CallBaseActivity extends BaseActivity {
         if (isGreaterEqualOreo() && isPipModePossible()) {
         if (isGreaterEqualOreo() && isPipModePossible()) {
             mPictureInPictureParamsBuilder = new PictureInPictureParams.Builder();
             mPictureInPictureParamsBuilder = new PictureInPictureParams.Builder();
         }
         }
+
+        getOnBackPressedDispatcher().addCallback(this, onBackPressedCallback);
     }
     }
 
 
     void hideNavigationIfNoPipAvailable(){
     void hideNavigationIfNoPipAvailable(){
@@ -101,13 +115,6 @@ public abstract class CallBaseActivity extends BaseActivity {
         }
         }
     }
     }
 
 
-    @Override
-    public void onBackPressed() {
-        if (isPipModePossible()) {
-            enterPipMode();
-        }
-    }
-
     @Override
     @Override
     protected void onUserLeaveHint() {
     protected void onUserLeaveHint() {
         long onUserLeaveHintTime = System.currentTimeMillis();
         long onUserLeaveHintTime = System.currentTimeMillis();

+ 0 - 8
app/src/main/java/com/nextcloud/talk/activities/FullScreenImageActivity.kt

@@ -33,7 +33,6 @@ import android.view.Menu
 import android.view.MenuItem
 import android.view.MenuItem
 import android.view.View
 import android.view.View
 import android.widget.Toast
 import android.widget.Toast
-import androidx.activity.OnBackPressedCallback
 import androidx.appcompat.app.AppCompatActivity
 import androidx.appcompat.app.AppCompatActivity
 import androidx.core.content.FileProvider
 import androidx.core.content.FileProvider
 import com.nextcloud.talk.BuildConfig
 import com.nextcloud.talk.BuildConfig
@@ -120,13 +119,6 @@ class FullScreenImageActivity : AppCompatActivity() {
             binding.photoView.visibility = View.VISIBLE
             binding.photoView.visibility = View.VISIBLE
             displayImage(path)
             displayImage(path)
         }
         }
-
-        val callback = object : OnBackPressedCallback(true) {
-            override fun handleOnBackPressed() {
-                finish()
-            }
-        }
-        onBackPressedDispatcher.addCallback(this, callback)
     }
     }
 
 
     private fun displayImage(path: String) {
     private fun displayImage(path: String) {

+ 0 - 8
app/src/main/java/com/nextcloud/talk/activities/FullScreenMediaActivity.kt

@@ -30,7 +30,6 @@ import android.view.Menu
 import android.view.MenuItem
 import android.view.MenuItem
 import android.view.View
 import android.view.View
 import android.view.WindowManager
 import android.view.WindowManager
-import androidx.activity.OnBackPressedCallback
 import androidx.appcompat.app.AppCompatActivity
 import androidx.appcompat.app.AppCompatActivity
 import androidx.core.content.FileProvider
 import androidx.core.content.FileProvider
 import autodagger.AutoInjector
 import autodagger.AutoInjector
@@ -115,13 +114,6 @@ class FullScreenMediaActivity : AppCompatActivity(), Player.Listener {
                 }
                 }
             }
             }
         )
         )
-
-        val callback = object : OnBackPressedCallback(true) {
-            override fun handleOnBackPressed() {
-                finish()
-            }
-        }
-        onBackPressedDispatcher.addCallback(this, callback)
     }
     }
 
 
     override fun onStart() {
     override fun onStart() {

+ 0 - 8
app/src/main/java/com/nextcloud/talk/activities/FullScreenTextViewerActivity.kt

@@ -28,7 +28,6 @@ import android.content.Intent
 import android.os.Bundle
 import android.os.Bundle
 import android.view.Menu
 import android.view.Menu
 import android.view.MenuItem
 import android.view.MenuItem
-import androidx.activity.OnBackPressedCallback
 import androidx.appcompat.app.AppCompatActivity
 import androidx.appcompat.app.AppCompatActivity
 import androidx.core.content.FileProvider
 import androidx.core.content.FileProvider
 import androidx.core.content.res.ResourcesCompat
 import androidx.core.content.res.ResourcesCompat
@@ -117,13 +116,6 @@ class FullScreenTextViewerActivity : AppCompatActivity() {
                 ResourcesCompat.getColor(resources, R.color.bg_default, null)
                 ResourcesCompat.getColor(resources, R.color.bg_default, null)
             )
             )
         }
         }
-
-        val callback = object : OnBackPressedCallback(true) {
-            override fun handleOnBackPressed() {
-                finish()
-            }
-        }
-        onBackPressedDispatcher.addCallback(this, callback)
     }
     }
 
 
     private fun readFile(fileName: String) = File(fileName).inputStream().readBytes().toString(Charsets.UTF_8)
     private fun readFile(fileName: String) = File(fileName).inputStream().readBytes().toString(Charsets.UTF_8)

+ 9 - 12
app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt

@@ -85,6 +85,14 @@ class MainActivity : BaseActivity(), ActionBarProvider {
 
 
     private var router: Router? = null
     private var router: Router? = null
 
 
+    private val onBackPressedCallback = object : OnBackPressedCallback(true) {
+        override fun handleOnBackPressed() {
+            if (!router!!.handleBack()) {
+                finish()
+            }
+        }
+    }
+
     @Suppress("Detekt.TooGenericExceptionCaught")
     @Suppress("Detekt.TooGenericExceptionCaught")
     override fun onCreate(savedInstanceState: Bundle?) {
     override fun onCreate(savedInstanceState: Bundle?) {
         Log.d(TAG, "onCreate: Activity: " + System.identityHashCode(this).toString())
         Log.d(TAG, "onCreate: Activity: " + System.identityHashCode(this).toString())
@@ -140,12 +148,7 @@ class MainActivity : BaseActivity(), ActionBarProvider {
             })
             })
         }
         }
 
 
-        val callback = object : OnBackPressedCallback(true) {
-            override fun handleOnBackPressed() {
-                finish()
-            }
-        }
-        onBackPressedDispatcher.addCallback(this, callback)
+        onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
     }
     }
 
 
     fun lockScreenIfConditionsApply() {
     fun lockScreenIfConditionsApply() {
@@ -363,12 +366,6 @@ class MainActivity : BaseActivity(), ActionBarProvider {
         }
         }
     }
     }
 
 
-    fun handleOnBackPressed() {
-        if (!router!!.handleBack()) {
-            onBackPressedDispatcher.onBackPressed()
-        }
-    }
-
     private fun logRouterBackStack(router: Router) {
     private fun logRouterBackStack(router: Router) {
         if (BuildConfig.DEBUG) {
         if (BuildConfig.DEBUG) {
             val backstack = router.backstack
             val backstack = router.backstack

+ 19 - 18
app/src/main/java/com/nextcloud/talk/activities/TakePhotoActivity.java

@@ -95,6 +95,23 @@ public class TakePhotoActivity extends AppCompatActivity {
     @Inject
     @Inject
     ViewThemeUtils viewThemeUtils;
     ViewThemeUtils viewThemeUtils;
 
 
+    private OnBackPressedCallback onBackPressedCallback = 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");
+                }
+                binding.photoPreview.setTag(null);
+            }
+
+            finish();
+        }
+    };
+
     @Override
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         super.onCreate(savedInstanceState);
@@ -221,25 +238,9 @@ public class TakePhotoActivity extends AppCompatActivity {
                 finish();
                 finish();
             }
             }
         }, ContextCompat.getMainExecutor(this));
         }, ContextCompat.getMainExecutor(this));
-    }
-
-    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");
-                }
-                binding.photoPreview.setTag(null);
-            }
-
-            finish();
-        }
-    };
 
 
+        getOnBackPressedDispatcher().addCallback(this, onBackPressedCallback);
+    }
 
 
     private void showCameraElements() {
     private void showCameraElements() {
         binding.send.setVisibility(View.GONE);
         binding.send.setVisibility(View.GONE);

+ 12 - 7
app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt

@@ -74,6 +74,7 @@ import android.widget.ImageView
 import android.widget.PopupMenu
 import android.widget.PopupMenu
 import android.widget.RelativeLayout
 import android.widget.RelativeLayout
 import android.widget.Toast
 import android.widget.Toast
+import androidx.activity.OnBackPressedCallback
 import androidx.appcompat.app.AlertDialog
 import androidx.appcompat.app.AlertDialog
 import androidx.appcompat.view.ContextThemeWrapper
 import androidx.appcompat.view.ContextThemeWrapper
 import androidx.core.content.ContextCompat
 import androidx.core.content.ContextCompat
@@ -309,6 +310,14 @@ class ChatActivity :
 
 
     private var videoURI: Uri? = null
     private var videoURI: Uri? = null
 
 
+    private val onBackPressedCallback = object : OnBackPressedCallback(true) {
+        override fun handleOnBackPressed() {
+            val intent = Intent(this@ChatActivity, ConversationsListActivity::class.java)
+            intent.putExtras(Bundle())
+            startActivity(intent)
+        }
+    }
+
     var typingTimer: CountDownTimer? = null
     var typingTimer: CountDownTimer? = null
     val typingParticipants = HashMap<String, String>()
     val typingParticipants = HashMap<String, String>()
 
 
@@ -362,6 +371,8 @@ class ChatActivity :
 
 
         initAdapter()
         initAdapter()
         binding.messagesListView.setAdapter(adapter)
         binding.messagesListView.setAdapter(adapter)
+
+        onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
     }
     }
 
 
     override fun onNewIntent(intent: Intent) {
     override fun onNewIntent(intent: Intent) {
@@ -614,7 +625,7 @@ class ChatActivity :
     private fun setupActionBar() {
     private fun setupActionBar() {
         setSupportActionBar(binding.chatToolbar)
         setSupportActionBar(binding.chatToolbar)
         binding.chatToolbar.setNavigationOnClickListener {
         binding.chatToolbar.setNavigationOnClickListener {
-            handleOnBackPressed()
+            onBackPressedDispatcher.onBackPressed()
         }
         }
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)
@@ -623,12 +634,6 @@ class ChatActivity :
         viewThemeUtils.material.themeToolbar(binding.chatToolbar)
         viewThemeUtils.material.themeToolbar(binding.chatToolbar)
     }
     }
 
 
-    fun handleOnBackPressed() {
-        val intent = Intent(this, ConversationsListActivity::class.java)
-        intent.putExtras(Bundle())
-        startActivity(intent)
-    }
-
     private fun initAdapter() {
     private fun initAdapter() {
         val senderId = if (!conversationUser!!.userId.equals("?")) {
         val senderId = if (!conversationUser!!.userId.equals("?")) {
             "users/" + conversationUser!!.userId
             "users/" + conversationUser!!.userId

+ 1 - 8
app/src/main/java/com/nextcloud/talk/contacts/ContactsActivity.kt

@@ -36,7 +36,6 @@ import android.view.Menu
 import android.view.MenuItem
 import android.view.MenuItem
 import android.view.View
 import android.view.View
 import android.view.inputmethod.EditorInfo
 import android.view.inputmethod.EditorInfo
-import androidx.activity.OnBackPressedCallback
 import androidx.appcompat.widget.SearchView
 import androidx.appcompat.widget.SearchView
 import androidx.core.content.res.ResourcesCompat
 import androidx.core.content.res.ResourcesCompat
 import androidx.core.view.MenuItemCompat
 import androidx.core.view.MenuItemCompat
@@ -93,12 +92,6 @@ class ContactsActivity :
     FlexibleAdapter.OnItemClickListener {
     FlexibleAdapter.OnItemClickListener {
     private lateinit var binding: ControllerContactsRvBinding
     private lateinit var binding: ControllerContactsRvBinding
 
 
-    private val callback = object : OnBackPressedCallback(true) {
-        override fun handleOnBackPressed() {
-            finish()
-        }
-    }
-
     @Inject
     @Inject
     lateinit var userManager: UserManager
     lateinit var userManager: UserManager
 
 
@@ -195,7 +188,7 @@ class ContactsActivity :
     private fun setupActionBar() {
     private fun setupActionBar() {
         setSupportActionBar(binding.contactsToolbar)
         setSupportActionBar(binding.contactsToolbar)
         binding.contactsToolbar.setNavigationOnClickListener {
         binding.contactsToolbar.setNavigationOnClickListener {
-            onBackPressedDispatcher.addCallback(this, callback)
+            onBackPressedDispatcher.onBackPressed()
         }
         }
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)

+ 1 - 8
app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt

@@ -41,7 +41,6 @@ import android.view.View
 import android.view.View.GONE
 import android.view.View.GONE
 import android.view.View.VISIBLE
 import android.view.View.VISIBLE
 import android.widget.Toast
 import android.widget.Toast
-import androidx.activity.OnBackPressedCallback
 import androidx.appcompat.app.AlertDialog
 import androidx.appcompat.app.AlertDialog
 import androidx.appcompat.widget.SwitchCompat
 import androidx.appcompat.widget.SwitchCompat
 import androidx.work.Data
 import androidx.work.Data
@@ -110,12 +109,6 @@ class ConversationInfoActivity :
 
 
     private lateinit var binding: ActivityConversationInfoBinding
     private lateinit var binding: ActivityConversationInfoBinding
 
 
-    private val callback = object : OnBackPressedCallback(true) {
-        override fun handleOnBackPressed() {
-            finish()
-        }
-    }
-
     @Inject
     @Inject
     lateinit var ncApi: NcApi
     lateinit var ncApi: NcApi
 
 
@@ -202,7 +195,7 @@ class ConversationInfoActivity :
     private fun setupActionBar() {
     private fun setupActionBar() {
         setSupportActionBar(binding.conversationInfoToolbar)
         setSupportActionBar(binding.conversationInfoToolbar)
         binding.conversationInfoToolbar.setNavigationOnClickListener {
         binding.conversationInfoToolbar.setNavigationOnClickListener {
-            onBackPressedDispatcher.addCallback(this, callback)
+            onBackPressedDispatcher.onBackPressed()
         }
         }
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)

+ 1 - 8
app/src/main/java/com/nextcloud/talk/conversationinfoedit/ConversationInfoEditActivity.kt

@@ -32,7 +32,6 @@ import android.view.Menu
 import android.view.MenuItem
 import android.view.MenuItem
 import android.view.View
 import android.view.View
 import android.widget.Toast
 import android.widget.Toast
-import androidx.activity.OnBackPressedCallback
 import androidx.core.net.toFile
 import androidx.core.net.toFile
 import androidx.core.view.ViewCompat
 import androidx.core.view.ViewCompat
 import autodagger.AutoInjector
 import autodagger.AutoInjector
@@ -72,12 +71,6 @@ class ConversationInfoEditActivity :
 
 
     private lateinit var binding: ActivityConversationInfoEditBinding
     private lateinit var binding: ActivityConversationInfoEditBinding
 
 
-    private val callback = object : OnBackPressedCallback(true) {
-        override fun handleOnBackPressed() {
-            finish()
-        }
-    }
-
     @Inject
     @Inject
     lateinit var ncApi: NcApi
     lateinit var ncApi: NcApi
 
 
@@ -158,7 +151,7 @@ class ConversationInfoEditActivity :
     private fun setupActionBar() {
     private fun setupActionBar() {
         setSupportActionBar(binding.conversationInfoEditToolbar)
         setSupportActionBar(binding.conversationInfoEditToolbar)
         binding.conversationInfoEditToolbar.setNavigationOnClickListener {
         binding.conversationInfoEditToolbar.setNavigationOnClickListener {
-            onBackPressedDispatcher.addCallback(this, callback)
+            onBackPressedDispatcher.onBackPressed()
         }
         }
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)

+ 8 - 8
app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt

@@ -189,7 +189,12 @@ class ConversationsListActivity :
     private var searchHelper: MessageSearchHelper? = null
     private var searchHelper: MessageSearchHelper? = null
     private var searchViewDisposable: Disposable? = null
     private var searchViewDisposable: Disposable? = null
 
 
-    private lateinit var callback: OnBackPressedCallback
+    private val onBackPressedCallback = object : OnBackPressedCallback(true) {
+        override fun handleOnBackPressed() {
+            // TODO: replace this when conductor is removed. For now it avoids to load the MainActiviy which has no UI.
+            finishAffinity()
+        }
+    }
 
 
     override fun onCreate(savedInstanceState: Bundle?) {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         super.onCreate(savedInstanceState)
@@ -204,12 +209,7 @@ class ConversationsListActivity :
 
 
         forwardMessage = intent.getBooleanExtra(KEY_FORWARD_MSG_FLAG, false)
         forwardMessage = intent.getBooleanExtra(KEY_FORWARD_MSG_FLAG, false)
 
 
-        callback = object : OnBackPressedCallback(true) {
-            override fun handleOnBackPressed() {
-                finish()
-            }
-        }
-        onBackPressedDispatcher.addCallback(this, callback)
+        onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
     }
     }
 
 
     override fun onResume() {
     override fun onResume() {
@@ -256,7 +256,7 @@ class ConversationsListActivity :
     private fun setupActionBar() {
     private fun setupActionBar() {
         setSupportActionBar(binding.conversationListToolbar)
         setSupportActionBar(binding.conversationListToolbar)
         binding.conversationListToolbar.setNavigationOnClickListener {
         binding.conversationListToolbar.setNavigationOnClickListener {
-            onBackPressedDispatcher.addCallback(this, callback)
+            onBackPressedDispatcher.onBackPressed()
         }
         }
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)

+ 1 - 8
app/src/main/java/com/nextcloud/talk/location/GeocodingActivity.kt

@@ -33,7 +33,6 @@ import android.view.MenuItem
 import android.view.inputmethod.EditorInfo
 import android.view.inputmethod.EditorInfo
 import android.widget.AdapterView
 import android.widget.AdapterView
 import android.widget.Toast
 import android.widget.Toast
-import androidx.activity.OnBackPressedCallback
 import androidx.appcompat.widget.SearchView
 import androidx.appcompat.widget.SearchView
 import androidx.core.view.MenuItemCompat
 import androidx.core.view.MenuItemCompat
 import androidx.preference.PreferenceManager
 import androidx.preference.PreferenceManager
@@ -79,12 +78,6 @@ class GeocodingActivity :
     lateinit var adapter: GeocodingAdapter
     lateinit var adapter: GeocodingAdapter
     private var geocodingResults: List<Address> = ArrayList()
     private var geocodingResults: List<Address> = ArrayList()
 
 
-    private val callback = object : OnBackPressedCallback(true) {
-        override fun handleOnBackPressed() {
-            finish()
-        }
-    }
-
     override fun onCreate(savedInstanceState: Bundle?) {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         super.onCreate(savedInstanceState)
         NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this)
         NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this)
@@ -130,7 +123,7 @@ class GeocodingActivity :
     private fun setupActionBar() {
     private fun setupActionBar() {
         setSupportActionBar(binding.geocodingToolbar)
         setSupportActionBar(binding.geocodingToolbar)
         binding.geocodingToolbar.setNavigationOnClickListener {
         binding.geocodingToolbar.setNavigationOnClickListener {
-            onBackPressedDispatcher.addCallback(this, callback)
+            onBackPressedDispatcher.onBackPressed()
         }
         }
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)

+ 11 - 6
app/src/main/java/com/nextcloud/talk/location/LocationPickerActivity.kt

@@ -41,6 +41,7 @@ import android.view.MenuItem
 import android.view.View
 import android.view.View
 import android.view.inputmethod.EditorInfo
 import android.view.inputmethod.EditorInfo
 import android.widget.Toast
 import android.widget.Toast
+import androidx.activity.OnBackPressedCallback
 import androidx.appcompat.widget.SearchView
 import androidx.appcompat.widget.SearchView
 import androidx.core.content.PermissionChecker
 import androidx.core.content.PermissionChecker
 import androidx.core.content.res.ResourcesCompat
 import androidx.core.content.res.ResourcesCompat
@@ -117,6 +118,13 @@ class LocationPickerActivity :
     var searchItem: MenuItem? = null
     var searchItem: MenuItem? = null
     var searchView: SearchView? = null
     var searchView: SearchView? = null
 
 
+    private val onBackPressedCallback = object : OnBackPressedCallback(true) {
+        override fun handleOnBackPressed() {
+            setResult(Activity.RESULT_CANCELED)
+            finish()
+        }
+    }
+
     override fun onCreate(savedInstanceState: Bundle?) {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         super.onCreate(savedInstanceState)
         NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this)
         NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this)
@@ -137,6 +145,8 @@ class LocationPickerActivity :
         setupSystemColors()
         setupSystemColors()
 
 
         getInstance().load(context, PreferenceManager.getDefaultSharedPreferences(context))
         getInstance().load(context, PreferenceManager.getDefaultSharedPreferences(context))
+
+        onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
     }
     }
 
 
     override fun onStart() {
     override fun onStart() {
@@ -177,7 +187,7 @@ class LocationPickerActivity :
     private fun setupActionBar() {
     private fun setupActionBar() {
         setSupportActionBar(binding.locationPickerToolbar)
         setSupportActionBar(binding.locationPickerToolbar)
         binding.locationPickerToolbar.setNavigationOnClickListener {
         binding.locationPickerToolbar.setNavigationOnClickListener {
-            handleOnBackPressed()
+            onBackPressedDispatcher.onBackPressed()
         }
         }
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)
@@ -574,11 +584,6 @@ class LocationPickerActivity :
         // empty
         // empty
     }
     }
 
 
-    fun handleOnBackPressed() {
-        setResult(Activity.RESULT_CANCELED)
-        finishAffinity()
-    }
-
     companion object {
     companion object {
         private val TAG = LocationPickerActivity::class.java.simpleName
         private val TAG = LocationPickerActivity::class.java.simpleName
         private const val REQUEST_PERMISSIONS_REQUEST_CODE = 1
         private const val REQUEST_PERMISSIONS_REQUEST_CODE = 1

+ 12 - 7
app/src/main/java/com/nextcloud/talk/messagesearch/MessageSearchActivity.kt

@@ -31,6 +31,7 @@ import android.view.Menu
 import android.view.MenuItem
 import android.view.MenuItem
 import android.view.View
 import android.view.View
 import android.widget.Toast
 import android.widget.Toast
+import androidx.activity.OnBackPressedCallback
 import androidx.appcompat.widget.SearchView
 import androidx.appcompat.widget.SearchView
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.ViewModelProvider
 import autodagger.AutoInjector
 import autodagger.AutoInjector
@@ -74,6 +75,13 @@ class MessageSearchActivity : BaseActivity() {
     private var searchViewDisposable: Disposable? = null
     private var searchViewDisposable: Disposable? = null
     private var adapter: FlexibleAdapter<AbstractFlexibleItem<*>>? = null
     private var adapter: FlexibleAdapter<AbstractFlexibleItem<*>>? = null
 
 
+    private val onBackPressedCallback = object : OnBackPressedCallback(true) {
+        override fun handleOnBackPressed() {
+            setResult(Activity.RESULT_CANCELED)
+            finish()
+        }
+    }
+
     override fun onCreate(savedInstanceState: Bundle?) {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         super.onCreate(savedInstanceState)
         NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this)
         NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this)
@@ -92,6 +100,8 @@ class MessageSearchActivity : BaseActivity() {
         binding.swipeRefreshLayout.setOnRefreshListener {
         binding.swipeRefreshLayout.setOnRefreshListener {
             viewModel.refresh(searchView.query?.toString())
             viewModel.refresh(searchView.query?.toString())
         }
         }
+
+        onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
     }
     }
 
 
     private fun setupActionBar() {
     private fun setupActionBar() {
@@ -212,7 +222,7 @@ class MessageSearchActivity : BaseActivity() {
             }
             }
 
 
             override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
             override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
-                handleOnBackPressed()
+                onBackPressedDispatcher.onBackPressed()
                 return false
                 return false
             }
             }
         })
         })
@@ -238,15 +248,10 @@ class MessageSearchActivity : BaseActivity() {
             .subscribe { newText -> viewModel.onQueryTextChange(newText) }
             .subscribe { newText -> viewModel.onQueryTextChange(newText) }
     }
     }
 
 
-    fun handleOnBackPressed() {
-        setResult(Activity.RESULT_CANCELED)
-        finishAffinity()
-    }
-
     override fun onOptionsItemSelected(item: MenuItem): Boolean {
     override fun onOptionsItemSelected(item: MenuItem): Boolean {
         return when (item.itemId) {
         return when (item.itemId) {
             android.R.id.home -> {
             android.R.id.home -> {
-                handleOnBackPressed()
+                onBackPressedDispatcher.onBackPressed()
                 true
                 true
             }
             }
             else -> super.onOptionsItemSelected(item)
             else -> super.onOptionsItemSelected(item)

+ 1 - 8
app/src/main/java/com/nextcloud/talk/profile/ProfileActivity.kt

@@ -41,7 +41,6 @@ import android.view.MenuItem
 import android.view.View
 import android.view.View
 import android.view.ViewGroup
 import android.view.ViewGroup
 import android.widget.Toast
 import android.widget.Toast
-import androidx.activity.OnBackPressedCallback
 import androidx.annotation.DrawableRes
 import androidx.annotation.DrawableRes
 import androidx.core.content.ContextCompat
 import androidx.core.content.ContextCompat
 import androidx.core.net.toFile
 import androidx.core.net.toFile
@@ -89,12 +88,6 @@ import javax.inject.Inject
 class ProfileActivity : BaseActivity() {
 class ProfileActivity : BaseActivity() {
     private lateinit var binding: ActivityProfileBinding
     private lateinit var binding: ActivityProfileBinding
 
 
-    private val callback = object : OnBackPressedCallback(true) {
-        override fun handleOnBackPressed() {
-            finish()
-        }
-    }
-
     @Inject
     @Inject
     lateinit var ncApi: NcApi
     lateinit var ncApi: NcApi
 
 
@@ -194,7 +187,7 @@ class ProfileActivity : BaseActivity() {
     private fun setupActionBar() {
     private fun setupActionBar() {
         setSupportActionBar(binding.profileToolbar)
         setSupportActionBar(binding.profileToolbar)
         binding.profileToolbar.setNavigationOnClickListener {
         binding.profileToolbar.setNavigationOnClickListener {
-            onBackPressedDispatcher.addCallback(this, callback)
+            onBackPressedDispatcher.onBackPressed()
         }
         }
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)

+ 10 - 13
app/src/main/java/com/nextcloud/talk/remotefilebrowser/activities/RemoteFileBrowserActivity.kt

@@ -76,6 +76,13 @@ class RemoteFileBrowserActivity : AppCompatActivity(), SelectionInterface, Swipe
 
 
     private var filesSelectionDoneMenuItem: MenuItem? = null
     private var filesSelectionDoneMenuItem: MenuItem? = null
 
 
+    private val onBackPressedCallback = object : OnBackPressedCallback(true) {
+        override fun handleOnBackPressed() {
+            setResult(Activity.RESULT_CANCELED)
+            finish()
+        }
+    }
+
     override fun onCreate(savedInstanceState: Bundle?) {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         super.onCreate(savedInstanceState)
         NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this)
         NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this)
@@ -113,6 +120,8 @@ class RemoteFileBrowserActivity : AppCompatActivity(), SelectionInterface, Swipe
         binding.sortButton.setOnClickListener { changeSorting() }
         binding.sortButton.setOnClickListener { changeSorting() }
 
 
         viewModel.loadItems()
         viewModel.loadItems()
+
+        onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
     }
     }
 
 
     private fun initViewModel(mimeTypeSelectionFilter: String?) {
     private fun initViewModel(mimeTypeSelectionFilter: String?) {
@@ -194,18 +203,6 @@ class RemoteFileBrowserActivity : AppCompatActivity(), SelectionInterface, Swipe
         return true
         return true
     }
     }
 
 
-    fun handleOnBackPressed() {
-        val callback = object : OnBackPressedCallback(true) {
-            override fun handleOnBackPressed() {
-                setResult(Activity.RESULT_CANCELED)
-                finish()
-            }
-        }
-
-        onBackPressedDispatcher.addCallback(this, callback)
-        callback.handleOnBackPressed()
-    }
-
     override fun onResume() {
     override fun onResume() {
         super.onResume()
         super.onResume()
         refreshCurrentPath()
         refreshCurrentPath()
@@ -223,7 +220,7 @@ class RemoteFileBrowserActivity : AppCompatActivity(), SelectionInterface, Swipe
     override fun onOptionsItemSelected(item: MenuItem): Boolean {
     override fun onOptionsItemSelected(item: MenuItem): Boolean {
         return when (item.itemId) {
         return when (item.itemId) {
             android.R.id.home -> {
             android.R.id.home -> {
-                handleOnBackPressed()
+                onBackPressedDispatcher.onBackPressed()
                 true
                 true
             }
             }
             R.id.files_selection_done -> {
             R.id.files_selection_done -> {

+ 1 - 8
app/src/main/java/com/nextcloud/talk/settings/SettingsActivity.kt

@@ -54,7 +54,6 @@ import android.widget.Checkable
 import android.widget.EditText
 import android.widget.EditText
 import android.widget.LinearLayout
 import android.widget.LinearLayout
 import android.widget.Toast
 import android.widget.Toast
-import androidx.activity.OnBackPressedCallback
 import androidx.appcompat.app.AlertDialog
 import androidx.appcompat.app.AlertDialog
 import androidx.core.content.ContextCompat
 import androidx.core.content.ContextCompat
 import androidx.core.view.ViewCompat
 import androidx.core.view.ViewCompat
@@ -110,12 +109,6 @@ import javax.inject.Inject
 class SettingsActivity : BaseActivity() {
 class SettingsActivity : BaseActivity() {
     private lateinit var binding: ActivitySettingsBinding
     private lateinit var binding: ActivitySettingsBinding
 
 
-    private val callback = object : OnBackPressedCallback(true) {
-        override fun handleOnBackPressed() {
-            finish()
-        }
-    }
-
     @Inject
     @Inject
     lateinit var ncApi: NcApi
     lateinit var ncApi: NcApi
 
 
@@ -255,7 +248,7 @@ class SettingsActivity : BaseActivity() {
     private fun setupActionBar() {
     private fun setupActionBar() {
         setSupportActionBar(binding.settingsToolbar)
         setSupportActionBar(binding.settingsToolbar)
         binding.settingsToolbar.setNavigationOnClickListener {
         binding.settingsToolbar.setNavigationOnClickListener {
-            onBackPressedDispatcher.addCallback(this, callback)
+            onBackPressedDispatcher.onBackPressed()
         }
         }
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)

+ 0 - 8
app/src/main/java/com/nextcloud/talk/shareditems/activities/SharedItemsActivity.kt

@@ -30,7 +30,6 @@ import android.os.Bundle
 import android.util.Log
 import android.util.Log
 import android.view.MenuItem
 import android.view.MenuItem
 import android.view.View
 import android.view.View
-import androidx.activity.OnBackPressedCallback
 import androidx.appcompat.app.AppCompatActivity
 import androidx.appcompat.app.AppCompatActivity
 import androidx.core.content.res.ResourcesCompat
 import androidx.core.content.res.ResourcesCompat
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.ViewModelProvider
@@ -106,13 +105,6 @@ class SharedItemsActivity : AppCompatActivity() {
         })
         })
 
 
         viewModel.initialize(user, roomToken)
         viewModel.initialize(user, roomToken)
-
-        val callback = object : OnBackPressedCallback(true) {
-            override fun handleOnBackPressed() {
-                finish()
-            }
-        }
-        onBackPressedDispatcher.addCallback(this, callback)
     }
     }
 
 
     private fun handleModelChange(
     private fun handleModelChange(

+ 1 - 1
app/src/main/java/com/nextcloud/talk/translate/ui/TranslateActivity.kt

@@ -127,7 +127,7 @@ class TranslateActivity : BaseActivity() {
     private fun setupActionBar() {
     private fun setupActionBar() {
         setSupportActionBar(binding.translationToolbar)
         setSupportActionBar(binding.translationToolbar)
         binding.translationToolbar.setNavigationOnClickListener {
         binding.translationToolbar.setNavigationOnClickListener {
-            onBackPressed()
+            onBackPressedDispatcher.onBackPressed()
         }
         }
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayHomeAsUpEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)
         supportActionBar?.setDisplayShowHomeEnabled(true)