展讯A13将Launcher3页面切换线条改成圆点

diff --git a/packages/apps/Launcher3/res/layout/launcher.xml b/packages/apps/Launcher3/res/layout/launcher.xml
index 1f6309ea745..7fb2afd155c 100755
--- a/packages/apps/Launcher3/res/layout/launcher.xml
+++ b/packages/apps/Launcher3/res/layout/launcher.xml
@@ -51,16 +51,16 @@
 
         <!-- Keep these behind the workspace so that they are not visible when
          we go into AllApps -->
-        <com.sprd.ext.pageindicators.WorkspacePageIndicatorLine
+        <com.android.launcher3.pageindicators.PageIndicatorDots
             android:id="@+id/page_indicator"
             android:layout_width="match_parent"
             android:layout_height="@dimen/workspace_page_indicator_height"
             android:layout_gravity="bottom|center_horizontal"
             android:theme="@style/HomeScreenElementTheme" />
 
-        <include
+        <!-- <include
             android:id="@+id/page_indicator_customize"
-            layout="@layout/page_indicator_customize" />
+            layout="@layout/page_indicator_customize" /> -->
 
         <include
             android:id="@+id/drop_target_bar"
diff --git a/packages/apps/Launcher3/res_unisoc/layout/page_indicator_customize.xml b/packages/apps/Launcher3/res_unisoc/layout/page_indicator_customize.xml
index 6779f8361e8..510267418bd 100755
--- a/packages/apps/Launcher3/res_unisoc/layout/page_indicator_customize.xml
+++ b/packages/apps/Launcher3/res_unisoc/layout/page_indicator_customize.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<com.sprd.ext.pageindicators.WorkspacePageIndicatorDots
+<com.android.launcher3.pageindicators.PageIndicatorDots
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/page_indicator_customize"
     android:layout_width="match_parent"
diff --git a/packages/apps/Launcher3/src/com/android/launcher3/Workspace.java b/packages/apps/Launcher3/src/com/android/launcher3/Workspace.java
index cc0882c1222..701b963b30d 100755
--- a/packages/apps/Launcher3/src/com/android/launcher3/Workspace.java
+++ b/packages/apps/Launcher3/src/com/android/launcher3/Workspace.java
@@ -92,6 +92,7 @@ import com.android.launcher3.model.data.LauncherAppWidgetInfo;
 import com.android.launcher3.model.data.WorkspaceItemFactory;
 import com.android.launcher3.model.data.WorkspaceItemInfo;
 import com.android.launcher3.pageindicators.PageIndicator;
+import com.android.launcher3.pageindicators.PageIndicatorDots;
 import com.android.launcher3.statemanager.StateManager;
 import com.android.launcher3.statemanager.StateManager.StateHandler;
 import com.android.launcher3.states.StateAnimationConfig;
@@ -137,7 +138,7 @@ import android.util.Log;
  * interact with. A workspace is meant to be used with a fixed width only.
  * @param <T> Class that extends View and PageIndicator
  */
