mirror of
https://github.com/bitwarden/android.git
synced 2026-11-10 01:15:13 -06:00
chore: Remove unused drawables, strings, and references (#7599)
This commit is contained in:
@@ -189,7 +189,7 @@ Would using the existing component maintain consistency?
|
||||
**app/auth/LoginScreen.kt:123** - Add contentDescription
|
||||
```kotlin
|
||||
Icon(
|
||||
painter = painterResource(R.drawable.ic_visibility),
|
||||
painter = painterResource(R.drawable.ic_eye),
|
||||
contentDescription = "Show password", // Add for accessibility
|
||||
modifier = Modifier.clickable { onToggleVisibility() }
|
||||
)
|
||||
|
||||
-18
@@ -20,24 +20,6 @@ interface NavigationItem {
|
||||
* The route of the tab's root destination, which also identifies the tab's back stack.
|
||||
*/
|
||||
val rootRoute: NavKey
|
||||
// TODO: Remove this default once all modules have been migrated to Navigation3 (PM-45372).
|
||||
get() = error("rootRoute is not supported by legacy Navigation Compose tabs.")
|
||||
|
||||
/**
|
||||
* Legacy route of the tab's Navigation Compose graph.
|
||||
*
|
||||
* TODO: Remove once all modules have been migrated to Navigation3 (PM-45372).
|
||||
*/
|
||||
val graphRoute: Any
|
||||
get() = rootRoute
|
||||
|
||||
/**
|
||||
* Legacy route of the tab's Navigation Compose start destination.
|
||||
*
|
||||
* TODO: Remove once all modules have been migrated to Navigation3 (PM-45372).
|
||||
*/
|
||||
val startDestinationRoute: Any
|
||||
get() = rootRoute
|
||||
|
||||
/**
|
||||
* The test tag of the tab.
|
||||
|
||||
@@ -1,152 +0,0 @@
|
||||
package com.bitwarden.ui.platform.util
|
||||
|
||||
import android.os.Parcel
|
||||
import android.os.Parcelable
|
||||
import android.util.Base64
|
||||
import androidx.core.os.ParcelCompat
|
||||
import com.bitwarden.annotation.OmitFromCoverage
|
||||
import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||
import kotlinx.serialization.descriptors.buildClassSerialDescriptor
|
||||
import kotlinx.serialization.descriptors.element
|
||||
import kotlinx.serialization.encoding.Decoder
|
||||
import kotlinx.serialization.encoding.Encoder
|
||||
import kotlinx.serialization.encoding.decodeStructure
|
||||
import kotlinx.serialization.encoding.encodeStructure
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
/**
|
||||
* A custom [KSerializer] for serializing and deserializing [Parcelable] classes.
|
||||
*
|
||||
* This serializer is compatible with Jetpack Compose type-safe navigation routes. It allows for
|
||||
* complex [Parcelable] types to be easily serialized without needing to specify a `NavType` for
|
||||
* all non-primitive properties and properties nested within those types.
|
||||
*
|
||||
* For example:
|
||||
*
|
||||
* ```
|
||||
* @Parcelize
|
||||
* @Serializable(with = MyCustomRoute.Serializer::class)
|
||||
* data class MyCustomRoute(
|
||||
* val data: Data,
|
||||
* ): Parcelable {
|
||||
* class Serializer : ParcelableSerializer<MyCustomRoute>(MyCustomRoute::class)
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* Where `Data` is a complex type implementing `Parcelable`.
|
||||
*
|
||||
* In addition, this serializer provides support for directly serializing to the parent types of a
|
||||
* sealed class when using `SavedStateHandle.toRoute()` or `NavBackStackEntry.toRoute()`. In order
|
||||
* to achieve this while also ensuring each route is unique, a subclass of this serializer should
|
||||
* be defined for each parent and child type.
|
||||
*
|
||||
* Given the following type:
|
||||
*
|
||||
* ```
|
||||
* @Parcelize
|
||||
* @Serializable(with = ParentRoute.Serializer::class)
|
||||
* sealed class ParentRoute : Parcelable {
|
||||
* class Serializer : ParcelableRouteSerializer<ParentRoute>(ParentRoute::class)
|
||||
*
|
||||
* @Parcelize
|
||||
* @Serializable(with = Child1.Serializer::class)
|
||||
* data class Child1(
|
||||
* val data1: Data1,
|
||||
* ) : ParentRoute() {
|
||||
* class Serializer : ParcelableRouteSerializer<Child1>(Child1::class)
|
||||
* }
|
||||
*
|
||||
* @Parcelize
|
||||
* @Serializable(with = Child2.Serializer::class)
|
||||
* data class Child2(
|
||||
* val data2: Data2,
|
||||
* ) : ParentRoute() {
|
||||
* class Serializer : ParcelableRouteSerializer<Child2>(Child2::class)
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* The route information for a navigation to the `Child1` destination could be derived using both:
|
||||
* ```
|
||||
* savedStateHandle.toRoute<ParentRoute.Child1>()
|
||||
* ```
|
||||
*
|
||||
* As well as:
|
||||
* ```
|
||||
* when (savedStateHandle.toRoute<ParentRoute>()) {
|
||||
* is Child1 -> // ...
|
||||
* is Child2 -> // ...
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* The latter is useful in cases where the same `ViewModel` is used to handle these routes.
|
||||
*/
|
||||
@OmitFromCoverage
|
||||
open class ParcelableRouteSerializer<T : Parcelable>(
|
||||
private val kClass: KClass<T>,
|
||||
) : KSerializer<T> {
|
||||
|
||||
override val descriptor: SerialDescriptor
|
||||
get() = buildClassSerialDescriptor(serialName = requireNotNull(kClass.qualifiedName)) {
|
||||
element<String>(elementName = "encodedData")
|
||||
}
|
||||
|
||||
override fun deserialize(decoder: Decoder): T =
|
||||
decoder.decodeStructure(descriptor) {
|
||||
var encodedString: String? = null
|
||||
while (true) {
|
||||
when (decodeElementIndex(descriptor)) {
|
||||
0 -> encodedString = decodeStringElement(descriptor = descriptor, index = 0)
|
||||
else -> break
|
||||
}
|
||||
}
|
||||
encodedString
|
||||
?.toParcelable()
|
||||
?: throw IllegalStateException("Invalid decoding for ${kClass.qualifiedName}.")
|
||||
}
|
||||
|
||||
override fun serialize(encoder: Encoder, value: T) {
|
||||
val valueAsString = value.toEncodedString()
|
||||
encoder.encodeStructure(descriptor = descriptor) {
|
||||
encodeStringElement(descriptor = descriptor, index = 0, value = valueAsString)
|
||||
}
|
||||
}
|
||||
|
||||
// Helpers for encoding Parcelable data
|
||||
|
||||
private fun Parcelable.toBytes(): ByteArray {
|
||||
val parcel = Parcel.obtain().apply {
|
||||
writeParcelable(this@toBytes, 0)
|
||||
}
|
||||
return parcel
|
||||
.marshall()
|
||||
.also { parcel.recycle() }
|
||||
}
|
||||
|
||||
private fun Parcelable.toEncodedString(): String =
|
||||
Base64.encodeToString(toBytes(), Base64.URL_SAFE)
|
||||
|
||||
private fun <T> ByteArray.toParcelable(): T? {
|
||||
val parcel = Parcel.obtain().apply {
|
||||
unmarshall(this@toParcelable, 0, this@toParcelable.size)
|
||||
setDataPosition(0)
|
||||
}
|
||||
val value = try {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
ParcelCompat.readParcelable(
|
||||
parcel,
|
||||
ParcelableRouteSerializer::class.java.classLoader,
|
||||
kClass.java,
|
||||
) as T?
|
||||
} catch (_: IllegalArgumentException) {
|
||||
null
|
||||
} catch (_: IllegalStateException) {
|
||||
null
|
||||
}
|
||||
parcel.recycle()
|
||||
return value
|
||||
}
|
||||
|
||||
private fun <T> String.toParcelable(): T? = Base64.decode(this, Base64.URL_SAFE).toParcelable()
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package com.bitwarden.ui.platform.util
|
||||
|
||||
import kotlinx.serialization.InternalSerializationApi
|
||||
import kotlinx.serialization.serializer
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
/**
|
||||
* Gets the route string for an object.
|
||||
*/
|
||||
fun <T : Any> T.toObjectNavigationRoute(): String = this::class.toObjectKClassNavigationRoute()
|
||||
|
||||
/**
|
||||
* Gets the route string for a [KClass] of an object.
|
||||
*/
|
||||
@OptIn(InternalSerializationApi::class)
|
||||
fun <T : Any> KClass<T>.toObjectKClassNavigationRoute(): String =
|
||||
this.serializer().descriptor.serialName
|
||||
@@ -1,10 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="20dp"
|
||||
android:height="20dp"
|
||||
android:viewportWidth="20"
|
||||
android:viewportHeight="20">
|
||||
<path
|
||||
android:pathData="M15.616,10.5C15.247,10.888 9.462,16.961 8.962,17.5C8.446,18.057 9.202,19.084 9.975,18.244C10.747,17.405 16.759,11.113 16.759,11.113C17.301,10.447 17.301,9.539 16.759,8.874L10.002,1.77C9.151,0.832 8.201,1.678 8.987,2.5C11.77,5.412 15.124,8.963 15.631,9.5H2.5C2.224,9.5 2,9.724 2,10C2,10.276 2.224,10.5 2.5,10.5H15.616Z"
|
||||
android:fillColor="#45464F"
|
||||
android:fillType="evenOdd"/>
|
||||
</vector>
|
||||
@@ -1,14 +0,0 @@
|
||||
<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="M15.695,13.731C15.695,15.802 14.028,17.482 11.972,17.482C9.917,17.482 8.25,15.802 8.25,13.731C8.25,11.66 9.917,9.981 11.972,9.981C14.028,9.981 15.695,11.66 15.695,13.731ZM14.195,13.731C14.195,14.985 13.189,15.981 11.972,15.981C10.755,15.981 9.75,14.985 9.75,13.731C9.75,12.478 10.755,11.481 11.972,11.481C13.189,11.481 14.195,12.478 14.195,13.731Z"
|
||||
android:fillColor="#175DDC"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M17.089,7.148L16.268,5.217C15.954,4.479 15.229,4 14.427,4H9.573C8.771,4 8.046,4.479 7.732,5.217L6.911,7.148H4C2.895,7.148 2,8.044 2,9.148V19C2,20.105 2.895,21 4,21H20C21.105,21 22,20.105 22,19V9.148C22,8.044 21.105,7.148 20,7.148H17.089ZM7.903,8.648L9.113,5.804C9.191,5.62 9.372,5.5 9.573,5.5H14.427C14.628,5.5 14.809,5.62 14.887,5.804L16.097,8.648H20C20.276,8.648 20.5,8.872 20.5,9.148V19C20.5,19.276 20.276,19.5 20,19.5H4C3.724,19.5 3.5,19.276 3.5,19V9.148C3.5,8.872 3.724,8.648 4,8.648H7.903Z"
|
||||
android:fillColor="#175DDC"
|
||||
android:fillType="evenOdd"/>
|
||||
</vector>
|
||||
@@ -1,10 +0,0 @@
|
||||
<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="M15,3V4H20V6H19V19C19,20.1 18.1,21 17,21H7C5.9,21 5,20.1 5,19V6H4V4H9V3H15ZM7,19H17V6H7V19ZM9,8H11V17H9V8ZM15,8H13V17H15V8Z"
|
||||
android:fillColor="#41484D"
|
||||
android:fillType="evenOdd"/>
|
||||
</vector>
|
||||
@@ -1,10 +0,0 @@
|
||||
<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="M19.06,3.59L20.41,4.94C21.2,5.72 21.2,6.99 20.41,7.77L7.18,21H3V16.82L13.4,6.41L16.23,3.59C17.01,2.81 18.28,2.81 19.06,3.59ZM5,19L6.41,19.06L16.23,9.23L14.82,7.82L5,17.64V19Z"
|
||||
android:fillColor="#000000"
|
||||
android:fillType="evenOdd"/>
|
||||
</vector>
|
||||
@@ -1,15 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="20dp"
|
||||
android:height="20dp"
|
||||
android:viewportHeight="20"
|
||||
android:viewportWidth="20">
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:pathData="M16.25,11.25C15.56,11.25 15,10.69 15,10C15,9.31 15.56,8.75 16.25,8.75C16.94,8.75 17.5,9.31 17.5,10C17.5,10.69 16.94,11.25 16.25,11.25Z" />
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:pathData="M10,11.25C9.31,11.25 8.75,10.69 8.75,10C8.75,9.31 9.31,8.75 10,8.75C10.69,8.75 11.25,9.31 11.25,10C11.25,10.69 10.69,11.25 10,11.25Z" />
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:pathData="M3.75,11.25C3.06,11.25 2.5,10.69 2.5,10C2.5,9.31 3.06,8.75 3.75,8.75C4.44,8.75 5,9.31 5,10C5,10.69 4.44,11.25 3.75,11.25Z" />
|
||||
</vector>
|
||||
@@ -1,9 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="20dp"
|
||||
android:height="20dp"
|
||||
android:viewportHeight="20"
|
||||
android:viewportWidth="20">
|
||||
<path
|
||||
android:fillColor="#1B1B1F"
|
||||
android:pathData="M14.697,10.431C15.082,10.052 15.014,9.888 14.634,9.519C14.634,9.519 7.04,1.619 6.524,1.062C6.008,0.504 6.764,-0.522 7.536,0.317C8.309,1.157 15.759,8.887 15.759,8.887C16.301,9.553 16.301,10.461 15.759,11.126L7.644,19.589C6.792,20.527 5.843,19.68 6.628,18.859C9.647,15.7 14.697,10.431 14.697,10.431Z" />
|
||||
</vector>
|
||||
@@ -1,13 +0,0 @@
|
||||
<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="M16.878,3.105C17.684,2.298 18.992,2.298 19.798,3.105L20.891,4.199C21.697,5.005 21.697,6.312 20.891,7.118L13.949,14.064C13.852,14.16 13.732,14.228 13.6,14.261L9.664,15.246C9.409,15.31 9.138,15.235 8.952,15.049C8.766,14.862 8.691,14.592 8.755,14.337L9.739,10.399C9.772,10.267 9.84,10.146 9.936,10.05L16.878,3.105ZM18.737,4.165C18.517,3.945 18.159,3.945 17.939,4.165L16.853,5.251C16.992,5.28 17.124,5.348 17.232,5.456L18.544,6.768C18.65,6.874 18.718,7.005 18.747,7.142L19.83,6.057C20.051,5.837 20.051,5.48 19.83,5.259L18.737,4.165ZM17.857,8.032C17.72,8.003 17.589,7.935 17.483,7.828L16.171,6.516C16.063,6.408 15.995,6.277 15.967,6.138L11.144,10.964L10.513,13.487L13.035,12.857L17.857,8.032Z"
|
||||
android:fillColor="#175DDC"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M5.879,5.095C4.841,5.095 4,5.937 4,6.974V18.124C4,19.162 4.841,20.003 5.879,20.003H17.02C18.058,20.003 18.899,19.162 18.899,18.124V13.533C18.899,13.119 19.235,12.783 19.649,12.783C20.063,12.783 20.399,13.119 20.399,13.533V18.124C20.399,19.99 18.886,21.503 17.02,21.503H5.879C4.013,21.503 2.5,19.99 2.5,18.124V6.974C2.5,5.108 4.013,3.595 5.879,3.595H10.465C10.88,3.595 11.215,3.931 11.215,4.345C11.215,4.76 10.88,5.095 10.465,5.095H5.879Z"
|
||||
android:fillColor="#175DDC"/>
|
||||
</vector>
|
||||
@@ -1,12 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="16dp"
|
||||
android:height="16dp"
|
||||
android:viewportHeight="16"
|
||||
android:viewportWidth="16">
|
||||
<group>
|
||||
<clip-path android:pathData="M0.5,0.5h15v15h-15z" />
|
||||
<path
|
||||
android:fillColor="#175DDC"
|
||||
android:pathData="M7.995,12.65C7.552,12.649 7.123,12.467 6.789,12.138L0.866,6.361C0.701,6.2 0.585,5.986 0.532,5.747C0.479,5.509 0.492,5.258 0.571,5.029C0.639,4.811 0.764,4.622 0.931,4.487C1.098,4.352 1.297,4.279 1.502,4.277L14.489,4.213C14.694,4.213 14.895,4.284 15.063,4.418C15.23,4.551 15.357,4.739 15.427,4.956C15.506,5.185 15.522,5.436 15.47,5.675C15.418,5.914 15.302,6.129 15.138,6.292L9.208,12.13C8.874,12.464 8.442,12.649 7.995,12.65Z" />
|
||||
</group>
|
||||
</vector>
|
||||
@@ -1,10 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="19dp"
|
||||
android:height="18dp"
|
||||
android:viewportWidth="19"
|
||||
android:viewportHeight="18">
|
||||
<path
|
||||
android:pathData="M15.219,3.458C15.432,3.604 15.486,3.896 15.339,4.109L9.016,13.303C8.707,13.752 8.082,13.844 7.657,13.503L4.253,10.772C4.052,10.61 4.019,10.315 4.181,10.113C4.343,9.911 4.638,9.879 4.84,10.041L8.244,12.772L14.567,3.578C14.714,3.365 15.005,3.311 15.219,3.458Z"
|
||||
android:fillColor="#151B2C"
|
||||
android:fillType="evenOdd"/>
|
||||
</vector>
|
||||
@@ -1,21 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<group>
|
||||
<clip-path
|
||||
android:pathData="M2,2h20v20h-20z"/>
|
||||
<path
|
||||
android:pathData="M12,20.75C16.833,20.75 20.75,16.833 20.75,12C20.75,7.168 16.833,3.25 12,3.25C7.168,3.25 3.25,7.168 3.25,12C3.25,16.833 7.168,20.75 12,20.75ZM12,22C17.523,22 22,17.523 22,12C22,6.477 17.523,2 12,2C6.477,2 2,6.477 2,12C2,17.523 6.477,22 12,22Z"
|
||||
android:fillColor="#1B1B1F"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M9.703,7.714C9.214,8.164 8.875,8.867 8.875,9.891C8.875,10.236 8.595,10.516 8.25,10.516C7.905,10.516 7.625,10.236 7.625,9.891C7.625,8.571 8.073,7.516 8.856,6.794C9.631,6.081 10.673,5.75 11.766,5.75C12.859,5.75 13.9,6.081 14.675,6.794C15.458,7.516 15.906,8.571 15.906,9.891C15.906,10.555 15.576,11.093 15.2,11.517C14.847,11.915 14.392,12.282 13.983,12.611C13.96,12.629 13.938,12.647 13.916,12.665C13.468,13.026 13.077,13.348 12.793,13.686C12.514,14.016 12.391,14.3 12.391,14.578V15.75C12.391,16.095 12.111,16.375 11.766,16.375C11.42,16.375 11.141,16.095 11.141,15.75V14.578C11.141,13.892 11.457,13.331 11.837,12.88C12.212,12.435 12.7,12.04 13.131,11.692C13.141,11.684 13.152,11.676 13.162,11.667C13.602,11.313 13.983,11.005 14.264,10.688C14.547,10.368 14.656,10.116 14.656,9.891C14.656,8.867 14.317,8.164 13.828,7.714C13.33,7.255 12.614,7 11.766,7C10.917,7 10.201,7.255 9.703,7.714Z"
|
||||
android:fillColor="#1B1B1F"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M12.625,18.406C12.625,18.838 12.275,19.188 11.844,19.188C11.412,19.188 11.063,18.838 11.063,18.406C11.063,17.975 11.412,17.625 11.844,17.625C12.275,17.625 12.625,17.975 12.625,18.406Z"
|
||||
android:fillColor="#1B1B1F"/>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -1,20 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="14dp"
|
||||
android:height="14dp"
|
||||
android:viewportHeight="14"
|
||||
android:viewportWidth="14">
|
||||
<group>
|
||||
<clip-path android:pathData="M0.333,0.333h13.333v13.333h-13.333z" />
|
||||
<path
|
||||
android:fillColor="#175DDC"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M7,12.833C10.222,12.833 12.833,10.222 12.833,7C12.833,3.778 10.222,1.167 7,1.167C3.778,1.167 1.167,3.778 1.167,7C1.167,10.222 3.778,12.833 7,12.833ZM7,13.667C10.682,13.667 13.667,10.682 13.667,7C13.667,3.318 10.682,0.333 7,0.333C3.318,0.333 0.333,3.318 0.333,7C0.333,10.682 3.318,13.667 7,13.667Z" />
|
||||
<path
|
||||
android:fillColor="#175DDC"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M5.469,4.142C5.143,4.443 4.917,4.911 4.917,5.594C4.917,5.824 4.73,6.01 4.5,6.01C4.27,6.01 4.083,5.824 4.083,5.594C4.083,4.714 4.382,4.01 4.904,3.529C5.421,3.054 6.115,2.833 6.844,2.833C7.572,2.833 8.267,3.054 8.783,3.529C9.305,4.01 9.604,4.714 9.604,5.594C9.604,6.036 9.384,6.395 9.133,6.678C8.898,6.943 8.594,7.188 8.322,7.407C8.307,7.419 8.292,7.432 8.277,7.444C7.978,7.684 7.718,7.899 7.528,8.124C7.343,8.344 7.26,8.533 7.26,8.719V9.5C7.26,9.73 7.074,9.917 6.844,9.917C6.614,9.917 6.427,9.73 6.427,9.5V8.719C6.427,8.261 6.638,7.887 6.891,7.586C7.141,7.29 7.467,7.026 7.754,6.795C7.761,6.789 7.768,6.784 7.774,6.778C8.068,6.542 8.322,6.337 8.509,6.126C8.698,5.912 8.771,5.744 8.771,5.594C8.771,4.911 8.545,4.443 8.219,4.142C7.887,3.837 7.409,3.667 6.844,3.667C6.278,3.667 5.8,3.837 5.469,4.142Z" />
|
||||
<path
|
||||
android:fillColor="#175DDC"
|
||||
android:pathData="M7.417,11.271C7.417,11.559 7.183,11.792 6.896,11.792C6.608,11.792 6.375,11.559 6.375,11.271C6.375,10.983 6.608,10.75 6.896,10.75C7.183,10.75 7.417,10.983 7.417,11.271Z" />
|
||||
</group>
|
||||
</vector>
|
||||
@@ -1,14 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportHeight="24"
|
||||
android:viewportWidth="24">
|
||||
<path
|
||||
android:fillColor="#45464F"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M12,7.625C8.12,7.625 5.607,10.043 4.289,11.671C4.133,11.864 4.133,12.136 4.289,12.329C5.607,13.957 8.12,16.375 12,16.375C15.88,16.375 18.392,13.957 19.711,12.329C19.867,12.136 19.867,11.864 19.711,11.671C18.392,10.043 15.88,7.625 12,7.625ZM3.318,10.884C4.718,9.155 7.551,6.375 12,6.375C16.449,6.375 19.282,9.155 20.682,10.884C21.21,11.536 21.21,12.464 20.682,13.116C19.282,14.845 16.449,17.625 12,17.625C7.551,17.625 4.718,14.845 3.318,13.116C2.79,12.464 2.79,11.536 3.318,10.884Z" />
|
||||
<path
|
||||
android:fillColor="#45464F"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M12,10.125C10.964,10.125 10.125,10.965 10.125,12C10.125,13.035 10.964,13.875 12,13.875C13.035,13.875 13.875,13.035 13.875,12C13.875,10.965 13.035,10.125 12,10.125ZM8.875,12C8.875,10.274 10.274,8.875 12,8.875C13.726,8.875 15.125,10.274 15.125,12C15.125,13.726 13.726,15.125 12,15.125C10.274,15.125 8.875,13.726 8.875,12Z" />
|
||||
</vector>
|
||||
@@ -1,10 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="20dp"
|
||||
android:height="20dp"
|
||||
android:viewportHeight="20"
|
||||
android:viewportWidth="20">
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M2.058,17.424C1.814,17.668 1.814,18.064 2.058,18.308C2.302,18.552 2.698,18.552 2.942,18.308L6.315,14.935C7.391,15.357 8.618,15.625 10,15.625C14.449,15.625 17.282,12.845 18.682,11.116C19.21,10.464 19.21,9.536 18.682,8.884C17.961,7.994 16.859,6.823 15.351,5.898L18.308,2.942C18.552,2.698 18.552,2.302 18.308,2.058C18.064,1.814 17.668,1.814 17.424,2.058L14.199,5.283C13.004,4.738 11.608,4.375 10,4.375C5.551,4.375 2.718,7.155 1.318,8.884C0.79,9.536 0.79,10.464 1.318,11.116C2.111,12.095 3.365,13.413 5.112,14.37L2.058,17.424ZM7.294,13.956C8.109,14.217 9.01,14.375 10,14.375C13.88,14.375 16.392,11.957 17.711,10.329C17.867,10.136 17.867,9.864 17.711,9.671C16.988,8.779 15.907,7.65 14.439,6.811L12.745,8.505C12.987,8.949 13.125,9.458 13.125,10C13.125,11.726 11.726,13.125 10,13.125C9.458,13.125 8.949,12.987 8.505,12.745L7.294,13.956ZM7.546,11.936L6.038,13.444C4.325,12.591 3.088,11.315 2.289,10.329C2.133,10.136 2.133,9.864 2.289,9.671C3.607,8.043 6.12,5.625 10,5.625C11.214,5.625 12.294,5.862 13.245,6.237L11.936,7.547C11.403,7.126 10.731,6.875 10,6.875C8.274,6.875 6.875,8.274 6.875,10C6.875,10.731 7.126,11.403 7.546,11.936ZM9.455,11.795C9.628,11.847 9.811,11.875 10,11.875C11.035,11.875 11.875,11.035 11.875,10C11.875,9.811 11.847,9.628 11.795,9.455L9.455,11.795ZM11.042,8.441L8.441,11.042C8.241,10.744 8.125,10.385 8.125,10C8.125,8.964 8.964,8.125 10,8.125C10.385,8.125 10.744,8.241 11.042,8.441Z" />
|
||||
</vector>
|
||||
@@ -1,93 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="200dp"
|
||||
android:height="201dp"
|
||||
android:viewportHeight="201"
|
||||
android:viewportWidth="200">
|
||||
<path
|
||||
android:name="fillPrimary"
|
||||
android:fillColor="#EEF6FF"
|
||||
android:pathData="M20.83,167.33H50L45.83,188.17H25L20.83,167.33Z" />
|
||||
<path
|
||||
android:name="stroke"
|
||||
android:fillColor="#1A41AC"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M20.83,167.33L25,188.17H45.83L50,167.33H20.83ZM25.92,171.5L28.42,184H42.42L44.92,171.5H25.92Z" />
|
||||
<path
|
||||
android:name="fillPrimary"
|
||||
android:fillColor="#EEF6FF"
|
||||
android:pathData="M150,167.33H179.17L175,188.17H154.17L150,167.33Z" />
|
||||
<path
|
||||
android:name="stroke"
|
||||
android:fillColor="#1A41AC"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M150,167.33L154.17,188.17H175L179.17,167.33H150ZM155.08,171.5L157.58,184H171.58L174.08,171.5H155.08Z" />
|
||||
<path
|
||||
android:name="fillSecondary"
|
||||
android:fillColor="#AAC3EF"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M26.04,171.5L27.08,177.75H43.75L44.79,171.5H26.04Z" />
|
||||
<path
|
||||
android:name="fillSecondary"
|
||||
android:fillColor="#AAC3EF"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M155.21,171.5L156.25,177.75H172.92L173.96,171.5H155.21Z" />
|
||||
<path
|
||||
android:name="fillPrimary"
|
||||
android:fillColor="#EEF6FF"
|
||||
android:pathData="M0,38.17C0,28.96 7.46,21.5 16.67,21.5H183.33C192.54,21.5 200,28.96 200,38.17V154.83C200,164.04 192.54,171.5 183.33,171.5H16.67C7.46,171.5 0,164.04 0,154.83V38.17Z" />
|
||||
<path
|
||||
android:name="stroke"
|
||||
android:fillColor="#1A41AC"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M183.33,25.67H16.67C9.76,25.67 4.17,31.26 4.17,38.17V154.83C4.17,161.74 9.76,167.33 16.67,167.33H183.33C190.24,167.33 195.83,161.74 195.83,154.83V38.17C195.83,31.26 190.24,25.67 183.33,25.67ZM16.67,21.5C7.46,21.5 0,28.96 0,38.17V154.83C0,164.04 7.46,171.5 16.67,171.5H183.33C192.54,171.5 200,164.04 200,154.83V38.17C200,28.96 192.54,21.5 183.33,21.5H16.67Z" />
|
||||
<path
|
||||
android:name="fillTertiary"
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M16.67,46.5C16.67,41.9 20.4,38.17 25,38.17H175C179.6,38.17 183.33,41.9 183.33,46.5V146.5C183.33,151.1 179.6,154.83 175,154.83H25C20.4,154.83 16.67,151.1 16.67,146.5V46.5Z" />
|
||||
<path
|
||||
android:name="stroke"
|
||||
android:fillColor="#1A41AC"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M175,42.33H25C22.7,42.33 20.83,44.2 20.83,46.5V146.5C20.83,148.8 22.7,150.67 25,150.67H175C177.3,150.67 179.17,148.8 179.17,146.5V46.5C179.17,44.2 177.3,42.33 175,42.33ZM25,38.17C20.4,38.17 16.67,41.9 16.67,46.5V146.5C16.67,151.1 20.4,154.83 25,154.83H175C179.6,154.83 183.33,151.1 183.33,146.5V46.5C183.33,41.9 179.6,38.17 175,38.17H25Z" />
|
||||
<path
|
||||
android:name="fillPrimary"
|
||||
android:fillColor="#EEF6FF"
|
||||
android:pathData="M112.5,96.5C112.5,118.36 94.78,136.08 72.92,136.08C51.06,136.08 33.33,118.36 33.33,96.5C33.33,74.64 51.06,56.92 72.92,56.92C94.78,56.92 112.5,74.64 112.5,96.5Z" />
|
||||
<path
|
||||
android:name="fillAccent"
|
||||
android:fillColor="#2CDDE9"
|
||||
android:pathData="M91.67,96.5C91.67,106.86 83.27,115.25 72.92,115.25C62.56,115.25 54.17,106.86 54.17,96.5C54.17,86.14 62.56,77.75 72.92,77.75C83.27,77.75 91.67,86.14 91.67,96.5Z" />
|
||||
<path
|
||||
android:name="stroke"
|
||||
android:fillColor="#1A41AC"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M75,63.17C75,62.02 74.07,61.08 72.92,61.08C71.77,61.08 70.83,62.02 70.83,63.17V73.68C66.07,74.11 61.73,75.99 58.25,78.89L50.82,71.46C50.01,70.64 48.69,70.64 47.87,71.46C47.06,72.27 47.06,73.59 47.87,74.4L55.31,81.83C52.41,85.31 50.52,89.65 50.09,94.42H39.58C38.43,94.42 37.5,95.35 37.5,96.5C37.5,97.65 38.43,98.58 39.58,98.58H50.09C50.52,103.35 52.41,107.69 55.31,111.16L47.87,118.6C47.06,119.41 47.06,120.73 47.87,121.54C48.69,122.36 50.01,122.36 50.82,121.54L58.25,114.11C61.73,117.01 66.07,118.89 70.83,119.32V129.83C70.83,130.98 71.77,131.92 72.92,131.92C74.07,131.92 75,130.98 75,129.83V119.32C79.76,118.89 84.11,117.01 87.58,114.11L95.01,121.54C95.83,122.36 97.15,122.36 97.96,121.54C98.77,120.73 98.77,119.41 97.96,118.6L90.53,111.16C93.42,107.69 95.31,103.35 95.74,98.58H106.25C107.4,98.58 108.33,97.65 108.33,96.5C108.33,95.35 107.4,94.42 106.25,94.42H95.74C95.31,89.65 93.42,85.31 90.53,81.83L97.96,74.4C98.77,73.59 98.77,72.27 97.96,71.46C97.15,70.64 95.83,70.64 95.01,71.46L87.58,78.89C84.11,75.99 79.76,74.11 75,73.68V63.17ZM86.17,109.76C82.78,113.15 78.09,115.25 72.92,115.25C62.56,115.25 54.17,106.86 54.17,96.5C54.17,86.14 62.56,77.75 72.92,77.75C78.09,77.75 82.78,79.85 86.17,83.24L86.17,83.24L86.18,83.25C89.57,86.64 91.66,91.32 91.67,96.49L91.67,96.5C91.67,101.68 89.57,106.36 86.18,109.75L86.17,109.76L86.17,109.76ZM81.25,96.5C81.25,101.1 77.52,104.83 72.92,104.83C68.31,104.83 64.58,101.1 64.58,96.5C64.58,91.9 68.31,88.17 72.92,88.17C77.52,88.17 81.25,91.9 81.25,96.5ZM85.42,96.5C85.42,103.4 79.82,109 72.92,109C66.01,109 60.42,103.4 60.42,96.5C60.42,89.6 66.01,84 72.92,84C79.82,84 85.42,89.6 85.42,96.5Z" />
|
||||
<path
|
||||
android:name="fillPrimary"
|
||||
android:fillColor="#EEF6FF"
|
||||
android:pathData="M172.92,54.83C172.92,52.53 174.78,50.67 177.08,50.67H185.42C187.72,50.67 189.58,52.53 189.58,54.83V75.67C189.58,77.97 187.72,79.83 185.42,79.83H177.08C174.78,79.83 172.92,77.97 172.92,75.67V54.83Z" />
|
||||
<path
|
||||
android:name="stroke"
|
||||
android:fillColor="#1A41AC"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M185.42,54.83H177.08V75.67H185.42V54.83ZM177.08,50.67C174.78,50.67 172.92,52.53 172.92,54.83V75.67C172.92,77.97 174.78,79.83 177.08,79.83H185.42C187.72,79.83 189.58,77.97 189.58,75.67V54.83C189.58,52.53 187.72,50.67 185.42,50.67H177.08Z" />
|
||||
<path
|
||||
android:name="fillPrimary"
|
||||
android:fillColor="#EEF6FF"
|
||||
android:pathData="M172.92,117.33C172.92,115.03 174.78,113.17 177.08,113.17H185.42C187.72,113.17 189.58,115.03 189.58,117.33V138.17C189.58,140.47 187.72,142.33 185.42,142.33H177.08C174.78,142.33 172.92,140.47 172.92,138.17V117.33Z" />
|
||||
<path
|
||||
android:name="stroke"
|
||||
android:fillColor="#1A41AC"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M185.42,117.33H177.08V138.17H185.42V117.33ZM177.08,113.17C174.78,113.17 172.92,115.03 172.92,117.33V138.17C172.92,140.47 174.78,142.33 177.08,142.33H185.42C187.72,142.33 189.58,140.47 189.58,138.17V117.33C189.58,115.03 187.72,113.17 185.42,113.17H177.08Z" />
|
||||
<path
|
||||
android:name="fillSecondary"
|
||||
android:fillColor="#AAC3EF"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M177.08,129.83V138.17H185.42V129.83H177.08Z" />
|
||||
<path
|
||||
android:name="fillSecondary"
|
||||
android:fillColor="#AAC3EF"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M177.08,67.33V75.67H185.42V67.33H177.08Z" />
|
||||
</vector>
|
||||
@@ -4,7 +4,6 @@
|
||||
<string name="add_folder">Add folder</string>
|
||||
<string name="add_item">Add item</string>
|
||||
<string name="an_error_has_occurred">An error has occurred</string>
|
||||
<string name="apply">Apply</string>
|
||||
<string name="back">Back</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="copy">Copy</string>
|
||||
@@ -208,7 +207,6 @@ Scanning will happen automatically.</string>
|
||||
<string name="copy_totp">Copy TOTP</string>
|
||||
<string name="copy_totp_automatically_description">If a login has an authenticator key, copy the TOTP verification code to your clipboard when you autofill the login.</string>
|
||||
<string name="copy_totp_automatically">Copy TOTP automatically</string>
|
||||
<string name="premium_required">A Premium membership is required to use this feature.</string>
|
||||
<string name="attachment_deleted">Attachment deleted</string>
|
||||
<string name="attachments_are_a_premium_feature">Attachments are a Premium feature. Your current plan does not include access to this feature.</string>
|
||||
<string name="choose_file">Choose file</string>
|
||||
@@ -471,7 +469,6 @@ Scanning will happen automatically.</string>
|
||||
<string name="hide_text_by_default">When accessing the Send, hide the text by default</string>
|
||||
<string name="type_file">File</string>
|
||||
<string name="deletion_date">Deletion date</string>
|
||||
<string name="deletion_time">Deletion time</string>
|
||||
<string name="deletion_date_info">The Send will be permanently deleted on the specified date and time.</string>
|
||||
<string name="this_date_is_enforced_by_your_organization">This date is enforced by your organization</string>
|
||||
<string name="who_can_view">Who can view</string>
|
||||
@@ -605,7 +602,6 @@ select Add TOTP to store the key safely</string>
|
||||
<string name="are_you_sure_you_want_to_enable_screen_capture">Are you sure you want to turn on screen capture?</string>
|
||||
<string name="access_requested">Access requested</string>
|
||||
<string name="account_access_requested">Account access requested</string>
|
||||
<string name="are_you_trying_to_log_in">Are you trying to log in?</string>
|
||||
<string name="are_you_trying_to_access_your_account">Are you trying to access your account?</string>
|
||||
<string name="access_attempt_by_x_on_y">Access attempt by %1$s on %2$s</string>
|
||||
<string name="device_type">Device type</string>
|
||||
@@ -666,7 +662,6 @@ Do you want to switch to this account?</string>
|
||||
<string name="no_pending_requests">No pending requests</string>
|
||||
<string name="enable_camer_permission_to_use_the_scanner">Enable camera permission to use the scanner</string>
|
||||
<string name="language">Language</string>
|
||||
<string name="language_change_x_description">The language has been changed to %1$s. Please restart the app to see the change</string>
|
||||
<string name="default_system">Default (System)</string>
|
||||
<string name="weak_master_password">Weak Master Password</string>
|
||||
<string name="weak_password_identified_use_a_strong_password_to_protect_your_account">Weak password identified. Use a strong password to protect your account. Are you sure you want to use a weak password?</string>
|
||||
@@ -978,7 +973,6 @@ Do you want to switch to this account?</string>
|
||||
<string name="passkey_operation_failed_because_the_request_is_unsupported">Passkey operation failed because the request is unsupported.</string>
|
||||
<string name="password_operation_failed_because_the_selected_item_does_not_exist">Password operation failed because the selected item does not exist.</string>
|
||||
<string name="password_operation_failed_because_the_selected_item_does_not_have_a_valid_password">Password operation failed because the selected item does not have a valid password.</string>
|
||||
<string name="password_operation_failed_because_no_item_was_selected">Password operation failed because no item was selected.</string>
|
||||
<string name="credential_operation_failed_because_the_request_is_invalid">Credential operation failed because the request is invalid.</string>
|
||||
<string name="credential_operation_failed_because_the_request_is_unsupported">Credential operation failed because the request is unsupported.</string>
|
||||
<string name="credential_operation_failed_because_user_verification_attempts_exceeded">Credential operation failed because user verification attempts exceeded.</string>
|
||||
@@ -1059,7 +1053,6 @@ Do you want to switch to this account?</string>
|
||||
<string name="learn_more_about_privileged_apps">Learn more about privileged apps</string>
|
||||
<string name="privileged_apps">Privileged apps</string>
|
||||
<string name="unrecognized_browser">Unrecognized browser</string>
|
||||
<string name="learn_more_about_using_passkeys_with_bitwarden">Learn more about using passkeys with Bitwarden.</string>
|
||||
<string name="all_trusted_apps">All trusted apps</string>
|
||||
<string name="are_you_sure_you_want_to_stop_trusting_x">Are you sure you want to stop trusting %s?</string>
|
||||
<string name="installed_apps">Installed apps</string>
|
||||
@@ -1076,8 +1069,6 @@ Do you want to switch to this account?</string>
|
||||
<string name="verification_code_added">Verification code added</string>
|
||||
<string name="refresh_period">Refresh period</string>
|
||||
<string name="algorithm">Algorithm</string>
|
||||
<string name="advanced">Advanced</string>
|
||||
<string name="collapse_advanced_options">Collapse advanced options</string>
|
||||
<string name="number_of_digits">Number of digits</string>
|
||||
<plurals name="refresh_period_seconds">
|
||||
<item quantity="one">%d second</item>
|
||||
@@ -1160,7 +1151,6 @@ Do you want to switch to this account?</string>
|
||||
<string name="select_a_card_for_x">Select a card for %s</string>
|
||||
<string name="choose_an_identity">Choose an identity</string>
|
||||
<string name="advanced_options">Advanced options</string>
|
||||
<string name="more_about_match_detection"><annotation link="moreAboutMatchDetection">More about match detection</annotation></string>
|
||||
<string name="keep_your_credential_secure">Keep your credentials secure</string>
|
||||
<string name="learn_more_about_how_to_keep_credentirals_secure">Learn more about how to keep credentials secure when using “%1$s”.</string>
|
||||
<string name="are_you_sure_you_want_to_use">Are you sure you want to use “%1$s”?</string>
|
||||
@@ -1203,7 +1193,6 @@ Do you want to switch to this account?</string>
|
||||
<string name="import_passwords_passkeys_and_other_item_types_from_your_vault">Import passwords, passkeys, and other item types from your Bitwarden vault.</string>
|
||||
<string name="items_to_import">Items to import</string>
|
||||
<string name="exporting_items">Exporting items…</string>
|
||||
<string name="export_failed">Export failed</string>
|
||||
<string name="passwords">Passwords</string>
|
||||
<string name="passkeys">Passkeys</string>
|
||||
<string name="why_is_this_step_required">Why is this step required?</string>
|
||||
@@ -1223,7 +1212,6 @@ Do you want to switch to this account?</string>
|
||||
<string name="transfer_items_to_org">Transfer items to %1$s</string>
|
||||
<string name="transfer_items_description"><annotation arg="0">%1$s</annotation> is requiring all items to be owned by the organization for security and compliance. Click accept to transfer ownership of your items. <annotation link="learnMore">Learn more</annotation></string>
|
||||
<string name="decline_and_leave">Decline and leave</string>
|
||||
<string name="why_am_i_seeing_this">Why am I seeing this?</string>
|
||||
<string name="migrating_items_to_x">Migrating items to %s</string>
|
||||
<string name="failed_to_migrate_items_to_x">Failed to migrate items to %s</string>
|
||||
<string name="search_archive">Search archive</string>
|
||||
@@ -1322,7 +1310,6 @@ Do you want to switch to this account?</string>
|
||||
<string name="archive_item">Archive item</string>
|
||||
<string name="once_archived_this_item_will_be_excluded">Once archived, this item will be excluded from search results and autofill suggestions.</string>
|
||||
<string name="pricing_unavailable">Pricing unavailable</string>
|
||||
<string name="current_plan">Current plan</string>
|
||||
<string name="premium_plan_name">Premium</string>
|
||||
<string name="billing_amount">Billing amount</string>
|
||||
<string name="storage_cost">Storage cost</string>
|
||||
@@ -1398,8 +1385,6 @@ Do you want to switch to this account?</string>
|
||||
<string name="issuing_country">Issuing country</string>
|
||||
<string name="issuing_state">Issuing state / province</string>
|
||||
<string name="license_class">License class</string>
|
||||
<string name="surname">Surname</string>
|
||||
<string name="given_name">Given name</string>
|
||||
<string name="date_of_birth">Date of birth</string>
|
||||
<string name="nationality">Nationality</string>
|
||||
<string name="passport_type">Passport type</string>
|
||||
|
||||
Reference in New Issue
Block a user