am 331bb0c3: Setup ActionBars in layoutlib the same way the platform does it. do not merge.

* commit '331bb0c393d5e2ea2485102dcddbb8c2d42654d2':
  Setup ActionBars in layoutlib the same way the platform does it. do not merge.
This commit is contained in:
Xavier Ducrohet
2012-02-06 16:42:41 -08:00
committed by Android Git Automerger
4 changed files with 58 additions and 22 deletions

View File

@@ -1,8 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"> <merge xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView <include layout="@android:layout/action_bar_home" />
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"/> android:layout_height="wrap_content"/>

View File

@@ -474,7 +474,7 @@ public final class Matrix_Delegate {
} }
Matrix_Delegate other = sManager.getDelegate(other_matrix); Matrix_Delegate other = sManager.getDelegate(other_matrix);
if (d == null) { if (other == null) {
return false; return false;
} }
@@ -570,7 +570,7 @@ public final class Matrix_Delegate {
} }
Matrix_Delegate other = sManager.getDelegate(other_matrix); Matrix_Delegate other = sManager.getDelegate(other_matrix);
if (d == null) { if (other == null) {
return false; return false;
} }

View File

@@ -145,6 +145,14 @@ abstract class CustomBar extends LinearLayout {
} }
} }
protected void loadIconById(int id, String iconReference) {
ResourceValue value = getResourceValue(iconReference);
if (value != null) {
loadIconById(id, value);
}
}
protected Drawable loadIcon(int index, ResourceType type, String name) { protected Drawable loadIcon(int index, ResourceType type, String name) {
BridgeContext bridgeContext = (BridgeContext) mContext; BridgeContext bridgeContext = (BridgeContext) mContext;
RenderResources res = bridgeContext.getRenderResources(); RenderResources res = bridgeContext.getRenderResources();
@@ -162,32 +170,62 @@ abstract class CustomBar extends LinearLayout {
if (child instanceof ImageView) { if (child instanceof ImageView) {
ImageView imageView = (ImageView) child; ImageView imageView = (ImageView) child;
Drawable drawable = ResourceHelper.getDrawable( return loadIcon(imageView, value);
value, (BridgeContext) mContext);
if (drawable != null) {
imageView.setBackgroundDrawable(drawable);
}
return drawable;
} }
return null; return null;
} }
private Drawable loadIconById(int id, ResourceValue value) {
View child = findViewById(id);
if (child instanceof ImageView) {
ImageView imageView = (ImageView) child;
return loadIcon(imageView, value);
}
return null;
}
private Drawable loadIcon(ImageView imageView, ResourceValue value) {
Drawable drawable = ResourceHelper.getDrawable(value, (BridgeContext) mContext);
if (drawable != null) {
imageView.setImageDrawable(drawable);
}
return drawable;
}
protected TextView setText(int index, String stringReference) { protected TextView setText(int index, String stringReference) {
View child = getChildAt(index); View child = getChildAt(index);
if (child instanceof TextView) { if (child instanceof TextView) {
TextView textView = (TextView) child; TextView textView = (TextView) child;
setText(textView, stringReference);
return textView;
}
return null;
}
protected TextView setTextById(int id, String stringReference) {
View child = findViewById(id);
if (child instanceof TextView) {
TextView textView = (TextView) child;
setText(textView, stringReference);
return textView;
}
return null;
}
private void setText(TextView textView, String stringReference) {
ResourceValue value = getResourceValue(stringReference); ResourceValue value = getResourceValue(stringReference);
if (value != null) { if (value != null) {
textView.setText(value.getValue()); textView.setText(value.getValue());
} else { } else {
textView.setText(stringReference); textView.setText(stringReference);
} }
return textView;
}
return null;
} }
protected void setStyle(String themeEntryName) { protected void setStyle(String themeEntryName) {

View File

@@ -34,7 +34,7 @@ public class FakeActionBar extends CustomBar {
// Cannot access the inside items through id because no R.id values have been // Cannot access the inside items through id because no R.id values have been
// created for them. // created for them.
// We do know the order though. // We do know the order though.
loadIcon(0, icon); loadIconById(android.R.id.home, icon);
mTextView = setText(1, label); mTextView = setText(1, label);
setStyle("actionBarStyle"); setStyle("actionBarStyle");