summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/ImageGrid.java
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:49 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:49 -0800
commit8611831e36b71c844a14788998728f3cd625b833 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /src/com/android/browser/ImageGrid.java
parent1658a9bc00a3bd692908dcd5b9eb550a49f8f5ec (diff)
downloadpackages_apps_Browser-8611831e36b71c844a14788998728f3cd625b833.zip
packages_apps_Browser-8611831e36b71c844a14788998728f3cd625b833.tar.gz
packages_apps_Browser-8611831e36b71c844a14788998728f3cd625b833.tar.bz2
auto import from //depot/cupcake/@135843
Diffstat (limited to 'src/com/android/browser/ImageGrid.java')
-rw-r--r--src/com/android/browser/ImageGrid.java233
1 files changed, 0 insertions, 233 deletions
diff --git a/src/com/android/browser/ImageGrid.java b/src/com/android/browser/ImageGrid.java
deleted file mode 100644
index 9eccb16..0000000
--- a/src/com/android/browser/ImageGrid.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Copyright (C) 2008 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.browser;
-
-import android.content.Context;
-import android.util.Config;
-import android.view.ContextMenu;
-import android.view.ContextMenu.ContextMenuInfo;
-import android.view.KeyEvent;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.View.OnCreateContextMenuListener;
-import android.webkit.WebView;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.GridView;
-
-/**
- * This class implements a Grid layout of Views for the Tab picker.
- */
-class ImageGrid extends GridView implements OnItemClickListener,
- OnCreateContextMenuListener {
-
- private Listener mListener;
- private ImageAdapter mAdapter;
- private boolean mIsLive;
- private static final int SPACING = 10;
- public static final int CANCEL = -99;
- public static final int NEW_TAB = -1;
-
- /**
- * Constructor
- * @param context Context to use when inflating resources.
- * @param live TRUE if the view can accept touch or click
- * @param l Listener to respond to clicks etc.
- */
- public ImageGrid(Context context, boolean live, Listener l) {
- super(context);
-
- mIsLive = live;
- if (live) {
- setFocusable(true);
- setFocusableInTouchMode(true);
- setOnItemClickListener(this);
- setOnCreateContextMenuListener(this);
- }
- mListener = l;
-
- mAdapter = new ImageAdapter(context, this, live);
- setAdapter(mAdapter);
-
- setBackgroundColor(0xFF000000);
-
- setVerticalSpacing(SPACING);
- setHorizontalSpacing(SPACING);
- setNumColumns(2);
- setStretchMode(GridView.STRETCH_COLUMN_WIDTH);
- setSelector(android.R.drawable.gallery_thumb);
- }
-
- @Override
- public boolean dispatchKeyEvent(KeyEvent event) {
- // We always consume the BACK key even if mListener is null or the
- // ImageGrid is not "live." This prevents crashes during tab animations
- // if the user presses BACK.
- if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
- (event.getKeyCode() == KeyEvent.KEYCODE_BACK)) {
- if (mListener != null && mIsLive) {
- mListener.onClick(CANCEL);
- invalidate();
- }
- return true;
- }
- return super.dispatchKeyEvent(event);
- }
-
- /**
- * Called by BrowserActivity to add a new window to the tab picker.
- * This does not happen dynamically, this only happens during view
- * setup.
- *
- * @param v Webview of the tab to add
- * @param name Web page title
- * @param url URL of the webpage
- */
- public void add(TabControl.Tab t) {
- mAdapter.add(t);
- }
-
- /**
- * Called by BrowserActivity when a window has been removed from the
- * tab list.
- *
- * @param index Window to remove, from 0 to MAX_TABS-1
- */
- public void remove(int index) {
- if (Config.DEBUG && (index < 0 || index >= TabControl.MAX_TABS)) {
- throw new AssertionError();
- }
- mAdapter.remove(index);
- }
-
- /**
- * Request focus to initially set to a particular tab.
- *
- * @param startingIndex This is a Tab index from 0 - MAX_TABS-1 and does not
- * include the "New Tab" cell.
- */
- public void setCurrentIndex(int startingIndex) {
- if (!mAdapter.maxedOut()) {
- startingIndex++;
- }
- setSelection(startingIndex);
- }
-
- public Listener getListener() {
- return mListener;
- }
-
- public void setListener(Listener l) {
- mListener = l;
- }
-
- /**
- * Return true if the ImageGrid is live. This means that tabs can be chosen
- * and the menu can be invoked.
- */
- public boolean isLive() {
- return mIsLive;
- }
-
- /**
- * Do some internal cleanup of the ImageGrid's adapter.
- */
- public void clear() {
- mAdapter.clear();
- }
-
- /* (non-Javadoc)
- * @see android.widget.AdapterView.OnItemClickListener#onItemClick(android.widget.AdapterView, android.view.View, int, long)
- */
- public void onItemClick(AdapterView parent, View v, int position, long id) {
- if (!mAdapter.maxedOut()) {
- position--;
- }
- // Position will be -1 for the "New Tab" cell.
- if (mListener != null) {
- mListener.onClick(position);
- }
- }
-
- /* (non-Javadoc)
- * @see android.view.View.OnCreateContextMenuListener#onCreateContextMenu(android.view.ContextMenu, android.view.View, java.lang.Object)
- */
- public void onCreateContextMenu(ContextMenu menu, View v,
- ContextMenuInfo menuInfo) {
- // Do not create the context menu if there is no listener or the Tab
- // overview is not "live."
- if (mListener == null || !mIsLive) {
- return;
- }
- AdapterView.AdapterContextMenuInfo info =
- (AdapterView.AdapterContextMenuInfo) menuInfo;
- boolean maxed = mAdapter.maxedOut();
- if (info.position > 0 || maxed) {
- MenuInflater inflater = new MenuInflater(mContext);
- inflater.inflate(R.menu.tabscontext, menu);
- int position = info.position;
- if (!maxed) {
- position--;
- }
- menu.setHeaderTitle(mAdapter.mItems.get(position).getTitle());
- }
- }
-
- // convert a context menu position to an actual tab position. Since context
- // menus are not created for the "New Tab" cell, this will always return a
- // valid tab position.
- public int getContextMenuPosition(MenuItem menu) {
- AdapterView.AdapterContextMenuInfo info =
- (AdapterView.AdapterContextMenuInfo) menu.getMenuInfo();
- int pos = info.position;
- if (!mAdapter.maxedOut()) {
- pos--;
- }
- return pos;
- }
-
- @Override
- protected void onSizeChanged(int w, int h, int oldw, int oldh) {
- // Called when our orientation changes. Tell the adapter about the new
- // size. Compute the individual tab height by taking the grid height
- // and subtracting the SPACING. Then subtract the list padding twice
- // (once for each tab on screen) and divide the remaining height by 2.
- int tabHeight = (h - SPACING
- - 2 * (getListPaddingTop() + getListPaddingBottom())) / 2;
- mAdapter.heightChanged(tabHeight);
- super.onSizeChanged(w, h, oldw, oldh);
- }
-
- /**
- * Listener to be notified by behavior of ImageGrid.
- */
- public interface Listener {
- /**
- * Called when enter is pressed on the list.
- * @param position The index of the selected image when
- * enter is pressed.
- */
- void onClick(int position);
-
- /**
- * Called when remove is called on the grid.
- */
- void remove(int position);
- }
-
-}