mirror of
https://github.com/ArcaneChat/android.git
synced 2026-07-03 14:05:24 +02:00
Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6efe540310 | |||
| 1843c29b7c | |||
| 653d940242 | |||
| 2f3a730be7 | |||
| 7a2401a3d5 | |||
| 6690add48f | |||
| ace1c99daa | |||
| 125ac5e7b3 | |||
| b3248c9f6d | |||
| 6113195977 | |||
| 4a02d6c73d | |||
| 6fa725e8ff | |||
| efb38db3ef | |||
| 8ef136d6b2 | |||
| 3412dc8a0f | |||
| 6cb1c0fad4 | |||
| bfb1fc0281 | |||
| 1ae69feb80 | |||
| 19fac45062 | |||
| fd8311cfc9 | |||
| 973e278d71 | |||
| 95f09a67f5 | |||
| 78ad04bd7b | |||
| 59435e8975 | |||
| bc94eba1da | |||
| 6c9d1592f8 | |||
| 56b925f600 |
@@ -54,13 +54,16 @@ jobs:
|
||||
echo "DC_RELEASE_STORE_PASSWORD=${{ secrets.KEY_STORE_PASSWORD }}" >> ~/.gradle/gradle.properties
|
||||
echo "DC_RELEASE_KEY_ALIAS=${{ secrets.ALIAS }}" >> ~/.gradle/gradle.properties
|
||||
echo "DC_RELEASE_KEY_PASSWORD=${{ secrets.KEY_PASSWORD }}" >> ~/.gradle/gradle.properties
|
||||
./gradlew --no-daemon assembleFossRelease
|
||||
./gradlew assembleFossRelease
|
||||
rm build/outputs/apk/foss/release/*universal*
|
||||
./gradlew assembleGplayRelease
|
||||
mv build/outputs/apk/gplay/release/*universal* build/outputs/apk/foss/release/ArcaneChat-gplay.apk
|
||||
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
body: "If you don't know what APK file to download for your phone, download the one that has 'universal' in its name, it should work for all phones"
|
||||
body: "Auto-generated release"
|
||||
prerelease: ${{ contains(github.event.ref, '-beta') }}
|
||||
fail_on_unmatched_files: true
|
||||
files: build/outputs/apk/foss/release/*.apk
|
||||
|
||||
+2
-2
@@ -33,8 +33,8 @@ android {
|
||||
useLibrary 'org.apache.http.legacy'
|
||||
|
||||
defaultConfig {
|
||||
versionCode 30000688
|
||||
versionName "1.46.16"
|
||||
versionCode 30000690
|
||||
versionName "1.46.18"
|
||||
|
||||
applicationId "chat.delta.lite"
|
||||
multiDexEnabled true
|
||||
|
||||
+1
-1
Submodule jni/deltachat-core-rust updated: 5221e6af3f...17bddd60a8
+1
-2
@@ -51,8 +51,7 @@ if test -z "$ANDROID_NDK_ROOT"; then
|
||||
fi
|
||||
|
||||
# for reproducible build:
|
||||
ROOT_DIR="$(realpath $(dirname $(dirname "$0")))"
|
||||
export RUSTFLAGS="-C link-args=-Wl,--build-id=none --remap-path-prefix=$HOME/.cargo= --remap-path-prefix=$ROOT_DIR="
|
||||
export RUSTFLAGS="-C link-args=-Wl,--build-id=none --remap-path-prefix=$HOME/.cargo= --remap-path-prefix=$(realpath $(dirname $(dirname "$0")))="
|
||||
export SOURCE_DATE_EPOCH=1
|
||||
export CARGO_TARGET_DIR=/tmp/arcanechat-build
|
||||
# always use the same path to NDK:
|
||||
|
||||
@@ -1056,18 +1056,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if (action == ACTION_SEND_OUT && quote.isPresent() && EmojiProvider.getInstance(this).maybeEmoji(body)){
|
||||
int quotedMsg = quote.get().getQuotedMsg().getId();
|
||||
try {
|
||||
rpc.sendReaction(dcContext.getAccountId(), quotedMsg, body.equals(getSelfReaction(quotedMsg))? "" : body);
|
||||
future.set(chatId);
|
||||
return future;
|
||||
} catch (RpcException e) {
|
||||
e.printStackTrace();
|
||||
msg = new DcMsg(dcContext, DcMsg.DC_MSG_TEXT);
|
||||
msg.setText(body);
|
||||
}
|
||||
}
|
||||
else if (!body.isEmpty()){
|
||||
msg = new DcMsg(dcContext, DcMsg.DC_MSG_TEXT);
|
||||
msg.setText(body);
|
||||
|
||||
@@ -186,7 +186,7 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
|
||||
|
||||
TooltipCompat.setTooltipText(selfAvatar, getText(R.string.switch_account));
|
||||
selfAvatar.setOnClickListener(v -> AccountManager.getInstance().showSwitchAccountMenu(this));
|
||||
title.setOnClickListener(v -> {
|
||||
findViewById(R.id.avatar_and_title).setOnClickListener(v -> {
|
||||
if (!isRelayingMessageContent(this)) {
|
||||
AccountManager.getInstance().showSwitchAccountMenu(this);
|
||||
}
|
||||
@@ -460,10 +460,10 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
|
||||
startActivity(new Intent(this, ProfileActivity.class));
|
||||
return true;
|
||||
case R.id.menu_webxdc_apps_store:
|
||||
handleShowBot("xstore@testrun.org", "OPENPGP4FPR:37DC2B704A2AE2F6A96235CE0C3A0EBCA4F5801D#a=xstore%40testrun.org&n=&i=-1IGtynaivZ&s=JqHsvvcDmnW");
|
||||
handleShowBot("juegos@buzon.uy", "OPENPGP4FPR:d3d403a734be71fe9293a00311fef80dbe5dbc89#a=juegos%40buzon.uy&n=&i=WQZY-8FODS3&s=ZQBkaclFzao");
|
||||
return true;
|
||||
case R.id.menu_public_bots:
|
||||
handleShowBot("publicbots@testrun.org", "OPENPGP4FPR:4DB8117591B27184A903FF7E9F469E00D40E13E7#a=publicbots%40testrun.org&n=Public%20Bots&i=zSuQpFtBa_Q&s=weLMu1-o1o1");
|
||||
handleShowBot("puente@buzon.uy", "OPENPGP4FPR:4B41E5AFAF78A0C71DB56138D5BEFED00A45F97A#a=puente%40buzon.uy&n=Public%20Bots&i=ZC_oaJtuvJP&s=5SE96rRovsK");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.thoughtcrime.securesms.accounts;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@@ -11,7 +10,6 @@ import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.b44t.messenger.DcAccounts;
|
||||
import com.b44t.messenger.DcContact;
|
||||
import com.b44t.messenger.DcContext;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
@@ -92,7 +90,7 @@ public class AccountSelectionListAdapter extends RecyclerView.Adapter
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
|
||||
int id = accountList[i];
|
||||
DcContext dcContext = (id == DcContact.DC_CONTACT_ID_ADD_ACCOUNT)? null : accounts.getAccount(id);
|
||||
DcContext dcContext = accounts.getAccount(id);
|
||||
|
||||
ViewHolder holder = (ViewHolder) viewHolder;
|
||||
holder.unbind(glideRequests);
|
||||
|
||||
@@ -100,11 +100,7 @@ public class AccountSelectionListFragment extends DialogFragment implements DcEv
|
||||
int accountId = listItem.getAccountId();
|
||||
DcAccounts dcAccounts = DcHelper.getAccounts(getActivity());
|
||||
|
||||
if (accountId == dcAccounts.getSelectedAccount().getAccountId()) {
|
||||
menu.findItem(R.id.delete).setVisible(false);
|
||||
} else {
|
||||
Util.redMenuItem(menu, R.id.delete);
|
||||
}
|
||||
Util.redMenuItem(menu, R.id.delete);
|
||||
|
||||
if (dcAccounts.getAccount(accountId).isMuted()) {
|
||||
menu.findItem(R.id.menu_mute_notifications).setTitle(R.string.menu_unmute);
|
||||
@@ -143,9 +139,15 @@ public class AccountSelectionListFragment extends DialogFragment implements DcEv
|
||||
.setMessage(R.string.forget_login_confirmation_desktop)
|
||||
.setNegativeButton(R.string.cancel, (d, which) -> AccountManager.getInstance().showSwitchAccountMenu(activity))
|
||||
.setPositiveButton(R.string.delete, (d2, which2) -> {
|
||||
boolean selected = accountId == accounts.getSelectedAccount().getAccountId();
|
||||
DcHelper.getNotificationCenter(activity).removeAllNotifiations(accountId);
|
||||
accounts.removeAccount(accountId);
|
||||
AccountManager.getInstance().showSwitchAccountMenu(activity);
|
||||
if (selected) {
|
||||
DcContext selAcc = accounts.getSelectedAccount();
|
||||
AccountManager.getInstance().switchAccountAndStartActivity(activity, selAcc.isOk()? selAcc.getAccountId() : 0);
|
||||
} else {
|
||||
AccountManager.getInstance().showSwitchAccountMenu(activity);
|
||||
}
|
||||
})
|
||||
.show();
|
||||
Util.redPositiveButton(dialog);
|
||||
|
||||
@@ -68,15 +68,24 @@ public class AccountSelectionListItem extends LinearLayout {
|
||||
String name;
|
||||
String addr = null;
|
||||
int unreadCount = 0;
|
||||
boolean isMuted = dcContext != null && dcContext.isMuted();
|
||||
boolean isMuted = dcContext.isMuted();
|
||||
|
||||
Recipient recipient;
|
||||
if (accountId != DcContact.DC_CONTACT_ID_ADD_ACCOUNT) {
|
||||
if (accountId == DcContact.DC_CONTACT_ID_ADD_ACCOUNT) {
|
||||
name = getContext().getString(R.string.add_account);
|
||||
enableSwitch.setVisibility(View.INVISIBLE);
|
||||
recipient = null;
|
||||
this.contactPhotoImage.setSeenRecently(false); // hide connectivity dot
|
||||
} else {
|
||||
self = dcContext.getContact(DcContact.DC_CONTACT_ID_SELF);
|
||||
addr = dcContext.isCommunity()? getContext().getString(R.string.community) : self.getAddr();
|
||||
name = dcContext.getConfig("displayname");
|
||||
if (TextUtils.isEmpty(name)) {
|
||||
name = addr;
|
||||
name = self.getAddr();
|
||||
}
|
||||
if (dcContext.isCommunity()) {
|
||||
addr = getContext().getString(R.string.community);
|
||||
} else if (!dcContext.isChatmail()) {
|
||||
addr = self.getAddr();
|
||||
}
|
||||
unreadCount = dcContext.getFreshMsgs().length;
|
||||
|
||||
@@ -84,17 +93,12 @@ public class AccountSelectionListItem extends LinearLayout {
|
||||
enableSwitch.setVisibility(View.VISIBLE);
|
||||
recipient = new Recipient(getContext(), self, name);
|
||||
this.contactPhotoImage.setConnectivity(dcContext.getConnectivity());
|
||||
} else {
|
||||
name = getContext().getString(R.string.add_account);
|
||||
enableSwitch.setVisibility(View.INVISIBLE);
|
||||
recipient = null;
|
||||
this.contactPhotoImage.setSeenRecently(false); // hide connectivity dot
|
||||
}
|
||||
this.contactPhotoImage.setAvatar(glideRequests, recipient, false);
|
||||
|
||||
setSelected(selected);
|
||||
nameView.setCompoundDrawablesWithIntrinsicBounds(isMuted? R.drawable.ic_volume_off_grey600_18dp : 0, 0, 0, 0);
|
||||
|
||||
setSelected(selected);
|
||||
if (selected) {
|
||||
addrView.setTypeface(null, Typeface.BOLD);
|
||||
nameView.setTypeface(null, Typeface.BOLD);
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="44"
|
||||
android:viewportHeight="44">
|
||||
<group android:scaleX="0.43"
|
||||
android:scaleY="0.43"
|
||||
android:translateX="13.2"
|
||||
android:translateY="13.2">
|
||||
<path
|
||||
android:pathData="M22,0.002C9.852,0.149 0,10.127 0,22.275 0,34.423 9.852,44.146 22,43.998 34.851,41.825 30.778,38.561 43.633,43.485 36.973,31.766 43.857,30.986 44,21.725 44,9.577 34.148,-0.146 22,0.002ZM21.853,4.515c2.535,0 4.766,0.33 6.648,1.027 1.247,0.457 2.032,1.04 2.461,1.725 0.008,0.006 0.029,-0.006 0.037,0 0.736,0.564 1.102,1.217 1.102,1.982 -0,0.589 -0.237,1.08 -0.698,1.468 -0.461,0.387 -0.965,0.55 -1.579,0.55 -0.883,0 -1.931,-0.509 -3.122,-1.578C25.491,8.604 24.461,7.848 23.616,7.414 22.79,6.965 21.828,6.717 20.715,6.717c-1.421,0 -2.604,0.259 -3.526,0.771 -0.903,0.511 -1.359,1.155 -1.359,1.945 -0,0.534 0.234,1.019 0.624,1.504 0.865,0.678 2.652,1.796 5.509,3.376 3.322,1.844 5.688,3.255 7.052,4.293 0.648,0.487 1.229,1.029 1.763,1.615 0.036,0.039 0.075,0.071 0.11,0.11 0.013,0.012 0.024,0.025 0.037,0.037 0.865,0.826 1.591,1.771 2.204,2.825 0.864,1.487 1.322,3.076 1.322,4.734 -0,2.913 -1.303,5.475 -3.856,7.706 -2.535,2.216 -5.489,3.339 -8.888,3.339 -3.092,-0 -5.692,-0.897 -7.823,-2.679 -0.382,-0.32 -0.715,-0.668 -1.028,-1.027 -1.962,-1.756 -2.938,-4.045 -2.938,-6.899 -0,-2.866 1.146,-5.271 3.489,-7.192 2.318,-1.886 5.167,-3.026 8.521,-3.449 -0.846,-0.699 -1.807,-1.471 -3.048,-2.348 -1.825,-1.292 -3.041,-2.328 -3.71,-3.082 -0.024,-0.022 -0.05,-0.052 -0.073,-0.073 -0.31,-0.282 -0.574,-0.541 -0.771,-0.771 -0.653,-0.775 -0.992,-1.618 -0.992,-2.532 -0,-1.363 0.776,-2.454 2.351,-3.229 1.575,-0.79 3.636,-1.174 6.17,-1.174zM24.167,19.56c-5.511,0.728 -8.264,3.761 -8.264,9.137 -0,2.618 0.587,4.688 1.8,6.201 0.013,0.012 0.024,0.025 0.037,0.037 1.249,1.151 2.644,1.761 4.224,1.761 1.901,0 3.472,-0.766 4.701,-2.238 1.229,-1.487 1.836,-3.492 1.836,-6.018 -0,-2.979 -1.148,-5.66 -3.416,-8.073 -0.293,-0.273 -0.594,-0.542 -0.918,-0.807z"
|
||||
android:fillColor="#ffffff"
|
||||
android:strokeColor="#00000000"/>
|
||||
</group>
|
||||
</vector>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 630 KiB |
@@ -1,97 +1,112 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@id/container"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@id/container"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:minHeight="?attr/actionBarSize"
|
||||
android:background="?attr/colorPrimary"
|
||||
app:contentInsetStart="14dp"
|
||||
app:contentInsetLeft="14dp"
|
||||
android:elevation="4dp"
|
||||
android:theme="?attr/actionBarStyle">
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:minHeight="?attr/actionBarSize"
|
||||
android:background="?attr/colorPrimary"
|
||||
app:contentInsetStart="0dp"
|
||||
app:contentInsetLeft="0dp"
|
||||
android:elevation="4dp"
|
||||
android:theme="?attr/actionBarStyle">
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/self_avatar_container"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="45dp">
|
||||
<org.thoughtcrime.securesms.components.AvatarView
|
||||
android:id="@+id/self_avatar"
|
||||
android:layout_width="35dp"
|
||||
android:layout_height="35dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:clickable="true"
|
||||
app:inverted="true"
|
||||
android:contentDescription="@string/pref_profile_info_headline" />
|
||||
<ImageView android:id="@+id/unread_indicator"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_marginStart="20dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:contentDescription="@null"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
</RelativeLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/avatar_and_title"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:paddingStart="14dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginEnd="10dp">
|
||||
|
||||
<org.thoughtcrime.securesms.components.emoji.EmojiTextView style="@style/TextSecure.TitleTextStyle"
|
||||
android:id="@+id/toolbar_title"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/app_name"
|
||||
android:layout_weight="1"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:paddingRight="10dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"/>
|
||||
<RelativeLayout
|
||||
android:id="@+id/self_avatar_container"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="45dp">
|
||||
<org.thoughtcrime.securesms.components.AvatarView
|
||||
android:id="@+id/self_avatar"
|
||||
android:layout_width="35dp"
|
||||
android:layout_height="35dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:clickable="true"
|
||||
app:inverted="true"
|
||||
android:contentDescription="@string/pref_profile_info_headline" />
|
||||
<ImageView
|
||||
android:id="@+id/unread_indicator"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_marginStart="20dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:contentDescription="@null"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
</RelativeLayout>
|
||||
|
||||
<ImageView android:id="@+id/search_action"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:src="@drawable/ic_search_white_24dp"
|
||||
android:paddingRight="12dp"
|
||||
android:paddingEnd="12dp"
|
||||
android:paddingLeft="12dp"
|
||||
android:paddingStart="12dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:contentDescription="@string/search"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.appcompat.widget.Toolbar>
|
||||
|
||||
<FrameLayout android:id="@+id/fragment_container"
|
||||
android:layout_below="@id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
<org.thoughtcrime.securesms.components.SearchToolbar
|
||||
android:id="@+id/search_toolbar"
|
||||
android:layout_width="match_parent"
|
||||
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
|
||||
style="@style/TextSecure.TitleTextStyle"
|
||||
android:id="@+id/toolbar_title"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:elevation="4dp"
|
||||
android:visibility="invisible"
|
||||
tools:visibility="visible"/>
|
||||
android:text="@string/app_name"
|
||||
android:layout_weight="1"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:paddingRight="10dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"/>
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/search_action"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:src="@drawable/ic_search_white_24dp"
|
||||
android:paddingRight="12dp"
|
||||
android:paddingEnd="12dp"
|
||||
android:paddingLeft="12dp"
|
||||
android:paddingStart="12dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:contentDescription="@string/search"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.appcompat.widget.Toolbar>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/fragment_container"
|
||||
android:layout_below="@id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
<org.thoughtcrime.securesms.components.SearchToolbar
|
||||
android:id="@+id/search_toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:elevation="4dp"
|
||||
android:visibility="invisible"
|
||||
tools:visibility="visible"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
Reference in New Issue
Block a user