Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4b69f2ca authored by Hyunyoung Song's avatar Hyunyoung Song
Browse files

Ensure that clipping widget size is 20~40% of its width on every devices

b/20338324
b/20763871

Change-Id: I69114cb6dfec95c473313a440a6db76a052e5601
parent 5b370735
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -19,10 +19,11 @@
    android:layout_width="@dimen/widget_preview_container_width"
    android:layout_height="@dimen/widget_cell_height"
    android:layout_weight="1"
    android:layout_marginRight="@dimen/widget_row_divider"
    android:layout_marginEnd="@dimen/widget_row_divider"
    android:orientation="vertical"
    android:background="@color/widgets_cell_color"
    android:focusable="true">
    android:focusable="true"
    android:gravity="center_horizontal">

    <LinearLayout
        android:layout_width="wrap_content"
@@ -43,7 +44,6 @@
            android:singleLine="true"
            android:ellipsize="end"
            android:fadingEdge="horizontal"

            android:textColor="@color/widgets_view_item_text_color"
            android:textSize="16sp"
            android:textAlignment="viewStart"
+6 −5
Original line number Diff line number Diff line
@@ -55,17 +55,18 @@
    </LinearLayout>

    <!--  Widget list -->
    <RelativeLayout
    <com.android.launcher3.widget.WidgetRowView
        android:id="@+id/widget_row"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_height="@dimen/widget_cell_height"
        android:layout_gravity="end"
        android:layout_marginLeft="@dimen/widget_row_padding"
        android:background="@color/widgets_cell_color"
        >
        <HorizontalScrollView
            android:id="@+id/widgets_scroll_container"
            android:layout_width="match_parent"
            android:layout_height="@dimen/widget_cell_height"
            android:layout_marginLeft="@dimen/widget_row_padding"
            android:layout_height="match_parent"
            android:scrollbars="none" >
            <LinearLayout
                android:id="@+id/widgets_cell_list"
@@ -74,5 +75,5 @@
                android:orientation="horizontal"
                android:background="@color/widget_text_panel"/>
        </HorizontalScrollView>
    </RelativeLayout>
    </com.android.launcher3.widget.WidgetRowView>
</LinearLayout>
+3 −3
Original line number Diff line number Diff line
@@ -82,7 +82,7 @@

<!-- Widget tray -->
    <dimen name="widget_container_inset">8dp</dimen>
    <dimen name="widget_preview_size">120dp</dimen>
    <dimen name="widget_preview_size">130dp</dimen>
    <dimen name="widget_preview_padding_top">8dp</dimen>
    <dimen name="widget_preview_label_vertical_padding">8dp</dimen>
    <dimen name="widget_preview_label_horizontal_padding">8dp</dimen>
@@ -94,10 +94,10 @@
    <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_preview_container_width">146dp</dimen>
    <dimen name="widget_cell_height">150dp</dimen>
    <dimen name="widget_row_padding">8dp</dimen>
    <dimen name="widget_row_divider">1dp</dimen>
    <dimen name="widget_row_divider">2dp</dimen>

    <!-- Padding applied to shortcut previews -->
    <dimen name="shortcut_preview_padding_left">0dp</dimen>
+2 −3
Original line number Diff line number Diff line
@@ -80,12 +80,11 @@ public class DeviceProfile {
    int defaultLayoutId;

    boolean isLandscape;
    boolean isTablet;
    boolean isLargeTablet;
    public boolean isTablet;
    public boolean isLargeTablet;
    public boolean isLayoutRtl;

    boolean transposeLayoutWithOrientation;

    int desiredWorkspaceLeftRightMarginPx;
    public int edgeMarginPx;
    Rect defaultWidgetPadding;
+35 −2
Original line number Diff line number Diff line
@@ -49,7 +49,16 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
    private static final boolean DEBUG = false;

    private static final int FADE_IN_DURATION_MS = 90;
    private int mPresetPreviewSize;

    /** Widget cell width is calculated by multiplying this factor to grid cell width. */
    private static final float WIDTH_SCALE = 2.8f;

    /** Widget preview width is calculated by multiplying this factor to the widget cell width. */
    private static final float PREVIEW_SCALE = 0.9f;

    private static int mPresetPreviewSize;
    private static int mSize;
    private static int mDividerWidth;

    private ImageView mWidgetImage;
    private TextView mWidgetName;
@@ -76,12 +85,22 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {

        final Resources r = context.getResources();
        mDimensionsFormatString = r.getString(R.string.widget_dims_format);
        mPresetPreviewSize = r.getDimensionPixelSize(R.dimen.widget_preview_size);

        setContainerWidth();
        setWillNotDraw(false);
        setClipToPadding(false);
        setAccessibilityDelegate(LauncherAppState.getInstance().getAccessibilityDelegate());
    }

    private void setContainerWidth() {
        // Do nothing if already set
        if (mSize > 0) {
            return;
        }
        DeviceProfile profile = LauncherAppState.getInstance().getDynamicGrid().getDeviceProfile();
        mSize = (int) (profile.cellWidthPx * WIDTH_SCALE);
        mPresetPreviewSize = (int) (profile.cellWidthPx * WIDTH_SCALE * PREVIEW_SCALE);
        mDividerWidth = getResources().getDimensionPixelSize(R.dimen.widget_row_divider);
    }

    @Override
@@ -98,6 +117,12 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
        mWidgetDims = ((TextView) findViewById(R.id.widget_dims));
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(MeasureSpec.makeMeasureSpec(mSize, MeasureSpec.EXACTLY),
                MeasureSpec.makeMeasureSpec(mSize, MeasureSpec.EXACTLY));
    }

    /**
     * Called to clear the view and free attached resources. (e.g., {@link Bitmap}
     */
@@ -108,6 +133,7 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
        mWidgetImage.setImageDrawable(null);
        mWidgetName.setText(null);
        mWidgetDims.setText(null);
        setSeparator(true);

        if (mActiveRequest != null) {
            mActiveRequest.cleanup();
@@ -229,4 +255,11 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
        }
        return "";
    }

    public void setSeparator(boolean enable) {
        LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) getLayoutParams();
        lp.setMarginEnd(enable? mDividerWidth : 0);
        setLayoutParams(lp);
        requestLayout();
    }
}
Loading