diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationSettingsFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationSettingsFragment.java index 2174a2f19..c57b97690 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationSettingsFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationSettingsFragment.java @@ -29,6 +29,10 @@ public class ConversationSettingsFragment extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener { private static final String DM_ENABLE = "pref_key_disappearing_messages"; + private static final String DM_EXPLANATION = + "pref_key_disappearing_messages_explanation"; + private static final String DM_LEARN_MORE = + "pref_key_disappearing_messages_learn_more"; private static final Logger LOG = Logger.getLogger(ConversationSettingsFragment.class.getName()); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/LinkPreference.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/LinkPreference.java new file mode 100644 index 000000000..0ee8ce861 --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/LinkPreference.java @@ -0,0 +1,56 @@ +package org.briarproject.briar.android.conversation; + +import android.content.Context; +import android.text.SpannableStringBuilder; +import android.text.Spanned; +import android.text.style.URLSpan; +import android.util.AttributeSet; +import android.widget.TextView; + +import org.briarproject.briar.R; + +import androidx.preference.Preference; +import androidx.preference.PreferenceViewHolder; + +class LinkPreference extends Preference { + + public LinkPreference(Context context, + AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + init(); + } + + public LinkPreference(Context context, AttributeSet attrs, + int defStyleAttr) { + super(context, attrs, defStyleAttr); + init(); + } + + public LinkPreference(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + public LinkPreference(Context context) { + super(context); + init(); + } + + private void init() { + setLayoutResource( + R.layout.conversation_settings_disappearing_messages_learn_more); + } + + @Override + public void onBindViewHolder(PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + TextView link = (TextView) holder.findViewById(R.id.link); + + SpannableStringBuilder ssb = new SpannableStringBuilder(); + ssb.append(link.getText()); + ssb.setSpan(new URLSpan("#"), 0, ssb.length(), + Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + link.setText(ssb, TextView.BufferType.SPANNABLE); + } + +} diff --git a/briar-android/src/main/res/layout/conversation_settings_disappearing_messages_explanation.xml b/briar-android/src/main/res/layout/conversation_settings_disappearing_messages_explanation.xml new file mode 100644 index 000000000..3148b2786 --- /dev/null +++ b/briar-android/src/main/res/layout/conversation_settings_disappearing_messages_explanation.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/briar-android/src/main/res/layout/conversation_settings_disappearing_messages_learn_more.xml b/briar-android/src/main/res/layout/conversation_settings_disappearing_messages_learn_more.xml new file mode 100644 index 000000000..d0e9d8809 --- /dev/null +++ b/briar-android/src/main/res/layout/conversation_settings_disappearing_messages_learn_more.xml @@ -0,0 +1,20 @@ + + + + + + \ No newline at end of file diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index 417fc5b8e..1bbb7810b 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -548,9 +548,18 @@ Cannot load ringtone - Disappearing messages - Let messages disappear automatically - Messages in this conversation will automatically disappear 7 days after being received. This applies to both messages you send to your contact and messages your contact sends to you. + Self-destructing messages + You can configure disappearing messages here. + Turning on this setting will make new messages to this conversation automatically disappear 7 days after being received. + This applies to messages you send to your contact as well as messages your contact sends to you. + Your contact can also change this setting for the both of you. + Messages that will disappear are marked with a bomb icon. + Keep in mind that recipients can still make analogue copies of the messages you sent. + If you change this setting, it will apply to your messages immediately and to messages of + your contact once they receive any message from you after changing the setting. + Learn more + Disappearing messages + Make future messages in this conversation automatically disappear 7\u00A0days after being received. Feedback diff --git a/briar-android/src/main/res/xml/conversation_settings.xml b/briar-android/src/main/res/xml/conversation_settings.xml index bd706d40f..59e6c800f 100644 --- a/briar-android/src/main/res/xml/conversation_settings.xml +++ b/briar-android/src/main/res/xml/conversation_settings.xml @@ -6,6 +6,14 @@ android:layout="@layout/preferences_category" android:title="@string/disappearing_messages_cat_title"> + + + +