Mario Danic преди 6 години
родител
ревизия
1c13d893fc

+ 15 - 5
app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java

@@ -43,6 +43,7 @@ import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler;
 import com.bluelinelabs.conductor.changehandler.VerticalChangeHandler;
 import com.bluelinelabs.conductor.internal.NoOpControllerChangeHandler;
 import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
 import com.kennyc.bottomsheet.BottomSheet;
 import com.nextcloud.talk.R;
 import com.nextcloud.talk.activities.MagicCallActivity;
@@ -126,6 +127,9 @@ public class ConversationsListController extends BaseController implements Searc
     @BindView(R.id.fast_scroller)
     FastScroller fastScroller;
 
+    @BindView(R.id.floatingActionButton)
+    FloatingActionButton floatingActionButton;
+
     private UserEntity currentUser;
     private Disposable roomsQueryDisposable;
     private FlexibleAdapter<AbstractFlexibleItem> adapter;
@@ -379,11 +383,9 @@ public class ConversationsListController extends BaseController implements Searc
         swipeRefreshLayout.setOnRefreshListener(() -> fetchData(false));
         swipeRefreshLayout.setColorSchemeResources(R.color.colorPrimary);
 
-        emptyLayoutView.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                // TODO: show new conversation screen
-            }
+        emptyLayoutView.setOnClickListener(v -> showNewConversationsScreen());
+        floatingActionButton.setOnClickListener(v -> {
+            showNewConversationsScreen();
         });
 
         fastScroller.addOnScrollStateChangeListener(this);
@@ -403,6 +405,14 @@ public class ConversationsListController extends BaseController implements Searc
         });
     }
 
+    private void showNewConversationsScreen() {
+        Bundle bundle = new Bundle();
+        bundle.putBoolean(BundleKeys.KEY_NEW_CONVERSATION, true);
+        getRouter().pushController((RouterTransaction.with(new ContactsController(bundle))
+                .pushChangeHandler(new HorizontalChangeHandler())
+                .popChangeHandler(new HorizontalChangeHandler())));
+    }
+
     private void dispose(@Nullable Disposable disposable) {
         if (disposable != null && !disposable.isDisposed()) {
             disposable.dispose();

+ 15 - 5
app/src/main/res/layout/controller_conversations_rv.xml

@@ -20,11 +20,12 @@
   -->
 
 <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                                                 xmlns:tools="http://schemas.android.com/tools"
-                                                 android:id="@+id/generic_rv_layout"
-                                                 android:layout_width="match_parent"
-                                                 android:layout_height="match_parent"
-                                                 android:background="@color/nc_white_color">
+    xmlns:tools="http://schemas.android.com/tools"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/generic_rv_layout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/nc_white_color">
 
     <ProgressBar
         android:id="@+id/progressBar"
@@ -84,4 +85,13 @@
     </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
 
     <include layout="@layout/fast_scroller"/>
+
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
+        android:id="@+id/floatingActionButton"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom|end"
+        android:layout_margin="16dp"
+        app:srcCompat="@drawable/ic_add_white_24px"/>
+
 </androidx.coordinatorlayout.widget.CoordinatorLayout>

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

@@ -1,7 +1,7 @@
 <resources xmlns:tools="http://schemas.android.com/tools">
 
     <!-- Base application theme. -->
-    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
+    <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
         <!-- Customize your theme here. -->
         <item name="colorPrimary">@color/colorPrimary</item>
         <item name="colorPrimaryDark">@color/colorPrimaryDark</item>