Fixing issue where landscape delete button is not centered. (Bug 6493651)

Change-Id: I782351da2daf511a79e5c9f1d3cef90bec2ca6d1
diff --git a/res/layout-land/drop_target_bar.xml b/res/layout-land/drop_target_bar.xml
new file mode 100644
index 0000000..55d9421
--- /dev/null
+++ b/res/layout-land/drop_target_bar.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+    <FrameLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        style="@style/DropTargetButtonContainer"
+        android:layout_weight="1">
+        <!-- Delete target -->
+        <com.android.launcher2.DeleteDropTarget
+            style="@style/DropTargetButton"
+            android:id="@+id/delete_target_text"
+            android:drawableTop="@drawable/info_target_selector" />
+    </FrameLayout>
+    <FrameLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        style="@style/DropTargetButtonContainer"
+        android:layout_weight="1">
+        <!-- Info target -->
+        <com.android.launcher2.InfoDropTarget
+            style="@style/DropTargetButton"
+            android:id="@+id/info_target_text"
+            android:drawableTop="@drawable/info_target_selector" />
+    </FrameLayout>
+</merge>
\ No newline at end of file
diff --git a/res/layout-port/drop_target_bar.xml b/res/layout-port/drop_target_bar.xml
new file mode 100644
index 0000000..5fcddc9
--- /dev/null
+++ b/res/layout-port/drop_target_bar.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+    <FrameLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        style="@style/DropTargetButtonContainer"
+        android:layout_weight="1">
+        <!-- Delete target -->
+        <com.android.launcher2.DeleteDropTarget
+            style="@style/DropTargetButton"
+            android:id="@+id/delete_target_text"
+            android:text="@string/delete_zone_label_workspace"
+            android:drawableLeft="@drawable/remove_target_selector" />
+    </FrameLayout>
+    <FrameLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        style="@style/DropTargetButtonContainer"
+        android:layout_weight="1">
+        <!-- Info target -->
+        <com.android.launcher2.InfoDropTarget
+            style="@style/DropTargetButton"
+            android:id="@+id/info_target_text"
+            android:text="@string/info_target_label"
+            android:drawableLeft="@drawable/info_target_selector" />
+    </FrameLayout>
+</merge>
\ No newline at end of file
diff --git a/res/layout/qsb_bar.xml b/res/layout/qsb_bar.xml
index ad9027f..322dc00 100644
--- a/res/layout/qsb_bar.xml
+++ b/res/layout/qsb_bar.xml
@@ -25,29 +25,9 @@
     <!-- Drag specific targets container -->
     <LinearLayout
         style="@style/SearchDropTargetBar"
-        android:id="@+id/drag_target_bar"
-        android:visibility="gone">
+        android:id="@+id/drag_target_bar">
 
-        <FrameLayout
-            style="@style/DropTargetButtonContainer"
-            android:layout_weight="1">
-            <!-- Delete target -->
-            <com.android.launcher2.DeleteDropTarget
-                style="@style/DropTargetButton"
-                android:id="@+id/delete_target_text"
-                android:text="@string/delete_zone_label_workspace"
-                android:drawableLeft="@drawable/remove_target_selector" />
-        </FrameLayout>
-
-        <FrameLayout
-            style="@style/DropTargetButtonContainer"
-            android:layout_weight="1">
-            <!-- Info target -->
-            <com.android.launcher2.InfoDropTarget
-                style="@style/DropTargetButton"
-                android:id="@+id/info_target_text"
-                android:text="@string/info_target_label"
-                android:drawableLeft="@drawable/info_target_selector" />
-        </FrameLayout>
+        <include
+            layout="@layout/drop_target_bar" />
     </LinearLayout>
 </com.android.launcher2.SearchDropTargetBar>
diff --git a/res/values-land/styles.xml b/res/values-land/styles.xml
index f4519ab..df3356e 100644
--- a/res/values-land/styles.xml
+++ b/res/values-land/styles.xml
@@ -47,10 +47,10 @@
         <item name="android:layout_height">0dp</item>
     </style>
     <style name="DropTargetButton">
