mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-27 23:36:47 +00:00
Merge "Tab indicator of work tab should be in orange color" into ub-launcher3-master
This commit is contained in:
19
res/color/all_apps_work_tab_text.xml
Normal file
19
res/color/all_apps_work_tab_text.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- 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.
|
||||
-->
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/work_profile_color" android:state_selected="true"/>
|
||||
<item android:color="?android:attr/textColorTertiary"/>
|
||||
</selector>
|
||||
@@ -52,31 +52,37 @@
|
||||
android:layout_marginRight="@dimen/all_apps_tabs_side_padding"
|
||||
android:layout_alignBottom="@+id/tabs" />
|
||||
|
||||
<com.android.launcher3.views.SlidingTabStrip
|
||||
<com.android.launcher3.allapps.PersonalWorkSlidingTabStrip
|
||||
android:id="@+id/tabs"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/all_apps_header_tab_height"
|
||||
android:layout_marginLeft="@dimen/all_apps_tabs_side_padding"
|
||||
android:layout_marginRight="@dimen/all_apps_tabs_side_padding"
|
||||
android:layout_below="@id/header_content"
|
||||
android:orientation="horizontal" >
|
||||
android:orientation="horizontal">
|
||||
<Button
|
||||
android:id="@+id/tab_personal"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:text="@string/all_apps_personal_tab"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="@color/all_apps_tab_text"
|
||||
android:background="?android:attr/selectableItemBackground"/>
|
||||
android:textSize="14sp"/>
|
||||
<Button
|
||||
android:id="@+id/tab_work"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:text="@string/all_apps_work_tab"
|
||||
android:textColor="@color/all_apps_tab_text"
|
||||
android:background="?android:attr/selectableItemBackground"/>
|
||||
</com.android.launcher3.views.SlidingTabStrip>
|
||||
android:textAllCaps="true"
|
||||
android:textColor="@color/all_apps_work_tab_text"
|
||||
android:textSize="14sp"/>
|
||||
</com.android.launcher3.allapps.PersonalWorkSlidingTabStrip>
|
||||
</com.android.launcher3.allapps.FloatingHeaderView>
|
||||
|
||||
<!-- Note: we are reusing/repurposing a system attribute for search layout, because of a
|
||||
|
||||
@@ -61,7 +61,6 @@ import com.android.launcher3.util.ItemInfoMatcher;
|
||||
import com.android.launcher3.util.PackageUserKey;
|
||||
import com.android.launcher3.util.TransformingTouchDelegate;
|
||||
import com.android.launcher3.views.BottomUserEducationView;
|
||||
import com.android.launcher3.views.SlidingTabStrip;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -483,7 +482,7 @@ public class AllAppsContainerView extends RelativeLayout implements DragSource,
|
||||
if (mTabsPagerAdapter != null) {
|
||||
return;
|
||||
}
|
||||
final SlidingTabStrip tabs = findViewById(R.id.tabs);
|
||||
final PersonalWorkSlidingTabStrip tabs = findViewById(R.id.tabs);
|
||||
mViewPager.setAdapter(mTabsPagerAdapter = new TabsPagerAdapter());
|
||||
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.android.launcher3.views;
|
||||
package com.android.launcher3.allapps;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
@@ -26,25 +26,39 @@ import android.widget.Button;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.util.Themes;
|
||||
|
||||
public class SlidingTabStrip extends LinearLayout {
|
||||
/**
|
||||
* Supports two indicator colors, dedicated for personal and work tabs.
|
||||
*/
|
||||
public class PersonalWorkSlidingTabStrip extends LinearLayout {
|
||||
private final Paint mPersonalTabIndicatorPaint;
|
||||
private final Paint mWorkTabIndicatorPaint;
|
||||
|
||||
private final Paint mSelectedIndicatorPaint;
|
||||
private int mSelectedIndicatorHeight;
|
||||
private int mIndicatorLeft = -1;
|
||||
private int mIndicatorRight = -1;
|
||||
private int mSelectedPosition = 0;
|
||||
private float mSelectionOffset;
|
||||
private boolean mIsRtl;
|
||||
|
||||
public SlidingTabStrip(@NonNull Context context, @Nullable AttributeSet attrs) {
|
||||
public PersonalWorkSlidingTabStrip(@NonNull Context context, @Nullable AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
setOrientation(HORIZONTAL);
|
||||
setWillNotDraw(false);
|
||||
mSelectedIndicatorPaint = new Paint();
|
||||
mSelectedIndicatorPaint.setColor(Themes.getAttrColor(context, android.R.attr.colorAccent));
|
||||
mSelectedIndicatorHeight = getResources()
|
||||
.getDimensionPixelSize(R.dimen.all_apps_tabs_indicator_height);
|
||||
|
||||
mSelectedIndicatorHeight =
|
||||
getResources().getDimensionPixelSize(R.dimen.all_apps_tabs_indicator_height);
|
||||
|
||||
mPersonalTabIndicatorPaint = new Paint();
|
||||
mPersonalTabIndicatorPaint.setColor(
|
||||
Themes.getAttrColor(context, android.R.attr.colorAccent));
|
||||
|
||||
mWorkTabIndicatorPaint = new Paint();
|
||||
mWorkTabIndicatorPaint.setColor(getResources().getColor(R.color.work_profile_color));
|
||||
|
||||
mIsRtl = Utilities.isRtl(getResources());
|
||||
}
|
||||
|
||||
public void updateIndicatorPosition(int position, float positionOffset) {
|
||||
@@ -54,7 +68,7 @@ public class SlidingTabStrip extends LinearLayout {
|
||||
}
|
||||
|
||||
public void updateTabTextColor(int pos) {
|
||||
for (int i=0; i < getChildCount(); i++) {
|
||||
for (int i = 0; i < getChildCount(); i++) {
|
||||
Button tab = (Button) getChildAt(i);
|
||||
tab.setSelected(i == pos);
|
||||
}
|
||||
@@ -101,7 +115,20 @@ public class SlidingTabStrip extends LinearLayout {
|
||||
@Override
|
||||
protected void onDraw(Canvas canvas) {
|
||||
super.onDraw(canvas);
|
||||
canvas.drawRect(mIndicatorLeft, getHeight() - mSelectedIndicatorHeight,
|
||||
mIndicatorRight, getHeight(), mSelectedIndicatorPaint);
|
||||
|
||||
final float middleX = getWidth() / 2.0f;
|
||||
if (mIndicatorLeft <= middleX) {
|
||||
canvas.drawRect(mIndicatorLeft, getHeight() - mSelectedIndicatorHeight,
|
||||
middleX, getHeight(), getPaint(true /* firstHalf */));
|
||||
}
|
||||
if (mIndicatorRight > middleX) {
|
||||
canvas.drawRect(middleX, getHeight() - mSelectedIndicatorHeight,
|
||||
mIndicatorRight, getHeight(), getPaint(false /* firstHalf */));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Paint getPaint(boolean firstHalf) {
|
||||
boolean isPersonal = mIsRtl ^ firstHalf;
|
||||
return isPersonal ? mPersonalTabIndicatorPaint : mWorkTabIndicatorPaint;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user