From 22394cfaf07d32e803bbd8c1688f514c71cd0bba Mon Sep 17 00:00:00 2001 From: steckbrief Date: Mon, 18 Apr 2016 09:11:58 +0200 Subject: Related to FS#199: Removed unnecessary differentiation between a conversation with the own account --- .../thedevstack/conversationsplus/entities/Conversation.java | 12 ------------ .../conversationsplus/ui/ConversationActivity.java | 1 - .../conversationsplus/ui/ConversationFragment.java | 4 +--- 3 files changed, 1 insertion(+), 16 deletions(-) diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/Conversation.java b/src/main/java/de/thedevstack/conversationsplus/entities/Conversation.java index b2bf1b09..9e9366d7 100644 --- a/src/main/java/de/thedevstack/conversationsplus/entities/Conversation.java +++ b/src/main/java/de/thedevstack/conversationsplus/entities/Conversation.java @@ -317,18 +317,6 @@ public class Conversation extends AbstractEntity implements Blockable { setAttribute(ATTRIBUTE_CRYPTO_TARGETS, acceptedTargets); } - public void setCorrectingMessage(Message correctingMessage) { - this.correctingMessage = correctingMessage; - } - - public Message getCorrectingMessage() { - return this.correctingMessage; - } - - public boolean withSelf() { - return getContact().isSelf(); - } - public interface OnMessageFound { void onMessageFound(final Message message); } diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/ConversationActivity.java b/src/main/java/de/thedevstack/conversationsplus/ui/ConversationActivity.java index cf0d05de..301ba563 100644 --- a/src/main/java/de/thedevstack/conversationsplus/ui/ConversationActivity.java +++ b/src/main/java/de/thedevstack/conversationsplus/ui/ConversationActivity.java @@ -422,7 +422,6 @@ public class ConversationActivity extends XmppActivity menuInviteContact.setVisible(getSelectedConversation().getMucOptions().canInvite()); menuSecure.setVisible((Config.supportOpenPgp() || Config.supportOmemo()) && Config.multipleEncryptionChoices()); //only if pgp is supported we have a choice } else { - menuContactDetails.setVisible(!this.getSelectedConversation().withSelf()); menuMucDetails.setVisible(false); menuSecure.setVisible(Config.multipleEncryptionChoices()); } diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/ConversationFragment.java b/src/main/java/de/thedevstack/conversationsplus/ui/ConversationFragment.java index efab28c6..4ae88a5e 100644 --- a/src/main/java/de/thedevstack/conversationsplus/ui/ConversationFragment.java +++ b/src/main/java/de/thedevstack/conversationsplus/ui/ConversationFragment.java @@ -466,9 +466,7 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa highlightInConference(user); } } else { - if (!message.getContact().isSelf()) { - activity.switchToContactDetails(message.getContact(), message.getFingerprint()); - } + activity.switchToContactDetails(message.getContact(), message.getFingerprint()); } } else { Account account = message.getConversation().getAccount(); -- cgit v1.2.3 From 073813d192067a2b91c50d2108a0cb98fc865ab4 Mon Sep 17 00:00:00 2001 From: steckbrief Date: Mon, 18 Apr 2016 09:38:55 +0200 Subject: Related to FS#199: Removed unnecessary build configuration variable to hide disable button on foreground service notification --- src/main/java/de/thedevstack/conversationsplus/Config.java | 1 - .../conversationsplus/services/NotificationService.java | 8 +++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/thedevstack/conversationsplus/Config.java b/src/main/java/de/thedevstack/conversationsplus/Config.java index b77489e9..45347648 100644 --- a/src/main/java/de/thedevstack/conversationsplus/Config.java +++ b/src/main/java/de/thedevstack/conversationsplus/Config.java @@ -47,7 +47,6 @@ public final class Config { public static final boolean ALLOW_NON_TLS_CONNECTIONS = false; //very dangerous. you should have a good reason to set this to true public static final boolean HIDE_MESSAGE_TEXT_IN_NOTIFICATION = false; public static final boolean SHOW_CONNECTED_ACCOUNTS = false; //show number of connected accounts in foreground notification - public static final boolean SHOW_DISABLE_FOREGROUND = true; //if set to true the foreground notification has a button to disable it public static final boolean LEGACY_NAMESPACE_HTTP_UPLOAD = false; diff --git a/src/main/java/de/thedevstack/conversationsplus/services/NotificationService.java b/src/main/java/de/thedevstack/conversationsplus/services/NotificationService.java index b06dd95c..a3142df4 100644 --- a/src/main/java/de/thedevstack/conversationsplus/services/NotificationService.java +++ b/src/main/java/de/thedevstack/conversationsplus/services/NotificationService.java @@ -522,11 +522,9 @@ public class NotificationService { cancelIcon = R.drawable.ic_action_cancel; } mBuilder.setSmallIcon(R.drawable.ic_link_white_24dp); - if (Config.SHOW_DISABLE_FOREGROUND) { - mBuilder.addAction(cancelIcon, - mXmppConnectionService.getString(R.string.disable_foreground_service), - createDisableForeground()); - } + mBuilder.addAction(cancelIcon, + mXmppConnectionService.getString(R.string.disable_foreground_service), + createDisableForeground()); return mBuilder.build(); } -- cgit v1.2.3 From 2e063d8696b7a5e798a4a4d614ee522fbed12124 Mon Sep 17 00:00:00 2001 From: steckbrief Date: Mon, 18 Apr 2016 15:07:15 +0200 Subject: Related to FS#199: fixed merge hickups (message correction setting removed, key for other expert settings readded) --- src/main/res/values/strings.xml | 2 -- src/main/res/xml/preferences.xml | 7 +------ 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 8ead4363..b6aa8899 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -295,8 +295,6 @@ Security Force end-to-end encryption Always send messages encrypted (except for conferences) - Allow message correction - Allow your contacts to retroactively edit their messages Don’t save encrypted messages Warning: This could lead to message loss Expert settings diff --git a/src/main/res/xml/preferences.xml b/src/main/res/xml/preferences.xml index bd5d3ebb..44b66ab7 100644 --- a/src/main/res/xml/preferences.xml +++ b/src/main/res/xml/preferences.xml @@ -199,11 +199,6 @@ android:key="remove_trusted_certificates" android:summary="@string/pref_remove_trusted_certificates_summary" android:title="@string/pref_remove_trusted_certificates_title"/> - - + Date: Mon, 18 Apr 2016 16:51:50 +0200 Subject: Implements FS#137: build flavors moved Config.java parameters to a flavorable configuration file --- build.gradle | 1 + configuration.gradle | 51 +++++++++++++ .../de/thedevstack/conversationsplus/Config.java | 85 +++++++++------------- .../thedevstack/conversationsplus/utils/Xmlns.java | 2 +- 4 files changed, 89 insertions(+), 50 deletions(-) create mode 100644 configuration.gradle diff --git a/build.gradle b/build.gradle index b83cf66c..de4d418e 100644 --- a/build.gradle +++ b/build.gradle @@ -73,6 +73,7 @@ android { versionCode 9 versionName "0.0.8" archivesBaseName += "-$versionName" + apply from: 'configuration.gradle' } dexOptions { diff --git a/configuration.gradle b/configuration.gradle new file mode 100644 index 00000000..fbb02b6e --- /dev/null +++ b/configuration.gradle @@ -0,0 +1,51 @@ + +apply plugin: 'com.android.application' + + +android { + + productFlavors { + free { + buildConfigField 'String', 'LOGTAG', '"conversationsplus"' // JUST AS EXAMPLE + } + } + + defaultConfig { + buildConfigField 'String', 'LOGTAG', '"conversationsplus"' + buildConfigField 'String', 'LOCKED_IN_DOMAIN', 'null' // only allow account creation for this domain + buildConfigField 'String', 'LOCKED_IN_DOMAIN_CONFERENCES', 'null' // only allow conference creation for this domain + buildConfigField 'boolean', 'CONTACTS_CONFERENCES_LOCKED_TO_DOMAIN', 'false' // only add contacts and conferences for own domains + buildConfigField 'boolean', 'ACCOUNT_SETTINGS_LOCKED', 'false' // set to true to disallow account and settings editing + buildConfigField 'boolean', 'DISALLOW_REGISTRATION_IN_UI', 'false' // hide the register checkbox + buildConfigField 'boolean', 'ALLOW_NON_TLS_CONNECTIONS', 'false' // very dangerous. you should have a good reason to set this to true + buildConfigField 'boolean', 'HIDE_MESSAGE_TEXT_IN_NOTIFICATION', 'false' // + buildConfigField 'boolean', 'SHOW_CONNECTED_ACCOUNTS_IN_FOREGROUND_NOTIFICATION', 'false' // show number of connected accounts in foreground notification + buildConfigField 'int', 'PING_MAX_INTERVAL', '300' // maximum ping interval in seconds + buildConfigField 'int', 'PING_MIN_INTERVAL', '30' // minimum ping interval in seconds + buildConfigField 'int', 'PING_TIMEOUT', '15' // ping timeout in seconds + buildConfigField 'int', 'SOCKET_TIMEOUT', '15' // socket timeout in seconds + buildConfigField 'int', 'CONNECT_TIMEOUT', '90' // connect timeout in seconds + buildConfigField 'int', 'CONNECT_DISCO_TIMEOUT', '20' // disco timeout while connecting in seconds + buildConfigField 'int', 'CARBON_GRACE_PERIOD', '90' // carbon grace period in seconds + buildConfigField 'int', 'MINI_GRACE_PERIOD', '750' // whatever ??? + buildConfigField 'boolean', 'CLOSE_TCP_WHEN_SWITCHING_TO_BACKGROUND', 'false' // + buildConfigField 'int', 'AVATAR_SIZE', '192' // height and width of an avatar + buildConfigField 'int', 'PAGE_SIZE', '50' // maximum messages per page + buildConfigField 'int', 'MAX_NUM_PAGES', '3' // maximum pages + buildConfigField 'int', 'REFRESH_UI_INTERVAL', '500' // Refresh UI interval in milliseonds + buildConfigField 'android.graphics.Bitmap.CompressFormat', 'AVATAR_FORMAT', 'android.graphics.Bitmap.CompressFormat.PNG' // Format of an avatar + buildConfigField 'boolean', 'DISABLE_PROXY_LOOKUP', 'false' // disables proxy lookup for JingleConnections - useful to debug ibb + buildConfigField 'boolean', 'DISABLE_HTTP_UPLOAD', 'false' // + buildConfigField 'boolean', 'DISABLE_STRING_PREP', 'false' // setting to true might increase startup performance + buildConfigField 'boolean', 'EXTENDED_SM_LOGGING', 'false' // log stanza counts + buildConfigField 'boolean', 'RESET_ATTEMPT_COUNT_ON_NETWORK_CHANGE', 'true' // setting to true might increase power consumption + buildConfigField 'boolean', 'ENCRYPT_ON_HTTP_UPLOADED', 'false' // + buildConfigField 'boolean', 'REPORT_WRONG_FILESIZE_IN_OTR_JINGLE', 'true' // + buildConfigField 'boolean', 'SHOW_REGENERATE_AXOLOTL_KEYS_BUTTON', 'false' // + buildConfigField 'boolean', 'X509_VERIFICATION_OF_OMEMO_KEYS', 'false' // use x509 certificates to verify OMEMO keys + buildConfigField 'boolean', 'IGNORE_ID_REWRITE_IN_MUC', 'true' // + buildConfigField 'boolean', 'REQUEST_DISCO', 'true' // + buildConfigField 'int', 'MAM_MAX_MESSAGES', '500' // maximum number of messages to load via MAM + buildConfigField 'int', 'TYPING_TIMEOUT', '8' // Typing timeout in seconds + } +} \ No newline at end of file diff --git a/src/main/java/de/thedevstack/conversationsplus/Config.java b/src/main/java/de/thedevstack/conversationsplus/Config.java index 45347648..a6825246 100644 --- a/src/main/java/de/thedevstack/conversationsplus/Config.java +++ b/src/main/java/de/thedevstack/conversationsplus/Config.java @@ -34,75 +34,62 @@ public final class Config { return (ENCRYPTION_MASK & (ENCRYPTION_MASK - 1)) != 0; } - public static final String LOGTAG = "conversations"; + public static final String LOGTAG = BuildConfig.LOGTAG; + public static final String DOMAIN_LOCK = BuildConfig.LOCKED_IN_DOMAIN; //only allow account creation for this domain + public static final String CONFERENCE_DOMAIN_LOCK = BuildConfig.LOCKED_IN_DOMAIN_CONFERENCES; //only allow conference creation for this domain + public static final boolean LOCK_DOMAINS_IN_CONVERSATIONS = BuildConfig.CONTACTS_CONFERENCES_LOCKED_TO_DOMAIN; //only add contacts and conferences for own domains - public static final String DOMAIN_LOCK = null; //only allow account creation for this domain - public static final String CONFERENCE_DOMAIN_LOCK = null; //only allow conference creation for this domain - public static final boolean LOCK_DOMAINS_IN_CONVERSATIONS = false; //only add contacts and conferences for own domains + public static final boolean LOCK_SETTINGS = BuildConfig.ACCOUNT_SETTINGS_LOCKED; //set to true to disallow account and settings editing + public static final boolean DISALLOW_REGISTRATION_IN_UI = BuildConfig.DISALLOW_REGISTRATION_IN_UI; //hide the register checkbox - public static final boolean LOCK_SETTINGS = false; //set to true to disallow account and settings editing - public static final boolean DISALLOW_REGISTRATION_IN_UI = false; //hide the register checkbox + public static final boolean ALLOW_NON_TLS_CONNECTIONS = BuildConfig.ALLOW_NON_TLS_CONNECTIONS; //very dangerous. you should have a good reason to set this to true + public static final boolean HIDE_MESSAGE_TEXT_IN_NOTIFICATION = BuildConfig.HIDE_MESSAGE_TEXT_IN_NOTIFICATION; + public static final boolean SHOW_CONNECTED_ACCOUNTS = BuildConfig.SHOW_CONNECTED_ACCOUNTS_IN_FOREGROUND_NOTIFICATION; //show number of connected accounts in foreground notification - public static final boolean ALLOW_NON_TLS_CONNECTIONS = false; //very dangerous. you should have a good reason to set this to true - public static final boolean HIDE_MESSAGE_TEXT_IN_NOTIFICATION = false; - public static final boolean SHOW_CONNECTED_ACCOUNTS = false; //show number of connected accounts in foreground notification + public static final int PING_MAX_INTERVAL = BuildConfig.PING_MAX_INTERVAL; + public static final int PING_MIN_INTERVAL = BuildConfig.PING_MIN_INTERVAL; + public static final int PING_TIMEOUT = BuildConfig.PING_TIMEOUT; + public static final int SOCKET_TIMEOUT = BuildConfig.SOCKET_TIMEOUT; + public static final int CONNECT_TIMEOUT = BuildConfig.CONNECT_TIMEOUT; + public static final int CONNECT_DISCO_TIMEOUT = BuildConfig.CONNECT_DISCO_TIMEOUT; + public static final int CARBON_GRACE_PERIOD = BuildConfig.CARBON_GRACE_PERIOD; + public static final int MINI_GRACE_PERIOD = BuildConfig.MINI_GRACE_PERIOD; - public static final boolean LEGACY_NAMESPACE_HTTP_UPLOAD = false; + public static final boolean CLOSE_TCP_WHEN_SWITCHING_TO_BACKGROUND = BuildConfig.CLOSE_TCP_WHEN_SWITCHING_TO_BACKGROUND; - public static final int PING_MAX_INTERVAL = 300; - public static final int PING_MIN_INTERVAL = 30; - public static final int PING_TIMEOUT = 15; - public static final int SOCKET_TIMEOUT = 15; - public static final int CONNECT_TIMEOUT = 90; - public static final int CONNECT_DISCO_TIMEOUT = 20; - public static final int CARBON_GRACE_PERIOD = 90; - public static final int MINI_GRACE_PERIOD = 750; + public static final int AVATAR_SIZE = BuildConfig.AVATAR_SIZE; + public static final Bitmap.CompressFormat AVATAR_FORMAT = BuildConfig.AVATAR_FORMAT; - public static final boolean CLOSE_TCP_WHEN_SWITCHING_TO_BACKGROUND = false; + public static final int PAGE_SIZE = BuildConfig.PAGE_SIZE; + public static final int MAX_NUM_PAGES = BuildConfig.MAX_NUM_PAGES; - public static final int AVATAR_SIZE = 192; - public static final Bitmap.CompressFormat AVATAR_FORMAT = Bitmap.CompressFormat.PNG; + public static final int REFRESH_UI_INTERVAL = BuildConfig.REFRESH_UI_INTERVAL; - public static final int IMAGE_SIZE = 1920; - public static final Bitmap.CompressFormat IMAGE_FORMAT = Bitmap.CompressFormat.JPEG; - public static final int IMAGE_QUALITY = 75; - public static final int IMAGE_MAX_SIZE = 524288; //512KiB + public static final boolean DISABLE_PROXY_LOOKUP = BuildConfig.DISABLE_PROXY_LOOKUP; //useful to debug ibb + public static final boolean DISABLE_HTTP_UPLOAD = BuildConfig.DISABLE_HTTP_UPLOAD; + public static final boolean DISABLE_STRING_PREP = BuildConfig.DISABLE_STRING_PREP; // setting to true might increase startup performance + public static final boolean EXTENDED_SM_LOGGING = BuildConfig.EXTENDED_SM_LOGGING; // log stanza counts + public static final boolean RESET_ATTEMPT_COUNT_ON_NETWORK_CHANGE = BuildConfig.RESET_ATTEMPT_COUNT_ON_NETWORK_CHANGE; //setting to true might increase power consumption - public static final int MESSAGE_MERGE_WINDOW = 20; + public static final boolean ENCRYPT_ON_HTTP_UPLOADED = BuildConfig.ENCRYPT_ON_HTTP_UPLOADED; - public static final boolean UTF8_EMOTICONS = false; + public static final boolean REPORT_WRONG_FILESIZE_IN_OTR_JINGLE = BuildConfig.REPORT_WRONG_FILESIZE_IN_OTR_JINGLE; - public static final int PAGE_SIZE = 50; - public static final int MAX_NUM_PAGES = 3; + public static final boolean SHOW_REGENERATE_AXOLOTL_KEYS_BUTTON = BuildConfig.SHOW_REGENERATE_AXOLOTL_KEYS_BUTTON; - public static final int PROGRESS_UI_UPDATE_INTERVAL = 750; - public static final int REFRESH_UI_INTERVAL = 500; + public static final boolean X509_VERIFICATION = BuildConfig.X509_VERIFICATION_OF_OMEMO_KEYS; //use x509 certificates to verify OMEMO keys - public static final boolean DISABLE_PROXY_LOOKUP = false; //useful to debug ibb - public static final boolean DISABLE_HTTP_UPLOAD = false; - public static final boolean DISABLE_STRING_PREP = false; // setting to true might increase startup performance - public static final boolean EXTENDED_SM_LOGGING = false; // log stanza counts - public static final boolean RESET_ATTEMPT_COUNT_ON_NETWORK_CHANGE = true; //setting to true might increase power consumption + public static final boolean IGNORE_ID_REWRITE_IN_MUC = BuildConfig.IGNORE_ID_REWRITE_IN_MUC; - public static final boolean ENCRYPT_ON_HTTP_UPLOADED = false; - - public static final boolean REPORT_WRONG_FILESIZE_IN_OTR_JINGLE = true; - - public static final boolean SHOW_REGENERATE_AXOLOTL_KEYS_BUTTON = false; - - public static final boolean X509_VERIFICATION = false; //use x509 certificates to verify OMEMO keys - - public static final boolean IGNORE_ID_REWRITE_IN_MUC = true; - - public static final boolean REQUEST_DISCO = true; + public static final boolean REQUEST_DISCO = BuildConfig.REQUEST_DISCO; public static final long MILLISECONDS_IN_DAY = 24 * 60 * 60 * 1000; public static final long MAM_MAX_CATCHUP = MILLISECONDS_IN_DAY / 2; - public static final int MAM_MAX_MESSAGES = 500; + public static final int MAM_MAX_MESSAGES = BuildConfig.MAM_MAX_MESSAGES; public static final ChatState DEFAULT_CHATSTATE = ChatState.ACTIVE; - public static final int TYPING_TIMEOUT = 8; + public static final int TYPING_TIMEOUT = BuildConfig.TYPING_TIMEOUT; public static final String ENABLED_CIPHERS[] = { "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/Xmlns.java b/src/main/java/de/thedevstack/conversationsplus/utils/Xmlns.java index f937e35f..35adf6ec 100644 --- a/src/main/java/de/thedevstack/conversationsplus/utils/Xmlns.java +++ b/src/main/java/de/thedevstack/conversationsplus/utils/Xmlns.java @@ -7,5 +7,5 @@ public final class Xmlns { public static final String ROSTER = "jabber:iq:roster"; public static final String REGISTER = "jabber:iq:register"; public static final String BYTE_STREAMS = "http://jabber.org/protocol/bytestreams"; - public static final String HTTP_UPLOAD = Config.LEGACY_NAMESPACE_HTTP_UPLOAD ? "eu:siacs:conversations:http:upload" : "urn:xmpp:http:upload"; + public static final String HTTP_UPLOAD = "urn:xmpp:http:upload"; } -- cgit v1.2.3