Pārlūkot izejas kodu

Worked on security fragment, screen and update list of new items category according to sheets provided

Khubaib 4 mēneši atpakaļ
vecāks
revīzija
ad6f1df042

+ 4 - 4
app/src/main/java/com/fastest/pass/dashboard/domain/model/Screen.kt

@@ -3,8 +3,8 @@ package com.fastest.pass.dashboard.domain.model
 import com.fastest.pass.R
 
 sealed class Screen(val route: String, val title: String, val icon: Int) {
-    object Home : Screen("home", "Home", R.drawable.profile_circle)
-    object Browse : Screen("browse", "Browse", R.drawable.profile_circle)
-    object Security : Screen("security", "Security", R.drawable.profile_circle)
-    object Account : Screen("account", "Account", R.drawable.profile_circle)
+    object Home : Screen("home", "Home", R.drawable.home)
+    object Browse : Screen("browse", "Browse", R.drawable.browse)
+    object Security : Screen("security", "Security", R.drawable.security)
+    object Account : Screen("account", "Account", R.drawable.account)
 }

+ 11 - 3
app/src/main/java/com/fastest/pass/dashboard/presentation/ui/component/BottomTab.kt

@@ -1,5 +1,6 @@
 package com.fastest.pass.dashboard.presentation.ui.component
 
+import androidx.compose.foundation.Image
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.fillMaxSize
 import androidx.compose.foundation.layout.padding
@@ -14,7 +15,9 @@ import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.ColorFilter
 import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.colorResource
 import androidx.compose.ui.res.painterResource
 import androidx.compose.ui.viewinterop.AndroidView
 import androidx.fragment.app.FragmentActivity
@@ -71,11 +74,16 @@ fun BottomNavigationBar(selectedTab: Screen, onTabSelected: (Screen) -> Unit) {
     ) {
         items.forEach { screen ->
             BottomNavigationItem(
-                icon = { Icon(painterResource(id = screen.icon), contentDescription = null) },
-                label = { Text(screen.title) },
+                icon = {
+                    Image(
+                    painter = painterResource(id = screen.icon),
+                    contentDescription = null,
+                    colorFilter = ColorFilter.tint(colorResource(id = R.color.gray_text))
+                ) },
+                label = { Text(screen.title, color = colorResource(id = R.color.gray_text)) },
                 selected = selectedTab == screen,
                 onClick = { onTabSelected(screen) },
-                selectedContentColor = Color.Red, // You can customize selected item color
+                selectedContentColor = Color.Gray, // You can customize selected item color
                 unselectedContentColor = Color.Gray
             )
         }

+ 10 - 3
app/src/main/java/com/fastest/pass/home/presentation/ui/components/AddNewItemCard.kt

@@ -20,6 +20,7 @@ import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.draw.clip
 import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.ColorFilter
 import androidx.compose.ui.graphics.RectangleShape
 import androidx.compose.ui.res.colorResource
 import androidx.compose.ui.res.painterResource
@@ -39,7 +40,12 @@ fun AddNewItemCard(item: AddNewItem) {
     ) {
         Box(
             modifier = Modifier
-                .border(border = BorderStroke(1.dp, colorResource(id = R.color.gray_border_textfield)), shape = RoundedCornerShape(25.dp))
+                .border(
+                    border = BorderStroke(
+                        1.dp,
+                        colorResource(id = R.color.home_background_color)
+                    ), shape = RoundedCornerShape(25.dp)
+                )
                 .clip(RoundedCornerShape(25.dp))
                 .background(Color.Transparent)
                 .padding(28.dp)
@@ -47,7 +53,7 @@ fun AddNewItemCard(item: AddNewItem) {
             Image(
                 painter = painterResource(id = item.icon),
                 contentDescription = item.name,
-                modifier = Modifier.size(48.dp)
+                modifier = Modifier.size(48.dp),
             )
         }
         Spacer(modifier = Modifier.height(8.dp))
@@ -55,7 +61,8 @@ fun AddNewItemCard(item: AddNewItem) {
             text = item.name,
             style = MaterialTheme.typography.displaySmall.copy(
                 textAlign = TextAlign.Center
-            )
+            ),
+            color = colorResource(id = R.color.gray_splash)
         )
     }
 }

