// Define the saved instance state constants.
private final String ENCRYPTION_PASSWORD_TEXTINPUTLAYOUT_VISIBILITY = "encryption_password_textinputlayout_visibility";
- private final String KITKAT_PASSWORD_ENCRYPTED_TEXTVIEW_VISIBILITY = "kitkat_password_encrypted_textview_visibility";
private final String OPEN_KEYCHAIN_REQUIRED_TEXTVIEW_VISIBILITY = "open_keychain_required_textview_visibility";
private final String FILE_LOCATION_CARD_VIEW = "file_location_card_view";
private final String FILE_NAME_LINEARLAYOUT_VISIBILITY = "file_name_linearlayout_visibility";
Spinner encryptionSpinner;
TextInputLayout encryptionPasswordTextInputLayout;
EditText encryptionPasswordEditText;
- TextView kitKatPasswordEncryptionTextView;
TextView openKeychainRequiredTextView;
CardView fileLocationCardView;
RadioButton importRadioButton;
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
- // Set the theme.
- setTheme(R.style.PrivacyBrowser);
-
// Run the default commands.
super.onCreate(savedInstanceState);
case NO_ENCRYPTION:
// Hide the unneeded layout items.
encryptionPasswordTextInputLayout.setVisibility(View.GONE);
- kitKatPasswordEncryptionTextView.setVisibility(View.GONE);
openKeychainRequiredTextView.setVisibility(View.GONE);
openKeychainImportInstructionsTextView.setVisibility(View.GONE);
case OPENPGP_ENCRYPTION:
// Hide the password encryption layout items.
encryptionPasswordTextInputLayout.setVisibility(View.GONE);
- kitKatPasswordEncryptionTextView.setVisibility(View.GONE);
// Updated items based on the installation status of OpenKeychain.
if (openKeychainInstalled) { // OpenKeychain is installed.
if (savedInstanceState == null) { // The app has not been restarted.
// Initially hide the unneeded views.
encryptionPasswordTextInputLayout.setVisibility(View.GONE);
- kitKatPasswordEncryptionTextView.setVisibility(View.GONE);
openKeychainRequiredTextView.setVisibility(View.GONE);
fileNameLinearLayout.setVisibility(View.GONE);
openKeychainImportInstructionsTextView.setVisibility(View.GONE);
} else { // The app has been restarted.
// Restore the visibility of the views.
encryptionPasswordTextInputLayout.setVisibility(savedInstanceState.getInt(ENCRYPTION_PASSWORD_TEXTINPUTLAYOUT_VISIBILITY));
- kitKatPasswordEncryptionTextView.setVisibility(savedInstanceState.getInt(KITKAT_PASSWORD_ENCRYPTED_TEXTVIEW_VISIBILITY));
openKeychainRequiredTextView.setVisibility(savedInstanceState.getInt(OPEN_KEYCHAIN_REQUIRED_TEXTVIEW_VISIBILITY));
fileLocationCardView.setVisibility(savedInstanceState.getInt(FILE_LOCATION_CARD_VIEW));
fileNameLinearLayout.setVisibility(savedInstanceState.getInt(FILE_NAME_LINEARLAYOUT_VISIBILITY));
// Save the visibility of the views.
savedInstanceState.putInt(ENCRYPTION_PASSWORD_TEXTINPUTLAYOUT_VISIBILITY, encryptionPasswordTextInputLayout.getVisibility());
- savedInstanceState.putInt(KITKAT_PASSWORD_ENCRYPTED_TEXTVIEW_VISIBILITY, kitKatPasswordEncryptionTextView.getVisibility());
savedInstanceState.putInt(OPEN_KEYCHAIN_REQUIRED_TEXTVIEW_VISIBILITY, openKeychainRequiredTextView.getVisibility());
savedInstanceState.putInt(FILE_LOCATION_CARD_VIEW, fileLocationCardView.getVisibility());
savedInstanceState.putInt(FILE_NAME_LINEARLAYOUT_VISIBILITY, fileNameLinearLayout.getVisibility());
case NO_ENCRYPTION:
try {
// Get an input stream for the file name.
+ // A file may be opened directly once the minimum API >= 29. <https://developer.android.com/reference/kotlin/android/content/ContentResolver#openfile>
InputStream inputStream = getContentResolver().openInputStream(Uri.parse(fileNameString));
// Import the unencrypted file.
try {
// Get the export file output stream.
+ // A file may be opened directly once the minimum API >= 29. <https://developer.android.com/reference/kotlin/android/content/ContentResolver#openfile>
OutputStream exportFileOutputStream = getContentResolver().openOutputStream(Uri.parse(noEncryptionFileNameString));
// Export the unencrypted file.