mirror of
https://github.com/anyproto/anytype-kotlin.git
synced 2025-06-08 05:47:05 +09:00
Droid 2274 Payment | UI | Basic screens (#982)
This commit is contained in:
parent
818f937259
commit
0082e6daa0
16 changed files with 1271 additions and 11 deletions
|
@ -111,7 +111,8 @@ interface MainComponent :
|
|||
AddToAnytypeDependencies,
|
||||
ShareSpaceDependencies,
|
||||
SpaceJoinRequestDependencies,
|
||||
RequestJoinSpaceDependencies
|
||||
RequestJoinSpaceDependencies,
|
||||
PaymentsComponentDependencies
|
||||
{
|
||||
|
||||
fun inject(app: AndroidApplication)
|
||||
|
|
11
core-ui/src/main/res/drawable/ic_web_link.xml
Normal file
11
core-ui/src/main/res/drawable/ic_web_link.xml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="18dp"
|
||||
android:height="18dp"
|
||||
android:viewportWidth="18"
|
||||
android:viewportHeight="18">
|
||||
<path
|
||||
android:pathData="M6.5,4H14M14,4V11.5M14,4L4,14"
|
||||
android:strokeWidth="1.25"
|
||||
android:fillColor="#00000000"
|
||||
android:strokeColor="@color/text_tertiary"/>
|
||||
</vector>
|
59
core-ui/src/main/res/drawable/logo_builder.xml
Normal file
59
core-ui/src/main/res/drawable/logo_builder.xml
Normal file
|
@ -0,0 +1,59 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="60dp"
|
||||
android:height="60dp"
|
||||
android:viewportWidth="60"
|
||||
android:viewportHeight="60">
|
||||
<path
|
||||
android:pathData="M17,17m0,17a17,17 0,1 1,0 -34a17,17 0,1 1,0 34">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="17"
|
||||
android:centerY="17"
|
||||
android:gradientRadius="17"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#00A5AEFF"/>
|
||||
<item android:offset="1" android:color="#FFA5AEFF"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M17,43m0,17a17,17 0,1 1,0 -34a17,17 0,1 1,0 34">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="17"
|
||||
android:centerY="43"
|
||||
android:gradientRadius="17"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#00A5AEFF"/>
|
||||
<item android:offset="1" android:color="#FFA5AEFF"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M43,17m0,17a17,17 0,1 1,0 -34a17,17 0,1 1,0 34">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="43"
|
||||
android:centerY="17"
|
||||
android:gradientRadius="17"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#00A5AEFF"/>
|
||||
<item android:offset="1" android:color="#FFA5AEFF"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M43,43m0,17a17,17 0,1 1,0 -34a17,17 0,1 1,0 34">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="43"
|
||||
android:centerY="43"
|
||||
android:gradientRadius="17"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#00A5AEFF"/>
|
||||
<item android:offset="1" android:color="#FFA5AEFF"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
</vector>
|
131
core-ui/src/main/res/drawable/logo_co_creator.xml
Normal file
131
core-ui/src/main/res/drawable/logo_co_creator.xml
Normal file
|
@ -0,0 +1,131 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="64dp"
|
||||
android:height="64dp"
|
||||
android:viewportWidth="64"
|
||||
android:viewportHeight="64">
|
||||
<group>
|
||||
<clip-path
|
||||
android:pathData="M0,0h64v64h-64z"/>
|
||||
<path
|
||||
android:pathData="M32.001,13.335m0,13.333a13.333,13.333 0,1 1,0 -26.667a13.333,13.333 0,1 1,0 26.667"
|
||||
android:strokeAlpha="0.6"
|
||||
android:fillAlpha="0.6">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="32.001"
|
||||
android:centerY="13.335"
|
||||
android:gradientRadius="13.333"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#00F05F5F"/>
|
||||
<item android:offset="1" android:color="#FFF05F5F"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M32.001,50.667m0,13.333a13.333,13.333 0,1 1,0 -26.667a13.333,13.333 45,1 1,0 26.667"
|
||||
android:strokeAlpha="0.6"
|
||||
android:fillAlpha="0.6">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="32.001"
|
||||
android:centerY="50.667"
|
||||
android:gradientRadius="13.333"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#00F05F5F"/>
|
||||
<item android:offset="1" android:color="#FFF05F5F"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M13.334,31.999m13.333,-0a13.333,13.333 0,1 1,-26.667 -0a13.333,13.333 0,1 1,26.667 -0"
|
||||
android:strokeAlpha="0.6"
|
||||
android:fillAlpha="0.6">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="13.334"
|
||||
android:centerY="31.999"
|
||||
android:gradientRadius="13.333"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#00F05F5F"/>
|
||||
<item android:offset="1" android:color="#FFF05F5F"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M50.667,31.999m13.333,-0a13.333,13.333 0,1 1,-26.667 -0a13.333,13.333 0,1 1,26.667 -0"
|
||||
android:strokeAlpha="0.6"
|
||||
android:fillAlpha="0.6">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="50.667"
|
||||
android:centerY="31.999"
|
||||
android:gradientRadius="13.333"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#00F05F5F"/>
|
||||
<item android:offset="1" android:color="#FFF05F5F"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M18.802,18.8m9.428,9.428a13.333,13.333 90,1 1,-18.856 -18.856a13.333,13.333 90,1 1,18.856 18.856"
|
||||
android:strokeAlpha="0.6"
|
||||
android:fillAlpha="0.6">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="18.802"
|
||||
android:centerY="18.8"
|
||||
android:gradientRadius="13.333"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#00F05F5F"/>
|
||||
<item android:offset="1" android:color="#FFF05F5F"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M45.2,45.199m9.428,9.428a13.333,13.333 90,1 1,-18.856 -18.856a13.333,13.333 90,1 1,18.856 18.856"
|
||||
android:strokeAlpha="0.6"
|
||||
android:fillAlpha="0.6">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="45.2"
|
||||
android:centerY="45.199"
|
||||
android:gradientRadius="13.333"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#00F05F5F"/>
|
||||
<item android:offset="1" android:color="#FFF05F5F"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M18.801,45.199m9.428,-9.428a13.333,13.333 0,1 1,-18.856 18.856a13.333,13.333 0,1 1,18.856 -18.856"
|
||||
android:strokeAlpha="0.6"
|
||||
android:fillAlpha="0.6">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="18.801"
|
||||
android:centerY="45.199"
|
||||
android:gradientRadius="13.333"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#00F05F5F"/>
|
||||
<item android:offset="1" android:color="#FFF05F5F"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M45.2,18.801m9.428,-9.428a13.333,13.333 0,1 1,-18.856 18.856a13.333,13.333 90,1 1,18.856 -18.856"
|
||||
android:strokeAlpha="0.6"
|
||||
android:fillAlpha="0.6">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="45.2"
|
||||
android:centerY="18.801"
|
||||
android:gradientRadius="13.333"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#00F05F5F"/>
|
||||
<item android:offset="1" android:color="#FFF05F5F"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
</group>
|
||||
</vector>
|
52
core-ui/src/main/res/drawable/logo_custom.xml
Normal file
52
core-ui/src/main/res/drawable/logo_custom.xml
Normal file
|
@ -0,0 +1,52 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="64dp"
|
||||
android:height="65dp"
|
||||
android:viewportWidth="64"
|
||||
android:viewportHeight="65">
|
||||
<path
|
||||
android:pathData="M32,32.063m-32,0a32,32 0,1 1,64 0a32,32 0,1 1,-64 0"
|
||||
android:strokeAlpha="0.5"
|
||||
android:fillAlpha="0.5">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="32"
|
||||
android:centerY="32.063"
|
||||
android:gradientRadius="32"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#00E86DE3"/>
|
||||
<item android:offset="1" android:color="#FFE86DE3"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M32,40.063m-22,0a22,22 0,1 1,44 0a22,22 0,1 1,-44 0"
|
||||
android:strokeAlpha="0.65"
|
||||
android:fillAlpha="0.65">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="32"
|
||||
android:centerY="40.063"
|
||||
android:gradientRadius="22"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#00E86DE3"/>
|
||||
<item android:offset="1" android:color="#FFE86DE3"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M32,48.063m-12,0a12,12 0,1 1,24 0a12,12 0,1 1,-24 0"
|
||||
android:strokeAlpha="0.8"
|
||||
android:fillAlpha="0.8">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="32"
|
||||
android:centerY="48.063"
|
||||
android:gradientRadius="12"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#00E86DE3"/>
|
||||
<item android:offset="1" android:color="#FFE86DE3"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
</vector>
|
52
core-ui/src/main/res/drawable/logo_explorer.xml
Normal file
52
core-ui/src/main/res/drawable/logo_explorer.xml
Normal file
|
@ -0,0 +1,52 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="64dp"
|
||||
android:height="64dp"
|
||||
android:viewportWidth="64"
|
||||
android:viewportHeight="64">
|
||||
<path
|
||||
android:pathData="M32,32m-32,0a32,32 0,1 1,64 0a32,32 0,1 1,-64 0"
|
||||
android:strokeAlpha="0.4"
|
||||
android:fillAlpha="0.4">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="32"
|
||||
android:centerY="32"
|
||||
android:gradientRadius="32"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#0024BFD4"/>
|
||||
<item android:offset="1" android:color="#FF24BFD4"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M32,32m-18,0a18,18 0,1 1,36 0a18,18 0,1 1,-36 0"
|
||||
android:strokeAlpha="0.6"
|
||||
android:fillAlpha="0.6">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="32"
|
||||
android:centerY="32"
|
||||
android:gradientRadius="18"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="#0024BFD4"/>
|
||||
<item android:offset="1" android:color="#FF24BFD4"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M32,32m-4,0a4,4 0,1 1,8 0a4,4 0,1 1,-8 0"
|
||||
android:strokeAlpha="0.8"
|
||||
android:fillAlpha="0.8">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="32"
|
||||
android:centerY="32"
|
||||
android:gradientRadius="4"
|
||||
android:type="radial">
|
||||
<item android:offset="0.285" android:color="#002AAFC1"/>
|
||||
<item android:offset="1" android:color="#FF2AAFC1"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
</vector>
|
106
core-ui/src/main/res/drawable/payments_card_0.xml
Normal file
106
core-ui/src/main/res/drawable/payments_card_0.xml
Normal file
|
@ -0,0 +1,106 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="320dp"
|
||||
android:height="104dp"
|
||||
android:viewportWidth="320"
|
||||
android:viewportHeight="104">
|
||||
<path
|
||||
android:pathData="M136.76,51.82C136,53.32 136,55.28 136,59.2V60.8C136,64.72 136,66.68 136.76,68.18C137.43,69.5 138.51,70.57 139.82,71.24C141.32,72 143.28,72 147.2,72H148.8C152.72,72 154.68,72 156.18,71.24C157.49,70.57 158.57,69.5 159.24,68.18C160,66.68 160,64.72 160,60.8V59.2C160,55.28 160,53.32 159.24,51.82C158.57,50.5 157.49,49.43 156.18,48.76C154.68,48 152.72,48 148.8,48H147.2C143.28,48 141.32,48 139.82,48.76C138.51,49.43 137.43,50.5 136.76,51.82ZM147.09,65.79L154.42,54.27L153.58,53.73L146.91,64.2L142.35,59.64L141.65,60.35L147.09,65.79Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M40,84C40,95.05 31.05,104 20,104C8.95,104 0,95.05 0,84C0,72.95 8.95,64 20,64C31.05,64 40,72.95 40,84ZM15,76V74H16V76H15ZM24,74V76H25V74H24ZM23.25,81.93C22.44,81.37 21.29,81 20,81V80C21.47,80 22.82,80.42 23.82,81.12C24.82,81.81 25.5,82.83 25.5,84C25.5,85.17 24.82,86.19 23.82,86.88C22.82,87.58 21.47,88 20,88V87C21.29,87 22.44,86.63 23.25,86.07C24.06,85.5 24.5,84.76 24.5,84C24.5,83.24 24.06,82.5 23.25,81.93ZM12.5,88C12.5,92.14 15.86,95.5 20,95.5V96.5C15.31,96.5 11.5,92.69 11.5,88H12.5Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M88,20C88,31.05 79.05,40 68,40C56.95,40 48,31.05 48,20C48,8.95 56.95,0 68,0C79.05,0 88,8.95 88,20ZM63,12V10H64V12H63ZM72,10V12H73V10H72ZM72.49,23C72.35,19.76 70.89,16.18 67.71,13.91L68.29,13.09C71.95,15.7 73.5,19.87 73.5,23.5V24H68V23H72.49ZM60.5,24C60.5,28.14 63.86,31.5 68,31.5V32.5C63.31,32.5 59.5,28.69 59.5,24H60.5Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M148,81H60C53.92,81 49,85.92 49,92C49,98.08 53.92,103 60,103H148C154.07,103 159,98.08 159,92C159,85.92 154.07,81 148,81ZM60,80C53.37,80 48,85.37 48,92C48,98.63 53.37,104 60,104H148C154.63,104 160,98.63 160,92C160,85.37 154.63,80 148,80H60Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M148.38,92.5H60.38V91.5H148.38V92.5Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M228,1H108C101.93,1 97,5.92 97,12V20C97,26.08 101.93,31 108,31H228C234.07,31 239,26.08 239,20V12C239,5.92 234.07,1 228,1ZM108,0C101.37,0 96,5.37 96,12V20C96,26.63 101.37,32 108,32H228C234.63,32 240,26.63 240,20V12C240,5.37 234.63,0 228,0H108Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M228,12.5H108V11.5H228V12.5Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M195,20.5H108V19.5H195V20.5Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M116,49H60C53.92,49 49,53.92 49,60C49,66.08 53.92,71 60,71H116C122.07,71 127,66.08 127,60C127,53.92 122.07,49 116,49ZM60,48C53.37,48 48,53.37 48,60C48,66.63 53.37,72 60,72H116C122.63,72 128,66.63 128,60C128,53.37 122.63,48 116,48H60Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M116,60.5H60V59.5H116V60.5Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M260,41H188C181.93,41 177,45.92 177,52V76C177,82.08 181.93,87 188,87H260C266.08,87 271,82.08 271,76V52C271,45.92 266.08,41 260,41ZM188,40C181.37,40 176,45.37 176,52V76C176,82.63 181.37,88 188,88H260C266.63,88 272,82.63 272,76V52C272,45.37 266.63,40 260,40H188Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M259,52.5H188V51.5H259V52.5Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M248,60.5H188V59.5H248V60.5Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M259,68.5H188V67.5H259V68.5Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M232,76.5H188V75.5H232V76.5Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M300,96C288.95,96 280,87.05 280,76C280,64.95 288.95,56 300,56C311.05,56 320,64.95 320,76C320,87.05 311.05,96 300,96ZM305,68V70H304V68H305ZM296,70V68H295V70H296ZM299,68C299,70.21 297.21,72 295,72C292.79,72 291,70.21 291,68C291,65.79 292.79,64 295,64C297.21,64 299,65.79 299,68ZM296.57,72.75C296.07,72.91 295.55,73 295,73C292.24,73 290,70.76 290,68C290,65.24 292.24,63 295,63C297.76,63 300,65.24 300,68C300,69.28 299.52,70.44 298.73,71.33L292.88,80H300V81H291L296.57,72.75ZM305,73C302.24,73 300,70.76 300,68C300,65.24 302.24,63 305,63C307.76,63 310,65.24 310,68C310,70.76 307.76,73 305,73ZM305.84,85.85C304.27,87.42 302.15,88.5 300,88.5V87.5C301.82,87.5 303.7,86.58 305.14,85.15C306.57,83.72 307.5,81.84 307.5,80H308.5C308.5,82.16 307.42,84.28 305.84,85.85ZM305,72C307.21,72 309,70.21 309,68C309,65.79 307.21,64 305,64C302.79,64 301,65.79 301,68C301,70.21 302.79,72 305,72Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M261,17m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M267,17m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M264,25C260.34,23.28 258.07,19.89 258,17H264V25Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M264,25C267.66,23.28 269.93,19.89 270,17H264V25Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M247,23m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M253,23m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M250,31C246.34,29.28 244.07,25.89 244,23H250V31Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M250,31C253.66,29.28 255.93,25.89 256,23H250V31Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M281,3m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M275,3m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M278,11C274.34,9.28 272.07,5.89 272,3H278V11Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M278,11C281.66,9.28 283.93,5.89 284,3H278V11Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
</vector>
|
78
core-ui/src/main/res/drawable/payments_card_1.xml
Normal file
78
core-ui/src/main/res/drawable/payments_card_1.xml
Normal file
|
@ -0,0 +1,78 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="320dp"
|
||||
android:height="104dp"
|
||||
android:viewportWidth="320"
|
||||
android:viewportHeight="104">
|
||||
<path
|
||||
android:pathData="M75,37C71.13,37 68,40.13 68,44C68,47.87 71.13,51 75,51H93C96.87,51 100,47.87 100,44C100,40.13 96.87,37 93,37H75ZM91,43H90V45H91V43ZM87,43H88V45H87V43ZM94,43H93V45H94V43Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M75,53C71.13,53 68,56.13 68,60C68,63.87 71.13,67 75,67H93C96.87,67 100,63.87 100,60C100,56.13 96.87,53 93,53H75ZM91,59H90V61H91V59ZM87,59H88V61H87V59ZM94,59H93V61H94V59Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M232,52C232,48.69 229.31,46 226,46C222.69,46 220,48.69 220,52C220,55.31 222.69,58 226,58C229.31,58 232,55.31 232,52Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M248,43C248,39.69 245.31,37 242,37C238.69,37 236,39.69 236,43C236,46.31 238.69,49 242,49C245.31,49 248,46.31 248,43Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M248,61C248,57.69 245.31,55 242,55C238.69,55 236,57.69 236,61C236,64.31 238.69,67 242,67C245.31,67 248,64.31 248,61Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M188,1H132C125.93,1 121,5.92 121,12V92C121,98.08 125.93,103 132,103H188C194.07,103 199,98.08 199,92V12C199,5.92 194.07,1 188,1ZM132,0C125.37,0 120,5.37 120,12V92C120,98.63 125.37,104 132,104H188C194.63,104 200,98.63 200,92V12C200,5.37 194.63,0 188,0H132Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M102,17H66C61.03,17 57,21.03 57,26V78C57,82.97 61.03,87 66,87H102C106.97,87 111,82.97 111,78V26C111,21.03 106.97,17 102,17ZM66,16C60.48,16 56,20.48 56,26V78C56,83.52 60.48,88 66,88H102C107.52,88 112,83.52 112,78V26C112,20.48 107.52,16 102,16H66Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M254,16.63H218C213.03,16.63 209,20.65 209,25.63V77.63C209,82.6 213.03,86.63 218,86.63H254C258.97,86.63 263,82.6 263,77.63V25.63C263,20.65 258.97,16.63 254,16.63ZM218,15.63C212.48,15.63 208,20.1 208,25.63V77.63C208,83.15 212.48,87.63 218,87.63H254C259.52,87.63 264,83.15 264,77.63V25.63C264,20.1 259.52,15.63 254,15.63H218Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M40,23H8C4.13,23 1,26.13 1,30V74C1,77.87 4.13,81 8,81H40C43.87,81 47,77.87 47,74V30C47,26.13 43.87,23 40,23ZM8,22C3.58,22 0,25.58 0,30V74C0,78.42 3.58,82 8,82H40C44.42,82 48,78.42 48,74V30C48,25.58 44.42,22 40,22H8Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M136,69H184V70H136V69Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M136,69V70H184V69H136Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M136,77H184V78H136V77Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M136,77V78H184V77H136Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M148,85H172V86H148V85Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M148,85V86H172V85H148Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M312,22.63H280C276.13,22.63 273,25.76 273,29.63V73.63C273,77.49 276.13,80.63 280,80.63H312C315.87,80.63 319,77.49 319,73.63V29.63C319,25.76 315.87,22.63 312,22.63ZM280,21.63C275.58,21.63 272,25.21 272,29.63V73.63C272,78.04 275.58,81.63 280,81.63H312C316.42,81.63 320,78.04 320,73.63V29.63C320,25.21 316.42,21.63 312,21.63H280Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M308,52C308,58.63 302.63,64 296,64C289.37,64 284,58.63 284,52C284,45.37 289.37,40 296,40C302.63,40 308,45.37 308,52ZM295.5,51.5V46H296.5V51.5H302V52.5H296.5V58H295.5V52.5H290V51.5H295.5Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M36,51.81C36,58.41 30.66,63.75 24.06,63.75C17.47,63.75 12.13,58.41 12.13,51.81C12.13,45.22 17.47,39.88 24.06,39.88C30.66,39.88 36,45.22 36,51.81Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M32,52L34,66L21,59L32,52Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M160.39,58C149.35,58 140.39,49.05 140.39,38C140.39,26.95 149.35,18 160.39,18C171.44,18 180.39,26.95 180.39,38C180.39,49.05 171.44,58 160.39,58ZM165.39,30V32H164.39V30H165.39ZM156.39,32V30H155.39V32H156.39ZM159.39,30C159.39,32.21 157.6,34 155.39,34C153.18,34 151.39,32.21 151.39,30C151.39,27.79 153.18,26 155.39,26C157.6,26 159.39,27.79 159.39,30ZM156.96,34.75C156.46,34.91 155.94,35 155.39,35C152.63,35 150.39,32.76 150.39,30C150.39,27.24 152.63,25 155.39,25C158.15,25 160.39,27.24 160.39,30C160.39,31.28 159.91,32.44 159.12,33.33L153.27,42H160.39V43H151.39L156.96,34.75ZM165.39,35C162.63,35 160.39,32.76 160.39,30C160.39,27.24 162.63,25 165.39,25C168.15,25 170.39,27.24 170.39,30C170.39,32.76 168.15,35 165.39,35ZM166.23,47.85C164.66,49.42 162.54,50.5 160.39,50.5V49.5C162.21,49.5 164.09,48.58 165.53,47.15C166.96,45.72 167.89,43.84 167.89,42H168.89C168.89,44.16 167.8,46.28 166.23,47.85ZM165.39,34C167.6,34 169.39,32.21 169.39,30C169.39,27.79 167.6,26 165.39,26C163.18,26 161.39,27.79 161.39,30C161.39,32.21 163.18,34 165.39,34Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
</vector>
|
112
core-ui/src/main/res/drawable/payments_card_2.xml
Normal file
112
core-ui/src/main/res/drawable/payments_card_2.xml
Normal file
|
@ -0,0 +1,112 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="320dp"
|
||||
android:height="104dp"
|
||||
android:viewportWidth="320"
|
||||
android:viewportHeight="104">
|
||||
<path
|
||||
android:pathData="M280,76C280,87.05 288.95,96 300,96C311.05,96 320,87.05 320,76C320,64.95 311.05,56 300,56C288.95,56 280,64.95 280,76ZM305,68V66H304V68H305ZM296,66V68H295V66H296ZM296.75,73.93C297.56,73.37 298.71,73 300,73V72C298.53,72 297.18,72.42 296.18,73.12C295.18,73.81 294.5,74.83 294.5,76C294.5,77.17 295.18,78.19 296.18,78.88C297.18,79.58 298.53,80 300,80V79C298.71,79 297.56,78.63 296.75,78.07C295.94,77.5 295.5,76.76 295.5,76C295.5,75.24 295.94,74.5 296.75,73.93ZM307.5,80C307.5,84.14 304.14,87.5 300,87.5V88.5C304.69,88.5 308.5,84.69 308.5,80H307.5Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M204,17H116C109.93,17 105,21.92 105,28V76C105,82.08 109.93,87 116,87H204C210.07,87 215,82.08 215,76V28C215,21.92 210.07,17 204,17ZM116,16C109.37,16 104,21.37 104,28V76C104,82.63 109.37,88 116,88H204C210.63,88 216,82.63 216,76V28C216,21.37 210.63,16 204,16H116Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M178,1H142C135.93,1 131,5.92 131,12V92C131,98.08 135.93,103 142,103H178C184.07,103 189,98.08 189,92V12C189,5.92 184.07,1 178,1ZM142,0C135.37,0 130,5.37 130,12V92C130,98.63 135.37,104 142,104H178C184.63,104 190,98.63 190,92V12C190,5.37 184.63,0 178,0H142Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M40,52C40,63.05 31.05,72 20,72C8.95,72 0,63.05 0,52C0,40.95 8.95,32 20,32C31.05,32 40,40.95 40,52ZM15,46V44H16V46H15ZM24,44V46H25V44H24ZM27.06,56H20V57H28.94L23.42,48.74C23.91,48.91 24.45,49 25,49C27.76,49 30,46.76 30,44C30,41.24 27.76,39 25,39C22.24,39 20,41.24 20,44C20,45.28 20.48,46.44 21.27,47.33L27.06,56ZM20,64.5C17.85,64.5 15.73,63.42 14.16,61.85C12.59,60.28 11.5,58.16 11.5,56H12.5C12.5,57.84 13.43,59.72 14.86,61.15C16.3,62.58 18.18,63.5 20,63.5V64.5ZM25,48C22.79,48 21,46.21 21,44C21,41.79 22.79,40 25,40C27.21,40 29,41.79 29,44C29,46.21 27.21,48 25,48ZM11,44C11,46.21 12.79,48 15,48C17.21,48 19,46.21 19,44C19,41.79 17.21,40 15,40C12.79,40 11,41.79 11,44ZM10,44C10,46.76 12.24,49 15,49C17.76,49 20,46.76 20,44C20,41.24 17.76,39 15,39C12.24,39 10,41.24 10,44Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M151,32C144.93,32 140,36.92 140,43V61C140,67.08 144.93,72 151,72H169C175.07,72 180,67.08 180,61V43C180,36.92 175.07,32 169,32H151ZM160,63.75C153.65,63.75 148.5,58.6 148.5,52.25H147.5C147.5,59.15 153.1,64.75 160,64.75C166.9,64.75 172.5,59.15 172.5,52.25H171.5C171.5,58.6 166.35,63.75 160,63.75ZM154.5,46.25V43.25H155.5V46.25H154.5ZM164.5,43.25V46.25H165.5V43.25H164.5Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M280,28C280,39.05 288.95,48 300,48C311.05,48 320,39.05 320,28C320,16.95 311.05,8 300,8C288.95,8 280,16.95 280,28ZM305,20V18H304V20H305ZM296,18V20H295V18H296ZM295.51,31C295.65,27.76 297.11,24.18 300.29,21.91L299.71,21.09C296.05,23.7 294.5,27.87 294.5,31.5V32H300V31H295.51ZM307.5,32C307.5,36.14 304.14,39.5 300,39.5V40.5C304.69,40.5 308.5,36.69 308.5,32H307.5Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M256,39C264.28,39 271,32.28 271,24C271,15.72 264.28,9 256,9C255.3,9 254.62,9.05 253.94,9.14C253.31,8.89 252.66,8.68 252,8.5C253.28,8.18 254.62,8 256,8C264.84,8 272,15.16 272,24C272,32.84 264.84,40 256,40C254.62,40 253.28,39.83 252,39.5C252.66,39.32 253.31,39.11 253.94,38.86C254.62,38.95 255.3,39 256,39Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M256,40C264.84,40 272,32.84 272,24C272,15.16 264.84,8 256,8C255.35,8 254.7,8.04 254.07,8.12C253.36,8.2 252.67,8.33 252,8.5C252.66,8.68 253.31,8.89 253.94,9.14C253.94,9.14 253.94,9.14 253.94,9.14C254.46,9.07 254.98,9.02 255.52,9.01C255.68,9 255.84,9 256,9C264.28,9 271,15.72 271,24C271,32.28 264.28,39 256,39C255.79,39 255.59,39 255.39,38.99C254.9,38.97 254.42,38.93 253.94,38.86C253.94,38.86 253.94,38.86 253.94,38.86C253.31,39.11 252.66,39.32 252,39.5C252.67,39.67 253.36,39.8 254.07,39.88C254.52,39.94 254.98,39.97 255.45,39.99C255.63,40 255.81,40 256,40Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M248,39C256.28,39 263,32.28 263,24C263,15.72 256.28,9 248,9C247.3,9 246.62,9.05 245.94,9.14C245.31,8.89 244.66,8.68 244,8.5C245.28,8.18 246.62,8 248,8C256.84,8 264,15.16 264,24C264,32.84 256.84,40 248,40C246.62,40 245.28,39.83 244,39.5C244.66,39.32 245.31,39.11 245.94,38.86C246.62,38.95 247.3,39 248,39Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M248,40C256.84,40 264,32.84 264,24C264,15.16 256.84,8 248,8C247.35,8 246.7,8.04 246.07,8.12C245.36,8.2 244.67,8.33 244,8.5C244.66,8.68 245.31,8.89 245.94,9.14C245.94,9.14 245.94,9.14 245.94,9.14C246.46,9.07 246.98,9.02 247.52,9.01C247.68,9 247.84,9 248,9C256.28,9 263,15.72 263,24C263,32.28 256.28,39 248,39C247.79,39 247.59,39 247.39,38.99C246.9,38.97 246.42,38.93 245.94,38.86C245.94,38.86 245.94,38.86 245.94,38.86C245.31,39.11 244.66,39.32 244,39.5C244.67,39.67 245.36,39.8 246.07,39.88C246.52,39.94 246.98,39.97 247.45,39.99C247.63,40 247.81,40 248,40Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M225,24C225,32.28 231.72,39 240,39C248.28,39 255,32.28 255,24C255,15.72 248.28,9 240,9C231.72,9 225,15.72 225,24ZM240,8C231.16,8 224,15.16 224,24C224,32.84 231.16,40 240,40C248.84,40 256,32.84 256,24C256,15.16 248.84,8 240,8Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M233.02,22.41C233.3,25.56 235.91,29.15 240,31C244.09,29.15 246.7,25.56 246.98,22.41C246.99,22.27 247,22.14 247,22C247,20.07 245.43,18.5 243.5,18.5C241.57,18.5 240,20.07 240,22C240,20.07 238.43,18.5 236.5,18.5C234.57,18.5 233,20.07 233,22C233,22.14 233.01,22.27 233.02,22.41Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M64,63C55.72,63 49,56.28 49,48C49,39.72 55.72,33 64,33C64.7,33 65.38,33.05 66.06,33.14C66.69,32.89 67.33,32.68 68,32.5C66.72,32.17 65.38,32 64,32C55.16,32 48,39.16 48,48C48,56.84 55.16,64 64,64C65.38,64 66.72,63.83 68,63.5C67.33,63.32 66.69,63.11 66.06,62.86C65.38,62.95 64.7,63 64,63Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M64,64C55.16,64 48,56.84 48,48C48,39.16 55.16,32 64,32C64.65,32 65.3,32.04 65.93,32.12C66.64,32.2 67.33,32.33 68,32.5C67.33,32.68 66.69,32.89 66.06,33.14C66.06,33.14 66.06,33.14 66.06,33.14C65.54,33.07 65.02,33.02 64.48,33.01C64.32,33 64.16,33 64,33C55.72,33 49,39.72 49,48C49,56.28 55.72,63 64,63C64.21,63 64.41,63 64.61,62.99C65.1,62.97 65.58,62.93 66.06,62.86C66.06,62.86 66.06,62.86 66.06,62.86C66.69,63.11 67.33,63.32 68,63.5C67.33,63.67 66.64,63.8 65.93,63.88C65.48,63.94 65.02,63.97 64.56,63.99C64.37,64 64.19,64 64,64Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M72,63C63.72,63 57,56.28 57,48C57,39.72 63.72,33 72,33C72.7,33 73.38,33.05 74.06,33.14C74.69,32.89 75.33,32.68 76,32.5C74.72,32.17 73.38,32 72,32C63.16,32 56,39.16 56,48C56,56.84 63.16,64 72,64C73.38,64 74.72,63.83 76,63.5C75.33,63.32 74.69,63.11 74.06,62.86C73.38,62.95 72.7,63 72,63Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M72,64C63.16,64 56,56.84 56,48C56,39.16 63.16,32 72,32C72.65,32 73.3,32.04 73.93,32.12C74.64,32.2 75.33,32.33 76,32.5C75.33,32.68 74.69,32.89 74.06,33.14C74.06,33.14 74.06,33.14 74.06,33.14C73.54,33.07 73.02,33.02 72.48,33.01C72.32,33 72.16,33 72,33C63.72,33 57,39.72 57,48C57,56.28 63.72,63 72,63C72.21,63 72.41,63 72.61,62.99C73.1,62.97 73.58,62.93 74.06,62.86C74.06,62.86 74.06,62.86 74.06,62.86C74.69,63.11 75.33,63.32 76,63.5C75.33,63.67 74.64,63.8 73.93,63.88C73.48,63.94 73.02,63.97 72.56,63.99C72.37,64 72.19,64 72,64Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M65,48C65,56.28 71.72,63 80,63C88.28,63 95,56.28 95,48C95,39.72 88.28,33 80,33C71.72,33 65,39.72 65,48ZM80,32C71.16,32 64,39.16 64,48C64,56.84 71.16,64 80,64C88.84,64 96,56.84 96,48C96,39.16 88.84,32 80,32Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M77,44.99V52.96C77,53.51 77.44,53.96 78,53.96L84.9,54C85.37,54 85.78,53.67 85.88,53.21L87.43,46.22C87.57,45.59 87.1,45 86.46,45H82C82,45 83,43.56 83,42C83,40.4 82.55,39.69 81.99,39.26C81.43,38.83 80.28,39.01 80.28,40.03C80.27,42.03 78.94,43.64 77,44.99Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M72,45H76V53C76,53.55 75.55,54 75,54H73C72.45,54 72,53.55 72,53V45Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M225,72C225,80.28 231.72,87 240,87C248.28,87 255,80.28 255,72C255,63.72 248.28,57 240,57C231.72,57 225,63.72 225,72ZM240,56C231.16,56 224,63.16 224,72C224,80.84 231.16,88 240,88C248.84,88 256,80.84 256,72C256,63.16 248.84,56 240,56Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M256,87C264.28,87 271,80.28 271,72C271,63.72 264.28,57 256,57C255.3,57 254.62,57.05 253.94,57.14C253.31,56.89 252.66,56.68 252,56.5C253.28,56.17 254.62,56 256,56C264.84,56 272,63.16 272,72C272,80.84 264.84,88 256,88C254.62,88 253.28,87.82 252,87.5C252.66,87.32 253.31,87.11 253.94,86.86C254.62,86.95 255.3,87 256,87Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M256,88C264.84,88 272,80.84 272,72C272,63.16 264.84,56 256,56C255.35,56 254.7,56.04 254.07,56.12C253.36,56.2 252.67,56.33 252,56.5C252.66,56.68 253.31,56.89 253.94,57.14C253.94,57.14 253.94,57.14 253.94,57.14C254.46,57.07 254.98,57.02 255.52,57.01C255.68,57 255.84,57 256,57C264.28,57 271,63.72 271,72C271,80.28 264.28,87 256,87C255.79,87 255.59,87 255.39,86.99C254.9,86.97 254.42,86.93 253.94,86.86C253.94,86.86 253.94,86.86 253.94,86.86C253.31,87.11 252.66,87.32 252,87.5C252.67,87.67 253.36,87.8 254.07,87.88C254.52,87.94 254.98,87.97 255.45,87.99C255.63,88 255.81,88 256,88Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M248,87C256.28,87 263,80.28 263,72C263,63.72 256.28,57 248,57C247.3,57 246.62,57.05 245.94,57.14C245.31,56.89 244.66,56.68 244,56.5C245.28,56.17 246.62,56 248,56C256.84,56 264,63.16 264,72C264,80.84 256.84,88 248,88C246.62,88 245.28,87.82 244,87.5C244.66,87.32 245.31,87.11 245.94,86.86C246.62,86.95 247.3,87 248,87Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M248,88C256.84,88 264,80.84 264,72C264,63.16 256.84,56 248,56C247.35,56 246.7,56.04 246.07,56.12C245.36,56.2 244.67,56.33 244,56.5C244.66,56.68 245.31,56.89 245.94,57.14C245.94,57.14 245.94,57.14 245.94,57.14C246.46,57.07 246.98,57.02 247.52,57.01C247.68,57 247.84,57 248,57C256.28,57 263,63.72 263,72C263,80.28 256.28,87 248,87C247.79,87 247.59,87 247.39,86.99C246.9,86.97 246.42,86.93 245.94,86.86C245.94,86.86 245.94,86.86 245.94,86.86C245.31,87.11 244.66,87.32 244,87.5C244.67,87.67 245.36,87.8 246.07,87.88C246.52,87.94 246.98,87.97 247.45,87.99C247.63,88 247.81,88 248,88Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M231,72.5V71.5L238,68V69.5L233,72L231,72.5Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M231,71.5V72.5L238,76V74.5L233,72L231,71.5Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M249,72.5V71.5L242,68V69.5L247,72L249,72.5Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M249,71.5V72.5L242,76V74.5L247,72L249,71.5Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
</vector>
|
60
core-ui/src/main/res/drawable/payments_card_3.xml
Normal file
60
core-ui/src/main/res/drawable/payments_card_3.xml
Normal file
|
@ -0,0 +1,60 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="320dp"
|
||||
android:height="104dp"
|
||||
android:viewportWidth="320"
|
||||
android:viewportHeight="104">
|
||||
<path
|
||||
android:pathData="M190.63,35.51L232.81,11.52C232.96,11.82 233.13,12.11 233.31,12.38L191.13,36.38C190.98,36.08 190.81,35.79 190.63,35.51ZM248.77,33.6L242.26,15.68C242.58,15.58 242.9,15.47 243.2,15.34L249.72,33.26C249.4,33.36 249.09,33.48 248.77,33.6ZM236.4,48.24L191.96,40.86C191.92,41.19 191.86,41.52 191.79,41.84L236.23,49.22C236.28,48.89 236.34,48.57 236.4,48.24ZM236.04,53.5L141.9,62.91C141.96,63.23 141.99,63.56 142,63.9L236.12,54.49C236.09,54.16 236.06,53.83 236.04,53.5ZM239.59,63.68L215.69,81.61C215.9,81.86 216.1,82.13 216.29,82.41L240.18,64.49C239.98,64.23 239.78,63.96 239.59,63.68ZM262.45,71.19L269.49,90.55C269.79,90.41 270.1,90.3 270.43,90.21L263.38,70.84C263.08,70.97 262.76,71.08 262.45,71.19ZM275.51,56.69L304.09,62.82C304.14,62.48 304.21,62.16 304.3,61.84L275.7,55.71C275.64,56.04 275.58,56.37 275.51,56.69ZM272.18,40.49L299.52,19.99C299.3,19.74 299.1,19.47 298.92,19.19L271.57,39.7C271.78,39.96 271.98,40.22 272.18,40.49ZM49.57,13.79C49.9,13.7 50.21,13.59 50.51,13.45L57.63,33.04C57.32,33.14 57,33.26 56.69,33.38L49.57,13.79ZM80.3,40.4C80.1,40.13 79.9,39.86 79.69,39.6L103.71,21.59C103.89,21.87 104.1,22.14 104.31,22.39L80.3,40.4ZM121.32,19.63C121.44,19.32 121.55,19.01 121.64,18.68L176.58,37C176.46,37.31 176.35,37.62 176.27,37.95L121.32,19.63ZM176.01,40.3C176.02,40.63 176.05,40.97 176.1,41.29L83.95,50.51C83.92,50.17 83.89,49.84 83.85,49.51L176.01,40.3ZM198.68,84.37L141.83,65.42C141.75,65.75 141.65,66.06 141.51,66.37L198.36,85.32C198.45,84.99 198.56,84.68 198.68,84.37ZM130.19,62.49C130.11,62.81 130.05,63.14 130.02,63.47L83.65,55.77C83.71,55.44 83.76,55.11 83.81,54.78L130.19,62.49ZM70.36,70.97C70.68,70.86 70.99,70.75 71.3,70.63L77.74,88.32C77.42,88.42 77.1,88.53 76.8,88.67L70.36,70.97ZM72.14,94.51C72.08,94.84 72.04,95.17 72.02,95.51L21.87,89.24C21.94,88.92 21.98,88.58 22,88.25L72.14,94.51ZM21.08,84.81C20.91,84.53 20.7,84.26 20.48,84.01L47.7,63.6C47.9,63.87 48.1,64.13 48.3,64.4L21.08,84.81ZM44.56,47.3C44.48,47.62 44.41,47.95 44.35,48.28L15.72,42.11C15.81,41.79 15.87,41.46 15.92,41.13L44.56,47.3Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M54,8C54,11.31 51.31,14 48,14C44.69,14 42,11.31 42,8C42,4.69 44.69,2 48,2C51.31,2 54,4.69 54,8Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M122.25,16C122.25,21.52 117.77,26 112.25,26C106.73,26 102.25,21.52 102.25,16C102.25,10.48 106.73,6 112.25,6C117.77,6 122.25,10.48 122.25,16Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M142,64C142,67.31 139.31,70 136,70C132.69,70 130,67.31 130,64C130,60.69 132.69,58 136,58C139.31,58 142,60.69 142,64Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M22,88C22,91.31 19.31,94 16,94C12.69,94 10,91.31 10,88C10,84.69 12.69,82 16,82C19.31,82 22,84.69 22,88Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M88,96C88,100.42 84.42,104 80,104C75.58,104 72,100.42 72,96C72,91.58 75.58,88 80,88C84.42,88 88,91.58 88,96Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M16,40C16,44.42 12.42,48 8,48C3.58,48 0,44.42 0,40C0,35.58 3.58,32 8,32C12.42,32 16,35.58 16,40Z"
|
||||
android:fillColor="@color/text_primary"/>
|
||||
<path
|
||||
android:pathData="M84,52C84,63.05 75.05,72 64,72C52.95,72 44,63.05 44,52C44,40.95 52.95,32 64,32C75.05,32 84,40.95 84,52ZM59,46V44H60V46H59ZM68,44V46H69V44H68ZM71.06,56H64V57H72.94L67.42,48.74C67.91,48.91 68.45,49 69,49C71.76,49 74,46.76 74,44C74,41.24 71.76,39 69,39C66.24,39 64,41.24 64,44C64,45.28 64.48,46.44 65.27,47.33L71.06,56ZM64,64.5C61.85,64.5 59.73,63.42 58.16,61.85C56.59,60.28 55.5,58.16 55.5,56H56.5C56.5,57.84 57.43,59.72 58.86,61.15C60.3,62.58 62.18,63.5 64,63.5V64.5ZM69,48C66.79,48 65,46.21 65,44C65,41.79 66.79,40 69,40C71.21,40 73,41.79 73,44C73,46.21 71.21,48 69,48ZM55,44C55,46.21 56.79,48 59,48C61.21,48 63,46.21 63,44C63,41.79 61.21,40 59,40C56.79,40 55,41.79 55,44ZM54,44C54,46.76 56.24,49 59,49C61.76,49 64,46.76 64,44C64,41.24 61.76,39 59,39C56.24,39 54,41.24 54,44Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M272,91C269.24,91 267,93.24 267,96C267,98.76 269.24,101 272,101C274.76,101 277,98.76 277,96C277,93.24 274.76,91 272,91ZM272,90C268.69,90 266,92.69 266,96C266,99.31 268.69,102 272,102C275.31,102 278,99.31 278,96C278,92.69 275.31,90 272,90Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M304,11C301.24,11 299,13.24 299,16C299,18.76 301.24,21 304,21C306.76,21 309,18.76 309,16C309,13.24 306.76,11 304,11ZM304,10C300.69,10 298,12.69 298,16C298,19.31 300.69,22 304,22C307.31,22 310,19.31 310,16C310,12.69 307.31,10 304,10Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M207.75,79C202.78,79 198.75,83.03 198.75,88C198.75,92.97 202.78,97 207.75,97C212.72,97 216.75,92.97 216.75,88C216.75,83.03 212.72,79 207.75,79ZM207.75,78C202.23,78 197.75,82.48 197.75,88C197.75,93.52 202.23,98 207.75,98C213.27,98 217.75,93.52 217.75,88C217.75,82.48 213.27,78 207.75,78Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M184,33C180.13,33 177,36.13 177,40C177,43.87 180.13,47 184,47C187.87,47 191,43.87 191,40C191,36.13 187.87,33 184,33ZM184,32C179.58,32 176,35.58 176,40C176,44.42 179.58,48 184,48C188.42,48 192,44.42 192,40C192,35.58 188.42,32 184,32Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M312,57C308.13,57 305,60.13 305,64C305,67.87 308.13,71 312,71C315.87,71 319,67.87 319,64C319,60.13 315.87,57 312,57ZM312,56C307.58,56 304,59.58 304,64C304,68.42 307.58,72 312,72C316.42,72 320,68.42 320,64C320,59.58 316.42,56 312,56Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M240,1C236.13,1 233,4.13 233,8C233,11.87 236.13,15 240,15C243.87,15 247,11.87 247,8C247,4.13 243.87,1 240,1ZM240,0C235.58,0 232,3.58 232,8C232,12.42 235.58,16 240,16C244.42,16 248,12.42 248,8C248,3.58 244.42,0 240,0Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M256,72C244.95,72 236,63.05 236,52C236,40.95 244.95,32 256,32C267.05,32 276,40.95 276,52C276,63.05 267.05,72 256,72ZM261,44V42H260V44H261ZM252,44V42H251V44H252ZM256,49C254.71,49 253.56,49.37 252.75,49.93C251.94,50.5 251.5,51.24 251.5,52C251.5,52.76 251.94,53.5 252.75,54.07C253.56,54.63 254.71,55 256,55V56C254.53,56 253.18,55.58 252.18,54.88C251.18,54.19 250.5,53.17 250.5,52C250.5,50.83 251.18,49.81 252.18,49.12C253.18,48.42 254.53,48 256,48V49ZM256,63.5C260.14,63.5 263.5,60.14 263.5,56H264.5C264.5,60.69 260.69,64.5 256,64.5V63.5Z"
|
||||
android:fillColor="@color/text_primary"
|
||||
android:fillType="evenOdd"/>
|
||||
</vector>
|
|
@ -1330,4 +1330,39 @@
|
|||
|
||||
<!--endregion-->
|
||||
|
||||
<!--region PAYMENTS -->
|
||||
|
||||
<string name="payments_header">Let’s build\ntogether</string>
|
||||
<string name="payments_subheader">Joining Anytype network means contributing to its story</string>
|
||||
|
||||
<string name="payments_card_text_1">Co-create with us</string>
|
||||
<string name="payments_card_description_1">Stay closely connected with our team and community. Join calls with the team, influence Anytype\'s evolution, and have your say on features.</string>
|
||||
|
||||
<string name="payments_card_text_2">Gain Benefits</string>
|
||||
<string name="payments_card_description_2">Our members have unique identity on Anytype Network, more storage, shared spaces and members per space for extensive collaboration.</string>
|
||||
|
||||
<string name="payments_card_text_3">Support the Vision</string>
|
||||
<string name="payments_card_description_3">Your contribution supports our independent team and endorses our vision︎ of a user-driven, secure, and collaborative digital environment.</string>
|
||||
|
||||
<string name="payments_card_text_4">Invest in Connectivity</string>
|
||||
<string name="payments_card_description_4">Our software is free by design, but we thrive on the network that connects us all. Support us, and you\'re investing in the very infrastructure that keeps us united.</string>
|
||||
|
||||
<string name="payments_tier_explorer">Explorer</string>
|
||||
<string name="payments_tier_explorer_description">Dive into the network and enjoy the thrill of one-on-one collaboration</string>
|
||||
<string name="payments_tier_builder">Builder</string>
|
||||
<string name="payments_tier_builder_description">Unlock the magic of multi-party collaboration and enjoy top-notch support</string>
|
||||
<string name="payments_tier_cocreator">Co-Creator</string>
|
||||
<string name="payments_tier_cocreator_description">Support our adventure and unlock exclusive access and perks</string>
|
||||
<string name="payments_tier_custom">Custom</string>
|
||||
<string name="payments_tier_custom_description">Membership tailored to your specific needs and preferences</string>
|
||||
|
||||
<string name="payments_button_learn">Learn more</string>
|
||||
<string name="payments_button_contact">Contact</string>
|
||||
|
||||
<string name="payments_member_link">Membership levels details</string>
|
||||
<string name="payments_privacy_link">Privacy policy</string>
|
||||
<string name="payments_terms_link">Terms and conditions</string>
|
||||
<string name="payments_let_us_link_start">Would you like to use Anytype for business, education, etc.?</string>
|
||||
<string name="payments_let_us_link_end">Please let us know here.</string>
|
||||
|
||||
</resources>
|
134
payments/src/main/java/com/anytypeio/anytype/screens/InfoCard.kt
Normal file
134
payments/src/main/java/com/anytypeio/anytype/screens/InfoCard.kt
Normal file
|
@ -0,0 +1,134 @@
|
|||
package com.anytypeio.anytype.screens
|
||||
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Brush
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.LocalConfiguration
|
||||
import androidx.compose.ui.res.colorResource
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.anytypeio.anytype.core_ui.R
|
||||
import com.anytypeio.anytype.core_ui.views.BodyBold
|
||||
import com.anytypeio.anytype.core_ui.views.Relations2
|
||||
|
||||
@Composable
|
||||
fun InfoCard(
|
||||
image: Int,
|
||||
gradient: Brush,
|
||||
title: String,
|
||||
subtitle: String,
|
||||
) {
|
||||
val configuration = LocalConfiguration.current
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.height(284.dp)
|
||||
.background(color = colorResource(id = R.color.shape_tertiary)),
|
||||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.height(136.dp)
|
||||
.background(gradient)
|
||||
.verticalScroll(rememberScrollState())
|
||||
) {
|
||||
Image(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(top = 32.dp),
|
||||
painter = painterResource(id = image),
|
||||
contentDescription = "Main payments image"
|
||||
)
|
||||
}
|
||||
Spacer(modifier = Modifier.height(24.dp))
|
||||
Text(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.verticalScroll(rememberScrollState()),
|
||||
text = title,
|
||||
color = colorResource(id = R.color.text_primary),
|
||||
style = BodyBold,
|
||||
textAlign = TextAlign.Center
|
||||
)
|
||||
Text(
|
||||
modifier = Modifier
|
||||
.padding(start = 32.dp, end = 32.dp, top = 6.dp)
|
||||
.verticalScroll(rememberScrollState()),
|
||||
text = subtitle,
|
||||
color = colorResource(id = R.color.text_primary),
|
||||
style = Relations2,
|
||||
textAlign = TextAlign.Center
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun infoCardsState() = listOf(
|
||||
InfoCardState(
|
||||
image = R.drawable.payments_card_0,
|
||||
title = stringResource(id = R.string.payments_card_text_1),
|
||||
subtitle = stringResource(id = R.string.payments_card_description_1),
|
||||
gradient = Brush.verticalGradient(
|
||||
colors = listOf(
|
||||
Color(0xFFCFF6CF),
|
||||
Color.Transparent
|
||||
)
|
||||
)
|
||||
),
|
||||
InfoCardState(
|
||||
image = R.drawable.payments_card_1,
|
||||
title = stringResource(id = R.string.payments_card_text_2),
|
||||
subtitle = stringResource(id = R.string.payments_card_description_2),
|
||||
gradient = Brush.verticalGradient(
|
||||
colors = listOf(
|
||||
Color(0xFFFEF2C6),
|
||||
Color.Transparent
|
||||
)
|
||||
)
|
||||
),
|
||||
InfoCardState(
|
||||
image = R.drawable.payments_card_2,
|
||||
title = stringResource(id = R.string.payments_card_text_3),
|
||||
subtitle = stringResource(id = R.string.payments_card_description_3),
|
||||
gradient = Brush.verticalGradient(
|
||||
colors = listOf(
|
||||
Color(0xFFFFEBEB),
|
||||
Color.Transparent
|
||||
)
|
||||
)
|
||||
),
|
||||
InfoCardState(
|
||||
image = R.drawable.payments_card_3,
|
||||
title = stringResource(id = R.string.payments_card_text_4),
|
||||
subtitle = stringResource(id = R.string.payments_card_description_4),
|
||||
gradient = Brush.verticalGradient(
|
||||
colors = listOf(
|
||||
Color(0xFFEBEDFE),
|
||||
Color.Transparent
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
data class InfoCardState(
|
||||
val image: Int,
|
||||
val title: String,
|
||||
val subtitle: String,
|
||||
val gradient: Brush
|
||||
)
|
|
@ -1,13 +1,29 @@
|
|||
package com.anytypeio.anytype.screens
|
||||
|
||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.gestures.snapping.rememberSnapFlingBehavior
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.layout.wrapContentHeight
|
||||
import androidx.compose.foundation.layout.wrapContentSize
|
||||
import androidx.compose.foundation.lazy.LazyRow
|
||||
import androidx.compose.foundation.lazy.itemsIndexed
|
||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||
import androidx.compose.foundation.pager.HorizontalPager
|
||||
import androidx.compose.foundation.pager.rememberPagerState
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.Text
|
||||
|
@ -17,12 +33,28 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||
import androidx.compose.ui.platform.rememberNestedScrollInteropConnection
|
||||
import androidx.compose.ui.res.colorResource
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.SpanStyle
|
||||
import androidx.compose.ui.text.TextStyle
|
||||
import androidx.compose.ui.text.buildAnnotatedString
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.text.style.TextDecoration
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.em
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.anytypeio.anytype.core_ui.R
|
||||
import com.anytypeio.anytype.core_ui.foundation.Divider
|
||||
import com.anytypeio.anytype.core_ui.foundation.Dragger
|
||||
import com.anytypeio.anytype.core_ui.views.Title1
|
||||
import com.anytypeio.anytype.core_ui.foundation.noRippleThrottledClickable
|
||||
import com.anytypeio.anytype.core_ui.views.BodyRegular
|
||||
import com.anytypeio.anytype.core_ui.views.Caption1Regular
|
||||
import com.anytypeio.anytype.core_ui.views.Relations2
|
||||
import com.anytypeio.anytype.core_ui.views.fontRiccioneRegular
|
||||
import com.anytypeio.anytype.viewmodel.PaymentsState
|
||||
import com.anytypeio.anytype.viewmodel.TierState
|
||||
|
||||
@Composable
|
||||
fun MainPaymentsScreen(state: PaymentsState) {
|
||||
|
@ -40,14 +72,28 @@ fun MainPaymentsScreen(state: PaymentsState) {
|
|||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.padding(bottom = 20.dp)
|
||||
.verticalScroll(rememberScrollState())
|
||||
) {
|
||||
Header(state = state)
|
||||
if (state is PaymentsState.Success) {
|
||||
Header(state = state)
|
||||
Spacer(modifier = Modifier.height(32.dp))
|
||||
InfoCards()
|
||||
Tiers(state = state)
|
||||
Spacer(modifier = Modifier.height(32.dp))
|
||||
LinkButton(text = stringResource(id = R.string.payments_member_link), action = {})
|
||||
Divider()
|
||||
LinkButton(text = stringResource(id = R.string.payments_privacy_link), action = {})
|
||||
Divider()
|
||||
LinkButton(text = stringResource(id = R.string.payments_terms_link), action = {})
|
||||
Spacer(modifier = Modifier.height(32.dp))
|
||||
BottomText()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun Header(state: PaymentsState) {
|
||||
private fun Header(state: PaymentsState.Success) {
|
||||
|
||||
// Dragger at the top, centered
|
||||
Box(
|
||||
|
@ -63,14 +109,166 @@ private fun Header(state: PaymentsState) {
|
|||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.wrapContentHeight()
|
||||
.verticalScroll(rememberScrollState())
|
||||
) {
|
||||
Text(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
text = "Let's build together",
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(start = 20.dp, end = 20.dp, top = 37.dp),
|
||||
text = stringResource(id = R.string.payments_header),
|
||||
color = colorResource(id = R.color.text_primary),
|
||||
style = Title1,
|
||||
style = headerTextStyle,
|
||||
textAlign = TextAlign.Center
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.wrapContentHeight()
|
||||
) {
|
||||
Text(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(start = 60.dp, end = 60.dp, top = 7.dp),
|
||||
text = stringResource(id = R.string.payments_subheader),
|
||||
color = colorResource(id = R.color.text_primary),
|
||||
style = Relations2,
|
||||
textAlign = TextAlign.Center
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalFoundationApi::class)
|
||||
@Composable
|
||||
fun Tiers(state: PaymentsState.Success) {
|
||||
val itemsScroll = rememberLazyListState(initialFirstVisibleItemIndex = 1)
|
||||
LazyRow(
|
||||
state = itemsScroll,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(top = 32.dp),
|
||||
horizontalArrangement = Arrangement.spacedBy(20.dp),
|
||||
contentPadding = PaddingValues(start = 20.dp, end = 20.dp),
|
||||
flingBehavior = rememberSnapFlingBehavior(lazyListState = itemsScroll)
|
||||
) {
|
||||
itemsIndexed(state.tiers) { index, tier ->
|
||||
TierByType(tier = tier)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalFoundationApi::class)
|
||||
@Composable
|
||||
fun InfoCards() {
|
||||
val cards = infoCardsState()
|
||||
val pagerState = rememberPagerState {
|
||||
cards.size
|
||||
}
|
||||
val dotCurrentColor = colorResource(id = R.color.glyph_button)
|
||||
val dotColor = colorResource(id = R.color.glyph_inactive)
|
||||
Box(modifier = Modifier) {
|
||||
HorizontalPager(state = pagerState) { index ->
|
||||
val card = cards[index]
|
||||
InfoCard(
|
||||
gradient = card.gradient,
|
||||
title = card.title,
|
||||
subtitle = card.subtitle,
|
||||
image = card.image
|
||||
)
|
||||
}
|
||||
Row(
|
||||
Modifier
|
||||
.fillMaxWidth()
|
||||
.align(Alignment.BottomCenter)
|
||||
.padding(bottom = 10.dp),
|
||||
horizontalArrangement = Arrangement.Center
|
||||
) {
|
||||
repeat(cards.size) { iteration ->
|
||||
val color =
|
||||
if (pagerState.currentPage == iteration) dotCurrentColor else dotColor
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.padding(horizontal = 5.dp)
|
||||
.background(color, CircleShape)
|
||||
.size(6.dp)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun LinkButton(text: String, action: () -> Unit) {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.height(52.dp)
|
||||
.fillMaxWidth()
|
||||
.padding(horizontal = 20.dp)
|
||||
.noRippleThrottledClickable { action.invoke() }
|
||||
) {
|
||||
Text(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.align(Alignment.CenterStart),
|
||||
text = text,
|
||||
style = BodyRegular,
|
||||
color = colorResource(id = R.color.text_primary)
|
||||
)
|
||||
Image(
|
||||
modifier = Modifier
|
||||
.wrapContentSize()
|
||||
.align(Alignment.CenterEnd),
|
||||
painter = painterResource(id = R.drawable.ic_web_link),
|
||||
contentDescription = "web link icon"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun BottomText() {
|
||||
val start = stringResource(id = R.string.payments_let_us_link_start)
|
||||
val end = stringResource(id = R.string.payments_let_us_link_end)
|
||||
val buildString = buildAnnotatedString {
|
||||
append(start)
|
||||
append(" ")
|
||||
append(end)
|
||||
pushStringAnnotation(
|
||||
tag = "link", annotation = "www.anytype.io"
|
||||
)
|
||||
addStyle(
|
||||
style = SpanStyle(textDecoration = TextDecoration.Underline),
|
||||
start = start.length + 1,
|
||||
end = start.length + 1 + end.length
|
||||
)
|
||||
pop()
|
||||
}
|
||||
Text(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(horizontal = 20.dp)
|
||||
.wrapContentHeight(),
|
||||
text = buildString,
|
||||
style = Caption1Regular,
|
||||
color = colorResource(id = R.color.text_primary)
|
||||
)
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun MainPaymentsScreenPreview() {
|
||||
val tiers = listOf(
|
||||
TierState.Explorer("999", isCurrent = true),
|
||||
TierState.Builder("999", isCurrent = false),
|
||||
TierState.CoCreator("999", isCurrent = false),
|
||||
TierState.Custom("999", isCurrent = false)
|
||||
)
|
||||
MainPaymentsScreen(PaymentsState.Success(tiers))
|
||||
}
|
||||
|
||||
val headerTextStyle = TextStyle(
|
||||
fontFamily = fontRiccioneRegular,
|
||||
fontWeight = FontWeight.W400,
|
||||
fontSize = 48.sp,
|
||||
lineHeight = 48.sp,
|
||||
letterSpacing = (-0.010833).em
|
||||
)
|
200
payments/src/main/java/com/anytypeio/anytype/screens/Tier.kt
Normal file
200
payments/src/main/java/com/anytypeio/anytype/screens/Tier.kt
Normal file
|
@ -0,0 +1,200 @@
|
|||
package com.anytypeio.anytype.screens
|
||||
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.layout.wrapContentHeight
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.Icon
|
||||
import androidx.compose.material.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Brush
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.res.colorResource
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.TextStyle
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.em
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.anytypeio.anytype.core_ui.R
|
||||
import com.anytypeio.anytype.core_ui.foundation.noRippleThrottledClickable
|
||||
import com.anytypeio.anytype.core_ui.views.ButtonPrimary
|
||||
import com.anytypeio.anytype.core_ui.views.ButtonSize
|
||||
import com.anytypeio.anytype.core_ui.views.Caption1Regular
|
||||
import com.anytypeio.anytype.core_ui.views.fontInterSemibold
|
||||
import com.anytypeio.anytype.viewmodel.TierState
|
||||
|
||||
@Composable
|
||||
private fun Tier(
|
||||
title: String,
|
||||
subTitle: String,
|
||||
price: String,
|
||||
colorGradient: Color,
|
||||
radialGradient: Color,
|
||||
icon: Int,
|
||||
buttonText: String,
|
||||
onClick: () -> Unit
|
||||
) {
|
||||
val brush = Brush.verticalGradient(
|
||||
listOf(
|
||||
colorGradient,
|
||||
Color.Transparent
|
||||
)
|
||||
)
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.width(192.dp)
|
||||
.wrapContentHeight()
|
||||
.background(
|
||||
color = colorResource(id = R.color.shape_tertiary),
|
||||
shape = RoundedCornerShape(16.dp)
|
||||
)
|
||||
.noRippleThrottledClickable { onClick() }
|
||||
) {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.height(80.dp)
|
||||
.background(brush = brush, shape = RoundedCornerShape(16.dp)),
|
||||
contentAlignment = androidx.compose.ui.Alignment.BottomStart
|
||||
) {
|
||||
Icon(
|
||||
modifier = Modifier
|
||||
.padding(start = 16.dp),
|
||||
painter = painterResource(id = icon),
|
||||
contentDescription = "logo",
|
||||
tint = radialGradient
|
||||
)
|
||||
}
|
||||
Text(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(start = 17.dp, top = 10.dp),
|
||||
text = title,
|
||||
color = colorResource(id = R.color.text_primary),
|
||||
style = titleTextStyle,
|
||||
textAlign = TextAlign.Start
|
||||
)
|
||||
Text(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.height(96.dp)
|
||||
.padding(start = 16.dp, end = 16.dp, top = 5.dp),
|
||||
text = subTitle,
|
||||
color = colorResource(id = R.color.text_primary),
|
||||
style = Caption1Regular,
|
||||
textAlign = TextAlign.Start
|
||||
)
|
||||
PriceOrOption()
|
||||
ButtonPrimary(
|
||||
text = buttonText,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(horizontal = 16.dp),
|
||||
onClick = { /*TODO*/ },
|
||||
size = ButtonSize.Small
|
||||
)
|
||||
Spacer(modifier = Modifier.height(10.dp))
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun PriceOrOption() {
|
||||
Text(
|
||||
modifier = Modifier.padding(start = 16.dp),
|
||||
text = "9.99",
|
||||
style = titleTextStyle,
|
||||
color = colorResource(id = R.color.text_primary)
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun TierByType(tier: TierState) {
|
||||
when (tier) {
|
||||
is TierState.Builder -> {
|
||||
Tier(
|
||||
title = stringResource(id = R.string.payments_tier_builder),
|
||||
subTitle = stringResource(id = R.string.payments_tier_builder_description),
|
||||
price = tier.price,
|
||||
colorGradient = Color(0xFFE4E7FF),
|
||||
radialGradient = Color(0xFFA5AEFF),
|
||||
icon = R.drawable.logo_builder,
|
||||
buttonText = stringResource(id = R.string.payments_button_learn),
|
||||
onClick = { /*TODO*/ }
|
||||
)
|
||||
}
|
||||
|
||||
is TierState.CoCreator -> {
|
||||
Tier(
|
||||
title = stringResource(id = R.string.payments_tier_cocreator),
|
||||
subTitle = stringResource(id = R.string.payments_tier_cocreator_description),
|
||||
price = tier.price,
|
||||
colorGradient = Color(0xFFFBEAEA),
|
||||
radialGradient = Color(0xFFF05F5F),
|
||||
icon = R.drawable.logo_co_creator,
|
||||
buttonText = stringResource(id = R.string.payments_button_learn),
|
||||
onClick = { /*TODO*/ }
|
||||
)
|
||||
}
|
||||
|
||||
is TierState.Custom -> {
|
||||
Tier(
|
||||
title = stringResource(id = R.string.payments_tier_custom),
|
||||
subTitle = stringResource(id = R.string.payments_tier_custom_description),
|
||||
price = tier.price,
|
||||
colorGradient = Color(0xFFFBEAFF),
|
||||
radialGradient = Color(0xFFFE86DE3),
|
||||
icon = R.drawable.logo_custom,
|
||||
buttonText = stringResource(id = R.string.payments_button_learn),
|
||||
onClick = { /*TODO*/ }
|
||||
)
|
||||
}
|
||||
|
||||
is TierState.Explorer -> {
|
||||
Tier(
|
||||
title = stringResource(id = R.string.payments_tier_explorer),
|
||||
subTitle = stringResource(id = R.string.payments_tier_explorer_description),
|
||||
price = tier.price,
|
||||
colorGradient = Color(0xFFCFFAFF),
|
||||
radialGradient = Color(0xFF24BFD4),
|
||||
icon = R.drawable.logo_explorer,
|
||||
buttonText = stringResource(id = R.string.payments_button_learn),
|
||||
onClick = { /*TODO*/ }
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun TierPreview() {
|
||||
Tier(
|
||||
title = "Explorer",
|
||||
subTitle = "Dive into the network and enjoy the thrill of one-on-one collaboration",
|
||||
price = "9.99",
|
||||
buttonText = "Subscribe",
|
||||
onClick = {},
|
||||
icon = R.drawable.logo_co_creator,
|
||||
colorGradient = Color(0xFFCFF6CF),
|
||||
radialGradient = Color(0xFF24BFD4)
|
||||
)
|
||||
}
|
||||
|
||||
val titleTextStyle = TextStyle(
|
||||
fontFamily = fontInterSemibold,
|
||||
fontWeight = FontWeight.W600,
|
||||
fontSize = 17.sp,
|
||||
lineHeight = 24.sp,
|
||||
letterSpacing = (-0.024).em
|
||||
)
|
|
@ -2,6 +2,29 @@ package com.anytypeio.anytype.viewmodel
|
|||
|
||||
sealed class PaymentsState {
|
||||
object Loading : PaymentsState()
|
||||
object Error : PaymentsState()
|
||||
object Success : PaymentsState()
|
||||
data class Success(val tiers: List<TierState>) : PaymentsState()
|
||||
}
|
||||
|
||||
sealed class TierState {
|
||||
abstract val isCurrent: Boolean
|
||||
|
||||
data class Explorer(
|
||||
val price: String,
|
||||
override val isCurrent: Boolean
|
||||
) : TierState()
|
||||
|
||||
data class Builder(
|
||||
val price: String,
|
||||
override val isCurrent: Boolean
|
||||
) : TierState()
|
||||
|
||||
data class CoCreator(
|
||||
val price: String,
|
||||
override val isCurrent: Boolean
|
||||
) : TierState()
|
||||
|
||||
data class Custom(
|
||||
val price: String,
|
||||
override val isCurrent: Boolean
|
||||
) : TierState()
|
||||
}
|
|
@ -13,6 +13,14 @@ class PaymentsViewModel(
|
|||
|
||||
init {
|
||||
Timber.d("PaymentsViewModel created")
|
||||
viewState.value = PaymentsState.Success(
|
||||
listOf(
|
||||
TierState.Explorer("Free", true),
|
||||
TierState.Builder("$9.99/mo", false),
|
||||
TierState.CoCreator("$19.99/mo", false),
|
||||
TierState.Custom("$29.99/mo", false)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
interface PaymentsNavigation {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue