mirror of
https://github.com/bitwarden/mobile
synced 2026-01-11 13:04:00 +00:00
Compare commits
27 Commits
bugfix/hel
...
v2024.7.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e5569b13b7 | ||
|
|
5e98954c9e | ||
|
|
1294cd5c69 | ||
|
|
463d837fa8 | ||
|
|
ad6ffad5d1 | ||
|
|
9edcc8b4f7 | ||
|
|
cf5c5aa114 | ||
|
|
36c7beb1e6 | ||
|
|
f6d798af94 | ||
|
|
08ed70d5b1 | ||
|
|
33e0187460 | ||
|
|
2b78859d06 | ||
|
|
81205154c4 | ||
|
|
14d2660b61 | ||
|
|
bad5673724 | ||
|
|
67b76a777e | ||
|
|
02f5936fce | ||
|
|
fc208b08d7 | ||
|
|
f165135147 | ||
|
|
d458f17ad6 | ||
|
|
c3bd4b84b1 | ||
|
|
0af78d0e03 | ||
|
|
e86a01a7db | ||
|
|
e16074a73e | ||
|
|
a333e72448 | ||
|
|
ffb7b3b8ac | ||
|
|
c8d0db9f31 |
4
.github/workflows/build-beta.yml
vendored
4
.github/workflows/build-beta.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
||||
hotfix_branch_exists: ${{ steps.branch-check.outputs.hotfix_branch_exists }}
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
submodules: 'true'
|
||||
|
||||
@@ -80,7 +80,7 @@ jobs:
|
||||
echo "GitHub event: $GITHUB_EVENT"
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.ref }}
|
||||
|
||||
30
.github/workflows/build.yml
vendored
30
.github/workflows/build.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- name: Set up CLOC
|
||||
run: |
|
||||
@@ -40,7 +40,7 @@ jobs:
|
||||
hotfix_branch_exists: ${{ steps.branch-check.outputs.hotfix_branch_exists }}
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
submodules: 'true'
|
||||
|
||||
@@ -85,11 +85,6 @@ jobs:
|
||||
- name: Set up MSBuild
|
||||
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0
|
||||
|
||||
# This step might be obsolete at some point as .NET MAUI workloads
|
||||
# are starting to come pre-installed on the GH Actions build agents.
|
||||
- name: Install MAUI Workload
|
||||
run: dotnet workload install maui --ignore-failed-sources
|
||||
|
||||
- name: Setup Windows builder
|
||||
run: choco install checksum --no-progress
|
||||
|
||||
@@ -109,7 +104,7 @@ jobs:
|
||||
echo "GitHub event: $GITHUB_EVENT"
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
@@ -145,7 +140,7 @@ jobs:
|
||||
|
||||
- name: Increment version
|
||||
run: |
|
||||
BUILD_NUMBER=$((3000 + $GITHUB_RUN_NUMBER))
|
||||
BUILD_NUMBER=$((11000 + $GITHUB_RUN_NUMBER))
|
||||
echo "##### Setting Android Version Code to $BUILD_NUMBER" | tee -a $GITHUB_STEP_SUMMARY
|
||||
|
||||
sed -i "s/android:versionCode=\"1\"/android:versionCode=\"$BUILD_NUMBER\"/" \
|
||||
@@ -312,11 +307,6 @@ jobs:
|
||||
- name: Set up MSBuild
|
||||
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0
|
||||
|
||||
# This step might be obsolete at some point as .NET MAUI workloads
|
||||
# are starting to come pre-installed on the GH Actions build agents.
|
||||
- name: Install MAUI Workload
|
||||
run: dotnet workload install maui --ignore-failed-sources
|
||||
|
||||
- name: Setup Windows builder
|
||||
run: choco install checksum --no-progress
|
||||
|
||||
@@ -335,7 +325,7 @@ jobs:
|
||||
echo "GitHub event: $GITHUB_EVENT"
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- name: Login to Azure - CI Subscription
|
||||
uses: Azure/login@e15b166166a8746d1a47596803bd8c1b595455cf # v1.6.0
|
||||
@@ -354,7 +344,7 @@ jobs:
|
||||
|
||||
- name: Increment version
|
||||
run: |
|
||||
BUILD_NUMBER=$((3000 + $GITHUB_RUN_NUMBER))
|
||||
BUILD_NUMBER=$((11000 + $GITHUB_RUN_NUMBER))
|
||||
echo "##### Setting F-Droid Version Code to $BUILD_NUMBER" | tee -a $GITHUB_STEP_SUMMARY
|
||||
|
||||
sed -i "s/android:versionCode=\"1\"/android:versionCode=\"$BUILD_NUMBER\"/" \
|
||||
@@ -470,7 +460,7 @@ jobs:
|
||||
echo "GitHub event: $GITHUB_EVENT"
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
submodules: 'true'
|
||||
|
||||
@@ -519,7 +509,7 @@ jobs:
|
||||
|
||||
- name: Increment version
|
||||
run: |
|
||||
BUILD_NUMBER=$((100 + $GITHUB_RUN_NUMBER))
|
||||
BUILD_NUMBER=$((8000 + $GITHUB_RUN_NUMBER))
|
||||
echo "##### Setting iOS CFBundleVersion to $BUILD_NUMBER" | tee -a $GITHUB_STEP_SUMMARY
|
||||
|
||||
perl -0777 -pi.bak -e 's/<key>CFBundleVersion<\/key>\s*<string>1<\/string>/<key>CFBundleVersion<\/key>\n\t<string>'"$BUILD_NUMBER"'<\/string>/' ./${{ env.ios_folder_path }}/Info.plist
|
||||
@@ -718,7 +708,7 @@ jobs:
|
||||
_CROWDIN_PROJECT_ID: "269690"
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- name: Login to Azure - CI Subscription
|
||||
uses: Azure/login@e15b166166a8746d1a47596803bd8c1b595455cf # v1.6.0
|
||||
@@ -733,7 +723,7 @@ jobs:
|
||||
secrets: "crowdin-api-token"
|
||||
|
||||
- name: Upload Sources
|
||||
uses: crowdin/github-action@8c663f791efc0498270241e9923a8853c99a3a8e # v1.20.3
|
||||
uses: crowdin/github-action@61ac8b980551f674046220c3e104bddae2916ac5 # v2.0.0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }}
|
||||
|
||||
2
.github/workflows/cleanup-rc-branch.yml
vendored
2
.github/workflows/cleanup-rc-branch.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
||||
secrets: "github-pat-bitwarden-devops-bot-repo-scope"
|
||||
|
||||
- name: Checkout main
|
||||
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
ref: main
|
||||
token: ${{ steps.retrieve-bot-secrets.outputs.github-pat-bitwarden-devops-bot-repo-scope }}
|
||||
|
||||
4
.github/workflows/crowdin-pull.yml
vendored
4
.github/workflows/crowdin-pull.yml
vendored
@@ -15,7 +15,7 @@ jobs:
|
||||
_CROWDIN_PROJECT_ID: "269690"
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- name: Login to Azure - CI Subscription
|
||||
uses: Azure/login@e15b166166a8746d1a47596803bd8c1b595455cf # v1.6.0
|
||||
@@ -30,7 +30,7 @@ jobs:
|
||||
secrets: "crowdin-api-token, github-gpg-private-key, github-gpg-private-key-passphrase"
|
||||
|
||||
- name: Download translations
|
||||
uses: crowdin/github-action@8c663f791efc0498270241e9923a8853c99a3a8e # v1.20.3
|
||||
uses: crowdin/github-action@61ac8b980551f674046220c3e104bddae2916ac5 # v2.0.0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }}
|
||||
|
||||
74
.github/workflows/release.yml
vendored
74
.github/workflows/release.yml
vendored
@@ -38,7 +38,7 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- name: Check Release Version
|
||||
id: version
|
||||
@@ -65,25 +65,31 @@ jobs:
|
||||
description: 'Deployment ${{ steps.version.outputs.version }} from branch ${{ steps.branch.outputs.branch-name }}'
|
||||
task: release
|
||||
|
||||
|
||||
- name: Download all artifacts
|
||||
if: ${{ inputs.release_type != 'Dry Run' }}
|
||||
uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3.1.4
|
||||
uses: bitwarden/gh-actions/download-artifacts@main
|
||||
with:
|
||||
workflow: build.yml
|
||||
workflow_conclusion: success
|
||||
branch: ${{ steps.branch.outputs.branch-name }}
|
||||
skip_unpack: true
|
||||
|
||||
- name: Dry Run - Download all artifacts
|
||||
if: ${{ inputs.release_type == 'Dry Run' }}
|
||||
uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3.1.4
|
||||
uses: bitwarden/gh-actions/download-artifacts@main
|
||||
with:
|
||||
workflow: build.yml
|
||||
workflow_conclusion: success
|
||||
branch: main
|
||||
skip_unpack: true
|
||||
|
||||
- name: Prep Bitwarden iOS release asset
|
||||
run: zip -r Bitwarden\ iOS.zip Bitwarden\ iOS
|
||||
- name: Unzip release assets
|
||||
run: |
|
||||
unzip bw-android-apk-sha256.txt.zip -d bw-android-apk-sha256.txt
|
||||
unzip bw-fdroid-apk-sha256.txt.zip -d bw-fdroid-apk-sha256.txt
|
||||
unzip com.x8bit.bitwarden-fdroid.apk.zip -d com.x8bit.bitwarden-fdroid.apk
|
||||
unzip com.x8bit.bitwarden.aab.zip -d com.x8bit.bitwarden.aab
|
||||
unzip com.x8bit.bitwarden.apk.zip -d com.x8bit.bitwarden.apk
|
||||
|
||||
- name: Create release
|
||||
if: ${{ inputs.release_type != 'Dry Run' }}
|
||||
@@ -126,11 +132,11 @@ jobs:
|
||||
if: inputs.fdroid_publish
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- name: Download F-Droid .apk artifact
|
||||
if: ${{ inputs.release_type != 'Dry Run' }}
|
||||
uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3.1.4
|
||||
uses: bitwarden/gh-actions/download-artifacts@main
|
||||
with:
|
||||
workflow: build.yml
|
||||
workflow_conclusion: success
|
||||
@@ -139,7 +145,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download F-Droid .apk artifact
|
||||
if: ${{ inputs.release_type == 'Dry Run' }}
|
||||
uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3.1.4
|
||||
uses: bitwarden/gh-actions/download-artifacts@main
|
||||
with:
|
||||
workflow: build.yml
|
||||
workflow_conclusion: success
|
||||
@@ -152,9 +158,7 @@ jobs:
|
||||
node-version: '16.x'
|
||||
|
||||
- name: Set up F-Droid server
|
||||
run: |
|
||||
sudo apt-get -qq update
|
||||
sudo apt-get -qqy install --no-install-recommends fdroidserver wget
|
||||
run: pip install git+https://gitlab.com/fdroid/fdroidserver.git
|
||||
|
||||
- name: Set up Git credentials
|
||||
env:
|
||||
@@ -167,9 +171,10 @@ jobs:
|
||||
|
||||
- name: Print environment
|
||||
run: |
|
||||
node --version
|
||||
npm --version
|
||||
git --version
|
||||
echo "Node Version: $(node --version)"
|
||||
echo "NPM Version: $(npm --version)"
|
||||
echo "Git Version: $(git --version)"
|
||||
echo "F-Droid Server Version: $(fdroid --version)"
|
||||
echo "GitHub ref: $GITHUB_REF"
|
||||
echo "GitHub event: $GITHUB_EVENT"
|
||||
|
||||
@@ -194,27 +199,30 @@ jobs:
|
||||
env:
|
||||
FDROID_STORE_KEYSTORE_PASSWORD: ${{ secrets.FDROID_STORE_KEYSTORE_PASSWORD }}
|
||||
run: |
|
||||
cd $GITHUB_WORKSPACE
|
||||
# Create required directories.
|
||||
mkdir dist
|
||||
cp CNAME ./dist
|
||||
cd store
|
||||
chmod 600 fdroid/config.py fdroid/keystore.jks
|
||||
mkdir -p temp/fdroid
|
||||
mkdir -p store/temp/fdroid
|
||||
mkdir -p store/fdroid/repo
|
||||
|
||||
# Configure F-Droid server.
|
||||
cp CNAME dist/
|
||||
chmod 600 store/fdroid/config.yml store/fdroid/keystore.jks
|
||||
TEMP_DIR="$GITHUB_WORKSPACE/store/temp/fdroid"
|
||||
cd fdroid
|
||||
echo "keypass=\"$FDROID_STORE_KEYSTORE_PASSWORD\"" >>config.py
|
||||
echo "keystorepass=\"$FDROID_STORE_KEYSTORE_PASSWORD\"" >>config.py
|
||||
echo "local_copy_dir=\"$TEMP_DIR\"" >>config.py
|
||||
mkdir -p repo
|
||||
mv $GITHUB_WORKSPACE/com.x8bit.bitwarden-fdroid.apk ./repo/
|
||||
echo "keypass: $FDROID_STORE_KEYSTORE_PASSWORD" >> store/fdroid/config.yml
|
||||
echo "keystorepass: $FDROID_STORE_KEYSTORE_PASSWORD" >> store/fdroid/config.yml
|
||||
echo "local_copy_dir: $TEMP_DIR" >> store/fdroid/config.yml
|
||||
mv $GITHUB_WORKSPACE/com.x8bit.bitwarden-fdroid.apk store/fdroid/repo/
|
||||
|
||||
# Run update and deploy.
|
||||
cd store/fdroid
|
||||
fdroid update
|
||||
fdroid server update
|
||||
cd ..
|
||||
rm -rf temp/fdroid/archive
|
||||
mv -v temp/fdroid ../dist
|
||||
cd fdroid
|
||||
cp index.html btn.png qr.png ../../dist/fdroid
|
||||
cd $GITHUB_WORKSPACE
|
||||
fdroid deploy
|
||||
cd ../..
|
||||
|
||||
# Move files for distribution.
|
||||
rm -rf store/temp/fdroid/archive
|
||||
mv -v store/temp/fdroid dist
|
||||
cp store/fdroid/index.html store/fdroid/btn.png store/fdroid/qr.png dist/fdroid
|
||||
|
||||
- name: Deploy to gh-pages
|
||||
if: ${{ inputs.release_type != 'Dry Run' }}
|
||||
|
||||
24
.github/workflows/version-bump.yml
vendored
24
.github/workflows/version-bump.yml
vendored
@@ -12,6 +12,10 @@ on:
|
||||
description: "Cut RC branch?"
|
||||
default: true
|
||||
type: boolean
|
||||
enable_slack_notification:
|
||||
description: "Enable Slack notifications for upcoming release?"
|
||||
default: false
|
||||
type: boolean
|
||||
|
||||
jobs:
|
||||
bump_version:
|
||||
@@ -26,8 +30,16 @@ jobs:
|
||||
with:
|
||||
version: ${{ inputs.version_number_override }}
|
||||
|
||||
- name: Slack Notification Check
|
||||
run: |
|
||||
if [[ "${{ inputs.enable_slack_notification }}" == true ]]; then
|
||||
echo "Slack notifications enabled."
|
||||
else
|
||||
echo "Slack notifications disabled."
|
||||
fi
|
||||
|
||||
- name: Checkout Branch
|
||||
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
ref: main
|
||||
|
||||
@@ -257,6 +269,14 @@ jobs:
|
||||
PR_NUMBER: ${{ steps.create-pr.outputs.pr_number }}
|
||||
run: gh pr merge $PR_NUMBER --squash --auto --delete-branch
|
||||
|
||||
- name: Report upcoming release version to Slack
|
||||
if: ${{ steps.version-changed.outputs.changes_to_commit == 'TRUE' && inputs.enable_slack_notification == true }}
|
||||
uses: bitwarden/gh-actions/report-upcoming-release-version@main
|
||||
with:
|
||||
version: ${{ steps.set-final-version-output.outputs.version }}
|
||||
project: ${{ github.repository }}
|
||||
AZURE_KV_CI_SERVICE_PRINCIPAL: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
|
||||
|
||||
cut_rc:
|
||||
name: Cut RC branch
|
||||
if: ${{ inputs.cut_rc_branch == true }}
|
||||
@@ -264,7 +284,7 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout Branch
|
||||
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
ref: main
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:versionCode="1" android:versionName="2024.5.1" android:installLocation="internalOnly" package="com.x8bit.bitwarden">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:versionCode="1" android:versionName="2024.7.0" android:installLocation="internalOnly" package="com.x8bit.bitwarden">
|
||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="34" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.NFC" />
|
||||
@@ -24,7 +24,7 @@
|
||||
<meta-data android:name="com.samsung.android.sdk.multiwindow.penwindow.enable" android:value="true" />
|
||||
<!-- Support for LG "Dual Window" mode (for Android < 7.0 users) -->
|
||||
<meta-data android:name="com.lge.support.SPLIT_WINDOW" android:value="true" />
|
||||
<!-- Declare exported activities manually so we can set LaunchMode using API dependant resource -->
|
||||
<!-- Declare MainActivity manually so we can set LaunchMode using API dependant resource -->
|
||||
<activity android:name="com.x8bit.bitwarden.MainActivity" android:configChanges="keyboard|keyboardHidden|navigation|orientation|screenSize|uiMode" android:exported="true" android:icon="@mipmap/ic_launcher" android:label="Bitwarden" android:launchMode="@integer/launchModeAPIlevel" android:theme="@style/LaunchTheme">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
@@ -39,14 +39,6 @@
|
||||
<data android:mimeType="text/*" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity android:name="com.x8bit.bitwarden.WebAuthCallbackActivity" android:launchMode="@integer/webAuthCallbackLaunchMode" android:noHistory="true" android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<data android:scheme="bitwarden" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
<!-- Support for Xamarin.Essentials.Browser.OpenAsync (for Android > 11) -->
|
||||
<!-- Related docs: https://learn.microsoft.com/en-us/xamarin/essentials/open-browser?tabs=android -->
|
||||
|
||||
@@ -10,8 +10,7 @@ namespace Bit.Droid.Autofill
|
||||
{
|
||||
[Activity(
|
||||
NoHistory = true,
|
||||
LaunchMode = LaunchMode.SingleTop,
|
||||
Exported = false)]
|
||||
LaunchMode = LaunchMode.SingleTop)]
|
||||
public class AutofillExternalSelectionActivity : MauiAppCompatActivity
|
||||
{
|
||||
protected override void OnCreate(Bundle bundle)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<resources>
|
||||
<integer name="launchModeAPIlevel">0</integer>
|
||||
<integer name="webAuthCallbackLaunchMode">1</integer>
|
||||
</resources>
|
||||
@@ -1,5 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<resources>
|
||||
<integer name="launchModeAPIlevel">2</integer>
|
||||
<integer name="webAuthCallbackLaunchMode">3</integer>
|
||||
</resources>
|
||||
@@ -1,12 +1,17 @@
|
||||
using Android.App;
|
||||
using Android.Content.PM;
|
||||
using Android.OS;
|
||||
using Android.Runtime;
|
||||
using Bit.App.Droid.Utilities;
|
||||
|
||||
namespace Bit.Droid
|
||||
{
|
||||
[Register("com.x8bit.bitwarden.WebAuthCallbackActivity")]
|
||||
[Activity(
|
||||
NoHistory = true,
|
||||
LaunchMode = LaunchMode.SingleTop,
|
||||
Exported = true)]
|
||||
[IntentFilter(new[] { Android.Content.Intent.ActionView },
|
||||
Categories = new[] { Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable },
|
||||
DataScheme = "bitwarden")]
|
||||
public class WebAuthCallbackActivity : WebAuthenticatorCallbackActivity
|
||||
{
|
||||
protected override void OnCreate(Bundle savedInstanceState)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.8bit.bitwarden</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2024.5.1</string>
|
||||
<string>2024.7.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>CFBundleIconName</key>
|
||||
|
||||
@@ -41,7 +41,6 @@ namespace Bit.Core.Abstractions
|
||||
Task<CipherResponse> PutShareCipherAsync(string id, CipherShareRequest request);
|
||||
Task PutDeleteCipherAsync(string id);
|
||||
Task<CipherResponse> PutRestoreCipherAsync(string id);
|
||||
Task<bool> HasUnassignedCiphersAsync();
|
||||
Task RefreshIdentityTokenAsync();
|
||||
Task<SsoPrevalidateResponse> PreValidateSsoAsync(string identifier);
|
||||
Task<TResponse> SendAsync<TRequest, TResponse>(HttpMethod method, string path,
|
||||
|
||||
@@ -36,6 +36,5 @@ namespace Bit.Core.Abstractions
|
||||
Task RestoreWithServerAsync(string id);
|
||||
Task<string> CreateNewLoginForPasskeyAsync(Fido2ConfirmNewCredentialParams newPasskeyParams);
|
||||
Task CopyTotpCodeIfNeededAsync(CipherView cipher);
|
||||
Task<bool> VerifyOrganizationHasUnassignedItemsAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,8 +187,6 @@ namespace Bit.Core.Abstractions
|
||||
Task<BwRegion?> GetPreAuthRegionAsync();
|
||||
Task SetPreAuthRegionAsync(BwRegion value);
|
||||
Task ReloadStateAsync();
|
||||
Task<bool> GetShouldCheckOrganizationUnassignedItemsAsync(string userId = null);
|
||||
Task SetShouldCheckOrganizationUnassignedItemsAsync(bool shouldCheck, string userId = null);
|
||||
[Obsolete("Use GetPinKeyEncryptedUserKeyAsync instead, left for migration purposes")]
|
||||
Task<string> GetPinProtectedAsync(string userId = null);
|
||||
[Obsolete("Use SetPinKeyEncryptedUserKeyAsync instead, left for migration purposes")]
|
||||
|
||||
@@ -45,8 +45,6 @@ namespace Bit.Core
|
||||
public const string PasswordlessLoginRequestKey = "passwordlessLoginRequest";
|
||||
public const string PreLoginEmailKey = "preLoginEmailKey";
|
||||
public const string ConfigsKey = "configsKey";
|
||||
public const string DisplayEuEnvironmentFlag = "display-eu-environment";
|
||||
public const string UnassignedItemsBannerFlag = "unassigned-items-banner";
|
||||
public const string RegionEnvironment = "regionEnvironment";
|
||||
public const string DuoCallback = "bitwarden://duo-callback";
|
||||
public const string NavigateToMessageCommand = "navigateTo";
|
||||
@@ -139,7 +137,6 @@ namespace Bit.Core
|
||||
public static string ShouldConnectToWatchKey(string userId) => $"shouldConnectToWatch_{userId}";
|
||||
public static string ScreenCaptureAllowedKey(string userId) => $"screenCaptureAllowed_{userId}";
|
||||
public static string PendingAdminAuthRequest(string userId) => $"pendingAdminAuthRequest_{userId}";
|
||||
public static string ShouldCheckOrganizationUnassignedItemsKey(string userId) => $"shouldCheckOrganizationUnassignedItems_{userId}";
|
||||
[Obsolete]
|
||||
public static string KeyKey(string userId) => $"key_{userId}";
|
||||
[Obsolete]
|
||||
|
||||
@@ -27,7 +27,6 @@ namespace Bit.App.Models
|
||||
public bool HideAccountSwitcher { get; set; }
|
||||
public OtpData? OtpData { get; set; }
|
||||
public bool HasUnlockedInThisTransaction { get; set; }
|
||||
public bool HasJustLoggedInOrUnlocked { get; set; }
|
||||
|
||||
public void SetAllFrom(AppOptions o)
|
||||
{
|
||||
|
||||
@@ -25,7 +25,6 @@ namespace Bit.App.Pages
|
||||
private bool _rememberEmail;
|
||||
private string _email;
|
||||
private string _selectedEnvironmentName;
|
||||
private bool _displayEuEnvironment;
|
||||
|
||||
public HomeViewModel()
|
||||
{
|
||||
@@ -116,7 +115,6 @@ namespace Bit.App.Pages
|
||||
{
|
||||
Email = await _stateService.GetRememberedEmailAsync();
|
||||
RememberEmail = !string.IsNullOrEmpty(Email);
|
||||
_displayEuEnvironment = await _configService.GetFeatureFlagBoolAsync(Constants.DisplayEuEnvironmentFlag, forceRefresh: true);
|
||||
}
|
||||
|
||||
public async Task ContinueToLoginStepAsync()
|
||||
@@ -158,11 +156,7 @@ namespace Bit.App.Pages
|
||||
|
||||
public async Task ShowEnvironmentPickerAsync()
|
||||
{
|
||||
_displayEuEnvironment = await _configService.GetFeatureFlagBoolAsync(Constants.DisplayEuEnvironmentFlag);
|
||||
var options = _displayEuEnvironment
|
||||
? new string[] { BwRegion.US.Domain(), BwRegion.EU.Domain(), AppResources.SelfHosted }
|
||||
: new string[] { BwRegion.US.Domain(), AppResources.SelfHosted };
|
||||
|
||||
var options = new string[] { BwRegion.US.Domain(), BwRegion.EU.Domain(), AppResources.SelfHosted };
|
||||
await MainThread.InvokeOnMainThreadAsync(async () =>
|
||||
{
|
||||
var result = await _deviceActionService.Value.DisplayActionSheetAsync(AppResources.LoggingInOn, AppResources.Cancel, null, options);
|
||||
|
||||
@@ -232,11 +232,6 @@ namespace Bit.App.Pages
|
||||
return;
|
||||
}
|
||||
var previousPage = await AppHelpers.ClearPreviousPage();
|
||||
|
||||
if (_appOptions != null)
|
||||
{
|
||||
_appOptions.HasJustLoggedInOrUnlocked = true;
|
||||
}
|
||||
App.MainPage = new TabsPage(_appOptions, previousPage);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,11 +35,6 @@ namespace Bit.App.Pages
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_appOptions != null)
|
||||
{
|
||||
_appOptions.HasJustLoggedInOrUnlocked = true;
|
||||
}
|
||||
var previousPage = await AppHelpers.ClearPreviousPage();
|
||||
App.MainPage = new TabsPage(_appOptions, previousPage);
|
||||
}
|
||||
|
||||
@@ -196,11 +196,6 @@ namespace Bit.App.Pages
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_appOptions != null)
|
||||
{
|
||||
_appOptions.HasJustLoggedInOrUnlocked = true;
|
||||
}
|
||||
var previousPage = await AppHelpers.ClearPreviousPage();
|
||||
App.MainPage = new TabsPage(_appOptions, previousPage);
|
||||
}
|
||||
|
||||
@@ -56,11 +56,6 @@ namespace Bit.App.Pages
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_appOptions != null)
|
||||
{
|
||||
_appOptions.HasJustLoggedInOrUnlocked = true;
|
||||
}
|
||||
var previousPage = await AppHelpers.ClearPreviousPage();
|
||||
App.MainPage = new TabsPage(_appOptions, previousPage);
|
||||
}
|
||||
|
||||
@@ -71,11 +71,6 @@ namespace Bit.App.Pages
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_appOptions != null)
|
||||
{
|
||||
_appOptions.HasJustLoggedInOrUnlocked = true;
|
||||
}
|
||||
var previousPage = await AppHelpers.ClearPreviousPage();
|
||||
App.MainPage = new TabsPage(_appOptions, previousPage);
|
||||
}
|
||||
|
||||
@@ -207,11 +207,6 @@ namespace Bit.App.Pages
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_appOptions != null)
|
||||
{
|
||||
_appOptions.HasJustLoggedInOrUnlocked = true;
|
||||
}
|
||||
var previousPage = await AppHelpers.ClearPreviousPage();
|
||||
App.MainPage = new TabsPage(_appOptions, previousPage);
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace Bit.App.Pages
|
||||
_keyConnectorService = ServiceContainer.Resolve<IKeyConnectorService>("keyConnectorService");
|
||||
_stateService = ServiceContainer.Resolve<IStateService>();
|
||||
|
||||
_groupingsPage = new NavigationPage(new GroupingsPage(true, previousPage: previousPage, appOptions: appOptions))
|
||||
_groupingsPage = new NavigationPage(new GroupingsPage(true, previousPage: previousPage))
|
||||
{
|
||||
Title = AppResources.MyVault,
|
||||
IconImageSource = "lock.png"
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace Bit.App.Pages
|
||||
|
||||
public GroupingsPage(bool mainPage, CipherType? type = null, string folderId = null,
|
||||
string collectionId = null, string pageTitle = null, string vaultFilterSelection = null,
|
||||
PreviousPageInfo previousPage = null, bool deleted = false, bool showTotp = false, AppOptions appOptions = null)
|
||||
PreviousPageInfo previousPage = null, bool deleted = false, bool showTotp = false)
|
||||
{
|
||||
_pageName = string.Concat(nameof(GroupingsPage), "_", DateTime.UtcNow.Ticks);
|
||||
InitializeComponent();
|
||||
@@ -51,7 +51,6 @@ namespace Bit.App.Pages
|
||||
_vm.CollectionId = collectionId;
|
||||
_vm.Deleted = deleted;
|
||||
_vm.ShowTotp = showTotp;
|
||||
_vm.AppOptions = appOptions;
|
||||
_previousPage = previousPage;
|
||||
if (pageTitle != null)
|
||||
{
|
||||
@@ -162,8 +161,6 @@ namespace Bit.App.Pages
|
||||
return;
|
||||
}
|
||||
|
||||
await _vm.CheckOrganizationUnassignedItemsAsync();
|
||||
|
||||
// Push registration
|
||||
var lastPushRegistration = await _stateService.GetPushLastRegistrationDateAsync();
|
||||
lastPushRegistration = lastPushRegistration.GetValueOrDefault(DateTime.MinValue);
|
||||
|
||||
@@ -46,8 +46,6 @@ namespace Bit.App.Pages
|
||||
private readonly IPasswordRepromptService _passwordRepromptService;
|
||||
private readonly IOrganizationService _organizationService;
|
||||
private readonly IPolicyService _policyService;
|
||||
private readonly IConfigService _configService;
|
||||
private readonly IEnvironmentService _environmentService;
|
||||
private readonly ILogger _logger;
|
||||
|
||||
public GroupingsPageViewModel()
|
||||
@@ -64,8 +62,6 @@ namespace Bit.App.Pages
|
||||
_passwordRepromptService = ServiceContainer.Resolve<IPasswordRepromptService>("passwordRepromptService");
|
||||
_organizationService = ServiceContainer.Resolve<IOrganizationService>("organizationService");
|
||||
_policyService = ServiceContainer.Resolve<IPolicyService>("policyService");
|
||||
_configService = ServiceContainer.Resolve<IConfigService>();
|
||||
_environmentService = ServiceContainer.Resolve<IEnvironmentService>();
|
||||
_logger = ServiceContainer.Resolve<ILogger>("logger");
|
||||
|
||||
Loading = true;
|
||||
@@ -109,7 +105,6 @@ namespace Bit.App.Pages
|
||||
public List<Core.Models.View.CollectionView> Collections { get; set; }
|
||||
public List<TreeNode<Core.Models.View.CollectionView>> NestedCollections { get; set; }
|
||||
|
||||
public AppOptions AppOptions { get; internal set; }
|
||||
protected override ICipherService cipherService => _cipherService;
|
||||
protected override IPolicyService policyService => _policyService;
|
||||
protected override IOrganizationService organizationService => _organizationService;
|
||||
@@ -705,59 +700,5 @@ namespace Bit.App.Pages
|
||||
var folders = decFolders.Where(f => _allCiphers.Any(c => c.FolderId == f.Id)).ToList();
|
||||
return folders.Any() ? folders : null;
|
||||
}
|
||||
|
||||
internal async Task CheckOrganizationUnassignedItemsAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (AppOptions?.HasJustLoggedInOrUnlocked != true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
AppOptions.HasJustLoggedInOrUnlocked = false;
|
||||
|
||||
if (!await _configService.GetFeatureFlagBoolAsync(Core.Constants.UnassignedItemsBannerFlag)
|
||||
||
|
||||
!await _stateService.GetShouldCheckOrganizationUnassignedItemsAsync())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var waitSyncTask = Task.Run(async () =>
|
||||
{
|
||||
while (_syncService.SyncInProgress)
|
||||
{
|
||||
await Task.Delay(100);
|
||||
}
|
||||
});
|
||||
await waitSyncTask.WaitAsync(TimeSpan.FromMinutes(5));
|
||||
|
||||
if (!await _cipherService.VerifyOrganizationHasUnassignedItemsAsync())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var message = _environmentService.SelectedRegion == Core.Enums.Region.SelfHosted
|
||||
? AppResources.OrganizationUnassignedItemsMessageSelfHost041624DescriptionLong
|
||||
: AppResources.OrganizationUnassignedItemsMessageUSEUDescriptionLong;
|
||||
|
||||
var response = await _deviceActionService.DisplayAlertAsync(AppResources.Notice,
|
||||
message,
|
||||
null,
|
||||
AppResources.RemindMeLater,
|
||||
AppResources.Ok);
|
||||
|
||||
if (response == AppResources.Ok)
|
||||
{
|
||||
await _stateService.SetShouldCheckOrganizationUnassignedItemsAsync(false);
|
||||
}
|
||||
}
|
||||
catch (TimeoutException) { }
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Exception(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1328,7 +1328,7 @@ namespace Bit.Core.Resources.Localization {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Bitwarden Help Center.
|
||||
/// Looks up a localized string similar to Bitwarden help center.
|
||||
/// </summary>
|
||||
public static string BitwardenHelpCenter {
|
||||
get {
|
||||
@@ -4929,15 +4929,6 @@ namespace Bit.Core.Resources.Localization {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Notice.
|
||||
/// </summary>
|
||||
public static string Notice {
|
||||
get {
|
||||
return ResourceManager.GetString("Notice", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to This account has two-step login set up, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app)..
|
||||
/// </summary>
|
||||
@@ -5173,24 +5164,6 @@ namespace Bit.Core.Resources.Localization {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to On May 16, 2024, unassigned organization items will no longer be visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible..
|
||||
/// </summary>
|
||||
public static string OrganizationUnassignedItemsMessageSelfHost041624DescriptionLong {
|
||||
get {
|
||||
return ResourceManager.GetString("OrganizationUnassignedItemsMessageSelfHost041624DescriptionLong", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Unassigned organization items are no longer visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible..
|
||||
/// </summary>
|
||||
public static string OrganizationUnassignedItemsMessageUSEUDescriptionLong {
|
||||
get {
|
||||
return ResourceManager.GetString("OrganizationUnassignedItemsMessageUSEUDescriptionLong", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Organization identifier.
|
||||
/// </summary>
|
||||
@@ -5876,15 +5849,6 @@ namespace Bit.Core.Resources.Localization {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Remind me later.
|
||||
/// </summary>
|
||||
public static string RemindMeLater {
|
||||
get {
|
||||
return ResourceManager.GetString("RemindMeLater", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Remove.
|
||||
/// </summary>
|
||||
|
||||
@@ -422,7 +422,7 @@
|
||||
<value>خدمة التعبئة التلقائية</value>
|
||||
</data>
|
||||
<data name="SetBitwardenAsPasskeyManagerDescription" xml:space="preserve">
|
||||
<value>Set Bitwarden as your passkey provider in device settings.</value>
|
||||
<value>تعيين Bitwarden كموفر مفتاح المرور الخاص بك في إعدادات الجهاز.</value>
|
||||
</data>
|
||||
<data name="AvoidAmbiguousCharacters" xml:space="preserve">
|
||||
<value>تجنب الأحرف الغامضة</value>
|
||||
|
||||
@@ -502,7 +502,7 @@
|
||||
<value>Pro spuštění rozšíření klepněte na ikonu Bitwardenu v menu.</value>
|
||||
</data>
|
||||
<data name="ExtensionTurnOn" xml:space="preserve">
|
||||
<value>Pro zapnutí Bitwardenu v prohlížeči Safari a dalších aplikacích klepněte na ikonu "Další“ v dolní části menu.</value>
|
||||
<value>Pro zapnutí Bitwardenu v prohlížeči Safari a dalších aplikacích klepněte na ikonu "Další" v dolní části menu.</value>
|
||||
</data>
|
||||
<data name="Favorite" xml:space="preserve">
|
||||
<value>Oblíbené</value>
|
||||
|
||||
@@ -3001,6 +3001,6 @@ Möchtest du zu diesem Konto wechseln?</value>
|
||||
<value>Der Passkey-Vorgang ist fehlgeschlagen, da die App nicht in den Asset-Links gefunden wurde</value>
|
||||
</data>
|
||||
<data name="PasskeyOperationFailedBecauseAppCouldNotBeVerified" xml:space="preserve">
|
||||
<value>Der Passwort-Vorgang ist fehlgeschlagen, da die App nicht verifiziert werden konnte</value>
|
||||
<value>Der Passkey-Vorgang ist fehlgeschlagen, da die App nicht verifiziert werden konnte</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -422,7 +422,7 @@
|
||||
<value>Servicio de autocompletado</value>
|
||||
</data>
|
||||
<data name="SetBitwardenAsPasskeyManagerDescription" xml:space="preserve">
|
||||
<value>Set Bitwarden as your passkey provider in device settings.</value>
|
||||
<value>Establece Bitwarden como tu proveedor de claves de acceso en los ajustes del dispositivo.</value>
|
||||
</data>
|
||||
<data name="AvoidAmbiguousCharacters" xml:space="preserve">
|
||||
<value>Evitar caracteres ambiguos</value>
|
||||
@@ -1195,7 +1195,7 @@ El escaneo se realizará automáticamente.</value>
|
||||
<value>Windows Hello</value>
|
||||
</data>
|
||||
<data name="BitwardenCredentialProviderGoToSettings" xml:space="preserve">
|
||||
<value>We were unable to automatically open the Android credential provider settings menu for you. You can navigate to the credential provider settings menu manually from Android Settings > System > Passwords & accounts > Passwords, passkeys and data services.</value>
|
||||
<value>No hemos podido abrir automáticamente el menú de ajustes del proveedor de credenciales de Android. Puedes navegar al menú de ajustes del proveedor de credenciales de Android manualmente desde Ajustes > Sistema > Contraseñas y cuentas > Contraseñas, claves de acceso y servicios de datos.</value>
|
||||
</data>
|
||||
<data name="BitwardenAutofillGoToSettings" xml:space="preserve">
|
||||
<value>No hemos podido abrir automáticamente las opciones de autorellenado de Android. Puedes ir al menú de opciones de autorellenado manualmente desde Ajustes de Android > Sistema > Idiomas y entradas > Avanzado > Servicio autocompletar.</value>
|
||||
@@ -1822,7 +1822,7 @@ El escaneo se realizará automáticamente.</value>
|
||||
<value>Bitwarden necesita atención - Activar "Sobrescribir" en "Servicios de Auto-llenado" desde la configuración de Bitwarden</value>
|
||||
</data>
|
||||
<data name="PasskeyManagement" xml:space="preserve">
|
||||
<value>Passkey management</value>
|
||||
<value>Gestión de claves de acceso</value>
|
||||
</data>
|
||||
<data name="AutofillServices" xml:space="preserve">
|
||||
<value>Servicios de Autollenado</value>
|
||||
@@ -1867,19 +1867,19 @@ El escaneo se realizará automáticamente.</value>
|
||||
<value>Una política de organización está afectando sus opciones de propiedad.</value>
|
||||
</data>
|
||||
<data name="Send" xml:space="preserve">
|
||||
<value>Envío</value>
|
||||
<value>Send</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="AllSends" xml:space="preserve">
|
||||
<value>Todos los Envíos</value>
|
||||
<value>Todos los Sends</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="Sends" xml:space="preserve">
|
||||
<value>Envíos</value>
|
||||
<value>Sends</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="NameInfo" xml:space="preserve">
|
||||
<value>Un nombre amigable para describir este Envío.</value>
|
||||
<value>Un nombre amigable para describir este Send.</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="Text" xml:space="preserve">
|
||||
@@ -1972,15 +1972,15 @@ El escaneo se realizará automáticamente.</value>
|
||||
<value>La contraseña ha sido eliminada.</value>
|
||||
</data>
|
||||
<data name="NotesInfo" xml:space="preserve">
|
||||
<value>Notas privadas sobre este Envío.</value>
|
||||
<value>Notas privadas sobre este Send.</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="DisableSend" xml:space="preserve">
|
||||
<value>Desactivar este Envío para que nadie pueda acceder a él.</value>
|
||||
<value>Desactivar este Send para que nadie pueda acceder a él</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="NoSends" xml:space="preserve">
|
||||
<value>No hay Envíos en tu cuenta.</value>
|
||||
<value>No hay Sends en tu cuenta.</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="AddASend" xml:space="preserve">
|
||||
@@ -1994,35 +1994,35 @@ El escaneo se realizará automáticamente.</value>
|
||||
<value>Compartir enlace</value>
|
||||
</data>
|
||||
<data name="SendLink" xml:space="preserve">
|
||||
<value>Enviar enlace</value>
|
||||
<value>Enlace Send</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="SearchSends" xml:space="preserve">
|
||||
<value>Buscar Envíos</value>
|
||||
<value>Buscar Sends</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="EditSend" xml:space="preserve">
|
||||
<value>Editar Envío</value>
|
||||
<value>Editar Send</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="AddSend" xml:space="preserve">
|
||||
<value>Añadir Envío</value>
|
||||
<value>Nuevo Send</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="AreYouSureDeleteSend" xml:space="preserve">
|
||||
<value>¿Seguro que quieres eliminar este Envío?</value>
|
||||
<value>¿Seguro que quieres eliminar este Send?</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="SendDeleted" xml:space="preserve">
|
||||
<value>El Envío se ha eliminado.</value>
|
||||
<value>Send eliminado</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="SendUpdated" xml:space="preserve">
|
||||
<value>Envío actualizado.</value>
|
||||
<value>Send guardado</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="NewSendCreated" xml:space="preserve">
|
||||
<value>Nuevo Envío creado.</value>
|
||||
<value>Send creado</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="OneDay" xml:space="preserve">
|
||||
@@ -2044,7 +2044,7 @@ El escaneo se realizará automáticamente.</value>
|
||||
<value>Personalizado</value>
|
||||
</data>
|
||||
<data name="ShareOnSave" xml:space="preserve">
|
||||
<value>Compartir este Envío al guardarlo.</value>
|
||||
<value>Compartir este Send al guardarlo</value>
|
||||
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
|
||||
</data>
|
||||
<data name="SendDisabledWarning" xml:space="preserve">
|
||||
@@ -2203,7 +2203,7 @@ El escaneo se realizará automáticamente.</value>
|
||||
<value>Enviando</value>
|
||||
</data>
|
||||
<data name="CopySendLinkOnSave" xml:space="preserve">
|
||||
<value>Copiar enlace Enviar al guardar</value>
|
||||
<value>Copiar enlace del Send al guardar</value>
|
||||
</data>
|
||||
<data name="SendingCode" xml:space="preserve">
|
||||
<value>Enviando código...</value>
|
||||
@@ -2810,7 +2810,7 @@ seleccione Agregar TOTP para almacenar la clave de forma segura</value>
|
||||
<value>{0} horas</value>
|
||||
</data>
|
||||
<data name="PasskeyManagementExplanationLong" xml:space="preserve">
|
||||
<value>Use Bitwarden to save new passkeys and log in with passkeys stored in your vault.</value>
|
||||
<value>Usa Bitwarden para guardar nuevas claves de acceso e iniciar sesión con las claves de acceso almacenadas en tu caja fuerte.</value>
|
||||
</data>
|
||||
<data name="AutofillServicesExplanationLong" xml:space="preserve">
|
||||
<value>El Framework de Autofill de Android se utiliza para ayudar a rellenar información de inicio de sesión en otras aplicaciones en tu dispositivo.</value>
|
||||
@@ -2841,7 +2841,7 @@ seleccione Agregar TOTP para almacenar la clave de forma segura</value>
|
||||
<value>¿Continuar a la App Store?</value>
|
||||
</data>
|
||||
<data name="ContinueToDeviceSettings" xml:space="preserve">
|
||||
<value>Continue to device Settings?</value>
|
||||
<value>¿Continuar a los ajustes del dispositivo?</value>
|
||||
</data>
|
||||
<data name="TwoStepLoginDescriptionLong" xml:space="preserve">
|
||||
<value>Haz tu cuenta más segura al configurar el inicio de sesión en dos pasos en la aplicación web de Bitwarden.</value>
|
||||
@@ -2894,25 +2894,25 @@ seleccione Agregar TOTP para almacenar la clave de forma segura</value>
|
||||
<value>Configura una opción de desbloqueo para cambiar tu acción de tiempo de espera de tu caja fuerte.</value>
|
||||
</data>
|
||||
<data name="ChooseALoginToSaveThisPasskeyTo" xml:space="preserve">
|
||||
<value>Choose a login to save this passkey to</value>
|
||||
<value>Escoge un inicio de sesión para guardar esta clave de acceso</value>
|
||||
</data>
|
||||
<data name="SavePasskeyAsNewLogin" xml:space="preserve">
|
||||
<value>Save passkey as new login</value>
|
||||
<value>Guardar clave de acceso como un nuevo inicio de sesión</value>
|
||||
</data>
|
||||
<data name="SavePasskey" xml:space="preserve">
|
||||
<value>Save passkey</value>
|
||||
<value>Guardar clave de acceso</value>
|
||||
</data>
|
||||
<data name="PasskeysForX" xml:space="preserve">
|
||||
<value>Passkeys for {0}</value>
|
||||
<value>Claves de acceso para {0}</value>
|
||||
</data>
|
||||
<data name="PasswordsForX" xml:space="preserve">
|
||||
<value>Passwords for {0}</value>
|
||||
<value>Contraseñas para {0}</value>
|
||||
</data>
|
||||
<data name="OverwritePasskey" xml:space="preserve">
|
||||
<value>Overwrite passkey?</value>
|
||||
<value>¿Sobreescribir clave de acceso?</value>
|
||||
</data>
|
||||
<data name="ThisItemAlreadyContainsAPasskeyAreYouSureYouWantToOverwriteTheCurrentPasskey" xml:space="preserve">
|
||||
<value>This item already contains a passkey. Are you sure you want to overwrite the current passkey?</value>
|
||||
<value>Este elemento ya contiene una clave de acceso. ¿Estás seguro de que quieres sobreescribir la clave de acceso actual?</value>
|
||||
</data>
|
||||
<data name="DuoTwoStepLoginIsRequiredForYourAccount" xml:space="preserve">
|
||||
<value>Se requiere el inicio de sesión en dos pasos Duo para su cuenta. </value>
|
||||
@@ -2924,86 +2924,86 @@ seleccione Agregar TOTP para almacenar la clave de forma segura</value>
|
||||
<value>Iniciar Duo</value>
|
||||
</data>
|
||||
<data name="VerificationRequiredByX" xml:space="preserve">
|
||||
<value>Verification required by {0}</value>
|
||||
<value>Verificación requerida por {0}</value>
|
||||
</data>
|
||||
<data name="VerificationRequiredForThisActionSetUpAnUnlockMethodInBitwardenToContinue" xml:space="preserve">
|
||||
<value>Verification required for this action. Set up an unlock method in Bitwarden to continue.</value>
|
||||
<value>Verificación requerida para esta acción. Establece un método de desbloqueo en Bitwarden para continuar.</value>
|
||||
</data>
|
||||
<data name="ErrorCreatingPasskey" xml:space="preserve">
|
||||
<value>Error creating passkey</value>
|
||||
<value>Error creando clave de acceso</value>
|
||||
</data>
|
||||
<data name="ErrorReadingPasskey" xml:space="preserve">
|
||||
<value>Error reading passkey</value>
|
||||
<value>Error leyendo clave de acceso</value>
|
||||
</data>
|
||||
<data name="ThereWasAProblemCreatingAPasskeyForXTryAgainLater" xml:space="preserve">
|
||||
<value>There was a problem creating a passkey for {0}. Try again later.</value>
|
||||
<value>Hubo un problema creando la clave de acceso para {0}. Inténtalo de nuevo más tarde.</value>
|
||||
<comment>The parameter is the RpId</comment>
|
||||
</data>
|
||||
<data name="ThereWasAProblemReadingAPasskeyForXTryAgainLater" xml:space="preserve">
|
||||
<value>There was a problem reading your passkey for {0}. Try again later.</value>
|
||||
<value>Hubo un problema leyendo la clave de acceso para {0}. Inténtalo de nuevo más tarde.</value>
|
||||
<comment>The parameter is the RpId</comment>
|
||||
</data>
|
||||
<data name="VerifyingIdentityEllipsis" xml:space="preserve">
|
||||
<value>Verifying identity...</value>
|
||||
<value>Verificando identidad...</value>
|
||||
</data>
|
||||
<data name="Passwords" xml:space="preserve">
|
||||
<value>Passwords</value>
|
||||
<value>Contraseñas</value>
|
||||
</data>
|
||||
<data name="UnknownAccount" xml:space="preserve">
|
||||
<value>Unknown account</value>
|
||||
<value>Cuenta desconocida</value>
|
||||
</data>
|
||||
<data name="SetUpAutofill" xml:space="preserve">
|
||||
<value>Set up auto-fill</value>
|
||||
<value>Establecer autocompletar</value>
|
||||
</data>
|
||||
<data name="GetInstantAccessToYourPasswordsAndPasskeys" xml:space="preserve">
|
||||
<value>Get instant access to your passwords and passkeys!</value>
|
||||
<value>¡Consigue acceso instantáneo a tus contraseñas y claves de acceso!</value>
|
||||
</data>
|
||||
<data name="SetUpAutoFillDescriptionLong" xml:space="preserve">
|
||||
<value>To set up password auto-fill and passkey management, set Bitwarden as your preferred provider in the iOS Settings.</value>
|
||||
<value>Para configurar el autocompletado y la administración de claves de acceso, establezca Bitwarden como su proveedor preferido en los ajustes de iOS.</value>
|
||||
</data>
|
||||
<data name="FirstDotGoToYourDeviceSettingsPasswordsPasswordOptions" xml:space="preserve">
|
||||
<value>1. Go to your device's Settings > Passwords > Password Options</value>
|
||||
<value>1. Ve a los Ajustes de tu dispositivo > Contraseñas > Opciones de Contraseña</value>
|
||||
</data>
|
||||
<data name="SecondDotTurnOnAutoFill" xml:space="preserve">
|
||||
<value>2. Turn on AutoFill</value>
|
||||
<value>2. Habilita el autocompletado</value>
|
||||
</data>
|
||||
<data name="ThirdDotSelectBitwardenToUseForPasswordsAndPasskeys" xml:space="preserve">
|
||||
<value>3. Select "Bitwarden" to use for passwords and passkeys</value>
|
||||
<value>3. Selecciona "Bitwarden" para usar contraseñas y claves de acceso</value>
|
||||
</data>
|
||||
<data name="YourPasskeyWillBeSavedToYourBitwardenVault" xml:space="preserve">
|
||||
<value>Your passkey will be saved to your Bitwarden vault</value>
|
||||
<value>Tu clave de acceso se guardará en tu caja fuerte de Bitwarden</value>
|
||||
</data>
|
||||
<data name="YourPasskeyWillBeSavedToYourBitwardenVaultForX" xml:space="preserve">
|
||||
<value>Your passkey will be saved to your Bitwarden vault for {0}</value>
|
||||
<value>Tu clave de acceso se guardará en tu caja fuerte de Bitwarden para {0}</value>
|
||||
</data>
|
||||
<data name="OrganizationUnassignedItemsMessageUSEUDescriptionLong" xml:space="preserve">
|
||||
<value>Unassigned organization items are no longer visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible.</value>
|
||||
<value>Los elementos de organización sin asignar ya no están visibles en la vista Todas las cajas fuertes y solo se puede acceder a ellos a través de la consola de administrador. Asigne estos elementos a una colección desde la Consola de Administrador para hacerlos visibles.</value>
|
||||
</data>
|
||||
<data name="OrganizationUnassignedItemsMessageSelfHost041624DescriptionLong" xml:space="preserve">
|
||||
<value>On May 16, 2024, unassigned organization items will no longer be visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible.</value>
|
||||
<value>El 16 de mayo de 2024, los elementos de organización no asignados ya no serán visibles en la vista Todas las cajas fuertes y solo serán accesibles a través de la Consola de Administrador. Asigna estos objetos a una colección desde la Consola de Administrador para hacerlos visibles.</value>
|
||||
</data>
|
||||
<data name="RemindMeLater" xml:space="preserve">
|
||||
<value>Remind me later</value>
|
||||
<value>Recuérdamelo más tarde</value>
|
||||
</data>
|
||||
<data name="Notice" xml:space="preserve">
|
||||
<value>Notice</value>
|
||||
<value>Aviso</value>
|
||||
</data>
|
||||
<data name="PasskeysNotSupportedForThisApp" xml:space="preserve">
|
||||
<value>Passkeys not supported for this app</value>
|
||||
<value>Claves de acceso no soportadas para esta aplicación</value>
|
||||
</data>
|
||||
<data name="PasskeyOperationFailedBecauseBrowserIsNotPrivileged" xml:space="preserve">
|
||||
<value>Passkey operation failed because browser is not privileged</value>
|
||||
<value>Falló la operación de la clave de acceso porque el navegador no tiene privilegios</value>
|
||||
</data>
|
||||
<data name="PasskeyOperationFailedBecauseBrowserSignatureDoesNotMatch" xml:space="preserve">
|
||||
<value>Passkey operation failed because browser signature does not match</value>
|
||||
<value>Falló la operación de la clave de acceso porque la firma del navegador no coincide</value>
|
||||
</data>
|
||||
<data name="PasskeyOperationFailedBecauseOfMissingAssetLinks" xml:space="preserve">
|
||||
<value>Passkey operation failed because of missing asset links</value>
|
||||
<value>Falló la operación de la clave de acceso porque faltan enlaces de recursos</value>
|
||||
</data>
|
||||
<data name="PasskeyOperationFailedBecauseAppNotFoundInAssetLinks" xml:space="preserve">
|
||||
<value>Passkey operation failed because app not found in asset links</value>
|
||||
<value>Falló la operación de la clave de acceso porque la aplicación no encontró los enlaces de recursos</value>
|
||||
</data>
|
||||
<data name="PasskeyOperationFailedBecauseAppCouldNotBeVerified" xml:space="preserve">
|
||||
<value>Passkey operation failed because app could not be verified</value>
|
||||
<value>Falló la operación de la clave de acceso porque la aplicación no pudo ser verificada</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2397,7 +2397,7 @@ turvallisesti valitsemalla "Lisää TOTP"</value>
|
||||
<value>Catch-all-sähköposti</value>
|
||||
</data>
|
||||
<data name="ForwardedEmailAlias" xml:space="preserve">
|
||||
<value>Sähköpostialias välitykseen</value>
|
||||
<value>Sähköpostialias ohjaukseen</value>
|
||||
</data>
|
||||
<data name="RandomWord" xml:space="preserve">
|
||||
<value>Satunnainen sana</value>
|
||||
@@ -2818,7 +2818,7 @@ Haluatko vaihtaa tähän tiliin?</value>
|
||||
<value>Tekstinsisäistä automattitäyttöä käytetään, jos aktiivinen näppäimistö tukee sitä. Muussa tapauksessa käytetään ponnahdusvalintaa.</value>
|
||||
</data>
|
||||
<data name="AdditionalOptions" xml:space="preserve">
|
||||
<value>Lisäasetukset</value>
|
||||
<value>Lisävalinnat</value>
|
||||
</data>
|
||||
<data name="ContinueToWebApp" xml:space="preserve">
|
||||
<value>Avataanko verkkosovellus?</value>
|
||||
@@ -2991,7 +2991,7 @@ Haluatko vaihtaa tähän tiliin?</value>
|
||||
<value>Suojausavaimia ei tueta tässä sovelluksessa</value>
|
||||
</data>
|
||||
<data name="PasskeyOperationFailedBecauseBrowserIsNotPrivileged" xml:space="preserve">
|
||||
<value>Suojausavaintoiminto epäonnistui, koska selainta ei ole korotettu</value>
|
||||
<value>Suojausavaintoiminto epäonnistui, koska selainta ei ole hyväksytty</value>
|
||||
</data>
|
||||
<data name="PasskeyOperationFailedBecauseBrowserSignatureDoesNotMatch" xml:space="preserve">
|
||||
<value>Suojausavaintoiminto epäonnistui, koska selaimen allekirjoitus ei täsmää</value>
|
||||
@@ -3003,6 +3003,6 @@ Haluatko vaihtaa tähän tiliin?</value>
|
||||
<value>Suojausavaintoiminto epäonnistui, koska sovellusta ei löytynyt asset-liitoksista</value>
|
||||
</data>
|
||||
<data name="PasskeyOperationFailedBecauseAppCouldNotBeVerified" xml:space="preserve">
|
||||
<value>Suojausavaintoiminto epäonnistui, koska sovellusta ei voitu vahvistaa</value>
|
||||
<value>Suojausavaintoiminto epäonnistui, koska sovellusta ei voitu varmentaa</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2905,7 +2905,7 @@ Voulez-vous basculer vers ce compte ?</value>
|
||||
<value>Clés d'accès pour {0}</value>
|
||||
</data>
|
||||
<data name="PasswordsForX" xml:space="preserve">
|
||||
<value>Passwords for {0}</value>
|
||||
<value>Mots de passe pour {0}</value>
|
||||
</data>
|
||||
<data name="OverwritePasskey" xml:space="preserve">
|
||||
<value>Overwrite passkey?</value>
|
||||
@@ -2946,7 +2946,7 @@ Voulez-vous basculer vers ce compte ?</value>
|
||||
<value>Verifying identity...</value>
|
||||
</data>
|
||||
<data name="Passwords" xml:space="preserve">
|
||||
<value>Passwords</value>
|
||||
<value>Mots de passe</value>
|
||||
</data>
|
||||
<data name="UnknownAccount" xml:space="preserve">
|
||||
<value>Unknown account</value>
|
||||
|
||||
@@ -1662,7 +1662,7 @@ Nolasīšana notiks automātiski.</value>
|
||||
<value>Jāapstiprina identitāte, lai turpinātu.</value>
|
||||
</data>
|
||||
<data name="ExportVaultWarning" xml:space="preserve">
|
||||
<value>Šī izguve satur glabātavas datus nešifrētā veidā. Izdoto datni nevajadzētu glabāt vai sūtīt nedrošos veidos (piemēram, e-pastā). Izdzēst to uzreiz pēc izmantošanas.</value>
|
||||
<value>Šī izguve satur glabātavas datus nešifrētā veidā. Izgūto datni nevajadzētu glabāt vai sūtīt nedrošos veidos (piemēram, e-pastā). Tā ir jāizdzēš uzreiz pēc izmantošanas.</value>
|
||||
</data>
|
||||
<data name="EncExportKeyWarning" xml:space="preserve">
|
||||
<value>Šī izguve šifrē datus ar konta šifrēšanas atslēgu. Ja tā jebkad tiks mainīta, izvadi vajadzētu veikt vēlreiz, jo vairs nebūs iespējams atšifrēt šo datni.</value>
|
||||
@@ -2853,7 +2853,7 @@ Vai pārslēgties uz šo kontu?</value>
|
||||
<comment>The parameter is an URL, like vault.bitwarden.com.</comment>
|
||||
</data>
|
||||
<data name="LearnMoreAboutHowToUseBitwardenOnTheHelpCenter" xml:space="preserve">
|
||||
<value>Par to, kā izmantot Bitwarden, vairāk var uzzināt palīdzības centrā.</value>
|
||||
<value>Vairāk par to, kā izmantot Bitwarden, var uzzināt palīdzības centrā.</value>
|
||||
</data>
|
||||
<data name="ContactSupportDescriptionLong" xml:space="preserve">
|
||||
<value>Meklējamais nav atrodams? Ir iespēja sazināties ar Bitwarden atbalstu bitwarden.com.</value>
|
||||
@@ -2865,7 +2865,7 @@ Vai pārslēgties uz šo kontu?</value>
|
||||
<value>Vairāk sava Bitwarden konta iespēju var izpētīt tīmekļa vietnē.</value>
|
||||
</data>
|
||||
<data name="LearnAboutOrganizationsDescriptionLong" xml:space="preserve">
|
||||
<value>Bitwarden nodrošina iespēju kopīgot savas glabātavas vienumus ar citiem, kad tiek izmantota apvienība. Vairāk var uzzināt bitwarden.com tīmekļvietnē.</value>
|
||||
<value>Bitwarden nodrošina iespēju kopīgot savas glabātavas vienumus ar citiem, kad tiek izmantota apvienība. Vairāk var uzzināt tīmekļvietnē bitwarden.com.</value>
|
||||
</data>
|
||||
<data name="RateAppDescriptionLong" xml:space="preserve">
|
||||
<value>Var palīdzēt citiem noskaidrot, vai Bitwarden tiem der. To var izdarīt lietotņu veikalā, atstājot vērtējumu.</value>
|
||||
|
||||
@@ -1195,7 +1195,7 @@ A leitura será feita automaticamente.</value>
|
||||
<value>Windows Hello</value>
|
||||
</data>
|
||||
<data name="BitwardenCredentialProviderGoToSettings" xml:space="preserve">
|
||||
<value>We were unable to automatically open the Android credential provider settings menu for you. You can navigate to the credential provider settings menu manually from Android Settings > System > Passwords & accounts > Passwords, passkeys and data services.</value>
|
||||
<value>Não foi possível abrir automaticamente o menu de configurações do provedor de credenciais do Android para você. Você pode navegar para o menu de configurações do provedor de credenciais manualmente a partir de Configurações do Android > Sistema > Senhas e Contas > Senhas chaves e serviços de dados.</value>
|
||||
</data>
|
||||
<data name="BitwardenAutofillGoToSettings" xml:space="preserve">
|
||||
<value>Não foi possível abrir automaticamente o menu de configurações de autopreenchimento do Android para você. Você pode navegar para o menu de configurações de autopreenchimento manualmente a partir de Configurações do Android > Sistema > Idiomas e Entrada > Avançado > Serviço de autopreenchimento.</value>
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
<comment>Alert title when something goes wrong.</comment>
|
||||
</data>
|
||||
<data name="Back" xml:space="preserve">
|
||||
<value>Retroceder</value>
|
||||
<value>Voltar</value>
|
||||
<comment>Navigate back to the previous screen.</comment>
|
||||
</data>
|
||||
<data name="Bitwarden" xml:space="preserve">
|
||||
@@ -961,7 +961,7 @@ A leitura será efetuada automaticamente.</value>
|
||||
<value>Ambiente personalizado</value>
|
||||
</data>
|
||||
<data name="CustomEnvironmentFooter" xml:space="preserve">
|
||||
<value>Para utilizadores avançados. Pode especificar o URL de base de cada serviço independentemente.</value>
|
||||
<value>Para utilizadores avançados. Pode especificar o URL de base de cada serviço de forma independente.</value>
|
||||
</data>
|
||||
<data name="EnvironmentSaved" xml:space="preserve">
|
||||
<value>Os URLs de ambiente foram guardados.</value>
|
||||
|
||||
@@ -2769,7 +2769,7 @@ Do you want to switch to this account?</value>
|
||||
<value>Account security</value>
|
||||
</data>
|
||||
<data name="BitwardenHelpCenter" xml:space="preserve">
|
||||
<value>Bitwarden Help Center</value>
|
||||
<value>Bitwarden help center</value>
|
||||
</data>
|
||||
<data name="ContactBitwardenSupport" xml:space="preserve">
|
||||
<value>Contact Bitwarden support</value>
|
||||
@@ -2975,18 +2975,6 @@ Do you want to switch to this account?</value>
|
||||
<data name="YourPasskeyWillBeSavedToYourBitwardenVaultForX" xml:space="preserve">
|
||||
<value>Your passkey will be saved to your Bitwarden vault for {0}</value>
|
||||
</data>
|
||||
<data name="OrganizationUnassignedItemsMessageUSEUDescriptionLong" xml:space="preserve">
|
||||
<value>Unassigned organization items are no longer visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible.</value>
|
||||
</data>
|
||||
<data name="OrganizationUnassignedItemsMessageSelfHost041624DescriptionLong" xml:space="preserve">
|
||||
<value>On May 16, 2024, unassigned organization items will no longer be visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible.</value>
|
||||
</data>
|
||||
<data name="RemindMeLater" xml:space="preserve">
|
||||
<value>Remind me later</value>
|
||||
</data>
|
||||
<data name="Notice" xml:space="preserve">
|
||||
<value>Notice</value>
|
||||
</data>
|
||||
<data name="PasskeysNotSupportedForThisApp" xml:space="preserve">
|
||||
<value>Passkeys not supported for this app</value>
|
||||
</data>
|
||||
|
||||
@@ -422,7 +422,7 @@
|
||||
<value>Hjälpmedelsservice för automatisk ifyllnad</value>
|
||||
</data>
|
||||
<data name="SetBitwardenAsPasskeyManagerDescription" xml:space="preserve">
|
||||
<value>Set Bitwarden as your passkey provider in device settings.</value>
|
||||
<value>Ange Bitwarden som din lösenordsleverantör i enhetsinställningarna.</value>
|
||||
</data>
|
||||
<data name="AvoidAmbiguousCharacters" xml:space="preserve">
|
||||
<value>Undvik tvetydiga tecken</value>
|
||||
@@ -1196,7 +1196,7 @@ Skanningen sker automatiskt.</value>
|
||||
<value>Windows Hello</value>
|
||||
</data>
|
||||
<data name="BitwardenCredentialProviderGoToSettings" xml:space="preserve">
|
||||
<value>We were unable to automatically open the Android credential provider settings menu for you. You can navigate to the credential provider settings menu manually from Android Settings > System > Passwords & accounts > Passwords, passkeys and data services.</value>
|
||||
<value>Det gick inte att automatiskt öppna menyn för Android-autentiseringsleverantörsinställningar för dig. Du kan navigera till menyn autentiseringsleverantörsinställningar manuellt från Android Inställningar > System > Lösenord och konton > Lösenord, Nyckelord och datatjänster.</value>
|
||||
</data>
|
||||
<data name="BitwardenAutofillGoToSettings" xml:space="preserve">
|
||||
<value>Det gick inte att automatiskt öppna inställningsmenyn för Android automatisk ifyllnad. Du kan navigera till menyn manuellt från Android inställningar > System > Språk och inmatning > Avancerat > Tjänsten autofyll.</value>
|
||||
@@ -1824,7 +1824,7 @@ Skanningen sker automatiskt.</value>
|
||||
<value>Bitwarden behöver din uppmärksamhet - Aktivera "Överlappning" under "Tjänster för automatisk ifyllnad" i Bitwardens inställningar</value>
|
||||
</data>
|
||||
<data name="PasskeyManagement" xml:space="preserve">
|
||||
<value>Passkey management</value>
|
||||
<value>Passkey hantering</value>
|
||||
</data>
|
||||
<data name="AutofillServices" xml:space="preserve">
|
||||
<value>Tjänster för automatisk ifyllnad</value>
|
||||
@@ -2897,19 +2897,19 @@ Vill du byta till detta konto?</value>
|
||||
<value>Choose a login to save this passkey to</value>
|
||||
</data>
|
||||
<data name="SavePasskeyAsNewLogin" xml:space="preserve">
|
||||
<value>Save passkey as new login</value>
|
||||
<value>Spara passkey som ny inloggning</value>
|
||||
</data>
|
||||
<data name="SavePasskey" xml:space="preserve">
|
||||
<value>Save passkey</value>
|
||||
<value>Spara passkey</value>
|
||||
</data>
|
||||
<data name="PasskeysForX" xml:space="preserve">
|
||||
<value>Passkeys for {0}</value>
|
||||
<value>Passkeys för {0}</value>
|
||||
</data>
|
||||
<data name="PasswordsForX" xml:space="preserve">
|
||||
<value>Passwords for {0}</value>
|
||||
<value>Lösenord för {0}</value>
|
||||
</data>
|
||||
<data name="OverwritePasskey" xml:space="preserve">
|
||||
<value>Overwrite passkey?</value>
|
||||
<value>Skriv över passkey?</value>
|
||||
</data>
|
||||
<data name="ThisItemAlreadyContainsAPasskeyAreYouSureYouWantToOverwriteTheCurrentPasskey" xml:space="preserve">
|
||||
<value>This item already contains a passkey. Are you sure you want to overwrite the current passkey?</value>
|
||||
@@ -2924,16 +2924,16 @@ Vill du byta till detta konto?</value>
|
||||
<value>Starta Duo</value>
|
||||
</data>
|
||||
<data name="VerificationRequiredByX" xml:space="preserve">
|
||||
<value>Verification required by {0}</value>
|
||||
<value>Verifiering krävs av {0}</value>
|
||||
</data>
|
||||
<data name="VerificationRequiredForThisActionSetUpAnUnlockMethodInBitwardenToContinue" xml:space="preserve">
|
||||
<value>Verification required for this action. Set up an unlock method in Bitwarden to continue.</value>
|
||||
</data>
|
||||
<data name="ErrorCreatingPasskey" xml:space="preserve">
|
||||
<value>Error creating passkey</value>
|
||||
<value>Fel vid skapande av passkey</value>
|
||||
</data>
|
||||
<data name="ErrorReadingPasskey" xml:space="preserve">
|
||||
<value>Error reading passkey</value>
|
||||
<value>Fel vid läsning av passkey</value>
|
||||
</data>
|
||||
<data name="ThereWasAProblemCreatingAPasskeyForXTryAgainLater" xml:space="preserve">
|
||||
<value>There was a problem creating a passkey for {0}. Try again later.</value>
|
||||
@@ -2944,7 +2944,7 @@ Vill du byta till detta konto?</value>
|
||||
<comment>The parameter is the RpId</comment>
|
||||
</data>
|
||||
<data name="VerifyingIdentityEllipsis" xml:space="preserve">
|
||||
<value>Verifying identity...</value>
|
||||
<value>Verifierar identitet...</value>
|
||||
</data>
|
||||
<data name="Passwords" xml:space="preserve">
|
||||
<value>Lösenord</value>
|
||||
@@ -2965,22 +2965,22 @@ Vill du byta till detta konto?</value>
|
||||
<value>1. Gå till din enhets Inställningar > Lösenord > Lösenordsalternativ</value>
|
||||
</data>
|
||||
<data name="SecondDotTurnOnAutoFill" xml:space="preserve">
|
||||
<value>2. Turn on AutoFill</value>
|
||||
<value>2. Slå på AutoFyll</value>
|
||||
</data>
|
||||
<data name="ThirdDotSelectBitwardenToUseForPasswordsAndPasskeys" xml:space="preserve">
|
||||
<value>3. Select "Bitwarden" to use for passwords and passkeys</value>
|
||||
<value>3. Välj att använda "Bitwarden" för lösenord och passkeys</value>
|
||||
</data>
|
||||
<data name="YourPasskeyWillBeSavedToYourBitwardenVault" xml:space="preserve">
|
||||
<value>Your passkey will be saved to your Bitwarden vault</value>
|
||||
</data>
|
||||
<data name="YourPasskeyWillBeSavedToYourBitwardenVaultForX" xml:space="preserve">
|
||||
<value>Your passkey will be saved to your Bitwarden vault for {0}</value>
|
||||
<value>Din passkey kommer att sparas i ditt Bitwarden-valv för {0}</value>
|
||||
</data>
|
||||
<data name="OrganizationUnassignedItemsMessageUSEUDescriptionLong" xml:space="preserve">
|
||||
<value>Unassigned organization items are no longer visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible.</value>
|
||||
</data>
|
||||
<data name="OrganizationUnassignedItemsMessageSelfHost041624DescriptionLong" xml:space="preserve">
|
||||
<value>On May 16, 2024, unassigned organization items will no longer be visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible.</value>
|
||||
<value>Den 16 maj 2024 kommer otilldelade organisationsobjekt inte längre att synas i alla valvs-vyn och endast nås via administratörskonsollen. Tilldela dessa objekt till en samling från administratörskonsollen för att göra dem synliga.</value>
|
||||
</data>
|
||||
<data name="RemindMeLater" xml:space="preserve">
|
||||
<value>Påminn mig senare</value>
|
||||
|
||||
@@ -422,7 +422,7 @@
|
||||
<value>Otomatik doldurma hizmeti</value>
|
||||
</data>
|
||||
<data name="SetBitwardenAsPasskeyManagerDescription" xml:space="preserve">
|
||||
<value>Set Bitwarden as your passkey provider in device settings.</value>
|
||||
<value>Cihaz ayarlarınızdan Bitwarden'ı geçiş anahtarı sağlayıcınız olarak ayarlayın.</value>
|
||||
</data>
|
||||
<data name="AvoidAmbiguousCharacters" xml:space="preserve">
|
||||
<value>Okurken karışabilecek karakterleri kullanma</value>
|
||||
@@ -2838,7 +2838,7 @@ Bu hesaba geçmek ister misiniz?</value>
|
||||
<value>App Store'a gitmek ister misiniz?</value>
|
||||
</data>
|
||||
<data name="ContinueToDeviceSettings" xml:space="preserve">
|
||||
<value>Continue to device Settings?</value>
|
||||
<value>Cihaz ayarlarına gidilsin mi?</value>
|
||||
</data>
|
||||
<data name="TwoStepLoginDescriptionLong" xml:space="preserve">
|
||||
<value>Bitwarden web uygulamasında iki aşamalı girişi ayarlayarak hesabınızın güvenliğini artırabilirsiniz.</value>
|
||||
@@ -2891,7 +2891,7 @@ Bu hesaba geçmek ister misiniz?</value>
|
||||
<value>Kasa zaman aşımı eyleminizi değiştirmek için bir kilit açma yöntemi ayarlayın.</value>
|
||||
</data>
|
||||
<data name="ChooseALoginToSaveThisPasskeyTo" xml:space="preserve">
|
||||
<value>Choose a login to save this passkey to</value>
|
||||
<value>Bu geçiş anahtarının kaydedileceği hesabı seçin</value>
|
||||
</data>
|
||||
<data name="SavePasskeyAsNewLogin" xml:space="preserve">
|
||||
<value>Geçiş anahtarını yeni hesap olarak kaydet</value>
|
||||
@@ -2933,11 +2933,11 @@ Bu hesaba geçmek ister misiniz?</value>
|
||||
<value>Geçiş anahtarı okuma hatası</value>
|
||||
</data>
|
||||
<data name="ThereWasAProblemCreatingAPasskeyForXTryAgainLater" xml:space="preserve">
|
||||
<value>There was a problem creating a passkey for {0}. Try again later.</value>
|
||||
<value>{0} için geçiş anahtarı oluşturulamadı. Daha sonra tekrar deneyin.</value>
|
||||
<comment>The parameter is the RpId</comment>
|
||||
</data>
|
||||
<data name="ThereWasAProblemReadingAPasskeyForXTryAgainLater" xml:space="preserve">
|
||||
<value>There was a problem reading your passkey for {0}. Try again later.</value>
|
||||
<value>{0} için geçiş anahtarı okunamadı. Daha sonra tekrar deneyin.</value>
|
||||
<comment>The parameter is the RpId</comment>
|
||||
</data>
|
||||
<data name="VerifyingIdentityEllipsis" xml:space="preserve">
|
||||
@@ -2962,16 +2962,16 @@ Bu hesaba geçmek ister misiniz?</value>
|
||||
<value>1. Go to your device's Settings > Passwords > Password Options</value>
|
||||
</data>
|
||||
<data name="SecondDotTurnOnAutoFill" xml:space="preserve">
|
||||
<value>2. Turn on AutoFill</value>
|
||||
<value>Oto-Doldurma'yı Etkinleştir</value>
|
||||
</data>
|
||||
<data name="ThirdDotSelectBitwardenToUseForPasswordsAndPasskeys" xml:space="preserve">
|
||||
<value>3. Select "Bitwarden" to use for passwords and passkeys</value>
|
||||
<value>Parolalarınızı ve geçiş anahtarlarını kullanmak için "Bitwarden" seçin</value>
|
||||
</data>
|
||||
<data name="YourPasskeyWillBeSavedToYourBitwardenVault" xml:space="preserve">
|
||||
<value>Your passkey will be saved to your Bitwarden vault</value>
|
||||
<value>Geçiş anahtarınız Bitwarden kasasına kaydedilecektir</value>
|
||||
</data>
|
||||
<data name="YourPasskeyWillBeSavedToYourBitwardenVaultForX" xml:space="preserve">
|
||||
<value>Your passkey will be saved to your Bitwarden vault for {0}</value>
|
||||
<value>{0} için geçiş anahtarınız Bitwarden kasasına kaydedilecektir</value>
|
||||
</data>
|
||||
<data name="OrganizationUnassignedItemsMessageUSEUDescriptionLong" xml:space="preserve">
|
||||
<value>Unassigned organization items are no longer visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible.</value>
|
||||
@@ -2989,18 +2989,18 @@ Bu hesaba geçmek ister misiniz?</value>
|
||||
<value>Bu uygulamada geçiş anahtarları desteklenmiyor</value>
|
||||
</data>
|
||||
<data name="PasskeyOperationFailedBecauseBrowserIsNotPrivileged" xml:space="preserve">
|
||||
<value>Passkey operation failed because browser is not privileged</value>
|
||||
<value>Geçiş anahtarı eylemi başarısız oldu çünkü tarayıcı ayrıcalıklı değil</value>
|
||||
</data>
|
||||
<data name="PasskeyOperationFailedBecauseBrowserSignatureDoesNotMatch" xml:space="preserve">
|
||||
<value>Passkey operation failed because browser signature does not match</value>
|
||||
<value>Geçiş anahtarı eylemi başarısız oldu çünkü tarayıcı imzası uyumsuz</value>
|
||||
</data>
|
||||
<data name="PasskeyOperationFailedBecauseOfMissingAssetLinks" xml:space="preserve">
|
||||
<value>Passkey operation failed because of missing asset links</value>
|
||||
<value>Geçiş anahtarı eylemi başarısız oldu çünkü varlık bağlantıları eksik</value>
|
||||
</data>
|
||||
<data name="PasskeyOperationFailedBecauseAppNotFoundInAssetLinks" xml:space="preserve">
|
||||
<value>Passkey operation failed because app not found in asset links</value>
|
||||
<value>Geçiş anahtarı eylemi başarısız oldu çünkü uygulama varlık bağlantılarında bulunamadı</value>
|
||||
</data>
|
||||
<data name="PasskeyOperationFailedBecauseAppCouldNotBeVerified" xml:space="preserve">
|
||||
<value>Passkey operation failed because app could not be verified</value>
|
||||
<value>Geçiş anahtarı eylemi başarısız oldu çünkü uygulama doğrulanamadı</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -422,7 +422,7 @@
|
||||
<value>自动填充服务</value>
|
||||
</data>
|
||||
<data name="SetBitwardenAsPasskeyManagerDescription" xml:space="preserve">
|
||||
<value>在设备设置中将 Bitwarden 设置为您的通行密钥提供程序。</value>
|
||||
<value>在设备的设置中将 Bitwarden 设置为您的通行密钥提供程序。</value>
|
||||
</data>
|
||||
<data name="AvoidAmbiguousCharacters" xml:space="preserve">
|
||||
<value>避免易混淆的字符</value>
|
||||
@@ -1195,7 +1195,7 @@
|
||||
<value>Windows Hello</value>
|
||||
</data>
|
||||
<data name="BitwardenCredentialProviderGoToSettings" xml:space="preserve">
|
||||
<value>我们无法为您自动打开 Android 凭据提供者设置菜单。您可以通过“Android 设置 > 系统 > 密码和账户 > 密码、通行密钥和数据服务”手动定位到凭据提供者设置菜单。</value>
|
||||
<value>我们无法为您自动打开 Android 凭据提供程序设置菜单。您可以通过 Android 设置 > 系统 > 密码和账户 > 密码、通行密钥和数据服务手动定位到凭据提供程序设置菜单。</value>
|
||||
</data>
|
||||
<data name="BitwardenAutofillGoToSettings" xml:space="preserve">
|
||||
<value>我们无法为您自动打开 Android 自动填充设置菜单。您可以通过 Android 设置 > 系统 > 语言和输入 > 高级 > 自动填充服务,来手动导航到自动填充设置。</value>
|
||||
@@ -2500,7 +2500,7 @@
|
||||
<value>在 {1} 上以 {0} 身份登录</value>
|
||||
</data>
|
||||
<data name="NotYou" xml:space="preserve">
|
||||
<value>不是你?</value>
|
||||
<value>不是您吗?</value>
|
||||
</data>
|
||||
<data name="LogInWithMasterPassword" xml:space="preserve">
|
||||
<value>使用主密码登录</value>
|
||||
@@ -2695,7 +2695,7 @@
|
||||
<value>批准后,您将收到通知。 </value>
|
||||
</data>
|
||||
<data name="TroubleLoggingIn" xml:space="preserve">
|
||||
<value>登录遇到问题?</value>
|
||||
<value>登录遇到问题吗?</value>
|
||||
</data>
|
||||
<data name="LoggingInAsX" xml:space="preserve">
|
||||
<value>正登录为 {0}</value>
|
||||
@@ -2820,7 +2820,7 @@
|
||||
<value>附加选项</value>
|
||||
</data>
|
||||
<data name="ContinueToWebApp" xml:space="preserve">
|
||||
<value>前往网页 App 吗?</value>
|
||||
<value>前往网页应用吗?</value>
|
||||
</data>
|
||||
<data name="ContinueToX" xml:space="preserve">
|
||||
<value>前往 {0} 吗?</value>
|
||||
@@ -2852,7 +2852,7 @@
|
||||
<comment>The parameter is an URL, like vault.bitwarden.com.</comment>
|
||||
</data>
|
||||
<data name="LearnMoreAboutHowToUseBitwardenOnTheHelpCenter" xml:space="preserve">
|
||||
<value>在帮助中心了解更多如何使用 Bitwarden 的信息。</value>
|
||||
<value>访问帮助中心了解更多如何使用 Bitwarden 的信息。</value>
|
||||
</data>
|
||||
<data name="ContactSupportDescriptionLong" xml:space="preserve">
|
||||
<value>找不到您想要的吗?请在 bitwarden.com 上联系 Bitwarden 支持。</value>
|
||||
@@ -2864,7 +2864,7 @@
|
||||
<value>在网页应用上探索您的 Bitwarden 账户的更多功能。</value>
|
||||
</data>
|
||||
<data name="LearnAboutOrganizationsDescriptionLong" xml:space="preserve">
|
||||
<value>Bitwarden 允许您使用组织与他人共享您的密码库项目。访问 bitwarden.com 网站以了解更多。</value>
|
||||
<value>Bitwarden 允许您使用组织与他人共享您的密码库项目。访问 bitwarden.com 网站了解更多信息。</value>
|
||||
</data>
|
||||
<data name="RateAppDescriptionLong" xml:space="preserve">
|
||||
<value>帮助别人了解 Bitwarden 是否适合他们。立即访问 App Store 并留下评分。</value>
|
||||
@@ -2938,7 +2938,7 @@
|
||||
<comment>The parameter is the RpId</comment>
|
||||
</data>
|
||||
<data name="ThereWasAProblemReadingAPasskeyForXTryAgainLater" xml:space="preserve">
|
||||
<value>读取 {0} 的通行密钥时。请稍后再试。</value>
|
||||
<value>读取 {0} 的通行密钥时出错。请稍后再试。</value>
|
||||
<comment>The parameter is the RpId</comment>
|
||||
</data>
|
||||
<data name="VerifyingIdentityEllipsis" xml:space="preserve">
|
||||
|
||||
@@ -334,11 +334,6 @@ namespace Bit.Core.Services
|
||||
return SendAsync<object, CipherResponse>(HttpMethod.Put, string.Concat("/ciphers/", id, "/restore"), null, true, true);
|
||||
}
|
||||
|
||||
public Task<bool> HasUnassignedCiphersAsync()
|
||||
{
|
||||
return SendAsync<object, bool>(HttpMethod.Get, "/ciphers/has-unassigned-ciphers", null, true, true);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Attachments APIs
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//#define ENABLE_NEW_CIPHER_KEY_ENCRYPTION_ON_CREATION
|
||||
#define ENABLE_NEW_CIPHER_KEY_ENCRYPTION_ON_CREATION
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -114,7 +114,7 @@ namespace Bit.Core.Services
|
||||
public async Task<Cipher> EncryptAsync(CipherView model, SymmetricCryptoKey key = null,
|
||||
Cipher originalCipher = null)
|
||||
{
|
||||
// Adjust password history
|
||||
// Adjust password history and attachments
|
||||
if (model.Id != null)
|
||||
{
|
||||
if (originalCipher == null)
|
||||
@@ -169,6 +169,9 @@ namespace Bit.Core.Services
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//adjust attachments
|
||||
model.Attachments = existingCipher.Attachments;
|
||||
}
|
||||
if (!model.PasswordHistory?.Any() ?? false)
|
||||
{
|
||||
@@ -835,24 +838,6 @@ namespace Bit.Core.Services
|
||||
await ClearCacheAsync();
|
||||
}
|
||||
|
||||
public async Task<bool> VerifyOrganizationHasUnassignedItemsAsync()
|
||||
{
|
||||
var organizations = await _stateService.GetOrganizationsAsync();
|
||||
if (organizations?.Any() != true)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return await _apiService.HasUnassignedCiphersAsync();
|
||||
}
|
||||
catch (ApiException ex) when (ex.Error?.StatusCode == System.Net.HttpStatusCode.BadRequest)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Helpers
|
||||
|
||||
private async Task<Tuple<SymmetricCryptoKey, EncString, SymmetricCryptoKey>> MakeAttachmentKeyAsync(string organizationId, Cipher cipher = null, CipherView cipherView = null)
|
||||
|
||||
@@ -1384,16 +1384,6 @@ namespace Bit.Core.Services
|
||||
await _storageMediatorService.SaveAsync(Constants.RegionEnvironment, value);
|
||||
}
|
||||
|
||||
public async Task<bool> GetShouldCheckOrganizationUnassignedItemsAsync(string userId = null)
|
||||
{
|
||||
return await _storageMediatorService.GetAsync<bool?>(await ComposeKeyAsync(Constants.ShouldCheckOrganizationUnassignedItemsKey, userId)) ?? true;
|
||||
}
|
||||
|
||||
public async Task SetShouldCheckOrganizationUnassignedItemsAsync(bool shouldCheck, string userId = null)
|
||||
{
|
||||
await _storageMediatorService.SaveAsync<bool?>(await ComposeKeyAsync(Constants.ShouldCheckOrganizationUnassignedItemsKey, userId), shouldCheck);
|
||||
}
|
||||
|
||||
// Helpers
|
||||
|
||||
[Obsolete("Use IStorageMediatorService instead")]
|
||||
|
||||
@@ -152,17 +152,17 @@ namespace Bit.iOS.Autofill
|
||||
}
|
||||
}
|
||||
|
||||
//public override async void ProvideCredentialWithoutUserInteraction(ASPasswordCredentialIdentity credentialIdentity)
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
// await ProvideCredentialWithoutUserInteractionAsync(credentialIdentity);
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// OnProvidingCredentialException(ex);
|
||||
// }
|
||||
//}
|
||||
public override async void ProvideCredentialWithoutUserInteraction(ASPasswordCredentialIdentity credentialIdentity)
|
||||
{
|
||||
try
|
||||
{
|
||||
await ProvideCredentialWithoutUserInteractionAsync(credentialIdentity);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
OnProvidingCredentialException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
[Export("prepareInterfaceToProvideCredentialForRequest:")]
|
||||
public override async void PrepareInterfaceToProvideCredential(IASCredentialRequest credentialRequest)
|
||||
@@ -197,17 +197,17 @@ namespace Bit.iOS.Autofill
|
||||
}
|
||||
}
|
||||
|
||||
//public override async void PrepareInterfaceToProvideCredential(ASPasswordCredentialIdentity credentialIdentity)
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
// await PrepareInterfaceToProvideCredentialAsync(c => c.PasswordCredentialIdentity = credentialIdentity);
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// OnProvidingCredentialException(ex);
|
||||
// }
|
||||
//}
|
||||
public override async void PrepareInterfaceToProvideCredential(ASPasswordCredentialIdentity credentialIdentity)
|
||||
{
|
||||
try
|
||||
{
|
||||
await PrepareInterfaceToProvideCredentialAsync(c => c.PasswordCredentialIdentity = credentialIdentity);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
OnProvidingCredentialException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
public override async void PrepareInterfaceForExtensionConfiguration()
|
||||
{
|
||||
@@ -699,7 +699,7 @@ namespace Bit.iOS.Autofill
|
||||
{
|
||||
var appOptions = new AppOptions { IosExtension = true };
|
||||
var twoFactorPage = new TwoFactorPage(authingWithSso, appOptions);
|
||||
var app = new App.App();
|
||||
var app = new App.App(appOptions);
|
||||
ThemeManager.SetTheme(app.Resources);
|
||||
ThemeManager.ApplyResourcesTo(twoFactorPage);
|
||||
if (twoFactorPage.BindingContext is TwoFactorPageViewModel vm)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.8bit.bitwarden.autofill</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2024.5.1</string>
|
||||
<string>2024.7.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>CFBundleLocalizations</key>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.8bit.bitwarden.find-login-action-extension</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2024.5.1</string>
|
||||
<string>2024.7.0</string>
|
||||
<key>CFBundleLocalizations</key>
|
||||
<array>
|
||||
<string>en</string>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2024.5.1</string>
|
||||
<string>2024.7.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>MinimumOSVersion</key>
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
repo_url = "https://mobileapp.bitwarden.com/fdroid/repo"
|
||||
repo_name = "Bitwarden F-Droid Repo"
|
||||
repo_icon = "fdroid-icon.png"
|
||||
repo_description = """
|
||||
F-Droid repo for Bitwarden.
|
||||
"""
|
||||
|
||||
archive_older = 2
|
||||
archive_url = "https://does.not.exist"
|
||||
archive_name = "Bitwarden Archive Repo"
|
||||
archive_icon = "fdroid-icon.png"
|
||||
archive_description = """
|
||||
F-Droid archive repo for Bitwarden.
|
||||
"""
|
||||
|
||||
repo_keyalias = "bitwarden-Virtual-Machine"
|
||||
keystore = "keystore.jks"
|
||||
keydname = "CN=bitwarden-Virtual-Machine, OU=F-Droid"
|
||||
18
store/fdroid/config.yml
Normal file
18
store/fdroid/config.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
|
||||
repo_url: https://mobileapp.bitwarden.com/fdroid/repo
|
||||
repo_name: Bitwarden F-Droid Repo
|
||||
repo_icon: fdroid-icon.png
|
||||
repo_description: >-
|
||||
F-Droid repo for Bitwarden.
|
||||
|
||||
archive_older: 2
|
||||
archive_url: https://does.not.exist/archive
|
||||
archive_name: Bitwarden Archive Repo
|
||||
archive_icon: fdroid-icon.png
|
||||
archive_description: >-
|
||||
F-Droid archive repo for Bitwarden.
|
||||
|
||||
repo_keyalias: bitwarden-Virtual-Machine
|
||||
keystore: keystore.jks
|
||||
keydname: CN=bitwarden-Virtual-Machine, OU=F-Droid
|
||||
Reference in New Issue
Block a user