diff --git a/briar-android/build.gradle b/briar-android/build.gradle index 82e32a725..7abe9f513 100644 --- a/briar-android/build.gradle +++ b/briar-android/build.gradle @@ -2,6 +2,11 @@ apply plugin: 'com.android.application' apply plugin: 'witness' apply from: 'witness.gradle' +// prototype +repositories { + maven { url 'https://jitpack.io' } +} + dependencies { implementation project(path: ':briar-core', configuration: 'default') implementation project(path: ':bramble-core', configuration: 'default') @@ -35,7 +40,7 @@ dependencies { implementation 'com.vanniktech:emoji-google:0.5.1' // prototype - implementation "com.leinardi.android:speed-dial:2.0.0" + implementation "com.github.kobakei:MaterialFabSpeedDial:1.2.0" annotationProcessor 'com.google.dagger:dagger-compiler:2.0.2' diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListFragment.java index e708b4230..fe6e800dc 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListFragment.java @@ -2,6 +2,7 @@ package org.briarproject.briar.android.contact; import android.content.Intent; import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v4.app.ActivityCompat; import android.support.v4.app.ActivityOptionsCompat; @@ -14,9 +15,7 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; - -import com.leinardi.android.speeddial.SpeedDialActionItem; -import com.leinardi.android.speeddial.SpeedDialView; +import android.widget.TextView; import org.briarproject.bramble.api.contact.Contact; import org.briarproject.bramble.api.contact.ContactId; @@ -56,6 +55,9 @@ import java.util.logging.Logger; import javax.annotation.Nullable; import javax.inject.Inject; +import io.github.kobakei.materialfabspeeddial.FabSpeedDial; +import io.github.kobakei.materialfabspeeddial.FabSpeedDial.OnMenuItemClickListener; + import static android.os.Build.VERSION.SDK_INT; import static android.support.design.widget.Snackbar.LENGTH_INDEFINITE; import static android.support.v4.app.ActivityOptionsCompat.makeSceneTransitionAnimation; @@ -69,7 +71,7 @@ import static org.briarproject.briar.android.contact.ConversationActivity.CONTAC @MethodsNotNullByDefault @ParametersNotNullByDefault public class ContactListFragment extends BaseFragment implements EventListener, - SpeedDialView.OnActionSelectedListener { + OnMenuItemClickListener { public static final String TAG = ContactListFragment.class.getName(); private static final Logger LOG = Logger.getLogger(TAG); @@ -120,11 +122,12 @@ public class ContactListFragment extends BaseFragment implements EventListener, getActivity().setTitle(R.string.contact_list_button); - View contentView = inflater.inflate(R.layout.fragment_contact_list, container, false); + View contentView = + inflater.inflate(R.layout.fragment_contact_list, container, + false); - SpeedDialView speedDialView = contentView.findViewById(R.id.speedDial); - speedDialView.inflate(R.menu.contact_list_actions); - speedDialView.setOnActionSelectedListener(this); + FabSpeedDial speedDialView = contentView.findViewById(R.id.speedDial); + speedDialView.addOnMenuItemClickListener(this); OnContactClickListener onContactClickListener = (view, item) -> { @@ -195,23 +198,24 @@ public class ContactListFragment extends BaseFragment implements EventListener, } @Override - public boolean onActionSelected(SpeedDialActionItem item) { - switch (item.getId()) { + public void onMenuItemClick(FloatingActionButton fab, TextView v, + int itemId) { + switch (itemId) { case R.id.action_add_contact: Intent intent = new Intent(getContext(), ContactExchangeActivity.class); startActivity(intent); - return false; + return; case R.id.action_open_link: startActivity(new Intent(getContext(), ContactInviteInputActivity.class)); - return false; + return; case R.id.action_send_link: startActivity(new Intent(getContext(), ContactInviteOutputActivity.class)); - return false; + return; default: - return false; + return; } } diff --git a/briar-android/src/main/res/layout/fragment_contact_list.xml b/briar-android/src/main/res/layout/fragment_contact_list.xml index 68fa4955e..104f4b6c1 100644 --- a/briar-android/src/main/res/layout/fragment_contact_list.xml +++ b/briar-android/src/main/res/layout/fragment_contact_list.xml @@ -11,18 +11,14 @@ android:layout_height="match_parent" app:scrollToEnd="false"/> - - - + android:layout_width="match_parent" + android:layout_height="match_parent" + app:fab_fabDrawable="@drawable/ic_action_add" + app:fab_fabRippleColor="@android:color/transparent" + app:fab_menu="@menu/contact_list_actions" + app:fab_miniFabTextBackground="@color/briar_blue" + app:fab_miniFabTextColor="@android:color/white"/> diff --git a/briar-android/src/main/res/menu/contact_list_actions.xml b/briar-android/src/main/res/menu/contact_list_actions.xml index e9a82a439..5189c7fdf 100644 --- a/briar-android/src/main/res/menu/contact_list_actions.xml +++ b/briar-android/src/main/res/menu/contact_list_actions.xml @@ -6,30 +6,21 @@ - diff --git a/briar-android/witness.gradle b/briar-android/witness.gradle index 9372daf38..eac4ad8ff 100644 --- a/briar-android/witness.gradle +++ b/briar-android/witness.gradle @@ -98,7 +98,6 @@ dependencyVerification { 'com.google.zxing:core:3.3.0:core-3.3.0.jar:bba7724e02a997cec38213af77133ee8e24b0d5cf5fa7ecbc16a4fa93f11ee0d', 'com.googlecode.json-simple:json-simple:1.1:json-simple-1.1.jar:2d9484f4c649f708f47f9a479465fc729770ee65617dca3011836602264f6439', 'com.ibm.icu:icu4j:53.1:icu4j-53.1.jar:e37a4467bac5cdeb02c5c4b8e5063d2f4e67b69e3c7df6d6b610f13185572bab', - 'com.leinardi.android:speed-dial:2.0.0:speed-dial-2.0.0.aar:c219aac9e4e803c85a5ebf47f160b31736bc7b17ca56c024ce6803f11fc18741', 'com.squareup:javawriter:2.1.1:javawriter-2.1.1.jar:f699823d0081f69cbb676c1845ea222e0ada79bc88a53e5d22d8bd02d328f57e', 'com.squareup:javawriter:2.5.0:javawriter-2.5.0.jar:fcfb09fb0ea0aa97d3cfe7ea792398081348e468f126b3603cb3803f240197f0', 'com.sun.activation:javax.activation:1.2.0:javax.activation-1.2.0.jar:993302b16cd7056f21e779cc577d175a810bb4900ef73cd8fbf2b50f928ba9ce',