mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 965070 - Support GridViews in dynamic panels. r=lucasr
This commit is contained in:
parent
e53404d029
commit
484ffd9005
@ -388,7 +388,8 @@ public final class HomeConfig {
|
||||
}
|
||||
|
||||
public static enum ViewType implements Parcelable {
|
||||
LIST("list");
|
||||
LIST("list"),
|
||||
GRID("grid");
|
||||
|
||||
private final String mId;
|
||||
|
||||
|
52
mobile/android/base/home/PanelGridItemView.java
Normal file
52
mobile/android/base/home/PanelGridItemView.java
Normal file
@ -0,0 +1,52 @@
|
||||
/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package org.mozilla.gecko.home;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
||||
import org.mozilla.gecko.db.BrowserContract.URLColumns;
|
||||
import org.mozilla.gecko.favicons.Favicons;
|
||||
import org.mozilla.gecko.R;
|
||||
|
||||
import android.content.Context;
|
||||
import android.database.Cursor;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.Color;
|
||||
import android.text.TextUtils;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ImageView.ScaleType;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
public class PanelGridItemView extends FrameLayout {
|
||||
private static final String LOGTAG = "GeckoPanelGridItemView";
|
||||
|
||||
private final ImageView mThumbnailView;
|
||||
|
||||
public PanelGridItemView(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public PanelGridItemView(Context context, AttributeSet attrs) {
|
||||
this(context, attrs, 0);
|
||||
}
|
||||
|
||||
public PanelGridItemView(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
|
||||
LayoutInflater.from(context).inflate(R.layout.panel_grid_item_view, this);
|
||||
mThumbnailView = (ImageView) findViewById(R.id.image);
|
||||
mThumbnailView.setBackgroundColor(Color.rgb(255, 148, 0));
|
||||
}
|
||||
|
||||
public void updateFromCursor(Cursor cursor) { }
|
||||
}
|
54
mobile/android/base/home/PanelGridView.java
Normal file
54
mobile/android/base/home/PanelGridView.java
Normal file
@ -0,0 +1,54 @@
|
||||
/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package org.mozilla.gecko.home;
|
||||
|
||||
import org.mozilla.gecko.R;
|
||||
import org.mozilla.gecko.home.HomeConfig.ViewConfig;
|
||||
import org.mozilla.gecko.home.PanelLayout.DatasetBacked;
|
||||
|
||||
import android.content.Context;
|
||||
import android.database.Cursor;
|
||||
import android.support.v4.widget.CursorAdapter;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.GridView;
|
||||
|
||||
public class PanelGridView extends GridView implements DatasetBacked {
|
||||
private static final String LOGTAG = "GeckoPanelGridView";
|
||||
|
||||
private final PanelGridViewAdapter mAdapter;
|
||||
|
||||
public PanelGridView(Context context, ViewConfig viewConfig) {
|
||||
super(context, null, R.attr.homeGridViewStyle);
|
||||
mAdapter = new PanelGridViewAdapter(context);
|
||||
setAdapter(mAdapter);
|
||||
setNumColumns(AUTO_FIT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDataset(Cursor cursor) {
|
||||
mAdapter.swapCursor(cursor);
|
||||
}
|
||||
|
||||
private class PanelGridViewAdapter extends CursorAdapter {
|
||||
|
||||
public PanelGridViewAdapter(Context context) {
|
||||
super(context, null, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bindView(View bindView, Context context, Cursor cursor) {
|
||||
final PanelGridItemView item = (PanelGridItemView) bindView;
|
||||
item.updateFromCursor(cursor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View newView(Context context, Cursor cursor, ViewGroup parent) {
|
||||
return new PanelGridItemView(context);
|
||||
}
|
||||
}
|
||||
}
|
@ -144,6 +144,10 @@ abstract class PanelLayout extends FrameLayout {
|
||||
view = new PanelListView(getContext(), viewConfig);
|
||||
break;
|
||||
|
||||
case GRID:
|
||||
view = new PanelGridView(getContext(), viewConfig);
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new IllegalStateException("Unrecognized view type in " + getClass().getSimpleName());
|
||||
}
|
||||
|
@ -229,6 +229,8 @@ gbjar.sources += [
|
||||
'home/LastTabsPanel.java',
|
||||
'home/MostRecentPanel.java',
|
||||
'home/MultiTypeCursorAdapter.java',
|
||||
'home/PanelGridItemView.java',
|
||||
'home/PanelGridView.java',
|
||||
'home/PanelLayout.java',
|
||||
'home/PanelListRow.java',
|
||||
'home/PanelListView.java',
|
||||
|
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:gecko="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<ImageView android:id="@+id/image"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="80dp"
|
||||
android:layout_marginRight="5dp" />
|
||||
|
||||
</merge>
|
@ -28,7 +28,7 @@
|
||||
<item name="topDivider">true</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.TopSitesGridView" parent="Widget.GridView">
|
||||
<style name="Widget.HomeGridView" parent="Widget.GridView">
|
||||
<item name="android:paddingLeft">55dp</item>
|
||||
<item name="android:paddingRight">55dp</item>
|
||||
<item name="android:paddingBottom">30dp</item>
|
||||
@ -36,6 +36,8 @@
|
||||
<item name="android:verticalSpacing">20dp</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.TopSitesGridView" parent="Widget.HomeGridView" />
|
||||
|
||||
<style name="Widget.Home.HistoryListView">
|
||||
<item name="android:paddingLeft">50dp</item>
|
||||
<item name="android:paddingRight">100dp</item>
|
||||
|
@ -77,7 +77,7 @@
|
||||
<item name="topDivider">true</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.TopSitesGridView" parent="Widget.GridView">
|
||||
<style name="Widget.HomeGridView" parent="Widget.GridView">
|
||||
<item name="android:paddingLeft">5dp</item>
|
||||
<item name="android:paddingRight">5dp</item>
|
||||
<item name="android:paddingBottom">30dp</item>
|
||||
@ -85,6 +85,8 @@
|
||||
<item name="android:verticalSpacing">10dp</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.TopSitesGridView" parent="Widget.HomeGridView" />
|
||||
|
||||
<style name="Widget.TopSitesListView" parent="Widget.BookmarksListView">
|
||||
<item name="topDivider">false</item>
|
||||
</style>
|
||||
|
@ -47,6 +47,7 @@
|
||||
<item name="bookmarksListViewStyle">@style/Widget.BookmarksListView</item>
|
||||
<item name="topSitesGridItemViewStyle">@style/Widget.TopSitesGridItemView</item>
|
||||
<item name="topSitesGridViewStyle">@style/Widget.TopSitesGridView</item>
|
||||
<item name="homeGridViewStyle">@style/Widget.HomeGridView</item>
|
||||
<item name="topSitesThumbnailViewStyle">@style/Widget.TopSitesThumbnailView</item>
|
||||
<item name="homeListViewStyle">@style/Widget.HomeListView</item>
|
||||
<item name="geckoMenuListViewStyle">@style/Widget.GeckoMenuListView</item>
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
<resources>
|
||||
|
||||
<style name="Widget.TopSitesGridView" parent="Widget.GridView">
|
||||
<style name="Widget.HomeGridView" parent="Widget.GridView">
|
||||
<item name="android:paddingLeft">55dp</item>
|
||||
<item name="android:paddingRight">55dp</item>
|
||||
<item name="android:paddingBottom">30dp</item>
|
||||
@ -13,6 +13,8 @@
|
||||
<item name="android:verticalSpacing">20dp</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.TopSitesGridView" parent="Widget.HomeGridView" />
|
||||
|
||||
<style name="Widget.Home.HistoryListView">
|
||||
<item name="android:paddingLeft">50dp</item>
|
||||
<item name="android:paddingRight">100dp</item>
|
||||
|
@ -35,6 +35,9 @@
|
||||
<!-- Default style for the TopSitesGridItemView -->
|
||||
<attr name="topSitesGridItemViewStyle" format="reference" />
|
||||
|
||||
<!-- Default style for the HomeGridView -->
|
||||
<attr name="homeGridViewStyle" format="reference" />
|
||||
|
||||
<!-- Default style for the TopSitesGridView -->
|
||||
<attr name="topSitesGridViewStyle" format="reference" />
|
||||
|
||||
|
@ -130,12 +130,14 @@
|
||||
<item name="android:drawableLeft">@drawable/bookmark_folder</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.TopSitesGridView" parent="Widget.GridView">
|
||||
<style name="Widget.HomeGridView" parent="Widget.GridView">
|
||||
<item name="android:padding">7dp</item>
|
||||
<item name="android:horizontalSpacing">0dp</item>
|
||||
<item name="android:verticalSpacing">7dp</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.TopSitesGridView" parent="Widget.HomeGridView" />
|
||||
|
||||
<style name="Widget.TopSitesGridItemView">
|
||||
<item name="android:layout_width">fill_parent</item>
|
||||
<item name="android:layout_height">fill_parent</item>
|
||||
|
@ -80,6 +80,7 @@
|
||||
<item name="bookmarksListViewStyle">@style/Widget.BookmarksListView</item>
|
||||
<item name="topSitesGridItemViewStyle">@style/Widget.TopSitesGridItemView</item>
|
||||
<item name="topSitesGridViewStyle">@style/Widget.TopSitesGridView</item>
|
||||
<item name="homeGridViewStyle">@style/Widget.HomeGridView</item>
|
||||
<item name="topSitesThumbnailViewStyle">@style/Widget.TopSitesThumbnailView</item>
|
||||
<item name="homeListViewStyle">@style/Widget.HomeListView</item>
|
||||
<item name="geckoMenuListViewStyle">@style/Widget.GeckoMenuListView</item>
|
||||
|
Loading…
Reference in New Issue
Block a user