Browse Source

Merge pull request #1111 from nextcloud/toolbarAlignment

Toolbar/list-item/preferences alignments
Marcel Hibbe 4 years ago
parent
commit
617af18ffa

+ 1 - 0
CHANGELOG.md

@@ -12,6 +12,7 @@ Types of changes can be: Added/Changed/Deprecated/Removed/Fixed/Security
 ### Changed
 - improve conversation list design and dark/light theming (@AndyScherzinger)
 - introduce new dark/light toolbar/searchbar design (@AndyScherzinger)
+- improve content/toolbar alignments (@AndyScherzinger)
 
 ### Fixed
 - @ in username is allowed for phonebook sync

+ 30 - 28
app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt

@@ -30,7 +30,6 @@ import android.view.MenuItem
 import android.view.View
 import android.view.ViewGroup
 import android.widget.ProgressBar
-import android.widget.TextView
 import androidx.appcompat.widget.SwitchCompat
 import androidx.emoji.widget.EmojiTextView
 import androidx.recyclerview.widget.RecyclerView
@@ -70,10 +69,13 @@ import com.nextcloud.talk.utils.DateUtils
 import com.nextcloud.talk.utils.DisplayUtils
 import com.nextcloud.talk.utils.bundle.BundleKeys
 import com.nextcloud.talk.utils.preferences.preferencestorage.DatabaseStorageModule
-import com.nextcloud.talk.utils.ui.MaterialPreferenceCategoryWithRightLink
 import com.yarolegovich.lovelydialog.LovelySaveStateHandler
 import com.yarolegovich.lovelydialog.LovelyStandardDialog
-import com.yarolegovich.mp.*
+import com.yarolegovich.mp.MaterialChoicePreference
+import com.yarolegovich.mp.MaterialPreferenceCategory
+import com.yarolegovich.mp.MaterialPreferenceScreen
+import com.yarolegovich.mp.MaterialStandardPreference
+import com.yarolegovich.mp.MaterialSwitchPreference
 import eu.davidea.flexibleadapter.FlexibleAdapter
 import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager
 import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
@@ -110,7 +112,9 @@ class ConversationInfoController(args: Bundle) : BaseController(args), FlexibleA
     @BindView(R.id.display_name_text)
     lateinit var conversationDisplayName: EmojiTextView
     @BindView(R.id.participants_list_category)
-    lateinit var participantsListCategory: MaterialPreferenceCategoryWithRightLink
+    lateinit var participantsListCategory: MaterialPreferenceCategory
+    @BindView(R.id.addParticipantsAction)
+    lateinit var addParticipantsAction: MaterialStandardPreference;
     @BindView(R.id.recycler_view)
     lateinit var recyclerView: RecyclerView
     @BindView(R.id.deleteConversationAction)
@@ -121,9 +125,6 @@ class ConversationInfoController(args: Bundle) : BaseController(args), FlexibleA
     lateinit var ownOptionsCategory: MaterialPreferenceCategory
     @BindView(R.id.muteCalls)
     lateinit var muteCalls: MaterialSwitchPreference
-    @BindView(R.id.mpc_action)
-    lateinit var actionTextView: TextView;
-
     @set:Inject
     lateinit var ncApi: NcApi
     @set:Inject
@@ -200,7 +201,7 @@ class ConversationInfoController(args: Bundle) : BaseController(args), FlexibleA
             saveStateHandler = LovelySaveStateHandler()
         }
 
-        actionTextView.visibility = View.GONE
+        addParticipantsAction.visibility = View.GONE
     }
 
     private fun setupWebinaryView() {
@@ -350,24 +351,6 @@ class ConversationInfoController(args: Bundle) : BaseController(args), FlexibleA
             recyclerView.adapter = adapter
 
             adapter!!.addListener(this)
-            actionTextView.setOnClickListener {
-                val bundle = Bundle()
-                val existingParticipantsId = arrayListOf<String>()
-
-                recyclerViewItems.forEach {
-                    val userItem = it as UserItem
-                    existingParticipantsId.add(userItem.model.userId)
-                }
-
-                bundle.putBoolean(BundleKeys.KEY_ADD_PARTICIPANTS, true);
-                bundle.putStringArrayList(BundleKeys.KEY_EXISTING_PARTICIPANTS, existingParticipantsId)
-                bundle.putString(BundleKeys.KEY_TOKEN, conversation!!.token)
-
-                getRouter().pushController((RouterTransaction.with(ContactsController(bundle))
-                        .pushChangeHandler(HorizontalChangeHandler())
-                        .popChangeHandler(HorizontalChangeHandler())));
-
-            }
         }
     }
 
@@ -430,6 +413,25 @@ class ConversationInfoController(args: Bundle) : BaseController(args), FlexibleA
 
     }
 
