Remove FloatingActionButtonBehavior
This depends on an internal support library class that is being changed.
Test
manual: deleted a group and verified that FAB does not overlap snackbar
Change-Id: Id4b0fb858624c598353b6ed6dacc8cc8a84309cd
diff --git a/res/layout/floating_action_button.xml b/res/layout/floating_action_button.xml
index 2dc8955..91afecd 100644
--- a/res/layout/floating_action_button.xml
+++ b/res/layout/floating_action_button.xml
@@ -17,6 +17,7 @@
<!-- This expects to be included inside a RelativeLayout or a CoordinatorLayout -->
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/floating_action_button_container"
android:layout_width="@dimen/floating_action_button_width"
android:layout_height="@dimen/floating_action_button_height"
@@ -26,7 +27,8 @@
android:layout_marginBottom="@dimen/floating_action_button_margin_bottom"
android:layout_marginEnd="@dimen/floating_action_button_margin_right"
android:background="@drawable/fab_blue"
- android:elevation="@dimen/design_fab_elevation">
+ android:elevation="@dimen/design_fab_elevation"
+ app:layout_dodgeInsetEdges="bottom" >
<ImageButton
android:id="@+id/floating_action_button"
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index df3f65d..8d0ec08 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -38,14 +38,12 @@
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.SwipeRefreshLayout;
import android.util.Log;
-import android.view.Gravity;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
-import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.Toast;
@@ -76,7 +74,6 @@
import com.android.contactsbind.FeatureHighlightHelper;
import com.android.contactsbind.ObjectFactory;
import com.android.contactsbind.experiments.Flags;
-import com.android.contacts.widget.FloatingActionButtonBehavior;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
@@ -385,15 +382,6 @@
mLayoutRoot = (CoordinatorLayout) findViewById(R.id.root);
- // Setup the FAB to animate upwards when a snackbar is shown in this activity.
- // Normally the layout_behavior attribute could be used for this but for some reason it
- // throws a ClassNotFoundException so the layout parameters are set programmatically.
- final CoordinatorLayout.LayoutParams fabParams = new CoordinatorLayout.LayoutParams(
- (ViewGroup.MarginLayoutParams) mFloatingActionButtonContainer.getLayoutParams());
- fabParams.setBehavior(new FloatingActionButtonBehavior());
- fabParams.gravity = Gravity.BOTTOM | Gravity.END;
- mFloatingActionButtonContainer.setLayoutParams(fabParams);
-
if (mShouldSwitchToGroupView && !mIsRecreatedInstance) {
mGroupUri = mRequest.getContactUri();
switchToOrUpdateGroupView(GroupUtil.ACTION_SWITCH_GROUP);
diff --git a/src/com/android/contacts/widget/FloatingActionButtonBehavior.java b/src/com/android/contacts/widget/FloatingActionButtonBehavior.java
deleted file mode 100644
index 44ca81e..0000000
--- a/src/com/android/contacts/widget/FloatingActionButtonBehavior.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.contacts.widget;
-
-import android.content.Context;
-import android.support.design.widget.CoordinatorLayout;
-import android.support.design.widget.Snackbar.SnackbarLayout;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.FrameLayout;
-
-/**
- * Implements custom behavior for the movement of the FAB in response to the Snackbar.
- * Because we are not using the design framework FloatingActionButton widget, we need to manually
- * implement the Material Design behavior of having the FAB translate upward and downward with
- * the appearance and disappearance of a Snackbar.
- */
-public class FloatingActionButtonBehavior extends CoordinatorLayout.Behavior<FrameLayout> {
-
- public FloatingActionButtonBehavior() {
- }
-
- public FloatingActionButtonBehavior(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- @Override
- public boolean layoutDependsOn(CoordinatorLayout parent, FrameLayout child, View dependency) {
- return dependency instanceof SnackbarLayout;
- }
-
- @Override
- public boolean onDependentViewChanged(CoordinatorLayout parent, FrameLayout child,
- View dependency) {
- float translationY = Math.min(0, dependency.getTranslationY() - dependency.getHeight());
- child.setTranslationY(translationY);
- return true;
- }
-}