diff options
4 files changed, 33 insertions, 0 deletions
diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java index 132ffef..696ccdb 100644 --- a/core/java/android/app/FragmentManager.java +++ b/core/java/android/app/FragmentManager.java @@ -2210,6 +2210,7 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate // This fragment was retained from a previous instance; get it // going now. fragment.mInLayout = true; + fragment.mHost = mHost; // If this fragment is newly instantiated (either right now, or // from last saved state), then give it the attributes to // initialize itself. diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java index ba0912a..4ba678c 100644 --- a/core/java/com/android/internal/app/ResolverActivity.java +++ b/core/java/com/android/internal/app/ResolverActivity.java @@ -26,6 +26,7 @@ import android.os.AsyncTask; import android.provider.Settings; import android.text.TextUtils; import android.util.Slog; +import android.view.View.OnAttachStateChangeListener; import android.widget.AbsListView; import com.android.internal.R; import com.android.internal.content.PackageMonitor; @@ -331,6 +332,18 @@ public class ResolverActivity extends Activity { if (isVoiceInteraction()) { onSetupVoiceInteraction(); } + + getWindow().getDecorView().addOnAttachStateChangeListener( + new OnAttachStateChangeListener() { + @Override + public void onViewAttachedToWindow(View v) { + v.getViewRootImpl().setDrawDuringWindowsAnimating(true); + } + + @Override + public void onViewDetachedFromWindow(View v) { + } + }); } /** diff --git a/packages/SystemUI/res/values/attrs.xml b/packages/SystemUI/res/values/attrs.xml index 527248c..49f7bdb 100644 --- a/packages/SystemUI/res/values/attrs.xml +++ b/packages/SystemUI/res/values/attrs.xml @@ -20,6 +20,7 @@ <attr name="keyCode" format="integer" /> <!-- does this button generate longpress / repeat events? --> <attr name="keyRepeat" format="boolean" /> + <attr name="android:contentDescription" /> </declare-styleable> <declare-styleable name="ToggleSlider"> <attr name="text" format="string" /> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java index 4c99792..4d268ce 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java @@ -18,12 +18,14 @@ package com.android.systemui.statusbar.policy; import android.app.ActivityManager; import android.content.Context; +import android.content.res.Configuration; import android.content.res.TypedArray; import android.hardware.input.InputManager; import android.media.AudioManager; import android.os.Bundle; import android.os.SystemClock; import android.util.AttributeSet; +import android.util.TypedValue; import android.view.HapticFeedbackConstants; import android.view.InputDevice; import android.view.KeyCharacterMap; @@ -43,6 +45,7 @@ import static android.view.accessibility.AccessibilityNodeInfo.ACTION_LONG_CLICK public class KeyButtonView extends ImageView { + private int mContentDescriptionRes; private long mDownTime; private int mCode; private int mTouchSlop; @@ -79,8 +82,14 @@ public class KeyButtonView extends ImageView { mSupportsLongpress = a.getBoolean(R.styleable.KeyButtonView_keyRepeat, true); + TypedValue value = new TypedValue(); + if (a.getValue(R.styleable.KeyButtonView_android_contentDescription, value)) { + mContentDescriptionRes = value.resourceId; + } + a.recycle(); + setClickable(true); mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); @@ -88,6 +97,15 @@ public class KeyButtonView extends ImageView { } @Override + protected void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + + if (mContentDescriptionRes != 0) { + setContentDescription(mContext.getString(mContentDescriptionRes)); + } + } + + @Override public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); if (mCode != 0) { |