mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-27 23:36:47 +00:00
Merge changes I218fe7d9,I60ef59de into ub-launcher3-master
* changes: Make work footer stick to the bottom if there are only a few apps #2 Make work footer stick to the bottom if there are only a few apps
This commit is contained in:
@@ -13,60 +13,68 @@
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<LinearLayout 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">
|
||||
<com.android.launcher3.views.WorkFooterContainer
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
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:theme="@style/WorkModeSwitchTheme"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignBaseline="@id/work_mode_toggle"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:ellipsize="end"
|
||||
android:fontFamily="roboto-regular"
|
||||
android:lines="1"
|
||||
android:text="@string/work_profile_toggle_label"
|
||||
android:textColor="?android:attr/textColorTertiary"
|
||||
android:textSize="16sp"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
<ImageView
|
||||
android:id="@+id/work_footer_divider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:paddingTop="8dp">
|
||||
android:focusable="false"
|
||||
android:importantForAccessibility="no"
|
||||
android:paddingBottom="@dimen/all_apps_divider_margin_vertical"
|
||||
android:paddingTop="@dimen/all_apps_divider_margin_vertical"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/all_apps_divider"/>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_corp"/>
|
||||
<Switch
|
||||
android:id="@+id/work_mode_toggle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_below="@id/work_footer_divider"
|
||||
android:theme="@style/WorkModeSwitchTheme"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/managed_by_label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:paddingLeft="12dp"
|
||||
android:textColor="?android:attr/textColorHint"
|
||||
android:textSize="13sp"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<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_alignParentStart="true"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:text="@string/work_profile_toggle_label"
|
||||
android:textColor="?android:attr/textColorTertiary"
|
||||
android:textSize="16sp"/>
|
||||
|
||||
<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_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:minHeight="24dp"
|
||||
android:paddingStart="12dp"
|
||||
android:text="@string/managed_by_your_organisation"
|
||||
android:textColor="?android:attr/textColorHint"
|
||||
android:textSize="13sp"/>
|
||||
|
||||
</com.android.launcher3.views.WorkFooterContainer>
|
||||
@@ -330,5 +330,7 @@
|
||||
<string name="bottom_work_tab_user_education_title">Find work apps here</string>
|
||||
<!-- Body text in bottom user education view in work tab -->
|
||||
<string name="bottom_work_tab_user_education_body">Each work app has an orange badge, which means it\'s kept secure by your organization. Work apps can be moved to your Home Screen for easier access.</string>
|
||||
<!-- Label in work tab to tell users that work profile is managed by their organisation. -->
|
||||
<string name="managed_by_your_organisation">Managed by your organisation</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -381,10 +381,6 @@ public class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter.
|
||||
case VIEW_TYPE_WORK_TAB_FOOTER:
|
||||
Switch workModeToggle = holder.itemView.findViewById(R.id.work_mode_toggle);
|
||||
workModeToggle.setChecked(!isAnyProfileQuietModeEnabled());
|
||||
|
||||
TextView textView = holder.itemView.findViewById(R.id.managed_by_label);
|
||||
// TODO: Configure the textview properly.
|
||||
textView.setText("Managed by your company");
|
||||
break;
|
||||
}
|
||||
if (mBindViewCallback != null) {
|
||||
|
||||
@@ -168,6 +168,8 @@ public class AllAppsRecyclerView extends BaseRecyclerView implements LogContaine
|
||||
AllAppsGridAdapter.VIEW_TYPE_SEARCH_MARKET);
|
||||
putSameHeightFor(adapter, widthMeasureSpec, heightMeasureSpec,
|
||||
AllAppsGridAdapter.VIEW_TYPE_EMPTY_SEARCH);
|
||||
putSameHeightFor(adapter, widthMeasureSpec, heightMeasureSpec,
|
||||
AllAppsGridAdapter.VIEW_TYPE_WORK_TAB_FOOTER);
|
||||
if (FeatureFlags.DISCOVERY_ENABLED) {
|
||||
putSameHeightFor(adapter, widthMeasureSpec, heightMeasureSpec,
|
||||
AllAppsGridAdapter.VIEW_TYPE_APPS_LOADING_DIVIDER);
|
||||
|
||||
@@ -621,7 +621,6 @@ public class AlphabeticalAppsList {
|
||||
|
||||
// Add the work profile footer if required.
|
||||
if (mIsWork) {
|
||||
mAdapterItems.add(AdapterItem.asAllAppsDivider(position++));
|
||||
mAdapterItems.add(AdapterItem.asWorkTabFooter(position++));
|
||||
}
|
||||
}
|
||||
|
||||
59
src/com/android/launcher3/views/WorkFooterContainer.java
Normal file
59
src/com/android/launcher3/views/WorkFooterContainer.java
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* 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 footer in all-apps.
|
||||
*/
|
||||
public class WorkFooterContainer extends RelativeLayout {
|
||||
|
||||
public WorkFooterContainer(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public WorkFooterContainer(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public WorkFooterContainer(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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user