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.crypto.PgpEngine; | ||||
| 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.entities.Account; | ||||
| import eu.siacs.conversations.entities.Contact; | ||||
| @ -112,11 +113,13 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp | ||||
| 	private CheckBox send; | ||||
| 	private CheckBox receive; | ||||
| 	private Button addContactButton; | ||||
| 	private Button mShowInactiveDevicesButton; | ||||
| 	private QuickContactBadge badge; | ||||
| 	private LinearLayout keys; | ||||
| 	private FlowLayout tags; | ||||
| 	private boolean showDynamicTags = false; | ||||
| 	private boolean showLastSeen = false; | ||||
| 	private boolean showInactiveOmemo = false; | ||||
| 	private String messageFingerprint; | ||||
| 
 | ||||
| 	private DialogInterface.OnClickListener addToPhonebook = new DialogInterface.OnClickListener() { | ||||
| @ -188,6 +191,7 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp | ||||
| 	@Override | ||||
| 	protected void onCreate(final Bundle savedInstanceState) { | ||||
| 		super.onCreate(savedInstanceState); | ||||
| 		showInactiveOmemo = savedInstanceState != null && savedInstanceState.getBoolean("show_inactive_omemo",false); | ||||
| 		if (getIntent().getAction().equals(ACTION_VIEW_CONTACT)) { | ||||
| 			try { | ||||
| 				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); | ||||
| 		tags = (FlowLayout) findViewById(R.id.tags); | ||||
| 		mShowInactiveDevicesButton = (Button) findViewById(R.id.show_inactive_devices); | ||||
| 		if (getActionBar() != null) { | ||||
| 			getActionBar().setHomeButtonEnabled(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 | ||||
| @ -444,13 +462,32 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp | ||||
| 			} | ||||
| 		} | ||||
| 		if (Config.supportOmemo()) { | ||||
| 			boolean skippedInactive = false; | ||||
| 			boolean showsInactive = false; | ||||
| 			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); | ||||
| 					hasKeys = true; | ||||
| 					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) { | ||||
| 			hasKeys = true; | ||||
|  | ||||
| @ -109,7 +109,6 @@ | ||||
|         </RelativeLayout> | ||||
| 
 | ||||
|         <LinearLayout | ||||
|             android:id="@+id/details_contact_keys" | ||||
|             android:layout_width="fill_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginLeft="@dimen/activity_horizontal_margin" | ||||
| @ -117,11 +116,31 @@ | ||||
|             android:layout_marginTop="@dimen/activity_vertical_margin" | ||||
|             android:layout_marginBottom="@dimen/activity_vertical_margin" | ||||
|             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:orientation="vertical" | ||||
|             android:padding="@dimen/infocard_padding" | ||||
|                     android:showDividers="middle" > | ||||
|                 </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> | ||||
| 
 | ||||
| </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="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="show_inactive_devices">Show inactive devices</string> | ||||
| 	<string name="hide_inactive_devices">Hide inactive devices</string> | ||||
| </resources> | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Daniel Gultsch
						Daniel Gultsch