+ 19 - 15
app/src/main/java/com/fastest/pass/home/presentation/ui/components/AddNewItemsScreen.kt

@@ -17,6 +17,8 @@ import androidx.compose.foundation.layout.statusBarsPadding
 import androidx.compose.foundation.lazy.grid.GridCells
 import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
 import androidx.compose.foundation.lazy.grid.items
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.filled.Home
 import androidx.compose.material3.IconButton
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.material3.Surface
@@ -132,22 +134,24 @@ fun AddNewItemList() {
                 AddNewItem("Passwords", R.drawable.password_lock),
                 AddNewItem("Bank Account", R.drawable.bank),
                 AddNewItem("Payment Card", R.drawable.cards),
-                AddNewItem("Email Account", R.drawable.email_account),
-                AddNewItem("Secure Note", R.drawable.secure_note),
-                AddNewItem("Driver's License", R.drawable.driver_license),
-                AddNewItem("Passport", R.drawable.passport),
-                AddNewItem("Social Security Number", R.drawable.social_security_num),
-                AddNewItem("Address", R.drawable.address),
-                AddNewItem("Database", R.drawable.database),
-                AddNewItem("Server", R.drawable.server),
-                AddNewItem("Software License", R.drawable.software_license),
                 AddNewItem("Wi-Fi Password", R.drawable.wifi),
-                AddNewItem("Membership", R.drawable.membership),
-                AddNewItem("Health Insurance", R.drawable.health_insurance),
-                AddNewItem("Insurance Policy", R.drawable.insurance_policy),
-                AddNewItem("Instant Messenger", R.drawable.messenger),
-                AddNewItem("SSH Key", R.drawable.ssh_key),
-                AddNewItem("Folders", R.drawable.folders),
+                AddNewItem("Secure Note", R.drawable.secure_note),
+                AddNewItem("Contact Info", R.drawable.contact_info)
+
+//                AddNewItem("Email Account", R.drawable.email_account),
+//                AddNewItem("Driver's License", R.drawable.driver_license),
+//                AddNewItem("Passport", R.drawable.passport),
+//                AddNewItem("Social Security Number", R.drawable.social_security_num),
+//                AddNewItem("Address", R.drawable.address),
+//                AddNewItem("Database", R.drawable.database),
+//                AddNewItem("Server", R.drawable.server),
+//                AddNewItem("Software License", R.drawable.software_license),
+//                AddNewItem("Membership", R.drawable.membership),
+//                AddNewItem("Health Insurance", R.drawable.health_insurance),
+//                AddNewItem("Insurance Policy", R.drawable.insurance_policy),
+//                AddNewItem("Instant Messenger", R.drawable.messenger),
+//                AddNewItem("SSH Key", R.drawable.ssh_key),
+//                AddNewItem("Folders", R.drawable.folders),
             )
         )
     }

+ 277 - 0
app/src/main/java/com/fastest/pass/security/presentation/ui/components/SecurityScreen.kt

