use data binder for contact details activity
This commit is contained in:
		
							parent
							
								
									eb25643d94
								
							
						
					
					
						commit
						58ec5ced8a
					
				|  | @ -75,6 +75,10 @@ android { | |||
|         applicationId "eu.siacs.conversations" | ||||
|     } | ||||
| 
 | ||||
|     dataBinding { | ||||
|         enabled true | ||||
|     } | ||||
| 
 | ||||
|     dexOptions { | ||||
|         // Skip pre-dexing when running on Travis CI or when disabled via -Dpre-dex=false. | ||||
|         preDexLibraries = preDexEnabled && !travisBuild | ||||
|  |  | |||
|  | @ -1,5 +1,6 @@ | |||
| package eu.siacs.conversations.ui; | ||||
| 
 | ||||
| import android.databinding.DataBindingUtil; | ||||
| import android.support.v7.app.AlertDialog; | ||||
| import android.content.Context; | ||||
| import android.content.DialogInterface; | ||||
|  | @ -12,19 +13,14 @@ import android.provider.ContactsContract.CommonDataKinds; | |||
| import android.provider.ContactsContract.Contacts; | ||||
| import android.provider.ContactsContract.Intents; | ||||
| import android.support.v4.content.ContextCompat; | ||||
| import android.support.v7.widget.CardView; | ||||
| import android.view.LayoutInflater; | ||||
| import android.view.Menu; | ||||
| import android.view.MenuItem; | ||||
| import android.view.View; | ||||
| import android.view.View.OnClickListener; | ||||
| import android.widget.Button; | ||||
| import android.widget.CheckBox; | ||||
| import android.widget.CompoundButton; | ||||
| import android.widget.CompoundButton.OnCheckedChangeListener; | ||||
| import android.widget.ImageButton; | ||||
| import android.widget.LinearLayout; | ||||
| import android.widget.QuickContactBadge; | ||||
| import android.widget.TextView; | ||||
| import android.widget.Toast; | ||||
| 
 | ||||
|  | @ -39,6 +35,7 @@ import eu.siacs.conversations.R; | |||
| 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.databinding.ActivityContactDetailsBinding; | ||||
| import eu.siacs.conversations.entities.Account; | ||||
| import eu.siacs.conversations.entities.Contact; | ||||
| import eu.siacs.conversations.entities.ListItem; | ||||
|  | @ -104,20 +101,11 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp | |||
| 			} | ||||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
| 	ActivityContactDetailsBinding binding; | ||||
| 
 | ||||
| 	private Jid accountJid; | ||||
| 	private TextView lastseen; | ||||
| 	private Jid contactJid; | ||||
| 	private TextView contactJidTv; | ||||
| 	private TextView accountJidTv; | ||||
| 	private TextView statusMessage; | ||||
| 	private CheckBox send; | ||||
| 	private CheckBox receive; | ||||
| 	private Button addContactButton; | ||||
| 	private Button mShowInactiveDevicesButton; | ||||
| 	private QuickContactBadge badge; | ||||
| 	private LinearLayout keys; | ||||
| 	private CardView keysWrapper; | ||||
| 	private FlowLayout tags; | ||||
| 	private boolean showDynamicTags = false; | ||||
| 	private boolean showLastSeen = false; | ||||
| 	private boolean showInactiveOmemo = false; | ||||
|  | @ -205,26 +193,13 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp | |||
| 			} | ||||
| 		} | ||||
| 		this.messageFingerprint = getIntent().getStringExtra("fingerprint"); | ||||
| 		setContentView(R.layout.activity_contact_details); | ||||
| 		this.binding = DataBindingUtil.setContentView(this, R.layout.activity_contact_details); | ||||
| 
 | ||||