-public class Workspace<T extends View & PageIndicator> extends PagedView<T>
+public class Workspace<T extends View & PageIndicator> extends PagedView<PageIndicatorDots>
         implements DropTarget, DragSource, View.OnTouchListener,
         DragController.DragListener, Insettable, StateHandler<LauncherState>,
         WorkspaceLayoutManager, LauncherBindableItemsContainer {
@@ -371,7 +372,7 @@ public class Workspace<T extends View & PageIndicator> extends PagedView<T>
     @Override
     public void initParentViews(View parent) {
         if (MultiModeController.isSingleLayerMode(mLauncher)) {
-            mPageIndicator = parent.findViewById(R.id.page_indicator_customize);
+            mPageIndicator = parent.findViewById(R.id.page_indicator);
             mPageIndicator.setMarkersCount(getChildCount());
             return;
         }
diff --git a/packages/apps/Launcher3/src/com/android/launcher3/pageindicators/PageIndicatorDots.java b/packages/apps/Launcher3/src/com/android/launcher3/pageindicators/PageIndicatorDots.java
index 29eefe2a03a..752f54bd85a 100644
--- a/packages/apps/Launcher3/src/com/android/launcher3/pageindicators/PageIndicatorDots.java
+++ b/packages/apps/Launcher3/src/com/android/launcher3/pageindicators/PageIndicatorDots.java
@@ -38,12 +38,18 @@ import android.view.animation.OvershootInterpolator;
 import com.android.launcher3.R;
 import com.android.launcher3.Utilities;
 import com.android.launcher3.util.Themes;
+import com.android.launcher3.DeviceProfile;
+import android.widget.FrameLayout;
+import android.graphics.Rect;
+import android.view.Gravity;
+import com.android.launcher3.Launcher;
+import com.android.launcher3.Insettable;
 
 /**
  * {@link PageIndicator} which shows dots per page. The active page is shown with the current
  * accent color.
  */
-public class PageIndicatorDots extends View implements PageIndicator {
+public class PageIndicatorDots extends View implements Insettable, PageIndicator {
 
     private static final float SHIFT_PER_ANIMATION = 0.5f;
     private static final float SHIFT_THRESHOLD = 0.1f;
@@ -61,6 +67,8 @@ public class PageIndicatorDots extends View implements PageIndicator {
 
     private static final RectF sTempRect = new RectF();
 
+    private final Launcher mLauncher;
+
     private static final Property<PageIndicatorDots, Float> CURRENT_POSITION
             = new Property<PageIndicatorDots, Float>(float.class, "current_position") {
         @Override
@@ -116,6 +124,7 @@ public class PageIndicatorDots extends View implements PageIndicator {
         setOutlineProvider(new MyOutlineProver());
 
         mIsRtl = Utilities.isRtl(getResources());
+        mLauncher = Launcher.getLauncher(context);
     }
 
     @Override
@@ -125,6 +134,8 @@ public class PageIndicatorDots extends View implements PageIndicator {
                 currentScroll = totalScroll - currentScroll;
             }
             int scrollPerPage = totalScroll / (mNumPages - 1);
+            if(scrollPerPage == 0)
+                return;
             int pageToLeft = currentScroll / scrollPerPage;
             int pageToLeftScroll = pageToLeft * scrollPerPage;
             int pageToRightScroll = pageToLeftScroll + scrollPerPage;
@@ -140,6 +151,8 @@ public class PageIndicatorDots extends View implements PageIndicator {
                 // scroll is between left and right page
                 animateToPosition(pageToLeft + SHIFT_PER_ANIMATION);
             }
+        }else if(mNumPages == 1){
+            animateToPosition(0);
         }
     }
 
@@ -336,4 +349,36 @@ public class PageIndicatorDots extends View implements PageIndicator {
             }
         }
     }
+
+    @Override
+    public void setInsets(Rect insets) {
+        DeviceProfile grid = mLauncher.getDeviceProfile();
+        FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) getLayoutParams();
+
+        if (grid.isVerticalBarLayout()) {
+            Rect padding = grid.workspacePadding;
+            lp.leftMargin = padding.left + grid.workspaceCellPaddingXPx;
+            lp.rightMargin = padding.right + grid.workspaceCellPaddingXPx;
+            lp.bottomMargin = padding.bottom;
+        } else {
+            lp.leftMargin = lp.rightMargin = 0;
+            lp.gravity = Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM;
+            lp.bottomMargin = grid.hotseatBarSizePx + insets.bottom;
+        }
+        setLayoutParams(lp);
+    }
+
+    /**
+     * Pauses all currently running animations.
+     */
+    public void pauseAnimations() {
+        stopAllAnimations();
+    }
+
+    /**
+     * Force-ends all currently running or paused animations.
+     */
+    public void skipAnimationsToEnd() {
+        stopAllAnimations();
+    }
 }

修改圆点颜色样式大小:

diff --git a/packages/apps/Launcher3/res/values/dimens.xml b/packages/apps/Launcher3/res/values/dimens.xml
index 71b117d0793..6984fa8a5d3 100755
--- a/packages/apps/Launcher3/res/values/dimens.xml
+++ b/packages/apps/Launcher3/res/values/dimens.xml
@@ -32,8 +32,8 @@
     <dimen name="dynamic_grid_cell_padding_x">0dp</dimen>
 
     <!-- Hotseat -->
-    <dimen name="dynamic_grid_hotseat_top_padding">8dp</dimen>
-    <dimen name="dynamic_grid_hotseat_bottom_padding">2dp</dimen>
+    <dimen name="dynamic_grid_hotseat_top_padding">0dp</dimen>
+    <dimen name="dynamic_grid_hotseat_bottom_padding">20dp</dimen>
     <dimen name="dynamic_grid_hotseat_bottom_tall_padding">0dp</dimen>
     <dimen name="inline_qsb_bottom_margin">0dp</dimen>
     <dimen name="spring_loaded_hotseat_top_margin">76dp</dimen>