@@ -0,0 +1,277 @@
+package com.fastest.pass.security.presentation.ui.components
+
+import androidx.compose.foundation.BorderStroke
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.background
+import androidx.compose.foundation.border
+import androidx.compose.foundation.gestures.detectTapGestures
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.ColumnScope
+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.width
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material3.DockedSearchBar
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Icon
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.SearchBarDefaults
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
+import androidx.compose.material3.TextFieldDefaults
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
+import androidx.compose.ui.draw.paint
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.ColorFilter
+import androidx.compose.ui.input.pointer.pointerInput
+import androidx.compose.ui.layout.ContentScale
+import androidx.compose.ui.platform.LocalSoftwareKeyboardController
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.fastest.pass.R
+import com.fastest.pass.home.presentation.ui.components.GapLine
+import com.fastest.pass.home.presentation.ui.components.SearchBarRow
+
+@Composable
+fun SecurityScreen() {
+    Box(
+        modifier = Modifier
+            .fillMaxSize(),
+        contentAlignment = Alignment.TopCenter
+    ) {
+        Column(
+            modifier = Modifier,
+        ) {
+            Row(
+                modifier = Modifier
+                    .fillMaxWidth()
+                    .height(75.dp)
+                    .background(colorResource(id = R.color.gray_splash))
+            ) { }
+
+            Spacer(modifier = Modifier.height(20.dp))
+            SearchBarRowSS()
+            Spacer(modifier = Modifier.height(20.dp))
+            GapLine()
+            Column(
+                modifier = Modifier
+                    .padding(horizontal = 30.dp)
+                    .padding(top = 20.dp)
+                    .fillMaxSize()
+            ) {
+                PremiumBox()
+                Spacer(modifier = Modifier.height(25.dp))
+                AddFeaturesRow(R.drawable.generate_password, R.string.generate_password, R.string.generate_robust)
+                Spacer(modifier = Modifier.height(10.dp))
+                AddFeaturesRow(R.drawable.sharing_center, R.string.sharing_center, R.string.keep_track_online)
+            }
+        }
+    }
+}
+
+@OptIn(ExperimentalMaterial3Api::class)
+@Composable
+fun SearchBarRowSS() {
+    var searchText by remember { mutableStateOf("") }
+    val isActive by remember { mutableStateOf(false) }
+    val keyboardController = LocalSoftwareKeyboardController.current
+
+    Row(
+        modifier = Modifier
+            .fillMaxWidth()
+    ) {
+        DockedSearchBar(
+            query = searchText,
+            onQueryChange = {
+                searchText = it
+            },
+            onSearch = {
+                keyboardController?.hide()
+            },
+            active = isActive,
+            onActiveChange = {},
+            placeholder = {
+                Text(
+                    text = stringResource(R.string.search),
+                    style = MaterialTheme.typography.displayMedium,
+                    color = colorResource(id = R.color.gray_splash)
+                )
+            },
+            leadingIcon = {
+                Icon(
+                    painter = painterResource(id = R.drawable.searchicon),
+                    contentDescription = "Search Icon",
+                    tint = colorResource(id = R.color.gray_splash),
+                    modifier = Modifier
+                        .size(21.dp)
+                )
+            },
+            colors = SearchBarDefaults.colors(
+                containerColor = colorResource(id = R.color.white),
+                dividerColor = Color.Transparent,
+                inputFieldColors = TextFieldDefaults.colors(
+                    focusedTextColor = colorResource(id = R.color.gray_splash),
+                    unfocusedTextColor = colorResource(id = R.color.gray_splash),
+                    unfocusedIndicatorColor = colorResource(id = R.color.gray_splash),
+                    focusedIndicatorColor = colorResource(id = R.color.gray_splash),
+                    disabledIndicatorColor = colorResource(id = R.color.gray_splash),
+                    cursorColor = colorResource(id = R.color.gray_splash),
+                )
+            ),
+            modifier = Modifier
+                .padding(start = 30.dp)
+                .height(50.dp)
+                .weight(1F)
+        ) {}
+
+        Spacer(Modifier.width(10.dp))
+
+        Image(
+            painter = painterResource(id = R.drawable.notification_bell),
+            contentDescription = null,
+            colorFilter = ColorFilter.tint(
+                colorResource(id = R.color.gray_splash)
+            ),
+            modifier = Modifier
+                .padding(end = 30.dp)
+                .height(30.dp)
+                .align(Alignment.CenterVertically)
+        )
+    }
+}
+
+@Composable
+fun ColumnScope.PremiumBox() {
+    Column(
+        modifier = Modifier
+            .border(
+                border = BorderStroke(1.dp, colorResource(id = R.color.sky_green)),
+                shape = RoundedCornerShape(15.dp)
+            )
+            .clip(RoundedCornerShape(15.dp))
+            .background(Color.Transparent)
+            .paint(
+                painter = painterResource(id = R.drawable.gradient_green_premium),
+                contentScale = ContentScale.FillBounds
+            )
+            .padding(vertical = 15.dp)
+            .fillMaxWidth(),
+        verticalArrangement = Arrangement.Top,
+        horizontalAlignment = Alignment.CenterHorizontally
+    ) {
+        Image(
+            painter = painterResource(id = R.drawable.crown),
+            contentDescription = "Crown",
+            modifier = Modifier
+                .padding(top = 0.dp)
+                .size(50.dp)
+        )
+        Text(
+            text = stringResource(id = R.string.upgrade_to_premium),
+            color = colorResource(id = R.color.white),
+            style = MaterialTheme.typography.headlineLarge,
+            lineHeight = 25.sp,
+            modifier = Modifier
+                .padding(top = 5.dp)
+        )
+        Text(
+            text = stringResource(id = R.string.unlock_all_features),
+            color = colorResource(id = R.color.white),
+            style = MaterialTheme.typography.displaySmall,
+            lineHeight = 25.sp,
+            modifier = Modifier
+                .padding(top = 5.dp)
+        )
+    }
+}
+
+@Composable
+fun ColumnScope.AddFeaturesRow(icon: Int, title: Int, desc: Int) {
+    Row(
+        modifier = Modifier
+            .border(
+                border = BorderStroke(1.dp, colorResource(id = R.color.white)),
+                shape = RoundedCornerShape(15.dp)
+            )
+            .clip(RoundedCornerShape(15.dp))
+            .background(colorResource(id = R.color.white))
+            .padding(vertical = 15.dp)
+            .fillMaxWidth(),
+        horizontalArrangement = Arrangement.Start,
+        verticalAlignment = Alignment.CenterVertically
+    ) {
+        Surface(
+            modifier = Modifier.padding(start = 10.dp),
+            color = Color.Transparent
+        ) {
+            Image(
+                painter = painterResource(id = icon),
+                contentDescription = "Icon",
+                modifier = Modifier
+                    .padding(start = 0.dp)
+                    .size(34.dp)
+                    .weight(1f),
+                colorFilter = ColorFilter.tint(colorResource(id = R.color.gray_splash)),
+            )
+        }
+
+        Surface(
+            modifier = Modifier.padding(start = 15.dp, end = 5.dp),
+            color = Color.Transparent
+        ) {
+            Column {
+                Text(
+                    text = stringResource(id = title),
+                    style = MaterialTheme.typography.displayMedium,
+                    color = colorResource(id = R.color.gray_splash),
+                    maxLines = 1,
+                    modifier = Modifier
+//                        .weight(1F)
+                )
+                Spacer(modifier = Modifier.height(1.dp))
+                Text(
+                    text = stringResource(id = desc),
+                    style = MaterialTheme.typography.displaySmall,
+                    color = colorResource(id = R.color.gray_text),
+                    modifier = Modifier
+//                        .weight(1F)
+                )
+            }
+        }
+
+        Spacer(modifier = Modifier.weight(1f))
+
+        Surface(
+            modifier = Modifier
+                .padding(end = 15.dp)
+                .align(Alignment.CenterVertically),
+            color = Color.Transparent
+        ) {
+            Image(
+                painter = painterResource(id = R.drawable.crown_premium),
+                contentDescription = "Front_Arrow",
+                modifier = Modifier
+                    .padding(start = 0.dp, end = 0.dp)
+                    .size(24.dp)
+                    .weight(1f),
+            )
+        }
+    }
+}

