diff options
| -rw-r--r-- | api/current.xml | 28 | ||||
| -rw-r--r-- | core/java/android/app/NativeActivity.java | 14 | ||||
| -rw-r--r-- | core/java/android/view/InputConsumer.java | 39 | ||||
| -rw-r--r-- | core/java/android/view/InputQueue.java | 24 | ||||
| -rw-r--r-- | core/java/android/view/ViewRoot.java | 20 | ||||
| -rw-r--r-- | core/java/android/view/Window.java | 6 | ||||
| -rw-r--r-- | core/java/com/android/internal/os/BatteryStatsImpl.java | 11 | ||||
| -rw-r--r-- | core/java/com/android/internal/view/RootViewSurfaceTaker.java | 4 | ||||
| -rw-r--r-- | include/media/stagefright/MPEG4Writer.h | 1 | ||||
| -rw-r--r-- | media/libstagefright/MPEG4Writer.cpp | 99 | ||||
| -rw-r--r-- | policy/src/com/android/internal/policy/impl/PhoneWindow.java | 15 | ||||
| -rw-r--r-- | services/java/com/android/server/AppWidgetService.java | 1 |
12 files changed, 144 insertions, 118 deletions
diff --git a/api/current.xml b/api/current.xml index 37538c3..f8c644e 100644 --- a/api/current.xml +++ b/api/current.xml @@ -26330,7 +26330,7 @@ deprecated="not deprecated" visibility="public" > -<implements name="android.view.InputConsumer.Callback"> +<implements name="android.view.InputQueue.Callback"> </implements> <implements name="android.view.SurfaceHolder.Callback"> </implements> @@ -26342,7 +26342,7 @@ visibility="public" > </constructor> -<method name="onInputConsumerCreated" +<method name="onInputQueueCreated" return="void" abstract="false" native="false" @@ -26352,10 +26352,10 @@ deprecated="not deprecated" visibility="public" > -<parameter name="consumer" type="android.view.InputConsumer"> +<parameter name="queue" type="android.view.InputQueue"> </parameter> </method> -<method name="onInputConsumerDestroyed" +<method name="onInputQueueDestroyed" return="void" abstract="false" native="false" @@ -26365,7 +26365,7 @@ deprecated="not deprecated" visibility="public" > -<parameter name="consumer" type="android.view.InputConsumer"> +<parameter name="queue" type="android.view.InputQueue"> </parameter> </method> <method name="surfaceChanged" @@ -172775,23 +172775,23 @@ </parameter> </constructor> </class> -<class name="InputConsumer" +<class name="InputQueue" extends="java.lang.Object" abstract="false" static="false" - final="false" + final="true" deprecated="not deprecated" visibility="public" > </class> -<interface name="InputConsumer.Callback" +<interface name="InputQueue.Callback" abstract="true" static="true" final="false" deprecated="not deprecated" visibility="public" > -<method name="onInputConsumerCreated" +<method name="onInputQueueCreated" return="void" abstract="true" native="false" @@ -172801,10 +172801,10 @@ deprecated="not deprecated" visibility="public" > -<parameter name="consumer" type="android.view.InputConsumer"> +<parameter name="queue" type="android.view.InputQueue"> </parameter> </method> -<method name="onInputConsumerDestroyed" +<method name="onInputQueueDestroyed" return="void" abstract="true" native="false" @@ -172814,7 +172814,7 @@ deprecated="not deprecated" visibility="public" > -<parameter name="consumer" type="android.view.InputConsumer"> +<parameter name="queue" type="android.view.InputQueue"> </parameter> </method> </interface> @@ -187271,7 +187271,7 @@ <parameter name="event" type="android.view.MotionEvent"> </parameter> </method> -<method name="takeInputChannel" +<method name="takeInputQueue" return="void" abstract="true" native="false" @@ -187281,7 +187281,7 @@ deprecated="not deprecated" visibility="public" > -<parameter name="callback" type="android.view.InputConsumer.Callback"> +<parameter name="callback" type="android.view.InputQueue.Callback"> </parameter> </method> <method name="takeKeyEvents" diff --git a/core/java/android/app/NativeActivity.java b/core/java/android/app/NativeActivity.java index 973ad60..429d164 100644 --- a/core/java/android/app/NativeActivity.java +++ b/core/java/android/app/NativeActivity.java @@ -7,7 +7,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.view.InputChannel; -import android.view.InputConsumer; +import android.view.InputQueue; import android.view.SurfaceHolder; import java.io.File; @@ -17,7 +17,7 @@ import java.io.File; * purely in native code. That is, a game (or game-like thing). */ public class NativeActivity extends Activity implements SurfaceHolder.Callback, - InputConsumer.Callback { + InputQueue.Callback { public static final String META_DATA_LIB_NAME = "android.app.lib_name"; private int mNativeHandle; @@ -45,7 +45,7 @@ public class NativeActivity extends Activity implements SurfaceHolder.Callback, ActivityInfo ai; getWindow().takeSurface(this); - getWindow().takeInputChannel(this); + getWindow().takeInputQueue(this); try { ai = getPackageManager().getActivityInfo( @@ -145,11 +145,11 @@ public class NativeActivity extends Activity implements SurfaceHolder.Callback, onSurfaceDestroyedNative(mNativeHandle, holder); } - public void onInputConsumerCreated(InputConsumer consumer) { - onInputChannelCreatedNative(mNativeHandle, consumer.getInputChannel()); + public void onInputQueueCreated(InputQueue queue) { + onInputChannelCreatedNative(mNativeHandle, queue.getInputChannel()); } - public void onInputConsumerDestroyed(InputConsumer consumer) { - onInputChannelDestroyedNative(mNativeHandle, consumer.getInputChannel()); + public void onInputQueueDestroyed(InputQueue queue) { + onInputChannelDestroyedNative(mNativeHandle, queue.getInputChannel()); } } diff --git a/core/java/android/view/InputConsumer.java b/core/java/android/view/InputConsumer.java deleted file mode 100644 index 63b26c6..0000000 --- a/core/java/android/view/InputConsumer.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2010 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 android.view; - -/** - * Handle for consuming raw input events. - */ -public class InputConsumer { - public static interface Callback { - void onInputConsumerCreated(InputConsumer consumer); - void onInputConsumerDestroyed(InputConsumer consumer); - } - - final InputChannel mChannel; - - /** @hide */ - public InputConsumer(InputChannel channel) { - mChannel = channel; - } - - /** @hide */ - public InputChannel getInputChannel() { - return mChannel; - } -} diff --git a/core/java/android/view/InputQueue.java b/core/java/android/view/InputQueue.java index b38f7d5..7feee38 100644 --- a/core/java/android/view/InputQueue.java +++ b/core/java/android/view/InputQueue.java @@ -21,16 +21,25 @@ import android.util.Slog; /** * An input queue provides a mechanism for an application to receive incoming - * input events sent over an input channel. Signalling is implemented by MessageQueue. - * @hide + * input events. Currently only usable from native code. */ public final class InputQueue { private static final String TAG = "InputQueue"; + public static interface Callback { + void onInputQueueCreated(InputQueue queue); + void onInputQueueDestroyed(InputQueue queue); + } + + final InputChannel mChannel; + // Describes the interpretation of an event. // XXX This concept is tentative. See comments in android/input.h. + /** @hide */ public static final int INPUT_EVENT_NATURE_KEY = 1; + /** @hide */ public static final int INPUT_EVENT_NATURE_TOUCH = 2; + /** @hide */ public static final int INPUT_EVENT_NATURE_TRACKBALL = 3; private static Object sLock = new Object(); @@ -40,7 +49,14 @@ public final class InputQueue { private static native void nativeUnregisterInputChannel(InputChannel inputChannel); private static native void nativeFinished(long finishedToken); - private InputQueue() { + /** @hide */ + public InputQueue(InputChannel channel) { + mChannel = channel; + } + + /** @hide */ + public InputChannel getInputChannel() { + return mChannel; } /** @@ -48,6 +64,7 @@ public final class InputQueue { * @param inputChannel The input channel to register. * @param inputHandler The input handler to input events send to the target. * @param messageQueue The message queue on whose thread the handler should be invoked. + * @hide */ public static void registerInputChannel(InputChannel inputChannel, InputHandler inputHandler, MessageQueue messageQueue) { @@ -71,6 +88,7 @@ public final class InputQueue { * Unregisters an input channel. * Does nothing if the channel is not currently registered. * @param inputChannel The input channel to unregister. + * @hide */ public static void unregisterInputChannel(InputChannel inputChannel) { if (inputChannel == null) { diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java index 8984b74..4854190 100644 --- a/core/java/android/view/ViewRoot.java +++ b/core/java/android/view/ViewRoot.java @@ -154,8 +154,8 @@ public final class ViewRoot extends Handler implements ViewParent, final View.AttachInfo mAttachInfo; InputChannel mInputChannel; - InputConsumer.Callback mInputConsumerCallback; - InputConsumer mInputConsumer; + InputQueue.Callback mInputQueueCallback; + InputQueue mInputQueue; final Rect mTempRect; // used in the transaction to not thrash the heap. final Rect mVisRect; // used to retrieve visible rect of focused view. @@ -558,12 +558,12 @@ public final class ViewRoot extends Handler implements ViewParent, if (WindowManagerPolicy.ENABLE_NATIVE_INPUT_DISPATCH) { if (view instanceof RootViewSurfaceTaker) { - mInputConsumerCallback = - ((RootViewSurfaceTaker)view).willYouTakeTheInputConsumer(); + mInputQueueCallback = + ((RootViewSurfaceTaker)view).willYouTakeTheInputQueue(); } - if (mInputConsumerCallback != null) { - mInputConsumer = new InputConsumer(mInputChannel); - mInputConsumerCallback.onInputConsumerCreated(mInputConsumer); + if (mInputQueueCallback != null) { + mInputQueue = new InputQueue(mInputChannel); + mInputQueueCallback.onInputQueueCreated(mInputQueue); } else { InputQueue.registerInputChannel(mInputChannel, mInputHandler, Looper.myQueue()); @@ -1747,9 +1747,9 @@ public final class ViewRoot extends Handler implements ViewParent, if (WindowManagerPolicy.ENABLE_NATIVE_INPUT_DISPATCH) { if (mInputChannel != null) { - if (mInputConsumerCallback != null) { - mInputConsumerCallback.onInputConsumerDestroyed(mInputConsumer); - mInputConsumerCallback = null; + if (mInputQueueCallback != null) { + mInputQueueCallback.onInputQueueDestroyed(mInputQueue); + mInputQueueCallback = null; } else { InputQueue.unregisterInputChannel(mInputChannel); } diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java index b00d33d..f40734b 100644 --- a/core/java/android/view/Window.java +++ b/core/java/android/view/Window.java @@ -481,11 +481,11 @@ public abstract class Window { public abstract void takeSurface(SurfaceHolder.Callback callback); /** - * Take ownership of this window's InputChannel. The window will no - * longer read and dispatch input events from the channel; it is your + * Take ownership of this window's InputQueue. The window will no + * longer read and dispatch input events from the queue; it is your * responsibility to do so. */ - public abstract void takeInputChannel(InputConsumer.Callback callback); + public abstract void takeInputQueue(InputQueue.Callback callback); /** * Return whether this window is being displayed with a floating style diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index f8ab04c..642c313 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -3892,6 +3892,17 @@ public final class BatteryStatsImpl extends BatteryStats { mHistoryBaseTime = rec.time; } } + + long oldnow = SystemClock.elapsedRealtime() - (5*60*100); + if (oldnow > 0) { + // If the system process has restarted, but not the entire + // system, then the mHistoryBaseTime already accounts for + // much of the elapsed time. We thus want to adjust it back, + // to avoid large gaps in the data. We determine we are + // in this case by arbitrarily saying it is so if at this + // point in boot the elapsed time is already more than 5 seconds. + mHistoryBaseTime -= oldnow; + } } void writeHistory(Parcel out) { diff --git a/core/java/com/android/internal/view/RootViewSurfaceTaker.java b/core/java/com/android/internal/view/RootViewSurfaceTaker.java index 991266a..7ff8d4c 100644 --- a/core/java/com/android/internal/view/RootViewSurfaceTaker.java +++ b/core/java/com/android/internal/view/RootViewSurfaceTaker.java @@ -1,6 +1,6 @@ package com.android.internal.view; -import android.view.InputConsumer; +import android.view.InputQueue; import android.view.SurfaceHolder; /** hahahah */ @@ -9,5 +9,5 @@ public interface RootViewSurfaceTaker { void setSurfaceType(int type); void setSurfaceFormat(int format); void setSurfaceKeepScreenOn(boolean keepOn); - InputConsumer.Callback willYouTakeTheInputConsumer(); + InputQueue.Callback willYouTakeTheInputQueue(); } diff --git a/include/media/stagefright/MPEG4Writer.h b/include/media/stagefright/MPEG4Writer.h index d62df46..39d0ea1 100644 --- a/include/media/stagefright/MPEG4Writer.h +++ b/include/media/stagefright/MPEG4Writer.h @@ -60,6 +60,7 @@ private: class Track; FILE *mFile; + bool mUse32BitOffset; bool mPaused; bool mStarted; off_t mOffset; diff --git a/media/libstagefright/MPEG4Writer.cpp b/media/libstagefright/MPEG4Writer.cpp index cd20ec7..4242d36 100644 --- a/media/libstagefright/MPEG4Writer.cpp +++ b/media/libstagefright/MPEG4Writer.cpp @@ -48,7 +48,7 @@ public: int64_t getDurationUs() const; int64_t getEstimatedTrackSizeBytes() const; - void writeTrackHeader(int32_t trackID); + void writeTrackHeader(int32_t trackID, bool use32BitOffset = true); private: MPEG4Writer *mOwner; @@ -123,6 +123,7 @@ private: MPEG4Writer::MPEG4Writer(const char *filename) : mFile(fopen(filename, "wb")), + mUse32BitOffset(true), mPaused(false), mStarted(false), mOffset(0), @@ -134,6 +135,7 @@ MPEG4Writer::MPEG4Writer(const char *filename) MPEG4Writer::MPEG4Writer(int fd) : mFile(fdopen(fd, "wb")), + mUse32BitOffset(true), mPaused(false), mStarted(false), mOffset(0), @@ -218,7 +220,11 @@ status_t MPEG4Writer::start() { mMdatOffset = mFreeBoxOffset + mEstimatedMoovBoxSize; mOffset = mMdatOffset; fseeko(mFile, mMdatOffset, SEEK_SET); - write("\x00\x00\x00\x01mdat????????", 16); + if (mUse32BitOffset) { + write("????mdat", 8); + } else { + write("\x00\x00\x00\x01mdat????????", 16); + } status_t err = startTracks(); if (err != OK) { @@ -257,10 +263,16 @@ void MPEG4Writer::stop() { // Fix up the size of the 'mdat' chunk. - fseeko(mFile, mMdatOffset + 8, SEEK_SET); - int64_t size = mOffset - mMdatOffset; - size = hton64(size); - fwrite(&size, 1, 8, mFile); + if (mUse32BitOffset) { + fseeko(mFile, mMdatOffset, SEEK_SET); + int32_t size = htonl(static_cast<int32_t>(mOffset - mMdatOffset)); + fwrite(&size, 1, 4, mFile); + } else { + fseeko(mFile, mMdatOffset + 8, SEEK_SET); + int64_t size = mOffset - mMdatOffset; + size = hton64(size); + fwrite(&size, 1, 8, mFile); + } fseeko(mFile, mOffset, SEEK_SET); time_t now = time(NULL); @@ -269,6 +281,8 @@ void MPEG4Writer::stop() { mMoovBoxBuffer = (uint8_t *) malloc(mEstimatedMoovBoxSize); mMoovBoxBufferOffset = 0; CHECK(mMoovBoxBuffer != NULL); + int32_t timeScale = 1000; + int32_t duration = max_duration / timeScale; beginBox("moov"); @@ -276,9 +290,9 @@ void MPEG4Writer::stop() { writeInt32(0); // version=0, flags=0 writeInt32(now); // creation time writeInt32(now); // modification time - writeInt32(1000); // timescale - writeInt32(max_duration / 1000); - writeInt32(0x10000); // rate + writeInt32(timeScale); // timescale + writeInt32(duration); + writeInt32(0x10000); // rate: 1.0 writeInt16(0x100); // volume writeInt16(0); // reserved writeInt32(0); // reserved @@ -304,7 +318,7 @@ void MPEG4Writer::stop() { int32_t id = 1; for (List<Track *>::iterator it = mTracks.begin(); it != mTracks.end(); ++it, ++id) { - (*it)->writeTrackHeader(id); + (*it)->writeTrackHeader(id, mUse32BitOffset); } endBox(); // moov @@ -415,7 +429,8 @@ size_t MPEG4Writer::write( const size_t bytes = size * nmemb; if (mWriteMoovBoxToMemory) { - if (8 + mMoovBoxBufferOffset + bytes > mEstimatedMoovBoxSize) { + off_t moovBoxSize = 8 + mMoovBoxBufferOffset + bytes; + if (moovBoxSize > mEstimatedMoovBoxSize) { for (List<off_t>::iterator it = mBoxes.begin(); it != mBoxes.end(); ++it) { (*it) += mOffset; @@ -1162,24 +1177,29 @@ int64_t MPEG4Writer::Track::getEstimatedTrackSizeBytes() const { return mEstimatedTrackSizeBytes; } -void MPEG4Writer::Track::writeTrackHeader(int32_t trackID) { +void MPEG4Writer::Track::writeTrackHeader( + int32_t trackID, bool use32BitOffset) { const char *mime; bool success = mMeta->findCString(kKeyMIMEType, &mime); CHECK(success); bool is_audio = !strncasecmp(mime, "audio/", 6); + int32_t timeScale = 1000; + int32_t duration = getDurationUs() / timeScale; time_t now = time(NULL); mOwner->beginBox("trak"); mOwner->beginBox("tkhd"); - mOwner->writeInt32(0); // version=0, flags=0 + // Flags = 7 to indicate that the track is enabled, and + // part of the presentation + mOwner->writeInt32(0x07); // version=0, flags=7 mOwner->writeInt32(now); // creation time mOwner->writeInt32(now); // modification time mOwner->writeInt32(trackID); mOwner->writeInt32(0); // reserved - mOwner->writeInt32(getDurationUs() / 1000); + mOwner->writeInt32(duration); mOwner->writeInt32(0); // reserved mOwner->writeInt32(0); // reserved mOwner->writeInt16(0); // layer @@ -1214,15 +1234,17 @@ void MPEG4Writer::Track::writeTrackHeader(int32_t trackID) { int64_t moovStartTimeUs = mOwner->getStartTimestampUs(); if (mStartTimestampUs != moovStartTimeUs) { mOwner->beginBox("edts"); - mOwner->writeInt32(0); // version=0, flags=0 mOwner->beginBox("elst"); - mOwner->writeInt32(0); // version=0, flags=0 - mOwner->writeInt32(1); // a single entry + mOwner->writeInt32(0); // version=0, flags=0: 32-bit time + mOwner->writeInt32(2); // never ends with an empty list int64_t durationMs = (mStartTimestampUs - moovStartTimeUs) / 1000; mOwner->writeInt32(durationMs); // edit duration mOwner->writeInt32(-1); // empty edit box to signal starting time offset - mOwner->writeInt32(1); // x1 rate + mOwner->writeInt32(1 << 16); // x1 rate + mOwner->writeInt32(duration); + mOwner->writeInt32(0); + mOwner->writeInt32(1 << 16); mOwner->endBox(); mOwner->endBox(); } @@ -1233,9 +1255,14 @@ void MPEG4Writer::Track::writeTrackHeader(int32_t trackID) { mOwner->writeInt32(0); // version=0, flags=0 mOwner->writeInt32(now); // creation time mOwner->writeInt32(now); // modification time - mOwner->writeInt32(1000); // timescale - mOwner->writeInt32(getDurationUs() / 1000); - mOwner->writeInt16(0); // language code XXX + mOwner->writeInt32(timeScale); // timescale + mOwner->writeInt32(duration); // duration + // Language follows the three letter standard ISO-639-2/T + // 'e', 'n', 'g' for "English", for instance. + // Each character is packed as the difference between its ASCII value and 0x60. + // For "English", these are 00101, 01110, 00111. + // XXX: Where is the padding bit located: 0x15C7? + mOwner->writeInt16(0); // language code mOwner->writeInt16(0); // predefined mOwner->endBox(); @@ -1246,7 +1273,8 @@ void MPEG4Writer::Track::writeTrackHeader(int32_t trackID) { mOwner->writeInt32(0); // reserved mOwner->writeInt32(0); // reserved mOwner->writeInt32(0); // reserved - mOwner->writeCString(is_audio ? "SoundHandler": ""); // name + // Removing "r" for the name string just makes the string 4 byte aligned + mOwner->writeCString(is_audio ? "SoundHandle": "VideoHandle"); // name mOwner->endBox(); mOwner->beginBox("minf"); @@ -1258,7 +1286,7 @@ void MPEG4Writer::Track::writeTrackHeader(int32_t trackID) { mOwner->endBox(); } else { mOwner->beginBox("vmhd"); - mOwner->writeInt32(0x00000001); // version=0, flags=1 + mOwner->writeInt32(0x01); // version=0, flags=1 mOwner->writeInt16(0); // graphics mode mOwner->writeInt16(0); // opcolor mOwner->writeInt16(0); @@ -1269,15 +1297,15 @@ void MPEG4Writer::Track::writeTrackHeader(int32_t trackID) { mOwner->beginBox("dinf"); mOwner->beginBox("dref"); mOwner->writeInt32(0); // version=0, flags=0 - mOwner->writeInt32(1); + mOwner->writeInt32(1); // entry count (either url or urn) + // The table index here refers to the sample description index + // in the sample table entries. mOwner->beginBox("url "); - mOwner->writeInt32(1); // version=0, flags=1 + mOwner->writeInt32(1); // version=0, flags=1 (self-contained) mOwner->endBox(); // url mOwner->endBox(); // dref mOwner->endBox(); // dinf - mOwner->endBox(); // minf - mOwner->beginBox("stbl"); mOwner->beginBox("stsd"); @@ -1361,7 +1389,7 @@ void MPEG4Writer::Track::writeTrackHeader(int32_t trackID) { mOwner->writeInt32(0); // reserved mOwner->writeInt16(0); // reserved - mOwner->writeInt16(0); // data ref index + mOwner->writeInt16(1); // data ref index mOwner->writeInt16(0); // predefined mOwner->writeInt16(0); // reserved mOwner->writeInt32(0); // predefined @@ -1435,6 +1463,11 @@ void MPEG4Writer::Track::writeTrackHeader(int32_t trackID) { mOwner->endBox(); // avcC } + mOwner->beginBox("pasp"); + // This is useful if the pixel is not square + mOwner->writeInt32(1 << 16); // hspacing + mOwner->writeInt32(1 << 16); // vspacing + mOwner->endBox(); // pasp mOwner->endBox(); // mp4v, s263 or avc1 } mOwner->endBox(); // stsd @@ -1487,17 +1520,21 @@ void MPEG4Writer::Track::writeTrackHeader(int32_t trackID) { mOwner->writeInt32(it->sampleDescriptionId); } mOwner->endBox(); // stsc - - mOwner->beginBox("co64"); + mOwner->beginBox(use32BitOffset? "stco": "co64"); mOwner->writeInt32(0); // version=0, flags=0 mOwner->writeInt32(mChunkOffsets.size()); for (List<off_t>::iterator it = mChunkOffsets.begin(); it != mChunkOffsets.end(); ++it) { - mOwner->writeInt64((*it)); + if (use32BitOffset) { + mOwner->writeInt32(static_cast<int32_t>(*it)); + } else { + mOwner->writeInt64((*it)); + } } mOwner->endBox(); // co64 mOwner->endBox(); // stbl + mOwner->endBox(); // minf mOwner->endBox(); // mdia mOwner->endBox(); // trak } diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java index 7877611..5642588 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java @@ -44,7 +44,6 @@ import android.graphics.drawable.Drawable; import android.media.AudioManager; import android.net.Uri; import android.os.Bundle; -import android.os.Message; import android.os.Parcel; import android.os.Parcelable; import android.os.SystemClock; @@ -56,14 +55,13 @@ import android.util.Log; import android.util.SparseArray; import android.view.Gravity; import android.view.HapticFeedbackConstants; -import android.view.InputConsumer; +import android.view.InputQueue; import android.view.KeyCharacterMap; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; -import android.view.Surface; import android.view.SurfaceHolder; import android.view.View; import android.view.ViewGroup; @@ -71,7 +69,6 @@ import android.view.ViewManager; import android.view.VolumePanel; import android.view.Window; import android.view.WindowManager; -import android.view.InputConsumer.Callback; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; import android.view.animation.Animation; @@ -110,7 +107,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { SurfaceHolder.Callback mTakeSurfaceCallback; BaseSurfaceHolder mSurfaceHolder; - InputConsumer.Callback mTakeInputChannelCallback; + InputQueue.Callback mTakeInputQueueCallback; private boolean mIsFloating; @@ -255,8 +252,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { mTakeSurfaceCallback = callback; } - public void takeInputChannel(InputConsumer.Callback callback) { - mTakeInputChannelCallback = callback; + public void takeInputQueue(InputQueue.Callback callback) { + mTakeInputQueueCallback = callback; } @Override @@ -2045,8 +2042,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { return mFeatureId < 0 ? mTakeSurfaceCallback : null; } - public InputConsumer.Callback willYouTakeTheInputConsumer() { - return mFeatureId < 0 ? mTakeInputChannelCallback : null; + public InputQueue.Callback willYouTakeTheInputQueue() { + return mFeatureId < 0 ? mTakeInputQueueCallback : null; } public void setSurfaceType(int type) { diff --git a/services/java/com/android/server/AppWidgetService.java b/services/java/com/android/server/AppWidgetService.java index dc5fd30..3ed6c12 100644 --- a/services/java/com/android/server/AppWidgetService.java +++ b/services/java/com/android/server/AppWidgetService.java @@ -1204,6 +1204,7 @@ class AppWidgetService extends IAppWidgetService.Stub // If it's currently showing, call back with the new AppWidgetProviderInfo. for (int j=0; j<M; j++) { AppWidgetId id = p.instances.get(j); + id.views = null; if (id.host != null && id.host.callbacks != null) { try { id.host.callbacks.providerChanged(id.appWidgetId, p.info); |
