From 7e551ba6b457cce339af9f0bf084e95da3ec9c3b Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 17 Jun 2020 13:42:23 +0200 Subject: [PATCH] Revert "Removed beta setting for ephemeral chat messages feature" This reverts commit 8844c732c1acfdc075b15078e11024e82358454b. --- CHANGELOG.md | 1 - .../linphone/chat/ChatMessagesFragment.java | 4 ++++ .../settings/ChatSettingsFragment.java | 22 +++++++++++++++++++ .../settings/LinphonePreferences.java | 10 +++++++++ app/src/main/res/layout/settings_chat.xml | 6 +++++ 5 files changed, 42 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6fbc2969f..b72f4e980 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,6 @@ Group changes to describe their impact on the project, as follows: ### Added - Forward message between chat rooms -- Ephemeral messages (auto destroy after a given timeout once read) for encrypted chat rooms ### Changed - Files from chat messages are now stored in a private space and will be deleted when the message or room will be deleted diff --git a/app/src/main/java/org/linphone/chat/ChatMessagesFragment.java b/app/src/main/java/org/linphone/chat/ChatMessagesFragment.java index a0ddffd78..962fe10a4 100644 --- a/app/src/main/java/org/linphone/chat/ChatMessagesFragment.java +++ b/app/src/main/java/org/linphone/chat/ChatMessagesFragment.java @@ -1124,6 +1124,10 @@ public class ChatMessagesFragment extends Fragment if (!mChatRoom.hasCapability(ChatRoomCapabilities.Encrypted.toInt())) { builder.removeItem(R.id.chat_room_participants_devices); builder.removeItem(R.id.chat_room_ephemeral_messages); + } else { + if (!LinphonePreferences.instance().isEphemeralMessagesEnabled()) { + builder.removeItem(R.id.chat_room_ephemeral_messages); + } } builder.setCallback( diff --git a/app/src/main/java/org/linphone/settings/ChatSettingsFragment.java b/app/src/main/java/org/linphone/settings/ChatSettingsFragment.java index b00420b7b..fc45c0b44 100644 --- a/app/src/main/java/org/linphone/settings/ChatSettingsFragment.java +++ b/app/src/main/java/org/linphone/settings/ChatSettingsFragment.java @@ -29,7 +29,9 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.Nullable; +import org.linphone.LinphoneManager; import org.linphone.R; +import org.linphone.core.ChatRoom; import org.linphone.core.tools.Log; import org.linphone.mediastream.Version; import org.linphone.settings.widget.BasicSetting; @@ -45,6 +47,7 @@ public class ChatSettingsFragment extends SettingsFragment { private BasicSetting mAndroidNotificationSettings; private ListSetting mAutoDownloadIncomingFilesPolicy; private SwitchSetting mHideEmptyRooms, mHideRemovedProxiesRooms, mMakeDownloadedImagesPublic; + private SwitchSetting mEnableEphemeralBeta; @Nullable @Override @@ -85,6 +88,9 @@ public class ChatSettingsFragment extends SettingsFragment { mHideRemovedProxiesRooms = mRootView.findViewById(R.id.pref_android_app_hide_chat_rooms_from_removed_proxies); + + mEnableEphemeralBeta = + mRootView.findViewById(R.id.pref_android_app_enable_ephemeral_messages_beta); } private void setListeners() { @@ -166,6 +172,19 @@ public class ChatSettingsFragment extends SettingsFragment { LinphonePreferences.instance().setHideRemovedProxiesChatRooms(newValue); } }); + + mEnableEphemeralBeta.setListener( + new SettingListenerBase() { + @Override + public void onBoolValueChanged(boolean newValue) { + LinphonePreferences.instance().enableEphemeralMessages(newValue); + if (!newValue) { + for (ChatRoom room : LinphoneManager.getCore().getChatRooms()) { + room.enableEphemeral(false); + } + } + } + }); } private void updateValues() { @@ -184,6 +203,9 @@ public class ChatSettingsFragment extends SettingsFragment { mHideRemovedProxiesRooms.setChecked( LinphonePreferences.instance().hideRemovedProxiesChatRooms()); + mEnableEphemeralBeta.setChecked( + LinphonePreferences.instance().isEphemeralMessagesEnabled()); + setListeners(); } diff --git a/app/src/main/java/org/linphone/settings/LinphonePreferences.java b/app/src/main/java/org/linphone/settings/LinphonePreferences.java index f26672449..43e611e33 100644 --- a/app/src/main/java/org/linphone/settings/LinphonePreferences.java +++ b/app/src/main/java/org/linphone/settings/LinphonePreferences.java @@ -1312,4 +1312,14 @@ public class LinphonePreferences { if (getConfig() == null) return; getConfig().setBool("misc", "hide_chat_rooms_from_removed_proxies", hide); } + + public void enableEphemeralMessages(boolean enable) { + if (getConfig() == null) return; + getConfig().setBool("app", "ephemeral", enable); + } + + public boolean isEphemeralMessagesEnabled() { + if (getConfig() == null) return true; + return getConfig().getBool("app", "ephemeral", false); + } } diff --git a/app/src/main/res/layout/settings_chat.xml b/app/src/main/res/layout/settings_chat.xml index 4097769c1..e9c213a71 100644 --- a/app/src/main/res/layout/settings_chat.xml +++ b/app/src/main/res/layout/settings_chat.xml @@ -60,6 +60,12 @@ linphone:title="@string/pref_android_app_hide_chat_rooms_from_removed_proxies_title" linphone:subtitle="@string/pref_android_app_hide_chat_rooms_from_removed_proxies_desc" /> + + \ No newline at end of file