diff options
24 files changed, 142 insertions, 125 deletions
diff --git a/cmds/app_process/Android.bp b/cmds/app_process/Android.bp index f92502370566..8be95e4659b4 100644 --- a/cmds/app_process/Android.bp +++ b/cmds/app_process/Android.bp @@ -22,7 +22,6 @@ cc_binary { "libcutils", "libdl", "libhidlbase", - "libhwbinder", "liblog", "libnativeloader", "libutils", diff --git a/cmds/statsd/Android.bp b/cmds/statsd/Android.bp index 6df0a8e14f6a..8944dedd6c96 100644 --- a/cmds/statsd/Android.bp +++ b/cmds/statsd/Android.bp @@ -132,8 +132,6 @@ cc_defaults { "libhardware", "libhardware_legacy", "libhidlbase", - "libhidltransport", - "libhwbinder", "android.frameworks.stats@1.0", "android.hardware.health@2.0", "android.hardware.power@1.0", @@ -209,6 +207,10 @@ cc_test { ], srcs: [ + // atom_field_options.proto needs field_options.proto, but that is + // not included in libprotobuf-cpp-lite, so compile it here. + ":libprotobuf-internal-protos", + "src/atom_field_options.proto", "src/atoms.proto", "src/stats_log.proto", @@ -270,11 +272,11 @@ cc_test { ], proto: { - type: "full", + type: "lite", include_dirs: ["external/protobuf/src"], }, - shared_libs: ["libprotobuf-cpp-full"], + shared_libs: ["libprotobuf-cpp-lite"], } @@ -287,6 +289,10 @@ cc_benchmark { defaults: ["statsd_defaults"], srcs: [ + // atom_field_options.proto needs field_options.proto, but that is + // not included in libprotobuf-cpp-lite, so compile it here. + ":libprotobuf-internal-protos", + "src/atom_field_options.proto", "src/atoms.proto", "src/stats_log.proto", @@ -301,7 +307,7 @@ cc_benchmark { ], proto: { - type: "full", + type: "lite", include_dirs: ["external/protobuf/src"], }, @@ -323,7 +329,7 @@ cc_benchmark { shared_libs: [ "libgtest_prod", "libstatslog", - "libprotobuf-cpp-full", + "libprotobuf-cpp-lite", ], } diff --git a/cmds/statsd/src/anomaly/AnomalyTracker.cpp b/cmds/statsd/src/anomaly/AnomalyTracker.cpp index d1dcb5df7838..7ace44eef564 100644 --- a/cmds/statsd/src/anomaly/AnomalyTracker.cpp +++ b/cmds/statsd/src/anomaly/AnomalyTracker.cpp @@ -24,6 +24,7 @@ #include "subscriber/IncidentdReporter.h" #include "subscriber/SubscriberReporter.h" +#include <inttypes.h> #include <statslog.h> #include <time.h> @@ -224,7 +225,7 @@ void AnomalyTracker::declareAnomaly(const int64_t& timestampNs, int64_t metricId } if (!mSubscriptions.empty()) { - ALOGI("An anomaly (%lld) %s has occurred! Informing subscribers.", + ALOGI("An anomaly (%" PRId64 ") %s has occurred! Informing subscribers.", mAlert.id(), key.toString().c_str()); informSubscribers(key, metricId, metricValue); } else { diff --git a/cmds/statsd/src/metrics/metrics_manager_util.cpp b/cmds/statsd/src/metrics/metrics_manager_util.cpp index dd32c08faba3..5cfb1239d30e 100644 --- a/cmds/statsd/src/metrics/metrics_manager_util.cpp +++ b/cmds/statsd/src/metrics/metrics_manager_util.cpp @@ -35,6 +35,8 @@ #include "stats_util.h" #include "statslog.h" +#include <inttypes.h> + using std::set; using std::string; using std::unordered_map; @@ -593,7 +595,7 @@ bool initMetrics(const ConfigKey& key, const StatsdConfig& config, const int64_t for (int i = 0; i < config.no_report_metric_size(); ++i) { const auto no_report_metric = config.no_report_metric(i); if (metricMap.find(no_report_metric) == metricMap.end()) { - ALOGW("no_report_metric %lld not exist", no_report_metric); + ALOGW("no_report_metric %" PRId64 " not exist", no_report_metric); return false; } noReportMetricIds.insert(no_report_metric); diff --git a/core/java/android/bluetooth/BluetoothOutputStream.java b/core/java/android/bluetooth/BluetoothOutputStream.java index dfec4e102fd4..a0aa2dee9d34 100644 --- a/core/java/android/bluetooth/BluetoothOutputStream.java +++ b/core/java/android/bluetooth/BluetoothOutputStream.java @@ -75,16 +75,4 @@ import java.io.OutputStream; } mSocket.write(b, offset, count); } - - /** - * Wait until the data in sending queue is emptied. A polling version - * for flush implementation. Use it to ensure the writing data afterwards will - * be packed in the new RFCOMM frame. - * - * @throws IOException if an i/o error occurs. - * @since Android 4.2.3 - */ - public void flush() throws IOException { - mSocket.flush(); - } } diff --git a/core/java/android/bluetooth/BluetoothSocket.java b/core/java/android/bluetooth/BluetoothSocket.java index a6e3153d6af7..760166bfcc5d 100644 --- a/core/java/android/bluetooth/BluetoothSocket.java +++ b/core/java/android/bluetooth/BluetoothSocket.java @@ -515,20 +515,6 @@ public final class BluetoothSocket implements Closeable { return mSocketIS.available(); } - /** - * Wait until the data in sending queue is emptied. A polling version - * for flush implementation. Used to ensure the writing data afterwards will - * be packed in new RFCOMM frame. - * - * @throws IOException if an i/o error occurs. - */ - @UnsupportedAppUsage - /*package*/ void flush() throws IOException { - if (mSocketOS == null) throw new IOException("flush is called on null OutputStream"); - if (VDBG) Log.d(TAG, "flush: " + mSocketOS); - mSocketOS.flush(); - } - /*package*/ int read(byte[] b, int offset, int length) throws IOException { int ret = 0; if (VDBG) Log.d(TAG, "read in: " + mSocketIS + " len: " + length); diff --git a/core/java/android/net/LocalSocketImpl.java b/core/java/android/net/LocalSocketImpl.java index fe7632c25445..b066a15106af 100644 --- a/core/java/android/net/LocalSocketImpl.java +++ b/core/java/android/net/LocalSocketImpl.java @@ -157,40 +157,6 @@ class LocalSocketImpl write_native(b, myFd); } } - - /** - * Wait until the data in sending queue is emptied. A polling version - * for flush implementation. - * @throws IOException - * if an i/o error occurs. - */ - @Override - public void flush() throws IOException { - FileDescriptor myFd = fd; - if (myFd == null) throw new IOException("socket closed"); - - // Loop until the output buffer is empty. - Int32Ref pending = new Int32Ref(0); - while (true) { - try { - // See linux/net/unix/af_unix.c - Os.ioctlInt(myFd, OsConstants.TIOCOUTQ, pending); - } catch (ErrnoException e) { - throw e.rethrowAsIOException(); - } - - if (pending.value <= 0) { - // The output buffer is empty. - break; - } - - try { - Thread.sleep(10); - } catch (InterruptedException ie) { - break; - } - } - } } private native int read_native(FileDescriptor fd) throws IOException; diff --git a/core/java/android/util/TimeUtils.java b/core/java/android/util/TimeUtils.java index 07cecd38620d..74cff205dabc 100644 --- a/core/java/android/util/TimeUtils.java +++ b/core/java/android/util/TimeUtils.java @@ -67,20 +67,19 @@ public class TimeUtils { * found. */ private static android.icu.util.TimeZone getIcuTimeZone( - int offset, boolean dst, long when, String country) { - if (country == null) { + int offsetMillis, boolean isDst, long whenMillis, String countryIso) { + if (countryIso == null) { return null; } android.icu.util.TimeZone bias = android.icu.util.TimeZone.getDefault(); CountryTimeZones countryTimeZones = - TimeZoneFinder.getInstance().lookupCountryTimeZones(country); + TimeZoneFinder.getInstance().lookupCountryTimeZones(countryIso); if (countryTimeZones == null) { return null; } - - CountryTimeZones.OffsetResult offsetResult = - countryTimeZones.lookupByOffsetWithBias(offset, dst, when, bias); + CountryTimeZones.OffsetResult offsetResult = countryTimeZones.lookupByOffsetWithBias( + offsetMillis, isDst, null /* dstOffsetMillis */, whenMillis, bias); return offsetResult != null ? offsetResult.mTimeZone : null; } diff --git a/core/java/com/android/internal/os/ZygoteConnection.java b/core/java/com/android/internal/os/ZygoteConnection.java index ad53eb9feeae..c24ffb0c329b 100644 --- a/core/java/com/android/internal/os/ZygoteConnection.java +++ b/core/java/com/android/internal/os/ZygoteConnection.java @@ -479,6 +479,10 @@ class ZygoteConnection { closeSocket(); + if (parsedArgs.mNiceName != null) { + Process.setArgV0(parsedArgs.mNiceName); + } + // End of the postFork event. Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); if (parsedArgs.mInvokeWith != null) { diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java index 9ca90e029404..ea4b63af117c 100644 --- a/core/java/com/android/internal/os/ZygoteInit.java +++ b/core/java/com/android/internal/os/ZygoteInit.java @@ -749,7 +749,7 @@ public class ZygoteInit { "--setuid=1000", "--setgid=1000", "--setgroups=1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1018,1021,1023," - + "1024,1032,1065,3001,3002,3003,3006,3007,3009,3010", + + "1024,1032,1065,3001,3002,3003,3006,3007,3009,3010,3011", "--capabilities=" + capabilities + "," + capabilities, "--nice-name=system_server", "--runtime-args", diff --git a/core/res/res/xml/sms_short_codes.xml b/core/res/res/xml/sms_short_codes.xml index a92c50059a2a..f71c8b0558cf 100644 --- a/core/res/res/xml/sms_short_codes.xml +++ b/core/res/res/xml/sms_short_codes.xml @@ -70,7 +70,7 @@ <shortcode country="ca" pattern="\\d{5,6}" premium="60999|88188|43030" standard="244444" /> <!-- Switzerland: 3-5 digits: http://www.swisscom.ch/fxres/kmu/thirdpartybusiness_code_of_conduct_en.pdf --> - <shortcode country="ch" pattern="[2-9]\\d{2,4}" premium="543|83111|30118" free="98765|30075" /> + <shortcode country="ch" pattern="[2-9]\\d{2,4}" premium="543|83111|30118" free="98765|30075|30047" /> <!-- Chile: 4-5 digits (not confirmed), known premium codes listed --> <shortcode country="cl" pattern="\\d{4,5}" free="9963|9240" /> diff --git a/libs/hwui/service/GraphicsStatsService.cpp b/libs/hwui/service/GraphicsStatsService.cpp index 8a16b2077f6f..f79c8d3351e0 100644 --- a/libs/hwui/service/GraphicsStatsService.cpp +++ b/libs/hwui/service/GraphicsStatsService.cpp @@ -234,9 +234,9 @@ void dumpAsTextToFd(protos::GraphicsStatsProto* proto, int fd) { return; } dprintf(fd, "\nPackage: %s", proto->package_name().c_str()); - dprintf(fd, "\nVersion: %lld", proto->version_code()); - dprintf(fd, "\nStats since: %lldns", proto->stats_start()); - dprintf(fd, "\nStats end: %lldns", proto->stats_end()); + dprintf(fd, "\nVersion: %" PRId64, proto->version_code()); + dprintf(fd, "\nStats since: %" PRId64 "ns", proto->stats_start()); + dprintf(fd, "\nStats end: %" PRId64 "ns", proto->stats_end()); auto summary = proto->summary(); dprintf(fd, "\nTotal frames rendered: %d", summary.total_frames()); dprintf(fd, "\nJanky frames: %d (%.2f%%)", summary.janky_frames(), diff --git a/libs/protoutil/include/android/util/ProtoOutputStream.h b/libs/protoutil/include/android/util/ProtoOutputStream.h index a6af4757a140..42bf03e6de05 100644 --- a/libs/protoutil/include/android/util/ProtoOutputStream.h +++ b/libs/protoutil/include/android/util/ProtoOutputStream.h @@ -98,6 +98,7 @@ public: bool write(uint64_t fieldId, double val); bool write(uint64_t fieldId, float val); bool write(uint64_t fieldId, int val); + bool write(uint64_t fieldId, long val); bool write(uint64_t fieldId, long long val); bool write(uint64_t fieldId, bool val); bool write(uint64_t fieldId, std::string val); diff --git a/libs/protoutil/src/ProtoOutputStream.cpp b/libs/protoutil/src/ProtoOutputStream.cpp index 6cfa357b580b..ea9b79a0353f 100644 --- a/libs/protoutil/src/ProtoOutputStream.cpp +++ b/libs/protoutil/src/ProtoOutputStream.cpp @@ -116,6 +116,34 @@ ProtoOutputStream::write(uint64_t fieldId, int val) } bool +ProtoOutputStream::write(uint64_t fieldId, long val) +{ + if (mCompact) return false; + const uint32_t id = (uint32_t)fieldId; + switch (fieldId & FIELD_TYPE_MASK) { + case FIELD_TYPE_DOUBLE: writeDoubleImpl(id, (double)val); break; + case FIELD_TYPE_FLOAT: writeFloatImpl(id, (float)val); break; + case FIELD_TYPE_INT64: writeInt64Impl(id, (long long)val); break; + case FIELD_TYPE_UINT64: writeUint64Impl(id, (uint64_t)val); break; + case FIELD_TYPE_INT32: writeInt32Impl(id, (int)val); break; + case FIELD_TYPE_FIXED64: writeFixed64Impl(id, (uint64_t)val); break; + case FIELD_TYPE_FIXED32: writeFixed32Impl(id, (uint32_t)val); break; + case FIELD_TYPE_UINT32: writeUint32Impl(id, (uint32_t)val); break; + case FIELD_TYPE_SFIXED32: writeSFixed32Impl(id, (int)val); break; + case FIELD_TYPE_SFIXED64: writeSFixed64Impl(id, (long long)val); break; + case FIELD_TYPE_SINT32: writeZigzagInt32Impl(id, (int)val); break; + case FIELD_TYPE_SINT64: writeZigzagInt64Impl(id, (long long)val); break; + case FIELD_TYPE_ENUM: writeEnumImpl(id, (int)val); break; + case FIELD_TYPE_BOOL: writeBoolImpl(id, val != 0); break; + default: + ALOGW("Field type %d is not supported when writing long val.", + (int)((fieldId & FIELD_TYPE_MASK) >> FIELD_TYPE_SHIFT)); + return false; + } + return true; +} + +bool ProtoOutputStream::write(uint64_t fieldId, long long val) { return internalWrite(fieldId, val, "long long"); diff --git a/media/jni/Android.bp b/media/jni/Android.bp index c49b1e496c66..84fe27de15ab 100644 --- a/media/jni/Android.bp +++ b/media/jni/Android.bp @@ -52,7 +52,6 @@ cc_library_shared { "libandroidfw", "libhidlallocatorutils", "libhidlbase", - "libhidltransport", "android.hardware.cas@1.0", "android.hardware.cas.native@1.0", "android.hidl.memory@1.0", @@ -147,7 +146,6 @@ cc_library_shared { "android.hidl.memory@1.0", "libhidlbase", "libhidlmemory", - "libhidltransport", "libbinderthreadstate", // MediaPlayer2 implementation diff --git a/services/core/java/com/android/server/RecoverySystemService.java b/services/core/java/com/android/server/RecoverySystemService.java index 1517887efec2..997178e1582b 100644 --- a/services/core/java/com/android/server/RecoverySystemService.java +++ b/services/core/java/com/android/server/RecoverySystemService.java @@ -25,15 +25,12 @@ import android.os.PowerManager; import android.os.RecoverySystem; import android.os.RemoteException; import android.os.SystemProperties; -import android.system.ErrnoException; -import android.system.Os; import android.util.Slog; import libcore.io.IoUtils; import java.io.DataInputStream; import java.io.DataOutputStream; -import java.io.File; import java.io.FileWriter; import java.io.IOException; @@ -288,7 +285,6 @@ public final class RecoverySystemService extends SystemService { byte[] cmdUtf8 = command.getBytes("UTF-8"); dos.writeInt(cmdUtf8.length); dos.write(cmdUtf8, 0, cmdUtf8.length); - dos.flush(); } // Read the status from the socket. diff --git a/services/core/java/com/android/server/am/TEST_MAPPING b/services/core/java/com/android/server/am/TEST_MAPPING index 2c2013c89bab..884e7a564e56 100644 --- a/services/core/java/com/android/server/am/TEST_MAPPING +++ b/services/core/java/com/android/server/am/TEST_MAPPING @@ -19,9 +19,6 @@ "exclude-filter": "android.app.cts.AlarmManagerTest#testSetRepeating" }, { - "exclude-filter": "android.app.cts.ServiceTest#testAppZygoteServices" - }, - { "exclude-filter": "android.app.cts.SystemFeaturesTest#testLocationFeatures" }, { diff --git a/services/core/java/com/android/server/audio/FocusRequester.java b/services/core/java/com/android/server/audio/FocusRequester.java index db55138e446d..bd129f70ee29 100644 --- a/services/core/java/com/android/server/audio/FocusRequester.java +++ b/services/core/java/com/android/server/audio/FocusRequester.java @@ -364,28 +364,8 @@ public class FocusRequester { // check enforcement by the framework boolean handled = false; - if (focusLoss == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK - && MediaFocusControl.ENFORCE_DUCKING - && frWinner != null) { - // candidate for enforcement by the framework - if (frWinner.mCallingUid != this.mCallingUid) { - if (!forceDuck && ((mGrantFlags - & AudioManager.AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS) != 0)) { - // the focus loser declared it would pause instead of duck, let it - // handle it (the framework doesn't pause for apps) - handled = false; - Log.v(TAG, "not ducking uid " + this.mCallingUid + " - flags"); - } else if (!forceDuck && (MediaFocusControl.ENFORCE_DUCKING_FOR_NEW && - this.getSdkTarget() <= MediaFocusControl.DUCKING_IN_APP_SDK_LEVEL)) - { - // legacy behavior, apps used to be notified when they should be ducking - handled = false; - Log.v(TAG, "not ducking uid " + this.mCallingUid + " - old SDK"); - } else { - handled = mFocusController.duckPlayers(frWinner, this, forceDuck); - } - } // else: the focus change is within the same app, so let the dispatching - // happen as if the framework was not involved. + if (frWinner != null) { + handled = frameworkHandleFocusLoss(focusLoss, frWinner, forceDuck); } if (handled) { @@ -415,6 +395,47 @@ public class FocusRequester { } } + /** + * Let the framework handle the focus loss if possible + * @param focusLoss + * @param frWinner + * @param forceDuck + * @return true if the framework handled the focus loss + */ + @GuardedBy("MediaFocusControl.mAudioFocusLock") + private boolean frameworkHandleFocusLoss(int focusLoss, @NonNull final FocusRequester frWinner, + boolean forceDuck) { + if (frWinner.mCallingUid == this.mCallingUid) { + // the focus change is within the same app, so let the dispatching + // happen as if the framework was not involved. + return false; + } + + if (focusLoss == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) { + if (!MediaFocusControl.ENFORCE_DUCKING) { + return false; + } + + // candidate for enforcement by the framework + if (!forceDuck && ((mGrantFlags + & AudioManager.AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS) != 0)) { + // the focus loser declared it would pause instead of duck, let it + // handle it (the framework doesn't pause for apps) + Log.v(TAG, "not ducking uid " + this.mCallingUid + " - flags"); + return false; + } + if (!forceDuck && (MediaFocusControl.ENFORCE_DUCKING_FOR_NEW + && this.getSdkTarget() <= MediaFocusControl.DUCKING_IN_APP_SDK_LEVEL)) { + // legacy behavior, apps used to be notified when they should be ducking + Log.v(TAG, "not ducking uid " + this.mCallingUid + " - old SDK"); + return false; + } + + return mFocusController.duckPlayers(frWinner, this, forceDuck); + } + return false; + } + int dispatchFocusChange(int focusChange) { if (mFocusDispatcher == null) { if (MediaFocusControl.DEBUG) { Log.e(TAG, "dispatchFocusChange: no focus dispatcher"); } diff --git a/services/core/java/com/android/server/audio/MediaFocusControl.java b/services/core/java/com/android/server/audio/MediaFocusControl.java index 5c93071fd551..c845981fea7e 100644 --- a/services/core/java/com/android/server/audio/MediaFocusControl.java +++ b/services/core/java/com/android/server/audio/MediaFocusControl.java @@ -105,12 +105,13 @@ public class MediaFocusControl implements PlayerFocusEnforcer { //================================================================= // PlayerFocusEnforcer implementation @Override - public boolean duckPlayers(FocusRequester winner, FocusRequester loser, boolean forceDuck) { + public boolean duckPlayers(@NonNull FocusRequester winner, @NonNull FocusRequester loser, + boolean forceDuck) { return mFocusEnforcer.duckPlayers(winner, loser, forceDuck); } @Override - public void unduckPlayers(FocusRequester winner) { + public void unduckPlayers(@NonNull FocusRequester winner) { mFocusEnforcer.unduckPlayers(winner); } @@ -742,7 +743,20 @@ public class MediaFocusControl implements PlayerFocusEnforcer { } } - /** @see AudioManager#requestAudioFocus(AudioManager.OnAudioFocusChangeListener, int, int, int) */ + /** @see AudioManager#requestAudioFocus(AudioManager.OnAudioFocusChangeListener, int, int, int) + * @param aa + * @param focusChangeHint + * @param cb + * @param fd + * @param clientId + * @param callingPackageName + * @param flags + * @param sdk + * @param forceDuck only true if + * {@link android.media.AudioFocusRequest.Builder#setFocusGain(int)} was set to true for + * accessibility. + * @return + */ protected int requestAudioFocus(@NonNull AudioAttributes aa, int focusChangeHint, IBinder cb, IAudioFocusDispatcher fd, @NonNull String clientId, @NonNull String callingPackageName, int flags, int sdk, boolean forceDuck) { diff --git a/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java b/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java index 3a25d980e97a..f8ba55bcd092 100644 --- a/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java +++ b/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java @@ -425,7 +425,8 @@ public final class PlaybackActivityMonitor private final DuckingManager mDuckingManager = new DuckingManager(); @Override - public boolean duckPlayers(FocusRequester winner, FocusRequester loser, boolean forceDuck) { + public boolean duckPlayers(@NonNull FocusRequester winner, @NonNull FocusRequester loser, + boolean forceDuck) { if (DEBUG) { Log.v(TAG, String.format("duckPlayers: uids winner=%d loser=%d", winner.getClientUid(), loser.getClientUid())); @@ -473,7 +474,7 @@ public final class PlaybackActivityMonitor } @Override - public void unduckPlayers(FocusRequester winner) { + public void unduckPlayers(@NonNull FocusRequester winner) { if (DEBUG) { Log.v(TAG, "unduckPlayers: uids winner=" + winner.getClientUid()); } synchronized (mPlayerLock) { mDuckingManager.unduckUid(winner.getClientUid(), mPlayers); diff --git a/services/core/java/com/android/server/audio/PlayerFocusEnforcer.java b/services/core/java/com/android/server/audio/PlayerFocusEnforcer.java index 3c834daf3c8a..89e7b7828b15 100644 --- a/services/core/java/com/android/server/audio/PlayerFocusEnforcer.java +++ b/services/core/java/com/android/server/audio/PlayerFocusEnforcer.java @@ -16,6 +16,8 @@ package com.android.server.audio; +import android.annotation.NonNull; + public interface PlayerFocusEnforcer { /** @@ -25,11 +27,24 @@ public interface PlayerFocusEnforcer { * @param loser * @return */ - public boolean duckPlayers(FocusRequester winner, FocusRequester loser, boolean forceDuck); + boolean duckPlayers(@NonNull FocusRequester winner, @NonNull FocusRequester loser, + boolean forceDuck); - public void unduckPlayers(FocusRequester winner); + /** + * Unduck the players that had been ducked with + * {@link #duckPlayers(FocusRequester, FocusRequester, boolean)} + * @param winner + */ + void unduckPlayers(@NonNull FocusRequester winner); - public void mutePlayersForCall(int[] usagesToMute); + /** + * Mute players at the beginning of a call + * @param usagesToMute array of {@link android.media.AudioAttributes} usages to mute + */ + void mutePlayersForCall(int[] usagesToMute); - public void unmutePlayersForCall(); + /** + * Unmute players at the end of a call + */ + void unmutePlayersForCall(); }
\ No newline at end of file diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java index 1bd29e51b8e2..063ad75fe7e2 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java @@ -2082,7 +2082,6 @@ public class Vpn { } out.write(0xFF); out.write(0xFF); - out.flush(); // Wait for End-of-File. InputStream in = mSockets[i].getInputStream(); diff --git a/services/core/jni/Android.bp b/services/core/jni/Android.bp index 621849869590..0482069e1777 100644 --- a/services/core/jni/Android.bp +++ b/services/core/jni/Android.bp @@ -98,8 +98,6 @@ cc_defaults { "libGLESv2", "libnetutils", "libhidlbase", - "libhidltransport", - "libhwbinder", "libutils", "libhwui", "libbpf_android", diff --git a/tests/net/Android.bp b/tests/net/Android.bp index 502aa97bfc68..e91abb6c4a44 100644 --- a/tests/net/Android.bp +++ b/tests/net/Android.bp @@ -20,8 +20,6 @@ java_defaults { "libdl_android", "libhidl-gen-utils", "libhidlbase", - "libhidltransport", - "libhwbinder", "libjsoncpp", "liblog", "liblzma", |