hide inactive devices by default in contact details
This commit is contained in:
parent
40a9f70478
commit
8c34bb3c6f
|
@ -38,6 +38,7 @@ import eu.siacs.conversations.Config;
|
||||||
import eu.siacs.conversations.R;
|
import eu.siacs.conversations.R;
|
||||||
import eu.siacs.conversations.crypto.PgpEngine;
|
import eu.siacs.conversations.crypto.PgpEngine;
|
||||||
import eu.siacs.conversations.crypto.axolotl.AxolotlService;
|
import eu.siacs.conversations.crypto.axolotl.AxolotlService;
|
||||||
|
import eu.siacs.conversations.crypto.axolotl.FingerprintStatus;
|
||||||
import eu.siacs.conversations.crypto.axolotl.XmppAxolotlSession;
|
import eu.siacs.conversations.crypto.axolotl.XmppAxolotlSession;
|
||||||
import eu.siacs.conversations.entities.Account;
|
import eu.siacs.conversations.entities.Account;
|
||||||
import eu.siacs.conversations.entities.Contact;
|
import eu.siacs.conversations.entities.Contact;
|
||||||
|
@ -112,11 +113,13 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp
|
||||||
private CheckBox send;
|
private CheckBox send;
|
||||||
private CheckBox receive;
|
private CheckBox receive;
|
||||||
private Button addContactButton;
|
private Button addContactButton;
|
||||||
|
private Button mShowInactiveDevicesButton;
|
||||||
private QuickContactBadge badge;
|
private QuickContactBadge badge;
|
||||||
private LinearLayout keys;
|
private LinearLayout keys;
|
||||||
private FlowLayout tags;
|
private FlowLayout tags;
|
||||||
private boolean showDynamicTags = false;
|
private boolean showDynamicTags = false;
|
||||||
private boolean showLastSeen = false;
|
private boolean showLastSeen = false;
|
||||||
|
private boolean showInactiveOmemo = false;
|
||||||
private String messageFingerprint;
|
private String messageFingerprint;
|
||||||
|
|
||||||
private DialogInterface.OnClickListener addToPhonebook = new DialogInterface.OnClickListener() {
|
private DialogInterface.OnClickListener addToPhonebook = new DialogInterface.OnClickListener() {
|
||||||
|
@ -188,6 +191,7 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(final Bundle savedInstanceState) {
|
protected void onCreate(final Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
showInactiveOmemo = savedInstanceState != null && savedInstanceState.getBoolean("show_inactive_omemo",false);
|
||||||
if (getIntent().getAction().equals(ACTION_VIEW_CONTACT)) {
|
if (getIntent().getAction().equals(ACTION_VIEW_CONTACT)) {
|
||||||
try {
|
try {
|
||||||
this.accountJid = Jid.fromString(getIntent().getExtras().getString(EXTRA_ACCOUNT));
|
this.accountJid = Jid.fromString(getIntent().getExtras().getString(EXTRA_ACCOUNT));
|
||||||
|
@ -217,10 +221,24 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp
|
||||||
});
|
});
|
||||||
keys = (LinearLayout) findViewById(R.id.details_contact_keys);
|
keys = (LinearLayout) findViewById(R.id.details_contact_keys);
|
||||||
tags = (FlowLayout) findViewById(R.id.tags);
|
tags = (FlowLayout) findViewById(R.id.tags);
|
||||||
|
mShowInactiveDevicesButton = (Button) findViewById(R.id.show_inactive_devices);
|
||||||
if (getActionBar() != null) {
|
if (getActionBar() != null) {
|
||||||
getActionBar().setHomeButtonEnabled(true);
|
getActionBar().setHomeButtonEnabled(true);
|
||||||
getActionBar().setDisplayHomeAsUpEnabled(true);
|
getActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
}
|
}
|
||||||
|
mShowInactiveDevicesButton.setOnClickListener(new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
showInactiveOmemo = !showInactiveOmemo;
|
||||||
|
populateView();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSaveInstanceState(final Bundle savedInstanceState) {
|
||||||
|
savedInstanceState.putBoolean("show_inactive_omemo",showInactiveOmemo);
|
||||||
|
super.onSaveInstanceState(savedInstanceState);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -444,13 +462,32 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (Config.supportOmemo()) {
|
if (Config.supportOmemo()) {
|
||||||
|
boolean skippedInactive = false;
|
||||||
|
boolean showsInactive = false;
|
||||||
for (final XmppAxolotlSession session : contact.getAccount().getAxolotlService().findSessionsForContact(contact)) {
|
for (final XmppAxolotlSession session : contact.getAccount().getAxolotlService().findSessionsForContact(contact)) {
|
||||||
if (!session.getTrust().isCompromised()) {
|
final FingerprintStatus trust = session.getTrust();
|
||||||
|
if (!trust.isActive()) {
|
||||||
|
if (showInactiveOmemo) {
|
||||||
|
showsInactive = true;
|
||||||
|
} else {
|
||||||
|
skippedInactive = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!trust.isCompromised()) {
|
||||||
boolean highlight = session.getFingerprint().equals(messageFingerprint);
|
boolean highlight = session.getFingerprint().equals(messageFingerprint);
|
||||||
hasKeys = true;
|
hasKeys = true;
|
||||||
addFingerprintRow(keys, session, highlight);
|
addFingerprintRow(keys, session, highlight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (showsInactive || skippedInactive) {
|
||||||
|
mShowInactiveDevicesButton.setText(showsInactive ? R.string.hide_inactive_devices : R.string.show_inactive_devices);
|
||||||
|
mShowInactiveDevicesButton.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
mShowInactiveDevicesButton.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
mShowInactiveDevicesButton.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
if (Config.supportOpenPgp() && contact.getPgpKeyId() != 0) {
|
if (Config.supportOpenPgp() && contact.getPgpKeyId() != 0) {
|
||||||
hasKeys = true;
|
hasKeys = true;
|
||||||
|
|
|
@ -109,7 +109,6 @@
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/details_contact_keys"
|
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginLeft="@dimen/activity_horizontal_margin"
|
android:layout_marginLeft="@dimen/activity_horizontal_margin"
|
||||||
|
@ -117,11 +116,31 @@
|
||||||
android:layout_marginTop="@dimen/activity_vertical_margin"
|
android:layout_marginTop="@dimen/activity_vertical_margin"
|
||||||
android:layout_marginBottom="@dimen/activity_vertical_margin"
|
android:layout_marginBottom="@dimen/activity_vertical_margin"
|
||||||
android:background="?attr/infocard_border"
|
android:background="?attr/infocard_border"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="@dimen/infocard_padding">
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/details_contact_keys"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
android:divider="?android:dividerHorizontal"
|
android:divider="?android:dividerHorizontal"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="@dimen/infocard_padding"
|
|
||||||
android:showDividers="middle" >
|
android:showDividers="middle" >
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
<Button
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:id="@+id/show_inactive_devices"
|
||||||
|
style="?android:attr/borderlessButtonStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/show_inactive_devices"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:textColor="@color/accent"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
|
@ -723,4 +723,6 @@
|
||||||
<string name="i_followed_this_link_from_a_trusted_source">I followed this link from a trusted source</string>
|
<string name="i_followed_this_link_from_a_trusted_source">I followed this link from a trusted source</string>
|
||||||
<string name="verifying_omemo_keys_trusted_source">You are about to verify the OMEMO keys of %1$s after clicking a link. This is only secure if you followed this link from a trusted source where only %2$s could have published this link.</string>
|
<string name="verifying_omemo_keys_trusted_source">You are about to verify the OMEMO keys of %1$s after clicking a link. This is only secure if you followed this link from a trusted source where only %2$s could have published this link.</string>
|
||||||
<string name="verify_omemo_keys">Verify OMEMO keys</string>
|
<string name="verify_omemo_keys">Verify OMEMO keys</string>
|
||||||
|
<string name="show_inactive_devices">Show inactive devices</string>
|
||||||
|
<string name="hide_inactive_devices">Hide inactive devices</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Reference in a new issue