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:
Tony Mak
2017-12-15 17:11:17 +00:00
committed by Android (Google) Code Review
6 changed files with 123 additions and 57 deletions

View File

@@ -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>

View File

@@ -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>

View File

@@ -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) {

View File

@@ -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);

View File

@@ -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++));
}
}

View 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()));
}
}
}