migrate to CardView in contact and muc details

This commit is contained in:
Daniel Gultsch 2018-02-17 18:07:20 +01:00
parent 63fb5d98cc
commit eb25643d94
5 changed files with 331 additions and 338 deletions

View file

@ -39,6 +39,7 @@ dependencies {
implementation 'com.soundcloud.android:android-crop:1.0.1@aar' implementation 'com.soundcloud.android:android-crop:1.0.1@aar'
implementation "com.android.support:support-v13:$supportLibVersion" implementation "com.android.support:support-v13:$supportLibVersion"
implementation "com.android.support:appcompat-v7:$supportLibVersion" implementation "com.android.support:appcompat-v7:$supportLibVersion"
implementation "com.android.support:cardview-v7:$supportLibVersion"
implementation "com.android.support:support-emoji-appcompat:$supportLibVersion" implementation "com.android.support:support-emoji-appcompat:$supportLibVersion"
implementation "com.android.support:support-emoji:$supportLibVersion" implementation "com.android.support:support-emoji:$supportLibVersion"
implementation "com.android.support:design:$supportLibVersion" implementation "com.android.support:design:$supportLibVersion"

View file

@ -6,6 +6,7 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.IntentSender.SendIntentException; import android.content.IntentSender.SendIntentException;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.view.ContextMenu; import android.view.ContextMenu;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
@ -59,7 +60,7 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers
private TextView mFullJid; private TextView mFullJid;
private TextView mAccountJid; private TextView mAccountJid;
private LinearLayout membersView; private LinearLayout membersView;
private LinearLayout mMoreDetails; private CardView mMoreDetails;
private RelativeLayout mMucSettings; private RelativeLayout mMucSettings;
private TextView mConferenceType; private TextView mConferenceType;
private TableLayout mConferenceInfoTable; private TableLayout mConferenceInfoTable;
@ -231,43 +232,33 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_muc_details); setContentView(R.layout.activity_muc_details);
mYourNick = (TextView) findViewById(R.id.muc_your_nick); mYourNick = findViewById(R.id.muc_your_nick);
mYourPhoto = (ImageView) findViewById(R.id.your_photo); mYourPhoto = findViewById(R.id.your_photo);
ImageButton mEditNickButton = (ImageButton) findViewById(R.id.edit_nick_button); ImageButton mEditNickButton = findViewById(R.id.edit_nick_button);
mFullJid = (TextView) findViewById(R.id.muc_jabberid); mFullJid = findViewById(R.id.muc_jabberid);
membersView = (LinearLayout) findViewById(R.id.muc_members); membersView = findViewById(R.id.muc_members);
mAccountJid = (TextView) findViewById(R.id.details_account); mAccountJid = findViewById(R.id.details_account);
mMucSettings = findViewById(R.id.muc_settings); mMucSettings = findViewById(R.id.muc_settings);
mMoreDetails = (LinearLayout) findViewById(R.id.muc_more_details); mMoreDetails = findViewById(R.id.muc_more_details);
mMoreDetails.setVisibility(View.GONE); mMoreDetails.setVisibility(View.GONE);
mChangeConferenceSettingsButton = (ImageButton) findViewById(R.id.change_conference_button); mChangeConferenceSettingsButton = findViewById(R.id.change_conference_button);
mChangeConferenceSettingsButton.setOnClickListener(this.mChangeConferenceSettings); mChangeConferenceSettingsButton.setOnClickListener(this.mChangeConferenceSettings);
mInviteButton = (Button) findViewById(R.id.invite); mInviteButton = findViewById(R.id.invite);
mInviteButton.setOnClickListener(inviteListener); mInviteButton.setOnClickListener(inviteListener);
mConferenceType = (TextView) findViewById(R.id.muc_conference_type); mConferenceType = findViewById(R.id.muc_conference_type);
if (getSupportActionBar() != null) { if (getSupportActionBar() != null) {
getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
} }
mEditNickButton.setOnClickListener(new OnClickListener() { mEditNickButton.setOnClickListener(v -> quickEdit(mConversation.getMucOptions().getActualNick(),
@Override
public void onClick(View v) {
quickEdit(mConversation.getMucOptions().getActualNick(),
0, 0,
new OnValueEdited() { value -> {
@Override
public String onValueEdited(String value) {
if (xmppConnectionService.renameInMuc(mConversation,value,renameCallback)) { if (xmppConnectionService.renameInMuc(mConversation,value,renameCallback)) {
return null; return null;
} else { } else {
return getString(R.string.invalid_username); return getString(R.string.invalid_username);
} }
} }));
});
}
});
this.mAdvancedMode = getPreferences().getBoolean("advanced_muc_mode", false); this.mAdvancedMode = getPreferences().getBoolean("advanced_muc_mode", false);
this.mConferenceInfoTable = (TableLayout) findViewById(R.id.muc_info_more); this.mConferenceInfoTable = (TableLayout) findViewById(R.id.muc_info_more);
this.mConferenceInfoTable.setVisibility(this.mAdvancedMode ? View.VISIBLE : View.GONE); this.mConferenceInfoTable.setVisibility(this.mAdvancedMode ? View.VISIBLE : View.GONE);

