mirror of
https://github.com/bitwarden/mobile
synced 2026-02-26 01:13:28 +00:00
Compare commits
2 Commits
CLOUDOPS-2
...
SG-816-add
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3e9d3787d8 | ||
|
|
5b53c0c48f |
31
.github/workflows/build.yml
vendored
31
.github/workflows/build.yml
vendored
@@ -11,9 +11,6 @@ on:
|
||||
workflow_dispatch:
|
||||
inputs: {}
|
||||
|
||||
env:
|
||||
BASE_PKG_NAME: com.x8bit.bitwarden
|
||||
|
||||
jobs:
|
||||
cloc:
|
||||
name: CLOC
|
||||
@@ -177,11 +174,11 @@ jobs:
|
||||
UPLOAD_KEYSTORE_PASSWORD: ${{ secrets.UPLOAD_KEYSTORE_PASSWORD }}
|
||||
run: |
|
||||
$androidPath = $($env:GITHUB_WORKSPACE + "/src/Android/Android.csproj");
|
||||
$packageName = "";
|
||||
$packageName = "com.x8bit.bitwarden";
|
||||
|
||||
if ("${{ matrix.variant }}" -ne "prod")
|
||||
{
|
||||
$packageName = "${{ env.BASE_PKG_NAME }}.${{ matrix.variant }}";
|
||||
$packageName = "com.x8bit.bitwarden.${{ matrix.variant }}";
|
||||
}
|
||||
Write-Output "########################################"
|
||||
Write-Output "##### Sign Google Play Bundle Release Configuration"
|
||||
@@ -222,24 +219,24 @@ jobs:
|
||||
if: ${{ matrix.variant == 'prod' }}
|
||||
uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535
|
||||
with:
|
||||
name: ${{ env.BASE_PKG_NAME }}.aab
|
||||
path: ./${{ env.BASE_PKG_NAME }}.aab
|
||||
name: com.x8bit.bitwarden.aab
|
||||
path: ./com.x8bit.bitwarden.aab
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload Prod .apk artifact
|
||||
if: ${{ matrix.variant == 'prod' }}
|
||||
uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535
|
||||
with:
|
||||
name: ${{ env.BASE_PKG_NAME }}.apk
|
||||
path: ./${{ env.BASE_PKG_NAME }}.apk
|
||||
name: com.x8bit.bitwarden.apk
|
||||
path: ./com.x8bit.bitwarden.apk
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload Other .apk artifact
|
||||
if: ${{ matrix.variant != 'prod' }}
|
||||
uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535
|
||||
with:
|
||||
name: ${{ env.BASE_PKG_NAME }}.${{ matrix.variant }}.apk
|
||||
path: ./${{ env.BASE_PKG_NAME }}.${{ matrix.variant }}.apk
|
||||
name: com.x8bit.bitwarden.${{ matrix.variant }}.apk
|
||||
path: ./com.x8bit.bitwarden.${{ matrix.variant }}.apk
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Deploy to Play Store
|
||||
@@ -251,10 +248,10 @@ jobs:
|
||||
run: |
|
||||
PUBLISHER_PATH="$GITHUB_WORKSPACE/store/google/Publisher/bin/Release/netcoreapp3.1/Publisher.dll"
|
||||
CREDS_PATH="$HOME/secrets/play_creds.json"
|
||||
AAB_PATH="$GITHUB_WORKSPACE/${{env:BASE_PKG_NAME}}.aab"
|
||||
AAB_PATH="$GITHUB_WORKSPACE/com.x8bit.bitwarden.aab"
|
||||
TRACK="internal"
|
||||
|
||||
dotnet $PUBLISHER_PATH $CREDS_PATH $AAB_PATH $TRACK ${{env:BASE_PKG_NAME}}
|
||||
dotnet $PUBLISHER_PATH $CREDS_PATH $AAB_PATH $TRACK
|
||||
shell: bash
|
||||
|
||||
|
||||
@@ -427,8 +424,8 @@ jobs:
|
||||
Write-Output "##### Copy FDroid apk to project root"
|
||||
Write-Output "########################################"
|
||||
|
||||
$signedApkPath = $($env:GITHUB_WORKSPACE + "/src/Android/bin/FDroid/$env:BASE_PKG_NAME-Signed.apk");
|
||||
$signedApkDestPath = $($env:GITHUB_WORKSPACE + "/$env:BASE_PKG_NAME-fdroid.apk");
|
||||
$signedApkPath = $($env:GITHUB_WORKSPACE + "/src/Android/bin/FDroid/com.x8bit.bitwarden-Signed.apk");
|
||||
$signedApkDestPath = $($env:GITHUB_WORKSPACE + "/com.x8bit.bitwarden-fdroid.apk");
|
||||
|
||||
Copy-Item $signedApkPath $signedApkDestPath
|
||||
shell: pwsh
|
||||
@@ -436,8 +433,8 @@ jobs:
|
||||
- name: Upload F-Droid .apk artifact
|
||||
uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535
|
||||
with:
|
||||
name: ${{ env.BASE_PKG_NAME }}.apk
|
||||
path: ./${{ env.BASE_PKG_NAME }}.apk
|
||||
name: com.x8bit.bitwarden-fdroid.apk
|
||||
path: ./com.x8bit.bitwarden-fdroid.apk
|
||||
if-no-files-found: error
|
||||
|
||||
|
||||
|
||||
20
.github/workflows/release.yml
vendored
20
.github/workflows/release.yml
vendored
@@ -20,9 +20,6 @@ on:
|
||||
default: true
|
||||
type: boolean
|
||||
|
||||
env:
|
||||
BASE_PKG_NAME: com.x8bit.bitwarden
|
||||
|
||||
jobs:
|
||||
release:
|
||||
name: Create Release
|
||||
@@ -58,7 +55,6 @@ jobs:
|
||||
echo "::set-output name=branch-name::$BRANCH_NAME"
|
||||
|
||||
- name: Create GitHub deployment
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: chrnorm/deployment-action@1b599fe41a0ef1f95191e7f2eec4743f2d7dfc48
|
||||
id: deployment
|
||||
with:
|
||||
@@ -92,9 +88,9 @@ jobs:
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: ncipollo/release-action@40bb172bd05f266cf9ba4ff965cb61e9ee5f6d01 # v1.9.0
|
||||
with:
|
||||
artifacts: "./${{ BASE_PKG_NAME }}.aab/${{ BASE_PKG_NAME }}.aab,
|
||||
./${{ BASE_PKG_NAME }}.apk/${{ BASE_PKG_NAME }}.apk,
|
||||
./${{ BASE_PKG_NAME }}-fdroid.apk/${{ BASE_PKG_NAME }}-fdroid.apk,
|
||||
artifacts: "./com.x8bit.bitwarden.aab/com.x8bit.bitwarden.aab,
|
||||
./com.x8bit.bitwarden.apk/com.x8bit.bitwarden.apk,
|
||||
./com.x8bit.bitwarden-fdroid.apk/com.x8bit.bitwarden-fdroid.apk,
|
||||
./Bitwarden iOS.zip"
|
||||
commit: ${{ github.sha }}
|
||||
tag: v${{ steps.version.outputs.version }}
|
||||
@@ -104,7 +100,7 @@ jobs:
|
||||
draft: true
|
||||
|
||||
- name: Update deployment status to Success
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' && success() }}
|
||||
if: ${{ success() }}
|
||||
uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86
|
||||
with:
|
||||
token: '${{ secrets.GITHUB_TOKEN }}'
|
||||
@@ -112,7 +108,7 @@ jobs:
|
||||
deployment-id: ${{ steps.deployment.outputs.deployment_id }}
|
||||
|
||||
- name: Update deployment status to Failure
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' && failure() }}
|
||||
if: ${{ failure() }}
|
||||
uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86
|
||||
with:
|
||||
token: '${{ secrets.GITHUB_TOKEN }}'
|
||||
@@ -136,7 +132,7 @@ jobs:
|
||||
workflow: build.yml
|
||||
workflow_conclusion: success
|
||||
branch: ${{ needs.release.outputs.branch-name }}
|
||||
name: ${{ BASE_PKG_NAME }}-fdroid.apk
|
||||
name: com.x8bit.bitwarden-fdroid.apk
|
||||
|
||||
- name: Dry Run - Download F-Droid .apk artifact
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
@@ -145,7 +141,7 @@ jobs:
|
||||
workflow: build.yml
|
||||
workflow_conclusion: success
|
||||
branch: master
|
||||
name: ${{ BASE_PKG_NAME }}-fdroid.apk
|
||||
name: com.x8bit.bitwarden-fdroid.apk
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@1f8c6b94b26d0feae1e387ca63ccbdc44d27b561 # v2.5.1
|
||||
@@ -201,7 +197,7 @@ jobs:
|
||||
echo "keystorepass=\"$FDROID_STORE_KEYSTORE_PASSWORD\"" >>config.py
|
||||
echo "local_copy_dir=\"$TEMP_DIR\"" >>config.py
|
||||
mkdir -p repo
|
||||
mv $GITHUB_WORKSPACE/${{ BASE_PKG_NAME }}-fdroid.apk ./repo/
|
||||
mv $GITHUB_WORKSPACE/com.x8bit.bitwarden-fdroid.apk ./repo/
|
||||
fdroid update
|
||||
fdroid server update
|
||||
cd ..
|
||||
|
||||
@@ -147,6 +147,7 @@ namespace Bit.App
|
||||
}
|
||||
else if (message.Command == Constants.PasswordlessLoginRequestKey
|
||||
|| message.Command == "unlocked"
|
||||
|| message.Command == "syncCompleted"
|
||||
|| message.Command == AccountsManagerMessageCommands.ACCOUNT_SWITCH_COMPLETED)
|
||||
{
|
||||
lock (_processingLoginRequestLock)
|
||||
@@ -204,11 +205,11 @@ namespace Bit.App
|
||||
FingerprintPhrase = loginRequestData.RequestFingerprint,
|
||||
RequestDate = loginRequestData.CreationDate,
|
||||
DeviceType = loginRequestData.RequestDeviceType,
|
||||
Origin = loginRequestData.Origin
|
||||
Origin = loginRequestData.Origin,
|
||||
});
|
||||
await _stateService.SetPasswordlessLoginNotificationAsync(null);
|
||||
_pushNotificationService.DismissLocalNotification(Constants.PasswordlessNotificationId);
|
||||
if (!loginRequestData.IsExpired)
|
||||
if (loginRequestData.CreationDate.ToUniversalTime().AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes) > DateTime.UtcNow)
|
||||
{
|
||||
await Device.InvokeOnMainThreadAsync(() => Application.Current.MainPage.Navigation.PushModalAsync(new NavigationPage(page)));
|
||||
}
|
||||
|
||||
@@ -128,7 +128,7 @@ namespace Bit.App.Pages
|
||||
{
|
||||
var response = await _authService.GetPasswordlessLoginResponseAsync(_requestId, _requestAccessCode);
|
||||
|
||||
if (response.RequestApproved == null || !response.RequestApproved.Value)
|
||||
if (!response.RequestApproved)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ namespace Bit.App.Pages
|
||||
private async Task UpdateRequestTime()
|
||||
{
|
||||
TriggerPropertyChanged(nameof(TimeOfRequestText));
|
||||
if (LoginRequest?.IsExpired ?? false)
|
||||
if (DateTime.UtcNow > LoginRequest?.RequestDate.ToUniversalTime().AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes))
|
||||
{
|
||||
StopRequestTimeUpdater();
|
||||
await _platformUtilsService.ShowDialogAsync(AppResources.LoginRequestHasAlreadyExpired);
|
||||
@@ -110,21 +110,13 @@ namespace Bit.App.Pages
|
||||
|
||||
private async Task PasswordlessLoginAsync(bool approveRequest)
|
||||
{
|
||||
if (LoginRequest.IsExpired)
|
||||
if (LoginRequest.RequestDate.ToUniversalTime().AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes) <= DateTime.UtcNow)
|
||||
{
|
||||
await _platformUtilsService.ShowDialogAsync(AppResources.LoginRequestHasAlreadyExpired);
|
||||
await Page.Navigation.PopModalAsync();
|
||||
return;
|
||||
}
|
||||
|
||||
var loginRequestData = await _authService.GetPasswordlessLoginRequestByIdAsync(LoginRequest.Id);
|
||||
if (loginRequestData.RequestApproved.HasValue && loginRequestData.ResponseDate.HasValue)
|
||||
{
|
||||
await _platformUtilsService.ShowDialogAsync(AppResources.ThisRequestIsNoLongerValid);
|
||||
await Page.Navigation.PopModalAsync();
|
||||
return;
|
||||
}
|
||||
|
||||
await _deviceActionService.ShowLoadingAsync(AppResources.Loading);
|
||||
await _authService.PasswordlessLoginAsync(LoginRequest.Id, LoginRequest.PubKey, approveRequest);
|
||||
await _deviceActionService.HideLoadingAsync();
|
||||
@@ -179,7 +171,5 @@ namespace Bit.App.Pages
|
||||
public string DeviceType { get; set; }
|
||||
|
||||
public string IpAddress { get; set; }
|
||||
|
||||
public bool IsExpired => RequestDate.ToUniversalTime().AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes) < DateTime.UtcNow;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,7 +90,6 @@ namespace Bit.App.Pages
|
||||
try
|
||||
{
|
||||
await _deviceActionService.ShowLoadingAsync(AppResources.Syncing);
|
||||
await _syncService.SyncPasswordlessLoginRequestsAsync();
|
||||
var success = await _syncService.FullSyncAsync(true);
|
||||
await _deviceActionService.HideLoadingAsync();
|
||||
if (success)
|
||||
|
||||
@@ -189,7 +189,6 @@ namespace Bit.App.Pages
|
||||
if (await _stateService.GetSyncOnRefreshAsync() && Refreshing && !SyncRefreshing)
|
||||
{
|
||||
SyncRefreshing = true;
|
||||
await _syncService.SyncPasswordlessLoginRequestsAsync();
|
||||
await _syncService.FullSyncAsync(false);
|
||||
return;
|
||||
}
|
||||
|
||||
9
src/App/Resources/AppResources.Designer.cs
generated
9
src/App/Resources/AppResources.Designer.cs
generated
@@ -5876,15 +5876,6 @@ namespace Bit.App.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to This request is no longer valid.
|
||||
/// </summary>
|
||||
public static string ThisRequestIsNoLongerValid {
|
||||
get {
|
||||
return ResourceManager.GetString("ThisRequestIsNoLongerValid", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to 3 days.
|
||||
/// </summary>
|
||||
|
||||
@@ -2508,7 +2508,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2509,7 +2509,4 @@
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2507,7 +2507,4 @@ Bu hesaba keçmək istəyirsiniz?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Bütün giriş etmə seçimlərinə bax</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Bu tələb artıq yararsızdır</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -1622,7 +1622,7 @@
|
||||
<value>Біяметрычныя праверка</value>
|
||||
</data>
|
||||
<data name="Biometrics" xml:space="preserve">
|
||||
<value>біяметрыяй</value>
|
||||
<value>Біяметрыяй</value>
|
||||
</data>
|
||||
<data name="UseBiometricsToUnlock" xml:space="preserve">
|
||||
<value>Выкарыстоўваць біяметрычныя даныя для разблакіроўкі</value>
|
||||
@@ -2508,7 +2508,4 @@
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Паглядзець усе варыянты ўваходу</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Гэты запыт больш не дзейнічае</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2509,7 +2509,4 @@ select Add TOTP to store the key safely</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Вижте всички възможности за вписване</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Тази зявка вече не е приложима</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2509,7 +2509,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2485,7 +2485,7 @@ Voleu canviar a aquest compte?</value>
|
||||
<value>No sou vosaltres?</value>
|
||||
</data>
|
||||
<data name="LogInWithMasterPassword" xml:space="preserve">
|
||||
<value>Inicia sessió amb la contrasenya mestra</value>
|
||||
<value>Inicia sessió amb la teua contrasenya mestra</value>
|
||||
</data>
|
||||
<data name="LogInWithAnotherDevice" xml:space="preserve">
|
||||
<value>Inicia sessió amb un altre dispositiu</value>
|
||||
@@ -2508,7 +2508,4 @@ Voleu canviar a aquest compte?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Veure totes les opcions d'inici de sessió</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Aquesta sol·licitud ja no és vàlida</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -1457,11 +1457,11 @@ Načtení proběhne automaticky.</value>
|
||||
<value>Nejsou k dispozici žádné složky k zobrazení.</value>
|
||||
</data>
|
||||
<data name="FingerprintPhrase" xml:space="preserve">
|
||||
<value>Fráze otisku účtu</value>
|
||||
<value>Fráze otisku prstu</value>
|
||||
<comment>A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.</comment>
|
||||
</data>
|
||||
<data name="YourAccountsFingerprint" xml:space="preserve">
|
||||
<value>Fráze otisku vašeho účtu</value>
|
||||
<value>Fráze otisku prstu vašeho účtu</value>
|
||||
<comment>A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.</comment>
|
||||
</data>
|
||||
<data name="LearnOrgConfirmation" xml:space="preserve">
|
||||
@@ -2468,47 +2468,44 @@ select Add TOTP to store the key safely</value>
|
||||
<value>Požadavek na přihlášení již vypršel.</value>
|
||||
</data>
|
||||
<data name="LoginAttemptFromXDoYouWantToSwitchToThisAccount" xml:space="preserve">
|
||||
<value>Pokus o přihlášení z:
|
||||
<value>Login attempt from:
|
||||
{0}
|
||||
Chcete se přepnout na tento účet?</value>
|
||||
Do you want to switch to this account?</value>
|
||||
</data>
|
||||
<data name="NewAroundHere" xml:space="preserve">
|
||||
<value>Jste tu noví?</value>
|
||||
<value>New around here?</value>
|
||||
</data>
|
||||
<data name="GetMasterPasswordwordHint" xml:space="preserve">
|
||||
<value>Získat nápovědu pro hlavní heslo</value>
|
||||
<value>Get master password hint</value>
|
||||
</data>
|
||||
<data name="LoggingInAsX" xml:space="preserve">
|
||||
<value>Přihlášování jako {0}</value>
|
||||
<value>Logging in as {0}</value>
|
||||
</data>
|
||||
<data name="NotYou" xml:space="preserve">
|
||||
<value>Nejste to vy?</value>
|
||||
<value>Not you?</value>
|
||||
</data>
|
||||
<data name="LogInWithMasterPassword" xml:space="preserve">
|
||||
<value>Přihlásit se pomocí hlavního hesla</value>
|
||||
<value>Log in with master password</value>
|
||||
</data>
|
||||
<data name="LogInWithAnotherDevice" xml:space="preserve">
|
||||
<value>Přihlásit se pomocí jiného zařízení</value>
|
||||
<value>Log In with another device</value>
|
||||
</data>
|
||||
<data name="LogInInitiated" xml:space="preserve">
|
||||
<value>Přihlášení zahájeno</value>
|
||||
<value>Log in initiated</value>
|
||||
</data>
|
||||
<data name="ANotificationHasBeenSentToYourDevice" xml:space="preserve">
|
||||
<value>Na vaše zařízení bylo odesláno oznámení.</value>
|
||||
<value>A notification has been sent to your device.</value>
|
||||
</data>
|
||||
<data name="PleaseMakeSureYourVaultIsUnlockedAndTheFingerprintPhraseMatchesOnTheOtherDevice" xml:space="preserve">
|
||||
<value>Ujistěte se, že je váš trezor odemčen a fráze otisku prstu se shodují s druhým zařízením.</value>
|
||||
<value>Please make sure your vault is unlocked and the Fingerprint phrase matches on the other device.</value>
|
||||
</data>
|
||||
<data name="ResendNotification" xml:space="preserve">
|
||||
<value>Odeslat oznámení znovu</value>
|
||||
<value>Resend notification</value>
|
||||
</data>
|
||||
<data name="NeedAnotherOption" xml:space="preserve">
|
||||
<value>Potřebujete jinou možnost?</value>
|
||||
<value>Need another option?</value>
|
||||
</data>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Zobrazit všechny možnosti přihlášení</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Tento požadavek již není platný</value>
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@ Vil du skifte til denne konto?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Vis alle indlogningsmuligheder</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Anmodningen er ikke længere gyldig</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -229,7 +229,7 @@
|
||||
<value>Ordner</value>
|
||||
</data>
|
||||
<data name="FolderUpdated" xml:space="preserve">
|
||||
<value>Ordner aktualisiert</value>
|
||||
<value>Ordner wurde aktualisiert</value>
|
||||
</data>
|
||||
<data name="GoToWebsite" xml:space="preserve">
|
||||
<value>Webseite besuchen</value>
|
||||
@@ -342,7 +342,7 @@
|
||||
<comment>Reveal a hidden value (password).</comment>
|
||||
</data>
|
||||
<data name="ItemDeleted" xml:space="preserve">
|
||||
<value>Eintrag gelöscht</value>
|
||||
<value>Eintrag wurde gelöscht</value>
|
||||
<comment>Confirmation message after successfully deleting a login.</comment>
|
||||
</data>
|
||||
<data name="Submit" xml:space="preserve">
|
||||
@@ -416,7 +416,7 @@
|
||||
<value>Neuer Eintrag</value>
|
||||
</data>
|
||||
<data name="AppExtension" xml:space="preserve">
|
||||
<value>App-Erweiterung</value>
|
||||
<value>App Erweiterung</value>
|
||||
</data>
|
||||
<data name="AutofillAccessibilityDescription" xml:space="preserve">
|
||||
<value>Verwende den Bitwarden Dienst in den Bedienungshilfen, um deine Zugangsdaten in Apps und im Web automatisch ausfüllen zu lassen.</value>
|
||||
@@ -428,7 +428,7 @@
|
||||
<value>Mehrdeutige Zeichen vermeiden</value>
|
||||
</data>
|
||||
<data name="BitwardenAppExtension" xml:space="preserve">
|
||||
<value>Bitwarden App-Erweiterung</value>
|
||||
<value>Bitwarden App Erweiterung</value>
|
||||
</data>
|
||||
<data name="BitwardenAppExtensionAlert2" xml:space="preserve">
|
||||
<value>Die einfachste Möglichkeit, neue Anmeldedaten zu Ihrem Tresor hinzuzufügen, ist die Bitwarden App Erweiterung. Erfahren Sie mehr über die Bitwarden App Erweiterung, indem Sie zu dem "Einstellungen"-Bildschirm navigieren.</value>
|
||||
@@ -477,13 +477,13 @@
|
||||
<value>Gebe die E-Mail Adresse deines Kontos ein, um den Hinweis für dein Master-Passwort zu erhalten.</value>
|
||||
</data>
|
||||
<data name="ExntesionReenable" xml:space="preserve">
|
||||
<value>App-Erweiterung wieder aktivieren</value>
|
||||
<value>App Erweiterung wieder aktivieren</value>
|
||||
</data>
|
||||
<data name="ExtensionAlmostDone" xml:space="preserve">
|
||||
<value>Fast geschafft!</value>
|
||||
</data>
|
||||
<data name="ExtensionEnable" xml:space="preserve">
|
||||
<value>App-Erweiterung aktivieren</value>
|
||||
<value>App Erweiterung aktivieren</value>
|
||||
</data>
|
||||
<data name="ExtensionInSafari" xml:space="preserve">
|
||||
<value>In Safari findest du Bitwarden unter dem Teilen-Symbol (Hinweis: scrolle auf der untersten Zeile des Menüs nach rechts).</value>
|
||||
@@ -647,7 +647,7 @@
|
||||
<value>Bist du sicher, dass du das aktuelle Passwort überschreiben möchtest?</value>
|
||||
</data>
|
||||
<data name="PushNotificationAlert" xml:space="preserve">
|
||||
<value>Bitwarden aktualisiert deinen Tresor mit Push-Benachrichtigungen. Für die bestmögliche Benutzererfahrung tippe im folgenden Dialogfenster auf "Ok", um Push-Benachrichtigungen zu aktivieren.</value>
|
||||
<value>Bitwarden aktualisiert deinen Tresor mit Pushbenachrichtigungen. Für die bestmögliche Benutzererfahrung tippe im folgenden Dialogfenster auf "Ok", um Pushbenachrichtigungen zu aktivieren.</value>
|
||||
<comment>Push notifications for apple products</comment>
|
||||
</data>
|
||||
<data name="RateTheApp" xml:space="preserve">
|
||||
@@ -705,10 +705,10 @@
|
||||
<comment>What Apple calls their fingerprint reader.</comment>
|
||||
</data>
|
||||
<data name="TwoStepLogin" xml:space="preserve">
|
||||
<value>Zwei-Faktor-Authentifizierung</value>
|
||||
<value>Zwei-Faktor Authentifizierung</value>
|
||||
</data>
|
||||
<data name="TwoStepLoginConfirmation" xml:space="preserve">
|
||||
<value>Mit der Zwei-Faktor-Authentifizierung wird dein Account zusätzlich abgesichert, da jede Anmeldung durch einen Sicherheitscode, eine Authentifizierungs-App, SMS, einen Anruf oder eine E-Mail verifiziert werden muss. Die Zwei-Faktor-Authentifizierung kann im Web-Tresor unter bitwarden.com aktiviert werden. Möchtest du die Seite jetzt öffnen?</value>
|
||||
<value>Mit der Zwei-Faktor Authentifizierung wird dein Account zusätzlich abgesichert, da jede Anmeldung durch einen Sicherheitscode, eine Authentifizierungs-App, SMS, einen Anruf oder eine E-Mail verifiziert werden muss. Die Zwei-Faktor Authentifizierung kann im Bitwarden.com Web-Tresor aktiviert werden. Möchtest du die Seite jetzt öffnen?</value>
|
||||
</data>
|
||||
<data name="UnlockWith" xml:space="preserve">
|
||||
<value>Mit {0} entsperren</value>
|
||||
@@ -831,7 +831,7 @@
|
||||
<comment>For 2FA whenever there are no available providers on this device.</comment>
|
||||
</data>
|
||||
<data name="NoTwoStepAvailable" xml:space="preserve">
|
||||
<value>Dieses Konto hat eine aktive Zwei-Faktor-Authentifizierung, allerdings wird keiner der konfigurierten Zwei-Faktor-Anbieter von diesem Gerät unterstützt. Bitte nutzen Sie ein unterstütztes Gerät und / oder fügen Sie zusätzliche Anbieter hinzu, die von mehr Geräten unterstützt werden (wie eine Authentifizierungs-App).</value>
|
||||
<value>Dieses Konto hat eine aktive Zwei-Faktor Authentifizierung, allerdings wird keiner der konfigurierten Zwei-Faktor Anbieter von diesem Gerät unterstützt. Bitte nutzen Sie ein unterstütztes Gerät und / oder fügen Sie zusätzliche Anbieter hinzu, die von mehr Geräten unterstützt werden (wie eine Authentifizierungs-App).</value>
|
||||
</data>
|
||||
<data name="RecoveryCodeTitle" xml:space="preserve">
|
||||
<value>Wiederherstellungscode</value>
|
||||
@@ -1726,7 +1726,7 @@ Das Scannen erfolgt automatisch.</value>
|
||||
<comment>Message shown when interacting with the server</comment>
|
||||
</data>
|
||||
<data name="ItemRestored" xml:space="preserve">
|
||||
<value>Eintrag wiederhergestellt</value>
|
||||
<value>Eintrag wurde wiederhergestellt</value>
|
||||
<comment>Confirmation message after successfully restoring a soft-deleted item</comment>
|
||||
</data>
|
||||
<data name="Trash" xml:space="preserve">
|
||||
@@ -2507,7 +2507,4 @@ Möchtest du zu diesem Konto wechseln?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Alle Anmelde-Optionen anzeigen</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Diese Anfrage ist nicht mehr gültig</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2517,7 +2517,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2522,7 +2522,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2509,7 +2509,4 @@ seleccione Agregar TOTP para almacenar la clave de forma segura</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Ver todas las opciones de inicio de sesión</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Esta solicitud ya no es válida</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2491,24 +2491,21 @@ Soovid selle konto peale lülituda?</value>
|
||||
<value>Logi sisse läbi teise seadme</value>
|
||||
</data>
|
||||
<data name="LogInInitiated" xml:space="preserve">
|
||||
<value>Sisselogimine on käivitatud</value>
|
||||
<value>Log in initiated</value>
|
||||
</data>
|
||||
<data name="ANotificationHasBeenSentToYourDevice" xml:space="preserve">
|
||||
<value>Sinu seadmesse saadeti teavitus.</value>
|
||||
<value>A notification has been sent to your device.</value>
|
||||
</data>
|
||||
<data name="PleaseMakeSureYourVaultIsUnlockedAndTheFingerprintPhraseMatchesOnTheOtherDevice" xml:space="preserve">
|
||||
<value>Veendu, et hoidla on lahti lukustatud ja sõrmejälje fraasid seadmete vahel ühtivad.</value>
|
||||
<value>Please make sure your vault is unlocked and the Fingerprint phrase matches on the other device.</value>
|
||||
</data>
|
||||
<data name="ResendNotification" xml:space="preserve">
|
||||
<value>Saada märguanne uuesti</value>
|
||||
<value>Resend notification</value>
|
||||
</data>
|
||||
<data name="NeedAnotherOption" xml:space="preserve">
|
||||
<value>Soovid teist valikut kasutada?</value>
|
||||
<value>Need another option?</value>
|
||||
</data>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Vaata kõiki valikuid</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>See päring ei ole enam kehtiv</value>
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2507,7 +2507,4 @@ Kontu honetara aldatu nahi duzu?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Ikusi erregistro guztiak ezarpenetan</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2509,7 +2509,4 @@
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -1762,7 +1762,7 @@ Koodi luetaan automaattisesti.</value>
|
||||
<value>Synkronoidaan holvi alasveto-eleellä.</value>
|
||||
</data>
|
||||
<data name="LogInSso" xml:space="preserve">
|
||||
<value>Yrityksen kertakirjautuminen (SSO)</value>
|
||||
<value>Kertakirjautuminen (SSO)</value>
|
||||
</data>
|
||||
<data name="LogInSsoSummary" xml:space="preserve">
|
||||
<value>Kirjaudu sisään käyttäen organisaatiosi kertakirjautumista (SSO). Syötä organisaatiosi tunniste aloittaaksesi.</value>
|
||||
@@ -1810,8 +1810,7 @@ Koodi luetaan automaattisesti.</value>
|
||||
<value>Ladataan</value>
|
||||
</data>
|
||||
<data name="AcceptPolicies" xml:space="preserve">
|
||||
<value>Valitsemalla tämän hyväksyt seuraavat:
|
||||
</value>
|
||||
<value>Aktivoimalla tämän valinnan hyväksyt seuraavat: </value>
|
||||
</data>
|
||||
<data name="AcceptPoliciesError" xml:space="preserve">
|
||||
<value>Palveluehtoja ja tietosuojakäytäntöä ei ole vahvistettu.</value>
|
||||
@@ -2507,9 +2506,6 @@ Haluatko vaihtaa tähän tiliin?</value>
|
||||
<value>Tarvitsetko toisen vaihtoehdon?</value>
|
||||
</data>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Näytä kaikki kirjautumisvaihtoehdot</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Pyyntö ei ole enää voimassa.</value>
|
||||
<value>Näytä kaikki kirjautumisvalinnat</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2509,7 +2509,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@ Voulez-vous basculer vers ce compte ?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Voir toutes les options de connexion</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Cette demande n'est plus valide</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2511,7 +2511,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2510,7 +2510,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2506,7 +2506,4 @@
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Pogledaj sve mogućnosti prijave</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2507,7 +2507,4 @@ Szeretnénk átváltani erre a fiókra?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Összes bejelentkezési opció megtekintése</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>A kérés már nem érvényes.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2491,24 +2491,21 @@ Vuoi passare a questo account?</value>
|
||||
<value>Accedi con un altro dispositivo</value>
|
||||
</data>
|
||||
<data name="LogInInitiated" xml:space="preserve">
|
||||
<value>Login avviato</value>
|
||||
<value>Log in initiated</value>
|
||||
</data>
|
||||
<data name="ANotificationHasBeenSentToYourDevice" xml:space="preserve">
|
||||
<value>Una notifica è stata inviata al tuo dispositivo.</value>
|
||||
<value>A notification has been sent to your device.</value>
|
||||
</data>
|
||||
<data name="PleaseMakeSureYourVaultIsUnlockedAndTheFingerprintPhraseMatchesOnTheOtherDevice" xml:space="preserve">
|
||||
<value>Assicurati che la tua cassaforte sia sbloccata e che la "frase impronta" corrisponda sull'altro dispositivo.</value>
|
||||
<value>Please make sure your vault is unlocked and the Fingerprint phrase matches on the other device.</value>
|
||||
</data>
|
||||
<data name="ResendNotification" xml:space="preserve">
|
||||
<value>Invia nuova notifica</value>
|
||||
<value>Resend notification</value>
|
||||
</data>
|
||||
<data name="NeedAnotherOption" xml:space="preserve">
|
||||
<value>Hai bisogno di un'altra opzione?</value>
|
||||
<value>Need another option?</value>
|
||||
</data>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Visualizza tutte le opzioni di accesso</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>La richiesta non è più valida</value>
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>すべてのログインオプションを表示</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>このリクエストは無効になりました</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2509,7 +2509,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2509,7 +2509,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2509,7 +2509,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@ Vai pārslēgties uz šo kontu?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Apskatīt visas pierakstīšanās iespējas</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Šis pieprasījums vairs nav derīgs</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2509,7 +2509,4 @@ Vil du bytte til denne kontoen?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@ Wilt u naar dit account wisselen?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Dit verzoek is niet langer geldig</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2509,7 +2509,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@ Czy chcesz przełączyć się na to konto?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Zobacz wszystkie sposoby logowania</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Ta prośba nie jest już ważna</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2492,24 +2492,21 @@ Você deseja mudar para esta conta?</value>
|
||||
<value>Entrar com outro dispositivo</value>
|
||||
</data>
|
||||
<data name="LogInInitiated" xml:space="preserve">
|
||||
<value>Login iniciado</value>
|
||||
<value>Log in initiated</value>
|
||||
</data>
|
||||
<data name="ANotificationHasBeenSentToYourDevice" xml:space="preserve">
|
||||
<value>Uma notificação foi enviada para seu dispositivo.</value>
|
||||
<value>A notification has been sent to your device.</value>
|
||||
</data>
|
||||
<data name="PleaseMakeSureYourVaultIsUnlockedAndTheFingerprintPhraseMatchesOnTheOtherDevice" xml:space="preserve">
|
||||
<value>Por favor, certifique-se de que o seu cofre esteja desbloqueado e a frase de identificação corresponda ao outro dispositivo.</value>
|
||||
<value>Please make sure your vault is unlocked and the Fingerprint phrase matches on the other device.</value>
|
||||
</data>
|
||||
<data name="ResendNotification" xml:space="preserve">
|
||||
<value>Reenviar notificação</value>
|
||||
<value>Resend notification</value>
|
||||
</data>
|
||||
<data name="NeedAnotherOption" xml:space="preserve">
|
||||
<value>Precisa de outra opção?</value>
|
||||
<value>Need another option?</value>
|
||||
</data>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Ver todas as opções de login</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Este pedido não é mais válido</value>
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@ Deseja mudar para esta conta?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Este pedido já não é válido</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2509,7 +2509,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@ Doriți să comutați la acest cont?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -1635,7 +1635,7 @@
|
||||
<value>3. На экране настроек приложений Android для Bitwarden перейдите в раздел "Отображение поверх других приложений" (в разделе "Дополнительно") и коснитесь переключателя, чтобы включить поддержку наложения.</value>
|
||||
</data>
|
||||
<data name="OverlayPermission" xml:space="preserve">
|
||||
<value>Разрешение</value>
|
||||
<value>Разрешения</value>
|
||||
</data>
|
||||
<data name="BitwardenAutofillServiceOpenOverlayPermissionSettings" xml:space="preserve">
|
||||
<value>Открыть настройки разрешения наложения</value>
|
||||
@@ -2508,7 +2508,4 @@
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Посмотреть все варианты авторизации</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Этот запрос больше не действителен</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2509,7 +2509,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@ Chcete prepnúť na toto konto?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Zobraziť všetky možnosti prihlásenia</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Táto požiadavka už nie je platná</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2509,7 +2509,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2493,24 +2493,21 @@
|
||||
<value>Пријавите се са другим уређајем</value>
|
||||
</data>
|
||||
<data name="LogInInitiated" xml:space="preserve">
|
||||
<value>Пријава је покренута</value>
|
||||
<value>Log in initiated</value>
|
||||
</data>
|
||||
<data name="ANotificationHasBeenSentToYourDevice" xml:space="preserve">
|
||||
<value>Обавештење је послато на ваш уређај.</value>
|
||||
<value>A notification has been sent to your device.</value>
|
||||
</data>
|
||||
<data name="PleaseMakeSureYourVaultIsUnlockedAndTheFingerprintPhraseMatchesOnTheOtherDevice" xml:space="preserve">
|
||||
<value>Уверите се да је ваш сеф откључан и да се фраза отиска прста подудара на другом уређају.</value>
|
||||
<value>Please make sure your vault is unlocked and the Fingerprint phrase matches on the other device.</value>
|
||||
</data>
|
||||
<data name="ResendNotification" xml:space="preserve">
|
||||
<value>Поново послати обавештење</value>
|
||||
<value>Resend notification</value>
|
||||
</data>
|
||||
<data name="NeedAnotherOption" xml:space="preserve">
|
||||
<value>Треба Вам друга опције?</value>
|
||||
<value>Need another option?</value>
|
||||
</data>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Погледајте сав извештај у опције</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Овај захтев више не важи</value>
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2493,24 +2493,21 @@ Vill du byta till detta konto?</value>
|
||||
<value>Logga in med en annan enhet</value>
|
||||
</data>
|
||||
<data name="LogInInitiated" xml:space="preserve">
|
||||
<value>Inloggning påbörjad</value>
|
||||
<value>Log in initiated</value>
|
||||
</data>
|
||||
<data name="ANotificationHasBeenSentToYourDevice" xml:space="preserve">
|
||||
<value>En avisering har skickats till din enhet.</value>
|
||||
<value>A notification has been sent to your device.</value>
|
||||
</data>
|
||||
<data name="PleaseMakeSureYourVaultIsUnlockedAndTheFingerprintPhraseMatchesOnTheOtherDevice" xml:space="preserve">
|
||||
<value>Se till att ditt valv är upplåst och att fingeravtrycksfrasen matchar på den andra enheten.</value>
|
||||
<value>Please make sure your vault is unlocked and the Fingerprint phrase matches on the other device.</value>
|
||||
</data>
|
||||
<data name="ResendNotification" xml:space="preserve">
|
||||
<value>Skicka avisering igen</value>
|
||||
<value>Resend notification</value>
|
||||
</data>
|
||||
<data name="NeedAnotherOption" xml:space="preserve">
|
||||
<value>Behöver du fler alternativ?</value>
|
||||
<value>Need another option?</value>
|
||||
</data>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Visa alla inloggningsalternativ</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2509,7 +2509,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2516,7 +2516,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2507,7 +2507,4 @@ Bu hesaba geçmek ister misiniz?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Tüm giriş seçeneklerini gör</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Bu istek artık geçerli değil</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>Переглянути всі варіанти входу</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>Цей запит більше недійсний</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@ Do you want to switch to this account?</value>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>View all log in options</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>This request is no longer valid</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -1762,7 +1762,7 @@
|
||||
<value>使用下拉手势同步密码库。</value>
|
||||
</data>
|
||||
<data name="LogInSso" xml:space="preserve">
|
||||
<value>企业单点登录</value>
|
||||
<value>企业单点登录(SSO)</value>
|
||||
</data>
|
||||
<data name="LogInSsoSummary" xml:space="preserve">
|
||||
<value>要使用您组织的单点登录门户快速登录。请首先输入您组织的标识符。</value>
|
||||
@@ -2503,12 +2503,9 @@
|
||||
<value>重新发送通知</value>
|
||||
</data>
|
||||
<data name="NeedAnotherOption" xml:space="preserve">
|
||||
<value>需要其他选项吗?</value>
|
||||
<value>Need another option?</value>
|
||||
</data>
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>查看所有登录选项</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>请求已失效</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -2508,7 +2508,4 @@
|
||||
<data name="ViewAllLoginOptions" xml:space="preserve">
|
||||
<value>檢視所有登入選項</value>
|
||||
</data>
|
||||
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
|
||||
<value>此請求已失效</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -187,10 +187,8 @@ namespace Bit.App.Services
|
||||
Debug.WriteLine($"{TAG} Registered device with server.");
|
||||
|
||||
await _stateService.Value.SetPushLastRegistrationDateAsync(DateTime.UtcNow);
|
||||
if (deviceType == Device.Android)
|
||||
{
|
||||
await _stateService.Value.SetPushCurrentTokenAsync(token);
|
||||
}
|
||||
|
||||
await _stateService.Value.SetPushCurrentTokenAsync(token);
|
||||
}
|
||||
#if DEBUG
|
||||
catch (ApiException apiEx)
|
||||
|
||||
@@ -109,7 +109,7 @@ namespace Bit.App.Utilities.AccountManagement
|
||||
}
|
||||
else
|
||||
{
|
||||
_accountsManagerHost.Navigate(NavigationTarget.HomeLogin, new HomeNavigationParams(false));
|
||||
_accountsManagerHost.Navigate(NavigationTarget.HomeLogin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +83,6 @@ namespace Bit.Core.Abstractions
|
||||
Task<SendResponse> PutSendAsync(string id, SendRequest request);
|
||||
Task<SendResponse> PutSendRemovePasswordAsync(string id);
|
||||
Task DeleteSendAsync(string id);
|
||||
Task<List<PasswordlessLoginResponse>> GetAuthRequestAsync();
|
||||
Task<PasswordlessLoginResponse> GetAuthRequestAsync(string id);
|
||||
Task<PasswordlessLoginResponse> GetAuthResponseAsync(string id, string accessCode);
|
||||
Task<PasswordlessLoginResponse> PutAuthRequestAsync(string id, string key, string masterPasswordHash, string deviceIdentifier, bool requestApproved);
|
||||
|
||||
@@ -29,7 +29,6 @@ namespace Bit.Core.Abstractions
|
||||
Task<AuthResult> LogInTwoFactorAsync(TwoFactorProviderType twoFactorProvider, string twoFactorToken, string captchaToken, bool? remember = null);
|
||||
Task<AuthResult> LogInPasswordlessAsync(string email, string accessCode, string authRequestId, byte[] decryptionKey, string userKeyCiphered, string localHashedPasswordCiphered);
|
||||
|
||||
Task<List<PasswordlessLoginResponse>> GetPasswordlessLoginRequestsAsync();
|
||||
Task<PasswordlessLoginResponse> GetPasswordlessLoginRequestByIdAsync(string id);
|
||||
Task<PasswordlessLoginResponse> GetPasswordlessLoginResponseAsync(string id, string accessCode);
|
||||
Task<PasswordlessLoginResponse> PasswordlessLoginAsync(string id, string pubKey, bool requestApproved);
|
||||
|
||||
@@ -14,7 +14,5 @@ namespace Bit.Core.Abstractions
|
||||
Task<bool> SyncDeleteFolderAsync(SyncFolderNotification notification);
|
||||
Task<bool> SyncUpsertCipherAsync(SyncCipherNotification notification, bool isEdit);
|
||||
Task<bool> SyncUpsertFolderAsync(SyncFolderNotification notification, bool isEdit);
|
||||
// Passwordless code will be moved to an independent service in future techdept
|
||||
Task SyncPasswordlessLoginRequestsAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,11 @@ namespace Bit.Core.Models.Request
|
||||
{
|
||||
public class DeviceRequest
|
||||
{
|
||||
public DeviceRequest(string appId, IPlatformUtilsService platformUtilsService)
|
||||
public DeviceRequest(string appId, string pushToken, IPlatformUtilsService platformUtilsService)
|
||||
{
|
||||
Type = platformUtilsService.GetDevice();
|
||||
Name = platformUtilsService.GetDeviceString();
|
||||
PushToken = pushToken;
|
||||
Identifier = appId;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Bit.Core.Enums;
|
||||
using Bit.Core.Models.Data;
|
||||
|
||||
namespace Bit.Core.Models.Response
|
||||
{
|
||||
@@ -15,19 +13,9 @@ namespace Bit.Core.Models.Response
|
||||
public string Key { get; set; }
|
||||
public string MasterPasswordHash { get; set; }
|
||||
public DateTime CreationDate { get; set; }
|
||||
public DateTime? ResponseDate { get; set; }
|
||||
public bool? RequestApproved { get; set; }
|
||||
public bool RequestApproved { get; set; }
|
||||
public string Origin { get; set; }
|
||||
public string RequestAccessCode { get; set; }
|
||||
public Tuple<byte[], byte[]> RequestKeyPair { get; set; }
|
||||
|
||||
public bool IsAnswered => RequestApproved != null && ResponseDate != null;
|
||||
|
||||
public bool IsExpired => CreationDate.ToUniversalTime().AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes) < DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public class PasswordlessLoginsResponse
|
||||
{
|
||||
public List<PasswordlessLoginResponse> Data { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -536,12 +536,6 @@ namespace Bit.Core.Services
|
||||
|
||||
#region PasswordlessLogin
|
||||
|
||||
public async Task<List<PasswordlessLoginResponse>> GetAuthRequestAsync()
|
||||
{
|
||||
var response = await SendAsync<object, PasswordlessLoginsResponse>(HttpMethod.Get, $"/auth-requests/", null, true, true);
|
||||
return response.Data;
|
||||
}
|
||||
|
||||
public Task<PasswordlessLoginResponse> GetAuthRequestAsync(string id)
|
||||
{
|
||||
return SendAsync<object, PasswordlessLoginResponse>(HttpMethod.Get, $"/auth-requests/{id}", null, true, true);
|
||||
|
||||
@@ -300,7 +300,8 @@ namespace Bit.Core.Services
|
||||
{
|
||||
var storedTwoFactorToken = await _tokenService.GetTwoFactorTokenAsync(email);
|
||||
var appId = await _appIdService.GetAppIdAsync();
|
||||
var deviceRequest = new DeviceRequest(appId, _platformUtilsService);
|
||||
var pushToken = await _stateService.GetPushCurrentTokenAsync();
|
||||
var deviceRequest = new DeviceRequest(appId, pushToken, _platformUtilsService);
|
||||
|
||||
string[] emailPassword;
|
||||
string[] codeCodeVerifier;
|
||||
@@ -485,11 +486,6 @@ namespace Bit.Core.Services
|
||||
SelectedTwoFactorProviderType = null;
|
||||
}
|
||||
|
||||
public async Task<List<PasswordlessLoginResponse>> GetPasswordlessLoginRequestsAsync()
|
||||
{
|
||||
return await _apiService.GetAuthRequestAsync();
|
||||
}
|
||||
|
||||
public async Task<PasswordlessLoginResponse> GetPasswordlessLoginRequestByIdAsync(string id)
|
||||
{
|
||||
return await _apiService.GetAuthRequestAsync(id);
|
||||
|
||||
@@ -24,7 +24,6 @@ namespace Bit.Core.Services
|
||||
private readonly IPolicyService _policyService;
|
||||
private readonly ISendService _sendService;
|
||||
private readonly IKeyConnectorService _keyConnectorService;
|
||||
private readonly ILogger _logger;
|
||||
private readonly Func<Tuple<string, bool, bool>, Task> _logoutCallbackAsync;
|
||||
|
||||
public SyncService(
|
||||
@@ -40,7 +39,6 @@ namespace Bit.Core.Services
|
||||
IPolicyService policyService,
|
||||
ISendService sendService,
|
||||
IKeyConnectorService keyConnectorService,
|
||||
ILogger logger,
|
||||
Func<Tuple<string, bool, bool>, Task> logoutCallbackAsync)
|
||||
{
|
||||
_stateService = stateService;
|
||||
@@ -55,7 +53,6 @@ namespace Bit.Core.Services
|
||||
_policyService = policyService;
|
||||
_sendService = sendService;
|
||||
_keyConnectorService = keyConnectorService;
|
||||
_logger = logger;
|
||||
_logoutCallbackAsync = logoutCallbackAsync;
|
||||
}
|
||||
|
||||
@@ -385,45 +382,5 @@ namespace Bit.Core.Services
|
||||
new Dictionary<string, SendData>();
|
||||
await _sendService.ReplaceAsync(sends);
|
||||
}
|
||||
|
||||
public async Task SyncPasswordlessLoginRequestsAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
var userId = await _stateService.GetActiveUserIdAsync();
|
||||
// if the user has not enabled passwordless logins ignore requests
|
||||
if (!await _stateService.GetApprovePasswordlessLoginsAsync(userId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var loginRequests = await _apiService.GetAuthRequestAsync();
|
||||
if (loginRequests == null || !loginRequests.Any())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var validLoginRequest = loginRequests.Where(l => !l.IsAnswered && !l.IsExpired)
|
||||
.OrderByDescending(x => x.CreationDate)
|
||||
.FirstOrDefault();
|
||||
|
||||
if (validLoginRequest is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
await _stateService.SetPasswordlessLoginNotificationAsync(new PasswordlessRequestNotification()
|
||||
{
|
||||
Id = validLoginRequest.Id,
|
||||
UserId = userId
|
||||
});
|
||||
|
||||
_messagingService.Send(Constants.PasswordlessLoginRequestKey);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Exception(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,8 +29,6 @@ namespace Bit.Core.Utilities
|
||||
var messagingService = Resolve<IMessagingService>("messagingService");
|
||||
var cryptoFunctionService = Resolve<ICryptoFunctionService>("cryptoFunctionService");
|
||||
var cryptoService = Resolve<ICryptoService>("cryptoService");
|
||||
var logger = Resolve<ILogger>();
|
||||
|
||||
SearchService searchService = null;
|
||||
|
||||
var tokenService = new TokenService(stateService);
|
||||
@@ -69,7 +67,7 @@ namespace Bit.Core.Utilities
|
||||
});
|
||||
var syncService = new SyncService(stateService, apiService, settingsService, folderService, cipherService,
|
||||
cryptoService, collectionService, organizationService, messagingService, policyService, sendService,
|
||||
keyConnectorService, logger, (extras) =>
|
||||
keyConnectorService, (extras) =>
|
||||
{
|
||||
messagingService.Send("logout", extras);
|
||||
return Task.CompletedTask;
|
||||
|
||||
@@ -9,34 +9,25 @@ using Google.Apis.Services;
|
||||
|
||||
namespace Bit.Publisher
|
||||
{
|
||||
|
||||
// static class to hold global variables, etc.
|
||||
static class Globals
|
||||
{
|
||||
// global string
|
||||
// private const string Package = "com.x8bit.bitwarden";
|
||||
public static string Package;
|
||||
}
|
||||
|
||||
|
||||
public class Program
|
||||
{
|
||||
private const string Package = "com.x8bit.bitwarden";
|
||||
|
||||
private static string _aabFilePath;
|
||||
private static string _credsFilePath;
|
||||
private static string _track;
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
if (args.Length < 4)
|
||||
if (args.Length < 3)
|
||||
{
|
||||
throw new ArgumentException("Not enough arguments (needs 4), got: " + args.Length);
|
||||
throw new ArgumentException("Not enough arguments.");
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
_credsFilePath = args[0];
|
||||
_aabFilePath = args[1];
|
||||
Globals.Package = args[3];
|
||||
|
||||
var track = args[2].Substring(0, 1).ToLower();
|
||||
if (track == "a")
|
||||
@@ -88,7 +79,7 @@ namespace Bit.Publisher
|
||||
});
|
||||
service.HttpClient.Timeout = TimeSpan.FromMinutes(3);
|
||||
|
||||
var editRequest = service.Edits.Insert(null, Globals.Package);
|
||||
var editRequest = service.Edits.Insert(null, Package);
|
||||
var edit = await editRequest.ExecuteAsync();
|
||||
|
||||
Console.WriteLine("Created edit with id {0}.", edit.Id);
|
||||
@@ -96,7 +87,7 @@ namespace Bit.Publisher
|
||||
Bundle aab = null;
|
||||
using (var stream = new FileStream(_aabFilePath, FileMode.Open))
|
||||
{
|
||||
var uploadMedia = service.Edits.Bundles.Upload(Globals.Package, edit.Id, stream,
|
||||
var uploadMedia = service.Edits.Bundles.Upload(Package, edit.Id, stream,
|
||||
"application/octet-stream");
|
||||
|
||||
var progress = await uploadMedia.UploadAsync();
|
||||
@@ -123,12 +114,12 @@ namespace Bit.Publisher
|
||||
{
|
||||
new TrackRelease { VersionCodes = new List<long?> { aab.VersionCode }, Status = "completed" }
|
||||
}
|
||||
}, Globals.Package, edit.Id, _track);
|
||||
}, Package, edit.Id, _track);
|
||||
|
||||
var updatedTrack = await trackRequest.ExecuteAsync();
|
||||
Console.WriteLine("Track {0} has been updated.", updatedTrack.TrackValue);
|
||||
|
||||
var commitRequest = service.Edits.Commit(Globals.Package, edit.Id);
|
||||
var commitRequest = service.Edits.Commit(Package, edit.Id);
|
||||
var commitEdit = await commitRequest.ExecuteAsync();
|
||||
Console.WriteLine("App edit with id {0} has been comitted.", commitEdit.Id);
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
<comment>Max 30 characters</comment>
|
||||
</data>
|
||||
<data name="ShortDescription" xml:space="preserve">
|
||||
<value>Bitwarden on tunnusten ja salasanojen hallinta, joka suojaa sinua verkossa.</value>
|
||||
<value>Bitwarden on käyttäjätunnusten ja salasanojen hallintapalvelu, joka auttaa suojaamaan sinua verkossa.</value>
|
||||
<comment>Max 80 characters</comment>
|
||||
</data>
|
||||
<data name="FullDesciption" xml:space="preserve">
|
||||
|
||||
Reference in New Issue
Block a user