Add slide animation to conversation list to archive.

fork-5.53.8
Alex Hart 2022-05-06 09:33:14 -03:00
rodzic e770241ed4
commit 756eafe3c8
4 zmienionych plików z 42 dodań i 8 usunięć

Wyświetl plik

@ -269,9 +269,6 @@ public class ConversationListFragment extends MainFragment implements ActionMode
cameraFab = view.findViewById(R.id.camera_fab_old);
}
Toolbar toolbar = getToolbar(view);
toolbar.setVisibility(View.VISIBLE);
fab.show();
cameraFab.show();

Wyświetl plik

@ -39,6 +39,8 @@ import org.thoughtcrime.securesms.util.BottomSheetUtil
import org.thoughtcrime.securesms.util.TopToastPopup
import org.thoughtcrime.securesms.util.TopToastPopup.Companion.show
import org.thoughtcrime.securesms.util.Util
import org.thoughtcrime.securesms.util.runHideAnimation
import org.thoughtcrime.securesms.util.runRevealAnimation
import org.thoughtcrime.securesms.util.views.Stub
import org.thoughtcrime.securesms.util.visible
import org.whispersystems.signalservice.api.websocket.WebSocketConnectionState
@ -147,16 +149,20 @@ class MainActivityListHostFragment : Fragment(R.layout.main_activity_list_host_f
}
private fun presentToolbarForConversationListFragment() {
if (_basicToolbar.resolved() && _basicToolbar.get().visible) {
_toolbar.runRevealAnimation(R.anim.slide_to_end)
}
_toolbar.visible = true
_searchAction.visible = true
if (_basicToolbar.resolved()) {
_basicToolbar.get().visible = false
_basicToolbar.get().runHideAnimation(R.anim.slide_from_start)
}
}
private fun presentToolbarForConversationListArchiveFragment() {
_toolbar.visible = false
_basicToolbar.get().visible = true
_toolbar.runHideAnimation(R.anim.slide_to_start)
_basicToolbar.get().runRevealAnimation(R.anim.slide_from_end)
}
private fun presentToolbarForStoriesLandingFragment() {

Wyświetl plik

@ -0,0 +1,27 @@
package org.thoughtcrime.securesms.util
import android.view.View
import android.view.animation.AnimationUtils
import androidx.annotation.AnimRes
/**
* Runs the given animation on this view, assuming that the view is in an INVISIBLE or HIDDEN state.
*/
fun View.runRevealAnimation(@AnimRes anim: Int) {
animation = AnimationUtils.loadAnimation(context, anim)
visible = true
}
/**
* Runs the given animation on this view, assuming that the view is in a VISIBLE state and will
* hide on completion
*/
fun View.runHideAnimation(@AnimRes anim: Int) {
startAnimation(
AnimationUtils.loadAnimation(context, anim).apply {
setListeners(onAnimationEnd = {
visible = false
})
}
)
}

Wyświetl plik

@ -7,10 +7,14 @@
<fragment
android:id="@+id/conversationListFragment"
android:name="org.thoughtcrime.securesms.conversationlist.ConversationListFragment"
android:label="conversation_list_fragment" >
android:label="conversation_list_fragment">
<action
android:id="@+id/action_conversationListFragment_to_conversationListArchiveFragment"
app:destination="@id/conversationListArchiveFragment" />
app:destination="@id/conversationListArchiveFragment"
app:enterAnim="@anim/slide_from_end"
app:exitAnim="@anim/slide_to_start"
app:popEnterAnim="@anim/slide_to_end"
app:popExitAnim="@anim/slide_from_start" />
<action
android:id="@+id/action_conversationListFragment_to_storiesLandingFragment"
app:destination="@id/storiesLandingFragment" />