summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmds/app_process/Android.bp1
-rw-r--r--cmds/statsd/Android.bp18
-rw-r--r--cmds/statsd/src/anomaly/AnomalyTracker.cpp3
-rw-r--r--cmds/statsd/src/metrics/metrics_manager_util.cpp4
-rw-r--r--core/java/android/bluetooth/BluetoothOutputStream.java12
-rw-r--r--core/java/android/bluetooth/BluetoothSocket.java14
-rw-r--r--core/java/android/net/LocalSocketImpl.java34
-rw-r--r--core/java/android/util/TimeUtils.java11
-rw-r--r--core/java/com/android/internal/os/ZygoteConnection.java4
-rw-r--r--core/java/com/android/internal/os/ZygoteInit.java2
-rw-r--r--core/res/res/xml/sms_short_codes.xml2
-rw-r--r--libs/hwui/service/GraphicsStatsService.cpp6
-rw-r--r--libs/protoutil/include/android/util/ProtoOutputStream.h1
-rw-r--r--libs/protoutil/src/ProtoOutputStream.cpp28
-rw-r--r--media/jni/Android.bp2
-rw-r--r--services/core/java/com/android/server/RecoverySystemService.java4
-rw-r--r--services/core/java/com/android/server/am/TEST_MAPPING3
-rw-r--r--services/core/java/com/android/server/audio/FocusRequester.java65
-rw-r--r--services/core/java/com/android/server/audio/MediaFocusControl.java20
-rw-r--r--services/core/java/com/android/server/audio/PlaybackActivityMonitor.java5
-rw-r--r--services/core/java/com/android/server/audio/PlayerFocusEnforcer.java23
-rw-r--r--services/core/java/com/android/server/connectivity/Vpn.java1
-rw-r--r--services/core/jni/Android.bp2
-rw-r--r--tests/net/Android.bp2
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",