diff --git a/jami-android/app/src/main/java/cx/ring/account/AccountEditionFragment.kt b/jami-android/app/src/main/java/cx/ring/account/AccountEditionFragment.kt index 626f3cb5e8ec6b5ffb3288738e0c8c4fad0e5446..4bf51be7ab1a286c5a76a0c83d45452e1579e15d 100644 --- a/jami-android/app/src/main/java/cx/ring/account/AccountEditionFragment.kt +++ b/jami-android/app/src/main/java/cx/ring/account/AccountEditionFragment.kt @@ -25,6 +25,8 @@ import androidx.annotation.StringRes import androidx.fragment.app.* import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.adapter.FragmentStateAdapter +import androidx.viewpager2.widget.ViewPager2 +import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayoutMediator import cx.ring.R import cx.ring.contactrequests.BlockListFragment @@ -72,18 +74,22 @@ class AccountEditionFragment : BaseSupportFragment<AccountEditionPresenter, Acco super.onViewCreated(view, savedInstanceState) mAccountId = requireArguments().getString(ACCOUNT_ID_KEY) - mBinding!!.fragmentContainer.viewTreeObserver.addOnScrollChangedListener(this) presenter.init(mAccountId!!) mBinding?.apply { - TabLayoutMediator(slidingTabs, pager){ tab, position -> - tab.text = context?.getString( - if (mAccountIsJami) getJamiPanelTitle(position) - else getSIPPanelTitle(position)) - }.attach() + fragmentContainer.viewTreeObserver.addOnScrollChangedListener(this@AccountEditionFragment) } } + private fun updateAdapter(tabLayout: TabLayout, viewPager: ViewPager2, accountId: String, isJami: Boolean) { + viewPager.adapter = PreferencesPagerAdapter(this@AccountEditionFragment, accountId, isJami) + TabLayoutMediator(tabLayout, viewPager){ tab, position -> + tab.text = context?.getString( + if (mAccountIsJami) getJamiPanelTitle(position) + else getSIPPanelTitle(position)) + }.attach() + } + override fun displaySummary(accountId: String) { toggleView(accountId, true) val fragmentManager = childFragmentManager @@ -111,7 +117,7 @@ class AccountEditionFragment : BaseSupportFragment<AccountEditionPresenter, Acco override fun initViewPager(accountId: String, isJami: Boolean) { mBinding?.apply { pager.offscreenPageLimit = 4 - pager.adapter = PreferencesPagerAdapter(this@AccountEditionFragment, accountId, isJami) + updateAdapter(slidingTabs, pager, accountId, isJami) } val existingFragment = childFragmentManager.findFragmentByTag(BlockListFragment.TAG) as BlockListFragment? if (existingFragment != null) { diff --git a/jami-android/app/src/main/java/cx/ring/share/ScanFragment.kt b/jami-android/app/src/main/java/cx/ring/share/ScanFragment.kt index 0260441a50645a0de5ce9efd96f371ce43409861..e68ece10acbb3f3280f08359b8b279d97f7de67d 100644 --- a/jami-android/app/src/main/java/cx/ring/share/ScanFragment.kt +++ b/jami-android/app/src/main/java/cx/ring/share/ScanFragment.kt @@ -24,6 +24,7 @@ import android.content.pm.PackageManager import android.view.LayoutInflater import android.view.ViewGroup import android.os.Bundle +import android.util.Log import cx.ring.R import androidx.annotation.StringRes import com.journeyapps.barcodescanner.DefaultDecoderFactory @@ -129,7 +130,11 @@ class ScanFragment : Fragment() { } private fun goToConversation(conversationUri: String) { - (requireActivity() as HomeActivity).startConversation(conversationUri) + try { + (requireActivity() as HomeActivity).startConversation(conversationUri) + } catch (e: Exception) { + Log.w(TAG, "Error while starting conversation", e) + } } private fun checkPermission(): Boolean {