View file

@ -12,6 +12,7 @@ import android.provider.ContactsContract.CommonDataKinds;
import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Intents; import android.provider.ContactsContract.Intents;
import android.support.v4.content.ContextCompat; import android.support.v4.content.ContextCompat;
import android.support.v7.widget.CardView;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
@ -115,7 +116,7 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp
private Button mShowInactiveDevicesButton; private Button mShowInactiveDevicesButton;
private QuickContactBadge badge; private QuickContactBadge badge;
private LinearLayout keys; private LinearLayout keys;
private LinearLayout keysWrapper; private CardView keysWrapper;
private FlowLayout tags; private FlowLayout tags;
private boolean showDynamicTags = false; private boolean showDynamicTags = false;
private boolean showLastSeen = false; private boolean showLastSeen = false;
@ -206,34 +207,26 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp
this.messageFingerprint = getIntent().getStringExtra("fingerprint"); this.messageFingerprint = getIntent().getStringExtra("fingerprint");
setContentView(R.layout.activity_contact_details); setContentView(R.layout.activity_contact_details);
contactJidTv = (TextView) findViewById(R.id.details_contactjid); contactJidTv = findViewById(R.id.details_contactjid);
accountJidTv = (TextView) findViewById(R.id.details_account); accountJidTv = findViewById(R.id.details_account);
lastseen = (TextView) findViewById(R.id.details_lastseen); lastseen = findViewById(R.id.details_lastseen);
statusMessage = (TextView) findViewById(R.id.status_message); statusMessage = findViewById(R.id.status_message);
send = (CheckBox) findViewById(R.id.details_send_presence); send = findViewById(R.id.details_send_presence);
receive = (CheckBox) findViewById(R.id.details_receive_presence); receive = findViewById(R.id.details_receive_presence);
badge = (QuickContactBadge) findViewById(R.id.details_contact_badge); badge = findViewById(R.id.details_contact_badge);
addContactButton = (Button) findViewById(R.id.add_contact_button); addContactButton = findViewById(R.id.add_contact_button);
addContactButton.setOnClickListener(new OnClickListener() { addContactButton.setOnClickListener(view -> showAddToRosterDialog(contact));
@Override keys = findViewById(R.id.details_contact_keys);
public void onClick(View view) { keysWrapper = findViewById(R.id.keys_wrapper);
showAddToRosterDialog(contact); tags = findViewById(R.id.tags);
} mShowInactiveDevicesButton = findViewById(R.id.show_inactive_devices);
});
keys = (LinearLayout) findViewById(R.id.details_contact_keys);
keysWrapper = (LinearLayout) findViewById(R.id.keys_wrapper);
tags = (FlowLayout) findViewById(R.id.tags);
mShowInactiveDevicesButton = (Button) findViewById(R.id.show_inactive_devices);
if (getSupportActionBar() != null) { if (getSupportActionBar() != null) {
getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
} }
mShowInactiveDevicesButton.setOnClickListener(new OnClickListener() { mShowInactiveDevicesButton.setOnClickListener(v -> {
@Override
public void onClick(View v) {
showInactiveOmemo = !showInactiveOmemo; showInactiveOmemo = !showInactiveOmemo;
populateView(); populateView();
}
}); });
} }

View file