+    @OnClick(R.id.addParticipantsAction)
+    internal fun addParticipants() {
+        val bundle = Bundle()
+        val existingParticipantsId = arrayListOf<String>()
+
+        recyclerViewItems.forEach {
+            val userItem = it as UserItem
+            existingParticipantsId.add(userItem.model.userId)
+        }
+
+        bundle.putBoolean(BundleKeys.KEY_ADD_PARTICIPANTS, true);
+        bundle.putStringArrayList(BundleKeys.KEY_EXISTING_PARTICIPANTS, existingParticipantsId)
+        bundle.putString(BundleKeys.KEY_TOKEN, conversation!!.token)
+
+        getRouter().pushController((RouterTransaction.with(ContactsController(bundle))
+                .pushChangeHandler(HorizontalChangeHandler())
+                .popChangeHandler(HorizontalChangeHandler())))
+    }
+
     @OnClick(R.id.leaveConversationAction)
     internal fun leaveConversation() {
         workerData?.let {
@@ -475,9 +477,9 @@ class ConversationInfoController(args: Bundle) : BaseController(args), FlexibleA
                         val conversationCopy = conversation
 
                         if (conversationCopy!!.canModerate(conversationUser)) {
-                            actionTextView.visibility = View.VISIBLE
+                            addParticipantsAction.visibility = View.VISIBLE
                         } else {
-                            actionTextView.visibility = View.GONE
+                            addParticipantsAction.visibility = View.GONE
                         }
 
                         if (isAttached && (!isBeingDestroyed || !isDestroyed)) {

+ 5 - 0
app/src/main/java/com/nextcloud/talk/controllers/ProfileController.java

@@ -297,6 +297,11 @@ public class ProfileController extends BaseController {
                 });
     }
 
+    @Override
+    protected String getTitle() {
+        return getResources().getString(R.string.nc_profile_personal_info_title);
+    }
+
     private void showUserProfile() {
         if (getActivity() == null) {
             return;

+ 0 - 165
app/src/main/java/com/nextcloud/talk/utils/ui/MaterialPreferenceCategoryWithRightLink.java

@@ -1,165 +0,0 @@
-/*
- * Nextcloud Talk application
- *
- * @author Mario Danic
- * Copyright (C) 2017-2019 Mario Danic <mario@lovelyhq.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-package com.nextcloud.talk.utils.ui;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.FrameLayout;
-import android.widget.TextView;
-
-import com.nextcloud.talk.R;
-import com.yarolegovich.mp.util.Utils;
-
-import androidx.annotation.ColorInt;
-import androidx.annotation.ColorRes;
-import androidx.cardview.widget.CardView;
-import androidx.core.content.ContextCompat;
-
-public class MaterialPreferenceCategoryWithRightLink extends CardView {
-
-    private ViewGroup container;
-    private TextView title;
-    private TextView action;
-
-    public MaterialPreferenceCategoryWithRightLink(Context context) {
-        super(context);
-        init(null);
-    }
-
-    public MaterialPreferenceCategoryWithRightLink(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        init(attrs);
-    }
-
-    public MaterialPreferenceCategoryWithRightLink(Context context, AttributeSet attrs, int defStyleAttr) {
-        super(context, attrs, defStyleAttr);
-        init(attrs);
-    }
-
-    private void init(AttributeSet attrs) {
-        int titleColor = -1;
-        String titleText = "";
-        String actionText = "";
-        if (attrs != null) {
-            TypedArray ta = getContext().obtainStyledAttributes(attrs, R.styleable.MaterialPreferenceCategory);
-            try {
-                if (ta.hasValue(R.styleable.MaterialPreferenceCategory_mpc_title)) {
-                    titleText = ta.getString(R.styleable.MaterialPreferenceCategory_mpc_title);
-                }
-
-                if (ta.hasValue(R.styleable.MaterialPreferenceCategory_mpc_action)) {
-                    actionText = ta.getString(R.styleable.MaterialPreferenceCategory_mpc_action);
-                }
-
-                titleColor = ta.getColor(R.styleable.MaterialPreferenceCategory_mpc_title_color, -1);
-            } finally {
-                ta.recycle();
-            }
-        }
-
-        inflate(getContext(), R.layout.category_with_right_action, this);
-
-        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
-                ViewGroup.LayoutParams.MATCH_PARENT,
-                ViewGroup.LayoutParams.WRAP_CONTENT);
-        params.setMargins(0, 0, 0, Utils.dpToPixels(getContext(), 4));
-
-        setUseCompatPadding(true);
-
-        setRadius(0);
-
-        container = (ViewGroup) findViewById(R.id.mpc_container);
-        title = (TextView) findViewById(R.id.mpc_title);
-        action = findViewById(R.id.mpc_action);
-
-        if (!TextUtils.isEmpty(titleText)) {
-            title.setVisibility(View.VISIBLE);
-            title.setText(titleText);
-        }
-
-        if (!TextUtils.isEmpty(actionText)) {
-            action.setVisibility(View.VISIBLE);
-            action.setText(actionText);
-        }
-
-        if (titleColor != -1) {
-            title.setTextColor(titleColor);
-        }
-    }
-
-    public void setAction(String actionText) {
-        action.setText(actionText);
-    }
-
-    public void setTitle(String titleText) {
-        title.setVisibility(View.VISIBLE);
-        title.setText(titleText);
-    }
-
-    public void setTitleColor(@ColorInt int color) {
-        title.setTextColor(color);
-    }
-
-    public void setTitleColorRes(@ColorRes int colorRes) {
-        title.setTextColor(ContextCompat.getColor(getContext(), colorRes));
-    }
-
-    @Override
-    public void addView(View child) {
-        if (container != null) {
-            container.addView(child);
-        } else {
-            super.addView(child);
-        }
-    }
-
-    @Override
-    public void addView(View child, int index) {
-        if (container != null) {
-            container.addView(child, index);
-        } else {
-            super.addView(child, index);
-        }
-    }
-
-    @Override
-    public void addView(View child, ViewGroup.LayoutParams params) {
-        if (container != null) {
-            container.addView(child, params);
-        } else {
-            super.addView(child, params);
-        }
-    }
-
-    @Override
-    public void addView(View child, int index, ViewGroup.LayoutParams params) {
-        if (container != null) {
-            container.addView(child, index, params);
-        } else {
-            super.addView(child, index, params);
-        }
-    }
-
-}

+ 30 - 0
app/src/main/res/drawable/ic_account_plus.xml

@@ -0,0 +1,30 @@
+<!--
+  Nextcloud Android client application
+
+  Copyright (C) 2020 Nextcloud.
+
+  This program is free software; you can redistribute it and/or
+  modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+  License as published by the Free Software Foundation; either
+  version 3 of the License, or any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+
+  You should have received a copy of the GNU Affero General Public
+  License along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+  Icon provided by Android Material Library in Apache License 2.0
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="#666666"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M15,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM6,10L6,7L4,7v3L1,10v2h3v3h2v-3h3v-2L6,10zM15,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z" />
+</vector>

+ 0 - 1
app/src/main/res/layout/activity_main.xml

@@ -50,7 +50,6 @@
             android:layout_height="?attr/actionBarSize"
             android:background="@color/appbar"
             android:theme="?attr/actionBarPopupTheme"
-            app:contentInsetStartWithNavigation="16dp"
             app:layout_scrollFlags="enterAlwaysCollapsed|noScroll"
             app:navigationIconTint="@color/fontAppbar"
             app:popupTheme="@style/appActionBarPopupMenu"

+ 0 - 56
app/src/main/res/layout/category_with_right_action.xml

@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><!--
-  ~ Nextcloud Talk application
-  ~
-  ~ @author Mario Danic
-  ~ Copyright (C) 2017-2019 Mario Danic <mario@lovelyhq.com>
-  ~
-  ~ This program is free software: you can redistribute it and/or modify
-  ~ it under the terms of the GNU General Public License as published by
-  ~ the Free Software Foundation, either version 3 of the License, or
-  ~ at your option) any later version.
-  ~
-  ~ This program is distributed in the hope that it will be useful,
-  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
-  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  ~ GNU General Public License for more details.
-  ~
-  ~ You should have received a copy of the GNU General Public License
-  ~ along with this program.  If not, see <http://www.gnu.org/licenses/>.
-  -->
-
-<merge xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
-
-    <LinearLayout
-        android:id="@+id/mpc_container"
-        style="@style/PreferenceContainer"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical">
-
-        <RelativeLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content">
-
-            <TextView
-                android:id="@+id/mpc_title"
-                style="@style/PreferenceHeader"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:visibility="gone"
-                tools:text="Title"/>
-
-            <TextView
-                android:id="@+id/mpc_action"
-                style="@style/PreferenceHeader"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_alignParentEnd="true"
-                android:visibility="gone"
-                tools:text="Add" />
-
-        </RelativeLayout>
-
-    </LinearLayout>
-
-</merge>

+ 34 - 11
app/src/main/res/layout/controller_conversation_info.xml

@@ -2,6 +2,8 @@
   ~ Nextcloud Talk application
   ~
   ~ @author Mario Danic
+  ~ @author Andy Scherzinger
+  ~ Copyright (C) 2021 Andy Scherzinger <info@andy-scherzinger.de>
   ~ Copyright (C) 2017-2018 Mario Danic <mario@lovelyhq.com>
   ~
   ~ This program is free software: you can redistribute it and/or modify
@@ -51,7 +53,10 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:animateLayoutChanges="true"
-                android:visibility="gone">
+                android:visibility="gone"
+                apc:cardBackgroundColor="@color/bg_default"
+                apc:cardElevation="0dp"
+                tools:visibility="visible">
 
                 <RelativeLayout
                     android:layout_width="match_parent"
@@ -63,7 +68,8 @@
                         android:layout_height="wrap_content"
                         android:layout_below="@id/avatar_image"
                         android:layout_centerHorizontal="true"
-                        android:layout_marginTop="@dimen/margin_between_elements" />
+                        android:layout_marginTop="@dimen/margin_between_elements"
+                        tools:text="Jane Doe" />
 
                     <com.facebook.drawee.view.SimpleDraweeView
                         android:id="@+id/avatar_image"
@@ -80,7 +86,10 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_below="@id/conversation_info_name"
-                android:visibility="gone">
+                android:visibility="gone"
+                apc:cardBackgroundColor="@color/bg_default"
+                apc:cardElevation="0dp"
+                tools:visibility="visible">
 
                 <com.yarolegovich.mp.MaterialStandardPreference
                     android:id="@+id/favoriteConversationAction"
@@ -94,16 +103,25 @@
 
             </com.yarolegovich.mp.MaterialPreferenceCategory>
 
-            <com.nextcloud.talk.utils.ui.MaterialPreferenceCategoryWithRightLink
+            <com.yarolegovich.mp.MaterialPreferenceCategory
                 android:id="@+id/participants_list_category"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_below="@+id/webinar_settings"
                 android:visibility="gone"
+                apc:cardBackgroundColor="@color/bg_default"
+                apc:cardElevation="0dp"
                 apc:mpc_title="@string/nc_participants"
-                apc:mpc_action="@string/nc_add"
-                apc:mpc_title_color="@color/textColorMaxContrast"
-                tools:ignore="UnknownIdInLayout">
+                tools:ignore="UnknownIdInLayout"
+                tools:visibility="visible">
+
+                <com.yarolegovich.mp.MaterialStandardPreference
+                    android:id="@+id/addParticipantsAction"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    apc:mp_icon="@drawable/ic_account_plus"
+                    apc:mp_icon_tint="@color/grey_600"
+                    apc:mp_title="@string/nc_participants_add" />
 
                 <androidx.recyclerview.widget.RecyclerView
                     android:id="@+id/recycler_view"
@@ -111,14 +129,17 @@
                     android:layout_height="wrap_content"
                     tools:listitem="@layout/rv_item_contact" />
 
-            </com.nextcloud.talk.utils.ui.MaterialPreferenceCategoryWithRightLink>
+            </com.yarolegovich.mp.MaterialPreferenceCategory>
 
             <com.yarolegovich.mp.MaterialPreferenceCategory
                 android:id="@+id/ownOptions"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_below="@id/participants_list_category"
-                android:visibility="gone">
+                android:visibility="gone"
+                apc:cardBackgroundColor="@color/bg_default"
+                apc:cardElevation="0dp"
+                tools:visibility="visible">
 
                 <com.yarolegovich.mp.MaterialStandardPreference
                     android:id="@+id/leaveConversationAction"
@@ -143,14 +164,16 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_below="@id/otherRoomOptions"
-                android:visibility="gone" />
+                android:visibility="gone"
+                tools:visibility="gone" />
 
             <include
                 layout="@layout/webinar_info_item"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_below="@id/notification_settings"
-                android:visibility="gone" />
+                android:visibility="gone"
+                tools:visibility="visible" />
         </RelativeLayout>
     </ScrollView>
 </RelativeLayout>

+ 29 - 18
app/src/main/res/layout/controller_settings.xml

@@ -2,6 +2,8 @@
   ~ Nextcloud Talk application
   ~
   ~ @author Mario Danic
+  ~ @author Andy Scherzinger
+  ~ Copyright (C) 2021 Andy Scherzinger <info@andy-scherzinger.de>
   ~ Copyright (C) 2017 Mario Danic
   ~
   ~ This program is free software: you can redistribute it and/or modify
@@ -28,7 +30,9 @@
         android:id="@+id/message_view"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:animateLayoutChanges="true">
+        android:animateLayoutChanges="true"
+        apc:cardBackgroundColor="@color/bg_default"
+        apc:cardElevation="0dp">
 
         <TextView
             android:id="@+id/message_text"
@@ -40,7 +44,9 @@
     <com.yarolegovich.mp.MaterialPreferenceCategory
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:animateLayoutChanges="true">
+        android:animateLayoutChanges="true"
+        apc:cardBackgroundColor="@color/bg_default"
+        apc:cardElevation="0dp">
 
         <RelativeLayout
             android:id="@+id/avatarContainer"
@@ -118,8 +124,9 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:animateLayoutChanges="true"
-        apc:mpc_title="@string/nc_settings_appearance"
-        apc:mpc_title_color="@color/textColorMaxContrast">
+        apc:cardBackgroundColor="@color/bg_default"
+        apc:cardElevation="0dp"
+        apc:mpc_title="@string/nc_settings_appearance">
 
         <com.yarolegovich.mp.MaterialChoicePreference
             android:id="@+id/settings_theme"
@@ -138,8 +145,9 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:animateLayoutChanges="true"
-        apc:mpc_title="@string/nc_settings_notification_sounds"
-        apc:mpc_title_color="@color/textColorMaxContrast">
+        apc:cardBackgroundColor="@color/bg_default"
+        apc:cardElevation="0dp"
+        apc:mpc_title="@string/nc_settings_notification_sounds">
 
         <com.yarolegovich.mp.MaterialStandardPreference
             android:id="@+id/settings_call_sound"
@@ -170,8 +178,9 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:animateLayoutChanges="true"
-        apc:mpc_title="@string/nc_settings_privacy"
-        apc:mpc_title_color="@color/textColorMaxContrast">
+        apc:cardBackgroundColor="@color/bg_default"
+        apc:cardElevation="0dp"
+        apc:mpc_title="@string/nc_settings_privacy">
 
         <com.yarolegovich.mp.MaterialChoicePreference
             android:id="@+id/settings_screen_lock_timeout"
@@ -218,7 +227,7 @@
             apc:mp_key="@string/nc_settings_link_previews_key"
             apc:mp_summary="@string/nc_settings_link_previews_desc"
             apc:mp_title="@string/nc_settings_link_previews_title" />
-        
+
         <com.yarolegovich.mp.MaterialSwitchPreference
             android:id="@+id/settings_phone_book_integration"
             android:layout_width="match_parent"
@@ -227,7 +236,7 @@
             apc:mp_key="@string/nc_settings_phone_book_integration_key"
             apc:mp_summary="@string/nc_settings_phone_book_integration_desc"
             apc:mp_title="@string/nc_settings_phone_book_integration_title" />
-        
+
         <com.yarolegovich.mp.MaterialSwitchPreference
             android:id="@+id/settings_read_privacy"
             android:layout_width="match_parent"
@@ -241,8 +250,9 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:animateLayoutChanges="true"
-        apc:mpc_title="@string/nc_settings_proxy_title"
-        apc:mpc_title_color="@color/textColorMaxContrast">
+        apc:cardBackgroundColor="@color/bg_default"
+        apc:cardElevation="0dp"
+        apc:mpc_title="@string/nc_settings_proxy_title">
 
         <com.yarolegovich.mp.MaterialChoicePreference
             android:id="@+id/settings_proxy_choice"
@@ -252,7 +262,7 @@
             apc:mp_entry_descriptions="@array/proxy_type_descriptions"
             apc:mp_key="@string/nc_settings_proxy_type_key"
             apc:mp_show_value="onRight"
-            apc:mp_title="@string/nc_settings_proxy_type_title"></com.yarolegovich.mp.MaterialChoicePreference>
+            apc:mp_title="@string/nc_settings_proxy_type_title" />
 
         <com.yarolegovich.mp.MaterialEditTextPreference
             android:id="@+id/settings_proxy_host_edit"
@@ -302,8 +312,9 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:animateLayoutChanges="true"
-        apc:mpc_title="@string/nc_about"
-        apc:mpc_title_color="@color/textColorMaxContrast">
+        apc:cardBackgroundColor="@color/bg_default"
+        apc:cardElevation="0dp"
+        apc:mpc_title="@string/nc_about">
 
         <com.yarolegovich.mp.MaterialStandardPreference
             android:id="@+id/settings_privacy"
@@ -315,21 +326,21 @@
             android:id="@+id/settings_source_code"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            apc:mp_title="@string/nc_get_source_code"></com.yarolegovich.mp.MaterialStandardPreference>
+            apc:mp_title="@string/nc_get_source_code" />
 
         <com.yarolegovich.mp.MaterialStandardPreference
             android:id="@+id/settings_licence"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             apc:mp_summary="@string/nc_license_summary"
-            apc:mp_title="@string/nc_license_title"></com.yarolegovich.mp.MaterialStandardPreference>
+            apc:mp_title="@string/nc_license_title" />
 
         <com.yarolegovich.mp.MaterialStandardPreference
             android:id="@+id/settings_version"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             apc:mp_summary="v0.1"
-            apc:mp_title="@string/nc_app_name"></com.yarolegovich.mp.MaterialStandardPreference>
+            apc:mp_title="@string/nc_app_name" />
 
     </com.yarolegovich.mp.MaterialPreferenceCategory>
 

+ 14 - 7
app/src/main/res/layout/conversation_privacy_toggle.xml

@@ -2,6 +2,8 @@
   ~ Nextcloud Talk application
   ~
   ~ @author Mario Danic
+  ~ @author Andy Scherzinger
+  ~ Copyright (C) 2021 Andy Scherzinger <info@andy-scherzinger.de>
   ~ Copyright (C) 2017-2018 Mario Danic <mario@lovelyhq.com>
   ~
   ~ This program is free software: you can redistribute it and/or modify
@@ -19,11 +21,15 @@
   -->
 
 <RelativeLayout 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"
     android:id="@+id/call_header_layout"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_margin="@dimen/double_margin_between_elements"
+    android:layout_marginStart="@dimen/standard_margin"
+    android:layout_marginTop="@dimen/standard_half_margin"
+    android:layout_marginEnd="@dimen/standard_margin"
+    android:layout_marginBottom="@dimen/standard_half_margin"
     android:orientation="vertical">
 
     <RelativeLayout
@@ -33,13 +39,13 @@
 
         <ImageView
             android:id="@+id/public_call_link"
-            android:layout_width="@dimen/small_item_height"
-            android:layout_height="@dimen/small_item_height"
+            android:layout_width="@dimen/avatar_size"
+            android:layout_height="@dimen/avatar_size"
             android:layout_centerVertical="true"
-            android:layout_marginEnd="8dp"
+            android:layout_marginEnd="@dimen/standard_margin"
             android:contentDescription="@null"
             android:src="@drawable/ic_public_black_24px"
-            android:tint="@color/colorPrimary" />
+            app:tint="@color/colorPrimary" />
 
         <TextView
             android:layout_width="match_parent"
@@ -49,7 +55,7 @@
             android:ellipsize="middle"
             android:singleLine="true"
             android:text="@string/nc_public_call"
-            android:textAppearance="?android:attr/textAppearanceListItem"
+            android:textAppearance="@style/ListItem"
             tools:text="@string/nc_public_call" />
 
     </RelativeLayout>
@@ -60,7 +66,8 @@
         android:layout_height="wrap_content"
         android:layout_centerInParent="true"
         android:minHeight="@dimen/small_item_height"
-        android:visibility="gone">
+        android:visibility="gone"
+        tools:visibility="gone">
 
         <TextView
             android:layout_width="match_parent"

+ 1 - 0
app/src/main/res/layout/dialog_attachment.xml

@@ -21,6 +21,7 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:background="@color/bg_bottom_sheet"
     android:orientation="vertical"
     android:paddingBottom="8dp">
 

+ 12 - 8
app/src/main/res/layout/join_conversation_via_link.xml

@@ -2,6 +2,8 @@
   ~ Nextcloud Talk application
   ~
   ~ @author Mario Danic
+  ~ @author Andy Scherzinger
+  ~ Copyright (C) 2021 Andy Scherzinger <info@andy-scherzinger.de>
   ~ Copyright (C) 2017-2018 Mario Danic <mario@lovelyhq.com>
   ~
   ~ This program is free software: you can redistribute it and/or modify
@@ -19,22 +21,25 @@
   -->
 
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/joinConversationViaLinkRelativeLayout"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_margin="@dimen/double_margin_between_elements"
+    android:layout_marginStart="@dimen/standard_margin"
+    android:layout_marginTop="@dimen/standard_half_margin"
+    android:layout_marginEnd="@dimen/standard_margin"
+    android:layout_marginBottom="@dimen/standard_half_margin"
     android:orientation="vertical">
 
     <ImageView
         android:id="@+id/joinConversationViaLinkImageView"
-        android:layout_width="@dimen/small_item_height"
-        android:layout_height="@dimen/small_item_height"
+        android:layout_width="@dimen/avatar_size"
+        android:layout_height="@dimen/avatar_size"
         android:layout_centerVertical="true"
-        android:layout_marginEnd="8dp"
+        android:layout_marginEnd="@dimen/standard_margin"
         android:contentDescription="@null"
         android:src="@drawable/ic_public_black_24px"
-        android:tint="@color/colorPrimary" />
+        app:tint="@color/colorPrimary" />
 
     <TextView
         android:layout_width="match_parent"
@@ -44,7 +49,6 @@
         android:ellipsize="middle"
         android:singleLine="true"
         android:text="@string/nc_join_via_link"
-        android:textAppearance="?android:attr/textAppearanceListItem"
-        tools:text="@string/nc_join_via_link" />
+        android:textAppearance="@style/ListItem" />
 
 </RelativeLayout>

+ 6 - 4
app/src/main/res/layout/notification_settings_item.xml

@@ -2,6 +2,8 @@
   ~ Nextcloud Talk application
   ~
   ~ @author Mario Danic
+  ~ @author Andy Scherzinger
+  ~ Copyright (C) 2021 Andy Scherzinger <info@andy-scherzinger.de>
   ~ Copyright (C) 2017-2018 Mario Danic <mario@lovelyhq.com>
   ~
   ~ This program is free software: you can redistribute it and/or modify
@@ -24,13 +26,13 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content">
 
-
     <com.yarolegovich.mp.MaterialPreferenceCategory
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:animateLayoutChanges="true"
-        apc:mpc_title="@string/nc_notification_settings"
-        apc:mpc_title_color="@color/textColorMaxContrast">
+        apc:cardBackgroundColor="@color/bg_default"
+        apc:cardElevation="0dp"
+        apc:mpc_title="@string/nc_notification_settings">
 
         <com.yarolegovich.mp.MaterialSwitchPreference
             android:id="@+id/conversation_info_priority_conversation"
@@ -49,7 +51,7 @@
             apc:mp_entry_values="@array/message_notification_levels_entry_values"
             apc:mp_key="message_notification_level"
             apc:mp_show_value="onBottom"
-            apc:mp_title="@string/nc_plain_old_messages"></com.yarolegovich.mp.MaterialChoicePreference>
+            apc:mp_title="@string/nc_plain_old_messages" />
 
         <com.yarolegovich.mp.MaterialSwitchPreference
             android:id="@+id/muteCalls"

+ 14 - 10
app/src/main/res/layout/rv_item_contact.xml

@@ -3,8 +3,8 @@
   ~
   ~ @author Mario Danic
   ~ @author Andy Scherzinger
+  ~ Copyright (C) 2021 Andy Scherzinger
   ~ Copyright (C) 2017 Mario Danic
-  ~ Copyright (C) 2017 Andy Scherzinger
   ~
   ~ This program is free software: you can redistribute it and/or modify
   ~ it under the terms of the GNU General Public License as published by
@@ -24,8 +24,11 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
-    android:layout_height="@dimen/rv_item_view_height"
-    android:layout_margin="@dimen/margin_between_elements"
+    android:layout_height="wrap_content"
+    android:layout_marginStart="@dimen/standard_margin"
+    android:layout_marginTop="@dimen/standard_half_margin"
+    android:layout_marginEnd="@dimen/standard_margin"
+    android:layout_marginBottom="@dimen/standard_half_margin"
     android:orientation="vertical">
 
     <ImageView
@@ -34,9 +37,10 @@
         android:layout_height="wrap_content"
         android:layout_alignParentEnd="true"
         android:layout_centerVertical="true"
+        android:layout_marginStart="@dimen/standard_margin"
+        android:contentDescription="@string/selected_list_item"
         android:src="@drawable/ic_check_black_24dp"
-        android:tint="@color/colorPrimary"
-        android:visibility="gone" />
+        app:tint="@color/colorPrimary" />
 
     <androidx.emoji.widget.EmojiTextView
         android:id="@+id/name_text"
@@ -46,16 +50,16 @@
         android:layout_toStartOf="@id/checkedImageView"
         android:layout_toEndOf="@id/simple_drawee_view"
         android:ellipsize="end"
+        android:lines="1"
         android:textAppearance="@style/ListItem"
-        tools:text="Contact item text" />
+        tools:text="Jane Doe" />
 
     <com.facebook.drawee.view.SimpleDraweeView
         android:id="@+id/simple_drawee_view"
-        android:layout_width="@dimen/small_item_height"
-        android:layout_height="@dimen/small_item_height"
+        android:layout_width="@dimen/avatar_size"
+        android:layout_height="@dimen/avatar_size"
         android:layout_centerVertical="true"
-        android:layout_marginStart="@dimen/double_margin_between_elements"
-        android:layout_marginEnd="@dimen/margin_between_elements"
+        android:layout_marginEnd="@dimen/standard_margin"
         app:roundAsCircle="true" />
 
 </RelativeLayout>

+ 4 - 5
app/src/main/res/layout/rv_item_conversation.xml

@@ -4,7 +4,7 @@
   ~ @author Mario Danic
   ~ @author Andy Scherzinger
   ~ Copyright (C) 2017 Mario Danic
-  ~ Copyright (C) 2017 Andy Scherzinger
+  ~ Copyright (C) 2017-2021 Andy Scherzinger
   ~
   ~ This program is free software: you can redistribute it and/or modify
   ~ it under the terms of the GNU General Public License as published by
@@ -23,9 +23,8 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
-    android:layout_height="64dp"
-    android:layout_margin="8dp">
-
+    android:layout_height="72dp"
+    android:layout_margin="@dimen/standard_margin">
 
     <FrameLayout
         android:id="@+id/frame_layout"
@@ -59,7 +58,7 @@
         android:layout_height="match_parent"
         android:layout_alignParentEnd="true"
         android:layout_centerVertical="true"
-        android:layout_marginStart="@dimen/margin_between_elements"
+        android:layout_marginStart="@dimen/standard_margin"
         android:background="?android:attr/selectableItemBackground"
         android:scaleType="center"
         android:src="@drawable/ic_more_horiz_black_24dp" />

+ 17 - 8
app/src/main/res/layout/rv_item_notification_sound.xml

@@ -2,6 +2,8 @@
   ~ Nextcloud Talk application
   ~
   ~ @author Mario Danic
+  ~ @author Andy Scherzinger
+  ~ Copyright (C) 2021 Andy Scherzinger <info@andy-scherzinger.de>
   ~ Copyright (C) 2017-2018 Mario Danic <mario@lovelyhq.com>
   ~
   ~ This program is free software: you can redistribute it and/or modify
@@ -20,21 +22,26 @@
 
 <RelativeLayout 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"
     android:layout_width="match_parent"
-    android:layout_height="48dp"
-    android:layout_margin="@dimen/double_margin_between_elements"
+    android:layout_height="wrap_content"
+    android:layout_marginStart="@dimen/standard_margin"
+    android:layout_marginTop="@dimen/standard_half_margin"
+    android:layout_marginEnd="@dimen/standard_margin"
+    android:layout_marginBottom="@dimen/standard_half_margin"
     android:animateLayoutChanges="true"
     android:orientation="vertical">
 
-
     <ImageView
         android:id="@+id/checkedImageView"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentEnd="true"
         android:layout_centerVertical="true"
+        android:layout_marginStart="@dimen/standard_margin"
+        android:contentDescription="@string/selected_list_item"
         android:src="@drawable/ic_check_black_24dp"
-        android:tint="@color/colorPrimary" />
+        app:tint="@color/colorPrimary" />
 
     <TextView
         android:id="@+id/notificationNameTextView"
@@ -44,14 +51,16 @@
         android:layout_toStartOf="@id/checkedImageView"
         android:layout_toEndOf="@id/simpleDraweeView"
         android:ellipsize="end"
-        android:textAppearance="?android:attr/textAppearanceListItem" />
+        android:lines="1"
+        android:textAppearance="@style/ListItem"
+        tools:text="Ringy Gone" />
 
     <com.facebook.drawee.view.SimpleDraweeView
         android:id="@+id/simpleDraweeView"
-        android:layout_width="@dimen/small_item_height"
-        android:layout_height="@dimen/small_item_height"
+        android:layout_width="@dimen/avatar_size"
+        android:layout_height="@dimen/avatar_size"
         android:layout_centerVertical="true"
-        android:layout_marginEnd="8dp"
+        android:layout_marginEnd="@dimen/standard_margin"
         app:roundAsCircle="true" />
 
 </RelativeLayout>

+ 8 - 4
app/src/main/res/layout/rv_item_title_header.xml

@@ -2,6 +2,8 @@
   ~ Nextcloud Talk application
   ~
   ~ @author Mario Danic
+  ~ @author Andy Scherzinger
+  ~ Copyright (C) 2021 Andy Scherzinger <info@andy-scherzinger.de>
   ~ Copyright (C) 2017-2018 Mario Danic <mario@lovelyhq.com>
   ~
   ~ This program is free software: you can redistribute it and/or modify
@@ -22,17 +24,19 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:background="@color/bg_default"
     android:orientation="vertical">
 
     <TextView
         android:id="@+id/title_text_view"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginStart="16dp"
-        android:layout_marginTop="8dp"
-        android:layout_marginEnd="16dp"
-        android:layout_marginBottom="8dp"
+        android:layout_marginStart="@dimen/standard_margin"
+        android:layout_marginTop="@dimen/standard_half_margin"
+        android:layout_marginEnd="@dimen/standard_margin"
+        android:layout_marginBottom="@dimen/standard_half_margin"
         android:textColor="@color/colorPrimary"
+        android:textStyle="bold"
         tools:text="A" />
 
     <View

+ 1 - 1
app/src/main/res/layout/user_info_details_table_item.xml

@@ -40,7 +40,7 @@
         android:id="@+id/user_info_edit_text"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/standard_margin"
+        android:layout_marginStart="@dimen/standard_double_margin"
         android:layout_marginEnd="@dimen/standard_margin"
         android:autofillHints="none"
         android:ellipsize="end"

+ 8 - 4
app/src/main/res/layout/webinar_info_item.xml

@@ -2,6 +2,8 @@
   ~ Nextcloud Talk application
   ~
   ~ @author Mario Danic
+  ~ @author Andy Scherzinger
+  ~ Copyright (C) 2021 Andy Scherzinger <info@andy-scherzinger.de>
   ~ Copyright (C) 2017-2019 Mario Danic <mario@lovelyhq.com>
   ~
   ~ This program is free software: you can redistribute it and/or modify
@@ -20,18 +22,19 @@
 
 <com.yarolegovich.mp.MaterialPreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:apc="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:id="@+id/webinar_settings"
     android:layout_width="match_parent"
     android:layout_height="wrap_content">
 
-
     <com.yarolegovich.mp.MaterialPreferenceCategory
         android:id="@+id/conversation_info_webinar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:animateLayoutChanges="true"
-        apc:mpc_title="@string/nc_webinar"
-        apc:mpc_title_color="@color/colorPrimary">
+        apc:cardBackgroundColor="@color/bg_default"
+        apc:cardElevation="0dp"
+        apc:mpc_title="@string/nc_webinar">
 
         <com.yarolegovich.mp.MaterialSwitchPreference
             android:id="@+id/conversation_info_lobby"
@@ -51,7 +54,8 @@
             apc:mp_icon="@drawable/ic_timer_black_24dp"
             apc:mp_icon_tint="@color/grey_600"
             apc:mp_summary="@string/nc_manual"
-            apc:mp_title="@string/nc_start_time" />
+            apc:mp_title="@string/nc_start_time"
+            tools:visibility="visible" />
 
     </com.yarolegovich.mp.MaterialPreferenceCategory>
 

+ 0 - 1
app/src/main/res/values/dimens.xml

@@ -24,7 +24,6 @@
 
     <dimen name="item_height">72dp</dimen>
     <dimen name="small_item_height">48dp</dimen>
-    <dimen name="rv_item_view_height">48dp</dimen>
 
     <!-- Custom transition dimensions -->
     <dimen name="margin_between_elements">8dp</dimen>

+ 4 - 0
app/src/main/res/values/strings.xml

@@ -153,6 +153,8 @@
 
     <string name="nc_select_an_account">Select an account</string>
 
+    <string name="nc_profile_personal_info_title">Personal Info</string>
+
     <!-- Conversation menu -->
     <string name="nc_start_conversation">Start a conversation</string>
     <string name="nc_configure_room">Configure conversation</string>
@@ -287,6 +289,7 @@
     <string name="nc_limit_hit">%s characters limit has been hit</string>
     <string name="nc_groups">Groups</string>
     <string name="nc_participants">Participants</string>
+    <string name="nc_participants_add">Add participants</string>
 
     <string name="nc_owner">Owner</string>
     <string name="nc_moderator">Moderator</string>
@@ -389,4 +392,5 @@
     <string name="tooManyUnreadMessages" translatable="false">999+</string>
     <string name="nc_action_open_main_menu">Open main menu</string>
     <string name="failed_to_save">Failed to save %1$s</string>
+    <string name="selected_list_item">selected</string>
 </resources>

+ 2 - 1
app/src/main/res/values/styles.xml

@@ -44,7 +44,8 @@
     </style>
 
     <style name="ListItem" parent="BottomSheet.ListItem.TextAppearance">
-        <item name="android:textColor">@color/nc_incoming_text_default</item>
+        <item name="android:textColor">@color/conversation_item_header</item>
+        <item name="android:textSize">16sp</item>
     </style>
 
     <style name="ChipIncomingTextAppearance" parent="TextAppearance.MaterialComponents.Chip">