Compare commits

...

27 Commits

Author SHA1 Message Date
adbenitez 6efe540310 update core 2024-09-06 18:26:53 +02:00
adbenitez 1843c29b7c update version number 2024-09-06 18:24:40 +02:00
adbenitez 653d940242 fix: add back click listener to selfAvatar in ConversationListActivity 2024-09-06 18:24:05 +02:00
adbenitez 2f3a730be7 update core 2024-09-06 06:04:23 +02:00
adbenitez 7a2401a3d5 Merge remote-tracking branch 'upstream/main' 2024-09-06 06:03:00 +02:00
adbenitez 6690add48f update bots in menu 2024-09-06 05:31:40 +02:00
Asiel Díaz Benítez ace1c99daa Merge pull request #3262 from deltachat/hoc/increase-account-switcher-hitbox
Increase account switcher hitbox
2024-09-03 15:42:24 +02:00
Asiel Díaz Benítez 125ac5e7b3 Merge pull request #3275 from deltachat/adb/issue-3274
fix: rename fastline to fastlane
2024-09-03 04:17:33 +02:00
adbenitez b3248c9f6d fix: rename fastline to fastlane 2024-09-02 23:40:23 +02:00
adbenitez 6113195977 update src/main/res/drawable/intro1.png 2024-08-31 16:02:35 +02:00
adbenitez 4a02d6c73d remove hack to send single emoji as reaction 2024-08-31 01:41:44 +02:00
adbenitez 6fa725e8ff update version number 2024-08-30 16:27:33 +02:00
adbenitez efb38db3ef Merge remote-tracking branch 'upstream/main' 2024-08-30 16:24:33 +02:00
Asiel Díaz Benítez 8ef136d6b2 Merge pull request #3272 from deltachat/adb/issue-3266
allow to delete selected account
2024-08-30 16:18:06 +02:00
adbenitez 3412dc8a0f Merge remote-tracking branch 'upstream/main' 2024-08-30 16:17:44 +02:00
adbenitez 6cb1c0fad4 update release.yml 2024-08-30 15:58:55 +02:00
adbenitez bfb1fc0281 allow to delete selected account 2024-08-29 21:09:56 +02:00
adbenitez 1ae69feb80 tweak code 2024-08-29 17:00:49 +02:00
adbenitez 19fac45062 update scripts/ndk-make.sh, remove ROOT_DIR 2024-08-29 15:40:59 +02:00
Asiel Díaz Benítez fd8311cfc9 Merge pull request #3269 from deltachat/adb/issue-3199
tweak account selection style
2024-08-28 20:43:47 +02:00
Asiel Díaz Benítez 973e278d71 Merge pull request #3267 from deltachat/adb/issue-3144
add monochrome launcher icon
2024-08-28 19:15:06 +02:00
adbenitez 95f09a67f5 select item normally instead of using checkbox 2024-08-27 13:12:52 +02:00
adbenitez 78ad04bd7b simplify AccountSelectionListItem.bind() 2024-08-27 12:40:40 +02:00
Hocuri 59435e8975 Don't count taps that are too far to the right 2024-08-26 22:37:02 +02:00
link2xt bc94eba1da update deltachat-core-rust to 'chore(release): prepare for 1.142.10' of 'v1.142.10' 2024-08-26 20:34:46 +00:00
adbenitez 6c9d1592f8 add monochrome launcher icon 2024-08-25 17:34:57 +02:00
Hocuri 56b925f600 Increase account switcher hitbox
The hitbox for the account switcher was only the own avatar in and the
title, so when you tapped a bit too low or too high, nothing happened.

This PR changes it to be the whole title bar.
2024-08-24 21:47:11 +02:00
12 changed files with 153 additions and 129 deletions
+5 -2
View File
@@ -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
View File
@@ -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 -2
View File
@@ -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>