diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/tabs/ConversationListTabsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/tabs/ConversationListTabsFragment.kt index 96a1efabe..b235ad15e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/tabs/ConversationListTabsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/tabs/ConversationListTabsFragment.kt @@ -1,10 +1,20 @@ package org.thoughtcrime.securesms.stories.tabs +import android.animation.Animator +import android.animation.AnimatorSet +import android.animation.ValueAnimator import android.os.Bundle import android.view.View +import android.widget.ImageView import android.widget.TextView +import androidx.core.content.ContextCompat +import androidx.core.view.animation.PathInterpolatorCompat import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels +import com.airbnb.lottie.LottieAnimationView +import com.airbnb.lottie.LottieProperty +import com.airbnb.lottie.model.KeyPath +import org.signal.core.util.DimensionUnit import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.util.visible import java.text.NumberFormat @@ -18,14 +28,32 @@ class ConversationListTabsFragment : Fragment(R.layout.conversation_list_tabs) { private lateinit var chatsUnreadIndicator: TextView private lateinit var storiesUnreadIndicator: TextView - private lateinit var chatsIcon: View - private lateinit var storiesIcon: View + private lateinit var chatsIcon: LottieAnimationView + private lateinit var storiesIcon: LottieAnimationView + private lateinit var chatsPill: ImageView + private lateinit var storiesPill: ImageView + + private var pillAnimator: Animator? = null override fun onViewCreated(view: View, savedInstanceState: Bundle?) { chatsUnreadIndicator = view.findViewById(R.id.chats_unread_indicator) storiesUnreadIndicator = view.findViewById(R.id.stories_unread_indicator) chatsIcon = view.findViewById(R.id.chats_tab_icon) storiesIcon = view.findViewById(R.id.stories_tab_icon) + chatsPill = view.findViewById(R.id.chats_pill) + storiesPill = view.findViewById(R.id.stories_pill) + + val iconTint = ContextCompat.getColor(requireContext(), R.color.signal_colorOnSecondaryContainer) + + chatsIcon.addValueCallback( + KeyPath("**"), + LottieProperty.COLOR + ) { iconTint } + + storiesIcon.addValueCallback( + KeyPath("**"), + LottieProperty.COLOR + ) { iconTint } view.findViewById(R.id.chats_tab_touch_point).setOnClickListener { viewModel.onChatsSelected() @@ -39,9 +67,19 @@ class ConversationListTabsFragment : Fragment(R.layout.conversation_list_tabs) { } private fun update(state: ConversationListTabsState) { + val wasChatSelected = chatsIcon.isSelected + chatsIcon.isSelected = state.tab == ConversationListTab.CHATS storiesIcon.isSelected = state.tab == ConversationListTab.STORIES + chatsPill.isSelected = chatsIcon.isSelected + storiesPill.isSelected = storiesIcon.isSelected + + if (chatsIcon.isSelected xor wasChatSelected) { + runLottieAnimations(chatsIcon, storiesIcon) + runPillAnimation(chatsPill, storiesPill) + } + chatsUnreadIndicator.visible = state.unreadChatsCount > 0 chatsUnreadIndicator.text = formatCount(state.unreadChatsCount) @@ -51,6 +89,47 @@ class ConversationListTabsFragment : Fragment(R.layout.conversation_list_tabs) { requireView().visible = !state.isSearchOpen } + private fun runLottieAnimations(vararg toAnimate: LottieAnimationView) { + toAnimate.forEach { + if (it.isSelected) { + it.resumeAnimation() + } else { + if (it.isAnimating) { + it.pauseAnimation() + } + + it.progress = 0f + } + } + } + + private fun runPillAnimation(vararg toAnimate: ImageView) { + val (selected, unselected) = toAnimate.partition { it.isSelected } + + pillAnimator?.cancel() + pillAnimator = AnimatorSet().apply { + duration = 150 + interpolator = PathInterpolatorCompat.create(0.17f, 0.17f, 0f, 1f) + playTogether( + selected.map { view -> + view.visibility = View.VISIBLE + ValueAnimator.ofInt(view.paddingLeft, 0).apply { + addUpdateListener { + view.setPadding(it.animatedValue as Int, 0, it.animatedValue as Int, 0) + } + } + } + ) + start() + } + + unselected.forEach { + val smallPad = DimensionUnit.DP.toPixels(16f).toInt() + it.setPadding(smallPad, 0, smallPad, 0) + it.visibility = View.INVISIBLE + } + } + private fun formatCount(count: Long): String { if (count > 99L) { return getString(R.string.ConversationListTabs__99p) diff --git a/app/src/main/res/drawable/conversation_tab_icon_background.xml b/app/src/main/res/drawable/conversation_tab_icon_background.xml index bdea52d90..e847732dc 100644 --- a/app/src/main/res/drawable/conversation_tab_icon_background.xml +++ b/app/src/main/res/drawable/conversation_tab_icon_background.xml @@ -1,10 +1,6 @@ - - - - - - - - - \ No newline at end of file + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/conversation_list_tabs.xml b/app/src/main/res/layout/conversation_list_tabs.xml index 6aa697b2b..6f4c50cf4 100644 --- a/app/src/main/res/layout/conversation_list_tabs.xml +++ b/app/src/main/res/layout/conversation_list_tabs.xml @@ -6,14 +6,12 @@ android:layout_height="wrap_content" android:background="@color/signal_colorSecondaryContainer" android:minHeight="80dp" - android:paddingHorizontal="@dimen/dsl_settings_gutter" - android:paddingTop="8dp" - android:paddingBottom="8dp"> + android:paddingHorizontal="@dimen/dsl_settings_gutter"> - + + + + + app:lottie_rawRes="@raw/chats_32" /> - + app:lottie_rawRes="@raw/stories_32" /> \ No newline at end of file diff --git a/app/src/main/res/raw/chats_32.json b/app/src/main/res/raw/chats_32.json new file mode 100644 index 000000000..15d8da1be --- /dev/null +++ b/app/src/main/res/raw/chats_32.json @@ -0,0 +1 @@ +{"v":"5.7.1","fr":60,"ip":0,"op":40,"w":512,"h":512,"nm":"Chats","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Solid","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[256,256,0],"ix":2},"a":{"a":0,"k":[256,256,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":2.002,"s":[{"i":[[91.632,0],[0,-79.536],[-21.86,-23.782],[0,0],[-8.336,2.784],[0,0],[-19.787,-0.012],[0,79.536]],"o":[[-92.8,0],[0.316,32.301],[0,0],[-1.44,8.672],[0,0],[18.851,6.011],[92.8,0],[0,-79.536]],"v":[[0,-153],[-168,-9],[-133.552,78.12],[-143.776,139.496],[-131.232,150.216],[-58.304,125.912],[0,135],[168,-9]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[91.632,0],[0,-79.536],[-21.86,-23.782],[0,0],[-8.336,2.784],[0,0],[-19.787,-0.012],[0,79.536]],"o":[[-92.8,0],[0.316,32.301],[0,0],[-1.44,8.672],[0,0],[0,0],[92.8,0],[0,-79.536]],"v":[[0,-153],[-158.625,-9],[-121.052,84.37],[-124.714,125.746],[-114.044,134.279],[-68.929,121.537],[0,135],[152.375,-9]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[{"i":[[90.67,8],[0.225,-66.5],[-21.86,-23.782],[0,0],[-8.336,2.784],[0,0],[-19.787,-0.012],[2.624,94]],"o":[[-90.67,-8],[-0.225,66.5],[0,0],[-1.44,8.672],[0,0],[18.851,6.011],[92.8,0],[-2.219,-79.505]],"v":[[0,-153],[-166.445,-38],[-122.167,84.12],[-149.697,161.496],[-137.153,172.216],[-68.073,126.912],[0,135],[168,-9]],"c":true}]},{"t":30.029345752002,"s":[{"i":[[91.632,0],[0,-79.536],[-21.86,-23.782],[0,0],[-8.336,2.784],[0,0],[-19.787,-0.012],[0,79.536]],"o":[[-92.8,0],[0.316,32.301],[0,0],[-1.44,8.672],[0,0],[18.851,6.011],[92.8,0],[0,-79.536]],"v":[[0,-153],[-168,-9],[-133.552,78.12],[-143.776,139.496],[-131.232,150.216],[-58.304,125.912],[0,135],[168,-9]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":2.002,"s":[256,257],"to":[-12.667,13.833],"ti":[-7.333,10.167]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10.01,"s":[180,340],"to":[7.333,-10.167],"ti":[-12.667,13.833]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20.02,"s":[300,196],"to":[12.667,-13.833],"ti":[7.333,-10.167]},{"t":30.029345752002,"s":[256,257]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":2.002,"s":[100,100]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":10.01,"s":[80,80]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":20.02,"s":[100,100]},{"t":30.029345752002,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10.01,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20.02,"s":[13]},{"t":30.029345752002,"s":[0]}],"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":2.002002002002,"op":41,"st":2.002002002002,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Outline","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[256,256,0],"ix":2},"a":{"a":0,"k":[256,256,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-79.408,0],[0,-66.176],[79.408,0],[16.501,5.273],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.297,26.424]],"o":[[79.408,0],[0,66.176],[-17.323,-0.028],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-17.969,-19.376],[0,-66.176]],"v":[[0,-128],[144,-8],[0,112],[-51.04,104],[-58.48,101.632],[-65.904,104.112],[-116.176,120.896],[-109.872,83.056],[-107.984,71.744],[-115.616,63.168],[-144,-8]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[91.632,0],[0,-79.536],[-21.86,-23.782],[0,0],[-5.776,0],[-1.437,0.495],[0,0],[-19.787,-0.012],[0,79.536]],"o":[[-92.8,0],[0.316,32.301],[0,0],[-1.168,7.008],[1.52,-0.024],[0,0],[18.851,6.011],[92.8,0],[0,-79.536]],"v":[[0,-152],[-168,-8],[-133.552,79.12],[-143.776,140.496],[-135.696,152],[-131.232,151.216],[-58.304,126.912],[0,136],[168,-8]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[256,256],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2.002002002002,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/app/src/main/res/raw/stories_32.json b/app/src/main/res/raw/stories_32.json new file mode 100644 index 000000000..7b473d770 --- /dev/null +++ b/app/src/main/res/raw/stories_32.json @@ -0,0 +1 @@ +{"v":"5.7.1","fr":60,"ip":0,"op":40,"w":512,"h":512,"nm":"Stories","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Foreground","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[256,256,0],"ix":2},"a":{"a":0,"k":[256,256,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-26.51],[0,0],[-26.51,0],[0,0],[0,26.51],[0,0],[26.51,0]],"o":[[-26.51,0],[0,0],[0,26.51],[0,0],[26.51,0],[0,0],[0,-26.51],[0,0]],"v":[[-64,-176],[-112,-128],[-112,128],[-64,176],[64,176],[112,128],[112,-128],[64,-176]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[289.219,255.262],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":2.002,"s":[100,100]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":10.01,"s":[115,138]},{"t":20.01953125,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":2.002002002002,"op":74.0740740740741,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Mask","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[256,256,0],"ix":2},"a":{"a":0,"k":[256,256,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-26.51],[0,0],[-26.51,0],[0,0],[0,26.51],[0,0],[26.51,0]],"o":[[-26.51,0],[0,0],[0,26.51],[0,0],[26.51,0],[0,0],[0,-26.51],[0,0]],"v":[[-64,-176],[-112,-128],[-112,128],[-64,176],[64,176],[112,128],[112,-128],[64,-176]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[289.219,255.262],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":2.002,"s":[100,100]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":10.01,"s":[132,130]},{"t":20.01953125,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Mask","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":2.002002002002,"op":74.0740740740741,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Background","tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[256,256,0],"ix":2},"a":{"a":0,"k":[256,256,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.316,5.114],[0,0],[0,-17.673],[0,0],[-17.673,0],[0,0],[0,5.524]],"o":[[0,-5.525],[0,0],[-17.673,0],[0,0],[0,17.673],[0,0],[-1.316,-5.114],[0,0]],"v":[[14.992,-128],[17.008,-144],[14.992,-144],[-17.008,-112],[-17.008,112],[14.992,144],[17.008,144],[14.992,128]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6.006,"s":[129.008,256],"to":[-1.501,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16.016,"s":[120,256],"to":[0,0],"ti":[-1.501,0]},{"t":28.02734375,"s":[129.008,256]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":6.006,"s":[100,100]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":16.016,"s":[180,130]},{"t":28.02734375,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":2.002002002002,"op":74.0740740740741,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Outline","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[256,256,0],"ix":2},"a":{"a":0,"k":[256,256,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-26.51],[0,0],[-26.51,0],[0,0],[0,26.51],[0,0],[26.51,0]],"o":[[-26.51,0],[0,0],[0,26.51],[0,0],[26.51,0],[0,0],[0,-26.51],[0,0]],"v":[[-31.39,-176],[-79.39,-128],[-79.39,128],[-31.39,176],[96.609,176],[144.609,128],[144.609,-128],[96.609,-176]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-8.836,0],[0,0],[0,-8.836],[0,0],[8.837,0],[0,0],[0,8.837]],"o":[[0,-8.836],[0,0],[8.837,0],[0,0],[0,8.837],[0,0],[-8.836,0],[0,0]],"v":[[-47.39,-128],[-31.39,-144],[96.609,-144],[112.609,-128],[112.609,128],[96.609,144],[-31.39,144],[-47.39,128]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[-1.316,5.114],[0,0],[0,-17.673],[0,0],[-17.673,0],[0,0],[0,5.525]],"o":[[0,-5.525],[0,0],[-17.673,0],[0,0],[0,17.673],[0,0],[-1.316,-5.114],[0,0]],"v":[[-112.609,-127.262],[-110.593,-143.262],[-112.609,-143.262],[-144.609,-111.262],[-144.609,112.738],[-112.609,144.738],[-110.593,144.738],[-112.609,128.738]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[256.609,255.262],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2.002002002002,"st":0,"bm":0}],"markers":[]} \ No newline at end of file