Improved dialog code & zrtp dialog
This commit is contained in:
parent
16432bc5e2
commit
1bdfd80286
13 changed files with 292 additions and 187 deletions
|
@ -6,7 +6,7 @@
|
|||
android:gravity="center">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon"
|
||||
android:id="@+id/dialog_icon"
|
||||
android:visibility="gone"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -14,17 +14,26 @@
|
|||
android:layout_margin="15dp"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/customText"
|
||||
android:id="@+id/dialog_title"
|
||||
android:visibility="gone"
|
||||
style="@style/dialog_title_font"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:textAlignment="center"
|
||||
android:layout_margin="15dp"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/dialog_message"
|
||||
style="@style/font14"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Lorem ipsum dolor sit amet"
|
||||
android:gravity="center"
|
||||
android:textAlignment="center"
|
||||
android:layout_margin="15dp"/>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/password"
|
||||
android:id="@+id/dialog_password"
|
||||
android:visibility="gone"
|
||||
android:background="@drawable/resizable_textfield"
|
||||
android:textColor="@color/colorB"
|
||||
|
@ -37,7 +46,64 @@
|
|||
android:maxLines="1"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/doNotAskAgainLayout"
|
||||
android:id="@+id/dialog_zrtp_layout"
|
||||
android:visibility="gone"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:orientation="vertical"
|
||||
android:layout_margin="5dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:text="@string/zrtp_local_sas"
|
||||
android:textAppearance="@style/dialog_zrtp_white_font"
|
||||
android:textAlignment="center"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/zrtp_sas_local"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:textAppearance="@style/dialog_zrtp_colored_font"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:text="@string/zrtp_remote_sas"
|
||||
android:textAppearance="@style/dialog_zrtp_white_font"
|
||||
android:textAlignment="center"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/zrtp_sas_remote"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:textAppearance="@style/dialog_zrtp_colored_font"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/dialog_do_not_ask_again_layout"
|
||||
android:visibility="gone"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -70,7 +136,7 @@
|
|||
android:layout_margin="15dp">
|
||||
|
||||
<Button
|
||||
android:id="@+id/cancel"
|
||||
android:id="@+id/dialog_cancel_button"
|
||||
android:text="@string/cancel"
|
||||
android:background="@drawable/resizable_assistant_button"
|
||||
style="@style/font8"
|
||||
|
@ -80,7 +146,7 @@
|
|||
android:padding="10dp"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/delete_button"
|
||||
android:id="@+id/dialog_delete_button"
|
||||
android:text="@string/delete"
|
||||
android:background="@drawable/resizable_assistant_button"
|
||||
android:backgroundTint="@color/colorI"
|
||||
|
@ -91,7 +157,7 @@
|
|||
android:padding="10dp"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/ok_button"
|
||||
android:id="@+id/dialog_ok_button"
|
||||
android:visibility="gone"
|
||||
android:text="@string/ok"
|
||||
android:background="@drawable/resizable_assistant_button"
|
||||
|
|
|
@ -254,8 +254,9 @@
|
|||
<string name="no_current_call">No active call</string>
|
||||
<string name="call_paused_by_remote">Your caller paused the call</string>
|
||||
<string name="couldnt_accept_call">An error occurred while accepting the call</string>
|
||||
<string name="zrtp_dialog1">Confirm the following SAS with peer:\nSay: %s</string>
|
||||
<string name="zrtp_dialog2">\nYour caller should say: %s</string>
|
||||
<string name="zrtp_local_sas">Say:</string>
|
||||
<string name="zrtp_remote_sas">Confirm that your interlocutor says:</string>
|
||||
<string name="zrtp_dialog_title">Communication security</string>
|
||||
<string name="zrtp_notification_title">SAS</string>
|
||||
<string name="zrtp_notification_message">Confirm the previous SAS code with your correspondant</string>
|
||||
<string name="unknown_incoming_call_name">Unknown</string>
|
||||
|
|
|
@ -174,4 +174,27 @@
|
|||
<item name="android:lineSpacingExtra">16.7sp</item>
|
||||
</style>
|
||||
|
||||
<style name="dialog_title_font" parent="@android:style/TextAppearance.Medium">
|
||||
<item name="android:textColor">@color/colorH</item>
|
||||
<item name="android:textSize">21.7sp</item>
|
||||
<item name="android:textStyle">bold</item>
|
||||
<item name="android:fontFamily">sans-serif</item>
|
||||
<item name="android:lineSpacingExtra">6.7sp</item>
|
||||
</style>
|
||||
|
||||
<style name="dialog_zrtp_colored_font" parent="@android:style/TextAppearance.Medium">
|
||||
<item name="android:textColor">@color/colorL</item>
|
||||
<item name="android:textSize">20sp</item>
|
||||
<item name="android:textStyle">bold</item>
|
||||
<item name="android:fontFamily">sans-serif</item>
|
||||
<item name="android:lineSpacingExtra">8.3sp</item>
|
||||
</style>
|
||||
|
||||
<style name="dialog_zrtp_white_font" parent="@android:style/TextAppearance.Medium">
|
||||
<item name="android:textColor">@color/colorH</item>
|
||||
<item name="android:textSize">20sp</item>
|
||||
<item name="android:fontFamily">sans-serif</item>
|
||||
<item name="android:lineSpacingExtra">8.3sp</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
|
@ -1531,16 +1531,16 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou
|
|||
LinphonePreferences.instance().setLinkPopupTime(String.valueOf(newDate));
|
||||
|
||||
final Dialog dialog = LinphoneActivity.instance().displayDialog(String.format(getString(R.string.link_account_popup), LinphoneManager.getLc().getDefaultProxyConfig().getIdentityAddress().asStringUriOnly()));
|
||||
Button delete = dialog.findViewById(R.id.delete_button);
|
||||
Button delete = dialog.findViewById(R.id.dialog_delete_button);
|
||||
delete.setVisibility(View.GONE);
|
||||
Button ok = dialog.findViewById(R.id.ok_button);
|
||||
Button ok = dialog.findViewById(R.id.dialog_ok_button);
|
||||
ok.setText(getString(R.string.link));
|
||||
ok.setVisibility(View.VISIBLE);
|
||||
Button cancel = dialog.findViewById(R.id.cancel);
|
||||
Button cancel = dialog.findViewById(R.id.dialog_cancel_button);
|
||||
cancel.setText(getString(R.string.maybe_later));
|
||||
|
||||
dialog.findViewById(R.id.doNotAskAgainLayout).setVisibility(View.VISIBLE);
|
||||
final CheckBox doNotAskAgain = dialog.findViewById(R.id.doNotAskAgain);
|
||||
dialog.findViewById(R.id.dialog_do_not_ask_again_layout).setVisibility(View.VISIBLE);
|
||||
final CheckBox doNotAskAgain = dialog.findViewById(R.id.dialog_do_not_ask_again_layout);
|
||||
dialog.findViewById(R.id.doNotAskAgainLabel).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
|
|
@ -979,9 +979,8 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
|
|||
|
||||
public void displayChatRoomError() {
|
||||
final Dialog dialog = LinphoneActivity.instance().displayDialog(getString(R.string.chat_room_creation_failed));
|
||||
Button delete = dialog.findViewById(R.id.delete_button);
|
||||
Button cancel = dialog.findViewById(R.id.cancel);
|
||||
delete.setVisibility(View.GONE);
|
||||
dialog.findViewById(R.id.dialog_delete_button).setVisibility(View.GONE);
|
||||
Button cancel = dialog.findViewById(R.id.dialog_cancel_button);
|
||||
cancel.setText(getString(R.string.ok));
|
||||
cancel.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
@ -1002,7 +1001,7 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
|
|||
dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
|
||||
dialog.getWindow().setBackgroundDrawable(d);
|
||||
|
||||
TextView customText = dialog.findViewById(R.id.customText);
|
||||
TextView customText = dialog.findViewById(R.id.dialog_message);
|
||||
customText.setText(text);
|
||||
return dialog;
|
||||
}
|
||||
|
|
|
@ -1124,13 +1124,15 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList
|
|||
|
||||
TextView customText = dialog.findViewById(R.id.customText);
|
||||
customText.setText(getResources().getString(R.string.add_video_dialog));
|
||||
Button delete = dialog.findViewById(R.id.delete_button);
|
||||
delete.setText(R.string.accept);
|
||||
Button cancel = dialog.findViewById(R.id.cancel);
|
||||
dialog.findViewById(R.id.dialog_delete_button).setVisibility(View.GONE);
|
||||
Button accept = dialog.findViewById(R.id.dialog_ok_button);
|
||||
accept.setVisibility(View.VISIBLE);
|
||||
accept.setText(R.string.accept);
|
||||
Button cancel = dialog.findViewById(R.id.dialog_cancel_button);
|
||||
cancel.setText(R.string.decline);
|
||||
isVideoAsk = true;
|
||||
|
||||
delete.setOnClickListener(new OnClickListener() {
|
||||
accept.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
int camera = getPackageManager().checkPermission(Manifest.permission.CAMERA, getPackageName());
|
||||
|
|
|
@ -684,15 +684,15 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
|||
|
||||
private void showSecurityDialog(boolean oneParticipantOneDevice) {
|
||||
final Dialog dialog = LinphoneActivity.instance().displayDialog(getString(R.string.lime_security_popup));
|
||||
Button delete = dialog.findViewById(R.id.delete_button);
|
||||
Button delete = dialog.findViewById(R.id.dialog_delete_button);
|
||||
delete.setVisibility(View.GONE);
|
||||
Button ok = dialog.findViewById(R.id.ok_button);
|
||||
Button ok = dialog.findViewById(R.id.dialog_ok_button);
|
||||
ok.setText(oneParticipantOneDevice ? getString(R.string.call) : getString(R.string.ok));
|
||||
ok.setVisibility(View.VISIBLE);
|
||||
Button cancel = dialog.findViewById(R.id.cancel);
|
||||
Button cancel = dialog.findViewById(R.id.dialog_cancel_button);
|
||||
cancel.setText(getString(R.string.cancel));
|
||||
|
||||
dialog.findViewById(R.id.doNotAskAgainLayout).setVisibility(View.VISIBLE);
|
||||
dialog.findViewById(R.id.dialog_do_not_ask_again_layout).setVisibility(View.VISIBLE);
|
||||
final CheckBox doNotAskAgain = dialog.findViewById(R.id.doNotAskAgain);
|
||||
dialog.findViewById(R.id.doNotAskAgainLabel).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
@ -962,9 +962,9 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
|||
final Dialog dialog = LinphoneActivity.instance().displayDialog(
|
||||
getString(R.string.message_cant_be_decrypted)
|
||||
.replace("%s", (contact != null) ? contact.getFullName() : from.getUsername()));
|
||||
Button delete = dialog.findViewById(R.id.delete_button);
|
||||
Button delete = dialog.findViewById(R.id.dialog_delete_button);
|
||||
delete.setText(getString(R.string.call));
|
||||
Button cancel = dialog.findViewById(R.id.cancel);
|
||||
Button cancel = dialog.findViewById(R.id.dialog_cancel_button);
|
||||
cancel.setText(getString(R.string.ok));
|
||||
delete.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
|
|
@ -176,9 +176,9 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
|||
@Override
|
||||
public void onClick(View view) {
|
||||
final Dialog dialog = LinphoneActivity.instance().displayDialog(getString(R.string.chat_room_leave_dialog));
|
||||
Button delete = dialog.findViewById(R.id.delete_button);
|
||||
Button delete = dialog.findViewById(R.id.dialog_delete_button);
|
||||
delete.setText(getString(R.string.chat_room_leave_button));
|
||||
Button cancel = dialog.findViewById(R.id.cancel);
|
||||
Button cancel = dialog.findViewById(R.id.dialog_cancel_button);
|
||||
|
||||
delete.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
@ -405,9 +405,8 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
|||
if (mAdminStateChangedDialog != null) mAdminStateChangedDialog.dismiss();
|
||||
|
||||
mAdminStateChangedDialog = LinphoneActivity.instance().displayDialog(getString(mIsEditionEnabled ? R.string.chat_room_you_are_now_admin : R.string.chat_room_you_are_no_longer_admin));
|
||||
Button delete = mAdminStateChangedDialog.findViewById(R.id.delete_button);
|
||||
Button cancel = mAdminStateChangedDialog.findViewById(R.id.cancel);
|
||||
delete.setVisibility(View.GONE);
|
||||
Button cancel = mAdminStateChangedDialog.findViewById(R.id.dialog_cancel_button);
|
||||
mAdminStateChangedDialog.findViewById(R.id.dialog_delete_button).setVisibility(View.GONE);
|
||||
cancel.setText(getString(R.string.ok));
|
||||
cancel.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
|
|
@ -303,8 +303,8 @@ public class ContactDetailsFragment extends Fragment implements OnClickListener
|
|||
}
|
||||
if (id == R.id.deleteContact) {
|
||||
final Dialog dialog = LinphoneActivity.instance().displayDialog(getString(R.string.delete_text));
|
||||
Button delete = dialog.findViewById(R.id.delete_button);
|
||||
Button cancel = dialog.findViewById(R.id.cancel);
|
||||
Button delete = dialog.findViewById(R.id.dialog_delete_button);
|
||||
Button cancel = dialog.findViewById(R.id.dialog_cancel_button);
|
||||
|
||||
delete.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
|
|
|
@ -241,8 +241,8 @@ public class ContactEditorFragment extends Fragment {
|
|||
@Override
|
||||
public void onClick(View v) {
|
||||
final Dialog dialog = LinphoneActivity.instance().displayDialog(getString(R.string.delete_text));
|
||||
Button delete = dialog.findViewById(R.id.delete_button);
|
||||
Button cancel = dialog.findViewById(R.id.cancel);
|
||||
Button delete = dialog.findViewById(R.id.dialog_delete_button);
|
||||
Button cancel = dialog.findViewById(R.id.dialog_cancel_button);
|
||||
|
||||
delete.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
|
|
|
@ -434,29 +434,31 @@ public class StatusFragment extends Fragment {
|
|||
//Screen is locked
|
||||
LinphoneService.instance().displaySasNotification(call.getAuthenticationToken());
|
||||
}
|
||||
TextView customText = ZRTPdialog.findViewById(R.id.customText);
|
||||
String newText = getString(R.string.zrtp_dialog1).replace("%s", zrtpToRead)
|
||||
+ getString(R.string.zrtp_dialog2).replace("%s", zrtpToListen);
|
||||
customText.setText(newText);
|
||||
Button delete = ZRTPdialog.findViewById(R.id.delete_button);
|
||||
delete.setText(R.string.accept);
|
||||
Button cancel = ZRTPdialog.findViewById(R.id.cancel);
|
||||
cancel.setText(R.string.deny);
|
||||
|
||||
TextView localSas = ZRTPdialog.findViewById(R.id.zrtp_sas_local);
|
||||
localSas.setText(zrtpToRead);
|
||||
TextView remoteSas = ZRTPdialog.findViewById(R.id.zrtp_sas_remote);
|
||||
remoteSas.setText(zrtpToListen);
|
||||
TextView message = ZRTPdialog.findViewById(R.id.dialog_message);
|
||||
message.setVisibility(View.GONE);
|
||||
ZRTPdialog.findViewById(R.id.dialog_zrtp_layout).setVisibility(View.VISIBLE);
|
||||
|
||||
TextView title = ZRTPdialog.findViewById(R.id.dialog_title);
|
||||
title.setText(getString(R.string.zrtp_dialog_title));
|
||||
|
||||
Button delete = ZRTPdialog.findViewById(R.id.dialog_delete_button);
|
||||
delete.setText(R.string.deny);
|
||||
Button cancel = ZRTPdialog.findViewById(R.id.dialog_cancel_button);
|
||||
cancel.setVisibility(View.GONE);
|
||||
Button accept = ZRTPdialog.findViewById(R.id.dialog_ok_button);
|
||||
accept.setVisibility(View.VISIBLE);
|
||||
accept.setText(R.string.accept);
|
||||
|
||||
ImageView icon = ZRTPdialog.findViewById(R.id.dialog_icon);
|
||||
icon.setVisibility(View.VISIBLE);
|
||||
icon.setImageResource(R.drawable.security_2_indicator);
|
||||
|
||||
delete.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
call.setAuthenticationTokenVerified(true);
|
||||
if (encryption != null) {
|
||||
encryption.setImageResource(R.drawable.security_ok);
|
||||
}
|
||||
isZrtpAsk = false;
|
||||
ZRTPdialog.dismiss();
|
||||
LinphoneService.instance().removeSasNotification();
|
||||
}
|
||||
});
|
||||
|
||||
cancel.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (call != null) {
|
||||
|
@ -470,6 +472,19 @@ public class StatusFragment extends Fragment {
|
|||
LinphoneService.instance().removeSasNotification();
|
||||
}
|
||||
});
|
||||
|
||||
accept.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
call.setAuthenticationTokenVerified(true);
|
||||
if (encryption != null) {
|
||||
encryption.setImageResource(R.drawable.security_ok);
|
||||
}
|
||||
isZrtpAsk = false;
|
||||
ZRTPdialog.dismiss();
|
||||
LinphoneService.instance().removeSasNotification();
|
||||
}
|
||||
});
|
||||
ZRTPdialog.show();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -90,8 +90,8 @@ public class ListSelectionHelper {
|
|||
@Override
|
||||
public void onClick(View v) {
|
||||
final Dialog dialog = LinphoneActivity.instance().displayDialog(mContext.getString(mDialogDeleteMessageResourceId));
|
||||
Button delete = dialog.findViewById(R.id.delete_button);
|
||||
Button cancel = dialog.findViewById(R.id.cancel);
|
||||
Button delete = dialog.findViewById(R.id.dialog_delete_button);
|
||||
Button cancel = dialog.findViewById(R.id.dialog_cancel_button);
|
||||
|
||||
delete.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
|
|
@ -98,8 +98,8 @@ public class SelectableHelper {
|
|||
@Override
|
||||
public void onClick(View v) {
|
||||
final Dialog dialog = LinphoneActivity.instance().displayDialog(mContext.getString(mDialogDeleteMessageResourceId));
|
||||
Button delete = dialog.findViewById(R.id.delete_button);
|
||||
Button cancel = dialog.findViewById(R.id.cancel);
|
||||
Button delete = dialog.findViewById(R.id.dialog_delete_button);
|
||||
Button cancel = dialog.findViewById(R.id.dialog_cancel_button);
|
||||
|
||||
delete.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue