spring-cleaning: remove unused resources, rename strings from camelCase to snake_case to follow standard practice
@ -88,7 +88,7 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name=".ui.KeyListPublicActivity"
|
android:name=".ui.KeyListPublicActivity"
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
||||||
android:label="@string/title_managePublicKeys"
|
android:label="@string/title_manage_public_keys"
|
||||||
android:launchMode="singleTop"
|
android:launchMode="singleTop"
|
||||||
android:uiOptions="splitActionBarWhenNarrow" >
|
android:uiOptions="splitActionBarWhenNarrow" >
|
||||||
|
|
||||||
@ -104,7 +104,7 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name=".ui.KeyListSecretActivity"
|
android:name=".ui.KeyListSecretActivity"
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
||||||
android:label="@string/title_manageSecretKeys"
|
android:label="@string/title_manage_secret_keys"
|
||||||
android:launchMode="singleTop"
|
android:launchMode="singleTop"
|
||||||
android:uiOptions="splitActionBarWhenNarrow" >
|
android:uiOptions="splitActionBarWhenNarrow" >
|
||||||
|
|
||||||
@ -120,13 +120,13 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name=".ui.EditKeyActivity"
|
android:name=".ui.EditKeyActivity"
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
||||||
android:label="@string/title_editKey"
|
android:label="@string/title_edit_key"
|
||||||
android:uiOptions="splitActionBarWhenNarrow"
|
android:uiOptions="splitActionBarWhenNarrow"
|
||||||
android:windowSoftInputMode="stateHidden" />
|
android:windowSoftInputMode="stateHidden" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.SelectPublicKeyActivity"
|
android:name=".ui.SelectPublicKeyActivity"
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
||||||
android:label="@string/title_selectRecipients"
|
android:label="@string/title_select_recipients"
|
||||||
android:launchMode="singleTop"
|
android:launchMode="singleTop"
|
||||||
android:uiOptions="splitActionBarWhenNarrow" >
|
android:uiOptions="splitActionBarWhenNarrow" >
|
||||||
|
|
||||||
@ -142,7 +142,7 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name=".ui.SelectSecretKeyActivity"
|
android:name=".ui.SelectSecretKeyActivity"
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
||||||
android:label="@string/title_selectSignature"
|
android:label="@string/title_select_secret_key"
|
||||||
android:launchMode="singleTop" >
|
android:launchMode="singleTop" >
|
||||||
|
|
||||||
<!-- <intent-filter> -->
|
<!-- <intent-filter> -->
|
||||||
@ -248,11 +248,11 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name=".ui.KeyServerQueryActivity"
|
android:name=".ui.KeyServerQueryActivity"
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
||||||
android:label="@string/title_keyServerQuery" />
|
android:label="@string/title_key_server_query" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.KeyServerUploadActivity"
|
android:name=".ui.KeyServerUploadActivity"
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
||||||
android:label="@string/title_sendKey" />
|
android:label="@string/title_send_key" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.PreferencesActivity"
|
android:name=".ui.PreferencesActivity"
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
||||||
@ -260,16 +260,16 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name=".ui.PreferencesKeyServerActivity"
|
android:name=".ui.PreferencesKeyServerActivity"
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
||||||
android:label="@string/title_keyServerPreference"
|
android:label="@string/title_key_server_preference"
|
||||||
android:uiOptions="splitActionBarWhenNarrow"
|
android:uiOptions="splitActionBarWhenNarrow"
|
||||||
android:windowSoftInputMode="stateHidden" />
|
android:windowSoftInputMode="stateHidden" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.SignKeyActivity"
|
android:name=".ui.SignKeyActivity"
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
|
||||||
android:label="@string/title_signKey" />
|
android:label="@string/title_sign_key" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.ImportKeysActivity"
|
android:name=".ui.ImportKeysActivity"
|
||||||
android:label="@string/title_importKeys"
|
android:label="@string/title_import_keys"
|
||||||
android:windowSoftInputMode="stateHidden" >
|
android:windowSoftInputMode="stateHidden" >
|
||||||
|
|
||||||
<!-- Keychain's own Actions -->
|
<!-- Keychain's own Actions -->
|
||||||
@ -332,7 +332,7 @@
|
|||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.ShareNfcBeamActivity"
|
android:name=".ui.ShareNfcBeamActivity"
|
||||||
android:label="@string/title_shareByNfc"
|
android:label="@string/title_share_by_nfc"
|
||||||
android:launchMode="singleTop"
|
android:launchMode="singleTop"
|
||||||
android:uiOptions="splitActionBarWhenNarrow" >
|
android:uiOptions="splitActionBarWhenNarrow" >
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.5 KiB |
@ -1,35 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Copyright (C) 2010 Thialfihar <thi@thialfihar.org>
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:layout_marginRight="?android:attr/scrollbarSize"
|
|
||||||
android:paddingLeft="6dip"
|
|
||||||
android:paddingTop="6dip"
|
|
||||||
android:paddingBottom="6dip"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="?android:attr/listPreferredItemHeight">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/accountName"
|
|
||||||
android:text="someone@gmail.com"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceLarge"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
@ -88,7 +88,7 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_encryptionAlgorithm"
|
android:text="@string/label_encryption_algorithm"
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||||
|
|
||||||
<Spinner
|
<Spinner
|
||||||
@ -99,7 +99,7 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_hashAlgorithm"
|
android:text="@string/label_hash_algorithm"
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||||
|
|
||||||
<Spinner
|
<Spinner
|
||||||
@ -110,7 +110,7 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_messageCompression"
|
android:text="@string/label_message_compression"
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||||
|
|
||||||
<Spinner
|
<Spinner
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:padding="4dp"
|
android:padding="4dp"
|
||||||
android:text="@string/keyCreationElGamalInfo" />
|
android:text="@string/key_creation_el_gamal_info" />
|
||||||
|
|
||||||
<TableRow>
|
<TableRow>
|
||||||
|
|
||||||
@ -56,7 +56,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:padding="4dp"
|
android:padding="4dp"
|
||||||
android:text="@string/label_keySize" />
|
android:text="@string/label_key_size" />
|
||||||
|
|
||||||
<Spinner
|
<Spinner
|
||||||
android:id="@+id/create_key_size"
|
android:id="@+id/create_key_size"
|
||||||
|
@ -170,7 +170,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:text="@string/label_deleteAfterDecryption" />
|
android:text="@string/label_delete_after_decryption" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ViewFlipper>
|
</ViewFlipper>
|
||||||
|
@ -33,20 +33,20 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:padding="4dp"
|
android:padding="4dp"
|
||||||
android:text="@string/label_passPhrase" />
|
android:text="@string/label_passphrase" />
|
||||||
|
|
||||||
<CheckBox
|
<CheckBox
|
||||||
android:id="@+id/edit_key_no_passphrase"
|
android:id="@+id/edit_key_no_passphrase"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_noPassPhrase" />
|
android:text="@string/label_no_passphrase" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/edit_key_btn_change_pass_phrase"
|
android:id="@+id/edit_key_btn_change_pass_phrase"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:padding="4dp"
|
android:padding="4dp"
|
||||||
android:text="@string/btn_setPassPhrase" />
|
android:text="@string/btn_set_passphrase" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/edit_key_container"
|
android:id="@+id/edit_key_container"
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:paddingRight="10dip"
|
android:paddingRight="10dip"
|
||||||
android:text="@string/label_keyId" />
|
android:text="@string/label_key_id" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/keyId"
|
android:id="@+id/keyId"
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
android:id="@+id/isMainUserId"
|
android:id="@+id/isMainUserId"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_mainUserId" />
|
android:text="@string/label_main_user_id" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
|
@ -119,7 +119,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:text="@string/label_selectPublicKeys"
|
android:text="@string/label_select_public_keys"
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
@ -127,7 +127,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:text="@string/btn_selectEncryptKeys" />
|
android:text="@string/btn_select_encrypt_keys" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
@ -146,7 +146,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:paddingRight="10dip"
|
android:paddingRight="10dip"
|
||||||
android:text="@string/label_passPhrase"
|
android:text="@string/label_passphrase"
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
@ -164,7 +164,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:paddingRight="10dip"
|
android:paddingRight="10dip"
|
||||||
android:text="@string/label_passPhraseAgain"
|
android:text="@string/label_passphrase_again"
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
@ -264,7 +264,7 @@
|
|||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:paddingRight="10dip"
|
android:paddingRight="10dip"
|
||||||
android:text="@string/label_fileCompression"
|
android:text="@string/label_file_compression"
|
||||||
android:textAppearance="?android:attr/textAppearanceSmall" />
|
android:textAppearance="?android:attr/textAppearanceSmall" />
|
||||||
|
|
||||||
<Spinner
|
<Spinner
|
||||||
@ -284,7 +284,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:text="@string/label_deleteAfterEncryption" />
|
android:text="@string/label_delete_after_encryption" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@ -297,7 +297,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:text="@string/label_asciiArmour" />
|
android:text="@string/label_ascii_armor" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ViewFlipper>
|
</ViewFlipper>
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:contentDescription="@string/filemanager_titleOpen"
|
android:contentDescription="@string/filemanager_title_open"
|
||||||
android:src="@drawable/ic_menu_filebrowser" />
|
android:src="@drawable/ic_menu_filebrowser" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!-- Copyright (C) 2010 Thialfihar <thi@thialfihar.org>
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingBottom="5dip"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/filterInfo"
|
|
||||||
android:layout_width="0dip"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:ellipsize="end"/>
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:id="@+id/btn_clear"
|
|
||||||
android:text="@string/btn_clearFilter"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
@ -1,59 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Copyright (C) 2010 Thialfihar <thi@thialfihar.org>
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<ListView
|
|
||||||
android:id="@+id/options"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="0dip"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:padding="5dip"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="@android:style/ButtonBar">
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:text="dummy"
|
|
||||||
android:layout_width="0dip"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:visibility="invisible"/>
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:id="@+id/btn_cancel"
|
|
||||||
android:text="@android:string/cancel"
|
|
||||||
android:layout_width="0dip"
|
|
||||||
android:layout_height="fill_parent"
|
|
||||||
android:layout_weight="2"/>
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:text="dummy"
|
|
||||||
android:layout_width="0dip"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:visibility="invisible"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
@ -8,7 +8,6 @@
|
|||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:id="@+id/pager"
|
android:id="@+id/pager"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent" />
|
||||||
</android.support.v4.view.ViewPager>
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@ -21,7 +21,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:contentDescription="@string/filemanager_titleOpen"
|
android:contentDescription="@string/filemanager_title_open"
|
||||||
android:src="@drawable/ic_menu_filebrowser" />
|
android:src="@drawable/ic_menu_filebrowser" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@ -7,7 +7,7 @@
|
|||||||
android:id="@+id/import_keyserver_button"
|
android:id="@+id/import_keyserver_button"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/menu_keyServer" />
|
android:text="@string/menu_key_server" />
|
||||||
|
|
||||||
<!-- <Spinner -->
|
<!-- <Spinner -->
|
||||||
<!-- android:id="@+id/import_keys_server_key_server" -->
|
<!-- android:id="@+id/import_keys_server_key_server" -->
|
||||||
|
@ -8,6 +8,6 @@
|
|||||||
android:id="@+id/import_nfc_button"
|
android:id="@+id/import_nfc_button"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/menu_importFromNfc" />
|
android:text="@string/menu_import_from_nfc" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@ -8,7 +8,7 @@
|
|||||||
android:id="@+id/import_qrcode_button"
|
android:id="@+id/import_qrcode_button"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/menu_importFromQrCode" />
|
android:text="@string/menu_import_from_qr_code" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/import_qrcode_text"
|
android:id="@+id/import_qrcode_text"
|
||||||
|
@ -20,6 +20,6 @@
|
|||||||
android:paddingLeft="10dp"
|
android:paddingLeft="10dp"
|
||||||
android:paddingRight="10dp"
|
android:paddingRight="10dp"
|
||||||
android:paddingTop="3dp"
|
android:paddingTop="3dp"
|
||||||
android:text="@string/listInformation" />
|
android:text="@string/list_information" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@ -20,6 +20,6 @@
|
|||||||
android:paddingLeft="10dp"
|
android:paddingLeft="10dp"
|
||||||
android:paddingRight="10dp"
|
android:paddingRight="10dp"
|
||||||
android:paddingTop="3dp"
|
android:paddingTop="3dp"
|
||||||
android:text="@string/listInformation" />
|
android:text="@string/list_information" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@ -35,7 +35,7 @@
|
|||||||
android:layout_width="0dip"
|
android:layout_width="0dip"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:hint="@string/hint_secretKeys"
|
android:hint="@string/hint_secret_keys"
|
||||||
android:imeOptions="actionSearch"
|
android:imeOptions="actionSearch"
|
||||||
android:inputType="textNoSuggestions"
|
android:inputType="textNoSuggestions"
|
||||||
android:singleLine="true" />
|
android:singleLine="true" />
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:padding="4dp"
|
android:padding="4dp"
|
||||||
android:text="@string/label_passPhrase" />
|
android:text="@string/label_passphrase" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/passphrase_passphrase"
|
android:id="@+id/passphrase_passphrase"
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:padding="4dp"
|
android:padding="4dp"
|
||||||
android:text="@string/label_passPhrase" />
|
android:text="@string/label_passphrase" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/passphrase_passphrase"
|
android:id="@+id/passphrase_passphrase"
|
||||||
@ -48,7 +48,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:padding="4dp"
|
android:padding="4dp"
|
||||||
android:text="@string/label_passPhraseAgain" />
|
android:text="@string/label_passphrase_again" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/passphrase_passphrase_again"
|
android:id="@+id/passphrase_passphrase_again"
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
android:layout_height="wrap_content" android:orientation="horizontal">
|
android:layout_height="wrap_content" android:orientation="horizontal">
|
||||||
|
|
||||||
<TextView android:id="@+id/textView1" android:layout_height="wrap_content"
|
<TextView android:id="@+id/textView1" android:layout_height="wrap_content"
|
||||||
android:text="@string/label_sendKey" android:textAppearance="?android:attr/textAppearanceMedium"
|
android:text="@string/label_send_key" android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
android:layout_width="wrap_content"></TextView>
|
android:layout_width="wrap_content"></TextView>
|
||||||
<CheckBox android:text="" android:id="@+id/sendKey"
|
<CheckBox android:text="" android:id="@+id/sendKey"
|
||||||
android:layout_width="wrap_content" android:layout_height="wrap_content"
|
android:layout_width="wrap_content" android:layout_height="wrap_content"
|
||||||
|
@ -5,6 +5,6 @@
|
|||||||
android:id="@+id/menu_settings"
|
android:id="@+id/menu_settings"
|
||||||
android:icon="@drawable/ic_menu_settings"
|
android:icon="@drawable/ic_menu_settings"
|
||||||
android:showAsAction="always|withText"
|
android:showAsAction="always|withText"
|
||||||
android:title="@string/menu_BeamPreferences"/>
|
android:title="@string/menu_beam_preferences"/>
|
||||||
|
|
||||||
</menu>
|
</menu>
|
@ -50,11 +50,11 @@
|
|||||||
<item>@string/key_size_4096</item>
|
<item>@string/key_size_4096</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="import_action_list">
|
<string-array name="import_action_list">
|
||||||
<item>@string/menu_importFromFile</item>
|
<item>@string/menu_import_from_file</item>
|
||||||
<item>@string/menu_keyServer</item>
|
<item>@string/menu_key_server</item>
|
||||||
<item>@string/menu_importFromQrCode</item>
|
<item>@string/menu_import_from_qr_code</item>
|
||||||
<item>@string/import_from_clipboard</item>
|
<item>@string/import_from_clipboard</item>
|
||||||
<item>@string/menu_importFromNfc</item>
|
<item>@string/menu_import_from_nfc</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
@ -2,6 +2,5 @@
|
|||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="app_name" translate="false">OpenPGP Keychain</string>
|
<string name="app_name" translate="false">OpenPGP Keychain</string>
|
||||||
<string name="about_url" translate="false">https://github.com/dschuermann/apg</string>
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
@ -18,154 +18,136 @@
|
|||||||
|
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<!-- title_lowerCase: capitalized words, no punctuation -->
|
<!-- title -->
|
||||||
<string name="title_mailInbox">Mail Inbox</string>
|
<string name="title_manage_public_keys">Manage Public Keys</string>
|
||||||
<string name="title_managePublicKeys">Manage Public Keys</string>
|
<string name="title_manage_secret_keys">Manage Secret Keys</string>
|
||||||
<string name="title_manageSecretKeys">Manage Secret Keys</string>
|
<string name="title_select_recipients">Select Public Key</string>
|
||||||
<string name="title_selectRecipients">Select Public Key</string>
|
<string name="title_select_secret_key">Select Secret Key</string>
|
||||||
<string name="title_selectSignature">Select Secret Key</string>
|
|
||||||
<string name="title_encrypt">Encrypt</string>
|
<string name="title_encrypt">Encrypt</string>
|
||||||
<string name="title_decrypt">Decrypt</string>
|
<string name="title_decrypt">Decrypt</string>
|
||||||
<string name="title_authentication">Passphrase</string>
|
<string name="title_authentication">Passphrase</string>
|
||||||
<string name="title_createKey">Create Key</string>
|
<string name="title_create_key">Create Key</string>
|
||||||
<string name="title_editKey">Edit Key</string>
|
<string name="title_edit_key">Edit Key</string>
|
||||||
<string name="title_preferences">Preferences</string>
|
<string name="title_preferences">Preferences</string>
|
||||||
<string name="title_api_registered_apps">Registered Applications</string>
|
<string name="title_api_registered_apps">Registered Applications</string>
|
||||||
<string name="title_keyServerPreference">Key Server Preference</string>
|
<string name="title_key_server_preference">Key Server Preference</string>
|
||||||
<string name="title_changePassPhrase">Change Passphrase</string>
|
<string name="title_change_pass_phrase">Change Passphrase</string>
|
||||||
<string name="title_setPassPhrase">Set Passphrase</string>
|
<string name="title_set_passphrase">Set Passphrase</string>
|
||||||
<string name="title_sendEmail">"Send Mail…"</string>
|
<string name="title_send_email">"Send Mail…"</string>
|
||||||
<string name="title_encryptToFile">Encrypt To File</string>
|
<string name="title_encrypt_to_file">Encrypt To File</string>
|
||||||
<string name="title_decryptToFile">Decrypt To File</string>
|
<string name="title_decrypt_to_file">Decrypt To File</string>
|
||||||
<string name="title_importKeys">Import Keys</string>
|
<string name="title_import_keys">Import Keys</string>
|
||||||
<string name="title_exportKey">Export Key</string>
|
<string name="title_export_key">Export Key</string>
|
||||||
<string name="title_exportKeys">Export Keys</string>
|
<string name="title_export_keys">Export Keys</string>
|
||||||
<string name="title_keyNotFound">Key Not Found</string>
|
<string name="title_key_not_found">Key Not Found</string>
|
||||||
<string name="title_keyServerQuery">Query Key Server</string>
|
<string name="title_key_server_query">Query Key Server</string>
|
||||||
<string name="title_sendKey">Export to Key Server</string>
|
<string name="title_send_key">Export to Key Server</string>
|
||||||
<string name="title_unknownSignatureKey">Unknown Signature Key</string>
|
<string name="title_unknown_signature_key">Unknown Signature Key</string>
|
||||||
<string name="title_signKey">Sign Key</string>
|
<string name="title_sign_key">Sign Key</string>
|
||||||
<string name="title_about">About</string>
|
|
||||||
<string name="title_help">Help</string>
|
<string name="title_help">Help</string>
|
||||||
<string name="title_shareByNfc">Share key with NFC</string>
|
<string name="title_share_by_nfc">Share key with NFC</string>
|
||||||
|
|
||||||
<!-- section_lowerCase: capitalized words, no punctuation -->
|
<!-- section -->
|
||||||
<string name="section_userIds">User IDs</string>
|
<string name="section_user_ids">User IDs</string>
|
||||||
<string name="section_keys">Keys</string>
|
<string name="section_keys">Keys</string>
|
||||||
<string name="section_general">General</string>
|
<string name="section_general">General</string>
|
||||||
<string name="section_defaults">Defaults</string>
|
<string name="section_defaults">Defaults</string>
|
||||||
<string name="section_advanced">Advanced</string>
|
<string name="section_advanced">Advanced</string>
|
||||||
|
|
||||||
<!-- btn_lowerCase: capitalized words, no punctuation -->
|
<!-- button -->
|
||||||
<string name="btn_signToClipboard">Sign (Clipboard)</string>
|
<string name="btn_sign_to_clipboard">Sign (Clipboard)</string>
|
||||||
<string name="btn_encryptToClipboard">Encrypt to Clipboard</string>
|
<string name="btn_encrypt_to_clipboard">Encrypt to Clipboard</string>
|
||||||
<string name="btn_encryptAndSend">Encrypt and send…</string>
|
<string name="btn_encrypt_and_send">Encrypt and send…</string>
|
||||||
<string name="btn_signAndSend">Sign and send…</string>
|
<string name="btn_sign_and_send">Sign and send…</string>
|
||||||
<string name="btn_encrypt">Encrypt</string>
|
|
||||||
<string name="btn_sign">Sign</string>
|
<string name="btn_sign">Sign</string>
|
||||||
<string name="btn_decrypt">Decrypt</string>
|
<string name="btn_decrypt">Decrypt</string>
|
||||||
<string name="btn_verify">Verify</string>
|
<string name="btn_verify">Verify</string>
|
||||||
<string name="btn_selectEncryptKeys">Select Recipients</string>
|
<string name="btn_select_encrypt_keys">Select Recipients</string>
|
||||||
<string name="btn_reply">Reply</string>
|
<string name="btn_encrypt_file">Encrypt File</string>
|
||||||
<string name="btn_encryptMessage">Encrypt Message</string>
|
|
||||||
<string name="btn_decryptMessage">Decrypt Message</string>
|
|
||||||
<string name="btn_encryptFile">Encrypt File</string>
|
|
||||||
<string name="btn_decryptFile">Decrypt File</string>
|
|
||||||
<string name="btn_save">Save</string>
|
<string name="btn_save">Save</string>
|
||||||
<string name="btn_doNotSave">Cancel</string>
|
<string name="btn_do_not_save">Cancel</string>
|
||||||
<string name="btn_delete">Delete</string>
|
<string name="btn_delete">Delete</string>
|
||||||
<string name="btn_noDate">None</string>
|
<string name="btn_no_date">None</string>
|
||||||
<string name="btn_okay">Okay</string>
|
<string name="btn_okay">Okay</string>
|
||||||
<string name="btn_clearFilter">Clear Filter</string>
|
<string name="btn_change_passphrase">Change Passphrase</string>
|
||||||
<string name="btn_changePassPhrase">Change Passphrase</string>
|
<string name="btn_set_passphrase">Set Passphrase</string>
|
||||||
<string name="btn_setPassPhrase">Set Passphrase</string>
|
|
||||||
<string name="btn_search">Search</string>
|
<string name="btn_search">Search</string>
|
||||||
<string name="btn_export_to_server">Export To Server</string>
|
<string name="btn_export_to_server">Export To Server</string>
|
||||||
<string name="btn_next">Next</string>
|
<string name="btn_next">Next</string>
|
||||||
<string name="btn_back">Back</string>
|
<string name="btn_back">Back</string>
|
||||||
|
|
||||||
<!-- menu_lowerCase: capitalized words, no punctuation -->
|
<!-- menu -->
|
||||||
<string name="menu_about">About</string>
|
|
||||||
<string name="menu_deleteAccount">Delete Account</string>
|
|
||||||
<string name="menu_managePublicKeys">Manage Public Keys</string>
|
|
||||||
<string name="menu_manageSecretKeys">Manage Secret Keys</string>
|
|
||||||
<string name="menu_preferences">Settings</string>
|
<string name="menu_preferences">Settings</string>
|
||||||
<string name="menu_apiAppSettings">Registered Apps</string>
|
<string name="menu_api_app_settings">Registered Apps</string>
|
||||||
<string name="menu_importFromFile">Import from file</string>
|
<string name="menu_import_from_file">Import from file</string>
|
||||||
<string name="menu_importFromQrCode">Import from QR Code</string>
|
<string name="menu_import_from_qr_code">Import from QR Code</string>
|
||||||
<string name="menu_importFromNfc">Import from NFC</string>
|
<string name="menu_import_from_nfc">Import from NFC</string>
|
||||||
<string name="menu_exportKeys">Export all keys</string>
|
<string name="menu_export_keys">Export all keys</string>
|
||||||
<string name="menu_exportKey">Export to file</string>
|
<string name="menu_export_key">Export to file</string>
|
||||||
<string name="menu_deleteKey">Delete key</string>
|
<string name="menu_delete_key">Delete key</string>
|
||||||
<string name="menu_createKey">Create key</string>
|
<string name="menu_create_key">Create key</string>
|
||||||
<string name="menu_createKeyExpert">Create key (expert)</string>
|
<string name="menu_create_key_expert">Create key (expert)</string>
|
||||||
<string name="menu_editKey">Edit key</string>
|
<string name="menu_edit_key">Edit key</string>
|
||||||
<string name="menu_search">Search</string>
|
<string name="menu_search">Search</string>
|
||||||
<string name="menu_help">Help</string>
|
<string name="menu_key_server">Import from key server</string>
|
||||||
<string name="menu_keyServer">Import from key server</string>
|
<string name="menu_update_key">Update from server</string>
|
||||||
<string name="menu_updateKey">Update from server</string>
|
<string name="menu_export_key_to_server">Export to server</string>
|
||||||
<string name="menu_exportKeyToServer">Export to server</string>
|
|
||||||
<string name="menu_share">Share with…</string>
|
<string name="menu_share">Share with…</string>
|
||||||
<string name="menu_shareQrCode">Share with QR Code</string>
|
<string name="menu_share_qr_code">Share with QR Code</string>
|
||||||
<string name="menu_shareNfc">Share with NFC</string>
|
<string name="menu_share_nfc">Share with NFC</string>
|
||||||
<string name="menu_scanQRCode">Scan QR Code</string>
|
<string name="menu_sign_key">Sign key</string>
|
||||||
<string name="menu_signKey">Sign key</string>
|
<string name="menu_beam_preferences">Beam settings</string>
|
||||||
<string name="menu_BeamPreferences">Beam settings</string>
|
|
||||||
|
|
||||||
<!-- label_lowerCase: capitalized words, no punctuation -->
|
<!-- label -->
|
||||||
<string name="label_sign">Sign</string>
|
<string name="label_sign">Sign</string>
|
||||||
<string name="label_message">Message</string>
|
<string name="label_message">Message</string>
|
||||||
<string name="label_file">File</string>
|
<string name="label_file">File</string>
|
||||||
<string name="label_noPassPhrase">No Passphrase</string>
|
<string name="label_no_passphrase">No Passphrase</string>
|
||||||
<string name="label_passPhrase">Passphrase</string>
|
<string name="label_passphrase">Passphrase</string>
|
||||||
<string name="label_passPhraseAgain">Again</string>
|
<string name="label_passphrase_again">Again</string>
|
||||||
<string name="label_algorithm">Algorithm</string>
|
<string name="label_algorithm">Algorithm</string>
|
||||||
<string name="label_asciiArmour">ASCII Armor</string>
|
<string name="label_ascii_armor">ASCII Armor</string>
|
||||||
<string name="label_selectPublicKeys">Public Key(s)</string>
|
<string name="label_select_public_keys">Public Key(s)</string>
|
||||||
<string name="label_deleteAfterEncryption">Delete After Encryption</string>
|
<string name="label_delete_after_encryption">Delete After Encryption</string>
|
||||||
<string name="label_deleteAfterDecryption">Delete After Decryption</string>
|
<string name="label_delete_after_decryption">Delete After Decryption</string>
|
||||||
<string name="label_deleteAfterImport">Delete After Import</string>
|
<string name="label_encryption_algorithm">Encryption Algorithm</string>
|
||||||
<string name="label_encryptionAlgorithm">Encryption Algorithm</string>
|
<string name="label_hash_algorithm">Hash Algorithm</string>
|
||||||
<string name="label_hashAlgorithm">Hash Algorithm</string>
|
|
||||||
<string name="label_asymmetric">Public Key</string>
|
<string name="label_asymmetric">Public Key</string>
|
||||||
<string name="label_symmetric">Passphrase</string>
|
<string name="label_symmetric">Passphrase</string>
|
||||||
<string name="label_passPhraseCacheTtl">Passphrase Cache</string>
|
<string name="label_passphrase_cache_ttl">Passphrase Cache</string>
|
||||||
<string name="label_messageCompression">Message Compression</string>
|
<string name="label_message_compression">Message Compression</string>
|
||||||
<string name="label_fileCompression">File Compression</string>
|
<string name="label_file_compression">File Compression</string>
|
||||||
<string name="label_forceV3Signature">Force V3 Signatures</string>
|
<string name="label_force_v3_signature">Force V3 Signatures</string>
|
||||||
<string name="label_keyServers">Key Servers</string>
|
<string name="label_key_servers">Key Servers</string>
|
||||||
<string name="label_keyId">Key ID</string>
|
<string name="label_key_id">Key ID</string>
|
||||||
<string name="label_creation">Creation</string>
|
<string name="label_creation">Creation</string>
|
||||||
<string name="label_expiry">Expiry</string>
|
<string name="label_expiry">Expiry</string>
|
||||||
<string name="label_usage">Usage</string>
|
<string name="label_usage">Usage</string>
|
||||||
<string name="label_keySize">Key Size</string>
|
<string name="label_key_size">Key Size</string>
|
||||||
<string name="label_mainUserId">Main User ID</string>
|
<string name="label_main_user_id">Main User ID</string>
|
||||||
<string name="label_name">Name</string>
|
<string name="label_name">Name</string>
|
||||||
<string name="label_comment">Comment</string>
|
<string name="label_comment">Comment</string>
|
||||||
<string name="label_email">Email</string>
|
<string name="label_email">Email</string>
|
||||||
<string name="label_sendKey">Send Key to Server?</string>
|
<string name="label_send_key">Send Key to Server?</string>
|
||||||
<string name="noKeysSelected">Select</string>
|
<string name="no_keys_selected">Select</string>
|
||||||
<string name="oneKeySelected">1 Selected</string>
|
<string name="one_key_selected">1 Selected</string>
|
||||||
<string name="nKeysSelected">Selected</string>
|
<string name="n_keys_selected">Selected</string>
|
||||||
<string name="unknownUserId"><unknown></string>
|
<string name="unknown_user_id"><unknown></string>
|
||||||
<string name="none"><none></string>
|
<string name="none"><none></string>
|
||||||
<string name="noKey"><no key></string>
|
<string name="no_key"><no key></string>
|
||||||
<string name="noDate">-</string>
|
<string name="unknown_status"></string>
|
||||||
<string name="noExpiry"><no expiry></string>
|
<string name="can_encrypt">can encrypt</string>
|
||||||
<string name="unknownStatus"></string>
|
<string name="can_sign">can sign</string>
|
||||||
<string name="canEncrypt">can encrypt</string>
|
|
||||||
<string name="canSign">can sign</string>
|
|
||||||
<string name="expired">expired</string>
|
<string name="expired">expired</string>
|
||||||
<string name="notValid">not valid</string>
|
<string name="n_key_servers">%s key server(s)</string>
|
||||||
<string name="nKeyServers">%s key server(s)</string>
|
|
||||||
<string name="fingerprint">Fingerprint:</string>
|
<string name="fingerprint">Fingerprint:</string>
|
||||||
<string name="secretKey">Secret Key:</string>
|
<string name="secret_key">Secret Key:</string>
|
||||||
|
|
||||||
<!-- choice_lowerCase: capitalized first word, no punctuation -->
|
<!-- choice -->
|
||||||
<string name="choice_none">None</string>
|
<string name="choice_none">None</string>
|
||||||
<string name="choice_signOnly">Sign only</string>
|
<string name="choice_sign_only">Sign only</string>
|
||||||
<string name="choice_encryptOnly">Encrypt only</string>
|
<string name="choice_encrypt_only">Encrypt only</string>
|
||||||
<string name="choice_signAndEncrypt">Sign and Encrypt</string>
|
<string name="choice_sign_and_encrypt">Sign and Encrypt</string>
|
||||||
<string name="choice_15secs">15 secs</string>
|
<string name="choice_15secs">15 secs</string>
|
||||||
<string name="choice_1min">1 min</string>
|
<string name="choice_1min">1 min</string>
|
||||||
<string name="choice_3mins">3 mins</string>
|
<string name="choice_3mins">3 mins</string>
|
||||||
@ -177,148 +159,127 @@
|
|||||||
<string name="choice_2hours">2 hours</string>
|
<string name="choice_2hours">2 hours</string>
|
||||||
<string name="choice_4hours">4 hours</string>
|
<string name="choice_4hours">4 hours</string>
|
||||||
<string name="choice_8hours">8 hours</string>
|
<string name="choice_8hours">8 hours</string>
|
||||||
<string name="choice_untilQuit">until quit</string>
|
|
||||||
<string name="choice_language_system">System default</string>
|
|
||||||
<string name="dsa">DSA</string>
|
<string name="dsa">DSA</string>
|
||||||
<string name="elgamal">ElGamal</string>
|
<string name="elgamal">ElGamal</string>
|
||||||
<string name="rsa">RSA</string>
|
<string name="rsa">RSA</string>
|
||||||
<string name="filemanager_titleOpen">Open…</string>
|
<string name="filemanager_title_open">Open…</string>
|
||||||
<string name="filemanager_titleSave">Save As…</string>
|
|
||||||
<string name="filemanager_titleEncrypt">Select File To Encrypt…</string>
|
|
||||||
<string name="filemanager_titleDecrypt">Select File To Decrypt…</string>
|
|
||||||
<string name="filemanager_btnOpen">Open</string>
|
|
||||||
<string name="filemanager_btnSave">Save</string>
|
|
||||||
<string name="warning">Warning</string>
|
<string name="warning">Warning</string>
|
||||||
<string name="error">Error</string>
|
<string name="error">Error</string>
|
||||||
<string name="warningMessage">Warning: %s</string>
|
<string name="error_message">Error: %s</string>
|
||||||
<string name="errorMessage">Error: %s</string>
|
|
||||||
|
|
||||||
<!-- sentences -->
|
<!-- sentences -->
|
||||||
<string name="wrongPassPhrase">Wrong passphrase.</string>
|
<string name="wrong_passphrase">Wrong passphrase.</string>
|
||||||
<string name="usingClipboardContent">Using clipboard content.</string>
|
<string name="using_clipboard_content">Using clipboard content.</string>
|
||||||
<string name="keySaved">Key saved.</string>
|
<string name="set_a_passphrase">Set a passphrase first.</string>
|
||||||
<string name="setAPassPhrase">Set a passphrase first.</string>
|
<string name="no_filemanager_installed">No compatible file manager installed.</string>
|
||||||
<string name="noFilemanagerInstalled">No compatible file manager installed.</string>
|
<string name="passphrases_do_not_match">The passphrases didn\'t match.</string>
|
||||||
<string name="passPhrasesDoNotMatch">The passphrases didn\'t match.</string>
|
<string name="passphrase_must_not_be_empty">Empty passphrases are not allowed.</string>
|
||||||
<string name="passPhraseMustNotBeEmpty">Empty passphrases are not allowed.</string>
|
<string name="passphrase_for_symmetric_encryption">Symmetric encryption.</string>
|
||||||
<string name="passPhraseForSymmetricEncryption">Symmetric encryption.</string>
|
<string name="passphrase_for">Enter passphrase for \'%s\'</string>
|
||||||
<string name="passPhraseFor">Enter passphrase for \'%s\'</string>
|
<string name="file_delete_confirmation">Are you sure you want to delete\n%s?</string>
|
||||||
<string name="fileDeleteConfirmation">Are you sure you want to delete\n%s?</string>
|
<string name="file_delete_successful">Successfully deleted.</string>
|
||||||
<string name="fileDeleteSuccessful">Successfully deleted.</string>
|
<string name="no_file_selected">Select a file first.</string>
|
||||||
<string name="noFileSelected">Select a file first.</string>
|
<string name="decryption_successful">Successfully decrypted.</string>
|
||||||
<string name="decryptionSuccessful">Successfully decrypted.</string>
|
<string name="encryption_successful">Successfully encrypted.</string>
|
||||||
<string name="encryptionSuccessful">Successfully encrypted.</string>
|
<string name="encryption_to_clipboard_successful">Successfully encrypted to clipboard.</string>
|
||||||
<string name="encryptionToClipboardSuccessful">Successfully encrypted to clipboard.</string>
|
<string name="enter_passphrase_twice">Enter the passphrase twice.</string>
|
||||||
<string name="enterPassPhraseTwice">Enter the passphrase twice.</string>
|
<string name="select_encryption_key">Select at least one encryption key.</string>
|
||||||
<string name="selectEncryptionKey">Select at least one encryption key.</string>
|
<string name="select_encryption_or_signature_key">Select at least one encryption key or a signature key.</string>
|
||||||
<string name="selectEncryptionOrSignatureKey">Select at least one encryption key or a signature key.</string>
|
<string name="specify_file_to_encrypt_to">Please specify which file to encrypt to.\nWARNING! File will be overwritten if it exists.</string>
|
||||||
<string name="specifyFileToEncryptTo">Please specify which file to encrypt to.\nWARNING! File will be overwritten if it exists.</string>
|
<string name="specify_file_to_decrypt_to">Please specify which file to decrypt to.\nWARNING! File will be overwritten if it exists.</string>
|
||||||
<string name="specifyFileToDecryptTo">Please specify which file to decrypt to.\nWARNING! File will be overwritten if it exists.</string>
|
<string name="specify_file_to_export_to">Please specify which file to export to.\nWARNING! File will be overwritten if it exists.</string>
|
||||||
<string name="specifyFileToImportFrom">Please specify which file to import keys from. (.asc or .gpg)</string>
|
<string name="specify_file_to_export_secret_keys_to">Please specify which file to export to.\nWARNING! You are about to export SECRET keys.\nWARNING! File will be overwritten if it exists.</string>
|
||||||
<string name="specifyFileToExportTo">Please specify which file to export to.\nWARNING! File will be overwritten if it exists.</string>
|
<string name="key_deletion_confirmation">Do you really want to delete the key \'%s\'?\nYou can\'t undo this!</string>
|
||||||
<string name="specifyFileToExportSecretKeysTo">Please specify which file to export to.\nWARNING! You are about to export SECRET keys.\nWARNING! File will be overwritten if it exists.</string>
|
<string name="secret_key_deletion_confirmation">Do you really want to delete the SECRET key \'%s\'?\nYou can\'t undo this!</string>
|
||||||
<string name="keyDeletionConfirmation">Do you really want to delete the key \'%s\'?\nYou can\'t undo this!</string>
|
<string name="keys_added_and_updated">Successfully added %1$s key(s) and updated %2$s key(s).</string>
|
||||||
<string name="secretKeyDeletionConfirmation">Do you really want to delete the SECRET key \'%s\'?\nYou can\'t undo this!</string>
|
<string name="keys_added">Successfully added %s key(s).</string>
|
||||||
<string name="keysAddedAndUpdated">Successfully added %1$s key(s) and updated %2$s key(s).</string>
|
<string name="keys_updated">Successfully updated %s key(s).</string>
|
||||||
<string name="keysAdded">Successfully added %s key(s).</string>
|
<string name="no_keys_added_or_updated">No keys added or updated.</string>
|
||||||
<string name="keysUpdated">Successfully updated %s key(s).</string>
|
<string name="key_exported">Successfully exported 1 key.</string>
|
||||||
<string name="noKeysAddedOrUpdated">No keys added or updated.</string>
|
<string name="keys_exported">Successfully exported %s keys.</string>
|
||||||
<string name="keyExported">Successfully exported 1 key.</string>
|
<string name="no_keys_exported">No keys exported.</string>
|
||||||
<string name="keysExported">Successfully exported %s keys.</string>
|
<string name="key_creation_el_gamal_info">Note: only subkeys support ElGamal, and for ElGamal the nearest keysize of 1536, 2048, 3072, 4096, or 8192 will be used.</string>
|
||||||
<string name="noKeysExported">No keys exported.</string>
|
<string name="key_not_found">Couldn\'t find key %08X.</string>
|
||||||
<string name="keyCreationElGamalInfo">Note: only subkeys support ElGamal, and for ElGamal the nearest keysize of 1536, 2048, 3072, 4096, or 8192 will be used.</string>
|
<string name="keys_found">Found %s key(s).</string>
|
||||||
<string name="keyNotFound">Couldn\'t find key %08X.</string>
|
<string name="unknown_signature_key_touch_to_look_up">Unknown signature, touch to look up key.</string>
|
||||||
<string name="keysFound">Found %s key(s).</string>
|
<string name="bad_keys_encountered">%s bad secret key(s) ignored. Perhaps you exported with the option\n --export-secret-subkeys\nMake sure you export with\n --export-secret-keys\ninstead.</string>
|
||||||
<string name="unknownSignatureKeyTouchToLookUp">Unknown signature, touch to look up key.</string>
|
<string name="lookup_unknown_key">Unknown key %s, do you want to try finding it on a keyserver?</string>
|
||||||
<string name="badKeysEncountered">%s bad secret key(s) ignored. Perhaps you exported with the option\n --export-secret-subkeys\nMake sure you export with\n --export-secret-keys\ninstead.</string>
|
<string name="key_send_success">Successfully sent key to server</string>
|
||||||
<string name="lookupUnknownKey">Unknown key %s, do you want to try finding it on a keyserver?</string>
|
<string name="key_sign_success">Successfully signed key</string>
|
||||||
<string name="keySendSuccess">Successfully sent key to server</string>
|
<string name="list_information">Long press one entry in this list to show more options!</string>
|
||||||
<string name="keySignSuccess">Successfully signed key</string>
|
<string name="list_empty">This list is empty!</string>
|
||||||
<string name="qrScanImportSuccess">Successfully validated and imported key</string>
|
<string name="nfc_successfull">Successfully sent key with NFC Beam!</string>
|
||||||
<string name="listInformation">Long press one entry in this list to show more options!</string>
|
|
||||||
<string name="listEmpty">This list is empty!</string>
|
|
||||||
<string name="nfcSuccessfull">Successfully sent key with NFC Beam!</string>
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
error_lowerCase: phrases, no punctuation, all lowercase,
|
errors
|
||||||
they will be put after "errorMessage", e.g. "Error: file not found"
|
no punctuation, all lowercase,
|
||||||
|
they will be put after "error_message", e.g. "Error: file not found"
|
||||||
-->
|
-->
|
||||||
<string name="error_fileDeleteFailed">deleting \'%s\' failed</string>
|
<string name="error_file_delete_failed">deleting \'%s\' failed</string>
|
||||||
<string name="error_fileNotFound">file not found</string>
|
<string name="error_file_not_found">file not found</string>
|
||||||
<string name="error_noSecretKeyFound">no suitable secret key found</string>
|
<string name="error_no_secret_key_found">no suitable secret key found</string>
|
||||||
<string name="error_noKnownEncryptionFound">no known kind of encryption found</string>
|
<string name="error_no_known_encryption_found">no known kind of encryption found</string>
|
||||||
<string name="error_externalStorageNotReady">external storage not ready</string>
|
<string name="error_external_storage_not_ready">external storage not ready</string>
|
||||||
<string name="error_addingAccountFailed">adding account \'%s\' failed</string>
|
<string name="error_invalid_email">invalid email \'%s\'</string>
|
||||||
<string name="error_invalidEmail">invalid email \'%s\'</string>
|
<string name="error_key_size_minimum512bit">key size must be at least 512bit</string>
|
||||||
<string name="error_keySizeMinimum512bit">key size must be at least 512bit</string>
|
<string name="error_master_key_must_not_be_el_gamal">the master key cannot be an ElGamal key</string>
|
||||||
<string name="error_masterKeyMustNotBeElGamal">the master key cannot be an ElGamal key</string>
|
<string name="error_unknown_algorithm_choice">unknown algorithm choice</string>
|
||||||
<string name="error_unknownAlgorithmChoice">unknown algorithm choice</string>
|
<string name="error_user_id_needs_a_name">you need to specify a name</string>
|
||||||
<string name="error_userIdNeedsAName">you need to specify a name</string>
|
<string name="error_user_id_needs_an_email_address">you need to specify an email address</string>
|
||||||
<string name="error_userIdNeedsAnEmailAddress">you need to specify an email address</string>
|
<string name="error_key_needs_a_user_id">need at least one user id</string>
|
||||||
<string name="error_keyNeedsAUserId">need at least one user id</string>
|
<string name="error_main_user_id_must_not_be_empty">main user id must not be empty</string>
|
||||||
<string name="error_mainUserIdMustNotBeEmpty">main user id must not be empty</string>
|
<string name="error_key_needs_master_key">need at least a master key</string>
|
||||||
<string name="error_keyNeedsMasterKey">need at least a master key</string>
|
<string name="error_no_encryption_keys_or_passphrase">no encryption key(s) or passphrase given</string>
|
||||||
<string name="error_expiryMustComeAfterCreation">expiry date must come after creation date</string>
|
<string name="error_signature_failed">signature failed</string>
|
||||||
<string name="error_noEncryptionKeysOrPassPhrase">no encryption key(s) or passphrase given</string>
|
<string name="error_no_signature_passphrase">no passphrase given</string>
|
||||||
<string name="error_signatureFailed">signature failed</string>
|
<string name="error_no_signature_key">no signature key given</string>
|
||||||
<string name="error_noSignaturePassPhrase">no passphrase given</string>
|
<string name="error_invalid_data">not valid encryption data</string>
|
||||||
<string name="error_noSignatureKey">no signature key given</string>
|
<string name="error_corrupt_data">corrupt data</string>
|
||||||
<string name="error_invalidData">not valid encryption data</string>
|
<string name="error_no_symmetric_encryption_packet">couldn\'t find a packet with symmetric encryption</string>
|
||||||
<string name="error_corruptData">corrupt data</string>
|
<string name="error_wrong_passphrase">wrong passphrase</string>
|
||||||
<string name="error_noSymmetricEncryptionPacket">couldn\'t find a packet with symmetric encryption</string>
|
<string name="error_saving_keys">error saving some key(s)</string>
|
||||||
<string name="error_wrongPassPhrase">wrong passphrase</string>
|
<string name="error_could_not_extract_private_key">could not extract private key</string>
|
||||||
<string name="error_savingKeys">error saving some key(s)</string>
|
<string name="error_only_files_are_supported">Direct binary data without actual file in filesystem is not supported. This is only supported by ACTION_ENCRYPT_STREAM_AND_RETURN.</string>
|
||||||
<string name="error_couldNotExtractPrivateKey">could not extract private key</string>
|
<string name="error_jelly_bean_needed">You need Android 4.1 alias Jelly Bean to use Androids NFC Beam feature!</string>
|
||||||
<string name="error_onlyFilesAreSupported">Direct binary data without actual file in filesystem is not supported. This is only supported by ACTION_ENCRYPT_STREAM_AND_RETURN.</string>
|
<string name="error_nfc_needed">NFC is not available on your device!</string>
|
||||||
<string name="error_jellyBeanNeeded">You need Android 4.1 alias Jelly Bean to use Androids NFC Beam feature!</string>
|
<string name="error_nothing_import">Nothing to import!</string>
|
||||||
<string name="error_nfcNeeded">NFC is not available on your device!</string>
|
|
||||||
<string name="error_nothingImport">Nothing to import!</string>
|
|
||||||
|
|
||||||
<!-- progress_lowerCase: lowercase, phrases, usually ending in '…' -->
|
<!-- progress dialogs, usually ending in '…' -->
|
||||||
<string name="progress_done">done.</string>
|
<string name="progress_done">done.</string>
|
||||||
<string name="progress_initializing">initializing…</string>
|
|
||||||
<string name="progress_saving">saving…</string>
|
<string name="progress_saving">saving…</string>
|
||||||
<string name="progress_importing">importing…</string>
|
<string name="progress_importing">importing…</string>
|
||||||
<string name="progress_exporting">exporting…</string>
|
<string name="progress_exporting">exporting…</string>
|
||||||
<string name="progress_generating">generating key, this can take a while…</string>
|
<string name="progress_generating">generating key, this can take a while…</string>
|
||||||
<string name="progress_buildingKey">building key…</string>
|
<string name="progress_building_key">building key…</string>
|
||||||
<string name="progress_preparingMasterKey">preparing master key…</string>
|
<string name="progress_preparing_master_key">preparing master key…</string>
|
||||||
<string name="progress_certifyingMasterKey">certifying master key…</string>
|
<string name="progress_certifying_master_key">certifying master key…</string>
|
||||||
<string name="progress_buildingMasterKeyRing">building master key ring…</string>
|
<string name="progress_building_master_key">building master ring…</string>
|
||||||
<string name="progress_addingSubKeys">adding sub keys…</string>
|
<string name="progress_adding_sub_keys">adding sub keys…</string>
|
||||||
<string name="progress_savingKeyRing">saving key key…</string>
|
<string name="progress_saving_key_ring">saving key key…</string>
|
||||||
<string name="progress_importingSecretKeys">importing secret keys…</string>
|
<string name="progress_importing_secret_keys">importing secret keys…</string>
|
||||||
<string name="progress_importingPublicKeys">importing public keys…</string>
|
<string name="progress_exporting_key">exporting key…</string>
|
||||||
<string name="progress_exportingKey">exporting key…</string>
|
<string name="progress_exporting_keys">exporting keys…</string>
|
||||||
<string name="progress_exportingKeys">exporting keys…</string>
|
<string name="progress_extracting_signature_key">extracting signature key…</string>
|
||||||
<string name="progress_extractingSignatureKey">extracting signature key…</string>
|
<string name="progress_extracting_key">extracting key…</string>
|
||||||
<string name="progress_extractingKey">extracting key…</string>
|
<string name="progress_preparing_streams">preparing streams…</string>
|
||||||
<string name="progress_preparingStreams">preparing streams…</string>
|
|
||||||
<string name="progress_encrypting">encrypting data…</string>
|
<string name="progress_encrypting">encrypting data…</string>
|
||||||
<string name="progress_decrypting">decrypting data…</string>
|
<string name="progress_decrypting">decrypting data…</string>
|
||||||
<string name="progress_preparingSignature">preparing signature…</string>
|
<string name="progress_preparing_signature">preparing signature…</string>
|
||||||
<string name="progress_generatingSignature">generating signature…</string>
|
<string name="progress_generating_signature">generating signature…</string>
|
||||||
<string name="progress_processingSignature">processing signature…</string>
|
<string name="progress_processing_signature">processing signature…</string>
|
||||||
<string name="progress_verifyingSignature">verifying signature…</string>
|
<string name="progress_verifying_signature">verifying signature…</string>
|
||||||
<string name="progress_signing">signing…</string>
|
<string name="progress_signing">signing…</string>
|
||||||
<string name="progress_readingData">reading data…</string>
|
<string name="progress_reading_data">reading data…</string>
|
||||||
<string name="progress_findingKey">finding key…</string>
|
<string name="progress_finding_key">finding key…</string>
|
||||||
<string name="progress_decompressingData">decompressing data…</string>
|
<string name="progress_decompressing_data">decompressing data…</string>
|
||||||
<string name="progress_verifyingIntegrity">verifying integrity…</string>
|
<string name="progress_verifying_integrity">verifying integrity…</string>
|
||||||
<string name="progress_deletingSecurely">deleting \'%s\' securely…</string>
|
<string name="progress_deleting_securely">deleting \'%s\' securely…</string>
|
||||||
<string name="progress_querying">querying…</string>
|
<string name="progress_querying">querying…</string>
|
||||||
<string name="progress_queryingServer">querying %s…</string>
|
|
||||||
|
|
||||||
<!-- action strings -->
|
<!-- action strings -->
|
||||||
<string name="action_encrypt">Encrypt</string>
|
<string name="hint_public_keys">Search Public Keys</string>
|
||||||
<string name="action_decrypt">Decrypt</string>
|
<string name="hint_secret_keys">Search Secret Keys</string>
|
||||||
<string name="action_importPublic">Import Public Keys</string>
|
<string name="action_share_key_with">Share Key with…</string>
|
||||||
<string name="action_importSecret">Import Secret Keys</string>
|
|
||||||
<string name="hint_publicKeys">Search Public Keys</string>
|
|
||||||
<string name="hint_secretKeys">Search Secret Keys</string>
|
|
||||||
<string name="hint_query">Name, E-Mail or Key ID</string>
|
|
||||||
<string name="filterInfo">Filter: \"%s\"</string>
|
|
||||||
<string name="shareKeyringWith">Share Key with…</string>
|
|
||||||
|
|
||||||
<!-- key bit length selections -->
|
<!-- key bit length selections -->
|
||||||
<string name="key_size_512">512</string>
|
<string name="key_size_512">512</string>
|
||||||
@ -326,13 +287,9 @@
|
|||||||
<string name="key_size_2048">2048</string>
|
<string name="key_size_2048">2048</string>
|
||||||
<string name="key_size_4096">4096</string>
|
<string name="key_size_4096">4096</string>
|
||||||
|
|
||||||
<!-- misc -->
|
<!-- compression -->
|
||||||
<string name="fast">fast</string>
|
<string name="compression_fast">fast</string>
|
||||||
<string name="slow">slow</string>
|
<string name="compression_very_slow">very slow</string>
|
||||||
<string name="very_slow">very slow</string>
|
|
||||||
|
|
||||||
<!-- OpenPGP Keychain (2.0) -->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Dashboard -->
|
<!-- Dashboard -->
|
||||||
<string name="dashboard_manage_keys">Manage Public Keys</string>
|
<string name="dashboard_manage_keys">Manage Public Keys</string>
|
||||||
@ -352,7 +309,6 @@
|
|||||||
<!-- Import -->
|
<!-- Import -->
|
||||||
<string name="import_import">Import selected keys</string>
|
<string name="import_import">Import selected keys</string>
|
||||||
<string name="import_sign_and_upload">Import, Sign, and upload selected keys</string>
|
<string name="import_sign_and_upload">Import, Sign, and upload selected keys</string>
|
||||||
<string name="import_finish">Finish</string>
|
|
||||||
<string name="import_from_clipboard">Import from Clipboard</string>
|
<string name="import_from_clipboard">Import from Clipboard</string>
|
||||||
<string name="import_qr_code_missing">Missing QR Codes: %1$s</string>
|
<string name="import_qr_code_missing">Missing QR Codes: %1$s</string>
|
||||||
<string name="import_qr_code_wrong">QR Code malformed! Please try again!</string>
|
<string name="import_qr_code_wrong">QR Code malformed! Please try again!</string>
|
||||||
|
@ -23,41 +23,41 @@
|
|||||||
android:entryValues="@array/pass_phrase_cache_ttl_values"
|
android:entryValues="@array/pass_phrase_cache_ttl_values"
|
||||||
android:key="passPhraseCacheTtl"
|
android:key="passPhraseCacheTtl"
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:title="@string/label_passPhraseCacheTtl" />
|
android:title="@string/label_passphrase_cache_ttl" />
|
||||||
|
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
android:key="keyServers"
|
android:key="keyServers"
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:title="@string/label_keyServers" />
|
android:title="@string/label_key_servers" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
<PreferenceCategory android:title="@string/section_defaults" >
|
<PreferenceCategory android:title="@string/section_defaults" >
|
||||||
<org.sufficientlysecure.keychain.ui.widget.IntegerListPreference
|
<org.sufficientlysecure.keychain.ui.widget.IntegerListPreference
|
||||||
android:key="defaultEncryptionAlgorithm"
|
android:key="defaultEncryptionAlgorithm"
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:title="@string/label_encryptionAlgorithm" />
|
android:title="@string/label_encryption_algorithm" />
|
||||||
<org.sufficientlysecure.keychain.ui.widget.IntegerListPreference
|
<org.sufficientlysecure.keychain.ui.widget.IntegerListPreference
|
||||||
android:key="defaultHashAlgorithm"
|
android:key="defaultHashAlgorithm"
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:title="@string/label_hashAlgorithm" />
|
android:title="@string/label_hash_algorithm" />
|
||||||
<org.sufficientlysecure.keychain.ui.widget.IntegerListPreference
|
<org.sufficientlysecure.keychain.ui.widget.IntegerListPreference
|
||||||
android:key="defaultMessageCompression"
|
android:key="defaultMessageCompression"
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:title="@string/label_messageCompression" />
|
android:title="@string/label_message_compression" />
|
||||||
<org.sufficientlysecure.keychain.ui.widget.IntegerListPreference
|
<org.sufficientlysecure.keychain.ui.widget.IntegerListPreference
|
||||||
android:key="defaultFileCompression"
|
android:key="defaultFileCompression"
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:title="@string/label_fileCompression" />
|
android:title="@string/label_file_compression" />
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="defaultAsciiArmour"
|
android:key="defaultAsciiArmour"
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:title="@string/label_asciiArmour" />
|
android:title="@string/label_ascii_armor" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
<PreferenceCategory android:title="@string/section_advanced" >
|
<PreferenceCategory android:title="@string/section_advanced" >
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="forceV3Signatures"
|
android:key="forceV3Signatures"
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:title="@string/label_forceV3Signature" />
|
android:title="@string/label_force_v3_signature" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
@ -16,7 +16,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
|
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:hint="@string/hint_publicKeys"
|
android:hint="@string/hint_public_keys"
|
||||||
android:label="@string/app_name" >
|
android:label="@string/app_name" >
|
||||||
|
|
||||||
</searchable>
|
</searchable>
|
@ -16,7 +16,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
|
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:hint="@string/hint_secretKeys"
|
android:hint="@string/hint_secret_keys"
|
||||||
android:label="@string/app_name" >
|
android:label="@string/app_name" >
|
||||||
|
|
||||||
</searchable>
|
</searchable>
|
@ -26,10 +26,35 @@ import org.openintents.openpgp.IOpenPgpKeyIdsCallback;
|
|||||||
*/
|
*/
|
||||||
interface IOpenPgpService {
|
interface IOpenPgpService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sign
|
||||||
|
*
|
||||||
|
* After successful signing, callback's onSuccess will contain the resulting output.
|
||||||
|
*
|
||||||
|
* @param input
|
||||||
|
* OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri
|
||||||
|
* @param output
|
||||||
|
* Request output format by defining OpenPgpData object
|
||||||
|
*
|
||||||
|
* new OpenPgpData(OpenPgpData.TYPE_STRING)
|
||||||
|
* Returns as String
|
||||||
|
* (OpenPGP Radix-64, 33 percent overhead compared to binary, see http://tools.ietf.org/html/rfc4880#page-53)
|
||||||
|
* new OpenPgpData(OpenPgpData.TYPE_BYTE_ARRAY)
|
||||||
|
* Returns as byte[]
|
||||||
|
* new OpenPgpData(uri)
|
||||||
|
* Writes output to given Uri
|
||||||
|
* new OpenPgpData(fileDescriptor)
|
||||||
|
* Writes output to given ParcelFileDescriptor
|
||||||
|
* @param callback
|
||||||
|
* Callback where to return results
|
||||||
|
*/
|
||||||
|
oneway void sign(in OpenPgpData input, in OpenPgpData output, in IOpenPgpCallback callback);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Encrypt
|
* Encrypt
|
||||||
*
|
*
|
||||||
* After successful encryption, callback's onSuccess will contain the resulting output bytes.
|
* After successful encryption, callback's onSuccess will contain the resulting output.
|
||||||
*
|
*
|
||||||
* @param input
|
* @param input
|
||||||
* OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri
|
* OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri
|
||||||
@ -52,34 +77,10 @@ interface IOpenPgpService {
|
|||||||
*/
|
*/
|
||||||
oneway void encrypt(in OpenPgpData input, in OpenPgpData output, in long[] keyIds, in IOpenPgpCallback callback);
|
oneway void encrypt(in OpenPgpData input, in OpenPgpData output, in long[] keyIds, in IOpenPgpCallback callback);
|
||||||
|
|
||||||
/**
|
|
||||||
* Sign
|
|
||||||
*
|
|
||||||
* After successful signing, callback's onSuccess will contain the resulting output bytes.
|
|
||||||
*
|
|
||||||
* @param input
|
|
||||||
* OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri
|
|
||||||
* @param output
|
|
||||||
* Request output format by defining OpenPgpData object
|
|
||||||
*
|
|
||||||
* new OpenPgpData(OpenPgpData.TYPE_STRING)
|
|
||||||
* Returns as String
|
|
||||||
* (OpenPGP Radix-64, 33 percent overhead compared to binary, see http://tools.ietf.org/html/rfc4880#page-53)
|
|
||||||
* new OpenPgpData(OpenPgpData.TYPE_BYTE_ARRAY)
|
|
||||||
* Returns as byte[]
|
|
||||||
* new OpenPgpData(uri)
|
|
||||||
* Writes output to given Uri
|
|
||||||
* new OpenPgpData(fileDescriptor)
|
|
||||||
* Writes output to given ParcelFileDescriptor
|
|
||||||
* @param callback
|
|
||||||
* Callback where to return results
|
|
||||||
*/
|
|
||||||
oneway void sign(in OpenPgpData input, in OpenPgpData output, in IOpenPgpCallback callback);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sign then encrypt
|
* Sign then encrypt
|
||||||
*
|
*
|
||||||
* After successful signing and encryption, callback's onSuccess will contain the resulting output bytes.
|
* After successful signing and encryption, callback's onSuccess will contain the resulting output.
|
||||||
*
|
*
|
||||||
* @param input
|
* @param input
|
||||||
* OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri
|
* OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri
|
||||||
@ -104,9 +105,9 @@ interface IOpenPgpService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Decrypts and verifies given input bytes. This methods handles encrypted-only, signed-and-encrypted,
|
* Decrypts and verifies given input bytes. This methods handles encrypted-only, signed-and-encrypted,
|
||||||
* and also signed-only inputBytes.
|
* and also signed-only input.
|
||||||
*
|
*
|
||||||
* After successful decryption/verification, callback's onSuccess will contain the resulting output bytes.
|
* After successful decryption/verification, callback's onSuccess will contain the resulting output.
|
||||||
* The signatureResult in onSuccess is only non-null if signed-and-encrypted or signed-only inputBytes were given.
|
* The signatureResult in onSuccess is only non-null if signed-and-encrypted or signed-only inputBytes were given.
|
||||||
*
|
*
|
||||||
* @param input
|
* @param input
|
||||||
|
@ -69,7 +69,7 @@ public class FileHelper {
|
|||||||
activity.startActivityForResult(intent, requestCode);
|
activity.startActivityForResult(intent, requestCode);
|
||||||
} catch (ActivityNotFoundException e) {
|
} catch (ActivityNotFoundException e) {
|
||||||
// No compatible file manager was found.
|
// No compatible file manager was found.
|
||||||
Toast.makeText(activity, R.string.noFilemanagerInstalled, Toast.LENGTH_SHORT).show();
|
Toast.makeText(activity, R.string.no_filemanager_installed, Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ public class FileHelper {
|
|||||||
fragment.startActivityForResult(intent, requestCode);
|
fragment.startActivityForResult(intent, requestCode);
|
||||||
} catch (ActivityNotFoundException e) {
|
} catch (ActivityNotFoundException e) {
|
||||||
// No compatible file manager was found.
|
// No compatible file manager was found.
|
||||||
Toast.makeText(fragment.getActivity(), R.string.noFilemanagerInstalled,
|
Toast.makeText(fragment.getActivity(), R.string.no_filemanager_installed,
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -91,7 +91,7 @@ public class PgpHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (enc == null) {
|
if (enc == null) {
|
||||||
throw new PgpGeneralException(context.getString(R.string.error_invalidData));
|
throw new PgpGeneralException(context.getString(R.string.error_invalid_data));
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: currently we always only look at the first known key
|
// TODO: currently we always only look at the first known key
|
||||||
@ -205,7 +205,7 @@ public class PgpHelper {
|
|||||||
raf.getFilePointer();
|
raf.getFilePointer();
|
||||||
byte[] data = new byte[1 << 16];
|
byte[] data = new byte[1 << 16];
|
||||||
int pos = 0;
|
int pos = 0;
|
||||||
String msg = context.getString(R.string.progress_deletingSecurely, file.getName());
|
String msg = context.getString(R.string.progress_deleting_securely, file.getName());
|
||||||
while (pos < length) {
|
while (pos < length) {
|
||||||
if (progress != null)
|
if (progress != null)
|
||||||
progress.setProgress(msg, (int) (100 * pos / length), 100);
|
progress.setProgress(msg, (int) (100 * pos / length), 100);
|
||||||
|
@ -117,7 +117,7 @@ public class PgpImportExport {
|
|||||||
throws PgpGeneralException, FileNotFoundException, PGPException, IOException {
|
throws PgpGeneralException, FileNotFoundException, PGPException, IOException {
|
||||||
Bundle returnData = new Bundle();
|
Bundle returnData = new Bundle();
|
||||||
|
|
||||||
updateProgress(R.string.progress_importingSecretKeys, 0, 100);
|
updateProgress(R.string.progress_importing_secret_keys, 0, 100);
|
||||||
|
|
||||||
PositionAwareInputStream progressIn = new PositionAwareInputStream(data.getInputStream());
|
PositionAwareInputStream progressIn = new PositionAwareInputStream(data.getInputStream());
|
||||||
|
|
||||||
@ -158,7 +158,7 @@ public class PgpImportExport {
|
|||||||
|
|
||||||
if (status == Id.return_value.error) {
|
if (status == Id.return_value.error) {
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
mContext.getString(R.string.error_savingKeys));
|
mContext.getString(R.string.error_saving_keys));
|
||||||
}
|
}
|
||||||
|
|
||||||
// update the counts to display to the user at the end
|
// update the counts to display to the user at the end
|
||||||
@ -195,14 +195,14 @@ public class PgpImportExport {
|
|||||||
Bundle returnData = new Bundle();
|
Bundle returnData = new Bundle();
|
||||||
|
|
||||||
if (keyRingMasterKeyIds.size() == 1) {
|
if (keyRingMasterKeyIds.size() == 1) {
|
||||||
updateProgress(R.string.progress_exportingKey, 0, 100);
|
updateProgress(R.string.progress_exporting_key, 0, 100);
|
||||||
} else {
|
} else {
|
||||||
updateProgress(R.string.progress_exportingKeys, 0, 100);
|
updateProgress(R.string.progress_exporting_keys, 0, 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
|
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
mContext.getString(R.string.error_externalStorageNotReady));
|
mContext.getString(R.string.error_external_storage_not_ready));
|
||||||
}
|
}
|
||||||
|
|
||||||
// export public keyrings...
|
// export public keyrings...
|
||||||
|
@ -280,7 +280,7 @@ public class PgpKeyHelper {
|
|||||||
public static String getMainUserIdSafe(Context context, PGPPublicKey key) {
|
public static String getMainUserIdSafe(Context context, PGPPublicKey key) {
|
||||||
String userId = getMainUserId(key);
|
String userId = getMainUserId(key);
|
||||||
if (userId == null || userId.equals("")) {
|
if (userId == null || userId.equals("")) {
|
||||||
userId = context.getString(R.string.unknownUserId);
|
userId = context.getString(R.string.unknown_user_id);
|
||||||
}
|
}
|
||||||
return userId;
|
return userId;
|
||||||
}
|
}
|
||||||
@ -288,7 +288,7 @@ public class PgpKeyHelper {
|
|||||||
public static String getMainUserIdSafe(Context context, PGPSecretKey key) {
|
public static String getMainUserIdSafe(Context context, PGPSecretKey key) {
|
||||||
String userId = getMainUserId(key);
|
String userId = getMainUserId(key);
|
||||||
if (userId == null || userId.equals("")) {
|
if (userId == null || userId.equals("")) {
|
||||||
userId = context.getString(R.string.unknownUserId);
|
userId = context.getString(R.string.unknown_user_id);
|
||||||
}
|
}
|
||||||
return userId;
|
return userId;
|
||||||
}
|
}
|
||||||
|
@ -122,7 +122,7 @@ public class PgpKeyOperation {
|
|||||||
NoSuchProviderException, PgpGeneralException, InvalidAlgorithmParameterException {
|
NoSuchProviderException, PgpGeneralException, InvalidAlgorithmParameterException {
|
||||||
|
|
||||||
if (keySize < 512) {
|
if (keySize < 512) {
|
||||||
throw new PgpGeneralException(mContext.getString(R.string.error_keySizeMinimum512bit));
|
throw new PgpGeneralException(mContext.getString(R.string.error_key_size_minimum512bit));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (passPhrase == null) {
|
if (passPhrase == null) {
|
||||||
@ -143,7 +143,7 @@ public class PgpKeyOperation {
|
|||||||
case Id.choice.algorithm.elgamal: {
|
case Id.choice.algorithm.elgamal: {
|
||||||
if (masterSecretKey == null) {
|
if (masterSecretKey == null) {
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
mContext.getString(R.string.error_masterKeyMustNotBeElGamal));
|
mContext.getString(R.string.error_master_key_must_not_be_el_gamal));
|
||||||
}
|
}
|
||||||
keyGen = KeyPairGenerator.getInstance("ElGamal", Constants.BOUNCY_CASTLE_PROVIDER_NAME);
|
keyGen = KeyPairGenerator.getInstance("ElGamal", Constants.BOUNCY_CASTLE_PROVIDER_NAME);
|
||||||
BigInteger p = Primes.getBestPrime(keySize);
|
BigInteger p = Primes.getBestPrime(keySize);
|
||||||
@ -165,7 +165,7 @@ public class PgpKeyOperation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
default: {
|
default: {
|
||||||
throw new PgpGeneralException(mContext.getString(R.string.error_unknownAlgorithmChoice));
|
throw new PgpGeneralException(mContext.getString(R.string.error_unknown_algorithm_choice));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -216,7 +216,7 @@ public class PgpKeyOperation {
|
|||||||
String newPassPhrase) throws IOException, PGPException, PGPException,
|
String newPassPhrase) throws IOException, PGPException, PGPException,
|
||||||
NoSuchProviderException {
|
NoSuchProviderException {
|
||||||
|
|
||||||
updateProgress(R.string.progress_buildingKey, 0, 100);
|
updateProgress(R.string.progress_building_key, 0, 100);
|
||||||
if (oldPassPhrase == null) {
|
if (oldPassPhrase == null) {
|
||||||
oldPassPhrase = "";
|
oldPassPhrase = "";
|
||||||
}
|
}
|
||||||
@ -232,7 +232,7 @@ public class PgpKeyOperation {
|
|||||||
new JcePBESecretKeyEncryptorBuilder(keyRing.getSecretKey()
|
new JcePBESecretKeyEncryptorBuilder(keyRing.getSecretKey()
|
||||||
.getKeyEncryptionAlgorithm()).build(newPassPhrase.toCharArray()));
|
.getKeyEncryptionAlgorithm()).build(newPassPhrase.toCharArray()));
|
||||||
|
|
||||||
updateProgress(R.string.progress_savingKeyRing, 50, 100);
|
updateProgress(R.string.progress_saving_key_ring, 50, 100);
|
||||||
|
|
||||||
ProviderHelper.saveKeyRing(mContext, newKeyRing);
|
ProviderHelper.saveKeyRing(mContext, newKeyRing);
|
||||||
|
|
||||||
@ -247,7 +247,7 @@ public class PgpKeyOperation {
|
|||||||
|
|
||||||
Log.d(Constants.TAG, "userIds: " + userIds.toString());
|
Log.d(Constants.TAG, "userIds: " + userIds.toString());
|
||||||
|
|
||||||
updateProgress(R.string.progress_buildingKey, 0, 100);
|
updateProgress(R.string.progress_building_key, 0, 100);
|
||||||
|
|
||||||
if (oldPassPhrase == null) {
|
if (oldPassPhrase == null) {
|
||||||
oldPassPhrase = "";
|
oldPassPhrase = "";
|
||||||
@ -256,7 +256,7 @@ public class PgpKeyOperation {
|
|||||||
newPassPhrase = "";
|
newPassPhrase = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
updateProgress(R.string.progress_preparingMasterKey, 10, 100);
|
updateProgress(R.string.progress_preparing_master_key, 10, 100);
|
||||||
|
|
||||||
int usageId = keysUsages.get(0);
|
int usageId = keysUsages.get(0);
|
||||||
boolean canSign = (usageId == Id.choice.usage.sign_only || usageId == Id.choice.usage.sign_and_encrypt);
|
boolean canSign = (usageId == Id.choice.usage.sign_only || usageId == Id.choice.usage.sign_and_encrypt);
|
||||||
@ -287,7 +287,7 @@ public class PgpKeyOperation {
|
|||||||
Constants.BOUNCY_CASTLE_PROVIDER_NAME).build(oldPassPhrase.toCharArray());
|
Constants.BOUNCY_CASTLE_PROVIDER_NAME).build(oldPassPhrase.toCharArray());
|
||||||
PGPPrivateKey masterPrivateKey = masterKey.extractPrivateKey(keyDecryptor);
|
PGPPrivateKey masterPrivateKey = masterKey.extractPrivateKey(keyDecryptor);
|
||||||
|
|
||||||
updateProgress(R.string.progress_certifyingMasterKey, 20, 100);
|
updateProgress(R.string.progress_certifying_master_key, 20, 100);
|
||||||
|
|
||||||
for (String userId : userIds) {
|
for (String userId : userIds) {
|
||||||
PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder(
|
PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder(
|
||||||
@ -332,7 +332,7 @@ public class PgpKeyOperation {
|
|||||||
// hashedPacketsGen.setKeyExpirationTime(true, numDays * 86400);
|
// hashedPacketsGen.setKeyExpirationTime(true, numDays * 86400);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
updateProgress(R.string.progress_buildingMasterKeyRing, 30, 100);
|
updateProgress(R.string.progress_building_master_key, 30, 100);
|
||||||
|
|
||||||
// define hashing and signing algos
|
// define hashing and signing algos
|
||||||
PGPDigestCalculator sha1Calc = new JcaPGPDigestCalculatorProviderBuilder().build().get(
|
PGPDigestCalculator sha1Calc = new JcaPGPDigestCalculatorProviderBuilder().build().get(
|
||||||
@ -350,7 +350,7 @@ public class PgpKeyOperation {
|
|||||||
masterKeyPair, mainUserId, sha1Calc, hashedPacketsGen.generate(),
|
masterKeyPair, mainUserId, sha1Calc, hashedPacketsGen.generate(),
|
||||||
unhashedPacketsGen.generate(), certificationSignerBuilder, keyEncryptor);
|
unhashedPacketsGen.generate(), certificationSignerBuilder, keyEncryptor);
|
||||||
|
|
||||||
updateProgress(R.string.progress_addingSubKeys, 40, 100);
|
updateProgress(R.string.progress_adding_sub_keys, 40, 100);
|
||||||
|
|
||||||
for (int i = 1; i < keys.size(); ++i) {
|
for (int i = 1; i < keys.size(); ++i) {
|
||||||
updateProgress(40 + 50 * (i - 1) / (keys.size() - 1), 100);
|
updateProgress(40 + 50 * (i - 1) / (keys.size() - 1), 100);
|
||||||
@ -401,7 +401,7 @@ public class PgpKeyOperation {
|
|||||||
PGPSecretKeyRing secretKeyRing = keyGen.generateSecretKeyRing();
|
PGPSecretKeyRing secretKeyRing = keyGen.generateSecretKeyRing();
|
||||||
PGPPublicKeyRing publicKeyRing = keyGen.generatePublicKeyRing();
|
PGPPublicKeyRing publicKeyRing = keyGen.generatePublicKeyRing();
|
||||||
|
|
||||||
updateProgress(R.string.progress_savingKeyRing, 90, 100);
|
updateProgress(R.string.progress_saving_key_ring, 90, 100);
|
||||||
|
|
||||||
ProviderHelper.saveKeyRing(mContext, secretKeyRing);
|
ProviderHelper.saveKeyRing(mContext, secretKeyRing);
|
||||||
ProviderHelper.saveKeyRing(mContext, publicKeyRing);
|
ProviderHelper.saveKeyRing(mContext, publicKeyRing);
|
||||||
@ -420,7 +420,7 @@ public class PgpKeyOperation {
|
|||||||
|
|
||||||
PGPSecretKey signingKey = PgpKeyHelper.getCertificationKey(mContext, masterKeyId);
|
PGPSecretKey signingKey = PgpKeyHelper.getCertificationKey(mContext, masterKeyId);
|
||||||
if (signingKey == null) {
|
if (signingKey == null) {
|
||||||
throw new PgpGeneralException(mContext.getString(R.string.error_signatureFailed));
|
throw new PgpGeneralException(mContext.getString(R.string.error_signature_failed));
|
||||||
}
|
}
|
||||||
|
|
||||||
PBESecretKeyDecryptor keyDecryptor = new JcePBESecretKeyDecryptorBuilder().setProvider(
|
PBESecretKeyDecryptor keyDecryptor = new JcePBESecretKeyDecryptorBuilder().setProvider(
|
||||||
@ -428,7 +428,7 @@ public class PgpKeyOperation {
|
|||||||
PGPPrivateKey signaturePrivateKey = signingKey.extractPrivateKey(keyDecryptor);
|
PGPPrivateKey signaturePrivateKey = signingKey.extractPrivateKey(keyDecryptor);
|
||||||
if (signaturePrivateKey == null) {
|
if (signaturePrivateKey == null) {
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
mContext.getString(R.string.error_couldNotExtractPrivateKey));
|
mContext.getString(R.string.error_could_not_extract_private_key));
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: SHA256 fixed?
|
// TODO: SHA256 fixed?
|
||||||
|
@ -137,32 +137,32 @@ public class PgpOperation {
|
|||||||
|
|
||||||
if (encryptionKeyIds.length == 0 && encryptionPassphrase == null) {
|
if (encryptionKeyIds.length == 0 && encryptionPassphrase == null) {
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
mContext.getString(R.string.error_noEncryptionKeysOrPassPhrase));
|
mContext.getString(R.string.error_no_encryption_keys_or_passphrase));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (signatureKeyId != Id.key.none) {
|
if (signatureKeyId != Id.key.none) {
|
||||||
signingKeyRing = ProviderHelper.getPGPSecretKeyRingByKeyId(mContext, signatureKeyId);
|
signingKeyRing = ProviderHelper.getPGPSecretKeyRingByKeyId(mContext, signatureKeyId);
|
||||||
signingKey = PgpKeyHelper.getSigningKey(mContext, signatureKeyId);
|
signingKey = PgpKeyHelper.getSigningKey(mContext, signatureKeyId);
|
||||||
if (signingKey == null) {
|
if (signingKey == null) {
|
||||||
throw new PgpGeneralException(mContext.getString(R.string.error_signatureFailed));
|
throw new PgpGeneralException(mContext.getString(R.string.error_signature_failed));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (signaturePassphrase == null) {
|
if (signaturePassphrase == null) {
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
mContext.getString(R.string.error_noSignaturePassPhrase));
|
mContext.getString(R.string.error_no_signature_passphrase));
|
||||||
}
|
}
|
||||||
|
|
||||||
updateProgress(R.string.progress_extractingSignatureKey, 0, 100);
|
updateProgress(R.string.progress_extracting_signature_key, 0, 100);
|
||||||
|
|
||||||
PBESecretKeyDecryptor keyDecryptor = new JcePBESecretKeyDecryptorBuilder().setProvider(
|
PBESecretKeyDecryptor keyDecryptor = new JcePBESecretKeyDecryptorBuilder().setProvider(
|
||||||
Constants.BOUNCY_CASTLE_PROVIDER_NAME).build(signaturePassphrase.toCharArray());
|
Constants.BOUNCY_CASTLE_PROVIDER_NAME).build(signaturePassphrase.toCharArray());
|
||||||
signaturePrivateKey = signingKey.extractPrivateKey(keyDecryptor);
|
signaturePrivateKey = signingKey.extractPrivateKey(keyDecryptor);
|
||||||
if (signaturePrivateKey == null) {
|
if (signaturePrivateKey == null) {
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
mContext.getString(R.string.error_couldNotExtractPrivateKey));
|
mContext.getString(R.string.error_could_not_extract_private_key));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
updateProgress(R.string.progress_preparingStreams, 5, 100);
|
updateProgress(R.string.progress_preparing_streams, 5, 100);
|
||||||
|
|
||||||
// encrypt and compress input file content
|
// encrypt and compress input file content
|
||||||
JcePGPDataEncryptorBuilder encryptorBuilder = new JcePGPDataEncryptorBuilder(
|
JcePGPDataEncryptorBuilder encryptorBuilder = new JcePGPDataEncryptorBuilder(
|
||||||
@ -196,7 +196,7 @@ public class PgpOperation {
|
|||||||
PGPV3SignatureGenerator signatureV3Generator = null;
|
PGPV3SignatureGenerator signatureV3Generator = null;
|
||||||
|
|
||||||
if (signatureKeyId != Id.key.none) {
|
if (signatureKeyId != Id.key.none) {
|
||||||
updateProgress(R.string.progress_preparingSignature, 10, 100);
|
updateProgress(R.string.progress_preparing_signature, 10, 100);
|
||||||
|
|
||||||
// content signer based on signing key algorithm and choosen hash algorithm
|
// content signer based on signing key algorithm and choosen hash algorithm
|
||||||
JcaPGPContentSignerBuilder contentSignerBuilder = new JcaPGPContentSignerBuilder(
|
JcaPGPContentSignerBuilder contentSignerBuilder = new JcaPGPContentSignerBuilder(
|
||||||
@ -262,7 +262,7 @@ public class PgpOperation {
|
|||||||
literalGen.close();
|
literalGen.close();
|
||||||
|
|
||||||
if (signatureKeyId != Id.key.none) {
|
if (signatureKeyId != Id.key.none) {
|
||||||
updateProgress(R.string.progress_generatingSignature, 95, 100);
|
updateProgress(R.string.progress_generating_signature, 95, 100);
|
||||||
if (signatureForceV3) {
|
if (signatureForceV3) {
|
||||||
signatureV3Generator.generate().encode(pOut);
|
signatureV3Generator.generate().encode(pOut);
|
||||||
} else {
|
} else {
|
||||||
@ -293,19 +293,19 @@ public class PgpOperation {
|
|||||||
|
|
||||||
if (signatureKeyId == 0) {
|
if (signatureKeyId == 0) {
|
||||||
armorOut.close();
|
armorOut.close();
|
||||||
throw new PgpGeneralException(mContext.getString(R.string.error_noSignatureKey));
|
throw new PgpGeneralException(mContext.getString(R.string.error_no_signature_key));
|
||||||
}
|
}
|
||||||
|
|
||||||
signingKeyRing = ProviderHelper.getPGPSecretKeyRingByKeyId(mContext, signatureKeyId);
|
signingKeyRing = ProviderHelper.getPGPSecretKeyRingByKeyId(mContext, signatureKeyId);
|
||||||
signingKey = PgpKeyHelper.getSigningKey(mContext, signatureKeyId);
|
signingKey = PgpKeyHelper.getSigningKey(mContext, signatureKeyId);
|
||||||
if (signingKey == null) {
|
if (signingKey == null) {
|
||||||
armorOut.close();
|
armorOut.close();
|
||||||
throw new PgpGeneralException(mContext.getString(R.string.error_signatureFailed));
|
throw new PgpGeneralException(mContext.getString(R.string.error_signature_failed));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (signaturePassphrase == null) {
|
if (signaturePassphrase == null) {
|
||||||
armorOut.close();
|
armorOut.close();
|
||||||
throw new PgpGeneralException(mContext.getString(R.string.error_noSignaturePassPhrase));
|
throw new PgpGeneralException(mContext.getString(R.string.error_no_signature_passphrase));
|
||||||
}
|
}
|
||||||
PBESecretKeyDecryptor keyDecryptor = new JcePBESecretKeyDecryptorBuilder().setProvider(
|
PBESecretKeyDecryptor keyDecryptor = new JcePBESecretKeyDecryptorBuilder().setProvider(
|
||||||
Constants.BOUNCY_CASTLE_PROVIDER_NAME).build(signaturePassphrase.toCharArray());
|
Constants.BOUNCY_CASTLE_PROVIDER_NAME).build(signaturePassphrase.toCharArray());
|
||||||
@ -313,11 +313,11 @@ public class PgpOperation {
|
|||||||
if (signaturePrivateKey == null) {
|
if (signaturePrivateKey == null) {
|
||||||
armorOut.close();
|
armorOut.close();
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
mContext.getString(R.string.error_couldNotExtractPrivateKey));
|
mContext.getString(R.string.error_could_not_extract_private_key));
|
||||||
}
|
}
|
||||||
updateProgress(R.string.progress_preparingStreams, 0, 100);
|
updateProgress(R.string.progress_preparing_streams, 0, 100);
|
||||||
|
|
||||||
updateProgress(R.string.progress_preparingSignature, 30, 100);
|
updateProgress(R.string.progress_preparing_signature, 30, 100);
|
||||||
|
|
||||||
PGPSignatureGenerator signatureGenerator = null;
|
PGPSignatureGenerator signatureGenerator = null;
|
||||||
PGPV3SignatureGenerator signatureV3Generator = null;
|
PGPV3SignatureGenerator signatureV3Generator = null;
|
||||||
@ -408,17 +408,17 @@ public class PgpOperation {
|
|||||||
PGPPrivateKey signaturePrivateKey = null;
|
PGPPrivateKey signaturePrivateKey = null;
|
||||||
|
|
||||||
if (signatureKeyId == 0) {
|
if (signatureKeyId == 0) {
|
||||||
throw new PgpGeneralException(mContext.getString(R.string.error_noSignatureKey));
|
throw new PgpGeneralException(mContext.getString(R.string.error_no_signature_key));
|
||||||
}
|
}
|
||||||
|
|
||||||
signingKeyRing = ProviderHelper.getPGPSecretKeyRingByKeyId(mContext, signatureKeyId);
|
signingKeyRing = ProviderHelper.getPGPSecretKeyRingByKeyId(mContext, signatureKeyId);
|
||||||
signingKey = PgpKeyHelper.getSigningKey(mContext, signatureKeyId);
|
signingKey = PgpKeyHelper.getSigningKey(mContext, signatureKeyId);
|
||||||
if (signingKey == null) {
|
if (signingKey == null) {
|
||||||
throw new PgpGeneralException(mContext.getString(R.string.error_signatureFailed));
|
throw new PgpGeneralException(mContext.getString(R.string.error_signature_failed));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (signaturePassPhrase == null) {
|
if (signaturePassPhrase == null) {
|
||||||
throw new PgpGeneralException(mContext.getString(R.string.error_noSignaturePassPhrase));
|
throw new PgpGeneralException(mContext.getString(R.string.error_no_signature_passphrase));
|
||||||
}
|
}
|
||||||
|
|
||||||
PBESecretKeyDecryptor keyDecryptor = new JcePBESecretKeyDecryptorBuilder().setProvider(
|
PBESecretKeyDecryptor keyDecryptor = new JcePBESecretKeyDecryptorBuilder().setProvider(
|
||||||
@ -426,11 +426,11 @@ public class PgpOperation {
|
|||||||
signaturePrivateKey = signingKey.extractPrivateKey(keyDecryptor);
|
signaturePrivateKey = signingKey.extractPrivateKey(keyDecryptor);
|
||||||
if (signaturePrivateKey == null) {
|
if (signaturePrivateKey == null) {
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
mContext.getString(R.string.error_couldNotExtractPrivateKey));
|
mContext.getString(R.string.error_could_not_extract_private_key));
|
||||||
}
|
}
|
||||||
updateProgress(R.string.progress_preparingStreams, 0, 100);
|
updateProgress(R.string.progress_preparing_streams, 0, 100);
|
||||||
|
|
||||||
updateProgress(R.string.progress_preparingSignature, 30, 100);
|
updateProgress(R.string.progress_preparing_signature, 30, 100);
|
||||||
|
|
||||||
PGPSignatureGenerator signatureGenerator = null;
|
PGPSignatureGenerator signatureGenerator = null;
|
||||||
PGPV3SignatureGenerator signatureV3Generator = null;
|
PGPV3SignatureGenerator signatureV3Generator = null;
|
||||||
@ -520,7 +520,7 @@ public class PgpOperation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (enc == null) {
|
if (enc == null) {
|
||||||
throw new PgpGeneralException(context.getString(R.string.error_invalidData));
|
throw new PgpGeneralException(context.getString(R.string.error_invalid_data));
|
||||||
}
|
}
|
||||||
|
|
||||||
Iterator<?> it = enc.getEncryptedDataObjects();
|
Iterator<?> it = enc.getEncryptedDataObjects();
|
||||||
@ -548,7 +548,7 @@ public class PgpOperation {
|
|||||||
long signatureKeyId = 0;
|
long signatureKeyId = 0;
|
||||||
|
|
||||||
int currentProgress = 0;
|
int currentProgress = 0;
|
||||||
updateProgress(R.string.progress_readingData, currentProgress, 100);
|
updateProgress(R.string.progress_reading_data, currentProgress, 100);
|
||||||
|
|
||||||
if (o instanceof PGPEncryptedDataList) {
|
if (o instanceof PGPEncryptedDataList) {
|
||||||
enc = (PGPEncryptedDataList) o;
|
enc = (PGPEncryptedDataList) o;
|
||||||
@ -557,7 +557,7 @@ public class PgpOperation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (enc == null) {
|
if (enc == null) {
|
||||||
throw new PgpGeneralException(mContext.getString(R.string.error_invalidData));
|
throw new PgpGeneralException(mContext.getString(R.string.error_invalid_data));
|
||||||
}
|
}
|
||||||
|
|
||||||
InputStream clear = null;
|
InputStream clear = null;
|
||||||
@ -581,10 +581,10 @@ public class PgpOperation {
|
|||||||
|
|
||||||
if (pbe == null) {
|
if (pbe == null) {
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
mContext.getString(R.string.error_noSymmetricEncryptionPacket));
|
mContext.getString(R.string.error_no_symmetric_encryption_packet));
|
||||||
}
|
}
|
||||||
|
|
||||||
updateProgress(R.string.progress_preparingStreams, currentProgress, 100);
|
updateProgress(R.string.progress_preparing_streams, currentProgress, 100);
|
||||||
|
|
||||||
PGPDigestCalculatorProvider digestCalcProvider = new JcaPGPDigestCalculatorProviderBuilder()
|
PGPDigestCalculatorProvider digestCalcProvider = new JcaPGPDigestCalculatorProviderBuilder()
|
||||||
.setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME).build();
|
.setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME).build();
|
||||||
@ -597,7 +597,7 @@ public class PgpOperation {
|
|||||||
encryptedData = pbe;
|
encryptedData = pbe;
|
||||||
currentProgress += 5;
|
currentProgress += 5;
|
||||||
} else {
|
} else {
|
||||||
updateProgress(R.string.progress_findingKey, currentProgress, 100);
|
updateProgress(R.string.progress_finding_key, currentProgress, 100);
|
||||||
|
|
||||||
PGPPublicKeyEncryptedData pbe = null;
|
PGPPublicKeyEncryptedData pbe = null;
|
||||||
PGPSecretKey secretKey = null;
|
PGPSecretKey secretKey = null;
|
||||||
@ -616,11 +616,11 @@ public class PgpOperation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (secretKey == null) {
|
if (secretKey == null) {
|
||||||
throw new PgpGeneralException(mContext.getString(R.string.error_noSecretKeyFound));
|
throw new PgpGeneralException(mContext.getString(R.string.error_no_secret_key_found));
|
||||||
}
|
}
|
||||||
|
|
||||||
currentProgress += 5;
|
currentProgress += 5;
|
||||||
updateProgress(R.string.progress_extractingKey, currentProgress, 100);
|
updateProgress(R.string.progress_extracting_key, currentProgress, 100);
|
||||||
PGPPrivateKey privateKey = null;
|
PGPPrivateKey privateKey = null;
|
||||||
try {
|
try {
|
||||||
PBESecretKeyDecryptor keyDecryptor = new JcePBESecretKeyDecryptorBuilder()
|
PBESecretKeyDecryptor keyDecryptor = new JcePBESecretKeyDecryptorBuilder()
|
||||||
@ -628,14 +628,14 @@ public class PgpOperation {
|
|||||||
passphrase.toCharArray());
|
passphrase.toCharArray());
|
||||||
privateKey = secretKey.extractPrivateKey(keyDecryptor);
|
privateKey = secretKey.extractPrivateKey(keyDecryptor);
|
||||||
} catch (PGPException e) {
|
} catch (PGPException e) {
|
||||||
throw new PGPException(mContext.getString(R.string.error_wrongPassPhrase));
|
throw new PGPException(mContext.getString(R.string.error_wrong_passphrase));
|
||||||
}
|
}
|
||||||
if (privateKey == null) {
|
if (privateKey == null) {
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
mContext.getString(R.string.error_couldNotExtractPrivateKey));
|
mContext.getString(R.string.error_could_not_extract_private_key));
|
||||||
}
|
}
|
||||||
currentProgress += 5;
|
currentProgress += 5;
|
||||||
updateProgress(R.string.progress_preparingStreams, currentProgress, 100);
|
updateProgress(R.string.progress_preparing_streams, currentProgress, 100);
|
||||||
|
|
||||||
PublicKeyDataDecryptorFactory decryptorFactory = new JcePublicKeyDataDecryptorFactoryBuilder()
|
PublicKeyDataDecryptorFactory decryptorFactory = new JcePublicKeyDataDecryptorFactoryBuilder()
|
||||||
.setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME).build(privateKey);
|
.setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME).build(privateKey);
|
||||||
@ -653,7 +653,7 @@ public class PgpOperation {
|
|||||||
int signatureIndex = -1;
|
int signatureIndex = -1;
|
||||||
|
|
||||||
if (dataChunk instanceof PGPCompressedData) {
|
if (dataChunk instanceof PGPCompressedData) {
|
||||||
updateProgress(R.string.progress_decompressingData, currentProgress, 100);
|
updateProgress(R.string.progress_decompressing_data, currentProgress, 100);
|
||||||
|
|
||||||
PGPObjectFactory fact = new PGPObjectFactory(
|
PGPObjectFactory fact = new PGPObjectFactory(
|
||||||
((PGPCompressedData) dataChunk).getDataStream());
|
((PGPCompressedData) dataChunk).getDataStream());
|
||||||
@ -663,7 +663,7 @@ public class PgpOperation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (dataChunk instanceof PGPOnePassSignatureList) {
|
if (dataChunk instanceof PGPOnePassSignatureList) {
|
||||||
updateProgress(R.string.progress_processingSignature, currentProgress, 100);
|
updateProgress(R.string.progress_processing_signature, currentProgress, 100);
|
||||||
|
|
||||||
returnData.putBoolean(KeychainIntentService.RESULT_SIGNATURE, true);
|
returnData.putBoolean(KeychainIntentService.RESULT_SIGNATURE, true);
|
||||||
PGPOnePassSignatureList sigList = (PGPOnePassSignatureList) dataChunk;
|
PGPOnePassSignatureList sigList = (PGPOnePassSignatureList) dataChunk;
|
||||||
@ -753,7 +753,7 @@ public class PgpOperation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (signature != null) {
|
if (signature != null) {
|
||||||
updateProgress(R.string.progress_verifyingSignature, 90, 100);
|
updateProgress(R.string.progress_verifying_signature, 90, 100);
|
||||||
|
|
||||||
PGPSignatureList signatureList = (PGPSignatureList) plainFact.nextObject();
|
PGPSignatureList signatureList = (PGPSignatureList) plainFact.nextObject();
|
||||||
PGPSignature messageSignature = signatureList.get(signatureIndex);
|
PGPSignature messageSignature = signatureList.get(signatureIndex);
|
||||||
@ -767,7 +767,7 @@ public class PgpOperation {
|
|||||||
|
|
||||||
// TODO: add integrity somewhere
|
// TODO: add integrity somewhere
|
||||||
if (encryptedData.isIntegrityProtected()) {
|
if (encryptedData.isIntegrityProtected()) {
|
||||||
updateProgress(R.string.progress_verifyingIntegrity, 95, 100);
|
updateProgress(R.string.progress_verifying_integrity, 95, 100);
|
||||||
|
|
||||||
if (encryptedData.verify()) {
|
if (encryptedData.verify()) {
|
||||||
// passed
|
// passed
|
||||||
@ -814,12 +814,12 @@ public class PgpOperation {
|
|||||||
|
|
||||||
returnData.putBoolean(KeychainIntentService.RESULT_SIGNATURE, true);
|
returnData.putBoolean(KeychainIntentService.RESULT_SIGNATURE, true);
|
||||||
|
|
||||||
updateProgress(R.string.progress_processingSignature, 60, 100);
|
updateProgress(R.string.progress_processing_signature, 60, 100);
|
||||||
PGPObjectFactory pgpFact = new PGPObjectFactory(aIn);
|
PGPObjectFactory pgpFact = new PGPObjectFactory(aIn);
|
||||||
|
|
||||||
PGPSignatureList sigList = (PGPSignatureList) pgpFact.nextObject();
|
PGPSignatureList sigList = (PGPSignatureList) pgpFact.nextObject();
|
||||||
if (sigList == null) {
|
if (sigList == null) {
|
||||||
throw new PgpGeneralException(mContext.getString(R.string.error_corruptData));
|
throw new PgpGeneralException(mContext.getString(R.string.error_corrupt_data));
|
||||||
}
|
}
|
||||||
PGPSignature signature = null;
|
PGPSignature signature = null;
|
||||||
long signatureKeyId = 0;
|
long signatureKeyId = 0;
|
||||||
|
@ -277,7 +277,7 @@ public class KeychainIntentService extends IntentService implements ProgressDial
|
|||||||
if (!FileHelper.isStorageMounted(inputFile)
|
if (!FileHelper.isStorageMounted(inputFile)
|
||||||
|| !FileHelper.isStorageMounted(outputFile)) {
|
|| !FileHelper.isStorageMounted(outputFile)) {
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
getString(R.string.error_externalStorageNotReady));
|
getString(R.string.error_external_storage_not_ready));
|
||||||
}
|
}
|
||||||
|
|
||||||
inStream = new FileInputStream(inputFile);
|
inStream = new FileInputStream(inputFile);
|
||||||
@ -421,7 +421,7 @@ public class KeychainIntentService extends IntentService implements ProgressDial
|
|||||||
if (!FileHelper.isStorageMounted(inputFile)
|
if (!FileHelper.isStorageMounted(inputFile)
|
||||||
|| !FileHelper.isStorageMounted(outputFile)) {
|
|| !FileHelper.isStorageMounted(outputFile)) {
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
getString(R.string.error_externalStorageNotReady));
|
getString(R.string.error_external_storage_not_ready));
|
||||||
}
|
}
|
||||||
|
|
||||||
// InputStream
|
// InputStream
|
||||||
@ -616,9 +616,9 @@ public class KeychainIntentService extends IntentService implements ProgressDial
|
|||||||
PgpHelper.deleteFileSecurely(this, this, new File(deleteFile));
|
PgpHelper.deleteFileSecurely(this, this, new File(deleteFile));
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
getString(R.string.error_fileNotFound, deleteFile));
|
getString(R.string.error_file_not_found, deleteFile));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new PgpGeneralException(getString(R.string.error_fileDeleteFailed,
|
throw new PgpGeneralException(getString(R.string.error_file_delete_failed,
|
||||||
deleteFile));
|
deleteFile));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -694,7 +694,7 @@ public class KeychainIntentService extends IntentService implements ProgressDial
|
|||||||
|
|
||||||
// check if storage is ready
|
// check if storage is ready
|
||||||
if (!FileHelper.isStorageMounted(outputFile)) {
|
if (!FileHelper.isStorageMounted(outputFile)) {
|
||||||
throw new PgpGeneralException(getString(R.string.error_externalStorageNotReady));
|
throw new PgpGeneralException(getString(R.string.error_external_storage_not_ready));
|
||||||
}
|
}
|
||||||
|
|
||||||
// OutputStream
|
// OutputStream
|
||||||
|
@ -79,7 +79,7 @@ public class KeychainIntentServiceHandler extends Handler {
|
|||||||
// show error from service
|
// show error from service
|
||||||
if (data.containsKey(DATA_ERROR)) {
|
if (data.containsKey(DATA_ERROR)) {
|
||||||
Toast.makeText(mActivity,
|
Toast.makeText(mActivity,
|
||||||
mActivity.getString(R.string.errorMessage, data.getString(DATA_ERROR)),
|
mActivity.getString(R.string.error_message, data.getString(DATA_ERROR)),
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -227,7 +227,7 @@ public class AppSettingsFragment extends Fragment {
|
|||||||
mKeyUserId.setText(R.string.api_settings_no_key);
|
mKeyUserId.setText(R.string.api_settings_no_key);
|
||||||
mKeyUserIdRest.setText("");
|
mKeyUserIdRest.setText("");
|
||||||
} else {
|
} else {
|
||||||
String uid = getResources().getString(R.string.unknownUserId);
|
String uid = getResources().getString(R.string.unknown_user_id);
|
||||||
String uidExtra = "";
|
String uidExtra = "";
|
||||||
PGPSecretKeyRing keyRing = ProviderHelper.getPGPSecretKeyRingByMasterKeyId(
|
PGPSecretKeyRing keyRing = ProviderHelper.getPGPSecretKeyRingByMasterKeyId(
|
||||||
getActivity(), secretKeyId);
|
getActivity(), secretKeyId);
|
||||||
|
@ -387,7 +387,7 @@ public class OpenPgpService extends RemoteService {
|
|||||||
}
|
}
|
||||||
secretKeyId = PgpHelper.getDecryptionKeyId(this, inputStream2);
|
secretKeyId = PgpHelper.getDecryptionKeyId(this, inputStream2);
|
||||||
if (secretKeyId == Id.key.none) {
|
if (secretKeyId == Id.key.none) {
|
||||||
throw new PgpGeneralException(getString(R.string.error_noSecretKeyFound));
|
throw new PgpGeneralException(getString(R.string.error_no_secret_key_found));
|
||||||
}
|
}
|
||||||
} catch (NoAsymmetricEncryptionException e) {
|
} catch (NoAsymmetricEncryptionException e) {
|
||||||
if (inputStream2.markSupported()) {
|
if (inputStream2.markSupported()) {
|
||||||
@ -396,7 +396,7 @@ public class OpenPgpService extends RemoteService {
|
|||||||
secretKeyId = Id.key.symmetric;
|
secretKeyId = Id.key.symmetric;
|
||||||
if (!PgpOperation.hasSymmetricEncryption(this, inputStream2)) {
|
if (!PgpOperation.hasSymmetricEncryption(this, inputStream2)) {
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
getString(R.string.error_noKnownEncryptionFound));
|
getString(R.string.error_no_known_encryption_found));
|
||||||
}
|
}
|
||||||
// we do not support symmetric decryption from the API!
|
// we do not support symmetric decryption from the API!
|
||||||
throw new Exception("Symmetric decryption is not supported!");
|
throw new Exception("Symmetric decryption is not supported!");
|
||||||
|
@ -225,7 +225,7 @@ public class RemoteServiceActivity extends SherlockFragmentActivity {
|
|||||||
finishHandled = true;
|
finishHandled = true;
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
}, R.string.btn_doNotSave, new View.OnClickListener() {
|
}, R.string.btn_do_not_save, new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
// cancel
|
// cancel
|
||||||
|
@ -262,7 +262,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
|
|||||||
if (matcher.matches()) {
|
if (matcher.matches()) {
|
||||||
data = matcher.group(1);
|
data = matcher.group(1);
|
||||||
mMessage.setText(data);
|
mMessage.setText(data);
|
||||||
Toast.makeText(this, R.string.usingClipboardContent, Toast.LENGTH_SHORT).show();
|
Toast.makeText(this, R.string.using_clipboard_content, Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -399,7 +399,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
|
|||||||
} else {
|
} else {
|
||||||
Log.e(Constants.TAG,
|
Log.e(Constants.TAG,
|
||||||
"Direct binary data without actual file in filesystem is not supported. Please use the Remote Service API!");
|
"Direct binary data without actual file in filesystem is not supported. Please use the Remote Service API!");
|
||||||
Toast.makeText(this, R.string.error_onlyFilesAreSupported, Toast.LENGTH_LONG)
|
Toast.makeText(this, R.string.error_only_files_are_supported, Toast.LENGTH_LONG)
|
||||||
.show();
|
.show();
|
||||||
// end activity
|
// end activity
|
||||||
finish();
|
finish();
|
||||||
@ -463,7 +463,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (mInputFilename.equals("")) {
|
if (mInputFilename.equals("")) {
|
||||||
Toast.makeText(this, R.string.noFileSelected, Toast.LENGTH_SHORT).show();
|
Toast.makeText(this, R.string.no_file_selected, Toast.LENGTH_SHORT).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -472,7 +472,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
|
|||||||
if (!file.exists() || !file.isFile()) {
|
if (!file.exists() || !file.isFile()) {
|
||||||
Toast.makeText(
|
Toast.makeText(
|
||||||
this,
|
this,
|
||||||
getString(R.string.errorMessage, getString(R.string.error_fileNotFound)),
|
getString(R.string.error_message, getString(R.string.error_file_not_found)),
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -552,13 +552,13 @@ public class DecryptActivity extends SherlockFragmentActivity {
|
|||||||
inStream = getContentResolver().openInputStream(mContentUri);
|
inStream = getContentResolver().openInputStream(mContentUri);
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
Log.e(Constants.TAG, "File not found!", e);
|
Log.e(Constants.TAG, "File not found!", e);
|
||||||
Toast.makeText(this, getString(R.string.error_fileNotFound, e.getMessage()),
|
Toast.makeText(this, getString(R.string.error_file_not_found, e.getMessage()),
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
} else if (mDecryptTarget == Id.target.file) {
|
} else if (mDecryptTarget == Id.target.file) {
|
||||||
// check if storage is ready
|
// check if storage is ready
|
||||||
if (!FileHelper.isStorageMounted(mInputFilename)) {
|
if (!FileHelper.isStorageMounted(mInputFilename)) {
|
||||||
Toast.makeText(this, getString(R.string.error_externalStorageNotReady),
|
Toast.makeText(this, getString(R.string.error_external_storage_not_ready),
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -567,7 +567,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
|
|||||||
inStream = new BufferedInputStream(new FileInputStream(mInputFilename));
|
inStream = new BufferedInputStream(new FileInputStream(mInputFilename));
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
Log.e(Constants.TAG, "File not found!", e);
|
Log.e(Constants.TAG, "File not found!", e);
|
||||||
Toast.makeText(this, getString(R.string.error_fileNotFound, e.getMessage()),
|
Toast.makeText(this, getString(R.string.error_file_not_found, e.getMessage()),
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -583,7 +583,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
|
|||||||
}
|
}
|
||||||
mSecretKeyId = PgpHelper.getDecryptionKeyId(this, inStream);
|
mSecretKeyId = PgpHelper.getDecryptionKeyId(this, inStream);
|
||||||
if (mSecretKeyId == Id.key.none) {
|
if (mSecretKeyId == Id.key.none) {
|
||||||
throw new PgpGeneralException(getString(R.string.error_noSecretKeyFound));
|
throw new PgpGeneralException(getString(R.string.error_no_secret_key_found));
|
||||||
}
|
}
|
||||||
mAssumeSymmetricEncryption = false;
|
mAssumeSymmetricEncryption = false;
|
||||||
} catch (NoAsymmetricEncryptionException e) {
|
} catch (NoAsymmetricEncryptionException e) {
|
||||||
@ -592,12 +592,12 @@ public class DecryptActivity extends SherlockFragmentActivity {
|
|||||||
}
|
}
|
||||||
mSecretKeyId = Id.key.symmetric;
|
mSecretKeyId = Id.key.symmetric;
|
||||||
if (!PgpOperation.hasSymmetricEncryption(this, inStream)) {
|
if (!PgpOperation.hasSymmetricEncryption(this, inStream)) {
|
||||||
throw new PgpGeneralException(getString(R.string.error_noKnownEncryptionFound));
|
throw new PgpGeneralException(getString(R.string.error_no_known_encryption_found));
|
||||||
}
|
}
|
||||||
mAssumeSymmetricEncryption = true;
|
mAssumeSymmetricEncryption = true;
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Toast.makeText(this, getString(R.string.errorMessage, e.getMessage()),
|
Toast.makeText(this, getString(R.string.error_message, e.getMessage()),
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -631,8 +631,8 @@ public class DecryptActivity extends SherlockFragmentActivity {
|
|||||||
Messenger messenger = new Messenger(returnHandler);
|
Messenger messenger = new Messenger(returnHandler);
|
||||||
|
|
||||||
mFileDialog = FileDialogFragment.newInstance(messenger,
|
mFileDialog = FileDialogFragment.newInstance(messenger,
|
||||||
getString(R.string.title_decryptToFile),
|
getString(R.string.title_decrypt_to_file),
|
||||||
getString(R.string.specifyFileToDecryptTo), mOutputFilename, null,
|
getString(R.string.specify_file_to_decrypt_to), mOutputFilename, null,
|
||||||
Id.request.output_filename);
|
Id.request.output_filename);
|
||||||
|
|
||||||
mFileDialog.show(getSupportFragmentManager(), "fileDialog");
|
mFileDialog.show(getSupportFragmentManager(), "fileDialog");
|
||||||
@ -730,7 +730,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
|
|||||||
// build new action bar
|
// build new action bar
|
||||||
invalidateOptionsMenu();
|
invalidateOptionsMenu();
|
||||||
|
|
||||||
Toast.makeText(DecryptActivity.this, R.string.decryptionSuccessful,
|
Toast.makeText(DecryptActivity.this, R.string.decryption_successful,
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
if (mReturnResult) {
|
if (mReturnResult) {
|
||||||
Intent intent = new Intent();
|
Intent intent = new Intent();
|
||||||
@ -775,7 +775,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
|
|||||||
mUserIdRest.setText("id: "
|
mUserIdRest.setText("id: "
|
||||||
+ PgpKeyHelper.convertKeyIdToHex(mSignatureKeyId));
|
+ PgpKeyHelper.convertKeyIdToHex(mSignatureKeyId));
|
||||||
if (userId == null) {
|
if (userId == null) {
|
||||||
userId = getResources().getString(R.string.unknownUserId);
|
userId = getResources().getString(R.string.unknown_user_id);
|
||||||
}
|
}
|
||||||
String chunks[] = userId.split(" <", 2);
|
String chunks[] = userId.split(" <", 2);
|
||||||
userId = chunks[0];
|
userId = chunks[0];
|
||||||
@ -790,7 +790,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
|
|||||||
.getBoolean(KeychainIntentService.RESULT_SIGNATURE_UNKNOWN)) {
|
.getBoolean(KeychainIntentService.RESULT_SIGNATURE_UNKNOWN)) {
|
||||||
mSignatureStatusImage.setImageResource(R.drawable.overlay_error);
|
mSignatureStatusImage.setImageResource(R.drawable.overlay_error);
|
||||||
Toast.makeText(DecryptActivity.this,
|
Toast.makeText(DecryptActivity.this,
|
||||||
R.string.unknownSignatureKeyTouchToLookUp, Toast.LENGTH_LONG)
|
R.string.unknown_signature_key_touch_to_look_up, Toast.LENGTH_LONG)
|
||||||
.show();
|
.show();
|
||||||
} else {
|
} else {
|
||||||
mSignatureStatusImage.setImageResource(R.drawable.overlay_error);
|
mSignatureStatusImage.setImageResource(R.drawable.overlay_error);
|
||||||
|
@ -124,7 +124,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
((TextView) customActionBarView.findViewById(R.id.actionbar_cancel_text))
|
((TextView) customActionBarView.findViewById(R.id.actionbar_cancel_text))
|
||||||
.setText(R.string.btn_doNotSave);
|
.setText(R.string.btn_do_not_save);
|
||||||
customActionBarView.findViewById(R.id.actionbar_cancel).setOnClickListener(
|
customActionBarView.findViewById(R.id.actionbar_cancel).setOnClickListener(
|
||||||
new View.OnClickListener() {
|
new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
@ -201,7 +201,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
|
|||||||
private void handleActionCreateKey(Intent intent) {
|
private void handleActionCreateKey(Intent intent) {
|
||||||
Bundle extras = intent.getExtras();
|
Bundle extras = intent.getExtras();
|
||||||
|
|
||||||
mActionBar.setTitle(R.string.title_createKey);
|
mActionBar.setTitle(R.string.title_create_key);
|
||||||
|
|
||||||
mCurrentPassPhrase = "";
|
mCurrentPassPhrase = "";
|
||||||
|
|
||||||
@ -330,7 +330,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
|
|||||||
private void handleActionEditKey(Intent intent) {
|
private void handleActionEditKey(Intent intent) {
|
||||||
Bundle extras = intent.getExtras();
|
Bundle extras = intent.getExtras();
|
||||||
|
|
||||||
mActionBar.setTitle(R.string.title_editKey);
|
mActionBar.setTitle(R.string.title_edit_key);
|
||||||
|
|
||||||
if (extras != null) {
|
if (extras != null) {
|
||||||
if (extras.containsKey(EXTRA_MASTER_CAN_SIGN)) {
|
if (extras.containsKey(EXTRA_MASTER_CAN_SIGN)) {
|
||||||
@ -379,7 +379,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.e(Constants.TAG, "Keyring not found with masterKeyId: " + masterKeyId);
|
Log.e(Constants.TAG, "Keyring not found with masterKeyId: " + masterKeyId);
|
||||||
Toast.makeText(this, R.string.error_noSecretKeyFound, Toast.LENGTH_LONG).show();
|
Toast.makeText(this, R.string.error_no_secret_key_found, Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
if (masterKey != null) {
|
if (masterKey != null) {
|
||||||
for (String userId : new IterableIterator<String>(masterKey.getUserIDs())) {
|
for (String userId : new IterableIterator<String>(masterKey.getUserIDs())) {
|
||||||
@ -418,9 +418,9 @@ public class EditKeyActivity extends SherlockFragmentActivity {
|
|||||||
// set title based on isPassphraseSet()
|
// set title based on isPassphraseSet()
|
||||||
int title = -1;
|
int title = -1;
|
||||||
if (isPassphraseSet()) {
|
if (isPassphraseSet()) {
|
||||||
title = R.string.title_changePassPhrase;
|
title = R.string.title_change_pass_phrase;
|
||||||
} else {
|
} else {
|
||||||
title = R.string.title_setPassPhrase;
|
title = R.string.title_set_passphrase;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetPassphraseDialogFragment setPassphraseDialog = SetPassphraseDialogFragment.newInstance(
|
SetPassphraseDialogFragment setPassphraseDialog = SetPassphraseDialogFragment.newInstance(
|
||||||
@ -473,7 +473,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
|
|||||||
private void saveClicked() {
|
private void saveClicked() {
|
||||||
try {
|
try {
|
||||||
if (!isPassphraseSet()) {
|
if (!isPassphraseSet()) {
|
||||||
throw new PgpGeneralException(this.getString(R.string.setAPassPhrase));
|
throw new PgpGeneralException(this.getString(R.string.set_a_passphrase));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send all information needed to service to edit key in other thread
|
// Send all information needed to service to edit key in other thread
|
||||||
@ -530,7 +530,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
|
|||||||
// start service with intent
|
// start service with intent
|
||||||
startService(intent);
|
startService(intent);
|
||||||
} catch (PgpGeneralException e) {
|
} catch (PgpGeneralException e) {
|
||||||
Toast.makeText(this, getString(R.string.errorMessage, e.getMessage()),
|
Toast.makeText(this, getString(R.string.error_message, e.getMessage()),
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -558,10 +558,10 @@ public class EditKeyActivity extends SherlockFragmentActivity {
|
|||||||
try {
|
try {
|
||||||
userId = editor.getValue();
|
userId = editor.getValue();
|
||||||
} catch (UserIdEditor.NoNameException e) {
|
} catch (UserIdEditor.NoNameException e) {
|
||||||
throw new PgpGeneralException(this.getString(R.string.error_userIdNeedsAName));
|
throw new PgpGeneralException(this.getString(R.string.error_user_id_needs_a_name));
|
||||||
} catch (UserIdEditor.NoEmailException e) {
|
} catch (UserIdEditor.NoEmailException e) {
|
||||||
throw new PgpGeneralException(
|
throw new PgpGeneralException(
|
||||||
this.getString(R.string.error_userIdNeedsAnEmailAddress));
|
this.getString(R.string.error_user_id_needs_an_email_address));
|
||||||
} catch (UserIdEditor.InvalidEmailException e) {
|
} catch (UserIdEditor.InvalidEmailException e) {
|
||||||
throw new PgpGeneralException(e.getMessage());
|
throw new PgpGeneralException(e.getMessage());
|
||||||
}
|
}
|
||||||
@ -579,11 +579,11 @@ public class EditKeyActivity extends SherlockFragmentActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (userIds.size() == 0) {
|
if (userIds.size() == 0) {
|
||||||
throw new PgpGeneralException(getString(R.string.error_keyNeedsAUserId));
|
throw new PgpGeneralException(getString(R.string.error_key_needs_a_user_id));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!gotMainUserId) {
|
if (!gotMainUserId) {
|
||||||
throw new PgpGeneralException(getString(R.string.error_mainUserIdMustNotBeEmpty));
|
throw new PgpGeneralException(getString(R.string.error_main_user_id_must_not_be_empty));
|
||||||
}
|
}
|
||||||
|
|
||||||
return userIds;
|
return userIds;
|
||||||
@ -601,7 +601,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
|
|||||||
ViewGroup keyEditors = keysView.getEditors();
|
ViewGroup keyEditors = keysView.getEditors();
|
||||||
|
|
||||||
if (keyEditors.getChildCount() == 0) {
|
if (keyEditors.getChildCount() == 0) {
|
||||||
throw new PgpGeneralException(getString(R.string.error_keyNeedsMasterKey));
|
throw new PgpGeneralException(getString(R.string.error_key_needs_master_key));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < keyEditors.getChildCount(); ++i) {
|
for (int i = 0; i < keyEditors.getChildCount(); ++i) {
|
||||||
@ -624,7 +624,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
|
|||||||
ViewGroup keyEditors = keysView.getEditors();
|
ViewGroup keyEditors = keysView.getEditors();
|
||||||
|
|
||||||
if (keyEditors.getChildCount() == 0) {
|
if (keyEditors.getChildCount() == 0) {
|
||||||
throw new PgpGeneralException(getString(R.string.error_keyNeedsMasterKey));
|
throw new PgpGeneralException(getString(R.string.error_key_needs_master_key));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < keyEditors.getChildCount(); ++i) {
|
for (int i = 0; i < keyEditors.getChildCount(); ++i) {
|
||||||
@ -636,7 +636,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updatePassPhraseButtonText() {
|
private void updatePassPhraseButtonText() {
|
||||||
mChangePassPhrase.setText(isPassphraseSet() ? R.string.btn_changePassPhrase
|
mChangePassPhrase.setText(isPassphraseSet() ? R.string.btn_change_passphrase
|
||||||
: R.string.btn_setPassPhrase);
|
: R.string.btn_set_passphrase);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -279,7 +279,7 @@ public class EncryptActivity extends SherlockFragmentActivity {
|
|||||||
} else {
|
} else {
|
||||||
Log.e(Constants.TAG,
|
Log.e(Constants.TAG,
|
||||||
"Direct binary data without actual file in filesystem is not supported by Intents. Please use the Remote Service API!");
|
"Direct binary data without actual file in filesystem is not supported by Intents. Please use the Remote Service API!");
|
||||||
Toast.makeText(this, R.string.error_onlyFilesAreSupported, Toast.LENGTH_LONG)
|
Toast.makeText(this, R.string.error_only_files_are_supported, Toast.LENGTH_LONG)
|
||||||
.show();
|
.show();
|
||||||
// end activity
|
// end activity
|
||||||
finish();
|
finish();
|
||||||
@ -404,7 +404,7 @@ public class EncryptActivity extends SherlockFragmentActivity {
|
|||||||
private void updateActionBarButtons() {
|
private void updateActionBarButtons() {
|
||||||
switch (mSource.getCurrentView().getId()) {
|
switch (mSource.getCurrentView().getId()) {
|
||||||
case R.id.sourceFile: {
|
case R.id.sourceFile: {
|
||||||
setActionbarButtons(true, R.string.btn_encryptFile, false, 0);
|
setActionbarButtons(true, R.string.btn_encrypt_file, false, 0);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -413,19 +413,19 @@ public class EncryptActivity extends SherlockFragmentActivity {
|
|||||||
mSourceLabel.setText(R.string.label_message);
|
mSourceLabel.setText(R.string.label_message);
|
||||||
|
|
||||||
if (mMode.getCurrentView().getId() == R.id.modeSymmetric) {
|
if (mMode.getCurrentView().getId() == R.id.modeSymmetric) {
|
||||||
setActionbarButtons(true, R.string.btn_encryptAndSend, true,
|
setActionbarButtons(true, R.string.btn_encrypt_and_send, true,
|
||||||
R.string.btn_encryptToClipboard);
|
R.string.btn_encrypt_to_clipboard);
|
||||||
} else {
|
} else {
|
||||||
if (mEncryptionKeyIds == null || mEncryptionKeyIds.length == 0) {
|
if (mEncryptionKeyIds == null || mEncryptionKeyIds.length == 0) {
|
||||||
if (mSecretKeyId == 0) {
|
if (mSecretKeyId == 0) {
|
||||||
setActionbarButtons(false, 0, false, 0);
|
setActionbarButtons(false, 0, false, 0);
|
||||||
} else {
|
} else {
|
||||||
setActionbarButtons(true, R.string.btn_signAndSend, true,
|
setActionbarButtons(true, R.string.btn_sign_and_send, true,
|
||||||
R.string.btn_signToClipboard);
|
R.string.btn_sign_to_clipboard);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
setActionbarButtons(true, R.string.btn_encryptAndSend, true,
|
setActionbarButtons(true, R.string.btn_encrypt_and_send, true,
|
||||||
R.string.btn_encryptToClipboard);
|
R.string.btn_encrypt_to_clipboard);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -483,7 +483,7 @@ public class EncryptActivity extends SherlockFragmentActivity {
|
|||||||
mOutputFilename = guessOutputFilename(mInputFilename);
|
mOutputFilename = guessOutputFilename(mInputFilename);
|
||||||
|
|
||||||
if (mInputFilename.equals("")) {
|
if (mInputFilename.equals("")) {
|
||||||
Toast.makeText(this, R.string.noFileSelected, Toast.LENGTH_SHORT).show();
|
Toast.makeText(this, R.string.no_file_selected, Toast.LENGTH_SHORT).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -492,7 +492,7 @@ public class EncryptActivity extends SherlockFragmentActivity {
|
|||||||
if (!file.exists() || !file.isFile()) {
|
if (!file.exists() || !file.isFile()) {
|
||||||
Toast.makeText(
|
Toast.makeText(
|
||||||
this,
|
this,
|
||||||
getString(R.string.errorMessage, getString(R.string.error_fileNotFound)),
|
getString(R.string.error_message, getString(R.string.error_file_not_found)),
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -505,25 +505,25 @@ public class EncryptActivity extends SherlockFragmentActivity {
|
|||||||
String passPhrase = mPassPhrase.getText().toString();
|
String passPhrase = mPassPhrase.getText().toString();
|
||||||
String passPhraseAgain = mPassPhraseAgain.getText().toString();
|
String passPhraseAgain = mPassPhraseAgain.getText().toString();
|
||||||
if (!passPhrase.equals(passPhraseAgain)) {
|
if (!passPhrase.equals(passPhraseAgain)) {
|
||||||
Toast.makeText(this, R.string.passPhrasesDoNotMatch, Toast.LENGTH_SHORT).show();
|
Toast.makeText(this, R.string.passphrases_do_not_match, Toast.LENGTH_SHORT).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
gotPassPhrase = (passPhrase.length() != 0);
|
gotPassPhrase = (passPhrase.length() != 0);
|
||||||
if (!gotPassPhrase) {
|
if (!gotPassPhrase) {
|
||||||
Toast.makeText(this, R.string.passPhraseMustNotBeEmpty, Toast.LENGTH_SHORT).show();
|
Toast.makeText(this, R.string.passphrase_must_not_be_empty, Toast.LENGTH_SHORT).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
boolean encryptIt = (mEncryptionKeyIds != null && mEncryptionKeyIds.length > 0);
|
boolean encryptIt = (mEncryptionKeyIds != null && mEncryptionKeyIds.length > 0);
|
||||||
// for now require at least one form of encryption for files
|
// for now require at least one form of encryption for files
|
||||||
if (!encryptIt && mEncryptTarget == Id.target.file) {
|
if (!encryptIt && mEncryptTarget == Id.target.file) {
|
||||||
Toast.makeText(this, R.string.selectEncryptionKey, Toast.LENGTH_SHORT).show();
|
Toast.makeText(this, R.string.select_encryption_key, Toast.LENGTH_SHORT).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!encryptIt && mSecretKeyId == 0) {
|
if (!encryptIt && mSecretKeyId == 0) {
|
||||||
Toast.makeText(this, R.string.selectEncryptionOrSignatureKey, Toast.LENGTH_SHORT)
|
Toast.makeText(this, R.string.select_encryption_or_signature_key, Toast.LENGTH_SHORT)
|
||||||
.show();
|
.show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -594,8 +594,8 @@ public class EncryptActivity extends SherlockFragmentActivity {
|
|||||||
Messenger messenger = new Messenger(returnHandler);
|
Messenger messenger = new Messenger(returnHandler);
|
||||||
|
|
||||||
mFileDialog = FileDialogFragment.newInstance(messenger,
|
mFileDialog = FileDialogFragment.newInstance(messenger,
|
||||||
getString(R.string.title_encryptToFile),
|
getString(R.string.title_encrypt_to_file),
|
||||||
getString(R.string.specifyFileToEncryptTo), mOutputFilename, null,
|
getString(R.string.specify_file_to_encrypt_to), mOutputFilename, null,
|
||||||
Id.request.output_filename);
|
Id.request.output_filename);
|
||||||
|
|
||||||
mFileDialog.show(getSupportFragmentManager(), "fileDialog");
|
mFileDialog.show(getSupportFragmentManager(), "fileDialog");
|
||||||
@ -686,7 +686,7 @@ public class EncryptActivity extends SherlockFragmentActivity {
|
|||||||
Log.d(Constants.TAG, "output: " + output);
|
Log.d(Constants.TAG, "output: " + output);
|
||||||
ClipboardReflection.copyToClipboard(EncryptActivity.this, output);
|
ClipboardReflection.copyToClipboard(EncryptActivity.this, output);
|
||||||
Toast.makeText(EncryptActivity.this,
|
Toast.makeText(EncryptActivity.this,
|
||||||
R.string.encryptionToClipboardSuccessful, Toast.LENGTH_SHORT)
|
R.string.encryption_to_clipboard_successful, Toast.LENGTH_SHORT)
|
||||||
.show();
|
.show();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -703,11 +703,11 @@ public class EncryptActivity extends SherlockFragmentActivity {
|
|||||||
|
|
||||||
sendIntent.putExtra(Intent.EXTRA_TEXT, output);
|
sendIntent.putExtra(Intent.EXTRA_TEXT, output);
|
||||||
startActivity(Intent.createChooser(sendIntent,
|
startActivity(Intent.createChooser(sendIntent,
|
||||||
getString(R.string.title_sendEmail)));
|
getString(R.string.title_send_email)));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Id.target.file:
|
case Id.target.file:
|
||||||
Toast.makeText(EncryptActivity.this, R.string.encryptionSuccessful,
|
Toast.makeText(EncryptActivity.this, R.string.encryption_successful,
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
|
|
||||||
if (mDeleteAfter.isChecked()) {
|
if (mDeleteAfter.isChecked()) {
|
||||||
@ -852,10 +852,10 @@ public class EncryptActivity extends SherlockFragmentActivity {
|
|||||||
mFileCompression = (Spinner) findViewById(R.id.fileCompression);
|
mFileCompression = (Spinner) findViewById(R.id.fileCompression);
|
||||||
Choice[] choices = new Choice[] {
|
Choice[] choices = new Choice[] {
|
||||||
new Choice(Id.choice.compression.none, getString(R.string.choice_none) + " ("
|
new Choice(Id.choice.compression.none, getString(R.string.choice_none) + " ("
|
||||||
+ getString(R.string.fast) + ")"),
|
+ getString(R.string.compression_fast) + ")"),
|
||||||
new Choice(Id.choice.compression.zip, "ZIP (" + getString(R.string.fast) + ")"),
|
new Choice(Id.choice.compression.zip, "ZIP (" + getString(R.string.compression_fast) + ")"),
|
||||||
new Choice(Id.choice.compression.zlib, "ZLIB (" + getString(R.string.fast) + ")"),
|
new Choice(Id.choice.compression.zlib, "ZLIB (" + getString(R.string.compression_fast) + ")"),
|
||||||
new Choice(Id.choice.compression.bzip2, "BZIP2 (" + getString(R.string.very_slow)
|
new Choice(Id.choice.compression.bzip2, "BZIP2 (" + getString(R.string.compression_very_slow)
|
||||||
+ ")"), };
|
+ ")"), };
|
||||||
ArrayAdapter<Choice> adapter = new ArrayAdapter<Choice>(this,
|
ArrayAdapter<Choice> adapter = new ArrayAdapter<Choice>(this,
|
||||||
android.R.layout.simple_spinner_item, choices);
|
android.R.layout.simple_spinner_item, choices);
|
||||||
@ -896,12 +896,12 @@ public class EncryptActivity extends SherlockFragmentActivity {
|
|||||||
|
|
||||||
private void updateView() {
|
private void updateView() {
|
||||||
if (mEncryptionKeyIds == null || mEncryptionKeyIds.length == 0) {
|
if (mEncryptionKeyIds == null || mEncryptionKeyIds.length == 0) {
|
||||||
mSelectKeysButton.setText(R.string.noKeysSelected);
|
mSelectKeysButton.setText(R.string.no_keys_selected);
|
||||||
} else if (mEncryptionKeyIds.length == 1) {
|
} else if (mEncryptionKeyIds.length == 1) {
|
||||||
mSelectKeysButton.setText(R.string.oneKeySelected);
|
mSelectKeysButton.setText(R.string.one_key_selected);
|
||||||
} else {
|
} else {
|
||||||
mSelectKeysButton.setText("" + mEncryptionKeyIds.length + " "
|
mSelectKeysButton.setText("" + mEncryptionKeyIds.length + " "
|
||||||
+ getResources().getString(R.string.nKeysSelected));
|
+ getResources().getString(R.string.n_keys_selected));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mSecretKeyId == Id.key.none) {
|
if (mSecretKeyId == Id.key.none) {
|
||||||
@ -909,7 +909,7 @@ public class EncryptActivity extends SherlockFragmentActivity {
|
|||||||
mMainUserId.setText("");
|
mMainUserId.setText("");
|
||||||
mMainUserIdRest.setText("");
|
mMainUserIdRest.setText("");
|
||||||
} else {
|
} else {
|
||||||
String uid = getResources().getString(R.string.unknownUserId);
|
String uid = getResources().getString(R.string.unknown_user_id);
|
||||||
String uidExtra = "";
|
String uidExtra = "";
|
||||||
PGPSecretKeyRing keyRing = ProviderHelper.getPGPSecretKeyRingByMasterKeyId(this,
|
PGPSecretKeyRing keyRing = ProviderHelper.getPGPSecretKeyRingByMasterKeyId(this,
|
||||||
mSecretKeyId);
|
mSecretKeyId);
|
||||||
|
@ -66,6 +66,8 @@ public class HelpActivity extends SherlockFragmentActivity {
|
|||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
setContentView(R.layout.help_activity);
|
||||||
|
|
||||||
mViewPager = new ViewPager(this);
|
mViewPager = new ViewPager(this);
|
||||||
mViewPager.setId(R.id.pager);
|
mViewPager.setId(R.id.pager);
|
||||||
|
|
||||||
|
@ -345,13 +345,13 @@ public class ImportKeysActivity extends SherlockFragmentActivity implements OnNa
|
|||||||
int bad = returnData.getInt(KeychainIntentService.RESULT_IMPORT_BAD);
|
int bad = returnData.getInt(KeychainIntentService.RESULT_IMPORT_BAD);
|
||||||
String toastMessage;
|
String toastMessage;
|
||||||
if (added > 0 && updated > 0) {
|
if (added > 0 && updated > 0) {
|
||||||
toastMessage = getString(R.string.keysAddedAndUpdated, added, updated);
|
toastMessage = getString(R.string.keys_added_and_updated, added, updated);
|
||||||
} else if (added > 0) {
|
} else if (added > 0) {
|
||||||
toastMessage = getString(R.string.keysAdded, added);
|
toastMessage = getString(R.string.keys_added, added);
|
||||||
} else if (updated > 0) {
|
} else if (updated > 0) {
|
||||||
toastMessage = getString(R.string.keysUpdated, updated);
|
toastMessage = getString(R.string.keys_updated, updated);
|
||||||
} else {
|
} else {
|
||||||
toastMessage = getString(R.string.noKeysAddedOrUpdated);
|
toastMessage = getString(R.string.no_keys_added_or_updated);
|
||||||
}
|
}
|
||||||
Toast.makeText(ImportKeysActivity.this, toastMessage, Toast.LENGTH_SHORT)
|
Toast.makeText(ImportKeysActivity.this, toastMessage, Toast.LENGTH_SHORT)
|
||||||
.show();
|
.show();
|
||||||
@ -362,7 +362,7 @@ public class ImportKeysActivity extends SherlockFragmentActivity implements OnNa
|
|||||||
alert.setIcon(android.R.drawable.ic_dialog_alert);
|
alert.setIcon(android.R.drawable.ic_dialog_alert);
|
||||||
alert.setTitle(R.string.warning);
|
alert.setTitle(R.string.warning);
|
||||||
alert.setMessage(ImportKeysActivity.this.getString(
|
alert.setMessage(ImportKeysActivity.this.getString(
|
||||||
R.string.badKeysEncountered, bad));
|
R.string.bad_keys_encountered, bad));
|
||||||
|
|
||||||
alert.setPositiveButton(android.R.string.ok,
|
alert.setPositiveButton(android.R.string.ok,
|
||||||
new DialogInterface.OnClickListener() {
|
new DialogInterface.OnClickListener() {
|
||||||
@ -392,7 +392,7 @@ public class ImportKeysActivity extends SherlockFragmentActivity implements OnNa
|
|||||||
// start service with intent
|
// start service with intent
|
||||||
startService(intent);
|
startService(intent);
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(this, R.string.error_nothingImport, Toast.LENGTH_LONG).show();
|
Toast.makeText(this, R.string.error_nothing_import, Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ public class ImportKeysListFragment extends SherlockListFragment implements
|
|||||||
|
|
||||||
// Give some text to display if there is no data. In a real
|
// Give some text to display if there is no data. In a real
|
||||||
// application this would come from a resource.
|
// application this would come from a resource.
|
||||||
setEmptyText(mActivity.getString(R.string.error_nothingImport));
|
setEmptyText(mActivity.getString(R.string.error_nothing_import));
|
||||||
|
|
||||||
// Create an empty adapter we will use to display the loaded data.
|
// Create an empty adapter we will use to display the loaded data.
|
||||||
mAdapter = new ImportKeysAdapter(mActivity);
|
mAdapter = new ImportKeysAdapter(mActivity);
|
||||||
|
@ -133,9 +133,9 @@ public class KeyListActivity extends SherlockFragmentActivity {
|
|||||||
// TODO: reimplement!
|
// TODO: reimplement!
|
||||||
// menu.add(3, Id.menu.option.search, 0, R.string.menu_search)
|
// menu.add(3, Id.menu.option.search, 0, R.string.menu_search)
|
||||||
// .setIcon(R.drawable.ic_menu_search).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
// .setIcon(R.drawable.ic_menu_search).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||||
menu.add(0, Id.menu.option.import_from_file, 5, R.string.menu_importFromFile)
|
menu.add(0, Id.menu.option.import_from_file, 5, R.string.menu_import_from_file)
|
||||||
.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
|
.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
|
||||||
menu.add(0, Id.menu.option.export_keys, 6, R.string.menu_exportKeys).setShowAsAction(
|
menu.add(0, Id.menu.option.export_keys, 6, R.string.menu_export_keys).setShowAsAction(
|
||||||
MenuItem.SHOW_AS_ACTION_NEVER | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
|
MenuItem.SHOW_AS_ACTION_NEVER | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -202,16 +202,16 @@ public class KeyListActivity extends SherlockFragmentActivity {
|
|||||||
String title = null;
|
String title = null;
|
||||||
if (keyRingMasterKeyId != -1) {
|
if (keyRingMasterKeyId != -1) {
|
||||||
// single key export
|
// single key export
|
||||||
title = getString(R.string.title_exportKey);
|
title = getString(R.string.title_export_key);
|
||||||
} else {
|
} else {
|
||||||
title = getString(R.string.title_exportKeys);
|
title = getString(R.string.title_export_keys);
|
||||||
}
|
}
|
||||||
|
|
||||||
String message = null;
|
String message = null;
|
||||||
if (mKeyType == Id.type.public_key) {
|
if (mKeyType == Id.type.public_key) {
|
||||||
message = getString(R.string.specifyFileToExportTo);
|
message = getString(R.string.specify_file_to_export_to);
|
||||||
} else {
|
} else {
|
||||||
message = getString(R.string.specifyFileToExportSecretKeysTo);
|
message = getString(R.string.specify_file_to_export_secret_keys_to);
|
||||||
}
|
}
|
||||||
|
|
||||||
mFileDialog = FileDialogFragment.newInstance(messenger, title, message,
|
mFileDialog = FileDialogFragment.newInstance(messenger, title, message,
|
||||||
@ -289,11 +289,11 @@ public class KeyListActivity extends SherlockFragmentActivity {
|
|||||||
int exported = returnData.getInt(KeychainIntentService.RESULT_EXPORT);
|
int exported = returnData.getInt(KeychainIntentService.RESULT_EXPORT);
|
||||||
String toastMessage;
|
String toastMessage;
|
||||||
if (exported == 1) {
|
if (exported == 1) {
|
||||||
toastMessage = getString(R.string.keyExported);
|
toastMessage = getString(R.string.key_exported);
|
||||||
} else if (exported > 0) {
|
} else if (exported > 0) {
|
||||||
toastMessage = getString(R.string.keysExported, exported);
|
toastMessage = getString(R.string.keys_exported, exported);
|
||||||
} else {
|
} else {
|
||||||
toastMessage = getString(R.string.noKeysExported);
|
toastMessage = getString(R.string.no_keys_exported);
|
||||||
}
|
}
|
||||||
Toast.makeText(KeyListActivity.this, toastMessage, Toast.LENGTH_SHORT).show();
|
Toast.makeText(KeyListActivity.this, toastMessage, Toast.LENGTH_SHORT).show();
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ public class KeyListFragment extends ExpandableListFragment {
|
|||||||
|
|
||||||
// Give some text to display if there is no data. In a real
|
// Give some text to display if there is no data. In a real
|
||||||
// application this would come from a resource.
|
// application this would come from a resource.
|
||||||
setEmptyText(getString(R.string.listEmpty));
|
setEmptyText(getString(R.string.list_empty));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -52,8 +52,8 @@ public class KeyListFragment extends ExpandableListFragment {
|
|||||||
@Override
|
@Override
|
||||||
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
|
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
|
||||||
super.onCreateContextMenu(menu, v, menuInfo);
|
super.onCreateContextMenu(menu, v, menuInfo);
|
||||||
menu.add(0, Id.menu.export, 5, R.string.menu_exportKey);
|
menu.add(0, Id.menu.export, 5, R.string.menu_export_key);
|
||||||
menu.add(0, Id.menu.delete, 111, R.string.menu_deleteKey);
|
menu.add(0, Id.menu.delete, 111, R.string.menu_delete_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -43,14 +43,14 @@ public class KeyListPublicActivity extends KeyListActivity {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
super.onCreateOptionsMenu(menu);
|
super.onCreateOptionsMenu(menu);
|
||||||
menu.add(1, Id.menu.option.key_server, 1, R.string.menu_keyServer)
|
menu.add(1, Id.menu.option.key_server, 1, R.string.menu_key_server)
|
||||||
.setIcon(R.drawable.ic_menu_search_list)
|
.setIcon(R.drawable.ic_menu_search_list)
|
||||||
.setShowAsAction(
|
.setShowAsAction(
|
||||||
MenuItem.SHOW_AS_ACTION_ALWAYS);
|
MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||||
menu.add(1, Id.menu.option.import_from_qr_code, 2, R.string.menu_importFromQrCode)
|
menu.add(1, Id.menu.option.import_from_qr_code, 2, R.string.menu_import_from_qr_code)
|
||||||
.setShowAsAction(
|
.setShowAsAction(
|
||||||
MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
|
MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
|
||||||
menu.add(1, Id.menu.option.import_from_nfc, 3, R.string.menu_importFromNfc)
|
menu.add(1, Id.menu.option.import_from_nfc, 3, R.string.menu_import_from_nfc)
|
||||||
.setShowAsAction(
|
.setShowAsAction(
|
||||||
MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
|
MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
|
||||||
|
|
||||||
|
@ -73,12 +73,12 @@ public class KeyListPublicFragment extends KeyListFragment implements
|
|||||||
@Override
|
@Override
|
||||||
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
|
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
|
||||||
super.onCreateContextMenu(menu, v, menuInfo);
|
super.onCreateContextMenu(menu, v, menuInfo);
|
||||||
menu.add(0, Id.menu.update, 1, R.string.menu_updateKey);
|
menu.add(0, Id.menu.update, 1, R.string.menu_update_key);
|
||||||
menu.add(0, Id.menu.signKey, 2, R.string.menu_signKey);
|
menu.add(0, Id.menu.signKey, 2, R.string.menu_sign_key);
|
||||||
menu.add(0, Id.menu.exportToServer, 3, R.string.menu_exportKeyToServer);
|
menu.add(0, Id.menu.exportToServer, 3, R.string.menu_export_key_to_server);
|
||||||
menu.add(0, Id.menu.share, 6, R.string.menu_share);
|
menu.add(0, Id.menu.share, 6, R.string.menu_share);
|
||||||
menu.add(0, Id.menu.share_qr_code, 7, R.string.menu_shareQrCode);
|
menu.add(0, Id.menu.share_qr_code, 7, R.string.menu_share_qr_code);
|
||||||
menu.add(0, Id.menu.share_nfc, 8, R.string.menu_shareNfc);
|
menu.add(0, Id.menu.share_nfc, 8, R.string.menu_share_nfc);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,9 +43,9 @@ public class KeyListSecretActivity extends KeyListActivity {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
super.onCreateOptionsMenu(menu);
|
super.onCreateOptionsMenu(menu);
|
||||||
menu.add(1, Id.menu.option.create, 1, R.string.menu_createKey).setShowAsAction(
|
menu.add(1, Id.menu.option.create, 1, R.string.menu_create_key).setShowAsAction(
|
||||||
MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
|
MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
|
||||||
menu.add(1, Id.menu.option.createExpert, 2, R.string.menu_createKeyExpert).setShowAsAction(
|
menu.add(1, Id.menu.option.createExpert, 2, R.string.menu_create_key_expert).setShowAsAction(
|
||||||
MenuItem.SHOW_AS_ACTION_NEVER);
|
MenuItem.SHOW_AS_ACTION_NEVER);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -70,7 +70,7 @@ public class KeyListSecretFragment extends KeyListFragment implements
|
|||||||
@Override
|
@Override
|
||||||
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
|
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
|
||||||
super.onCreateContextMenu(menu, v, menuInfo);
|
super.onCreateContextMenu(menu, v, menuInfo);
|
||||||
menu.add(0, Id.menu.edit, 0, R.string.menu_editKey);
|
menu.add(0, Id.menu.edit, 0, R.string.menu_edit_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -235,7 +235,7 @@ public class KeyServerQueryActivity extends SherlockFragmentActivity {
|
|||||||
if (mQueryType == Id.keyserver.search) {
|
if (mQueryType == Id.keyserver.search) {
|
||||||
if (mSearchResult != null) {
|
if (mSearchResult != null) {
|
||||||
Toast.makeText(KeyServerQueryActivity.this,
|
Toast.makeText(KeyServerQueryActivity.this,
|
||||||
getString(R.string.keysFound, mSearchResult.size()),
|
getString(R.string.keys_found, mSearchResult.size()),
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
mAdapter.setKeys(mSearchResult);
|
mAdapter.setKeys(mSearchResult);
|
||||||
}
|
}
|
||||||
@ -322,11 +322,11 @@ public class KeyServerQueryActivity extends SherlockFragmentActivity {
|
|||||||
View view = mInflater.inflate(R.layout.key_server_query_result_item, null);
|
View view = mInflater.inflate(R.layout.key_server_query_result_item, null);
|
||||||
|
|
||||||
TextView mainUserId = (TextView)view.findViewById(R.id.mainUserId);
|
TextView mainUserId = (TextView)view.findViewById(R.id.mainUserId);
|
||||||
mainUserId.setText(R.string.unknownUserId);
|
mainUserId.setText(R.string.unknown_user_id);
|
||||||
TextView mainUserIdRest = (TextView)view.findViewById(R.id.mainUserIdRest);
|
TextView mainUserIdRest = (TextView)view.findViewById(R.id.mainUserIdRest);
|
||||||
mainUserIdRest.setText("");
|
mainUserIdRest.setText("");
|
||||||
TextView keyId = (TextView)view.findViewById(R.id.keyId);
|
TextView keyId = (TextView)view.findViewById(R.id.keyId);
|
||||||
keyId.setText(R.string.noKey);
|
keyId.setText(R.string.no_key);
|
||||||
TextView algorithm = (TextView)view.findViewById(R.id.algorithm);
|
TextView algorithm = (TextView)view.findViewById(R.id.algorithm);
|
||||||
algorithm.setText("");
|
algorithm.setText("");
|
||||||
TextView status = (TextView)view.findViewById(R.id.status);
|
TextView status = (TextView)view.findViewById(R.id.status);
|
||||||
|
@ -126,7 +126,7 @@ public class KeyServerUploadActivity extends SherlockFragmentActivity {
|
|||||||
|
|
||||||
if (message.arg1 == KeychainIntentServiceHandler.MESSAGE_OKAY) {
|
if (message.arg1 == KeychainIntentServiceHandler.MESSAGE_OKAY) {
|
||||||
|
|
||||||
Toast.makeText(KeyServerUploadActivity.this, R.string.keySendSuccess,
|
Toast.makeText(KeyServerUploadActivity.this, R.string.key_send_success,
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ public class MainActivity extends SherlockActivity {
|
|||||||
menu.add(0, Id.menu.option.preferences, 0, R.string.menu_preferences)
|
menu.add(0, Id.menu.option.preferences, 0, R.string.menu_preferences)
|
||||||
.setIcon(R.drawable.ic_menu_settings)
|
.setIcon(R.drawable.ic_menu_settings)
|
||||||
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
|
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
|
||||||
menu.add(0, Id.menu.option.crypto_consumers, 0, R.string.menu_apiAppSettings)
|
menu.add(0, Id.menu.option.crypto_consumers, 0, R.string.menu_api_app_settings)
|
||||||
.setIcon(R.drawable.ic_menu_settings)
|
.setIcon(R.drawable.ic_menu_settings)
|
||||||
.setShowAsAction(MenuItem.SHOW_AS_ACTION_WITH_TEXT);
|
.setShowAsAction(MenuItem.SHOW_AS_ACTION_WITH_TEXT);
|
||||||
return true;
|
return true;
|
||||||
|
@ -123,10 +123,10 @@ public class PreferencesActivity extends SherlockPreferenceActivity {
|
|||||||
valueIds = new int[] { Id.choice.compression.none, Id.choice.compression.zip,
|
valueIds = new int[] { Id.choice.compression.none, Id.choice.compression.zip,
|
||||||
Id.choice.compression.zlib, Id.choice.compression.bzip2, };
|
Id.choice.compression.zlib, Id.choice.compression.bzip2, };
|
||||||
entries = new String[] {
|
entries = new String[] {
|
||||||
getString(R.string.choice_none) + " (" + getString(R.string.fast) + ")",
|
getString(R.string.choice_none) + " (" + getString(R.string.compression_fast) + ")",
|
||||||
"ZIP (" + getString(R.string.fast) + ")",
|
"ZIP (" + getString(R.string.compression_fast) + ")",
|
||||||
"ZLIB (" + getString(R.string.fast) + ")",
|
"ZLIB (" + getString(R.string.compression_fast) + ")",
|
||||||
"BZIP2 (" + getString(R.string.very_slow) + ")", };
|
"BZIP2 (" + getString(R.string.compression_very_slow) + ")", };
|
||||||
values = new String[valueIds.length];
|
values = new String[valueIds.length];
|
||||||
for (int i = 0; i < values.length; ++i) {
|
for (int i = 0; i < values.length; ++i) {
|
||||||
values[i] = "" + valueIds[i];
|
values[i] = "" + valueIds[i];
|
||||||
@ -183,7 +183,7 @@ public class PreferencesActivity extends SherlockPreferenceActivity {
|
|||||||
|
|
||||||
mKeyServerPreference = (PreferenceScreen) findPreference(Constants.pref.KEY_SERVERS);
|
mKeyServerPreference = (PreferenceScreen) findPreference(Constants.pref.KEY_SERVERS);
|
||||||
String servers[] = mPreferences.getKeyServers();
|
String servers[] = mPreferences.getKeyServers();
|
||||||
mKeyServerPreference.setSummary(getResources().getString(R.string.nKeyServers,
|
mKeyServerPreference.setSummary(getResources().getString(R.string.n_key_servers,
|
||||||
servers.length));
|
servers.length));
|
||||||
mKeyServerPreference
|
mKeyServerPreference
|
||||||
.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||||
@ -208,7 +208,7 @@ public class PreferencesActivity extends SherlockPreferenceActivity {
|
|||||||
String servers[] = data
|
String servers[] = data
|
||||||
.getStringArrayExtra(PreferencesKeyServerActivity.EXTRA_KEY_SERVERS);
|
.getStringArrayExtra(PreferencesKeyServerActivity.EXTRA_KEY_SERVERS);
|
||||||
mPreferences.setKeyServers(servers);
|
mPreferences.setKeyServers(servers);
|
||||||
mKeyServerPreference.setSummary(getResources().getString(R.string.nKeyServers,
|
mKeyServerPreference.setSummary(getResources().getString(R.string.n_key_servers,
|
||||||
servers.length));
|
servers.length));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,7 @@ public class PreferencesKeyServerActivity extends SherlockActivity implements On
|
|||||||
// ok
|
// ok
|
||||||
okClicked();
|
okClicked();
|
||||||
}
|
}
|
||||||
}, R.string.btn_doNotSave, new View.OnClickListener() {
|
}, R.string.btn_do_not_save, new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
// cancel
|
// cancel
|
||||||
@ -73,7 +73,7 @@ public class PreferencesKeyServerActivity extends SherlockActivity implements On
|
|||||||
mTitle = (TextView) findViewById(R.id.title);
|
mTitle = (TextView) findViewById(R.id.title);
|
||||||
mSummary = (TextView) findViewById(R.id.summary);
|
mSummary = (TextView) findViewById(R.id.summary);
|
||||||
|
|
||||||
mTitle.setText(R.string.label_keyServers);
|
mTitle.setText(R.string.label_key_servers);
|
||||||
|
|
||||||
mEditors = (ViewGroup) findViewById(R.id.editors);
|
mEditors = (ViewGroup) findViewById(R.id.editors);
|
||||||
mAdd = findViewById(R.id.add);
|
mAdd = findViewById(R.id.add);
|
||||||
|
@ -54,7 +54,7 @@ public class SelectPublicKeyActivity extends SherlockFragmentActivity {
|
|||||||
// ok
|
// ok
|
||||||
okClicked();
|
okClicked();
|
||||||
}
|
}
|
||||||
}, R.string.btn_doNotSave, new View.OnClickListener() {
|
}, R.string.btn_do_not_save, new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
// cancel
|
// cancel
|
||||||
|
@ -85,7 +85,7 @@ public class SelectPublicKeyFragment extends ListFragmentWorkaround implements
|
|||||||
|
|
||||||
// Give some text to display if there is no data. In a real
|
// Give some text to display if there is no data. In a real
|
||||||
// application this would come from a resource.
|
// application this would come from a resource.
|
||||||
setEmptyText(getString(R.string.listEmpty));
|
setEmptyText(getString(R.string.list_empty));
|
||||||
|
|
||||||
mAdapter = new SelectKeyCursorAdapter(mActivity, null, 0, mListView, Id.type.public_key);
|
mAdapter = new SelectKeyCursorAdapter(mActivity, null, 0, mListView, Id.type.public_key);
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ public class SelectSecretKeyFragment extends SherlockListFragment implements
|
|||||||
|
|
||||||
// Give some text to display if there is no data. In a real
|
// Give some text to display if there is no data. In a real
|
||||||
// application this would come from a resource.
|
// application this would come from a resource.
|
||||||
setEmptyText(getString(R.string.listEmpty));
|
setEmptyText(getString(R.string.list_empty));
|
||||||
|
|
||||||
mAdapter = new SelectKeyCursorAdapter(mActivity, null, 0, mListView, Id.type.secret_key);
|
mAdapter = new SelectKeyCursorAdapter(mActivity, null, 0, mListView, Id.type.secret_key);
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ public class ShareActivity extends SherlockFragmentActivity {
|
|||||||
sendIntent.putExtra(Intent.EXTRA_TEXT, keyringArmored.get(0));
|
sendIntent.putExtra(Intent.EXTRA_TEXT, keyringArmored.get(0));
|
||||||
sendIntent.setType("text/plain");
|
sendIntent.setType("text/plain");
|
||||||
startActivity(Intent.createChooser(sendIntent,
|
startActivity(Intent.createChooser(sendIntent,
|
||||||
getResources().getText(R.string.shareKeyringWith)));
|
getResources().getText(R.string.action_share_key_with)));
|
||||||
} else if (ACTION_SHARE_KEYRING_WITH_QR_CODE.equals(action)) {
|
} else if (ACTION_SHARE_KEYRING_WITH_QR_CODE.equals(action)) {
|
||||||
ShareQrCodeDialogFragment dialog = ShareQrCodeDialogFragment.newInstance(keyringArmored
|
ShareQrCodeDialogFragment dialog = ShareQrCodeDialogFragment.newInstance(keyringArmored
|
||||||
.get(0));
|
.get(0));
|
||||||
|
@ -64,7 +64,7 @@ public class ShareNfcBeamActivity extends SherlockFragmentActivity implements
|
|||||||
|
|
||||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
|
||||||
Toast.makeText(this,
|
Toast.makeText(this,
|
||||||
getString(R.string.error) + ": " + getString(R.string.error_jellyBeanNeeded),
|
getString(R.string.error) + ": " + getString(R.string.error_jelly_bean_needed),
|
||||||
Toast.LENGTH_LONG).show();
|
Toast.LENGTH_LONG).show();
|
||||||
finish();
|
finish();
|
||||||
} else {
|
} else {
|
||||||
@ -72,7 +72,7 @@ public class ShareNfcBeamActivity extends SherlockFragmentActivity implements
|
|||||||
mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
|
mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
|
||||||
if (mNfcAdapter == null) {
|
if (mNfcAdapter == null) {
|
||||||
Toast.makeText(this,
|
Toast.makeText(this,
|
||||||
getString(R.string.error) + ": " + getString(R.string.error_nfcNeeded),
|
getString(R.string.error) + ": " + getString(R.string.error_nfc_needed),
|
||||||
Toast.LENGTH_LONG).show();
|
Toast.LENGTH_LONG).show();
|
||||||
finish();
|
finish();
|
||||||
} else {
|
} else {
|
||||||
@ -170,7 +170,7 @@ public class ShareNfcBeamActivity extends SherlockFragmentActivity implements
|
|||||||
public void handleMessage(Message msg) {
|
public void handleMessage(Message msg) {
|
||||||
switch (msg.what) {
|
switch (msg.what) {
|
||||||
case MESSAGE_SENT:
|
case MESSAGE_SENT:
|
||||||
Toast.makeText(getApplicationContext(), R.string.nfcSuccessfull, Toast.LENGTH_LONG)
|
Toast.makeText(getApplicationContext(), R.string.nfc_successfull, Toast.LENGTH_LONG)
|
||||||
.show();
|
.show();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -217,7 +217,7 @@ public class SignKeyActivity extends SherlockFragmentActivity {
|
|||||||
|
|
||||||
if (message.arg1 == KeychainIntentServiceHandler.MESSAGE_OKAY) {
|
if (message.arg1 == KeychainIntentServiceHandler.MESSAGE_OKAY) {
|
||||||
|
|
||||||
Toast.makeText(SignKeyActivity.this, R.string.keySignSuccess,
|
Toast.makeText(SignKeyActivity.this, R.string.key_sign_success,
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
|
|
||||||
// check if we need to send the key to the server or not
|
// check if we need to send the key to the server or not
|
||||||
@ -271,7 +271,7 @@ public class SignKeyActivity extends SherlockFragmentActivity {
|
|||||||
|
|
||||||
if (message.arg1 == KeychainIntentServiceHandler.MESSAGE_OKAY) {
|
if (message.arg1 == KeychainIntentServiceHandler.MESSAGE_OKAY) {
|
||||||
|
|
||||||
Toast.makeText(SignKeyActivity.this, R.string.keySendSuccess,
|
Toast.makeText(SignKeyActivity.this, R.string.key_send_success,
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
|
|
||||||
finish();
|
finish();
|
||||||
|
@ -79,11 +79,11 @@ public class ImportKeysAdapter extends ArrayAdapter<ImportKeysListEntry> {
|
|||||||
View view = mInflater.inflate(R.layout.import_keys_list_entry, null);
|
View view = mInflater.inflate(R.layout.import_keys_list_entry, null);
|
||||||
|
|
||||||
TextView mainUserId = (TextView) view.findViewById(R.id.mainUserId);
|
TextView mainUserId = (TextView) view.findViewById(R.id.mainUserId);
|
||||||
mainUserId.setText(R.string.unknownUserId);
|
mainUserId.setText(R.string.unknown_user_id);
|
||||||
TextView mainUserIdRest = (TextView) view.findViewById(R.id.mainUserIdRest);
|
TextView mainUserIdRest = (TextView) view.findViewById(R.id.mainUserIdRest);
|
||||||
mainUserIdRest.setText("");
|
mainUserIdRest.setText("");
|
||||||
TextView keyId = (TextView) view.findViewById(R.id.keyId);
|
TextView keyId = (TextView) view.findViewById(R.id.keyId);
|
||||||
keyId.setText(R.string.noKey);
|
keyId.setText(R.string.no_key);
|
||||||
TextView fingerprint = (TextView) view.findViewById(R.id.fingerprint);
|
TextView fingerprint = (TextView) view.findViewById(R.id.fingerprint);
|
||||||
TextView algorithm = (TextView) view.findViewById(R.id.algorithm);
|
TextView algorithm = (TextView) view.findViewById(R.id.algorithm);
|
||||||
algorithm.setText("");
|
algorithm.setText("");
|
||||||
@ -98,7 +98,7 @@ public class ImportKeysAdapter extends ArrayAdapter<ImportKeysListEntry> {
|
|||||||
mainUserIdRest.setText("<" + chunks[1]);
|
mainUserIdRest.setText("<" + chunks[1]);
|
||||||
}
|
}
|
||||||
if (entry.secretKey) {
|
if (entry.secretKey) {
|
||||||
userId = mActivity.getString(R.string.secretKey) + " " + userId;
|
userId = mActivity.getString(R.string.secret_key) + " " + userId;
|
||||||
mainUserId.setTextColor(Color.RED);
|
mainUserId.setTextColor(Color.RED);
|
||||||
}
|
}
|
||||||
mainUserId.setText(userId);
|
mainUserId.setText(userId);
|
||||||
|