1
0
Fork 0
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:
Konstantin Ivanov 2024-03-06 14:23:39 +01:00 committed by GitHub
parent 818f937259
commit 0082e6daa0
Signed by: github
GPG key ID: B5690EEEBB952194
16 changed files with 1271 additions and 11 deletions

View file

@ -111,7 +111,8 @@ interface MainComponent :
AddToAnytypeDependencies,
ShareSpaceDependencies,
SpaceJoinRequestDependencies,
RequestJoinSpaceDependencies
RequestJoinSpaceDependencies,
PaymentsComponentDependencies
{
fun inject(app: AndroidApplication)

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View file

@ -1330,4 +1330,39 @@
<!--endregion-->
<!--region PAYMENTS -->
<string name="payments_header">Lets 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>

View 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
)

View file

@ -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
)

View 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
)

View file

@ -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()
}

View file

@ -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 {