diff options
author | Kulanthaivel Palanichamy <kulanthaivel@codeaurora.org> | 2015-01-29 19:32:14 -0800 |
---|---|---|
committer | WebTech Code Review <code-review@localhost> | 2015-02-03 15:30:47 -0800 |
commit | a94b4d312f8d19d7cfbfdc7215d662d03b4ea6f1 (patch) | |
tree | eadefc8627aafb1d40b9b03dfdd2263fa98f00b6 /src/com/android/browser/view | |
parent | 361ac5c727a84545e5dd6915344d6fce2cdd5a28 (diff) | |
download | android_packages_apps_Gello-a94b4d312f8d19d7cfbfdc7215d662d03b4ea6f1.tar.gz android_packages_apps_Gello-a94b4d312f8d19d7cfbfdc7215d662d03b4ea6f1.tar.bz2 android_packages_apps_Gello-a94b4d312f8d19d7cfbfdc7215d662d03b4ea6f1.zip |
Cleanup Bookmarks, History, and SavedPages screen
- Redesigned bookmark thumbnail view
- Custom ImageView to scale the thumbnail properly
- Fix column count in bookmark expandable view
- Disable GroupView if we have only one account in bookmark
Change-Id: I2fccae50b9e96c909744bd5c7d0af7b373136c54
Diffstat (limited to 'src/com/android/browser/view')
3 files changed, 92 insertions, 3 deletions
diff --git a/src/com/android/browser/view/BookmarkContainer.java b/src/com/android/browser/view/BookmarkContainer.java index 5175589d..54f281cc 100644 --- a/src/com/android/browser/view/BookmarkContainer.java +++ b/src/com/android/browser/view/BookmarkContainer.java @@ -24,9 +24,9 @@ import android.util.AttributeSet; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewConfiguration; -import android.widget.RelativeLayout; +import android.widget.LinearLayout; -public class BookmarkContainer extends RelativeLayout implements OnClickListener { +public class BookmarkContainer extends LinearLayout implements OnClickListener { private OnClickListener mClickListener; private boolean mIgnoreRequestLayout = false; diff --git a/src/com/android/browser/view/BookmarkExpandableView.java b/src/com/android/browser/view/BookmarkExpandableView.java index aec00ffb..db19c339 100644 --- a/src/com/android/browser/view/BookmarkExpandableView.java +++ b/src/com/android/browser/view/BookmarkExpandableView.java @@ -109,7 +109,8 @@ public class BookmarkExpandableView extends ExpandableListView LayoutInflater infalter = LayoutInflater.from(mContext); View v = infalter.inflate(layout, this, false); v.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED); - mColumnWidth = v.getMeasuredWidth(); + int margin = getResources().getDimensionPixelSize(R.dimen.combo_bookmark_thumbnail_margin); + mColumnWidth = v.getMeasuredWidth() + (margin * 2); } public void clearAccounts() { @@ -402,6 +403,16 @@ public class BookmarkExpandableView extends ExpandableListView if (view == null) { view = mInflater.inflate(R.layout.bookmark_group_view, parent, false); view.setOnClickListener(mGroupOnClickListener); + if (getGroupCount() == 1 && isExpanded) { + // Hide the group view if we have only one group in this expandable list. + ViewGroup.LayoutParams lp = view.getLayoutParams(); + lp.height = 0; + view.setLayoutParams(lp); + view.setVisibility(View.INVISIBLE); + if (parent instanceof ExpandableListView) { + ((ExpandableListView) parent).setGroupIndicator(null); + } + } } view.setTag(R.id.group_position, groupPosition); FrameLayout crumbHolder = (FrameLayout) view.findViewById(R.id.crumb_holder); diff --git a/src/com/android/browser/view/BookmarkThumbImageView.java b/src/com/android/browser/view/BookmarkThumbImageView.java new file mode 100644 index 00000000..50b35447 --- /dev/null +++ b/src/com/android/browser/view/BookmarkThumbImageView.java @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +package com.android.browser.view; + +import android.content.Context; +import android.graphics.Matrix; +import android.graphics.drawable.Drawable; +import android.util.AttributeSet; +import android.widget.ImageView; + +public class BookmarkThumbImageView extends ImageView { + + public BookmarkThumbImageView(Context context) { + this(context, null); + } + + public BookmarkThumbImageView(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public BookmarkThumbImageView(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + @Override + public void setImageDrawable(Drawable drawable) { + int drawableWidth = drawable.getIntrinsicWidth(); + int drawableHeight = drawable.getIntrinsicHeight(); + int containerWidth = getWidth() - getPaddingLeft() - getPaddingRight(); + int containerHeight = getHeight() - getPaddingTop() - getPaddingBottom(); + + float scale; + Matrix m = new Matrix(); + if ( (drawableWidth * containerHeight) > (containerWidth * drawableHeight)) { + scale = (float) containerHeight / (float) drawableHeight; + } else { + scale = (float) containerWidth / (float) drawableWidth; + float translateY = (containerHeight - drawableHeight * scale) / 2; + if (translateY < 0) { + translateY = 0; + } + m.postTranslate(0, translateY + 0.5f); + } + m.setScale(scale, scale); + + this.setScaleType(ScaleType.MATRIX); + this.setImageMatrix(m); + super.setImageDrawable(drawable); + } +} |