@@ -256,7 +256,7 @@
     <dimen name="keyboard_drag_stroke_width">4dp</dimen>
 
     <!-- Folders -->
-    <dimen name="page_indicator_dot_size">8dp</dimen>
+    <dimen name="page_indicator_dot_size">6dp</dimen>
 
     <dimen name="folder_cell_x_padding">9dp</dimen>
     <dimen name="folder_cell_y_padding">14dp</dimen>
diff --git a/packages/apps/Launcher3/src/com/android/launcher3/DeviceProfile.java b/packages/apps/Launcher3/src/com/android/launcher3/DeviceProfile.java
index 49b0cf6f7a7..2fe00213558 100755
--- a/packages/apps/Launcher3/src/com/android/launcher3/DeviceProfile.java
+++ b/packages/apps/Launcher3/src/com/android/launcher3/DeviceProfile.java
@@ -539,7 +539,7 @@ public class DeviceProfile {
 
     private void updateHotseatIconSize(int hotseatIconSizePx) {
         // Ensure there is enough space for folder icons, which have a slightly larger radius.
-        hotseatCellHeightPx = (int) Math.ceil(hotseatIconSizePx * ICON_OVERLAP_FACTOR);
+        hotseatCellHeightPx = (int) Math.ceil(hotseatIconSizePx * ICON_OVERLAP_FACTOR)+ 30;
         if (isVerticalBarLayout()) {
             hotseatBarSizePx = hotseatIconSizePx + hotseatBarSidePaddingStartPx
                     + hotseatBarSidePaddingEndPx;
diff --git a/packages/apps/Launcher3/src/com/android/launcher3/pageindicators/PageIndicatorDots.java b/packages/apps/Launcher3/src/com/android/launcher3/pageindicators/PageIndicatorDots.java
index 752f54bd85a..85af56a5f63 100644
--- a/packages/apps/Launcher3/src/com/android/launcher3/pageindicators/PageIndicatorDots.java
+++ b/packages/apps/Launcher3/src/com/android/launcher3/pageindicators/PageIndicatorDots.java
@@ -45,6 +45,12 @@ import android.view.Gravity;
 import com.android.launcher3.Launcher;
 import com.android.launcher3.Insettable;
 
+import android.app.WallpaperColors;
+import android.app.WallpaperManager;
+import static android.app.WallpaperColors.HINT_SUPPORTS_DARK_TEXT;
+import android.graphics.Color;
+
+
 /**
  * {@link PageIndicator} which shows dots per page. The active page is shown with the current
  * accent color.
@@ -69,6 +75,13 @@ public class PageIndicatorDots extends View implements Insettable, PageIndicator
 
     private final Launcher mLauncher;
 
+    private int mActiveAlpha = (int) (1f * 255);
+    private int mInActiveAlpha = (int) (0.50f * 255);
+    public static final int IN_WHITE_ALPHA = (int) (0.40f * 255);
+    public static final int IN_BLACK_ALPHA = (int) (0.35f * 255);
+    private final int mActiveColor;
+       final int colorHints;
+
     private static final Property<PageIndicatorDots, Float> CURRENT_POSITION
             = new Property<PageIndicatorDots, Float>(float.class, "current_position") {
         @Override
@@ -119,7 +132,16 @@ public class PageIndicatorDots extends View implements Insettable, PageIndicator
 
         mCirclePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
         mCirclePaint.setStyle(Style.FILL);
-        mCirclePaint.setColor(Themes.getAttrColor(context, R.attr.folderPaginationColor));
+       WallpaperColors colors = context.getSystemService(WallpaperManager.class)
+                .getWallpaperColors(WallpaperManager.FLAG_SYSTEM);
+        colorHints = colors == null ? 0 : colors.getColorHints();
+
+        boolean darkText = Utilities.ATLEAST_S
+                && (colorHints & HINT_SUPPORTS_DARK_TEXT) != 0;
+       android.util.Log.d("jiaz","darkText=="+darkText);
+        mActiveColor = darkText ? Color.BLACK : Color.WHITE;
+        mInActiveAlpha = darkText ? IN_BLACK_ALPHA : IN_WHITE_ALPHA;
+	mCirclePaint.setColor(mActiveColor);
         mDotRadius = getResources().getDimension(R.dimen.page_indicator_dot_size) / 2;
         setOutlineProvider(new MyOutlineProver());
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值