diff --git a/.idea/misc.xml b/.idea/misc.xml index e545927ed..175a9b489 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -159,6 +159,7 @@ + @@ -210,7 +211,7 @@ - + diff --git a/app/src/main/java/com/hover/stax/home/MainActivity.kt b/app/src/main/java/com/hover/stax/home/MainActivity.kt index d9b1c13a9..b0f3d82a6 100644 --- a/app/src/main/java/com/hover/stax/home/MainActivity.kt +++ b/app/src/main/java/com/hover/stax/home/MainActivity.kt @@ -151,7 +151,7 @@ class MainActivity : AbstractRequestActivity(), BalancesViewModel.RunBalanceList private fun showPopUpTransactionDetailsIfRequired(data: Intent?) { if (data != null && data.extras != null && data.extras!!.getString("uuid") != null) { transferViewModel.reset() - navHelper.showTxnDetails(data.extras!!.getString("uuid")!!) + navHelper.showTxnDetails(data.extras!!.getString("uuid")!!, true) } // else { diff --git a/app/src/main/java/com/hover/stax/home/NavHelper.kt b/app/src/main/java/com/hover/stax/home/NavHelper.kt index 782452b6f..f1afe21cb 100644 --- a/app/src/main/java/com/hover/stax/home/NavHelper.kt +++ b/app/src/main/java/com/hover/stax/home/NavHelper.kt @@ -46,7 +46,7 @@ class NavHelper(val activity: AppCompatActivity) { fun navigateToBountyList() = NavUtil.navigate(getNavController(), BountyEmailFragmentDirections.actionBountyEmailFragmentToBountyListFragment()) - fun showTxnDetails(uuid: String) = NavUtil.showTransactionDetailsFragment(getNavController(), uuid) + fun showTxnDetails(uuid: String, isNewTransaction: Boolean? = false) = NavUtil.showTransactionDetailsFragment(getNavController(), uuid, isNewTransaction!!) fun navigateTransfer(type: String, txnUUID: String? = null) { val transferDirection = MainNavigationDirections.actionGlobalTransferFragment(type) diff --git a/app/src/main/java/com/hover/stax/transactions/TransactionDetailsFragment.kt b/app/src/main/java/com/hover/stax/transactions/TransactionDetailsFragment.kt index 0acad78b4..db1429a1b 100644 --- a/app/src/main/java/com/hover/stax/transactions/TransactionDetailsFragment.kt +++ b/app/src/main/java/com/hover/stax/transactions/TransactionDetailsFragment.kt @@ -8,13 +8,16 @@ import android.view.View import android.view.View.GONE import android.view.View.VISIBLE import android.view.ViewGroup +import android.view.animation.AnimationUtils import android.widget.Button +import android.widget.RelativeLayout import android.widget.TextView import androidx.core.text.HtmlCompat import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs +import com.google.android.material.bottomsheet.BottomSheetBehavior import com.hover.sdk.actions.HoverAction import com.hover.sdk.api.Hover import com.hover.sdk.transactions.Transaction @@ -44,6 +47,7 @@ class TransactionDetailsFragment : Fragment() { private val args: TransactionDetailsFragmentArgs by navArgs() private lateinit var childFragManager: FragmentManager + private lateinit var bottomSheetBehavior: BottomSheetBehavior override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { viewModel.setTransaction(args.uuid) @@ -116,6 +120,7 @@ class TransactionDetailsFragment : Fragment() { } else binding.secondaryStatus.btnRetryTransaction.visibility = GONE updateDetails(transaction) + showShareExcitement(!transaction.isRecorded && transaction.isSuccessful) } } @@ -149,6 +154,25 @@ class TransactionDetailsFragment : Fragment() { return !transaction.isBalanceType && !transaction.balance.isNullOrEmpty() && transaction.isSuccessful } + private fun showShareExcitement(isTransactionSuccessful: Boolean) { + bottomSheetBehavior = BottomSheetBehavior.from(binding.shareLayout.bottomSheet) + val shouldShow = args.isNewTransaction && isTransactionSuccessful + setBottomSheetVisibility(shouldShow) + } + + private fun setBottomSheetVisibility(isVisible: Boolean) { + var updatedState = BottomSheetBehavior.STATE_HIDDEN + + if(isVisible) { + updatedState = BottomSheetBehavior.STATE_EXPANDED + val animation = AnimationUtils.loadAnimation(requireContext(), R.anim.slide_down) + binding.shareLayout.bottomSheet.visibility = VISIBLE + binding.shareLayout.bottomSheet.animation = animation + binding.shareLayout.shareBtn.setOnClickListener { Utils.shareStax(requireActivity()) } + } + bottomSheetBehavior.state = updatedState + } + @SuppressLint("SetTextI18n") private fun updateDetails(transaction: StaxTransaction) { val title = when (transaction.transaction_type) { diff --git a/app/src/main/java/com/hover/stax/utils/NavUtil.kt b/app/src/main/java/com/hover/stax/utils/NavUtil.kt index 5fe14e439..d851b9d57 100644 --- a/app/src/main/java/com/hover/stax/utils/NavUtil.kt +++ b/app/src/main/java/com/hover/stax/utils/NavUtil.kt @@ -10,7 +10,7 @@ object NavUtil { currentDestination?.getAction(navDirections.actionId)?.let { navigate(navDirections) } } - fun showTransactionDetailsFragment(navController: NavController, uuid: String) { - navigate(navController, MainNavigationDirections.actionGlobalTxnDetailsFragment(uuid)) + fun showTransactionDetailsFragment(navController: NavController, uuid: String, isNewTransaction: Boolean? = false) { + navigate(navController, MainNavigationDirections.actionGlobalTxnDetailsFragment(uuid, isNewTransaction!!)) } } \ No newline at end of file diff --git a/app/src/main/res/anim/slide_down.xml b/app/src/main/res/anim/slide_down.xml new file mode 100644 index 000000000..33647a676 --- /dev/null +++ b/app/src/main/res/anim/slide_down.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/party.png b/app/src/main/res/drawable/party.png new file mode 100644 index 000000000..761e55f6c Binary files /dev/null and b/app/src/main/res/drawable/party.png differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index b615bf043..bb6f0fbca 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ - diff --git a/app/src/main/res/layout/fragment_transaction.xml b/app/src/main/res/layout/fragment_transaction.xml index 1f3971145..0c27f6cc7 100644 --- a/app/src/main/res/layout/fragment_transaction.xml +++ b/app/src/main/res/layout/fragment_transaction.xml @@ -1,6 +1,12 @@ - + @@ -33,4 +39,6 @@ - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/share_excitement_layout.xml b/app/src/main/res/layout/share_excitement_layout.xml new file mode 100644 index 000000000..5903367a2 --- /dev/null +++ b/app/src/main/res/layout/share_excitement_layout.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/home_navigation.xml b/app/src/main/res/navigation/home_navigation.xml index ddd36fa89..a20ade303 100644 --- a/app/src/main/res/navigation/home_navigation.xml +++ b/app/src/main/res/navigation/home_navigation.xml @@ -161,6 +161,11 @@ + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 75131fb94..74d2057ab 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -223,6 +223,11 @@ Show settings Show settings again + + Share Stax with your friends + Share + Transaction successful + Checking %1$s balance Buying airtime