remove e2ee_enabled and import/export keys from advanced settings

This commit is contained in:
adbenitez
2025-03-12 16:13:04 +01:00
parent 773913409f
commit 9a67f5b32a
3 changed files with 1 additions and 121 deletions
@@ -61,7 +61,6 @@ public class DcHelper {
public static final String CONFIG_DISPLAY_NAME = "displayname";
public static final String CONFIG_SELF_STATUS = "selfstatus";
public static final String CONFIG_SELF_AVATAR = "selfavatar";
public static final String CONFIG_E2EE_ENABLED = "e2ee_enabled";
public static final String CONFIG_SENTBOX_WATCH = "sentbox_watch";
public static final String CONFIG_MVBOX_MOVE = "mvbox_move";
public static final String CONFIG_ONLY_FETCH_MVBOX = "only_fetch_mvbox";
@@ -3,7 +3,6 @@ package org.thoughtcrime.securesms.preferences;
import static android.app.Activity.RESULT_OK;
import static android.text.InputType.TYPE_TEXT_VARIATION_URI;
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_BCC_SELF;
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_E2EE_ENABLED;
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_MVBOX_MOVE;
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_ONLY_FETCH_MVBOX;
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SENTBOX_WATCH;
@@ -11,13 +10,11 @@ import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SHOW_EMAILS;
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_WEBXDC_REALTIME_ENABLED;
import static org.thoughtcrime.securesms.connect.DcHelper.getRpc;
import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
@@ -32,7 +29,6 @@ import androidx.preference.CheckBoxPreference;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import com.b44t.messenger.DcContext;
import com.b44t.messenger.rpc.RpcException;
import org.thoughtcrime.securesms.ApplicationPreferencesActivity;
@@ -42,12 +38,9 @@ import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.RegistrationActivity;
import org.thoughtcrime.securesms.connect.DcEventCenter;
import org.thoughtcrime.securesms.connect.DcHelper;
import org.thoughtcrime.securesms.mms.AttachmentManager;
import org.thoughtcrime.securesms.permissions.Permissions;
import org.thoughtcrime.securesms.proxy.ProxySettingsActivity;
import org.thoughtcrime.securesms.util.Prefs;
import org.thoughtcrime.securesms.util.ScreenLockUtil;
import org.thoughtcrime.securesms.util.StorageUtil;
import org.thoughtcrime.securesms.util.StreamUtil;
import org.thoughtcrime.securesms.util.Util;
@@ -63,10 +56,8 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment
implements DcEventCenter.DcEventDelegate
{
private static final String TAG = AdvancedPreferenceFragment.class.getSimpleName();
public static final int PICK_SELF_KEYS = 29923;
private ListPreference showEmails;
CheckBoxPreference preferE2eeCheckbox;
CheckBoxPreference sentboxWatchCheckbox;
CheckBoxPreference bccSelfCheckbox;
CheckBoxPreference mvboxMoveCheckbox;
@@ -92,11 +83,6 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment
sendAsm.setOnPreferenceClickListener(new SendAsmListener());
}
preferE2eeCheckbox = (CheckBoxPreference) this.findPreference("pref_prefer_e2ee");
if (preferE2eeCheckbox != null) {
preferE2eeCheckbox.setOnPreferenceChangeListener(new PreferE2eeListener());
}
sentboxWatchCheckbox = (CheckBoxPreference) this.findPreference("pref_sentbox_watch");
if (sentboxWatchCheckbox != null) {
sentboxWatchCheckbox.setOnPreferenceChangeListener((preference, newValue) -> {
@@ -163,11 +149,6 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment
});
}
Preference manageKeys = this.findPreference("pref_manage_keys");
if (manageKeys != null) {
manageKeys.setOnPreferenceClickListener(new ManageKeysListener());
}
Preference screenSecurity = this.findPreference(Prefs.SCREEN_SECURITY_PREF);
if (screenSecurity != null) {
screenSecurity.setOnPreferenceChangeListener(new ScreenShotSecurityListener());
@@ -269,7 +250,6 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment
}
if (dcContext.isChatmail()) {
this.findPreference("pref_category_encryption").setVisible(false);
showSystemContacts.setVisible(false);
sentboxWatchCheckbox.setVisible(false);
bccSelfCheckbox.setVisible(false);
@@ -292,7 +272,6 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment
showEmails.setValue(value);
updateListSummary(showEmails, value);
preferE2eeCheckbox.setChecked(0!=dcContext.getConfigInt(CONFIG_E2EE_ENABLED));
sentboxWatchCheckbox.setChecked(0!=dcContext.getConfigInt(CONFIG_SENTBOX_WATCH));
bccSelfCheckbox.setChecked(0!=dcContext.getConfigInt(CONFIG_BCC_SELF));
mvboxMoveCheckbox.setChecked(0!=dcContext.getConfigInt(CONFIG_MVBOX_MOVE));
@@ -304,24 +283,7 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != RESULT_OK) return;
if (requestCode == REQUEST_CODE_CONFIRM_CREDENTIALS_KEYS) {
manageKeys();
} else if (requestCode == PICK_SELF_KEYS) {
Uri uri = (data != null ? data.getData() : null);
if (uri == null) {
Log.e(TAG, " Can't import null URI");
return;
}
try {
String name = AttachmentManager.getFileName(getContext(), uri);
if (name == null || name.isEmpty()) name = "FILE";
File file = copyToCacheDir(uri);
showImportKeysDialog(file.getAbsolutePath(), name);
} catch (IOException e) {
Log.e(TAG, "Error calling copyToCacheDir()", e);
}
} else if (requestCode == REQUEST_CODE_CONFIRM_CREDENTIALS_ACCOUNT) {
if (resultCode == RESULT_OK && requestCode == REQUEST_CODE_CONFIRM_CREDENTIALS_ACCOUNT) {
openRegistrationActivity();
}
}
@@ -470,76 +432,4 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment
return true;
}
}
private class PreferE2eeListener implements Preference.OnPreferenceChangeListener {
@Override
public boolean onPreferenceChange(@NonNull final Preference preference, Object newValue) {
boolean enabled = (Boolean) newValue;
dcContext.setConfigInt(CONFIG_E2EE_ENABLED, enabled? 1 : 0);
return true;
}
}
/***********************************************************************************************
* Key Import/Export
**********************************************************************************************/
protected void showImportKeysDialog(String imexPath, String pathAsDisplayedToUser) {
new AlertDialog.Builder(requireActivity())
.setTitle(R.string.pref_managekeys_import_secret_keys)
.setMessage(requireActivity().getString(R.string.pref_managekeys_import_explain, pathAsDisplayedToUser))
.setNegativeButton(android.R.string.cancel, null)
.setPositiveButton(android.R.string.ok, (dialogInterface2, i2) -> startImexOne(DcContext.DC_IMEX_IMPORT_SELF_KEYS, imexPath, pathAsDisplayedToUser))
.show();
}
private class ManageKeysListener implements Preference.OnPreferenceClickListener {
@Override
public boolean onPreferenceClick(@NonNull Preference preference) {
boolean result = ScreenLockUtil.applyScreenLock(requireActivity(), getString(R.string.pref_manage_keys), getString(R.string.enter_system_secret_to_continue), REQUEST_CODE_CONFIRM_CREDENTIALS_KEYS);
if (!result) {
manageKeys();
}
return true;
}
}
private void manageKeys() {
Activity activity = requireActivity();
Permissions.with(activity)
.request(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE)
.alwaysGrantOnSdk30()
.ifNecessary()
.withPermanentDenialDialog(getString(R.string.perm_explain_access_to_storage_denied))
.onAllGranted(() -> {
new AlertDialog.Builder(activity)
.setTitle(R.string.pref_managekeys_menu_title)
.setItems(new CharSequence[]{
activity.getString(R.string.pref_managekeys_export_secret_keys),
activity.getString(R.string.pref_managekeys_import_secret_keys)
},
(dialogInterface, i) -> {
if (i==0) {
new AlertDialog.Builder(activity)
.setTitle(R.string.pref_managekeys_export_secret_keys)
.setMessage(activity.getString(R.string.pref_managekeys_export_explain, DcHelper.getImexDir().getAbsolutePath()))
.setNegativeButton(android.R.string.cancel, null)
.setPositiveButton(android.R.string.ok, (dialogInterface2, i2) -> startImexOne(DcContext.DC_IMEX_EXPORT_SELF_KEYS))
.show();
}
else {
if (Build.VERSION.SDK_INT >= 30) {
AttachmentManager.selectMediaType(activity, "*/*", null, PICK_SELF_KEYS, StorageUtil.getDownloadUri());
} else {
String path = DcHelper.getImexDir().getAbsolutePath();
showImportKeysDialog(path, path);
}
}
}
)
.setNegativeButton(R.string.cancel, null)
.setNeutralButton(R.string.learn_more, (d, w) -> DcHelper.openHelp(activity, "#importkey"))
.show();
})
.execute();
}
}
@@ -74,15 +74,6 @@
android:key="pref_category_encryption"
android:title="@string/pref_encryption">
<org.thoughtcrime.securesms.components.SwitchPreferenceCompat
android:defaultValue="true"
android:key="pref_prefer_e2ee"
android:title="@string/autocrypt_prefer_e2ee"/>
<Preference android:key="pref_manage_keys"
android:title="@string/pref_manage_keys"/>
<Preference android:key="pref_send_autocrypt_setup_message"
android:title="@string/autocrypt_send_asm_title"/>