diff options
| -rw-r--r-- | core/java/android/view/TextureView.java | 8 | ||||
| -rw-r--r-- | core/res/res/values/strings.xml | 2 | ||||
| -rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 15 | ||||
| -rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java | 14 |
4 files changed, 32 insertions, 7 deletions
diff --git a/core/java/android/view/TextureView.java b/core/java/android/view/TextureView.java index 5c3934d..244dc33 100644 --- a/core/java/android/view/TextureView.java +++ b/core/java/android/view/TextureView.java @@ -108,6 +108,7 @@ public class TextureView extends View { private HardwareLayer mLayer; private SurfaceTexture mSurface; private SurfaceTextureListener mListener; + private boolean mHadSurface; private boolean mOpaque = true; @@ -202,6 +203,11 @@ public class TextureView extends View { Log.w(LOG_TAG, "A TextureView or a subclass can only be " + "used with hardware acceleration enabled."); } + + if (mHadSurface) { + invalidate(true); + mHadSurface = false; + } } @Override @@ -241,6 +247,8 @@ public class TextureView extends View { if (shouldRelease) mSurface.release(); mSurface = null; mLayer = null; + + mHadSurface = true; } } diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index b595d6e..ef0f01d 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -2043,7 +2043,7 @@ <!-- QQ IM protocol type --> <string name="imProtocolQq">QQ</string> <!-- Google Talk IM protocol type --> - <string name="imProtocolGoogleTalk">Google Talk</string> + <string name="imProtocolGoogleTalk">Hangouts</string> <!-- ICQ IM protocol type --> <string name="imProtocolIcq">ICQ</string> <!-- Jabber IM protocol type --> diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index ddb190e..7735819 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -882,15 +882,18 @@ bool OpenGLRenderer::createLayer(float left, float top, float right, float botto layer->bindTexture(); if (!bounds.isEmpty()) { if (layer->isEmpty()) { - glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, - bounds.left, mSnapshot->height - bounds.bottom, - layer->getWidth(), layer->getHeight(), 0); + // Workaround for some GL drivers. When reading pixels lying outside + // of the window we should get undefined values for those pixels. + // Unfortunately some drivers will turn the entire target texture black + // when reading outside of the window. + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, layer->getWidth(), layer->getHeight(), + 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); layer->setEmpty(false); - } else { - glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, bounds.left, - mSnapshot->height - bounds.bottom, bounds.getWidth(), bounds.getHeight()); } + glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, bounds.left, + mSnapshot->height - bounds.bottom, bounds.getWidth(), bounds.getHeight()); + // Enqueue the buffer coordinates to clear the corresponding region later mLayers.push(new Rect(bounds)); } diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index 659651b..0177504 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -43,6 +43,7 @@ import android.media.RingtoneManager; import android.net.Uri; import android.os.Binder; import android.os.Bundle; +import android.os.DropBoxManager; import android.os.FileObserver; import android.os.ParcelFileDescriptor; import android.os.SystemProperties; @@ -107,6 +108,9 @@ public class SettingsProvider extends ContentProvider { */ static final HashSet<String> sSecureGlobalKeys; static final HashSet<String> sSystemGlobalKeys; + + private static final String DROPBOX_TAG_USERLOG = "restricted_profile_ssaid"; + static { // Keys (name column) from the 'secure' table that are now in the owner user's 'global' // table, shared across all users @@ -486,6 +490,16 @@ public class SettingsProvider extends ContentProvider { } Slog.d(TAG, "Generated and saved new ANDROID_ID [" + newAndroidIdValue + "] for user " + userHandle); + // Write a dropbox entry if it's a restricted profile + if (mUserManager.getUserInfo(userHandle).isRestricted()) { + DropBoxManager dbm = (DropBoxManager) + getContext().getSystemService(Context.DROPBOX_SERVICE); + if (dbm != null && dbm.isTagEnabled(DROPBOX_TAG_USERLOG)) { + dbm.addText(DROPBOX_TAG_USERLOG, System.currentTimeMillis() + + ",restricted_profile_ssaid," + + newAndroidIdValue + "\n"); + } + } } return true; } finally { |
