Skip to content
This repository was archived by the owner on Feb 17, 2023. It is now read-only.

V4.0 wire #1036

Open
wants to merge 88 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
7561338
feat(core): Restoring Key Manager
ex3ndr Jul 11, 2016
f96fdd8
fix(android): Fixing empty wallpaper
ex3ndr Jul 12, 2016
8888e34
feat(android+core): Secret Chat displaying
ex3ndr Jul 12, 2016
eac57a4
feat(core): Restored encrypting of messages (decryption is not workin…
ex3ndr Jul 12, 2016
17f085f
feat(core+android): Implemented Encrypted Messages sending (not recei…
ex3ndr Jul 12, 2016
5ec783b
fix(core): Fixing subscription to online of secret chat
ex3ndr Jul 12, 2016
ecb8e10
ref(core): Encrypted session code cleanup
ex3ndr Jul 12, 2016
244d097
fix(core): Fixing compilation error
ex3ndr Jul 12, 2016
526926b
fix(core): Additional locking in SessionManager to avoid double creat…
ex3ndr Jul 12, 2016
657ce7b
feat(core): Implemented receiving of encrypted messages
ex3ndr Jul 12, 2016
ed22afb
feat(core): Updated encrypted containers
ex3ndr Jul 12, 2016
59fea58
Merge branch 'master' into core/crypto
ex3ndr Jul 12, 2016
b7211c3
Merge branch 'master' into core/crypto
ex3ndr Jul 14, 2016
b3fe084
feat(core): Update encryption scheme to reduce unnecessary duplicatio…
ex3ndr Jul 14, 2016
4f76b1d
fix(android): Fixing actor crashing on last message deletion
ex3ndr Jul 14, 2016
be30ad4
fix(core): Restore keys validation in chain decryption, fix key filtr…
ex3ndr Jul 14, 2016
1044341
fix(core): Fixing incorrect user id in encrypted message header
ex3ndr Jul 14, 2016
c96b897
fix(core): Remove saving latest their ephemeral key
ex3ndr Jul 14, 2016
687bb12
fix(core): Fixing encrypted container serialization
ex3ndr Jul 14, 2016
a880f86
feat(core): Separated encrypted sequence processors
ex3ndr Jul 14, 2016
713b44f
feat(core): Read/Receive for encrypted chats
ex3ndr Jul 14, 2016
48a5113
feat(core): Secret Chats: typings, delete, chat clear
ex3ndr Jul 14, 2016
f704831
feat(android): Restyle DialogView
ex3ndr Jul 14, 2016
1c62f16
feat(core): Restoring Key Manager
ex3ndr Jul 11, 2016
a112449
fix(android): Fixing empty wallpaper
ex3ndr Jul 12, 2016
f3c9ad6
feat(android+core): Secret Chat displaying
ex3ndr Jul 12, 2016
059e48e
feat(core): Restored encrypting of messages (decryption is not workin…
ex3ndr Jul 12, 2016
e4aa8ad
feat(core+android): Implemented Encrypted Messages sending (not recei…
ex3ndr Jul 12, 2016
ab5dd51
fix(core): Fixing subscription to online of secret chat
ex3ndr Jul 12, 2016
14298cd
ref(core): Encrypted session code cleanup
ex3ndr Jul 12, 2016
8eb48a7
fix(core): Fixing compilation error
ex3ndr Jul 12, 2016
9d3332b
fix(core): Additional locking in SessionManager to avoid double creat…
ex3ndr Jul 12, 2016
5782709
feat(core): Implemented receiving of encrypted messages
ex3ndr Jul 12, 2016
e576151
feat(core): Updated encrypted containers
ex3ndr Jul 12, 2016
3a5a6f5
feat(core): Update encryption scheme to reduce unnecessary duplicatio…
ex3ndr Jul 14, 2016
af2362f
fix(core): Restore keys validation in chain decryption, fix key filtr…
ex3ndr Jul 14, 2016
923f85b
fix(core): Fixing incorrect user id in encrypted message header
ex3ndr Jul 14, 2016
1e58a78
fix(core): Remove saving latest their ephemeral key
ex3ndr Jul 14, 2016
86ebed4
fix(core): Fixing encrypted container serialization
ex3ndr Jul 14, 2016
41094b5
feat(core): Separated encrypted sequence processors
ex3ndr Jul 14, 2016
f5adf6b
feat(core): Read/Receive for encrypted chats
ex3ndr Jul 14, 2016
3c72e20
feat(core): Secret Chats: typings, delete, chat clear
ex3ndr Jul 14, 2016
b0e0c6e
feat(android): Restyle DialogView
ex3ndr Jul 14, 2016
305bf54
Merge branch 'core/crypto' of https://github.com/actorapp/actor-platf…
ex3ndr Jul 29, 2016
66f4708
fix(core): Missing changes
ex3ndr Jul 29, 2016
4eb53c9
Merge branch 'master' into core/crypto
ex3ndr Jul 29, 2016
d09c866
fix(core): Fixing incorrect files after merge
ex3ndr Jul 29, 2016
5943256
feat(core): Applying diff of encrypted keys
ex3ndr Jul 29, 2016
817c77f
perf(core): Fixed suboptimal message change broadcast
ex3ndr Jul 29, 2016
2344f57
fix(core): Better message sent state handling
ex3ndr Jul 29, 2016
919df73
feat(android): Menu for secret chats
ex3ndr Jul 29, 2016
5093dd7
feat(scheme): Added encrypted documents support
ex3ndr Jul 29, 2016
43e8f9c
feat(core): Updated api classes
ex3ndr Jul 29, 2016
1b31b13
feat(scheme): Added timer change messages
ex3ndr Jul 29, 2016
b991e63
feat(scheme): Adding self-destruct timer to encrypted message
ex3ndr Jul 29, 2016
7e06844
feat(scheme): Adding random id to timer set event
ex3ndr Jul 29, 2016
867e8c7
feat(core+android): Introduce encrypted router, secret chat timeout set
ex3ndr Jul 29, 2016
60e282c
feat(core): Reuse of session pre keys
ex3ndr Jul 29, 2016
58005ce
feat(core): Respecting self-destruct timer on message sending
ex3ndr Jul 29, 2016
70fe79d
feat(core+android): Implemented Self-Destruct timer
ex3ndr Jul 30, 2016
991b387
fix(core): Fixing compilation error
ex3ndr Jul 30, 2016
f5c1d54
fix(iOS): Fixing j2objc compatibility
ex3ndr Jul 30, 2016
27cac98
feat(*): Version bump
ex3ndr Jul 30, 2016
f6d711a
fix(core): Improvements on message read detection
ex3ndr Jul 30, 2016
09ba411
feat(core): Ephemeral Keys ratcheting
ex3ndr Jul 30, 2016
1deb2e6
feat(core+runtime): Speed up encryption
ex3ndr Jul 30, 2016
7b03093
Merge branch 'master' into v4.0-wire
ex3ndr Aug 16, 2016
a5f83c0
fix(android): Fixing compilation error, upgraded build tools
ex3ndr Aug 16, 2016
1fc7a8b
feat(iOS): Start Secret Chat button
ex3ndr Aug 16, 2016
204d3fa
feat(iOS): Setting self-destruct timer, better navigation controller …
ex3ndr Aug 17, 2016
d763ab7
fix(iOS): Fixing database multithreading
ex3ndr Aug 17, 2016
bd5821e
wip(core): Uploading encrypted files
ex3ndr Aug 17, 2016
958f745
wip(core): Working on downloading encrypted files
ex3ndr Aug 17, 2016
7772070
Merge branch 'master' into v4.0-wire
Aug 17, 2016
3e808f5
feat(iOS): iOS compatibility
ex3ndr Aug 24, 2016
2725b5f
fix(core): Fixing not making difference on encrypted message from unk…
ex3ndr Aug 24, 2016
82dc23b
feat(core+iOS+android): Working encrypted file transfer
ex3ndr Aug 25, 2016
4d0506f
fix(core): Fixing encrypted file size handling in DownloadManager
ex3ndr Aug 25, 2016
5b89de4
fix(core): Fixing chat clear/delete of secret chats
ex3ndr Aug 25, 2016
858707d
fix(iOS): Fixing secret chat dialog style
ex3ndr Aug 25, 2016
89fdb77
fix(core): Fixing encrypted file size in download manager after upload
ex3ndr Aug 25, 2016
bd95a39
Mergeerge branch 'master' into v4.0-wire
Sep 14, 2016
e770b86
fix(core): self destruct timer plurals
Sep 14, 2016
a40d348
wip(core): add encrypted messages to global counter
Sep 14, 2016
9acaedb
wip(android): update counter on read encrypted messages
Sep 15, 2016
31a2f9e
feat(core): hide encrypted message content rom notifications, fix not…
Sep 16, 2016
b9ed6a3
fix(core): mark as read all encrypted messages after read date
Sep 16, 2016
00e6b13
fix(core): mark encrypted messages as read after destruct/message del…
Sep 16, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
544 changes: 514 additions & 30 deletions actor-sdk/sdk-api/actor.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -1322,12 +1322,6 @@
<node concept="24kQdi" id="4ASKzdDBzDk">
<ref role="1XX52x" to="tsp6:4ASKzdDBfFg" resolve="Trait" />
<node concept="3EZMnI" id="4ASKzdDBzDm" role="2wV5jI">
<node concept="3F0ifn" id="55bmeIQ7HZz" role="3EZMnx">
<property role="3F0ifm" value="" />
<node concept="ljvvj" id="55bmeIQ7HZI" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F0ifn" id="4ASKzdDBzLZ" role="3EZMnx">
<property role="3F0ifm" value="trait" />
<node concept="VechU" id="55bmeIQ9tMq" role="3F10Kt">
Expand Down Expand Up @@ -1389,6 +1383,9 @@
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F0ifn" id="47c0HGpSNh" role="3EZMnx">
<property role="3F0ifm" value="" />
</node>
<node concept="l2Vlx" id="4ASKzdDBzDp" role="2iSdaV" />
</node>
</node>
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public void onConfigureActorSDK() {

ActorStyle style = ActorSDK.sharedActor().style;
style.setDialogsActiveTextColor(0xff5882ac);
style.setShowAvatarPrivateInTitle(false);
// style.setShowAvatarPrivateInTitle(false);

ActorSDK.sharedActor().setFastShareEnabled(true);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ apply plugin: 'me.tatarka.retrolambda'
group = 'im.actor'
version = '0.0.1'

def baseVersion = "3.0"
def baseVersion = "4.0"

android {
compileSdkVersion 24
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ apply plugin: 'me.tatarka.retrolambda'
group = 'im.actor'
version = '0.0.1'

def baseVersion = "3.0"
def baseVersion = "4.0"

android {
compileSdkVersion 24
Expand Down
2 changes: 1 addition & 1 deletion actor-sdk/sdk-core-android/android-sdk/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ apply plugin: 'me.tatarka.retrolambda'
group = 'im.actor'
version = '0.0.1'

def baseVersion = "3.0"
def baseVersion = "4.0"

android {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,25 @@ public void setVerifiedColor(int verifiedColor) {
this.verifiedColor = verifiedColor;
}

private int secretChatToolbar = 0xff4CAF50;
private int secretChatStatusbar = 0xff388E3C;

public int getSecretChatToolbar() {
return secretChatToolbar;
}

public void setSecretChatToolbar(int secretChatToolbar) {
this.secretChatToolbar = secretChatToolbar;
}

public int getSecretChatStatusbar() {
return secretChatStatusbar;
}

public void setSecretChatStatusbar(int secretChatStatusbar) {
this.secretChatStatusbar = secretChatStatusbar;
}

//
// List Styles
//
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,10 @@ public static Intent openPrivateDialog(int uid, boolean compose, Context context
return openDialog(Peer.user(uid), compose, context);
}

public static Intent openPrivateSecretDialog(int uid, boolean compose, Context context) {
return openDialog(Peer.secret(uid), compose, context);
}

public static Intent openGroupDialog(int chatId, boolean compose, Context context) {
return openDialog(Peer.group(chatId), compose, context);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,16 @@
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;

import im.actor.core.entity.Peer;
import im.actor.sdk.ActorSDK;

import im.actor.core.entity.Peer;
import im.actor.core.entity.PeerType;
import im.actor.sdk.R;
import im.actor.sdk.controllers.activity.BaseActivity;
import im.actor.sdk.util.Screen;
Expand Down Expand Up @@ -49,6 +53,13 @@ public void onCreate(Bundle saveInstance) {

getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

// Secure Window from screenshoting
Peer peer = Peer.fromUniqueId(getIntent().getExtras().getLong(EXTRA_CHAT_PEER));
if (peer.getPeerType() == PeerType.PRIVATE_ENCRYPTED) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
WindowManager.LayoutParams.FLAG_SECURE);
}

//
// Loading Layout
//
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

import im.actor.core.entity.Message;
import im.actor.core.entity.Peer;
import im.actor.core.entity.PeerType;
import im.actor.core.entity.content.AbsContent;
import im.actor.core.entity.content.TextContent;
import im.actor.core.entity.content.UnsupportedContent;
Expand Down Expand Up @@ -120,10 +121,18 @@ public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
}
}

menu.findItem(R.id.copy).setVisible(isAllText);
menu.findItem(R.id.quote).setVisible(isAllText);
menu.findItem(R.id.forward).setVisible(selected.length == 1 || isAllText);
menu.findItem(R.id.like).setVisible(selected.length == 1);

if (peer.getPeerType() == PeerType.PRIVATE_ENCRYPTED) {
menu.findItem(R.id.copy).setVisible(false);
menu.findItem(R.id.forward).setVisible(false);
menu.findItem(R.id.like).setVisible(false);
} else {
menu.findItem(R.id.copy).setVisible(isAllText);
menu.findItem(R.id.forward).setVisible(selected.length == 1 || isAllText);
menu.findItem(R.id.like).setVisible(selected.length == 1);
}

return false;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import fr.castorflex.android.circularprogressbar.CircularProgressBar;
import im.actor.core.entity.Message;
import im.actor.core.entity.Peer;
import im.actor.core.entity.PeerType;
import im.actor.core.viewmodel.ConversationVM;
import im.actor.runtime.Log;
import im.actor.sdk.ActorSDK;
Expand Down Expand Up @@ -120,7 +121,8 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
} else {
background = getResources().getDrawable(backgrounds[0]);
}
((ImageView) res.findViewById(R.id.chatBackgroundView)).setImageDrawable(background);
ImageView backgroundView = (ImageView) res.findViewById(R.id.chatBackgroundView);
backgroundView.setImageDrawable(background);


//
Expand Down Expand Up @@ -283,13 +285,17 @@ public void onResume() {
}

// Bind Progress
bind(conversationVM.getIsLoaded(), conversationVM.getIsEmpty(), (isLoaded, valueModel, isEmpty, valueModel2) -> {
if (isEmpty && !isLoaded) {
showView(progressView);
} else {
hideView(progressView);
}
});
if (peer.getPeerType() != PeerType.PRIVATE_ENCRYPTED) {
bind(conversationVM.getIsLoaded(), conversationVM.getIsEmpty(), (isLoaded, valueModel, isEmpty, valueModel2) -> {
if (isEmpty && !isLoaded) {
showView(progressView);
} else {
hideView(progressView);
}
});
} else {
hideView(progressView);
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,12 @@
import android.Manifest;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
Expand Down Expand Up @@ -101,6 +104,16 @@ public void onConfigureActionBar(ActionBar actionBar) {
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);

// Coloring Toolbar
if (peer.getPeerType() != PeerType.PRIVATE_ENCRYPTED) {
actionBar.setBackgroundDrawable(new ColorDrawable(style.getToolBarColor()));
} else {
actionBar.setBackgroundDrawable(new ColorDrawable(style.getSecretChatToolbar()));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getActivity().getWindow().setStatusBarColor(style.getSecretChatStatusbar());
}
}

// Loading Toolbar header views
ActorStyle style = ActorSDK.sharedActor().style;
barView = LayoutInflater.from(getActivity()).inflate(R.layout.bar_conversation, null);
Expand Down Expand Up @@ -132,7 +145,7 @@ public void onConfigureActionBar(ActionBar actionBar) {
barAvatar.init(Screen.dp(32), 18);

barView.findViewById(R.id.titleContainer).setOnClickListener(v -> {
if (peer.getPeerType() == PeerType.PRIVATE) {
if (peer.getPeerType() == PeerType.PRIVATE || peer.getPeerType() == PeerType.PRIVATE_ENCRYPTED) {
ActorSDKLauncher.startProfileActivity(getActivity(), peer.getPeerId());
} else if (peer.getPeerType() == PeerType.GROUP) {
ActorSDK.sharedActor().startGroupInfoActivity(getActivity(), peer.getPeerId());
Expand All @@ -148,7 +161,7 @@ public void onResume() {

// Performing all required Data Binding here

if (peer.getPeerType() == PeerType.PRIVATE) {
if (peer.getPeerType() == PeerType.PRIVATE || peer.getPeerType() == PeerType.PRIVATE_ENCRYPTED) {

// Loading user
UserVM user = users().get(peer.getPeerId());
Expand All @@ -171,7 +184,11 @@ public void onResume() {
bind(barSubtitle, user);

// Binding User typing to Toolbar
bindPrivateTyping(barTyping, barTypingContainer, barSubtitle, messenger().getTyping(user.getId()));
if (peer.getPeerType() != PeerType.PRIVATE_ENCRYPTED) {
bindPrivateTyping(barTyping, barTypingContainer, barSubtitle, messenger().getTyping(user.getId()));
} else {
bindPrivateTyping(barTyping, barTypingContainer, barSubtitle, messenger().getSecretTyping(user.getId()));
}

// Refresh menu on contact state change
bind(user.isContact(), (val, valueModel) -> {
Expand Down Expand Up @@ -206,7 +223,14 @@ public void onResume() {
bindGroupTyping(barTyping, barTypingContainer, barSubtitle, messenger().getGroupTyping(group.getId()));
}
}


// Show/Hide Avatar
if (!style.isShowAvatarInTitle() ||
((peer.getPeerType() == PeerType.PRIVATE || peer.getPeerType() == PeerType.PRIVATE_ENCRYPTED)
&& !style.isShowAvatarPrivateInTitle())) {
barAvatar.setVisibility(View.GONE);
}

// Global Counter
bind(messenger().getGlobalState().getGlobalCounter(), (val, valueModel) -> {
if (val != null && val > 0) {
Expand All @@ -224,33 +248,11 @@ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

// Inflating menu
inflater.inflate(R.menu.chat_menu, menu);

// Show menu for opening chat contact
// if (peer.getPeerType() == PeerType.PRIVATE) {
// menu.findItem(R.id.contact).setVisible(true);
// } else {
// menu.findItem(R.id.contact).setVisible(false);
// }

// Show menus for leave group and group info view
// if (peer.getPeerType() == PeerType.GROUP) {
// GroupVM groupVM = groups().get(peer.getPeerId());
// if (groupVM.isMember().get()) {
// menu.findItem(R.id.leaveGroup).setVisible(true);
// menu.findItem(R.id.groupInfo).setVisible(true);
// } else {
// menu.findItem(R.id.leaveGroup).setVisible(false);
// menu.findItem(R.id.groupInfo).setVisible(false);
// }
// if (groupVM.getGroupType() == GroupType.GROUP) {
// menu.findItem(R.id.clear).setVisible(true);
// } else {
// menu.findItem(R.id.clear).setVisible(false);
// }
// } else {
// menu.findItem(R.id.groupInfo).setVisible(false);
// menu.findItem(R.id.leaveGroup).setVisible(false);
// }
MenuItem addToContacts = menu.findItem(R.id.add_to_contacts);
MenuItem callMenu = menu.findItem(R.id.call);
MenuItem videoMenu = menu.findItem(R.id.video_call);
MenuItem keyMenu = menu.findItem(R.id.key);
MenuItem timerMenu = menu.findItem(R.id.timer);

// Voice and Video calls
boolean callsEnabled = ActorSDK.sharedActor().isCallsEnabled();
Expand All @@ -259,7 +261,6 @@ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
if (peer.getPeerType() == PeerType.PRIVATE) {
callsEnabled = !users().get(peer.getPeerId()).isBot();
} else if (peer.getPeerType() == PeerType.GROUP) {

GroupVM groupVM = groups().get(peer.getPeerId());
if (groupVM.getGroupType() == GroupType.GROUP && groupVM.isMember().get() && groupVM.getIsCanCall().get()) {
callsEnabled = groupVM.getMembersCount().get() <= MAX_USERS_FOR_CALLS;
Expand All @@ -268,14 +269,21 @@ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
callsEnabled = false;
videoCallsEnabled = false;
}
} else {
callsEnabled = false;
videoCallsEnabled = false;
}
}
menu.findItem(R.id.call).setVisible(callsEnabled);
menu.findItem(R.id.video_call).setVisible(callsEnabled && videoCallsEnabled);
callMenu.setVisible(callsEnabled);
videoMenu.setVisible(callsEnabled && videoCallsEnabled);

// Secret Chat
keyMenu.setVisible(peer.getPeerType() == PeerType.PRIVATE_ENCRYPTED);
timerMenu.setVisible(peer.getPeerType() == PeerType.PRIVATE_ENCRYPTED);

// Add to contacts
if (peer.getPeerType() == PeerType.PRIVATE) {
menu.findItem(R.id.add_to_contacts).setVisible(!users().get(peer.getPeerId()).isContact().get());
addToContacts.setVisible(!users().get(peer.getPeerId()).isContact().get());
}
}

Expand Down Expand Up @@ -352,6 +360,21 @@ public void onError(final Exception e) {
return true;
}
}

if (item.getItemId() == R.id.timer) {
int[] timers = new int[]{
0, 1000, 2000, 5000, 15000, 60000, 60 * 60000, 24 * 60 * 60000
};
new AlertDialog.Builder(getActivity())
.setTitle(R.string.timer_title)
.setItems(R.array.timer_values, (dialogInterface, i1) -> {
execute(messenger().setSecretChatTimer(peer.getPeerId(), timers[i1]));
})
.show()
.setCanceledOnTouchOutside(true);

}

return super.onOptionsItemSelected(item);
}

Expand All @@ -367,7 +390,7 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in

private void startCall(boolean video) {
Command<Long> cmd;
if (peer.getPeerType() == PeerType.PRIVATE) {
if (peer.getPeerType() == PeerType.PRIVATE || peer.getPeerType() == PeerType.PRIVATE_ENCRYPTED) {
cmd = video ? messenger().doVideoCall(peer.getPeerId()) : messenger().doCall(peer.getPeerId());
} else {
cmd = messenger().doGroupCall(peer.getPeerId());
Expand Down
Loading