diff --git a/app/src/main/java/org/futo/circles/MainActivity.kt b/app/src/main/java/org/futo/circles/MainActivity.kt index 4e0ffb5b11c1fe916132e115e063e52e40d9e0ed..414eb7ee8bf6ac1851d39bd11ec88f8c6e4e0683 100644 --- a/app/src/main/java/org/futo/circles/MainActivity.kt +++ b/app/src/main/java/org/futo/circles/MainActivity.kt @@ -1,6 +1,17 @@ package org.futo.circles +import android.content.Intent import org.futo.circles.core.BaseActivity +import org.futo.circles.provider.MatrixSessionProvider -class MainActivity : BaseActivity(R.layout.activity_main) \ No newline at end of file +class MainActivity : BaseActivity(R.layout.activity_main) { + + // Special action to clear cache and/or clear credentials (Element workaround to clear database) + fun restartForLogout() { + MatrixSessionProvider.clearSession() + val intent = Intent(this, MainActivity::class.java) + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK) + this.startActivity(intent) + } +} \ No newline at end of file diff --git a/app/src/main/java/org/futo/circles/feature/settings/SettingsFragment.kt b/app/src/main/java/org/futo/circles/feature/settings/SettingsFragment.kt index baf1404aa058854413b92252de5bf8a1da5ae272..531b837b7195edcf4bcf555e54ce6e4314c68e81 100644 --- a/app/src/main/java/org/futo/circles/feature/settings/SettingsFragment.kt +++ b/app/src/main/java/org/futo/circles/feature/settings/SettingsFragment.kt @@ -8,11 +8,11 @@ import androidx.fragment.app.Fragment import androidx.navigation.fragment.findNavController import by.kirich1409.viewbindingdelegate.viewBinding import com.amulyakhare.textdrawable.TextDrawable +import org.futo.circles.MainActivity import org.futo.circles.R import org.futo.circles.core.matrix.pass_phrase.LoadingDialog import org.futo.circles.databinding.FragmentSettingsBinding import org.futo.circles.extensions.* -import org.futo.circles.feature.bottom_navigation.BottomNavigationFragmentDirections import org.futo.circles.feature.bottom_navigation.SystemNoticesCountSharedViewModel import org.futo.circles.feature.settings.confirm_auth.ConfirmAuthDialog import org.koin.androidx.viewmodel.ext.android.sharedViewModel @@ -78,7 +78,7 @@ class SettingsFragment : Fragment(R.layout.fragment_settings) { } private fun navigateToLogin() { - findParentNavController()?.navigate(BottomNavigationFragmentDirections.toLogInFragment()) + (activity as? MainActivity)?.restartForLogout() } private fun navigateToActiveSessions() { diff --git a/app/src/main/java/org/futo/circles/provider/MatrixSessionProvider.kt b/app/src/main/java/org/futo/circles/provider/MatrixSessionProvider.kt index a2904882a2c36b80e36b2391d3889de7a0e54606..9ec30ad9df2bf7a12b2fcfab31acd232102b9cad 100644 --- a/app/src/main/java/org/futo/circles/provider/MatrixSessionProvider.kt +++ b/app/src/main/java/org/futo/circles/provider/MatrixSessionProvider.kt @@ -28,6 +28,10 @@ object MatrixSessionProvider { lastSession?.let { startSession(it) } } + fun clearSession() { + currentSession = null + } + private fun startSession(session: Session, listener: Session.Listener? = null) { listener?.let { session.addListener(it) } currentSession = session.apply { open(); syncService().startSync(true) } diff --git a/app/src/main/res/navigation/nav_graph_start_host.xml b/app/src/main/res/navigation/nav_graph_start_host.xml index 5949da062d0a4912b74c24e2d9bdcd7a398a904a..e26c9758888f74c568cb9fc6ed41b5af63b1311e 100644 --- a/app/src/main/res/navigation/nav_graph_start_host.xml +++ b/app/src/main/res/navigation/nav_graph_start_host.xml @@ -52,15 +52,7 @@ android:id="@+id/bottomNavigationFragment" android:name="org.futo.circles.feature.bottom_navigation.BottomNavigationFragment" android:label="Bottom Navigation" - tools:layout="@layout/fragment_bottom_navigation"> - - <action - android:id="@+id/to_logInFragment" - app:destination="@id/logInFragment" - app:popUpTo="@id/bottomNavigationFragment" - app:popUpToInclusive="true" /> - - </fragment> + tools:layout="@layout/fragment_bottom_navigation"/> <fragment android:id="@+id/setupProfileFragment" android:name="org.futo.circles.feature.sign_up.setup_profile.SetupProfileFragment"