Skip to content

Commit 2c4f7ee

Browse files
authored
Merge pull request #457 from UseHover/181937962-shareExcitement
181937962 share excitement
2 parents 6138ec7 + 1cc623f commit 2c4f7ee

File tree

12 files changed

+126
-10
lines changed

12 files changed

+126
-10
lines changed

.idea/misc.xml

+2-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/src/main/java/com/hover/stax/home/MainActivity.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ class MainActivity : AbstractRequestActivity(), BalancesViewModel.RunBalanceList
151151
private fun showPopUpTransactionDetailsIfRequired(data: Intent?) {
152152
if (data != null && data.extras != null && data.extras!!.getString("uuid") != null) {
153153
transferViewModel.reset()
154-
navHelper.showTxnDetails(data.extras!!.getString("uuid")!!)
154+
navHelper.showTxnDetails(data.extras!!.getString("uuid")!!, true)
155155
}
156156

157157
// else {

app/src/main/java/com/hover/stax/home/NavHelper.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class NavHelper(val activity: AppCompatActivity) {
4646

4747
fun navigateToBountyList() = NavUtil.navigate(getNavController(), BountyEmailFragmentDirections.actionBountyEmailFragmentToBountyListFragment())
4848

49-
fun showTxnDetails(uuid: String) = NavUtil.showTransactionDetailsFragment(getNavController(), uuid)
49+
fun showTxnDetails(uuid: String, isNewTransaction: Boolean? = false) = NavUtil.showTransactionDetailsFragment(getNavController(), uuid, isNewTransaction!!)
5050

5151
fun navigateTransfer(type: String, txnUUID: String? = null) {
5252
val transferDirection = MainNavigationDirections.actionGlobalTransferFragment(type)

app/src/main/java/com/hover/stax/transactions/TransactionDetailsFragment.kt

+24
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,16 @@ import android.view.View
88
import android.view.View.GONE
99
import android.view.View.VISIBLE
1010
import android.view.ViewGroup
11+
import android.view.animation.AnimationUtils
1112
import android.widget.Button
13+
import android.widget.RelativeLayout
1214
import android.widget.TextView
1315
import androidx.core.text.HtmlCompat
1416
import androidx.fragment.app.Fragment
1517
import androidx.fragment.app.FragmentManager
1618
import androidx.navigation.fragment.findNavController
1719
import androidx.navigation.fragment.navArgs
20+
import com.google.android.material.bottomsheet.BottomSheetBehavior
1821
import com.hover.sdk.actions.HoverAction
1922
import com.hover.sdk.api.Hover
2023
import com.hover.sdk.transactions.Transaction
@@ -44,6 +47,7 @@ class TransactionDetailsFragment : Fragment() {
4447
private val args: TransactionDetailsFragmentArgs by navArgs()
4548

4649
private lateinit var childFragManager: FragmentManager
50+
private lateinit var bottomSheetBehavior: BottomSheetBehavior<RelativeLayout>
4751

4852
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
4953
viewModel.setTransaction(args.uuid)
@@ -116,6 +120,7 @@ class TransactionDetailsFragment : Fragment() {
116120
} else binding.secondaryStatus.btnRetryTransaction.visibility = GONE
117121

118122
updateDetails(transaction)
123+
showShareExcitement(!transaction.isRecorded && transaction.isSuccessful)
119124
}
120125
}
121126

@@ -149,6 +154,25 @@ class TransactionDetailsFragment : Fragment() {
149154
return !transaction.isBalanceType && !transaction.balance.isNullOrEmpty() && transaction.isSuccessful
150155
}
151156

157+
private fun showShareExcitement(isTransactionSuccessful: Boolean) {
158+
bottomSheetBehavior = BottomSheetBehavior.from(binding.shareLayout.bottomSheet)
159+
val shouldShow = args.isNewTransaction && isTransactionSuccessful
160+
setBottomSheetVisibility(shouldShow)
161+
}
162+
163+
private fun setBottomSheetVisibility(isVisible: Boolean) {
164+
var updatedState = BottomSheetBehavior.STATE_HIDDEN
165+
166+
if(isVisible) {
167+
updatedState = BottomSheetBehavior.STATE_EXPANDED
168+
val animation = AnimationUtils.loadAnimation(requireContext(), R.anim.slide_down)
169+
binding.shareLayout.bottomSheet.visibility = VISIBLE
170+
binding.shareLayout.bottomSheet.animation = animation
171+
binding.shareLayout.shareBtn.setOnClickListener { Utils.shareStax(requireActivity()) }
172+
}
173+
bottomSheetBehavior.state = updatedState
174+
}
175+
152176
@SuppressLint("SetTextI18n")
153177
private fun updateDetails(transaction: StaxTransaction) {
154178
val title = when (transaction.transaction_type) {

app/src/main/java/com/hover/stax/utils/NavUtil.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ object NavUtil {
1010
currentDestination?.getAction(navDirections.actionId)?.let { navigate(navDirections) }
1111
}
1212

13-
fun showTransactionDetailsFragment(navController: NavController, uuid: String) {
14-
navigate(navController, MainNavigationDirections.actionGlobalTxnDetailsFragment(uuid))
13+
fun showTransactionDetailsFragment(navController: NavController, uuid: String, isNewTransaction: Boolean? = false) {
14+
navigate(navController, MainNavigationDirections.actionGlobalTxnDetailsFragment(uuid, isNewTransaction!!))
1515
}
1616
}

app/src/main/res/anim/slide_down.xml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<set xmlns:android="http://schemas.android.com/apk/res/android" >
3+
<translate
4+
android:duration="1000"
5+
android:fromYDelta="-100%"
6+
android:toYDelta="0%" >
7+
</translate>
8+
</set>

app/src/main/res/drawable/party.png

3.83 KB
Loading

app/src/main/res/layout/activity_main.xml

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<com.hover.stax.views.StaxNavView xmlns:android="http://schemas.android.com/apk/res/android"
3-
xmlns:app="http://schemas.android.com/apk/res-auto"
2+
<com.hover.stax.views.StaxNavView
3+
xmlns:android="http://schemas.android.com/apk/res/android"
4+
xmlns:app="http://schemas.android.com/apk/res-auto"
45
android:id="@+id/home_root"
56
android:layout_width="match_parent"
67
android:layout_height="match_parent">

app/src/main/res/layout/fragment_transaction.xml

+11-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
3-
xmlns:app="http://schemas.android.com/apk/res-auto"
2+
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
android:id="@+id/ft_mainBg"
5+
android:layout_width="match_parent"
6+
android:layout_height="match_parent"
7+
android:descendantFocusability="afterDescendants"
8+
android:orientation="vertical">
9+
<androidx.core.widget.NestedScrollView
410
android:layout_width="match_parent"
511
android:layout_height="match_parent"
612
android:layout_marginTop="@dimen/margin_13">
@@ -33,4 +39,6 @@
3339

3440
</com.hover.stax.views.StaxCardView>
3541

36-
</androidx.core.widget.NestedScrollView>
42+
</androidx.core.widget.NestedScrollView>
43+
<include layout="@layout/share_excitement_layout" android:id="@+id/share_layout"/>
44+
</androidx.coordinatorlayout.widget.CoordinatorLayout>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
android:id="@+id/bottom_sheet"
5+
android:visibility="gone"
6+
android:background="@color/brightBlue"
7+
android:layout_width="match_parent"
8+
android:layout_height="wrap_content"
9+
android:padding="@dimen/margin_16"
10+
app:behavior_hideable="true"
11+
app:behavior_peekHeight="@dimen/margin_55"
12+
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
13+
14+
<ImageView
15+
android:id="@+id/emoticon"
16+
android:layout_width="50dp"
17+
android:layout_height="50dp"
18+
android:scaleType="centerCrop"
19+
android:contentDescription="@string/share_desc"
20+
android:src="@drawable/party"
21+
/>
22+
23+
<TextView
24+
android:id="@+id/share_title"
25+
android:layout_width="wrap_content"
26+
android:layout_height="wrap_content"
27+
android:layout_alignParentEnd="true"
28+
android:layout_toEndOf="@id/emoticon"
29+
android:fontFamily="@font/brutalista_bold"
30+
android:text="@string/transaction_successful"
31+
android:textStyle="bold"
32+
android:textSize="@dimen/text_16"
33+
android:textAlignment="viewEnd"
34+
/>
35+
36+
<TextView
37+
android:id="@+id/share_subTitle"
38+
android:layout_width="wrap_content"
39+
android:layout_height="wrap_content"
40+
android:layout_alignParentEnd="true"
41+
android:layout_below="@id/share_title"
42+
android:layout_toEndOf="@id/emoticon"
43+
android:fontFamily="@font/brutalista_regular"
44+
android:text="@string/share_desc"
45+
android:textAlignment="viewEnd" />
46+
47+
<TextView
48+
android:id="@+id/share_btn"
49+
android:layout_width="wrap_content"
50+
android:layout_height="wrap_content"
51+
android:background="?selectableItemBackground"
52+
android:layout_alignParentEnd="true"
53+
android:layout_below="@id/share_subTitle"
54+
android:paddingStart="@dimen/margin_13"
55+
android:paddingBottom="@dimen/margin_13"
56+
android:paddingTop="@dimen/margin_13"
57+
android:paddingEnd="0dp"
58+
android:layout_toEndOf="@id/emoticon"
59+
android:fontFamily="@font/brutalista_bold"
60+
android:textStyle="bold"
61+
android:text="@string/share"
62+
android:textAlignment="viewEnd"
63+
android:textColor="@color/blue_state_color" />
64+
</RelativeLayout>

app/src/main/res/navigation/home_navigation.xml

+5
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,11 @@
161161
<argument
162162
android:name="uuid"
163163
app:argType="string" />
164+
<argument
165+
android:name="isNewTransaction"
166+
app:argType="boolean"
167+
/>
168+
164169
<action
165170
android:id="@+id/action_transactionDetailsFragment_to_bountyListFragment"
166171
app:destination="@id/bountyListFragment" />

app/src/main/res/values/strings.xml

+5
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,11 @@
223223
<string name="perm_cta1">Show settings</string>
224224
<string name="perm_cta2">Show settings again</string>
225225

226+
<!-- Share Excitement -->
227+
<string name="share_desc">Share Stax with your friends</string>
228+
<string name="share">Share</string>
229+
<string name="transaction_successful">Transaction successful</string>
230+
226231
<!-- Hover Session -->
227232
<string name="balance_msg">Checking %1$s balance</string>
228233
<string name="airtime_msg">Buying airtime</string>

0 commit comments

Comments
 (0)