Add basic FAB

This commit is contained in:
Mario Danic 2018-11-28 16:37:25 +01:00
parent 5ff7316aa5
commit 1c13d893fc
3 changed files with 31 additions and 11 deletions

View File

@ -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();

View File

@ -21,6 +21,7 @@
<androidx.coordinatorlayout.widget.CoordinatorLayout 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/generic_rv_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -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>

View File

@ -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>