summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/app/PhotoPageBottomControls.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/app/PhotoPageBottomControls.java')
-rw-r--r--src/com/android/gallery3d/app/PhotoPageBottomControls.java137
1 files changed, 0 insertions, 137 deletions
diff --git a/src/com/android/gallery3d/app/PhotoPageBottomControls.java b/src/com/android/gallery3d/app/PhotoPageBottomControls.java
deleted file mode 100644
index 24b8ceb7e..000000000
--- a/src/com/android/gallery3d/app/PhotoPageBottomControls.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 2012 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.gallery3d.app;
-
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.view.animation.AlphaAnimation;
-import android.view.animation.Animation;
-import android.widget.RelativeLayout;
-
-import com.android.gallery3d.R;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class PhotoPageBottomControls implements OnClickListener {
- public interface Delegate {
- public boolean canDisplayBottomControls();
- public boolean canDisplayBottomControl(int control);
- public void onBottomControlClicked(int control);
- public void refreshBottomControlsWhenReady();
- }
-
- private Delegate mDelegate;
- private ViewGroup mParentLayout;
- private ViewGroup mContainer;
-
- private boolean mContainerVisible = false;
- private Map<View, Boolean> mControlsVisible = new HashMap<View, Boolean>();
-
- private Animation mContainerAnimIn = new AlphaAnimation(0f, 1f);
- private Animation mContainerAnimOut = new AlphaAnimation(1f, 0f);
- private static final int CONTAINER_ANIM_DURATION_MS = 200;
-
- private static final int CONTROL_ANIM_DURATION_MS = 150;
- private static Animation getControlAnimForVisibility(boolean visible) {
- Animation anim = visible ? new AlphaAnimation(0f, 1f)
- : new AlphaAnimation(1f, 0f);
- anim.setDuration(CONTROL_ANIM_DURATION_MS);
- return anim;
- }
-
- public PhotoPageBottomControls(Delegate delegate, Context context, RelativeLayout layout) {
- mDelegate = delegate;
- mParentLayout = layout;
-
- LayoutInflater inflater = (LayoutInflater) context
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- mContainer = (ViewGroup) inflater
- .inflate(R.layout.photopage_bottom_controls, mParentLayout, false);
- mParentLayout.addView(mContainer);
-
- for (int i = mContainer.getChildCount() - 1; i >= 0; i--) {
- View child = mContainer.getChildAt(i);
- child.setOnClickListener(this);
- mControlsVisible.put(child, false);
- }
-
- mContainerAnimIn.setDuration(CONTAINER_ANIM_DURATION_MS);
- mContainerAnimOut.setDuration(CONTAINER_ANIM_DURATION_MS);
-
- mDelegate.refreshBottomControlsWhenReady();
- }
-
- private void hide() {
- mContainer.clearAnimation();
- mContainerAnimOut.reset();
- mContainer.startAnimation(mContainerAnimOut);
- mContainer.setVisibility(View.INVISIBLE);
- }
-
- private void show() {
- mContainer.clearAnimation();
- mContainerAnimIn.reset();
- mContainer.startAnimation(mContainerAnimIn);
- mContainer.setVisibility(View.VISIBLE);
- }
-
- public void refresh() {
- boolean visible = mDelegate.canDisplayBottomControls();
- boolean containerVisibilityChanged = (visible != mContainerVisible);
- if (containerVisibilityChanged) {
- if (visible) {
- show();
- } else {
- hide();
- }
- mContainerVisible = visible;
- }
- if (!mContainerVisible) {
- return;
- }
- for (View control : mControlsVisible.keySet()) {
- Boolean prevVisibility = mControlsVisible.get(control);
- boolean curVisibility = mDelegate.canDisplayBottomControl(control.getId());
- if (prevVisibility.booleanValue() != curVisibility) {
- if (!containerVisibilityChanged) {
- control.clearAnimation();
- control.startAnimation(getControlAnimForVisibility(curVisibility));
- }
- control.setVisibility(curVisibility ? View.VISIBLE : View.INVISIBLE);
- mControlsVisible.put(control, curVisibility);
- }
- }
- // Force a layout change
- mContainer.requestLayout(); // Kick framework to draw the control.
- }
-
- public void cleanup() {
- mParentLayout.removeView(mContainer);
- mControlsVisible.clear();
- }
-
- @Override
- public void onClick(View view) {
- if (mContainerVisible && mControlsVisible.get(view).booleanValue()) {
- mDelegate.onBottomControlClicked(view.getId());
- }
- }
-}