From 5752e436e029dd7a755db71d6808f198c97a9a0f Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Mon, 4 May 2020 13:55:34 +0200 Subject: [PATCH 1/4] adapt to new api --- src/com/b44t/messenger/DcContext.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/com/b44t/messenger/DcContext.java b/src/com/b44t/messenger/DcContext.java index 4848b9ae5..a7b77d125 100644 --- a/src/com/b44t/messenger/DcContext.java +++ b/src/com/b44t/messenger/DcContext.java @@ -66,6 +66,9 @@ public class DcContext { public final static int DC_SHOW_EMAILS_ACCEPTED_CONTACTS = 1; public final static int DC_SHOW_EMAILS_ALL = 2; + public final static int DC_MEDIA_QUALITY_BALANCED = 0; + public final static int DC_MEDIA_QUALITY_WORSE = 1; + public final static int DC_EMPTY_MVBOX = 0x01; public final static int DC_EMPTY_INBOX = 0x02; From 8659a23a11ab5dfac51c0365de75e4b7a7fb4ece Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Mon, 4 May 2020 15:21:34 +0200 Subject: [PATCH 2/4] use new media_quality core-config-value --- .../preferences/ChatsPreferenceFragment.java | 20 +++++++++++-------- .../thoughtcrime/securesms/util/Prefs.java | 9 +++------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/org/thoughtcrime/securesms/preferences/ChatsPreferenceFragment.java b/src/org/thoughtcrime/securesms/preferences/ChatsPreferenceFragment.java index 3f2514f8d..e9ca15fbe 100644 --- a/src/org/thoughtcrime/securesms/preferences/ChatsPreferenceFragment.java +++ b/src/org/thoughtcrime/securesms/preferences/ChatsPreferenceFragment.java @@ -8,12 +8,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.preference.CheckBoxPreference; -import androidx.preference.EditTextPreference; import androidx.preference.ListPreference; import androidx.preference.Preference; -import android.text.Html; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.Toast; @@ -25,7 +22,6 @@ import org.thoughtcrime.securesms.BlockedAndShareContactsActivity; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.connect.DcHelper; import org.thoughtcrime.securesms.permissions.Permissions; -import org.thoughtcrime.securesms.util.Prefs; import org.thoughtcrime.securesms.util.ScreenLockUtil; import org.thoughtcrime.securesms.util.Util; @@ -37,6 +33,7 @@ public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment { private ListPreference showEmails; + private ListPreference mediaQuality; private CheckBoxPreference readReceiptsCheckbox; private ListPreference autoDelDevice; @@ -46,8 +43,12 @@ public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment { public void onCreate(Bundle paramBundle) { super.onCreate(paramBundle); - findPreference("pref_compression") - .setOnPreferenceChangeListener(new ListSummaryListener()); + mediaQuality = (ListPreference) this.findPreference("pref_compression"); + mediaQuality.setOnPreferenceChangeListener((preference, newValue) -> { + updateListSummary(preference, newValue); + dcContext.setConfigInt("media_quality", Util.objectToInt(newValue)); + return true; + }); showEmails = (ListPreference) this.findPreference("pref_show_emails"); showEmails.setOnPreferenceChangeListener((preference, newValue) -> { @@ -81,11 +82,14 @@ public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment { super.onResume(); ((ApplicationPreferencesActivity)getActivity()).getSupportActionBar().setTitle(R.string.pref_chats_and_media); - initializeListSummary((ListPreference) findPreference("pref_compression")); - String value = Integer.toString(dcContext.getConfigInt("show_emails")); showEmails.setValue(value); updateListSummary(showEmails, value); + + value = Integer.toString(dcContext.getConfigInt("media_quality")); + mediaQuality.setValue(value); + updateListSummary(mediaQuality, value); + readReceiptsCheckbox.setChecked(0 != dcContext.getConfigInt("mdns_enabled")); initAutodelFromCore(); diff --git a/src/org/thoughtcrime/securesms/util/Prefs.java b/src/org/thoughtcrime/securesms/util/Prefs.java index ed5822247..483961f5f 100644 --- a/src/org/thoughtcrime/securesms/util/Prefs.java +++ b/src/org/thoughtcrime/securesms/util/Prefs.java @@ -12,8 +12,10 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.app.NotificationCompat; +import com.b44t.messenger.DcContext; import com.mapbox.mapboxsdk.geometry.LatLng; +import org.thoughtcrime.securesms.connect.DcHelper; import org.thoughtcrime.securesms.preferences.widgets.NotificationPrivacyPreference; import java.util.ArrayList; @@ -173,12 +175,7 @@ public class Prefs { } public static boolean isHardCompressionEnabled(Context context) { - try { - return getStringPreference(context, "pref_compression", "0").equals("1"); - } - catch(Exception e) { - return false; - } + return DcHelper.getContext(context).getConfigInt("media_quality") == DcContext.DC_MEDIA_QUALITY_WORSE; } public static boolean isLocationStreamingEnabled(Context context) { From eee1f35b997b57b82471dbc75a7b9c16e0f834ca Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Mon, 4 May 2020 15:39:24 +0200 Subject: [PATCH 3/4] migrate pref_compression to media_quality --- .../connect/ApplicationDcContext.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java b/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java index 37ef0b0f4..1c22175e2 100644 --- a/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java +++ b/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java @@ -1,9 +1,9 @@ package org.thoughtcrime.securesms.connect; -import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; @@ -13,6 +13,8 @@ import android.os.PowerManager; import androidx.annotation.IntDef; import androidx.annotation.NonNull; import androidx.core.content.FileProvider; + +import android.preference.PreferenceManager; import android.util.Log; import android.webkit.MimeTypeMap; import android.widget.Toast; @@ -55,6 +57,22 @@ public class ApplicationDcContext extends DcContext { File dbfile = AccountManager.getInstance().getSelectedAccount(context); open(dbfile.getAbsolutePath()); + // migration, can be removed after some versions (added 5/2020) + // (this will convert only for one account, but that is fine, multi-account is experimental anyway) + try { + SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); + if(sharedPreferences.contains("pref_compression")) { + if (sharedPreferences.getString("pref_compression", "0").equals("1")) { + setConfigInt("media_quality", DC_MEDIA_QUALITY_WORSE); + } + sharedPreferences.edit().remove("pref_compression").apply(); + } + } + catch(Exception e) { + Log.e(TAG, "cannot migrate pref_compression"); + } + // /migration + try { PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); From ea0653e89a337faeae449de2f1bb402d777abd07 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Mon, 4 May 2020 18:08:14 +0200 Subject: [PATCH 4/4] use string-constant --- .../thoughtcrime/securesms/connect/ApplicationDcContext.java | 2 +- src/org/thoughtcrime/securesms/connect/DcHelper.java | 1 + .../securesms/preferences/ChatsPreferenceFragment.java | 4 ++-- src/org/thoughtcrime/securesms/util/Prefs.java | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java b/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java index 1c22175e2..ea0cb6478 100644 --- a/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java +++ b/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java @@ -63,7 +63,7 @@ public class ApplicationDcContext extends DcContext { SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); if(sharedPreferences.contains("pref_compression")) { if (sharedPreferences.getString("pref_compression", "0").equals("1")) { - setConfigInt("media_quality", DC_MEDIA_QUALITY_WORSE); + setConfigInt(DcHelper.CONFIG_MEDIA_QUALITY, DC_MEDIA_QUALITY_WORSE); } sharedPreferences.edit().remove("pref_compression").apply(); } diff --git a/src/org/thoughtcrime/securesms/connect/DcHelper.java b/src/org/thoughtcrime/securesms/connect/DcHelper.java index 0fa8e9920..7b8c45a71 100644 --- a/src/org/thoughtcrime/securesms/connect/DcHelper.java +++ b/src/org/thoughtcrime/securesms/connect/DcHelper.java @@ -29,6 +29,7 @@ public class DcHelper { public static final String CONFIG_MVBOX_MOVE = "mvbox_move"; public static final String CONFIG_BCC_SELF = "bcc_self"; public static final String CONFIG_SHOW_EMAILS = "show_emails"; + public static final String CONFIG_MEDIA_QUALITY = "media_quality"; public static ApplicationDcContext getContext(Context context) { return ApplicationContext.getInstance(context).dcContext; diff --git a/src/org/thoughtcrime/securesms/preferences/ChatsPreferenceFragment.java b/src/org/thoughtcrime/securesms/preferences/ChatsPreferenceFragment.java index e9ca15fbe..4415da126 100644 --- a/src/org/thoughtcrime/securesms/preferences/ChatsPreferenceFragment.java +++ b/src/org/thoughtcrime/securesms/preferences/ChatsPreferenceFragment.java @@ -46,7 +46,7 @@ public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment { mediaQuality = (ListPreference) this.findPreference("pref_compression"); mediaQuality.setOnPreferenceChangeListener((preference, newValue) -> { updateListSummary(preference, newValue); - dcContext.setConfigInt("media_quality", Util.objectToInt(newValue)); + dcContext.setConfigInt(DcHelper.CONFIG_MEDIA_QUALITY, Util.objectToInt(newValue)); return true; }); @@ -86,7 +86,7 @@ public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment { showEmails.setValue(value); updateListSummary(showEmails, value); - value = Integer.toString(dcContext.getConfigInt("media_quality")); + value = Integer.toString(dcContext.getConfigInt(DcHelper.CONFIG_MEDIA_QUALITY)); mediaQuality.setValue(value); updateListSummary(mediaQuality, value); diff --git a/src/org/thoughtcrime/securesms/util/Prefs.java b/src/org/thoughtcrime/securesms/util/Prefs.java index 483961f5f..e1c1aa6e9 100644 --- a/src/org/thoughtcrime/securesms/util/Prefs.java +++ b/src/org/thoughtcrime/securesms/util/Prefs.java @@ -175,7 +175,7 @@ public class Prefs { } public static boolean isHardCompressionEnabled(Context context) { - return DcHelper.getContext(context).getConfigInt("media_quality") == DcContext.DC_MEDIA_QUALITY_WORSE; + return DcHelper.getContext(context).getConfigInt(DcHelper.CONFIG_MEDIA_QUALITY) == DcContext.DC_MEDIA_QUALITY_WORSE; } public static boolean isLocationStreamingEnabled(Context context) {