+ 24 - 1
app/src/main/java/com/fastest/pass/security/presentation/ui/fragment/SecurityFragment.kt

@@ -4,10 +4,22 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material.Scaffold
 import androidx.compose.material.Text
+import androidx.compose.ui.Modifier
 import androidx.compose.ui.platform.ComposeView
+import androidx.compose.ui.res.colorResource
 import androidx.fragment.app.viewModels
 import com.fastest.pass.BaseFragment
+import com.fastest.pass.R
+import com.fastest.pass.home.presentation.ui.components.ClickType
+import com.fastest.pass.home.presentation.ui.components.HomeScreen
+import com.fastest.pass.home.utils.HomeRoute
+import com.fastest.pass.security.presentation.ui.components.SecurityScreen
 import com.fastest.pass.ui.theme.FastestPassTheme
 import dagger.hilt.android.AndroidEntryPoint
 import javax.inject.Inject
@@ -27,7 +39,18 @@ class SecurityFragment : BaseFragment() {
         return ComposeView(requireActivity()).apply {
             setContent {
                 FastestPassTheme {
-                    Text("Security Fragment")
+                    Scaffold(
+                        modifier = Modifier.fillMaxSize()
+                    ) { paddingValues ->
+                        Box(
+                            modifier = Modifier
+                                .fillMaxSize()
+                                .background(colorResource(id = R.color.home_background_color))
+                                .padding(paddingValues.calculateBottomPadding())
+                        ) {
+                            SecurityScreen()
+                        }
+                    }
                 }
             }
         }

+ 24 - 0
app/src/main/res/drawable/account.xml

@@ -0,0 +1,24 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M12,12.005C14.761,12.005 17,9.766 17,7.005C17,4.243 14.761,2.005 12,2.005C9.239,2.005 7,4.243 7,7.005C7,9.766 9.239,12.005 12,12.005Z"
+      android:strokeAlpha="0.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:fillAlpha="0.5"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M20.59,22.005C20.59,18.135 16.74,15.005 12,15.005C7.26,15.005 3.41,18.135 3.41,22.005"
+      android:strokeAlpha="0.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:fillAlpha="0.5"
+      android:strokeLineCap="round"/>
+</vector>

+ 42 - 0
app/src/main/res/drawable/browse.xml

@@ -0,0 +1,42 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M5.005,10.005H7.005C9.005,10.005 10.005,9.005 10.005,7.005V5.005C10.005,3.005 9.005,2.005 7.005,2.005H5.005C3.005,2.005 2.005,3.005 2.005,5.005V7.005C2.005,9.005 3.005,10.005 5.005,10.005Z"
+      android:strokeAlpha="0.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:fillAlpha="0.5"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M17.005,10.005H19.005C21.005,10.005 22.005,9.005 22.005,7.005V5.005C22.005,3.005 21.005,2.005 19.005,2.005H17.005C15.005,2.005 14.005,3.005 14.005,5.005V7.005C14.005,9.005 15.005,10.005 17.005,10.005Z"
+      android:strokeAlpha="0.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:fillAlpha="0.5"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M17.005,22.005H19.005C21.005,22.005 22.005,21.005 22.005,19.005V17.005C22.005,15.005 21.005,14.005 19.005,14.005H17.005C15.005,14.005 14.005,15.005 14.005,17.005V19.005C14.005,21.005 15.005,22.005 17.005,22.005Z"
+      android:strokeAlpha="0.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:fillAlpha="0.5"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M5.005,22.005H7.005C9.005,22.005 10.005,21.005 10.005,19.005V17.005C10.005,15.005 9.005,14.005 7.005,14.005H5.005C3.005,14.005 2.005,15.005 2.005,17.005V19.005C2.005,21.005 3.005,22.005 5.005,22.005Z"
+      android:strokeAlpha="0.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:fillAlpha="0.5"
+      android:strokeLineCap="round"/>
+</vector>

+ 24 - 0
app/src/main/res/drawable/contact_info.xml

@@ -0,0 +1,24 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="48dp"
+    android:height="48dp"
+    android:viewportWidth="48"
+    android:viewportHeight="48">
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M40,22H8v20c0,1.657 1.343,3 3,3h25c2.209,0 4,-1.791 4,-4V22z"/>
+  <path
+      android:pathData="M35,42H11c-1.105,0 -2,-0.895 -2,-2V6h30v32C39,40.209 37.209,42 35,42z"
+      android:fillColor="#fff"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M35,43H11c-1.654,0 -3,-1.346 -3,-3V6c0,-0.552 0.447,-1 1,-1h30c0.553,0 1,0.448 1,1v32C40,40.757 37.757,43 35,43zM10,7v33c0,0.551 0.448,1 1,1h24c1.654,0 3,-1.346 3,-3V7H10z"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M14,6h2v36h-2z"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M26.5,19.5m-3.5,0a3.5,3.5 0,1 1,7 0a3.5,3.5 0,1 1,-7 0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M29,26h-5l-5,3v1c0,0.552 0.448,1 1,1h13c0.552,0 1,-0.448 1,-1v-1L29,26z"/>
+</vector>

+ 27 - 0
app/src/main/res/drawable/crown.xml

@@ -0,0 +1,27 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="51dp"
+    android:height="50dp"
+    android:viewportWidth="51"
+    android:viewportHeight="50">
+  <path
+      android:pathData="M35.292,39.542H15.708C14.833,39.542 13.854,38.854 13.563,38.021L4.938,13.896C3.708,10.437 5.146,9.375 8.104,11.5L16.229,17.312C17.583,18.25 19.125,17.771 19.708,16.25L23.375,6.479C24.542,3.354 26.479,3.354 27.646,6.479L31.313,16.25C31.896,17.771 33.438,18.25 34.771,17.312L42.396,11.875C45.646,9.542 47.208,10.729 45.875,14.5L37.458,38.062C37.146,38.854 36.167,39.542 35.292,39.542Z"
+      android:strokeLineJoin="round"
+      android:strokeWidth="3"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M14.042,45.833H36.958"
+      android:strokeLineJoin="round"
+      android:strokeWidth="3"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M20.292,29.167H30.708"
+      android:strokeLineJoin="round"
+      android:strokeWidth="3"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:strokeLineCap="round"/>
+</vector>

+ 27 - 0
app/src/main/res/drawable/crown_premium.xml

@@ -0,0 +1,27 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="16dp"
+    android:height="15dp"
+    android:viewportWidth="16"
+    android:viewportHeight="15">
+  <path
+      android:strokeWidth="1"
+      android:pathData="M10.781,11.863H4.906C4.644,11.863 4.35,11.656 4.263,11.406L1.675,4.169C1.306,3.131 1.738,2.813 2.625,3.45L5.063,5.194C5.469,5.475 5.931,5.331 6.107,4.875L7.207,1.944C7.556,1.006 8.138,1.006 8.488,1.944L9.588,4.875C9.763,5.331 10.225,5.475 10.625,5.194L12.913,3.563C13.888,2.863 14.356,3.219 13.957,4.35L11.432,11.419C11.338,11.656 11.044,11.863 10.781,11.863Z"
+      android:strokeLineJoin="round"
+      android:fillColor="#00000000"
+      android:strokeColor="#00818A"
+      android:strokeLineCap="round"/>
+  <path
+      android:strokeWidth="1"
+      android:pathData="M4.406,13.75H11.281"
+      android:strokeLineJoin="round"
+      android:fillColor="#00000000"
+      android:strokeColor="#00818A"
+      android:strokeLineCap="round"/>
+  <path
+      android:strokeWidth="1"
+      android:pathData="M6.281,8.75H9.406"
+      android:strokeLineJoin="round"
+      android:fillColor="#00000000"
+      android:strokeColor="#00818A"
+      android:strokeLineCap="round"/>
+</vector>

+ 27 - 0
app/src/main/res/drawable/data_breach.xml

@@ -0,0 +1,27 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="25dp"
+    android:height="25dp"
+    android:viewportWidth="25"
+    android:viewportHeight="25">
+  <path
+      android:pathData="M8.184,20.52L9.774,21.71C11.184,22.77 13.504,22.77 14.914,21.71L19.214,18.5C20.164,17.79 20.944,16.24 20.944,15.06V7.62"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M19.324,4.84C19.174,4.75 19.014,4.67 18.854,4.6L13.864,2.73C13.034,2.42 11.674,2.42 10.844,2.73L5.844,4.61C4.694,5.04 3.754,6.4 3.754,7.62V15.05C3.754,16.23 4.534,17.78 5.484,18.49L5.684,18.64"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M22.344,2.5L2.344,22.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+</vector>

+ 41 - 0
app/src/main/res/drawable/emergency_access.xml

@@ -0,0 +1,41 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="25dp"
+    android:height="25dp"
+    android:viewportWidth="25"
+    android:viewportHeight="25">
+  <path
+      android:pathData="M2.344,22.5H22.344"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M12.344,6.5C7.374,6.5 3.344,10.53 3.344,15.5V22.5H21.344V15.5C21.344,10.53 17.314,6.5 12.344,6.5Z"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M12.344,2.5V3.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M4.344,4.5L5.344,5.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M20.344,4.5L19.344,5.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+</vector>

+ 41 - 0
app/src/main/res/drawable/generate_password.xml

@@ -0,0 +1,41 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="25dp"
+    android:height="25dp"
+    android:viewportWidth="25"
+    android:viewportHeight="25">
+  <path
+      android:pathData="M11.364,20H7.844C7.224,20 6.674,19.98 6.184,19.91C3.554,19.62 2.844,18.38 2.844,15V10C2.844,6.62 3.554,5.38 6.184,5.09C6.674,5.02 7.224,5 7.844,5H11.304"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M15.364,5H16.844C17.464,5 18.014,5.02 18.504,5.09C21.134,5.38 21.844,6.62 21.844,10V15C21.844,18.38 21.134,19.62 18.504,19.91C18.014,19.98 17.464,20 16.844,20H15.364"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M15.344,2.5V22.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M11.439,12.5H11.448"
+      android:strokeLineJoin="round"
+      android:strokeWidth="2"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M7.438,12.5H7.447"
+      android:strokeLineJoin="round"
+      android:strokeWidth="2"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+</vector>

+ 21 - 0
app/src/main/res/drawable/gradient_green_premium.xml

@@ -0,0 +1,21 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:aapt="http://schemas.android.com/aapt"
+    android:width="100dp"
+    android:height="100dp"
+    android:viewportWidth="375"
+    android:viewportHeight="812">
+    <path
+        android:pathData="M0,0h375v812H0z">
+        <aapt:attr name="android:fillColor">
+            <gradient
+                android:startY="0"
+                android:startX="375"
+                android:endY="812"
+                android:endX="0"
+                android:type="linear">
+                <item android:offset="0" android:color="#00818A"/>
+                <item android:offset="1" android:color="#1EAE98"/>
+            </gradient>
+        </aapt:attr>
+    </path>
+</vector>

+ 42 - 0
app/src/main/res/drawable/home.xml

@@ -0,0 +1,42 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M9.027,2.845L3.637,7.045C2.737,7.745 2.007,9.235 2.007,10.365V17.775C2.007,20.095 3.897,21.995 6.217,21.995H17.797C20.117,21.995 22.007,20.095 22.007,17.785V10.505C22.007,9.295 21.197,7.745 20.207,7.055L14.027,2.725C12.627,1.745 10.377,1.795 9.027,2.845Z"
+      android:strokeAlpha="0.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:fillAlpha="0.5"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M10.507,18.005H13.507C15.157,18.005 16.507,16.655 16.507,15.005V12.005C16.507,10.355 15.157,9.005 13.507,9.005H10.507C8.857,9.005 7.507,10.355 7.507,12.005V15.005C7.507,16.655 8.857,18.005 10.507,18.005Z"
+      android:strokeAlpha="0.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:fillAlpha="0.5"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M12.007,9.005V18.005"
+      android:strokeAlpha="0.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:fillAlpha="0.5"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M7.507,13.505H16.507"
+      android:strokeAlpha="0.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:fillAlpha="0.5"
+      android:strokeLineCap="round"/>
+</vector>

+ 27 - 0
app/src/main/res/drawable/password_health.xml

@@ -0,0 +1,27 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="25dp"
+    android:height="25dp"
+    android:viewportWidth="25"
+    android:viewportHeight="25">
+  <path
+      android:pathData="M21.834,12.5C22.154,11.48 22.344,10.38 22.344,9.19C22.344,6.1 19.854,3.6 16.784,3.6C14.964,3.6 13.354,4.48 12.344,5.84C11.334,4.48 9.714,3.6 7.904,3.6C4.834,3.6 2.344,6.1 2.344,9.19C2.344,16.19 8.824,20.32 11.724,21.32C11.894,21.38 12.114,21.41 12.344,21.41"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M18.084,21.5C19.851,21.5 21.284,20.067 21.284,18.3C21.284,16.533 19.851,15.1 18.084,15.1C16.317,15.1 14.884,16.533 14.884,18.3C14.884,20.067 16.317,21.5 18.084,21.5Z"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M21.884,22.1L20.884,21.1"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"
+      android:strokeLineCap="round"/>
+</vector>

+ 33 - 0
app/src/main/res/drawable/security.xml

@@ -0,0 +1,33 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20.912,11.125C20.912,16.015 17.362,20.595 12.512,21.935C12.182,22.025 11.822,22.025 11.492,21.935C6.642,20.595 3.092,16.015 3.092,11.125V6.735C3.092,5.915 3.712,4.985 4.482,4.675L10.052,2.395C11.302,1.885 12.712,1.885 13.962,2.395L19.532,4.675C20.292,4.985 20.922,5.915 20.922,6.735L20.912,11.125Z"
+      android:strokeAlpha="0.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:fillAlpha="0.5"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M12.002,12.505C13.107,12.505 14.002,11.609 14.002,10.505C14.002,9.4 13.107,8.505 12.002,8.505C10.898,8.505 10.002,9.4 10.002,10.505C10.002,11.609 10.898,12.505 12.002,12.505Z"
+      android:strokeAlpha="0.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:fillAlpha="0.5"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M12.002,12.505V15.505"
+      android:strokeAlpha="0.5"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#ffffff"
+      android:fillAlpha="0.5"
+      android:strokeLineCap="round"/>
+</vector>

+ 11 - 0
app/src/main/res/drawable/sharing_center.xml

@@ -0,0 +1,11 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="25dp"
+    android:height="25dp"
+    android:viewportWidth="25"
+    android:viewportHeight="25">
+  <path
+      android:pathData="M22.344,11.5V17.5C22.344,21.5 21.344,22.5 17.344,22.5H7.344C3.344,22.5 2.344,21.5 2.344,17.5V7.5C2.344,3.5 3.344,2.5 7.344,2.5H8.844C10.344,2.5 10.674,2.94 11.244,3.7L12.744,5.7C13.124,6.2 13.344,6.5 14.344,6.5H17.344C21.344,6.5 22.344,7.5 22.344,11.5Z"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#404B69"/>
+</vector>

+ 1 - 0
app/src/main/res/values/colors.xml

@@ -8,6 +8,7 @@
     <color name="black">#FF000000</color>
     <color name="white">#FFFFFFFF</color>
     <color name="gray_splash">#404B69</color>
+    <color name="gray_text">#979797</color>
     <color name="blue_login">#283149</color>
     <color name="light_gray_login">#DBEDF3</color>
     <color name="transparent">#00000000</color>

+ 14 - 0
app/src/main/res/values/strings.xml

@@ -39,5 +39,19 @@
     <string name="add_items_onebyone">Add items one-by-one</string>
     <string name="import_passwords">Import passwords</string>
     <string name="add_new_items">Add New Items</string>
+    <string name="upgrade_to_premium">Upgrade to premium</string>
+    <string name="unlock_all_features">Unlock all FastestPass features</string>
+    <string name="generate_password">Generate password</string>
+    <string name="generate_robust">Generate robust, distinctive passwords</string>
+    <string name="password_health">Password health</string>
+    <string name="identify_passwords">Identify passwords that pose security risks</string>
+    <string name="data_breach">Data breach scanner</string>
+    <string name="check_data_breach">Check for data breaches</string>
+    <string name="emergency_Access">Emergency access</string>
+    <string name="sense_of_Security">Sense of security during unexpected situations</string>
+    <string name="sharing_center">Sharing center</string>
+    <string name="organize_folders">Organize your folders that are shared</string>
+    <string name="security_dashboard">Security dashboard</string>
+    <string name="keep_track_online">Keep track of your online security</string>
 
 </resources>