Merge "Fix the build: use exported panorama values in helper class." into gb-ub-photos-denali
diff --git a/res/layout/filmstrip_bottom_controls.xml b/res/layout/filmstrip_bottom_controls.xml
index d859242..a5dde05 100644
--- a/res/layout/filmstrip_bottom_controls.xml
+++ b/res/layout/filmstrip_bottom_controls.xml
@@ -28,42 +28,70 @@
<!-- A filler view -->
<View
android:layout_width="0dp"
- android:layout_height="match_parent"
+ android:layout_height="1dp"
android:layout_weight="1"
android:visibility="invisible" />
- <FrameLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
-
- <ImageButton
- android:id="@+id/filmstrip_bottom_control_view"
- style="@style/FilmstripBottomControlButton"
- android:layout_gravity="center"
- android:src="@drawable/ic_view_photosphere"
- android:visibility="invisible" />
-
- <ImageButton
- android:id="@+id/filmstrip_bottom_control_tiny_planet"
- style="@style/FilmstripBottomControlButton"
- android:layout_gravity="center"
- android:src="@drawable/ic_menu_tiny_planet"
- android:visibility="invisible" />
- </FrameLayout>
-
- <ImageButton
- android:id="@+id/filmstrip_bottom_control_edit"
- style="@style/FilmstripBottomControlButton"
- android:src="@drawable/ic_menu_edit_holo_dark"
- android:visibility="invisible" />
-
-
<ImageButton
android:id="@+id/filmstrip_bottom_control_share"
style="@style/FilmstripBottomControlButton"
android:src="@drawable/ic_menu_share_holo_light"
android:visibility="invisible" />
+ <LinearLayout
+ android:layout_width="144dp"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:visibility="visible">
+
+ <View
+ android:layout_width="0dp"
+ android:layout_height="1dp"
+ android:layout_weight="1"
+ android:visibility="invisible" />
+
+ <FrameLayout
+ android:id="@+id/filmstrip_bottom_control_viewer_wrapper"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="gone">
+
+ <ImageButton
+ android:id="@+id/filmstrip_bottom_control_view"
+ style="@style/FilmstripBottomControlButton"
+ android:layout_gravity="center"
+ android:src="@drawable/ic_view_photosphere"
+ android:visibility="gone" />
+
+ <ImageButton
+ android:id="@+id/filmstrip_bottom_control_tiny_planet"
+ style="@style/FilmstripBottomControlButton"
+ android:layout_gravity="center"
+ android:src="@drawable/ic_menu_tiny_planet"
+ android:visibility="gone" />
+ </FrameLayout>
+
+ <View
+ android:id="@+id/filmstrip_bottom_control_middle_filler"
+ android:layout_width="0dp"
+ android:layout_height="1dp"
+ android:layout_weight="1"
+ android:visibility="invisible" />
+
+ <ImageButton
+ android:id="@+id/filmstrip_bottom_control_edit"
+ style="@style/FilmstripBottomControlButton"
+ android:src="@drawable/ic_menu_edit_holo_dark"
+ android:visibility="gone" />
+
+ <View
+ android:layout_width="0dp"
+ android:layout_height="1dp"
+ android:layout_weight="1"
+ android:visibility="invisible" />
+
+ </LinearLayout>
+
<ImageButton
android:id="@+id/filmstrip_bottom_control_delete"
style="@style/FilmstripBottomControlButton"
@@ -73,7 +101,7 @@
<!-- A filler view -->
<View
android:layout_width="0dp"
- android:layout_height="match_parent"
+ android:layout_height="1dp"
android:layout_weight="1"
android:visibility="invisible" />
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 99b9152..fff0349 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -159,7 +159,7 @@
<!-- Filmstrip bottom controls -->
<dimen name="filmstrip_bottom_control_size">48dp</dimen>
- <dimen name="filmstrip_bottom_control_spacing">8dp</dimen>
+ <dimen name="filmstrip_bottom_control_spacing">16dp</dimen>
<!-- Bottom bar ui -->
<dimen name="bottom_bar_height_min">80dp</dimen>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 3f732c5..e94ceef 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -277,7 +277,6 @@
<item name="android:alpha">1.0</item>
</style>
<style name="FilmstripBottomControlButton">
- <item name="android:layout_margin">@dimen/filmstrip_bottom_control_spacing</item>
<item name="android:layout_width">@dimen/filmstrip_bottom_control_size</item>
<item name="android:layout_height">@dimen/filmstrip_bottom_control_size</item>
<item name="android:background">@drawable/transparent_button_background</item>
diff --git a/src/com/android/camera/app/FilmstripBottomControls.java b/src/com/android/camera/app/FilmstripBottomControls.java
index 400139a..2c09592 100644
--- a/src/com/android/camera/app/FilmstripBottomControls.java
+++ b/src/com/android/camera/app/FilmstripBottomControls.java
@@ -32,12 +32,15 @@
private ViewGroup mLayout;
private ImageButton mEditButton;
private ImageButton mViewButton;
+ private View mViewerWrapperLayout;
private ImageButton mTinyPlanetButton;
private ImageButton mDeleteButton;
private ImageButton mShareButton;
+ private View mMiddleFiller;
public FilmstripBottomControls(ViewGroup bottomControlsLayout) {
mLayout = bottomControlsLayout;
+ mMiddleFiller = mLayout.findViewById(R.id.filmstrip_bottom_control_middle_filler);
setupEditButton();
setupViewButton();
setupTinyPlanetButton();
@@ -61,7 +64,8 @@
@Override
public void setEditButtonVisibility(boolean visible) {
- setVisibility(mEditButton, visible);
+ mEditButton.setVisibility(visible ? View.VISIBLE : View.GONE);
+ updateMiddleFillerLayoutVisibility();
}
@Override
@@ -72,12 +76,12 @@
@Override
public void setViewerButtonVisibility(int state) {
if (state == VIEWER_NONE) {
- setVisibility(mViewButton, false);
- return;
+ mViewButton.setVisibility(View.GONE);
+ } else {
+ mViewButton.setImageResource(getViewButtonResource(state));
+ mViewButton.setVisibility(View.VISIBLE);
}
- mViewButton.setImageResource(getViewButtonResource(state));
- setVisibility(mViewButton, true);
-
+ updateMiddleFillerLayoutVisibility();
}
@Override
@@ -87,7 +91,8 @@
@Override
public void setTinyPlanetButtonVisibility(final boolean visible) {
- setVisibility(mTinyPlanetButton, visible);
+ mTinyPlanetButton.setVisibility(visible ? View.VISIBLE : View.GONE);
+ updateMiddleFillerLayoutVisibility();
}
@Override
@@ -97,7 +102,7 @@
@Override
public void setDeleteButtonVisibility(boolean visible) {
- setVisibility(mDeleteButton, visible);
+ mDeleteButton.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
}
@Override
@@ -107,7 +112,7 @@
@Override
public void setShareButtonVisibility(boolean visible) {
- setVisibility(mShareButton, visible);
+ mShareButton.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
}
@Override
@@ -115,13 +120,6 @@
mShareButton.setEnabled(enabled);
}
- /**
- * Sets the visibility of the given view.
- */
- private static void setVisibility(final View view, final boolean visible) {
- view.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
- }
-
private int getViewButtonResource(int state) {
switch (state) {
case VIEWER_REFOCUS:
@@ -146,6 +144,7 @@
}
private void setupViewButton() {
+ mViewerWrapperLayout = mLayout.findViewById(R.id.filmstrip_bottom_control_viewer_wrapper);
mViewButton = (ImageButton) mLayout.findViewById(R.id.filmstrip_bottom_control_view);
mViewButton.setOnClickListener(new View.OnClickListener() {
@Override
@@ -193,4 +192,28 @@
}
});
}
+
+ /**
+ * Updates the visibility of the middle filler view in the center and the
+ * visibility of wrapper layout of viewer buttons and the tinyplanet button.
+ * The middle filler view should be visible when edit button and viewer
+ * buttons are both visible. The wrapper layout of viewer buttons and
+ * tinyplanet should be gone if no viewer button is shown and the
+ * tinyplanet button is invisible.
+ */
+ private void updateMiddleFillerLayoutVisibility() {
+ if (mViewButton.getVisibility() == View.VISIBLE ||
+ mTinyPlanetButton.getVisibility() == View.VISIBLE) {
+ mViewerWrapperLayout.setVisibility(View.VISIBLE);
+ } else {
+ mViewerWrapperLayout.setVisibility(View.GONE);
+ }
+
+ if (mEditButton.getVisibility() == View.VISIBLE &&
+ mViewerWrapperLayout.getVisibility() == View.VISIBLE) {
+ mMiddleFiller.setVisibility(View.INVISIBLE);
+ } else {
+ mMiddleFiller.setVisibility(View.GONE);
+ }
+ }
}