From 32d1cc7d545926a25b581d8de8e6fc233cd994db Mon Sep 17 00:00:00 2001 From: Rashad Sookram Date: Thu, 24 Mar 2022 14:04:11 -0400 Subject: [PATCH] Recreate MainActivity on language change. --- .../securesms/main/MainActivityListHostFragment.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/main/MainActivityListHostFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/main/MainActivityListHostFragment.kt index 779e9e0e0e..607a2bff6b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/main/MainActivityListHostFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/main/MainActivityListHostFragment.kt @@ -4,6 +4,7 @@ import android.os.Bundle import android.view.View import android.view.ViewGroup import android.widget.ImageView +import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.ActionMenuView import androidx.appcompat.widget.Toolbar @@ -14,8 +15,8 @@ import androidx.fragment.app.viewModels import androidx.navigation.NavController import androidx.navigation.NavDestination import androidx.navigation.findNavController -import androidx.navigation.fragment.findNavController import org.signal.core.util.logging.Log +import org.thoughtcrime.securesms.MainActivity import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.badges.BadgeImageView import org.thoughtcrime.securesms.components.SearchToolbar @@ -60,6 +61,12 @@ class MainActivityListHostFragment : Fragment(R.layout.main_activity_list_host_f private val destinationChangedListener = DestinationChangedListener() + private val openSettings = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> + if (result.resultCode == MainActivity.RESULT_CONFIG_CHANGED) { + requireActivity().recreate() + } + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { _toolbar = view.findViewById(R.id.toolbar) _basicToolbar = Stub(view.findViewById(R.id.toolbar_basic)) @@ -192,7 +199,7 @@ class MainActivityListHostFragment : Fragment(R.layout.main_activity_list_host_f private fun initializeSettingsTouchTarget() { val touchArea = requireView().findViewById(R.id.toolbar_settings_touch_area) - touchArea.setOnClickListener { startActivity(AppSettingsActivity.home(requireContext())) } + touchArea.setOnClickListener { openSettings.launch(AppSettingsActivity.home(requireContext())) } } private fun handleNotificationProfile() {