@ -10,14 +10,17 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<RelativeLayout <android.support.v7.widget.CardView
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginLeft="@dimen/activity_horizontal_margin" android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin" android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_marginTop="@dimen/activity_vertical_margin" android:layout_marginTop="@dimen/activity_vertical_margin">
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:background="?attr/infocard_border" <RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/infocard_padding"> android:padding="@dimen/infocard_padding">
<QuickContactBadge <QuickContactBadge
@ -48,28 +51,28 @@
android:id="@+id/tags" android:id="@+id/tags"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginLeft="-2dp"
android:layout_marginBottom="4dp" android:layout_marginBottom="4dp"
android:layout_marginLeft="-2dp"
android:layout_marginTop="4dp"
android:orientation="horizontal"> android:orientation="horizontal">
</com.wefika.flowlayout.FlowLayout> </com.wefika.flowlayout.FlowLayout>
<TextView <TextView
android:id="@+id/details_lastseen" android:id="@+id/details_lastseen"
android:layout_marginTop="4dp"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textColor="?attr/color_text_primary" android:textColor="?attr/color_text_primary"
android:textSize="?attr/TextSizeBody"/> android:textSize="?attr/TextSizeBody"/>
<TextView <TextView
android:layout_marginTop="8dp"
android:id="@+id/status_message" android:id="@+id/status_message"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:textColor="?attr/color_text_secondary" android:textColor="?attr/color_text_secondary"
android:textStyle="italic" android:textSize="?attr/TextSizeBody"
android:textSize="?attr/TextSizeBody" /> android:textStyle="italic"/>
<Button <Button
android:id="@+id/add_contact_button" android:id="@+id/add_contact_button"
@ -107,41 +110,41 @@
android:textColor="?attr/color_text_secondary" android:textColor="?attr/color_text_secondary"
android:textSize="?attr/TextSizeInfo"/> android:textSize="?attr/TextSizeInfo"/>
</RelativeLayout> </RelativeLayout>
</android.support.v7.widget.CardView>
<LinearLayout <android.support.v7.widget.CardView
android:id="@+id/keys_wrapper" android:id="@+id/keys_wrapper"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginLeft="@dimen/activity_horizontal_margin" android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin" android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_marginTop="@dimen/activity_vertical_margin" 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 <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical"
android:padding="@dimen/infocard_padding">
<LinearLayout <LinearLayout
android:id="@+id/details_contact_keys" 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:divider="?android:dividerHorizontal" android:orientation="vertical">
android:orientation="vertical"
android:showDividers="middle" >
</LinearLayout> </LinearLayout>
<Button <Button
android:layout_marginTop="8dp"
android:id="@+id/show_inactive_devices" android:id="@+id/show_inactive_devices"
style="?android:attr/borderlessButtonStyle" style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/show_inactive_devices"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
android:text="@string/show_inactive_devices"
android:textColor="@color/accent"/> android:textColor="@color/accent"/>
</LinearLayout> </LinearLayout>
</LinearLayout> </android.support.v7.widget.CardView>
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>

View file

@ -11,16 +11,19 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <android.support.v7.widget.CardView
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/activity_vertical_margin" android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginLeft="@dimen/activity_horizontal_margin" android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin" android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_marginTop="@dimen/activity_vertical_margin" android:layout_marginTop="@dimen/activity_vertical_margin">
android:background="?attr/infocard_border"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:padding="@dimen/infocard_padding"> android:padding="@dimen/infocard_padding">fill_parent
<TextView <TextView
android:id="@+id/muc_jabberid" android:id="@+id/muc_jabberid"
@ -83,9 +86,9 @@
</RelativeLayout> </RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/muc_settings"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:id="@+id/muc_settings">
<TextView <TextView
android:id="@+id/muc_conference_type" android:id="@+id/muc_conference_type"
@ -186,28 +189,29 @@
android:textColor="?attr/color_text_secondary" android:textColor="?attr/color_text_secondary"
android:textSize="?attr/TextSizeInfo"/> android:textSize="?attr/TextSizeInfo"/>
</LinearLayout> </LinearLayout>
</android.support.v7.widget.CardView>
<LinearLayout <android.support.v7.widget.CardView
android:id="@+id/muc_more_details" android:id="@+id/muc_more_details"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/activity_vertical_margin" android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginLeft="@dimen/activity_horizontal_margin" android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin" android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_marginTop="@dimen/activity_vertical_margin" android:layout_marginTop="@dimen/activity_vertical_margin">
android:background="?attr/infocard_border"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:padding="@dimen/infocard_padding"> android:padding="@dimen/infocard_padding">
<LinearLayout <LinearLayout
android:id="@+id/muc_members" android:id="@+id/muc_members"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" android:layout_weight="1"
android:divider="?android:dividerHorizontal" android:orientation="vertical">
android:orientation="vertical"
android:showDividers="middle">
</LinearLayout> </LinearLayout>
<Button <Button
@ -219,6 +223,7 @@
android:layout_marginTop="24dp" android:layout_marginTop="24dp"
android:text="@string/invite_contact"/> android:text="@string/invite_contact"/>
</LinearLayout> </LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>