| 		contactJidTv = findViewById(R.id.details_contactjid); | ||||
| 		accountJidTv = findViewById(R.id.details_account); | ||||
| 		lastseen = findViewById(R.id.details_lastseen); | ||||
| 		statusMessage = findViewById(R.id.status_message); | ||||
| 		send = findViewById(R.id.details_send_presence); | ||||
| 		receive = findViewById(R.id.details_receive_presence); | ||||
| 		badge = findViewById(R.id.details_contact_badge); | ||||
| 		addContactButton = findViewById(R.id.add_contact_button); | ||||
| 		addContactButton.setOnClickListener(view -> showAddToRosterDialog(contact)); | ||||
| 		keys = findViewById(R.id.details_contact_keys); | ||||
| 		keysWrapper = findViewById(R.id.keys_wrapper); | ||||
| 		tags = findViewById(R.id.tags); | ||||
| 		mShowInactiveDevicesButton = findViewById(R.id.show_inactive_devices); | ||||
| 		if (getSupportActionBar() != null) { | ||||
| 			getSupportActionBar().setHomeButtonEnabled(true); | ||||
| 			getSupportActionBar().setDisplayHomeAsUpEnabled(true); | ||||
| 		} | ||||
| 		mShowInactiveDevicesButton.setOnClickListener(v -> { | ||||
| 		binding.showInactiveDevices.setOnClickListener(v -> { | ||||
| 			showInactiveOmemo = !showInactiveOmemo; | ||||
| 			populateView(); | ||||
| 		}); | ||||
|  | @ -336,18 +311,18 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp | |||
| 		invalidateOptionsMenu(); | ||||
| 		setTitle(contact.getDisplayName()); | ||||
| 		if (contact.showInRoster()) { | ||||
| 			send.setVisibility(View.VISIBLE); | ||||
| 			receive.setVisibility(View.VISIBLE); | ||||
| 			addContactButton.setVisibility(View.GONE); | ||||
| 			send.setOnCheckedChangeListener(null); | ||||
| 			receive.setOnCheckedChangeListener(null); | ||||
| 			binding.detailsSendPresence.setVisibility(View.VISIBLE); | ||||
| 			binding.detailsReceivePresence.setVisibility(View.VISIBLE); | ||||
| 			binding.addContactButton.setVisibility(View.GONE); | ||||
| 			binding.detailsSendPresence.setOnCheckedChangeListener(null); | ||||
| 			binding.detailsReceivePresence.setOnCheckedChangeListener(null); | ||||
| 
 | ||||
| 			List<String> statusMessages = contact.getPresences().getStatusMessages(); | ||||
| 			if (statusMessages.size() == 0) { | ||||
| 				statusMessage.setVisibility(View.GONE); | ||||
| 				binding.statusMessage.setVisibility(View.GONE); | ||||
| 			} else { | ||||
| 				StringBuilder builder = new StringBuilder(); | ||||
| 				statusMessage.setVisibility(View.VISIBLE); | ||||
| 				binding.statusMessage.setVisibility(View.VISIBLE); | ||||
| 				int s = statusMessages.size(); | ||||
| 				for(int i = 0; i < s; ++i) { | ||||
| 					if (s > 1) { | ||||
|  | @ -358,69 +333,69 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp | |||
| 						builder.append("\n"); | ||||
| 					} | ||||
| 				} | ||||
| 				statusMessage.setText(builder); | ||||
| 				binding.statusMessage.setText(builder); | ||||
| 			} | ||||
| 
 | ||||
| 			if (contact.getOption(Contact.Options.FROM)) { | ||||
| 				send.setText(R.string.send_presence_updates); | ||||
| 				send.setChecked(true); | ||||
| 				binding.detailsSendPresence.setText(R.string.send_presence_updates); | ||||
| 				binding.detailsSendPresence.setChecked(true); | ||||
| 			} else if (contact.getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST)) { | ||||
| 				send.setChecked(false); | ||||
| 				send.setText(R.string.send_presence_updates); | ||||
| 				binding.detailsSendPresence.setChecked(false); | ||||
| 				binding.detailsSendPresence.setText(R.string.send_presence_updates); | ||||
| 			} else { | ||||
| 				send.setText(R.string.preemptively_grant); | ||||
| 				binding.detailsSendPresence.setText(R.string.preemptively_grant); | ||||
| 				if (contact.getOption(Contact.Options.PREEMPTIVE_GRANT)) { | ||||
| 					send.setChecked(true); | ||||
| 					binding.detailsSendPresence.setChecked(true); | ||||
| 				} else { | ||||
| 					send.setChecked(false); | ||||
| 					binding.detailsSendPresence.setChecked(false); | ||||
| 				} | ||||
| 			} | ||||
| 			if (contact.getOption(Contact.Options.TO)) { | ||||
| 				receive.setText(R.string.receive_presence_updates); | ||||
| 				receive.setChecked(true); | ||||
| 				binding.detailsReceivePresence.setText(R.string.receive_presence_updates); | ||||
| 				binding.detailsReceivePresence.setChecked(true); | ||||
| 			} else { | ||||
| 				receive.setText(R.string.ask_for_presence_updates); | ||||
| 				binding.detailsReceivePresence.setText(R.string.ask_for_presence_updates); | ||||
| 				if (contact.getOption(Contact.Options.ASKING)) { | ||||
| 					receive.setChecked(true); | ||||
| 					binding.detailsReceivePresence.setChecked(true); | ||||
| 				} else { | ||||
| 					receive.setChecked(false); | ||||
| 					binding.detailsReceivePresence.setChecked(false); | ||||
| 				} | ||||
| 			} | ||||
| 			if (contact.getAccount().isOnlineAndConnected()) { | ||||
| 				receive.setEnabled(true); | ||||
| 				send.setEnabled(true); | ||||
| 				binding.detailsReceivePresence.setEnabled(true); | ||||
| 				binding.detailsSendPresence.setEnabled(true); | ||||
| 			} else { | ||||
| 				receive.setEnabled(false); | ||||
| 				send.setEnabled(false); | ||||
| 				binding.detailsReceivePresence.setEnabled(false); | ||||
| 				binding.detailsSendPresence.setEnabled(false); | ||||
| 			} | ||||
| 			send.setOnCheckedChangeListener(this.mOnSendCheckedChange); | ||||
| 			receive.setOnCheckedChangeListener(this.mOnReceiveCheckedChange); | ||||
| 			binding.detailsSendPresence.setOnCheckedChangeListener(this.mOnSendCheckedChange); | ||||
| 			binding.detailsReceivePresence.setOnCheckedChangeListener(this.mOnReceiveCheckedChange); | ||||
| 		} else { | ||||
| 			addContactButton.setVisibility(View.VISIBLE); | ||||
| 			send.setVisibility(View.GONE); | ||||
| 			receive.setVisibility(View.GONE); | ||||
| 			statusMessage.setVisibility(View.GONE); | ||||
| 			binding.addContactButton.setVisibility(View.VISIBLE); | ||||
| 			binding.detailsSendPresence.setVisibility(View.GONE); | ||||
| 			binding.detailsReceivePresence.setVisibility(View.GONE); | ||||
| 			binding.statusMessage.setVisibility(View.GONE); | ||||
| 		} | ||||
| 
 | ||||
| 		if (contact.isBlocked() && !this.showDynamicTags) { | ||||
| 			lastseen.setVisibility(View.VISIBLE); | ||||
| 			lastseen.setText(R.string.contact_blocked); | ||||
| 			binding.detailsLastseen.setVisibility(View.VISIBLE); | ||||
| 			binding.detailsLastseen.setText(R.string.contact_blocked); | ||||
| 		} else { | ||||
| 			if (showLastSeen | ||||
| 					&& contact.getLastseen() > 0 | ||||
| 					&& contact.getPresences().allOrNonSupport(Namespace.IDLE)) { | ||||
| 				lastseen.setVisibility(View.VISIBLE); | ||||
| 				lastseen.setText(UIHelper.lastseen(getApplicationContext(), contact.isActive(), contact.getLastseen())); | ||||
| 				binding.detailsLastseen.setVisibility(View.VISIBLE); | ||||
| 				binding.detailsLastseen.setText(UIHelper.lastseen(getApplicationContext(), contact.isActive(), contact.getLastseen())); | ||||
| 			} else { | ||||
| 				lastseen.setVisibility(View.GONE); | ||||
| 				binding.detailsLastseen.setVisibility(View.GONE); | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		if (contact.getPresences().size() > 1) { | ||||
| 			contactJidTv.setText(contact.getDisplayJid() + " (" | ||||
| 			binding.detailsContactjid.setText(contact.getDisplayJid() + " (" | ||||
| 					+ contact.getPresences().size() + ")"); | ||||
| 		} else { | ||||
| 			contactJidTv.setText(contact.getDisplayJid()); | ||||
| 			binding.detailsContactjid.setText(contact.getDisplayJid()); | ||||
| 		} | ||||
| 		String account; | ||||
| 		if (Config.DOMAIN_LOCK != null) { | ||||
|  | @ -428,17 +403,17 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp | |||
| 		} else { | ||||
| 			account = contact.getAccount().getJid().toBareJid().toString(); | ||||
| 		} | ||||
| 		accountJidTv.setText(getString(R.string.using_account, account)); | ||||
| 		badge.setImageBitmap(avatarService().get(contact, getPixel(72))); | ||||
| 		badge.setOnClickListener(this.onBadgeClick); | ||||
| 		binding.detailsAccount.setText(getString(R.string.using_account, account)); | ||||
| 		binding.detailsContactBadge.setImageBitmap(avatarService().get(contact, getPixel(72))); | ||||
| 		binding.detailsContactBadge.setOnClickListener(this.onBadgeClick); | ||||
| 
 | ||||
| 		keys.removeAllViews(); | ||||
| 		binding.detailsContactKeys.removeAllViews(); | ||||
| 		boolean hasKeys = false; | ||||
| 		LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); | ||||
| 		if (Config.supportOtr()) { | ||||
| 			for (final String otrFingerprint : contact.getOtrFingerprints()) { | ||||
| 				hasKeys = true; | ||||
| 				View view = inflater.inflate(R.layout.contact_key, keys, false); | ||||
| 				View view = inflater.inflate(R.layout.contact_key, binding.detailsContactKeys, false); | ||||
| 				TextView key = (TextView) view.findViewById(R.id.key); | ||||
| 				TextView keyType = (TextView) view.findViewById(R.id.key_type); | ||||
| 				ImageButton removeButton = (ImageButton) view | ||||
|  | @ -451,7 +426,7 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp | |||
| 				} else { | ||||
| 					keyType.setText(R.string.otr_fingerprint); | ||||
| 				} | ||||
| 				keys.addView(view); | ||||
| 				binding.detailsContactKeys.addView(view); | ||||
| 				removeButton.setOnClickListener(new OnClickListener() { | ||||
| 
 | ||||
| 					@Override | ||||
|  | @ -478,21 +453,21 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp | |||
| 				} | ||||
| 				if (!trust.isCompromised()) { | ||||
| 					boolean highlight = session.getFingerprint().equals(messageFingerprint); | ||||
| 					addFingerprintRow(keys, session, highlight); | ||||
| 					addFingerprintRow(binding.detailsContactKeys, session, highlight); | ||||
| 				} | ||||
| 			} | ||||
| 			if (showsInactive || skippedInactive) { | ||||
| 				mShowInactiveDevicesButton.setText(showsInactive ? R.string.hide_inactive_devices : R.string.show_inactive_devices); | ||||
| 				mShowInactiveDevicesButton.setVisibility(View.VISIBLE); | ||||
| 				binding.showInactiveDevices.setText(showsInactive ? R.string.hide_inactive_devices : R.string.show_inactive_devices); | ||||
| 				binding.showInactiveDevices.setVisibility(View.VISIBLE); | ||||
| 			} else { | ||||
| 				mShowInactiveDevicesButton.setVisibility(View.GONE); | ||||
| 				binding.showInactiveDevices.setVisibility(View.GONE); | ||||
| 			} | ||||
| 		} else { | ||||
| 			mShowInactiveDevicesButton.setVisibility(View.GONE); | ||||
| 			binding.showInactiveDevices.setVisibility(View.GONE); | ||||
| 		} | ||||
| 		if (Config.supportOpenPgp() && contact.getPgpKeyId() != 0) { | ||||
| 			hasKeys = true; | ||||
| 			View view = inflater.inflate(R.layout.contact_key, keys, false); | ||||
| 			View view = inflater.inflate(R.layout.contact_key, binding.detailsContactKeys, false); | ||||
| 			TextView key = (TextView) view.findViewById(R.id.key); | ||||
| 			TextView keyType = (TextView) view.findViewById(R.id.key_type); | ||||
| 			keyType.setText(R.string.openpgp_key_id); | ||||
|  | @ -510,21 +485,21 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp | |||
| 			view.setOnClickListener(openKey); | ||||
| 			key.setOnClickListener(openKey); | ||||
| 			keyType.setOnClickListener(openKey); | ||||
| 			keys.addView(view); | ||||
| 			binding.detailsContactKeys.addView(view); | ||||
| 		} | ||||
| 		keysWrapper.setVisibility(hasKeys ? View.VISIBLE : View.GONE); | ||||
| 		binding.keysWrapper.setVisibility(hasKeys ? View.VISIBLE : View.GONE); | ||||
| 
 | ||||
| 		List<ListItem.Tag> tagList = contact.getTags(this); | ||||
| 		if (tagList.size() == 0 || !this.showDynamicTags) { | ||||
| 			tags.setVisibility(View.GONE); | ||||
| 			binding.tags.setVisibility(View.GONE); | ||||
| 		} else { | ||||
| 			tags.setVisibility(View.VISIBLE); | ||||
| 			tags.removeAllViewsInLayout(); | ||||
| 			binding.tags.setVisibility(View.VISIBLE); | ||||
| 			binding.tags.removeAllViewsInLayout(); | ||||
| 			for(final ListItem.Tag tag : tagList) { | ||||
| 				final TextView tv = (TextView) inflater.inflate(R.layout.list_item_tag,tags,false); | ||||
| 				final TextView tv = (TextView) inflater.inflate(R.layout.list_item_tag,binding.tags,false); | ||||
| 				tv.setText(tag.getName()); | ||||
| 				tv.setBackgroundColor(tag.getColor()); | ||||
| 				tags.addView(tv); | ||||
| 				binding.tags.addView(tv); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  |  | |||
|  | @ -1,150 +1,155 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|             android:layout_width="fill_parent" | ||||
|             android:layout_height="fill_parent" | ||||
|             android:background="?attr/color_background_secondary"> | ||||
| <layout 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"> | ||||
| 
 | ||||
|     <LinearLayout | ||||
|         android:id="@+id/details_main_layout" | ||||
|     <ScrollView | ||||
|         android:layout_width="fill_parent" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:orientation="vertical"> | ||||
|         android:layout_height="fill_parent" | ||||
|         android:background="?attr/color_background_secondary"> | ||||
| 
 | ||||
|         <android.support.v7.widget.CardView | ||||
|             android:layout_width="match_parent" | ||||
|         <LinearLayout | ||||
|             android:id="@+id/details_main_layout" | ||||
|             android:layout_width="fill_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginBottom="@dimen/activity_vertical_margin" | ||||
|             android:layout_marginLeft="@dimen/activity_horizontal_margin" | ||||
|             android:layout_marginRight="@dimen/activity_horizontal_margin" | ||||
|             android:layout_marginTop="@dimen/activity_vertical_margin"> | ||||
|             android:orientation="vertical"> | ||||
| 
 | ||||
|             <RelativeLayout | ||||
|             <android.support.v7.widget.CardView | ||||
|                 android:layout_width="match_parent" | ||||
|                 android:layout_height="wrap_content" | ||||
|                 android:padding="@dimen/infocard_padding"> | ||||
|                 android:layout_marginBottom="@dimen/activity_vertical_margin" | ||||
|                 android:layout_marginLeft="@dimen/activity_horizontal_margin" | ||||
|                 android:layout_marginRight="@dimen/activity_horizontal_margin" | ||||
|                 android:layout_marginTop="@dimen/activity_vertical_margin"> | ||||
| 
 | ||||
|                 <QuickContactBadge | ||||
|                     android:id="@+id/details_contact_badge" | ||||
|                     android:layout_width="72dp" | ||||
|                     android:layout_height="72dp" | ||||
|                     android:layout_alignParentTop="true" | ||||
|                     android:scaleType="centerCrop"/> | ||||
|                 <RelativeLayout | ||||
|                     android:layout_width="match_parent" | ||||
|                     android:layout_height="wrap_content" | ||||
|                     android:padding="@dimen/infocard_padding"> | ||||
| 
 | ||||
|                     <QuickContactBadge | ||||
|                         android:id="@+id/details_contact_badge" | ||||
|                         android:layout_width="72dp" | ||||
|                         android:layout_height="72dp" | ||||
|                         android:layout_alignParentTop="true" | ||||
|                         android:scaleType="centerCrop"/> | ||||
| 
 | ||||
|                     <LinearLayout | ||||
|                         android:id="@+id/details_jidbox" | ||||
|                         android:layout_width="wrap_content" | ||||
|                         android:layout_height="wrap_content" | ||||
|                         android:layout_marginLeft="16dp" | ||||
|                         android:layout_toRightOf="@+id/details_contact_badge" | ||||
|                         android:orientation="vertical"> | ||||
| 
 | ||||
|                         <TextView | ||||
|                             android:id="@+id/details_contactjid" | ||||
|                             android:layout_width="wrap_content" | ||||
|                             android:layout_height="wrap_content" | ||||
|                             android:text="@string/account_settings_example_jabber_id" | ||||
|                             android:textColor="?attr/color_text_primary" | ||||
|                             android:textSize="?attr/TextSizeHeadline" | ||||
|                             android:textStyle="bold"/> | ||||
| 
 | ||||
|                         <com.wefika.flowlayout.FlowLayout | ||||
|                             android:id="@+id/tags" | ||||
|                             android:layout_width="wrap_content" | ||||
|                             android:layout_height="wrap_content" | ||||
|                             android:layout_marginBottom="4dp" | ||||
|                             android:layout_marginLeft="-2dp" | ||||
|                             android:layout_marginTop="4dp" | ||||
|                             android:orientation="horizontal"> | ||||
|                         </com.wefika.flowlayout.FlowLayout> | ||||
| 
 | ||||
|                         <TextView | ||||
|                             android:id="@+id/details_lastseen" | ||||
|                             android:layout_width="wrap_content" | ||||
|                             android:layout_height="wrap_content" | ||||
|                             android:layout_marginTop="4dp" | ||||
|                             android:textColor="?attr/color_text_primary" | ||||
|                             android:textSize="?attr/TextSizeBody"/> | ||||
| 
 | ||||
|                         <TextView | ||||
|                             android:id="@+id/status_message" | ||||
|                             android:layout_width="wrap_content" | ||||
|                             android:layout_height="wrap_content" | ||||
|                             android:layout_marginTop="8dp" | ||||
|                             android:textColor="?attr/color_text_secondary" | ||||
|                             android:textSize="?attr/TextSizeBody" | ||||
|                             android:textStyle="italic"/> | ||||
| 
 | ||||
|                         <Button | ||||
|                             android:id="@+id/add_contact_button" | ||||
|                             android:layout_width="wrap_content" | ||||
|                             android:layout_height="wrap_content" | ||||
|                             android:layout_marginTop="8dp" | ||||
|                             android:text="@string/add_contact"/> | ||||
| 
 | ||||
|                         <CheckBox | ||||
|                             android:id="@+id/details_send_presence" | ||||
|                             android:layout_width="wrap_content" | ||||
|                             android:layout_height="wrap_content" | ||||
|                             android:layout_marginTop="8dp" | ||||
|                             android:text="@string/send_presence_updates" | ||||
|                             android:textColor="?attr/color_text_primary" | ||||
|                             android:textSize="?attr/TextSizeBody"/> | ||||
| 
 | ||||
|                         <CheckBox | ||||
|                             android:id="@+id/details_receive_presence" | ||||
|                             android:layout_width="wrap_content" | ||||
|                             android:layout_height="wrap_content" | ||||
|                             android:text="@string/receive_presence_updates" | ||||
|                             android:textColor="?attr/color_text_primary" | ||||
|                             android:textSize="?attr/TextSizeBody"/> | ||||
|                     </LinearLayout> | ||||
| 
 | ||||
|                     <TextView | ||||
|                         android:id="@+id/details_account" | ||||
|                         android:layout_width="wrap_content" | ||||
|                         android:layout_height="wrap_content" | ||||
|                         android:layout_alignParentRight="true" | ||||
|                         android:layout_below="@+id/details_jidbox" | ||||
|                         android:layout_marginTop="32dp" | ||||
|                         android:text="@string/using_account" | ||||
|                         android:textColor="?attr/color_text_secondary" | ||||
|                         android:textSize="?attr/TextSizeInfo"/> | ||||
|                 </RelativeLayout> | ||||
|             </android.support.v7.widget.CardView> | ||||
| 
 | ||||
|             <android.support.v7.widget.CardView | ||||
|                 android:id="@+id/keys_wrapper" | ||||
|                 android:layout_width="fill_parent" | ||||
|                 android:layout_height="wrap_content" | ||||
|                 android:layout_marginBottom="@dimen/activity_vertical_margin" | ||||
|                 android:layout_marginLeft="@dimen/activity_horizontal_margin" | ||||
|                 android:layout_marginRight="@dimen/activity_horizontal_margin" | ||||
|                 android:layout_marginTop="@dimen/activity_vertical_margin"> | ||||
| 
 | ||||
|                 <LinearLayout | ||||
|                     android:id="@+id/details_jidbox" | ||||
|                     android:layout_width="wrap_content" | ||||
|                     android:layout_width="match_parent" | ||||
|                     android:layout_height="wrap_content" | ||||
|                     android:layout_marginLeft="16dp" | ||||
|                     android:layout_toRightOf="@+id/details_contact_badge" | ||||
|                     android:orientation="vertical"> | ||||
|                     android:orientation="vertical" | ||||
|                     android:padding="@dimen/infocard_padding"> | ||||
| 
 | ||||
|                     <TextView | ||||
|                         android:id="@+id/details_contactjid" | ||||
|                         android:layout_width="wrap_content" | ||||
|                     <LinearLayout | ||||
|                         android:id="@+id/details_contact_keys" | ||||
|                         android:layout_width="fill_parent" | ||||
|                         android:layout_height="wrap_content" | ||||
|                         android:text="@string/account_settings_example_jabber_id" | ||||
|                         android:textColor="?attr/color_text_primary" | ||||
|                         android:textSize="?attr/TextSizeHeadline" | ||||
|                         android:textStyle="bold"/> | ||||
| 
 | ||||
|                     <com.wefika.flowlayout.FlowLayout | ||||
|                         android:id="@+id/tags" | ||||
|                         android:layout_width="wrap_content" | ||||
|                         android:layout_height="wrap_content" | ||||
|                         android:layout_marginBottom="4dp" | ||||
|                         android:layout_marginLeft="-2dp" | ||||
|                         android:layout_marginTop="4dp" | ||||
|                         android:orientation="horizontal"> | ||||
|                     </com.wefika.flowlayout.FlowLayout> | ||||
| 
 | ||||
|                     <TextView | ||||
|                         android:id="@+id/details_lastseen" | ||||
|                         android:layout_width="wrap_content" | ||||
|                         android:layout_height="wrap_content" | ||||
|                         android:layout_marginTop="4dp" | ||||
|                         android:textColor="?attr/color_text_primary" | ||||
|                         android:textSize="?attr/TextSizeBody"/> | ||||
| 
 | ||||
|                     <TextView | ||||
|                         android:id="@+id/status_message" | ||||
|                         android:layout_width="wrap_content" | ||||
|                         android:layout_height="wrap_content" | ||||
|                         android:layout_marginTop="8dp" | ||||
|                         android:textColor="?attr/color_text_secondary" | ||||
|                         android:textSize="?attr/TextSizeBody" | ||||
|                         android:textStyle="italic"/> | ||||
|                         android:orientation="vertical"> | ||||
|                     </LinearLayout> | ||||
| 
 | ||||
|                     <Button | ||||
|                         android:id="@+id/add_contact_button" | ||||
|                         android:id="@+id/show_inactive_devices" | ||||
|                         style="?android:attr/borderlessButtonStyle" | ||||
|                         android:layout_width="wrap_content" | ||||
|                         android:layout_height="wrap_content" | ||||
|                         android:layout_gravity="center_horizontal" | ||||
|                         android:layout_marginTop="8dp" | ||||
|                         android:text="@string/add_contact"/> | ||||
| 
 | ||||
|                     <CheckBox | ||||
|                         android:id="@+id/details_send_presence" | ||||
|                         android:layout_width="wrap_content" | ||||
|                         android:layout_height="wrap_content" | ||||
|                         android:layout_marginTop="8dp" | ||||
|                         android:text="@string/send_presence_updates" | ||||
|                         android:textColor="?attr/color_text_primary" | ||||
|                         android:textSize="?attr/TextSizeBody"/> | ||||
| 
 | ||||
|                     <CheckBox | ||||
|                         android:id="@+id/details_receive_presence" | ||||
|                         android:layout_width="wrap_content" | ||||
|                         android:layout_height="wrap_content" | ||||
|                         android:text="@string/receive_presence_updates" | ||||
|                         android:textColor="?attr/color_text_primary" | ||||
|                         android:textSize="?attr/TextSizeBody"/> | ||||
|                         android:text="@string/show_inactive_devices" | ||||
|                         android:textColor="@color/accent"/> | ||||
|                 </LinearLayout> | ||||
|             </android.support.v7.widget.CardView> | ||||
|         </LinearLayout> | ||||
| 
 | ||||
|                 <TextView | ||||
|                     android:id="@+id/details_account" | ||||
|                     android:layout_width="wrap_content" | ||||
|                     android:layout_height="wrap_content" | ||||
|                     android:layout_alignParentRight="true" | ||||
|                     android:layout_below="@+id/details_jidbox" | ||||
|                     android:layout_marginTop="32dp" | ||||
|                     android:text="@string/using_account" | ||||
|                     android:textColor="?attr/color_text_secondary" | ||||
|                     android:textSize="?attr/TextSizeInfo"/> | ||||
|             </RelativeLayout> | ||||
|         </android.support.v7.widget.CardView> | ||||
| 
 | ||||
|         <android.support.v7.widget.CardView | ||||
|             android:id="@+id/keys_wrapper" | ||||
|             android:layout_width="fill_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginBottom="@dimen/activity_vertical_margin" | ||||
|             android:layout_marginLeft="@dimen/activity_horizontal_margin" | ||||
|             android:layout_marginRight="@dimen/activity_horizontal_margin" | ||||
|             android:layout_marginTop="@dimen/activity_vertical_margin"> | ||||
| 
 | ||||
|             <LinearLayout | ||||
|                 android:layout_width="match_parent" | ||||
|                 android:layout_height="wrap_content" | ||||
|                 android:orientation="vertical" | ||||
|                 android:padding="@dimen/infocard_padding"> | ||||
| 
 | ||||
|                 <LinearLayout | ||||
|                     android:id="@+id/details_contact_keys" | ||||
|                     android:layout_width="fill_parent" | ||||
|                     android:layout_height="wrap_content" | ||||
|                     android:orientation="vertical"> | ||||
|                 </LinearLayout> | ||||
| 
 | ||||
|                 <Button | ||||
|                     android:id="@+id/show_inactive_devices" | ||||
|                     style="?android:attr/borderlessButtonStyle" | ||||
|                     android:layout_width="wrap_content" | ||||
|                     android:layout_height="wrap_content" | ||||
|                     android:layout_gravity="center_horizontal" | ||||
|                     android:layout_marginTop="8dp" | ||||
|                     android:text="@string/show_inactive_devices" | ||||
|                     android:textColor="@color/accent"/> | ||||
|             </LinearLayout> | ||||
|         </android.support.v7.widget.CardView> | ||||
|     </LinearLayout> | ||||
| 
 | ||||
| </ScrollView> | ||||
|     </ScrollView> | ||||
| </layout> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Daniel Gultsch
						Daniel Gultsch