-        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_width">wrap_content</item>
         <item name="android:layout_height">wrap_content</item>
-        <item name="android:layout_gravity">center_vertical</item>
-        <item name="android:gravity">center_horizontal</item>
+        <item name="android:layout_gravity">center</item>
+        <item name="android:gravity">center</item>
         <item name="android:paddingTop">@dimen/toolbar_button_vertical_padding</item>
         <item name="android:paddingBottom">@dimen/toolbar_button_vertical_padding</item>
         <item name="android:paddingLeft">@dimen/toolbar_button_horizontal_padding</item>
diff --git a/src/com/android/launcher2/ButtonDropTarget.java b/src/com/android/launcher2/ButtonDropTarget.java
index e9f8ce8..1c9fa5f 100644
--- a/src/com/android/launcher2/ButtonDropTarget.java
+++ b/src/com/android/launcher2/ButtonDropTarget.java
@@ -20,6 +20,7 @@
 import android.content.res.Resources;
 import android.graphics.PointF;
 import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
 import android.util.AttributeSet;
 import android.widget.TextView;
 
@@ -68,6 +69,16 @@
         mSearchDropTargetBar = searchDropTargetBar;
     }
 
+    protected Drawable getCurrentDrawable() {
+        Drawable[] drawables = getCompoundDrawables();
+        for (int i = 0; i < drawables.length; ++i) {
+            if (drawables[i] != null) {
+                return drawables[i];
+            }
+        }
+        return null;
+    }
+
     public void onDrop(DragObject d) {
     }
 
diff --git a/src/com/android/launcher2/DeleteDropTarget.java b/src/com/android/launcher2/DeleteDropTarget.java
index eb831f6..1edc2ab 100644
--- a/src/com/android/launcher2/DeleteDropTarget.java
+++ b/src/com/android/launcher2/DeleteDropTarget.java
@@ -25,6 +25,7 @@
 import android.content.res.Resources;
 import android.graphics.PointF;
 import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
 import android.graphics.drawable.TransitionDrawable;
 import android.util.AttributeSet;
 import android.view.View;
@@ -76,7 +77,7 @@
 
         // The current drawable is set to either the remove drawable or the uninstall drawable 
         // and is initially set to the remove drawable, as set in the layout xml.
-        mCurrentDrawable = (TransitionDrawable) getCompoundDrawables()[0];
+        mCurrentDrawable = (TransitionDrawable) getCurrentDrawable();
 
         // Remove the text in the Phone UI in landscape
         int orientation = getResources().getConfiguration().orientation;
@@ -157,7 +158,7 @@
         } else {
             setCompoundDrawablesWithIntrinsicBounds(mRemoveDrawable, null, null, null);
         }
-        mCurrentDrawable = (TransitionDrawable) getCompoundDrawables()[0];
+        mCurrentDrawable = (TransitionDrawable) getCurrentDrawable();
 
         mActive = isVisible;
         resetHoverColor();
diff --git a/src/com/android/launcher2/InfoDropTarget.java b/src/com/android/launcher2/InfoDropTarget.java
index 134f4cb..d6bf5f2 100644
--- a/src/com/android/launcher2/InfoDropTarget.java
+++ b/src/com/android/launcher2/InfoDropTarget.java
@@ -16,7 +16,6 @@
 
 package com.android.launcher2;
 
-import android.appwidget.AppWidgetProviderInfo;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.res.ColorStateList;
@@ -51,7 +50,7 @@
         // Get the hover color
         Resources r = getResources();
         mHoverColor = r.getColor(R.color.info_target_hover_tint);
-        mDrawable = (TransitionDrawable) getCompoundDrawables()[0];
+        mDrawable = (TransitionDrawable) getCurrentDrawable();
         mDrawable.setCrossFadeEnabled(true);
 
         // Remove the text in the Phone UI in landscape