Skip to content

Commit e8bc542

Browse files
committed
feat: add initial bill customization playground with simple background manipulation
* solid colors and gradients with up to 3 color stops * tied to beta flag for now Signed-off-by: Brandon McAnsh <[email protected]>
1 parent e143325 commit e8bc542

File tree

49 files changed

+1612
-246
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1612
-246
lines changed

apps/flipcash/app/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ dependencies {
142142
implementation(project(":apps:flipcash:shared:accesskey"))
143143
implementation(project(":apps:flipcash:shared:appsettings"))
144144
implementation(project(":apps:flipcash:shared:authentication"))
145+
implementation(project(":apps:flipcash:shared:bill-customization"))
145146
implementation(project(":apps:flipcash:shared:featureflags"))
146147
implementation(project(":apps:flipcash:shared:router"))
147148
implementation(project(":apps:flipcash:shared:session"))
@@ -180,6 +181,7 @@ dependencies {
180181
implementation(project(":apps:flipcash:features:contact-verification"))
181182
implementation(project(":apps:flipcash:features:tokens"))
182183
implementation(project(":apps:flipcash:features:transactions"))
184+
implementation(project(":apps:flipcash:features:bill-customization"))
183185

184186
implementation(project(":libs:crypto:solana"))
185187
implementation(project(":libs:datetime"))

apps/flipcash/app/src/main/kotlin/com/flipcash/app/MainActivity.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import androidx.fragment.app.FragmentActivity
1212
import com.flipcash.android.app.BuildConfig
1313
import com.flipcash.app.appsettings.AppSettingsCoordinator
1414
import com.flipcash.app.appsettings.LocalAppSettings
15+
import com.flipcash.app.bill.customization.BillPlaygroundController
16+
import com.flipcash.app.bill.customization.LocalBillPlaygroundController
1517
import com.flipcash.app.billing.BillingClient
1618
import com.flipcash.app.billing.LocalBillingClient
1719
import com.flipcash.app.core.LocalUserManager
@@ -118,6 +120,9 @@ class MainActivity : FragmentActivity() {
118120
@Inject
119121
lateinit var onRampAmountController: OnRampAmountController
120122

123+
@Inject
124+
lateinit var billPlaygroundController: BillPlaygroundController
125+
121126
override fun onCreate(savedInstanceState: Bundle?) {
122127
super.onCreate(savedInstanceState)
123128
handleUncaughtException()
@@ -143,6 +148,7 @@ class MainActivity : FragmentActivity() {
143148
LocalPaymentController provides paymentController,
144149
LocalOnRampAmountController provides onRampAmountController,
145150
LocalPhoneUtils provides phoneUtils,
151+
LocalBillPlaygroundController provides billPlaygroundController,
146152
) {
147153
Rinku {
148154
App(

apps/flipcash/app/src/main/kotlin/com/flipcash/app/internal/ui/App.kt

Lines changed: 101 additions & 97 deletions
Large diffs are not rendered by default.

apps/flipcash/core/src/main/kotlin/com/flipcash/app/core/AppRoute.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ sealed interface AppRoute : ScreenProvider, Parcelable {
6464

6565
@Parcelize
6666
sealed interface Token: AppRoute {
67-
data class Info(val mint: Mint): AppRoute.Token
68-
data class Transactions(val mint: Mint): Main
67+
data class Info(val mint: Mint): Token
68+
data class Transactions(val mint: Mint): Token
6969
}
7070

7171
@Parcelize

apps/flipcash/core/src/main/kotlin/com/flipcash/app/core/bill/BillState.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,15 @@ sealed interface Bill {
9090
val token: Token
9191
val amount: LocalFiat
9292
val data: List<Byte>
93+
val disableGestures: Boolean
9394

9495
enum class Kind {
9596
cash, airdrop
9697
}
9798

9899
val canSwipeToDismiss: Boolean
99100
get() = when (this) {
100-
is Cash -> true
101+
is Cash -> !disableGestures
101102
}
102103

103104
val canFlip: Boolean
@@ -117,6 +118,7 @@ sealed interface Bill {
117118
override val token: Token,
118119
override val amount: LocalFiat,
119120
override val didReceive: Boolean = false,
121+
override val disableGestures: Boolean = false,
120122
override val confirmationDelay: Duration = Duration.ZERO,
121123
override val data: List<Byte> = emptyList(),
122124
val kind: Kind = Kind.cash,

apps/flipcash/core/src/main/kotlin/com/flipcash/app/core/tokens/TokenPurpose.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ sealed interface TokenPurpose: Parcelable {
99
data object Withdraw: TokenPurpose
1010
data object Deposit: TokenPurpose
1111
data object Balance : TokenPurpose
12+
data object BillPlayground: TokenPurpose
1213
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="18dp"
3+
android:height="15dp"
4+
android:viewportWidth="18"
5+
android:viewportHeight="15">
6+
<path
7+
android:pathData="M11.646,14.618C11.253,14.618 10.893,14.521 10.567,14.327C10.246,14.134 9.989,13.873 9.795,13.547C9.601,13.226 9.504,12.869 9.504,12.476C9.504,12.089 9.601,11.734 9.795,11.414C9.989,11.087 10.246,10.827 10.567,10.633C10.893,10.44 11.253,10.343 11.646,10.343C12.033,10.343 12.387,10.44 12.708,10.633C13.035,10.827 13.295,11.087 13.489,11.414C13.682,11.734 13.779,12.089 13.779,12.476C13.779,12.869 13.682,13.226 13.489,13.547C13.295,13.873 13.035,14.134 12.708,14.327C12.387,14.521 12.033,14.618 11.646,14.618ZM11.646,13.497C11.928,13.497 12.166,13.4 12.36,13.207C12.559,13.007 12.659,12.764 12.659,12.476C12.659,12.188 12.559,11.948 12.36,11.754C12.166,11.56 11.928,11.463 11.646,11.463C11.358,11.463 11.115,11.56 10.915,11.754C10.722,11.948 10.625,12.188 10.625,12.476C10.625,12.764 10.722,13.007 10.915,13.207C11.115,13.4 11.358,13.497 11.646,13.497ZM10.227,11.688V13.265H0.78C0.564,13.265 0.379,13.187 0.224,13.032C0.075,12.877 0,12.692 0,12.476C0,12.26 0.075,12.075 0.224,11.92C0.379,11.765 0.564,11.688 0.78,11.688H10.227ZM16.369,11.688C16.574,11.688 16.751,11.765 16.9,11.92C17.05,12.075 17.125,12.26 17.125,12.476C17.125,12.692 17.05,12.877 16.9,13.032C16.751,13.187 16.574,13.265 16.369,13.265H13.148V11.688H16.369ZM5.578,9.446C5.185,9.446 4.826,9.349 4.499,9.156C4.178,8.962 3.921,8.705 3.727,8.384C3.533,8.057 3.437,7.7 3.437,7.313C3.437,6.92 3.533,6.563 3.727,6.242C3.921,5.916 4.178,5.656 4.499,5.462C4.826,5.268 5.185,5.171 5.578,5.171C5.965,5.171 6.32,5.268 6.641,5.462C6.967,5.656 7.227,5.916 7.421,6.242C7.615,6.563 7.711,6.92 7.711,7.313C7.711,7.7 7.615,8.057 7.421,8.384C7.227,8.705 6.967,8.962 6.641,9.156C6.32,9.349 5.965,9.446 5.578,9.446ZM5.578,8.326C5.866,8.326 6.107,8.229 6.3,8.035C6.494,7.836 6.591,7.595 6.591,7.313C6.591,7.02 6.494,6.776 6.3,6.583C6.107,6.389 5.866,6.292 5.578,6.292C5.29,6.292 5.047,6.389 4.848,6.583C4.654,6.776 4.557,7.02 4.557,7.313C4.557,7.595 4.654,7.836 4.848,8.035C5.047,8.229 5.29,8.326 5.578,8.326ZM0.747,6.516H4.101V8.093H0.747C0.548,8.093 0.374,8.019 0.224,7.869C0.075,7.714 0,7.529 0,7.313C0,7.092 0.075,6.903 0.224,6.749C0.374,6.594 0.548,6.516 0.747,6.516ZM16.336,6.516C16.557,6.516 16.743,6.594 16.892,6.749C17.047,6.903 17.125,7.092 17.125,7.313C17.125,7.529 17.047,7.714 16.892,7.869C16.743,8.019 16.557,8.093 16.336,8.093H6.973V6.516H16.336ZM11.646,4.275C11.253,4.275 10.893,4.178 10.567,3.984C10.246,3.791 9.989,3.533 9.795,3.212C9.601,2.886 9.504,2.529 9.504,2.142C9.504,1.749 9.601,1.392 9.795,1.071C9.989,0.744 10.246,0.484 10.567,0.291C10.893,0.097 11.253,0 11.646,0C12.033,0 12.387,0.097 12.708,0.291C13.035,0.484 13.295,0.744 13.489,1.071C13.682,1.392 13.779,1.749 13.779,2.142C13.779,2.529 13.682,2.886 13.489,3.212C13.295,3.533 13.035,3.791 12.708,3.984C12.387,4.178 12.033,4.275 11.646,4.275ZM11.646,3.154C11.928,3.154 12.166,3.055 12.36,2.855C12.559,2.656 12.659,2.416 12.659,2.133C12.659,1.846 12.559,1.605 12.36,1.411C12.166,1.212 11.928,1.112 11.646,1.112C11.358,1.112 11.115,1.212 10.915,1.411C10.722,1.605 10.625,1.846 10.625,2.133C10.625,2.416 10.722,2.656 10.915,2.855C11.115,3.055 11.358,3.154 11.646,3.154ZM10.268,1.353V2.93H0.78C0.564,2.93 0.379,2.853 0.224,2.698C0.075,2.543 0,2.357 0,2.142C0,1.926 0.075,1.74 0.224,1.585C0.379,1.431 0.564,1.353 0.78,1.353H10.268ZM16.369,1.353C16.574,1.353 16.751,1.431 16.9,1.585C17.05,1.74 17.125,1.926 17.125,2.142C17.125,2.357 17.05,2.543 16.9,2.698C16.751,2.853 16.574,2.93 16.369,2.93H13.049V1.353H16.369Z"
8+
android:fillColor="#ffffff"/>
9+
</vector>

apps/flipcash/features/scanner/src/main/res/drawable/ic_flipcash_logo_offwhite_small.xml renamed to apps/flipcash/core/src/main/res/drawable/ic_flipcash_logo_offwhite_small.xml

File renamed without changes.

apps/flipcash/features/scanner/src/main/res/drawable/ic_logo_round_white.xml renamed to apps/flipcash/core/src/main/res/drawable/ic_logo_round_white.xml

File renamed without changes.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="14dp"
3+
android:height="2dp"
4+
android:viewportWidth="14"
5+
android:viewportHeight="2">
6+
<path
7+
android:pathData="M0.921,1.868C0.761,1.868 0.611,1.826 0.473,1.743C0.335,1.655 0.221,1.541 0.133,1.403C0.044,1.259 0,1.101 0,0.93C0,0.764 0.044,0.609 0.133,0.465C0.221,0.321 0.335,0.208 0.473,0.125C0.611,0.042 0.761,0 0.921,0H12.966C13.126,0 13.276,0.042 13.414,0.125C13.558,0.208 13.671,0.321 13.754,0.465C13.843,0.609 13.887,0.764 13.887,0.93C13.887,1.101 13.843,1.259 13.754,1.403C13.671,1.541 13.558,1.655 13.414,1.743C13.276,1.826 13.126,1.868 12.966,1.868H0.921Z"
8+
android:fillColor="#ffffff"/>
9+
</vector>

0 commit comments

Comments
 (0)