diff --git a/jni/dc_wrapper.c b/jni/dc_wrapper.c index 4a92c5b0a..f49a9c693 100644 --- a/jni/dc_wrapper.c +++ b/jni/dc_wrapper.c @@ -282,12 +282,6 @@ JNIEXPORT jint Java_com_b44t_messenger_DcAccounts_addAccount(JNIEnv *env, jobjec } -JNIEXPORT jint Java_com_b44t_messenger_DcAccounts_addClosedAccount(JNIEnv *env, jobject obj) -{ - return dc_accounts_add_closed_account(get_dc_accounts(env, obj)); -} - - JNIEXPORT jint Java_com_b44t_messenger_DcAccounts_migrateAccount(JNIEnv *env, jobject obj, jstring dbfile) { CHAR_REF(dbfile); diff --git a/src/main/java/com/b44t/messenger/DcAccounts.java b/src/main/java/com/b44t/messenger/DcAccounts.java index afe6b5041..de50793a9 100644 --- a/src/main/java/com/b44t/messenger/DcAccounts.java +++ b/src/main/java/com/b44t/messenger/DcAccounts.java @@ -27,7 +27,6 @@ public class DcAccounts { public native void setPushDeviceToken (String token); public native int addAccount (); - public native int addClosedAccount (); public native int migrateAccount (String dbfile); public native boolean removeAccount (int accountId); public native int[] getAll (); diff --git a/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java b/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java index f152ec172..f41c22896 100644 --- a/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java @@ -56,7 +56,6 @@ import com.b44t.messenger.util.concurrent.ListenableFuture; import com.b44t.messenger.util.concurrent.SettableFuture; import com.google.android.material.textfield.TextInputEditText; -import org.thoughtcrime.securesms.connect.AccountManager; import org.thoughtcrime.securesms.connect.DcEventCenter; import org.thoughtcrime.securesms.connect.DcHelper; import org.thoughtcrime.securesms.permissions.Permissions; @@ -87,8 +86,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve private TextView providerLink; private @Nullable DcProvider provider; - private CheckBox encryptCheckbox; - private Group advancedGroup; private ImageView advancedIcon; private ProgressDialog progressDialog; @@ -116,8 +113,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve providerLink = findViewById(R.id.provider_link); providerLink.setOnClickListener(l -> onProviderLink()); - encryptCheckbox = findViewById(R.id.encrypt_checkbox); - advancedGroup = findViewById(R.id.advanced_group); advancedIcon = findViewById(R.id.advanced_icon); TextView advancedTextView = findViewById(R.id.advanced_text); @@ -248,10 +243,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve certCheck.setSelection(certCheckFlags); expandAdvanced = expandAdvanced || certCheckFlags != 0; - encryptCheckbox.setHeight(0); - encryptCheckbox.setClickable(false); - encryptCheckbox.setFocusable(false); - if (expandAdvanced) { onAdvancedSettings(); } } else if (getIntent() != null && getIntent().getBundleExtra(ACCOUNT_DATA) != null) { // Companion app might have sent account data @@ -599,35 +590,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve return; } - if (encryptCheckbox.isChecked()) { - AccountManager accountManager = AccountManager.getInstance(); - - if (progressDialog != null) { - progressDialog.dismiss(); - progressDialog = null; - } - - progressDialog = new ProgressDialog(this); - progressDialog.setMessage(getString(R.string.one_moment)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - progressDialog.show(); - - // Prevent the user from disabling the checkbox again, switching to unencrypted account is currently not implemented - encryptCheckbox.setEnabled(false); - Util.runOnBackground(() -> { - DcHelper.getEventCenter(this).removeObservers(this); - accountManager.switchToEncrypted(this); - // Event center changed, register for events again - registerForEvents(); - Util.runOnMain(this::continueLogin); - }); - } else { - continueLogin(); - } - } - - private void continueLogin() { setupConfig(); if (progressDialog != null) { diff --git a/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java b/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java index e977f695e..b141216ea 100644 --- a/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java @@ -181,27 +181,11 @@ public class WelcomeActivity extends BaseActionBarActivity implements DcEventCen } else { final String backupFile = dcContext.imexHasBackup(imexDir.getAbsolutePath()); if (backupFile != null) { - - - View gl = View.inflate(this, R.layout.dialog_with_checkbox, null); - CheckBox encryptCheckbox = gl.findViewById(R.id.dialog_checkbox); - TextView msg = gl.findViewById(R.id.dialog_message); - - // If we'd use both `setMessage()` and `setView()` on the same AlertDialog, on small screens the - // "OK" and "Cancel" buttons would not be show. So, put the message into our custom view: - msg.setText(String.format(getResources().getString(R.string.import_backup_ask), backupFile) ); - encryptCheckbox.setText("Encrypt database (highly experimental, use at your own risk)"); - int[] tintAttr = new int[]{android.R.attr.textColorSecondary}; - TypedArray typedArray = obtainStyledAttributes(tintAttr); - int color = typedArray.getColor(0, Color.GRAY); - typedArray.recycle(); - encryptCheckbox.setTextColor(color); - new AlertDialog.Builder(this) .setTitle(R.string.import_backup_title) - .setView(gl) + .setMessage(String.format(getResources().getString(R.string.import_backup_ask), backupFile)) .setNegativeButton(android.R.string.cancel, null) - .setPositiveButton(android.R.string.ok, (dialog, which) -> startImport(backupFile, null, encryptCheckbox.isChecked())) + .setPositiveButton(android.R.string.ok, (dialog, which) -> startImport(backupFile, null)) .show(); } else { @@ -216,38 +200,10 @@ public class WelcomeActivity extends BaseActionBarActivity implements DcEventCen .execute(); } - private void startImport(@Nullable final String backupFile, final @Nullable Uri backupFileUri, boolean encrypt) + private void startImport(@Nullable final String backupFile, final @Nullable Uri backupFileUri) { notificationController = GenericForegroundService.startForegroundTask(this, getString(R.string.import_backup_title)); - if (encrypt) { - AccountManager accountManager = AccountManager.getInstance(); - - if (progressDialog != null) { - progressDialog.dismiss(); - progressDialog = null; - } - - progressDialog = new ProgressDialog(this); - progressDialog.setMessage(getString(R.string.one_moment)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - progressDialog.show(); - - Util.runOnBackground(() -> { - DcHelper.getEventCenter(this).removeObservers(this); - accountManager.switchToEncrypted(this); - // Event center changed, register for events again - registerForEvents(); - Util.runOnMain(() -> continueStartBackup(backupFile, backupFileUri)); - }); - } else { - continueStartBackup(backupFile, backupFileUri); - } - - } - - private void continueStartBackup(String backupFile, Uri backupFileUri) { if( progressDialog!=null ) { progressDialog.dismiss(); progressDialog = null; @@ -411,7 +367,7 @@ public class WelcomeActivity extends BaseActionBarActivity implements DcEventCen Log.e(TAG, " Can't import null URI"); return; } - startImport(null, uri, false); + startImport(null, uri); } } diff --git a/src/main/java/org/thoughtcrime/securesms/connect/AccountManager.java b/src/main/java/org/thoughtcrime/securesms/connect/AccountManager.java index 7014cc0c3..920715bd8 100644 --- a/src/main/java/org/thoughtcrime/securesms/connect/AccountManager.java +++ b/src/main/java/org/thoughtcrime/securesms/connect/AccountManager.java @@ -139,28 +139,6 @@ public class AccountManager { } } - /** - * Deletes the current account (must be unconfigured) and creates an encrypted account instead. - * @throws IllegalStateException if the currently selected account is already configured. - */ - public void switchToEncrypted(Activity activity) { - Log.i(TAG, "Switching to encrypted account..."); - DcAccounts accounts = DcHelper.getAccounts(activity); - DcContext selectedAccount = accounts.getSelectedAccount(); - if (selectedAccount.isConfigured() == 1) { - throw new IllegalStateException("Can't switch to encrypted account if already configured"); - } - - int selectedAccountId = selectedAccount.getAccountId(); - accounts.addClosedAccount(); - accounts.removeAccount(selectedAccountId); - - DcContext newAccount = accounts.getSelectedAccount(); - DatabaseSecret secret = DatabaseSecretProvider.getOrCreateDatabaseSecret(activity, newAccount.getAccountId()); - newAccount.open(secret.asString()); - resetDcContext(activity); - } - // ui public void showSwitchAccountMenu(Activity activity) { diff --git a/src/main/res/layout/registration_activity.xml b/src/main/res/layout/registration_activity.xml index 66c31e899..eae1b7be8 100644 --- a/src/main/res/layout/registration_activity.xml +++ b/src/main/res/layout/registration_activity.xml @@ -122,7 +122,7 @@ android:layout_height="wrap_content" android:visibility="gone" tools:visibility="visible" - app:constraint_referenced_ids="encrypt_checkbox, inbox, imap_login, imap_server, imap_port, imap_security_label, imap_security, outbox_view_spacer_top, + app:constraint_referenced_ids="inbox, imap_login, imap_server, imap_port, imap_security_label, imap_security, outbox_view_spacer_top, outbox, smtp_login, smtp_password, smtp_server, smtp_port, smtp_security_label, smtp_security, auth_method_label, auth_method, cert_check_label, cert_check, view_log_button, socks5_switch" /> - - + app:layout_constraintTop_toBottomOf="@id/advanced_text" />