aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel@gultsch.de>2016-01-09 16:17:39 +0100
committerDaniel Gultsch <daniel@gultsch.de>2016-01-09 16:17:39 +0100
commit4ab8fe13dea85e23f856bbe853fbf81af908edea (patch)
treefedba70c6363b0ff228dfd7940da7b29240d812a
parent708d7c5b98e71c5b5b02a2d4c721b70cea0db906 (diff)
let the user decide on whether or not to compress pictures
-rw-r--r--src/main/java/eu/siacs/conversations/services/XmppConnectionService.java10
-rw-r--r--src/main/res/values/arrays.xml12
-rw-r--r--src/main/res/values/strings.xml6
-rw-r--r--src/main/res/xml/preferences.xml26
4 files changed, 41 insertions, 13 deletions
diff --git a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java
index 5c7cceb3..e707fc98 100644
--- a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java
+++ b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java
@@ -414,8 +414,10 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
}
public void attachImageToConversation(final Conversation conversation, final Uri uri, final UiCallback<Message> callback) {
- if (getFileBackend().useImageAsIs(uri)) {
- Log.d(Config.LOGTAG, "using image as is");
+ final String compressPictures = getCompressPicturesPreference();
+ if ("never".equals(compressPictures)
+ || ("auto".equals(compressPictures) && getFileBackend().useImageAsIs(uri))) {
+ Log.d(Config.LOGTAG,conversation.getAccount().getJid().toBareJid()+ ": not compressing picture. sending as file");
attachFileToConversation(conversation, uri, callback);
return;
}
@@ -590,6 +592,10 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
return getPreferences().getBoolean("away_when_screen_off", false);
}
+ private String getCompressPicturesPreference() {
+ return getPreferences().getString("picture_compression", "auto");
+ }
+
private int getTargetPresence() {
if (xaOnSilentMode() && isPhoneSilenced()) {
return Presences.XA;
diff --git a/src/main/res/values/arrays.xml b/src/main/res/values/arrays.xml
index 5be352d1..ca63a0f1 100644
--- a/src/main/res/values/arrays.xml
+++ b/src/main/res/values/arrays.xml
@@ -57,4 +57,16 @@
<item>voice</item>
<item>location</item>
</string-array>
+
+ <string-array name="picture_compression_values">
+ <item>never</item>
+ <item>auto</item>
+ <item>always</item>
+ </string-array>
+
+ <string-array name="picture_compression_entries">
+ <item>@string/never</item>
+ <item>@string/automatically</item>
+ <item>@string/always</item>
+ </string-array>
</resources>
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 049a5dc6..deffa64e 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -287,7 +287,7 @@
<string name="pref_about_conversations_summary">Build and licensing information</string>
<string name="pref_about_message" translatable="false">
Conversations • the very last word in instant messaging.
- \n\nCopyright © 2014-2015 Daniel Gultsch
+ \n\nCopyright © 2014-2016 Daniel Gultsch
\n\nThis program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
@@ -571,4 +571,8 @@
<string name="notify_only_when_highlighted">Notify only when highlighted</string>
<string name="notify_never">Notifications disabled</string>
<string name="notify_paused">Notifications paused</string>
+ <string name="pref_picture_compression">Compress Pictures</string>
+ <string name="pref_picture_compression_summary">Resize and compressed pictures</string>
+ <string name="always">Always</string>
+ <string name="automatically">Automatically</string>
</resources>
diff --git a/src/main/res/xml/preferences.xml b/src/main/res/xml/preferences.xml
index 34fb7c0a..b3afe0c3 100644
--- a/src/main/res/xml/preferences.xml
+++ b/src/main/res/xml/preferences.xml
@@ -22,7 +22,13 @@
android:key="auto_accept_file_size"
android:summary="@string/pref_accept_files_summary"
android:title="@string/pref_accept_files"/>
-
+ <ListPreference
+ android:defaultValue="auto"
+ android:entries="@array/picture_compression_entries"
+ android:entryValues="@array/picture_compression_values"
+ android:key="picture_compression"
+ android:summary="@string/pref_picture_compression_summary"
+ android:title="@string/pref_picture_compression"/>
<CheckBoxPreference
android:defaultValue="true"
android:key="confirm_messages"
@@ -92,8 +98,8 @@
<CheckBoxPreference
android:defaultValue="false"
android:key="use_white_background"
- android:title="@string/pref_use_white_background"
- android:summary="@string/pref_use_white_background_summary"/>
+ android:summary="@string/pref_use_white_background_summary"
+ android:title="@string/pref_use_white_background"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="use_larger_font"
@@ -142,13 +148,13 @@
android:title="@string/pref_remove_trusted_certificates_title"/>
</PreferenceCategory>
<PreferenceCategory
- android:title="@string/pref_connection_options"
- android:key="connection_options">
+ android:key="connection_options"
+ android:title="@string/pref_connection_options">
<CheckBoxPreference
android:defaultValue="false"
android:key="use_tor"
- android:title="@string/pref_use_tor"
- android:summary="@string/pref_use_tor_summary"/>
+ android:summary="@string/pref_use_tor_summary"
+ android:title="@string/pref_use_tor"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/pref_input_options">
<CheckBoxPreference
@@ -186,9 +192,9 @@
android:summary="@string/pref_keep_foreground_service_summary"
android:title="@string/pref_keep_foreground_service"/>
<eu.siacs.conversations.ui.ExportLogsPreference
- android:key="export_logs"
- android:title="@string/pref_export_logs"
- android:summary="@string/pref_export_logs_summary"/>
+ android:key="export_logs"
+ android:summary="@string/pref_export_logs_summary"
+ android:title="@string/pref_export_logs"/>
</PreferenceCategory>
</PreferenceScreen>