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

Commit 2cdaf57f authored by Sunny Goyal's avatar Sunny Goyal Committed by Tony Mak
Browse files

Make work footer stick to the bottom if there are only a few apps

Bug: 70571983
Change-Id: I60ef59de0cfcbc8df24b270d0b6d2f6439ccad44
parent a74e60cb
Loading
Loading
Loading
Loading
+47 −50
Original line number Diff line number Diff line
@@ -13,31 +13,28 @@
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<com.android.launcher3.views.WorkModeToggleContainer
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
      android:orientation="vertical"
    android:paddingBottom="@dimen/all_apps_work_profile_tab_footer_bottom_padding"
    android:paddingLeft="@dimen/dynamic_grid_cell_padding_x"
    android:paddingRight="@dimen/dynamic_grid_cell_padding_x"
    android:paddingTop="@dimen/all_apps_work_profile_tab_footer_top_padding">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    <Switch
        android:id="@+id/work_mode_toggle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:theme="@style/WorkModeSwitchTheme"/>

    <TextView
        android:id="@android:id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@id/work_mode_toggle"
            android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:ellipsize="end"
        android:fontFamily="roboto-regular"
        android:lines="1"
@@ -45,28 +42,28 @@
        android:textColor="?android:attr/textColorTertiary"
        android:textSize="16sp"/>

    </RelativeLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="8dp">

    <ImageView
        android:id="@android:id/icon"
        android:layout_width="24dp"
        android:layout_height="24dp"
        android:layout_below="@android:id/title"
        android:layout_marginTop="8dp"
        android:src="@drawable/ic_corp"/>


    <TextView
        android:id="@+id/managed_by_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
        android:layout_below="@android:id/title"
        android:layout_marginTop="8dp"
        android:layout_toEndOf="@android:id/icon"
        android:ellipsize="end"
        android:gravity="center_vertical"
        android:lines="1"
            android:paddingLeft="12dp"
        android:minHeight="24dp"
        android:paddingStart="12dp"
        android:textColor="?android:attr/textColorHint"
        android:textSize="13sp"/>
    </LinearLayout>
</LinearLayout>
 No newline at end of file

</com.android.launcher3.views.WorkModeToggleContainer>
 No newline at end of file
+59 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 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.launcher3.views;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.RelativeLayout;

/**
 * Container to show work mode toggle in all-apps
 */
public class WorkModeToggleContainer extends RelativeLayout {

    public WorkModeToggleContainer(Context context) {
        super(context);
    }

    public WorkModeToggleContainer(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public WorkModeToggleContainer(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onLayout(boolean changed, int l, int t, int r, int b) {
        super.onLayout(changed, l, t, r, b);
        updateTranslation();
    }

    @Override
    public void offsetTopAndBottom(int offset) {
        super.offsetTopAndBottom(offset);
        updateTranslation();
    }

    private void updateTranslation() {
        if (getParent() instanceof View) {
            View parent = (View) getParent();
            int availableBot = parent.getHeight() - parent.getPaddingBottom();
            setTranslationY(Math.max(0, availableBot - getBottom()));
        }
    }
}