am 8a73c51e: New position indicators and icons for Launcher2.

Merge commit '8a73c51ee87b6d9b12daba188034889caf7a905b' into eclair-mr2

* commit '8a73c51ee87b6d9b12daba188034889caf7a905b':
  New position indicators and icons for Launcher2.
This commit is contained in:
Romain Guy
2009-11-09 19:22:35 -08:00
committed by Android Git Automerger
47 changed files with 281 additions and 37 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

+1 -1
View File
@@ -16,7 +16,7 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/all_apps_button_pressed" />
<item android:state_focused="true" android:state_window_focused="true" android:drawable="@drawable/all_apps_button_pressed" />
<item android:state_focused="true" android:state_window_focused="true" android:drawable="@drawable/all_apps_button_focused" />
<item android:state_focused="true" android:state_window_focused="false" android:drawable="@drawable/all_apps_button_normal" />
<item android:drawable="@drawable/all_apps_button_normal" />
</selector>
+23
View File
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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.
-->
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="0" android:drawable="@android:color/transparent" />
<item android:maxLevel="1" android:drawable="@drawable/home_arrows_left_1" />
<item android:maxLevel="2" android:drawable="@drawable/home_arrows_left_2" />
<item android:maxLevel="3" android:drawable="@drawable/home_arrows_left_3" />
<item android:maxLevel="4" android:drawable="@drawable/home_arrows_left_4" />
</level-list>
+22
View File
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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:state_pressed="true" android:drawable="@drawable/ic_home_arrows_1_press" />
<item android:state_focused="true" android:state_window_focused="true" android:drawable="@drawable/ic_home_arrows_1_focus" />
<item android:state_focused="true" android:state_window_focused="false" android:drawable="@drawable/ic_home_arrows_1_normal" />
<item android:drawable="@drawable/ic_home_arrows_1_normal" />
</selector>
+22
View File
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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:state_pressed="true" android:drawable="@drawable/ic_home_arrows_2_press" />
<item android:state_focused="true" android:state_window_focused="true" android:drawable="@drawable/ic_home_arrows_2_focus" />
<item android:state_focused="true" android:state_window_focused="false" android:drawable="@drawable/ic_home_arrows_2_normal" />
<item android:drawable="@drawable/ic_home_arrows_2_normal" />
</selector>
+22
View File
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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:state_pressed="true" android:drawable="@drawable/ic_home_arrows_3_press" />
<item android:state_focused="true" android:state_window_focused="true" android:drawable="@drawable/ic_home_arrows_3_focus" />
<item android:state_focused="true" android:state_window_focused="false" android:drawable="@drawable/ic_home_arrows_3_normal" />
<item android:drawable="@drawable/ic_home_arrows_3_normal" />
</selector>
+22
View File
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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:state_pressed="true" android:drawable="@drawable/ic_home_arrows_4_press" />
<item android:state_focused="true" android:state_window_focused="true" android:drawable="@drawable/ic_home_arrows_4_focus" />
<item android:state_focused="true" android:state_window_focused="false" android:drawable="@drawable/ic_home_arrows_4_normal" />
<item android:drawable="@drawable/ic_home_arrows_4_normal" />
</selector>
+23
View File
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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.
-->
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="0" android:drawable="@drawable/home_arrows_right_4" />
<item android:maxLevel="1" android:drawable="@drawable/home_arrows_right_3" />
<item android:maxLevel="2" android:drawable="@drawable/home_arrows_right_2" />
<item android:maxLevel="3" android:drawable="@drawable/home_arrows_right_1" />
<item android:maxLevel="4" android:drawable="@android:color/transparent" />
</level-list>
+22
View File
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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:state_pressed="true" android:drawable="@drawable/ic_home_arrows_1_press_right" />
<item android:state_focused="true" android:state_window_focused="true" android:drawable="@drawable/ic_home_arrows_1_focus_right" />
<item android:state_focused="true" android:state_window_focused="false" android:drawable="@drawable/ic_home_arrows_1_normal_right" />
<item android:drawable="@drawable/ic_home_arrows_1_normal_right" />
</selector>
+22
View File
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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:state_pressed="true" android:drawable="@drawable/ic_home_arrows_2_press_right" />
<item android:state_focused="true" android:state_window_focused="true" android:drawable="@drawable/ic_home_arrows_2_focus_right" />
<item android:state_focused="true" android:state_window_focused="false" android:drawable="@drawable/ic_home_arrows_2_normal_right" />
<item android:drawable="@drawable/ic_home_arrows_2_normal_right" />
</selector>
+22
View File
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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:state_pressed="true" android:drawable="@drawable/ic_home_arrows_3_press_right" />
<item android:state_focused="true" android:state_window_focused="true" android:drawable="@drawable/ic_home_arrows_3_focus_right" />
<item android:state_focused="true" android:state_window_focused="false" android:drawable="@drawable/ic_home_arrows_3_normal_right" />
<item android:drawable="@drawable/ic_home_arrows_3_normal_right" />
</selector>
+22
View File
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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:state_pressed="true" android:drawable="@drawable/ic_home_arrows_4_press_right" />
<item android:state_focused="true" android:state_window_focused="true" android:drawable="@drawable/ic_home_arrows_4_focus_right" />
<item android:state_focused="true" android:state_window_focused="false" android:drawable="@drawable/ic_home_arrows_4_normal_right" />
<item android:drawable="@drawable/ic_home_arrows_4_normal_right" />
</selector>
+31 -5
View File
@@ -40,8 +40,6 @@
android:id="@+id/workspace"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="horizontal"
android:fadeScrollbars="true"
launcher:defaultScreen="2">
<include android:id="@+id/cell1" layout="@layout/workspace_screen" />
@@ -52,9 +50,37 @@
</com.android.launcher2.Workspace>
<ImageView
android:id="@+id/previous_screen"
android:layout_width="53dip"
android:layout_height="@dimen/button_bar_height"
android:layout_gravity="bottom|left"
android:layout_marginLeft="6dip"
android:src="@drawable/home_arrows_left"
android:onClick="previousScreen"
android:focusable="true"
android:clickable="true" />
<ImageView
android:id="@+id/next_screen"
android:layout_width="53dip"
android:layout_height="@dimen/button_bar_height"
android:layout_gravity="bottom|right"
android:layout_marginRight="6dip"
android:src="@drawable/home_arrows_right"
android:onClick="nextScreen"
android:focusable="true"
android:clickable="true" />
<com.android.launcher2.HandleView
android:id="@+id/all_apps_button"
android:layout_width="fill_parent"
android:layout_width="wrap_content"
android:layout_height="@dimen/button_bar_height"
android:layout_gravity="bottom|center_horizontal"
@@ -68,8 +94,8 @@
<com.android.launcher2.DeleteZone
android:id="@+id/delete_zone"
android:layout_width="fill_parent"
android:layout_height="49dip"
android:layout_width="wrap_content"
android:layout_height="@dimen/button_bar_height"
android:layout_gravity="bottom|center_horizontal"
android:scaleType="center"
-16
View File
@@ -17,31 +17,15 @@
package com.android.launcher2;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Paint;
import android.graphics.PorterDuffColorFilter;
import android.graphics.PorterDuff;
import android.os.Vibrator;
import android.os.SystemClock;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.KeyEvent;
import android.view.inputmethod.InputMethodManager;
import android.widget.FrameLayout;
/**
* A ViewGroup that coordinated dragging across its dscendants
*/
public class DragLayer extends FrameLayout {
private static final String TAG = "Launcher.DragLayer";
DragController mDragController;
/**
+15 -5
View File
@@ -65,11 +65,11 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ImageView;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProviderInfo;
import java.util.ArrayList;
import java.util.Map.Entry;
import java.util.HashMap;
import java.io.DataOutputStream;
import java.io.FileNotFoundException;
@@ -550,10 +550,10 @@ public final class Launcher extends Activity
mHandleView = (HandleView) findViewById(R.id.all_apps_button);
mHandleView.setLauncher(this);
mHandleView.setOnClickListener(this);
/* TODO
TransitionDrawable handleIcon = (TransitionDrawable) mHandleView.getDrawable();
handleIocon.setCrossFadeEnabled(true);
*/
Drawable previous = ((ImageView) dragLayer.findViewById(R.id.previous_screen)).getDrawable();
Drawable next = ((ImageView) dragLayer.findViewById(R.id.next_screen)).getDrawable();
mWorkspace.setIndicators(previous, next);
workspace.setOnLongClickListener(this);
workspace.setDragController(dragController);
@@ -572,6 +572,16 @@ public final class Launcher extends Activity
dragController.addDropTarget(deleteZone);
}
@SuppressWarnings({"UnusedDeclaration"})
public void previousScreen(View v) {
mWorkspace.scrollLeft();
}
@SuppressWarnings({"UnusedDeclaration"})
public void nextScreen(View v) {
mWorkspace.scrollRight();
}
/**
* Creates a view representing a shortcut.
*
+12 -10
View File
@@ -108,6 +108,9 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
int mDrawerContentHeight;
int mDrawerContentWidth;
private Drawable mPreviousIndicator;
private Drawable mNextIndicator;
/**
* Used to inflate the Workspace from XML.
*
@@ -462,6 +465,8 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
postInvalidate();
} else if (mNextScreen != INVALID_SCREEN) {
mCurrentScreen = Math.max(0, Math.min(mNextScreen, getChildCount() - 1));
mPreviousIndicator.setLevel(mCurrentScreen);
mNextIndicator.setLevel(mCurrentScreen);
Launcher.setScreen(mCurrentScreen);
mNextScreen = INVALID_SCREEN;
clearChildrenCache();
@@ -543,14 +548,6 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
if (restore) {
canvas.restoreToCount(restoreCount);
}
onDrawScrollBars(canvas);
}
@Override
protected int computeHorizontalScrollRange() {
final int count = getChildCount();
return count == 0 ? getWidth() : (getChildAt(count - 1)).getRight();
}
private float mScale = 1.0f;
@@ -794,7 +791,6 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
void enableChildrenCache(int fromScreen, int toScreen) {
if (fromScreen > toScreen) {
int temp = fromScreen;
fromScreen = toScreen;
toScreen = fromScreen;
}
@@ -805,7 +801,6 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
toScreen = Math.min(toScreen, count - 1);
for (int i = fromScreen; i <= toScreen; i++) {
// Log.d("TAG", "enablingChildrenCache: " + i);
final CellLayout layout = (CellLayout) getChildAt(i);
layout.setChildrenDrawnWithCacheEnabled(true);
layout.setChildrenDrawingCacheEnabled(true);
@@ -1392,6 +1387,13 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
getChildAt(mDefaultScreen).requestFocus();
}
void setIndicators(Drawable previous, Drawable next) {
mPreviousIndicator = previous;
mNextIndicator = next;
previous.setLevel(mCurrentScreen);
next.setLevel(mCurrentScreen);
}
public static class SavedState extends BaseSavedState {
int currentScreen = -1;