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