mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-17 21:29:54 +01:00
Add clickable links for conversations
This commit is contained in:
@@ -66,6 +66,7 @@ import org.briarproject.briar.android.view.TextAttachmentController.AttachmentLi
|
|||||||
import org.briarproject.briar.android.view.TextInputView;
|
import org.briarproject.briar.android.view.TextInputView;
|
||||||
import org.briarproject.briar.android.view.TextSendController;
|
import org.briarproject.briar.android.view.TextSendController;
|
||||||
import org.briarproject.briar.android.view.TextSendController.SendState;
|
import org.briarproject.briar.android.view.TextSendController.SendState;
|
||||||
|
import org.briarproject.briar.android.widget.LinkDialogFragment;
|
||||||
import org.briarproject.briar.api.android.AndroidNotificationManager;
|
import org.briarproject.briar.api.android.AndroidNotificationManager;
|
||||||
import org.briarproject.briar.api.attachment.AttachmentHeader;
|
import org.briarproject.briar.api.attachment.AttachmentHeader;
|
||||||
import org.briarproject.briar.api.autodelete.event.ConversationMessagesDeletedEvent;
|
import org.briarproject.briar.api.autodelete.event.ConversationMessagesDeletedEvent;
|
||||||
@@ -476,6 +477,12 @@ public class ConversationActivity extends BriarActivity
|
|||||||
actionMode = null;
|
actionMode = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLinkClick(String url) {
|
||||||
|
LinkDialogFragment f = LinkDialogFragment.newInstance(url);
|
||||||
|
f.show(getSupportFragmentManager(), f.getUniqueTag());
|
||||||
|
}
|
||||||
|
|
||||||
private void addSelectionTracker() {
|
private void addSelectionTracker() {
|
||||||
RecyclerView recyclerView = list.getRecyclerView();
|
RecyclerView recyclerView = list.getRecyclerView();
|
||||||
if (recyclerView.getAdapter() != adapter)
|
if (recyclerView.getAdapter() != adapter)
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import static android.view.View.VISIBLE;
|
|||||||
import static org.briarproject.bramble.util.StringUtils.trim;
|
import static org.briarproject.bramble.util.StringUtils.trim;
|
||||||
import static org.briarproject.briar.android.util.UiUtils.formatDate;
|
import static org.briarproject.briar.android.util.UiUtils.formatDate;
|
||||||
import static org.briarproject.briar.android.util.UiUtils.formatDuration;
|
import static org.briarproject.briar.android.util.UiUtils.formatDuration;
|
||||||
|
import static org.briarproject.briar.android.util.UiUtils.makeLinksClickable;
|
||||||
import static org.briarproject.briar.api.autodelete.AutoDeleteConstants.NO_AUTO_DELETE_TIMER;
|
import static org.briarproject.briar.api.autodelete.AutoDeleteConstants.NO_AUTO_DELETE_TIMER;
|
||||||
|
|
||||||
@UiThread
|
@UiThread
|
||||||
@@ -58,6 +59,7 @@ abstract class ConversationItemViewHolder extends ViewHolder {
|
|||||||
|
|
||||||
if (item.getText() != null) {
|
if (item.getText() != null) {
|
||||||
text.setText(trim(item.getText()));
|
text.setText(trim(item.getText()));
|
||||||
|
makeLinksClickable(text, listener::onLinkClick);
|
||||||
}
|
}
|
||||||
|
|
||||||
long timestamp = item.getTime();
|
long timestamp = item.getTime();
|
||||||
|
|||||||
@@ -20,4 +20,6 @@ interface ConversationListener {
|
|||||||
|
|
||||||
void onAutoDeleteTimerNoticeClicked();
|
void onAutoDeleteTimerNoticeClicked();
|
||||||
|
|
||||||
|
void onLinkClick(String url);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,6 +41,8 @@
|
|||||||
android:layout_marginRight="@dimen/message_bubble_padding_sides_inner"
|
android:layout_marginRight="@dimen/message_bubble_padding_sides_inner"
|
||||||
android:layout_marginBottom="@dimen/message_bubble_padding_bottom_inner"
|
android:layout_marginBottom="@dimen/message_bubble_padding_bottom_inner"
|
||||||
android:textColor="?android:attr/textColorPrimary"
|
android:textColor="?android:attr/textColorPrimary"
|
||||||
|
android:textColorLink="@color/briar_text_link"
|
||||||
|
android:autoLink="web"
|
||||||
app:layout_constrainedWidth="true"
|
app:layout_constrainedWidth="true"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/statusLayout"
|
app:layout_constraintBottom_toTopOf="@+id/statusLayout"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|||||||
@@ -49,6 +49,8 @@
|
|||||||
android:layout_marginRight="@dimen/message_bubble_padding_sides_inner"
|
android:layout_marginRight="@dimen/message_bubble_padding_sides_inner"
|
||||||
android:layout_marginBottom="@dimen/message_bubble_padding_bottom_inner"
|
android:layout_marginBottom="@dimen/message_bubble_padding_bottom_inner"
|
||||||
android:textColor="@color/briar_text_primary_inverse"
|
android:textColor="@color/briar_text_primary_inverse"
|
||||||
|
android:textColorLink="@color/briar_text_link_inverse"
|
||||||
|
android:autoLink="web"
|
||||||
app:layout_constrainedWidth="true"
|
app:layout_constrainedWidth="true"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/statusLayout"
|
app:layout_constraintBottom_toTopOf="@+id/statusLayout"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|||||||
@@ -67,6 +67,7 @@
|
|||||||
|
|
||||||
<!-- text colors -->
|
<!-- text colors -->
|
||||||
<color name="briar_text_link">@color/briar_blue_400</color>
|
<color name="briar_text_link">@color/briar_blue_400</color>
|
||||||
|
<color name="briar_text_link_inverse">@android:color/white</color>
|
||||||
<color name="briar_text_primary">#df000000</color>
|
<color name="briar_text_primary">#df000000</color>
|
||||||
<color name="briar_text_primary_inverse">@android:color/white</color>
|
<color name="briar_text_primary_inverse">@android:color/white</color>
|
||||||
<color name="briar_text_secondary_inverse">#b4ffffff</color>
|
<color name="briar_text_secondary_inverse">#b4ffffff</color>
|
||||||
|
|||||||
Reference in New Issue
Block a user