am e3b36d51: Merge "Updating Clings UI" into ub-now-porkchop
* commit 'e3b36d51049b3361192217eaaa275e75eaba1dd1': Updating Clings UI
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 987 B |
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.9 KiB |
@@ -1,22 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3"
|
||||
android:id="@+id/longpress_cling"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" >
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical" >
|
||||
|
||||
<com.android.launcher3.ClearCircleLayout
|
||||
android:id="@+id/cling_longpress_hole"
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
launcher:holeLocation="page_indicator" />
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/cling_content"
|
||||
android:layout_width="360dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:background="#FF009688"
|
||||
android:elevation="6dp" />
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:background="@drawable/cling_bg" />
|
||||
|
||||
</FrameLayout>
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="2" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -58,7 +58,7 @@
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-condensed"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:text="@string/migration_cling_title"
|
||||
android:textColor="#E1000000"
|
||||
android:textSize="20sp" />
|
||||
@@ -68,7 +68,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="24dp"
|
||||
android:text="@string/migration_cling_description"
|
||||
android:textColor="#E1000000"
|
||||
android:textColor="#99000000"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<LinearLayout
|
||||
@@ -76,23 +76,23 @@
|
||||
android:layout_height="wrap_content" >
|
||||
|
||||
<Button
|
||||
android:id="@+id/cling_dismiss_migration_copy_apps"
|
||||
style="?android:attr/buttonBarButtonStyle"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:fontFamily="sans-serif-condensed"
|
||||
android:id="@+id/cling_dismiss_migration_copy_apps"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:text="@string/migration_cling_copy_apps"
|
||||
android:textColor="#FFFFFFFF"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/cling_dismiss_migration_use_default"
|
||||
style="?android:attr/buttonBarButtonStyle"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:fontFamily="sans-serif-condensed"
|
||||
android:id="@+id/cling_dismiss_migration_use_default"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:text="@string/migration_cling_use_default"
|
||||
android:textColor="#deFFFFFF"
|
||||
android:textSize="14sp" />
|
||||
|
||||
@@ -5,19 +5,12 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" >
|
||||
|
||||
<com.android.launcher3.ClearCircleLayout
|
||||
android:id="@+id/cling_longpress_hole"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
launcher:holeLocation="center_screen" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/cling_content"
|
||||
android:layout_width="360dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:background="#FF009688"
|
||||
android:elevation="6dp"
|
||||
android:tag="slide_from_bottom" />
|
||||
android:layout_gravity="top"
|
||||
android:background="@drawable/cling_bg"
|
||||
android:tag="crop_bg_top_and_sides" />
|
||||
|
||||
</FrameLayout>
|
||||
@@ -60,7 +60,7 @@
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-condensed"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:text="@string/migration_cling_title"
|
||||
android:textColor="#E1000000"
|
||||
android:textSize="20sp" />
|
||||
@@ -70,7 +70,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="24dp"
|
||||
android:text="@string/migration_cling_description"
|
||||
android:textColor="#E1000000"
|
||||
android:textColor="#99000000"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<LinearLayout
|
||||
@@ -83,7 +83,7 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:fontFamily="sans-serif-condensed"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:text="@string/migration_cling_copy_apps"
|
||||
android:textColor="#FFFFFFFF"
|
||||
android:textSize="14sp" />
|
||||
@@ -94,7 +94,7 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:fontFamily="sans-serif-condensed"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:text="@string/migration_cling_use_default"
|
||||
android:textColor="#deFFFFFF"
|
||||
android:textSize="14sp" />
|
||||
|
||||
@@ -1,23 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3"
|
||||
android:id="@+id/longpress_cling"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" >
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical" >
|
||||
|
||||
<com.android.launcher3.ClearCircleLayout
|
||||
android:id="@+id/cling_longpress_hole"
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
launcher:holeLocation="center_screen" />
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/cling_content"
|
||||
android:layout_width="360dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal|top"
|
||||
android:background="#FF009688"
|
||||
android:elevation="6dp"
|
||||
android:tag="slide_from_top" />
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:background="@drawable/cling_bg" />
|
||||
|
||||
</FrameLayout>
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="3" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3"
|
||||
android:id="@+id/longpress_cling"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" >
|
||||
|
||||
<com.android.launcher3.ClearCircleLayout
|
||||
android:id="@+id/cling_longpress_hole"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
launcher:holeLocation="page_indicator" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/cling_content"
|
||||
android:layout_width="360dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:background="#FF009688"
|
||||
android:elevation="6dp" />
|
||||
|
||||
</FrameLayout>
|
||||
@@ -3,11 +3,14 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:padding="48dp" >
|
||||
android:paddingBottom="24dp"
|
||||
android:paddingTop="36dp" >
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="36dp"
|
||||
android:paddingRight="36dp"
|
||||
android:text="@string/workspace_cling_longpress_title"
|
||||
android:textColor="#E1000000"
|
||||
android:textSize="24sp" />
|
||||
@@ -16,8 +19,10 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:paddingLeft="36dp"
|
||||
android:paddingRight="36dp"
|
||||
android:text="@string/workspace_cling_longpress_description"
|
||||
android:textColor="#E1000000"
|
||||
android:textColor="#99000000"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<Button
|
||||
@@ -26,8 +31,9 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:layout_marginTop="24dp"
|
||||
android:fontFamily="sans-serif-condensed"
|
||||
android:layout_marginRight="12dp"
|
||||
android:layout_marginTop="27dp"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:paddingLeft="24dp"
|
||||
android:paddingRight="24dp"
|
||||
android:text="@string/workspace_cling_longpress_dismiss"
|
||||
|
||||
@@ -3,12 +3,15 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:padding="48dp" >
|
||||
android:paddingBottom="24dp"
|
||||
android:paddingTop="36dp" >
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="16dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:paddingLeft="36dp"
|
||||
android:paddingRight="36dp"
|
||||
android:text="@string/first_run_cling_title"
|
||||
android:textColor="#E1000000"
|
||||
android:textSize="34sp" />
|
||||
@@ -16,7 +19,10 @@
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-condensed"
|
||||
android:layout_marginBottom="5.3dp"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:paddingLeft="36dp"
|
||||
android:paddingRight="36dp"
|
||||
android:text="@string/workspace_cling_longpress_title"
|
||||
android:textColor="#E1000000"
|
||||
android:textSize="20sp" />
|
||||
@@ -24,8 +30,10 @@
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="36dp"
|
||||
android:paddingRight="36dp"
|
||||
android:text="@string/workspace_cling_longpress_description"
|
||||
android:textColor="#E1000000"
|
||||
android:textColor="#99000000"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<Button
|
||||
@@ -34,8 +42,9 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:layout_marginTop="24dp"
|
||||
android:fontFamily="sans-serif-condensed"
|
||||
android:layout_marginRight="12dp"
|
||||
android:layout_marginTop="27dp"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:paddingLeft="24dp"
|
||||
android:paddingRight="24dp"
|
||||
android:text="@string/workspace_cling_longpress_dismiss"
|
||||
|
||||
@@ -25,13 +25,6 @@
|
||||
<attr name="sourceViewId" format="integer" />
|
||||
</declare-styleable>
|
||||
|
||||
<!-- ClearCircleLayout specific attributes. These attributes are used to customize
|
||||
the cling in XML files. -->
|
||||
<declare-styleable name="ClearCircleLayout">
|
||||
<!-- Used to identify how to draw the cling bg -->
|
||||
<attr name="holeLocation" format="string" />
|
||||
</declare-styleable>
|
||||
|
||||
<!-- Page Indicator specific attributes. -->
|
||||
<declare-styleable name="PageIndicator">
|
||||
<attr name="windowSize" format="integer" />
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
* Copyright (C) 2014 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;
|
||||
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.ColorFilter;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
||||
public class BorderCropDrawable extends Drawable {
|
||||
|
||||
private final Drawable mChild;
|
||||
private final Rect mBoundsShift;
|
||||
private final Rect mPadding;
|
||||
|
||||
BorderCropDrawable(Drawable child, boolean cropLeft,
|
||||
boolean cropTop, boolean cropRight, boolean cropBottom) {
|
||||
mChild = child;
|
||||
|
||||
mBoundsShift = new Rect();
|
||||
mPadding = new Rect();
|
||||
mChild.getPadding(mPadding);
|
||||
|
||||
if (cropLeft) {
|
||||
mBoundsShift.left = -mPadding.left;
|
||||
mPadding.left = 0;
|
||||
}
|
||||
if (cropTop) {
|
||||
mBoundsShift.top = -mPadding.top;
|
||||
mPadding.top = 0;
|
||||
}
|
||||
if (cropRight) {
|
||||
mBoundsShift.right = mPadding.right;
|
||||
mPadding.right = 0;
|
||||
}
|
||||
if (cropBottom) {
|
||||
mBoundsShift.bottom = mPadding.bottom;
|
||||
mPadding.bottom = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBoundsChange(Rect bounds) {
|
||||
mChild.setBounds(
|
||||
bounds.left + mBoundsShift.left,
|
||||
bounds.top + mBoundsShift.top,
|
||||
bounds.right + mBoundsShift.right,
|
||||
bounds.bottom + mBoundsShift.bottom);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getPadding(Rect padding) {
|
||||
padding.set(mPadding);
|
||||
return (padding.left | padding.top | padding.right | padding.bottom) != 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw(Canvas canvas) {
|
||||
mChild.draw(canvas);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOpacity() {
|
||||
return mChild.getOpacity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAlpha(int alpha) {
|
||||
mChild.setAlpha(alpha);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setColorFilter(ColorFilter cf) {
|
||||
mChild.setColorFilter(cf);
|
||||
}
|
||||
}
|
||||
@@ -1,118 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 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;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Point;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.PorterDuffXfermode;
|
||||
import android.graphics.Rect;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.View;
|
||||
|
||||
public class ClearCircleLayout extends View {
|
||||
|
||||
private static final String HOLE_LOCATION_PAGE_INDICATOR = "page_indicator";
|
||||
private static final String HOLE_LOCATION_CENTER_SCREEN = "center_screen";
|
||||
|
||||
private static final int BACKGROUND_COLOR = 0x80000000;
|
||||
private static float MIGRATION_WORKSPACE_INNER_CIRCLE_RADIUS_DPS = 42;
|
||||
private static float MIGRATION_WORKSPACE_OUTER_CIRCLE_RADIUS_DPS = 46;
|
||||
|
||||
private final String mHoleLocation;
|
||||
private final Paint mErasePaint;
|
||||
private final Paint mBorderPaint;
|
||||
|
||||
private Launcher mLauncher;
|
||||
private Point mHoleCenter;
|
||||
private DisplayMetrics mMetrics;
|
||||
|
||||
public ClearCircleLayout(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
|
||||
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ClearCircleLayout);
|
||||
mHoleLocation = a.getString(R.styleable.ClearCircleLayout_holeLocation);
|
||||
a.recycle();
|
||||
|
||||
mErasePaint = new Paint();
|
||||
mErasePaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.MULTIPLY));
|
||||
mErasePaint.setColor(0xFFFFFF);
|
||||
mErasePaint.setAlpha(0);
|
||||
mErasePaint.setAntiAlias(true);
|
||||
|
||||
mBorderPaint = new Paint();
|
||||
mBorderPaint.setColor(0xFFFFFFFF);
|
||||
mBorderPaint.setAntiAlias(true);
|
||||
}
|
||||
|
||||
void initHole(Launcher launcher) {
|
||||
mLauncher = launcher;
|
||||
mMetrics = new DisplayMetrics();
|
||||
launcher.getWindowManager().getDefaultDisplay().getMetrics(mMetrics);
|
||||
|
||||
if (mHoleLocation.endsWith(HOLE_LOCATION_PAGE_INDICATOR)) {
|
||||
LauncherAppState app = LauncherAppState.getInstance();
|
||||
DeviceProfile grid = app.getDynamicGrid().getDeviceProfile();
|
||||
|
||||
Rect indicator = grid.getWorkspacePageIndicatorBounds(new Rect());
|
||||
mHoleCenter = new Point(indicator.centerX(), indicator.centerY());
|
||||
} else if (mHoleLocation.endsWith(HOLE_LOCATION_CENTER_SCREEN)) {
|
||||
mHoleCenter = new Point(mMetrics.widthPixels / 2, mMetrics.heightPixels / 2);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dispatchDraw(Canvas canvas) {
|
||||
if (mHoleCenter == null) {
|
||||
canvas.drawColor(BACKGROUND_COLOR);
|
||||
} else {
|
||||
drawHole(canvas);
|
||||
}
|
||||
|
||||
super.dispatchDraw(canvas);
|
||||
}
|
||||
|
||||
private void drawHole(Canvas canvas) {
|
||||
// Initialize the draw buffer (to allow punching through)
|
||||
Bitmap eraseBg = Bitmap.createBitmap(getMeasuredWidth(), getMeasuredHeight(),
|
||||
Bitmap.Config.ARGB_8888);
|
||||
Canvas eraseCanvas = new Canvas(eraseBg);
|
||||
eraseCanvas.drawColor(BACKGROUND_COLOR);
|
||||
|
||||
Rect insets = mLauncher.getDragLayer().getInsets();
|
||||
float x = mHoleCenter.x - insets.left;
|
||||
float y = mHoleCenter.y - insets.top;
|
||||
// Draw the outer circle
|
||||
eraseCanvas.drawCircle(x, y,
|
||||
DynamicGrid.pxFromDp(MIGRATION_WORKSPACE_OUTER_CIRCLE_RADIUS_DPS, mMetrics),
|
||||
mBorderPaint);
|
||||
|
||||
// Draw the inner circle
|
||||
eraseCanvas.drawCircle(x, y,
|
||||
DynamicGrid.pxFromDp(MIGRATION_WORKSPACE_INNER_CIRCLE_RADIUS_DPS, mMetrics),
|
||||
mErasePaint);
|
||||
|
||||
canvas.drawBitmap(eraseBg, 0, 0, null);
|
||||
eraseCanvas.setBitmap(null);
|
||||
eraseBg.recycle();
|
||||
}
|
||||
}
|
||||
@@ -506,7 +506,7 @@ public class Launcher extends Activity
|
||||
if (mModel.canMigrateFromOldLauncherDb(this)) {
|
||||
launcherClings.showMigrationCling();
|
||||
} else {
|
||||
launcherClings.showLongPressCling(true);
|
||||
launcherClings.showLongPressCling(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,13 +18,12 @@ package com.android.launcher3;
|
||||
|
||||
import android.accounts.Account;
|
||||
import android.accounts.AccountManager;
|
||||
import android.animation.AnimatorSet;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.animation.PropertyValuesHolder;
|
||||
import android.animation.ValueAnimator;
|
||||
import android.app.ActivityManager;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
@@ -41,8 +40,7 @@ class LauncherClings implements OnClickListener {
|
||||
private static final String MIGRATION_CLING_DISMISSED_KEY = "cling_gel.migration.dismissed";
|
||||
private static final String WORKSPACE_CLING_DISMISSED_KEY = "cling_gel.workspace.dismissed";
|
||||
|
||||
private static final String ANIM_SLIDE_FROM_BOTTOM = "slide_from_bottom";
|
||||
private static final String ANIM_SLIDE_FROM_TOP = "slide_from_top";
|
||||
private static final String TAG_CROP_TOP_AND_SIDES = "crop_bg_top_and_sides";
|
||||
|
||||
private static final boolean DISABLE_CLINGS = false;
|
||||
|
||||
@@ -124,10 +122,7 @@ class LauncherClings implements OnClickListener {
|
||||
ViewGroup root = (ViewGroup) mLauncher.findViewById(R.id.launcher);
|
||||
View cling = mInflater.inflate(R.layout.longpress_cling, root, false);
|
||||
|
||||
final ClearCircleLayout hole = (ClearCircleLayout) cling.findViewById(R.id.cling_longpress_hole);
|
||||
hole.initHole(mLauncher);
|
||||
hole.setClickable(true);
|
||||
hole.setOnLongClickListener(new OnLongClickListener() {
|
||||
cling.setOnLongClickListener(new OnLongClickListener() {
|
||||
|
||||
@Override
|
||||
public boolean onLongClick(View v) {
|
||||
@@ -142,6 +137,12 @@ class LauncherClings implements OnClickListener {
|
||||
: R.layout.longpress_cling_content, content);
|
||||
content.findViewById(R.id.cling_dismiss_longpress_info).setOnClickListener(this);
|
||||
|
||||
if (TAG_CROP_TOP_AND_SIDES.equals(content.getTag())) {
|
||||
Drawable bg = new BorderCropDrawable(mLauncher.getResources().getDrawable(R.drawable.cling_bg),
|
||||
true, true, true, false);
|
||||
content.setBackground(bg);
|
||||
}
|
||||
|
||||
root.addView(cling);
|
||||
|
||||
if (showWelcome) {
|
||||
@@ -156,29 +157,20 @@ class LauncherClings implements OnClickListener {
|
||||
public void onGlobalLayout() {
|
||||
content.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||
|
||||
hole.setAlpha(0);
|
||||
ValueAnimator anim1 = LauncherAnimUtils.ofFloat(hole, "alpha", 1);
|
||||
|
||||
ObjectAnimator anim2;
|
||||
|
||||
if (ANIM_SLIDE_FROM_TOP.equals(content.getTag())) {
|
||||
ObjectAnimator anim;
|
||||
if (TAG_CROP_TOP_AND_SIDES.equals(content.getTag())) {
|
||||
content.setTranslationY(-content.getMeasuredHeight());
|
||||
anim2 = LauncherAnimUtils.ofFloat(content, "translationY", 0);
|
||||
} else if (ANIM_SLIDE_FROM_BOTTOM.equals(content.getTag())) {
|
||||
content.setTranslationY(content.getMeasuredHeight());
|
||||
anim2 = LauncherAnimUtils.ofFloat(content, "translationY", 0);
|
||||
anim = LauncherAnimUtils.ofFloat(content, "translationY", 0);
|
||||
} else {
|
||||
content.setScaleX(0);
|
||||
content.setScaleY(0);
|
||||
PropertyValuesHolder scaleX = PropertyValuesHolder.ofFloat("scaleX", 1);
|
||||
PropertyValuesHolder scaleY = PropertyValuesHolder.ofFloat("scaleY", 1);
|
||||
anim2 = LauncherAnimUtils.ofPropertyValuesHolder(content, scaleX, scaleY);
|
||||
anim = LauncherAnimUtils.ofPropertyValuesHolder(content, scaleX, scaleY);
|
||||
}
|
||||
|
||||
AnimatorSet anim = LauncherAnimUtils.createAnimatorSet();
|
||||
anim.setDuration(SHOW_CLING_DURATION);
|
||||
anim.setInterpolator(new LogDecelerateInterpolator(100, 0));
|
||||
anim.playTogether(anim1, anim2);
|
||||
anim.start();
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user