Merge "Widget tray alignment according to UX spec - Fixing an issue where widget preview is not loaded do to faulty canceling of loading async task when view is detached from the window." into ub-launcher3-burnaby
This commit is contained in:
commit
341220b954
|
@ -17,13 +17,11 @@
|
|||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:launcher="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="@dimen/widget_preview_container_width"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="@dimen/widget_cell_height"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginTop="@dimen/widget_preview_padding_top"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginRight="@dimen/widget_row_divider"
|
||||
android:orientation="vertical"
|
||||
android:background="@color/bubble_dark_background"
|
||||
android:background="@color/widgets_cell_color"
|
||||
android:focusable="true">
|
||||
|
||||
<LinearLayout
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:focusable="true"
|
||||
android:background="@drawable/focusable_view_bg"
|
||||
android:descendantFocusability="afterDescendants">
|
||||
|
||||
<!-- Section info -->
|
||||
|
@ -29,24 +28,23 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:focusable="true"
|
||||
android:background="@drawable/focusable_view_bg"
|
||||
android:descendantFocusability="afterDescendants">
|
||||
<ImageView
|
||||
android:id="@+id/section_image"
|
||||
android:layout_width="@dimen/widget_section_height"
|
||||
android:layout_height="@dimen/widget_section_height"
|
||||
android:paddingLeft="@dimen/widget_section_icon_padding"
|
||||
android:paddingRight="@dimen/widget_section_icon_padding"
|
||||
android:paddingTop="@dimen/widget_section_icon_padding"
|
||||
android:paddingBottom="@dimen/widget_section_icon_padding"
|
||||
android:layout_width="@dimen/widget_section_icon_width"
|
||||
android:paddingLeft="@dimen/widget_section_icon_horizontal_padding"
|
||||
android:paddingRight="@dimen/widget_section_icon_horizontal_padding"
|
||||
android:paddingTop="@dimen/widget_section_icon_vertical_padding"
|
||||
android:paddingBottom="@dimen/widget_section_icon_vertical_padding"
|
||||
android:background="@color/widget_text_panel"
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/section"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/widget_section_height"
|
||||
android:paddingLeft="16dp"
|
||||
android:paddingRight="16dp"
|
||||
android:paddingEnd="@dimen/widget_preview_label_horizontal_padding"
|
||||
android:paddingRight="@dimen/widget_preview_label_horizontal_padding"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:gravity="start|center_vertical"
|
||||
|
@ -57,31 +55,24 @@
|
|||
</LinearLayout>
|
||||
|
||||
<!-- Widget list -->
|
||||
<RelativeLayout
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="end"
|
||||
android:background="@color/widgets_cell_color"
|
||||
>
|
||||
<!-- TODO(hyunyoungs): replace the indicator with actual assets. -->
|
||||
<FrameLayout
|
||||
android:id="@+id/scrollable_indicator"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/ic_pageindicator_default"
|
||||
android:visibility="invisible"
|
||||
/>
|
||||
<HorizontalScrollView
|
||||
android:id="@+id/widgets_scroll_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/widget_cell_height"
|
||||
android:paddingLeft="40dp"
|
||||
android:layout_marginLeft="@dimen/widget_row_padding"
|
||||
android:scrollbars="none" >
|
||||
<LinearLayout
|
||||
android:id="@+id/widgets_cell_list"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal" />
|
||||
android:orientation="horizontal"
|
||||
android:background="@color/widget_text_panel"/>
|
||||
</HorizontalScrollView>
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
|
|
|
@ -42,4 +42,5 @@
|
|||
|
||||
<!-- Widgetss view -->
|
||||
<color name="widgets_view_section_text_color">#009688</color>
|
||||
<color name="widgets_cell_color">#263238</color>
|
||||
</resources>
|
||||
|
|
|
@ -86,12 +86,16 @@
|
|||
<dimen name="widget_preview_label_horizontal_padding">8dp</dimen>
|
||||
<dimen name="widget_preview_horizontal_padding">8dp</dimen>
|
||||
|
||||
<dimen name="widget_section_height">52dp</dimen>
|
||||
<dimen name="widget_section_icon_padding">8dp</dimen>
|
||||
<dimen name="widget_section_height">56dp</dimen>
|
||||
<dimen name="widget_section_icon_width">72dp</dimen>
|
||||
<dimen name="widget_section_icon_vertical_padding">8dp</dimen>
|
||||
<dimen name="widget_section_icon_horizontal_padding">16dp</dimen>
|
||||
|
||||
<!-- Equation: widget_preview_size + 2 * widget_preview_padding_horizontal -->
|
||||
<dimen name="widget_preview_container_width">136dp</dimen>
|
||||
<dimen name="widget_cell_height">150dp</dimen>
|
||||
<dimen name="widget_row_padding">8dp</dimen>
|
||||
<dimen name="widget_row_divider">1dp</dimen>
|
||||
|
||||
<!-- Padding applied to shortcut previews -->
|
||||
<dimen name="shortcut_preview_padding_left">0dp</dimen>
|
||||
|
|
|
@ -48,7 +48,7 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
|
|||
private static final String TAG = "WidgetCell";
|
||||
private static final boolean DEBUG = false;
|
||||
|
||||
private static final int FADE_IN_DURATION_MS = 70;
|
||||
private static final int FADE_IN_DURATION_MS = 90;
|
||||
private int mPresetPreviewSize;
|
||||
|
||||
private ImageView mWidgetImage;
|
||||
|
@ -104,6 +104,8 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
|
|||
mWidgetImage.setImageDrawable(null);
|
||||
mWidgetName.setText(null);
|
||||
mWidgetDims.setText(null);
|
||||
|
||||
cancelLoader(false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -140,16 +142,6 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
|
|||
mWidgetPreviewLoader = loader;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow();
|
||||
deletePreview(false);
|
||||
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, String.format("[tag=%s] onDetachedFromWindow", getTagToString()));
|
||||
}
|
||||
}
|
||||
|
||||
public int[] getPreviewSize() {
|
||||
int[] maxSize = new int[2];
|
||||
maxSize[0] = mPresetPreviewSize;
|
||||
|
@ -219,10 +211,7 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
|
|||
return Math.min(size[0], info.spanX * cellWidth);
|
||||
}
|
||||
|
||||
|
||||
private void deletePreview(boolean recycleImage) {
|
||||
mWidgetImage.setImageDrawable(null);
|
||||
|
||||
private void cancelLoader(boolean recycleImage) {
|
||||
if (mActiveRequest != null) {
|
||||
mActiveRequest.cancel(recycleImage);
|
||||
mActiveRequest = null;
|
||||
|
|
|
@ -127,7 +127,6 @@ public class WidgetsListAdapter extends Adapter<WidgetsRowViewHolder> {
|
|||
// Bind the view in the widget horizontal tray region.
|
||||
for (int i=0; i < infoList.size(); i++) {
|
||||
WidgetCell widget = (WidgetCell) row.getChildAt(i);
|
||||
widget.reset();
|
||||
if (getWidgetPreviewLoader() == null) {
|
||||
return;
|
||||
}
|
||||
|
@ -158,6 +157,16 @@ public class WidgetsListAdapter extends Adapter<WidgetsRowViewHolder> {
|
|||
return new WidgetsRowViewHolder(container);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewRecycled(WidgetsRowViewHolder holder) {
|
||||
ViewGroup row = ((ViewGroup) holder.getContent().findViewById(R.id.widgets_cell_list));
|
||||
|
||||
for (int i = 0; i < row.getChildCount(); i++) {
|
||||
WidgetCell widget = (WidgetCell) row.getChildAt(i);
|
||||
widget.reset();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getItemId(int pos) {
|
||||
return pos;
|
||||
|
|
Loading…
Reference in New Issue