Add initial shared element transition between conversation list and stories.

fork-5.53.8
Alex Hart 2022-04-04 16:35:53 -03:00 zatwierdzone przez Cody Henthorne
rodzic 678e832058
commit 3328e43a40
4 zmienionych plików z 12 dodań i 1 usunięć

Wyświetl plik

@ -15,6 +15,7 @@ import androidx.fragment.app.viewModels
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.NavDestination import androidx.navigation.NavDestination
import androidx.navigation.findNavController import androidx.navigation.findNavController
import androidx.navigation.fragment.FragmentNavigatorExtras
import org.signal.core.util.concurrent.SimpleTask import org.signal.core.util.concurrent.SimpleTask
import org.signal.core.util.logging.Log import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.MainActivity import org.thoughtcrime.securesms.MainActivity
@ -105,7 +106,12 @@ class MainActivityListHostFragment : Fragment(R.layout.main_activity_list_host_f
if (state.tab == ConversationListTab.CHATS) { if (state.tab == ConversationListTab.CHATS) {
return return
} else { } else {
navController.navigate(R.id.action_conversationListFragment_to_storiesLandingFragment) navController.navigate(
R.id.action_conversationListFragment_to_storiesLandingFragment,
null,
null,
FragmentNavigatorExtras(requireView().findViewById<View>(R.id.camera_fab) to "camera_fab")
)
} }
} }

Wyświetl plik

@ -4,6 +4,7 @@ import android.Manifest
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.os.Bundle import android.os.Bundle
import android.transition.TransitionInflater
import android.view.Menu import android.view.Menu
import android.view.MenuInflater import android.view.MenuInflater
import android.view.MenuItem import android.view.MenuItem
@ -73,6 +74,8 @@ class StoriesLandingFragment : DSLSettingsFragment(layoutId = R.layout.stories_l
emptyNotice = requireView().findViewById(R.id.empty_notice) emptyNotice = requireView().findViewById(R.id.empty_notice)
cameraFab = requireView().findViewById(R.id.camera_fab) cameraFab = requireView().findViewById(R.id.camera_fab)
sharedElementEnterTransition = TransitionInflater.from(requireContext()).inflateTransition(R.transition.change_transform)
cameraFab.setOnClickListener { cameraFab.setOnClickListener {
Permissions.with(this) Permissions.with(this)
.request(Manifest.permission.CAMERA) .request(Manifest.permission.CAMERA)

Wyświetl plik

@ -110,6 +110,7 @@
app:layout_behavior="org.thoughtcrime.securesms.util.views.SlideUpWithSnackbarBehavior"> app:layout_behavior="org.thoughtcrime.securesms.util.views.SlideUpWithSnackbarBehavior">
<org.thoughtcrime.securesms.components.registration.PulsingFloatingActionButton <org.thoughtcrime.securesms.components.registration.PulsingFloatingActionButton
android:transitionName="camera_fab"
android:id="@+id/camera_fab" android:id="@+id/camera_fab"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

Wyświetl plik

@ -34,6 +34,7 @@
android:contentDescription="@string/conversation_list_fragment__open_camera_description" android:contentDescription="@string/conversation_list_fragment__open_camera_description"
android:focusable="true" android:focusable="true"
android:theme="@style/Widget.Material3.FloatingActionButton.Secondary" android:theme="@style/Widget.Material3.FloatingActionButton.Secondary"
android:transitionName="camera_fab"
app:backgroundTint="@color/signal_colorPrimaryContainer" app:backgroundTint="@color/signal_colorPrimaryContainer"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"