Loading core/java/android/app/ResourcesManager.java +7 −54 Original line number Diff line number Diff line Loading @@ -42,10 +42,10 @@ import android.util.ArrayMap; import android.util.ArraySet; import android.util.DisplayMetrics; import android.util.Log; import android.util.Pair; import android.util.Slog; import android.view.Display; import android.view.DisplayAdjustments; import android.view.DisplayInfo; import android.window.WindowContext; import com.android.internal.annotations.VisibleForTesting; Loading @@ -56,7 +56,6 @@ import java.io.IOException; import java.io.PrintWriter; import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; import java.lang.ref.SoftReference; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Arrays; Loading Loading @@ -250,12 +249,6 @@ public class ResourcesManager { private final WeakHashMap<IBinder, ActivityResources> mActivityResourceReferences = new WeakHashMap<>(); /** * A cache of DisplayId, DisplayAdjustments to Display. */ private final ArrayMap<Pair<Integer, DisplayAdjustments>, SoftReference<Display>> mAdjustedDisplays = new ArrayMap<>(); /** * Callback implementation for handling updates to Resources objects. */ Loading Loading @@ -331,10 +324,12 @@ public class ResourcesManager { */ @VisibleForTesting protected @NonNull DisplayMetrics getDisplayMetrics(int displayId, DisplayAdjustments da) { DisplayMetrics dm = new DisplayMetrics(); final Display display = getAdjustedDisplay(displayId, da); if (display != null) { display.getMetrics(dm); final DisplayManagerGlobal displayManagerGlobal = DisplayManagerGlobal.getInstance(); final DisplayMetrics dm = new DisplayMetrics(); final DisplayInfo displayInfo = displayManagerGlobal != null ? displayManagerGlobal.getDisplayInfo(displayId) : null; if (displayInfo != null) { displayInfo.getAppMetrics(dm, da); } else { dm.setToDefaults(); } Loading Loading @@ -374,45 +369,6 @@ public class ResourcesManager { } } /** * Returns an adjusted {@link Display} object based on the inputs or null if display isn't * available. This method is only used within {@link ResourcesManager} to calculate display * metrics based on a set {@link DisplayAdjustments}. All other usages should instead call * {@link ResourcesManager#getAdjustedDisplay(int, Resources)}. * * @param displayId display Id. * @param displayAdjustments display adjustments. */ private Display getAdjustedDisplay(final int displayId, @Nullable DisplayAdjustments displayAdjustments) { final DisplayAdjustments displayAdjustmentsCopy = (displayAdjustments != null) ? new DisplayAdjustments(displayAdjustments) : new DisplayAdjustments(); final Pair<Integer, DisplayAdjustments> key = Pair.create(displayId, displayAdjustmentsCopy); SoftReference<Display> sd; synchronized (mLock) { sd = mAdjustedDisplays.get(key); } if (sd != null) { final Display display = sd.get(); if (display != null) { return display; } } final DisplayManagerGlobal dm = DisplayManagerGlobal.getInstance(); if (dm == null) { // may be null early in system startup return null; } final Display display = dm.getCompatibleDisplay(displayId, key.second); if (display != null) { synchronized (mLock) { mAdjustedDisplays.put(key, new SoftReference<>(display)); } } return display; } /** * Returns an adjusted {@link Display} object based on the inputs or null if display isn't * available. Loading Loading @@ -1332,9 +1288,6 @@ public class ResourcesManager { return false; } // Things might have changed in display manager, so clear the cached displays. mAdjustedDisplays.clear(); int changes = mResConfiguration.updateFrom(config); if (compat != null && (mResCompatibilityInfo == null || !mResCompatibilityInfo.equals(compat))) { Loading core/java/android/hardware/fingerprint/FingerprintManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -1376,7 +1376,7 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing return context.getString( com.android.internal.R.string.fingerprint_error_security_update_required); case FINGERPRINT_ERROR_BAD_CALIBARTION: context.getString( return context.getString( com.android.internal.R.string.fingerprint_error_bad_calibration); case FINGERPRINT_ERROR_VENDOR: { String[] msgArray = context.getResources().getStringArray( Loading core/java/android/os/FileBridge.java +9 −3 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import libcore.io.Streams; import java.io.FileDescriptor; import java.io.IOException; import java.io.OutputStream; import java.nio.ByteBuffer; import java.nio.ByteOrder; /** Loading Loading @@ -95,9 +96,11 @@ public class FileBridge extends Thread { @Override public void run() { final byte[] temp = new byte[8192]; final ByteBuffer tempBuffer = ByteBuffer.allocateDirect(8192); final byte[] temp = tempBuffer.hasArray() ? tempBuffer.array() : new byte[8192]; try { while (IoBridge.read(mServer.getFileDescriptor(), temp, 0, MSG_LENGTH) == MSG_LENGTH) { while (IoBridge.read(mServer.getFileDescriptor(), temp, 0, MSG_LENGTH) == MSG_LENGTH) { final int cmd = Memory.peekInt(temp, 0, ByteOrder.BIG_ENDIAN); if (cmd == CMD_WRITE) { // Shuttle data into local file Loading Loading @@ -138,7 +141,10 @@ public class FileBridge extends Thread { public static class FileBridgeOutputStream extends OutputStream { private final ParcelFileDescriptor mClientPfd; private final FileDescriptor mClient; private final byte[] mTemp = new byte[MSG_LENGTH]; private final ByteBuffer mTempBuffer = ByteBuffer.allocateDirect(MSG_LENGTH); private final byte[] mTemp = mTempBuffer.hasArray() ? mTempBuffer.array() : new byte[MSG_LENGTH]; public FileBridgeOutputStream(ParcelFileDescriptor clientPfd) { mClientPfd = clientPfd; Loading core/java/android/service/wallpaper/WallpaperService.java +2 −0 Original line number Diff line number Diff line Loading @@ -1570,6 +1570,7 @@ public abstract class WallpaperService extends Service { + page.getBitmap().getWidth() + " x " + page.getBitmap().getHeight()); } for (RectF area: page.getAreas()) { if (area == null) continue; RectF subArea = generateSubRect(area, pageIndx, numPages); Bitmap b = page.getBitmap(); int x = Math.round(b.getWidth() * subArea.left); Loading Loading @@ -1933,6 +1934,7 @@ public abstract class WallpaperService extends Service { } private boolean isValid(RectF area) { if (area == null) return false; boolean valid = area.bottom > area.top && area.left < area.right && LOCAL_COLOR_BOUNDS.contains(area); return valid; Loading core/java/android/view/contentcapture/MainContentCaptureSession.java +5 −3 Original line number Diff line number Diff line Loading @@ -323,9 +323,11 @@ public final class MainContentCaptureSession extends ContentCaptureSession { if (!hasStarted() && eventType != ContentCaptureEvent.TYPE_SESSION_STARTED && eventType != ContentCaptureEvent.TYPE_CONTEXT_UPDATED) { // TODO(b/120494182): comment when this could happen (dialogs?) if (sVerbose) { Log.v(TAG, "handleSendEvent(" + getDebugState() + ", " + ContentCaptureEvent.getTypeAsString(eventType) + "): dropping because session not started yet"); } return; } if (mDisabled.get()) { Loading Loading
core/java/android/app/ResourcesManager.java +7 −54 Original line number Diff line number Diff line Loading @@ -42,10 +42,10 @@ import android.util.ArrayMap; import android.util.ArraySet; import android.util.DisplayMetrics; import android.util.Log; import android.util.Pair; import android.util.Slog; import android.view.Display; import android.view.DisplayAdjustments; import android.view.DisplayInfo; import android.window.WindowContext; import com.android.internal.annotations.VisibleForTesting; Loading @@ -56,7 +56,6 @@ import java.io.IOException; import java.io.PrintWriter; import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; import java.lang.ref.SoftReference; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Arrays; Loading Loading @@ -250,12 +249,6 @@ public class ResourcesManager { private final WeakHashMap<IBinder, ActivityResources> mActivityResourceReferences = new WeakHashMap<>(); /** * A cache of DisplayId, DisplayAdjustments to Display. */ private final ArrayMap<Pair<Integer, DisplayAdjustments>, SoftReference<Display>> mAdjustedDisplays = new ArrayMap<>(); /** * Callback implementation for handling updates to Resources objects. */ Loading Loading @@ -331,10 +324,12 @@ public class ResourcesManager { */ @VisibleForTesting protected @NonNull DisplayMetrics getDisplayMetrics(int displayId, DisplayAdjustments da) { DisplayMetrics dm = new DisplayMetrics(); final Display display = getAdjustedDisplay(displayId, da); if (display != null) { display.getMetrics(dm); final DisplayManagerGlobal displayManagerGlobal = DisplayManagerGlobal.getInstance(); final DisplayMetrics dm = new DisplayMetrics(); final DisplayInfo displayInfo = displayManagerGlobal != null ? displayManagerGlobal.getDisplayInfo(displayId) : null; if (displayInfo != null) { displayInfo.getAppMetrics(dm, da); } else { dm.setToDefaults(); } Loading Loading @@ -374,45 +369,6 @@ public class ResourcesManager { } } /** * Returns an adjusted {@link Display} object based on the inputs or null if display isn't * available. This method is only used within {@link ResourcesManager} to calculate display * metrics based on a set {@link DisplayAdjustments}. All other usages should instead call * {@link ResourcesManager#getAdjustedDisplay(int, Resources)}. * * @param displayId display Id. * @param displayAdjustments display adjustments. */ private Display getAdjustedDisplay(final int displayId, @Nullable DisplayAdjustments displayAdjustments) { final DisplayAdjustments displayAdjustmentsCopy = (displayAdjustments != null) ? new DisplayAdjustments(displayAdjustments) : new DisplayAdjustments(); final Pair<Integer, DisplayAdjustments> key = Pair.create(displayId, displayAdjustmentsCopy); SoftReference<Display> sd; synchronized (mLock) { sd = mAdjustedDisplays.get(key); } if (sd != null) { final Display display = sd.get(); if (display != null) { return display; } } final DisplayManagerGlobal dm = DisplayManagerGlobal.getInstance(); if (dm == null) { // may be null early in system startup return null; } final Display display = dm.getCompatibleDisplay(displayId, key.second); if (display != null) { synchronized (mLock) { mAdjustedDisplays.put(key, new SoftReference<>(display)); } } return display; } /** * Returns an adjusted {@link Display} object based on the inputs or null if display isn't * available. Loading Loading @@ -1332,9 +1288,6 @@ public class ResourcesManager { return false; } // Things might have changed in display manager, so clear the cached displays. mAdjustedDisplays.clear(); int changes = mResConfiguration.updateFrom(config); if (compat != null && (mResCompatibilityInfo == null || !mResCompatibilityInfo.equals(compat))) { Loading
core/java/android/hardware/fingerprint/FingerprintManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -1376,7 +1376,7 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing return context.getString( com.android.internal.R.string.fingerprint_error_security_update_required); case FINGERPRINT_ERROR_BAD_CALIBARTION: context.getString( return context.getString( com.android.internal.R.string.fingerprint_error_bad_calibration); case FINGERPRINT_ERROR_VENDOR: { String[] msgArray = context.getResources().getStringArray( Loading
core/java/android/os/FileBridge.java +9 −3 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import libcore.io.Streams; import java.io.FileDescriptor; import java.io.IOException; import java.io.OutputStream; import java.nio.ByteBuffer; import java.nio.ByteOrder; /** Loading Loading @@ -95,9 +96,11 @@ public class FileBridge extends Thread { @Override public void run() { final byte[] temp = new byte[8192]; final ByteBuffer tempBuffer = ByteBuffer.allocateDirect(8192); final byte[] temp = tempBuffer.hasArray() ? tempBuffer.array() : new byte[8192]; try { while (IoBridge.read(mServer.getFileDescriptor(), temp, 0, MSG_LENGTH) == MSG_LENGTH) { while (IoBridge.read(mServer.getFileDescriptor(), temp, 0, MSG_LENGTH) == MSG_LENGTH) { final int cmd = Memory.peekInt(temp, 0, ByteOrder.BIG_ENDIAN); if (cmd == CMD_WRITE) { // Shuttle data into local file Loading Loading @@ -138,7 +141,10 @@ public class FileBridge extends Thread { public static class FileBridgeOutputStream extends OutputStream { private final ParcelFileDescriptor mClientPfd; private final FileDescriptor mClient; private final byte[] mTemp = new byte[MSG_LENGTH]; private final ByteBuffer mTempBuffer = ByteBuffer.allocateDirect(MSG_LENGTH); private final byte[] mTemp = mTempBuffer.hasArray() ? mTempBuffer.array() : new byte[MSG_LENGTH]; public FileBridgeOutputStream(ParcelFileDescriptor clientPfd) { mClientPfd = clientPfd; Loading
core/java/android/service/wallpaper/WallpaperService.java +2 −0 Original line number Diff line number Diff line Loading @@ -1570,6 +1570,7 @@ public abstract class WallpaperService extends Service { + page.getBitmap().getWidth() + " x " + page.getBitmap().getHeight()); } for (RectF area: page.getAreas()) { if (area == null) continue; RectF subArea = generateSubRect(area, pageIndx, numPages); Bitmap b = page.getBitmap(); int x = Math.round(b.getWidth() * subArea.left); Loading Loading @@ -1933,6 +1934,7 @@ public abstract class WallpaperService extends Service { } private boolean isValid(RectF area) { if (area == null) return false; boolean valid = area.bottom > area.top && area.left < area.right && LOCAL_COLOR_BOUNDS.contains(area); return valid; Loading
core/java/android/view/contentcapture/MainContentCaptureSession.java +5 −3 Original line number Diff line number Diff line Loading @@ -323,9 +323,11 @@ public final class MainContentCaptureSession extends ContentCaptureSession { if (!hasStarted() && eventType != ContentCaptureEvent.TYPE_SESSION_STARTED && eventType != ContentCaptureEvent.TYPE_CONTEXT_UPDATED) { // TODO(b/120494182): comment when this could happen (dialogs?) if (sVerbose) { Log.v(TAG, "handleSendEvent(" + getDebugState() + ", " + ContentCaptureEvent.getTypeAsString(eventType) + "): dropping because session not started yet"); } return; } if (mDisabled.get()) { Loading