Merge "Camera: Synchronize access to torch status map" into pi-dev am: 0c4ef750ac
am: 91c133891a

Change-Id: I09298dedda14324feb80c5245ea394c4d6e28ceb
diff --git a/cmds/stagefright/stagefright.cpp b/cmds/stagefright/stagefright.cpp
index 936733d..bd25cee 100644
--- a/cmds/stagefright/stagefright.cpp
+++ b/cmds/stagefright/stagefright.cpp
@@ -579,12 +579,12 @@
                 break;
             }
 
+            CHECK(buffer != NULL);
+
             if (buffer->range_length() > 0) {
                 break;
             }
 
-            CHECK(buffer != NULL);
-
             buffer->release();
             buffer = NULL;
         }
diff --git a/media/OWNERS b/media/OWNERS
index d49eb8d..1f687a2 100644
--- a/media/OWNERS
+++ b/media/OWNERS
@@ -15,5 +15,6 @@
 rachad@google.com
 rago@google.com
 robertshih@google.com
+taklee@google.com
 wjia@google.com
 wonsik@google.com
diff --git a/media/libaudioclient/include/media/AudioParameter.h b/media/libaudioclient/include/media/AudioParameter.h
index 59ac1db..8d2a2cf 100644
--- a/media/libaudioclient/include/media/AudioParameter.h
+++ b/media/libaudioclient/include/media/AudioParameter.h
@@ -64,6 +64,9 @@
     static const char * const keyPresentationId;
     static const char * const keyProgramId;
 
+    //  keyAudioLanguagePreferred: Preferred audio language
+    static const char * const keyAudioLanguagePreferred;
+
     //  keyStreamConnect / Disconnect: value is an int in audio_devices_t
     static const char * const keyStreamConnect;
     static const char * const keyStreamDisconnect;
diff --git a/media/libmedia/AudioParameter.cpp b/media/libmedia/AudioParameter.cpp
index cb0e927..190e46f 100644
--- a/media/libmedia/AudioParameter.cpp
+++ b/media/libmedia/AudioParameter.cpp
@@ -36,6 +36,8 @@
 const char * const AudioParameter::keyHwAvSync = AUDIO_PARAMETER_HW_AV_SYNC;
 const char * const AudioParameter::keyPresentationId = AUDIO_PARAMETER_STREAM_PRESENTATION_ID;
 const char * const AudioParameter::keyProgramId = AUDIO_PARAMETER_STREAM_PROGRAM_ID;
+const char * const AudioParameter::keyAudioLanguagePreferred =
+        AUDIO_PARAMETER_KEY_AUDIO_LANGUAGE_PREFERRED;
 const char * const AudioParameter::keyMonoOutput = AUDIO_PARAMETER_MONO_OUTPUT;
 const char * const AudioParameter::keyStreamHwAvSync = AUDIO_PARAMETER_STREAM_HW_AV_SYNC;
 const char * const AudioParameter::keyStreamConnect = AUDIO_PARAMETER_DEVICE_CONNECT;
diff --git a/media/libmedia/exports.lds b/media/libmedia/exports.lds
index b09fbce..904a7f7 100644
--- a/media/libmedia/exports.lds
+++ b/media/libmedia/exports.lds
@@ -3,5 +3,5 @@
         *;
     local:
         _ZN7android13MidiIoWrapper*;
-        _ZTVN7android13MidiIoWrapperE;
+        _ZTVN7android13MidiIoWrapperE*;
 };
diff --git a/media/libstagefright/StagefrightMediaScanner.cpp b/media/libstagefright/StagefrightMediaScanner.cpp
index 4ff2bfe..e010b3e 100644
--- a/media/libstagefright/StagefrightMediaScanner.cpp
+++ b/media/libstagefright/StagefrightMediaScanner.cpp
@@ -40,7 +40,8 @@
         ".mpeg", ".ogg", ".mid", ".smf", ".imy", ".wma", ".aac",
         ".wav", ".amr", ".midi", ".xmf", ".rtttl", ".rtx", ".ota",
         ".mkv", ".mka", ".webm", ".ts", ".fl", ".flac", ".mxmf",
-        ".avi", ".mpeg", ".mpg", ".awb", ".mpga", ".mov"
+        ".avi", ".mpeg", ".mpg", ".awb", ".mpga", ".mov",
+        ".m4v", ".oga"
     };
     static const size_t kNumValidExtensions =
         sizeof(kValidExtensions) / sizeof(kValidExtensions[0]);
@@ -62,6 +63,11 @@
     client.setLocale(locale());
     client.beginFile();
     MediaScanResult result = processFileInternal(path, mimeType, client);
+    ALOGV("result: %d", result);
+    if (mimeType == NULL && result != MEDIA_SCAN_RESULT_OK) {
+        ALOGW("media scan failed for %s", path);
+        client.setMimeType("application/octet-stream");
+    }
     client.endFile();
     return result;
 }
diff --git a/media/libstagefright/exports.lds b/media/libstagefright/exports.lds
index 59dfc49..aabc233 100644
--- a/media/libstagefright/exports.lds
+++ b/media/libstagefright/exports.lds
@@ -9,51 +9,51 @@
         _ZN7android16SoftwareRenderer*;
         ABGRToARGB;
         ABGRToI420;
-        ABGRToUVRow_Any_NEON;
+        ABGRToUVRow_Any_NEON*;
         ABGRToUVRow_C;
-        ABGRToUVRow_NEON;
-        ABGRToYRow_Any_NEON;
+        ABGRToUVRow_NEON*;
+        ABGRToYRow_Any_NEON*;
         ABGRToYRow_C;
-        ABGRToYRow_NEON;
+        ABGRToYRow_NEON*;
         Android420ToI420;
         ARGB1555ToARGB;
-        ARGB1555ToARGBRow_Any_NEON;
+        ARGB1555ToARGBRow_Any_NEON*;
         ARGB1555ToARGBRow_C;
-        ARGB1555ToARGBRow_NEON;
+        ARGB1555ToARGBRow_NEON*;
         ARGB1555ToI420;
-        ARGB1555ToUVRow_Any_NEON;
+        ARGB1555ToUVRow_Any_NEON*;
         ARGB1555ToUVRow_C;
-        ARGB1555ToUVRow_NEON;
-        ARGB1555ToYRow_Any_NEON;
+        ARGB1555ToUVRow_NEON*;
+        ARGB1555ToYRow_Any_NEON*;
         ARGB1555ToYRow_C;
-        ARGB1555ToYRow_NEON;
+        ARGB1555ToYRow_NEON*;
         ARGB4444ToARGB;
-        ARGB4444ToARGBRow_Any_NEON;
+        ARGB4444ToARGBRow_Any_NEON*;
         ARGB4444ToARGBRow_C;
-        ARGB4444ToARGBRow_NEON;
+        ARGB4444ToARGBRow_NEON*;
         ARGB4444ToI420;
-        ARGB4444ToUVRow_Any_NEON;
+        ARGB4444ToUVRow_Any_NEON*;
         ARGB4444ToUVRow_C;
-        ARGB4444ToUVRow_NEON;
-        ARGB4444ToYRow_Any_NEON;
+        ARGB4444ToUVRow_NEON*;
+        ARGB4444ToYRow_Any_NEON*;
         ARGB4444ToYRow_C;
-        ARGB4444ToYRow_NEON;
+        ARGB4444ToYRow_NEON*;
         ARGBAdd;
-        ARGBAddRow_Any_NEON;
+        ARGBAddRow_Any_NEON*;
         ARGBAddRow_C;
-        ARGBAddRow_NEON;
+        ARGBAddRow_NEON*;
         ARGBAffineRow_C;
         ARGBAttenuate;
-        ARGBAttenuateRow_Any_NEON;
+        ARGBAttenuateRow_Any_NEON*;
         ARGBAttenuateRow_C;
-        ARGBAttenuateRow_NEON;
+        ARGBAttenuateRow_NEON*;
         ARGBBlend;
         ARGBBlendRow_C;
-        ARGBBlendRow_NEON;
+        ARGBBlendRow_NEON*;
         ARGBBlur;
         ARGBColorMatrix;
         ARGBColorMatrixRow_C;
-        ARGBColorMatrixRow_NEON;
+        ARGBColorMatrixRow_NEON*;
         ARGBColorTable;
         ARGBColorTableRow_C;
         ARGBComputeCumulativeSum;
@@ -63,97 +63,97 @@
         ARGBCopyYToAlpha;
         ARGBCopyYToAlphaRow_C;
         ARGBExtractAlpha;
-        ARGBExtractAlphaRow_Any_NEON;
+        ARGBExtractAlphaRow_Any_NEON*;
         ARGBExtractAlphaRow_C;
-        ARGBExtractAlphaRow_NEON;
+        ARGBExtractAlphaRow_NEON*;
         ARGBGray;
         ARGBGrayRow_C;
-        ARGBGrayRow_NEON;
+        ARGBGrayRow_NEON*;
         ARGBGrayTo;
         ARGBInterpolate;
         ARGBLumaColorTable;
         ARGBLumaColorTableRow_C;
         ARGBMirror;
-        ARGBMirrorRow_Any_NEON;
+        ARGBMirrorRow_Any_NEON*;
         ARGBMirrorRow_C;
-        ARGBMirrorRow_NEON;
+        ARGBMirrorRow_NEON*;
         ARGBMultiply;
-        ARGBMultiplyRow_Any_NEON;
+        ARGBMultiplyRow_Any_NEON*;
         ARGBMultiplyRow_C;
-        ARGBMultiplyRow_NEON;
+        ARGBMultiplyRow_NEON*;
         ARGBPolynomial;
         ARGBPolynomialRow_C;
         ARGBQuantize;
         ARGBQuantizeRow_C;
-        ARGBQuantizeRow_NEON;
+        ARGBQuantizeRow_NEON*;
         ARGBRect;
         ARGBSepia;
         ARGBSepiaRow_C;
-        ARGBSepiaRow_NEON;
-        ARGBSetRow_Any_NEON;
+        ARGBSepiaRow_NEON*;
+        ARGBSetRow_Any_NEON*;
         ARGBSetRow_C;
-        ARGBSetRow_NEON;
+        ARGBSetRow_NEON*;
         ARGBShade;
         ARGBShadeRow_C;
-        ARGBShadeRow_NEON;
+        ARGBShadeRow_NEON*;
         ARGBShuffle;
-        ARGBShuffleRow_Any_NEON;
+        ARGBShuffleRow_Any_NEON*;
         ARGBShuffleRow_C;
-        ARGBShuffleRow_NEON;
+        ARGBShuffleRow_NEON*;
         ARGBSobel;
         ARGBSobelToPlane;
         ARGBSobelXY;
         ARGBSubtract;
-        ARGBSubtractRow_Any_NEON;
+        ARGBSubtractRow_Any_NEON*;
         ARGBSubtractRow_C;
-        ARGBSubtractRow_NEON;
+        ARGBSubtractRow_NEON*;
         ARGBToABGR;
-        ARGBToARGB1555Row_Any_NEON;
+        ARGBToARGB1555Row_Any_NEON*;
         ARGBToARGB1555Row_C;
-        ARGBToARGB1555Row_NEON;
-        ARGBToARGB4444Row_Any_NEON;
+        ARGBToARGB1555Row_NEON*;
+        ARGBToARGB4444Row_Any_NEON*;
         ARGBToARGB4444Row_C;
-        ARGBToARGB4444Row_NEON;
+        ARGBToARGB4444Row_NEON*;
         ARGBToBGRA;
         ARGBToI420;
-        ARGBToRAWRow_Any_NEON;
+        ARGBToRAWRow_Any_NEON*;
         ARGBToRAWRow_C;
-        ARGBToRAWRow_NEON;
-        ARGBToRGB24Row_Any_NEON;
+        ARGBToRAWRow_NEON*;
+        ARGBToRGB24Row_Any_NEON*;
         ARGBToRGB24Row_C;
-        ARGBToRGB24Row_NEON;
-        ARGBToRGB565DitherRow_Any_NEON;
+        ARGBToRGB24Row_NEON*;
+        ARGBToRGB565DitherRow_Any_NEON*;
         ARGBToRGB565DitherRow_C;
-        ARGBToRGB565DitherRow_NEON;
-        ARGBToRGB565Row_Any_NEON;
+        ARGBToRGB565DitherRow_NEON*;
+        ARGBToRGB565Row_Any_NEON*;
         ARGBToRGB565Row_C;
-        ARGBToRGB565Row_NEON;
-        ARGBToUV444Row_Any_NEON;
+        ARGBToRGB565Row_NEON*;
+        ARGBToUV444Row_Any_NEON*;
         ARGBToUV444Row_C;
-        ARGBToUV444Row_NEON;
-        ARGBToUVJRow_Any_NEON;
+        ARGBToUV444Row_NEON*;
+        ARGBToUVJRow_Any_NEON*;
         ARGBToUVJRow_C;
-        ARGBToUVJRow_NEON;
-        ARGBToUVRow_Any_NEON;
+        ARGBToUVJRow_NEON*;
+        ARGBToUVRow_Any_NEON*;
         ARGBToUVRow_C;
-        ARGBToUVRow_NEON;
-        ARGBToYJRow_Any_NEON;
+        ARGBToUVRow_NEON*;
+        ARGBToYJRow_Any_NEON*;
         ARGBToYJRow_C;
-        ARGBToYJRow_NEON;
-        ARGBToYRow_Any_NEON;
+        ARGBToYJRow_NEON*;
+        ARGBToYRow_Any_NEON*;
         ARGBToYRow_C;
-        ARGBToYRow_NEON;
+        ARGBToYRow_NEON*;
         ARGBUnattenuate;
         ARGBUnattenuateRow_C;
-        ArmCpuCaps;
+        ArmCpuCaps*;
         BGRAToARGB;
         BGRAToI420;
-        BGRAToUVRow_Any_NEON;
+        BGRAToUVRow_Any_NEON*;
         BGRAToUVRow_C;
-        BGRAToUVRow_NEON;
-        BGRAToYRow_Any_NEON;
+        BGRAToUVRow_NEON*;
+        BGRAToYRow_Any_NEON*;
         BGRAToYRow_C;
-        BGRAToYRow_NEON;
+        BGRAToYRow_NEON*;
         BlendPlane;
         BlendPlaneRow_C;
         CanonicalFourCC;
@@ -162,11 +162,11 @@
         CopyPlane;
         CopyPlane_16;
         CopyRow_16_C;
-        CopyRow_Any_NEON;
+        CopyRow_Any_NEON*;
         CopyRow_C;
-        CopyRow_NEON;
-        CpuId;
-        cpu_info_;
+        CopyRow_NEON*;
+        CpuId*;
+        cpu_info_*;
         CumulativeSumToAverageRow_C;
         FixedDiv1_C;
         FixedDiv_C;
@@ -176,18 +176,18 @@
         H420ToARGB;
         H422ToABGR;
         H422ToARGB;
-        HalfFloat1Row_Any_NEON;
-        HalfFloat1Row_NEON;
+        HalfFloat1Row_Any_NEON*;
+        HalfFloat1Row_NEON*;
         HalfFloatPlane;
-        HalfFloatRow_Any_NEON;
+        HalfFloatRow_Any_NEON*;
         HalfFloatRow_C;
-        HalfFloatRow_NEON;
+        HalfFloatRow_NEON*;
         I400Copy;
         I400Mirror;
         I400ToARGB;
-        I400ToARGBRow_Any_NEON;
+        I400ToARGBRow_Any_NEON*;
         I400ToARGBRow_C;
-        I400ToARGBRow_NEON;
+        I400ToARGBRow_NEON*;
         I400ToI400;
         I400ToI420;
         I420AlphaToABGR;
@@ -216,59 +216,59 @@
         I420ToRGBA;
         I420ToUYVY;
         I420ToYUY2;
-        I422AlphaToARGBRow_Any_NEON;
+        I422AlphaToARGBRow_Any_NEON*;
         I422AlphaToARGBRow_C;
-        I422AlphaToARGBRow_NEON;
+        I422AlphaToARGBRow_NEON*;
         I422Copy;
         I422ToABGR;
         I422ToARGB;
-        I422ToARGB1555Row_Any_NEON;
+        I422ToARGB1555Row_Any_NEON*;
         I422ToARGB1555Row_C;
-        I422ToARGB1555Row_NEON;
-        I422ToARGB4444Row_Any_NEON;
+        I422ToARGB1555Row_NEON*;
+        I422ToARGB4444Row_Any_NEON*;
         I422ToARGB4444Row_C;
-        I422ToARGB4444Row_NEON;
-        I422ToARGBRow_Any_NEON;
+        I422ToARGB4444Row_NEON*;
+        I422ToARGBRow_Any_NEON*;
         I422ToARGBRow_C;
-        I422ToARGBRow_NEON;
+        I422ToARGBRow_NEON*;
         I422ToBGRA;
         I422ToI420;
-        I422ToRGB24Row_Any_NEON;
+        I422ToRGB24Row_Any_NEON*;
         I422ToRGB24Row_C;
-        I422ToRGB24Row_NEON;
+        I422ToRGB24Row_NEON*;
         I422ToRGB565;
-        I422ToRGB565Row_Any_NEON;
+        I422ToRGB565Row_Any_NEON*;
         I422ToRGB565Row_C;
-        I422ToRGB565Row_NEON;
+        I422ToRGB565Row_NEON*;
         I422ToRGBA;
-        I422ToRGBARow_Any_NEON;
+        I422ToRGBARow_Any_NEON*;
         I422ToRGBARow_C;
-        I422ToRGBARow_NEON;
+        I422ToRGBARow_NEON*;
         I422ToUYVY;
-        I422ToUYVYRow_Any_NEON;
+        I422ToUYVYRow_Any_NEON*;
         I422ToUYVYRow_C;
-        I422ToUYVYRow_NEON;
+        I422ToUYVYRow_NEON*;
         I422ToYUY2;
-        I422ToYUY2Row_Any_NEON;
+        I422ToYUY2Row_Any_NEON*;
         I422ToYUY2Row_C;
-        I422ToYUY2Row_NEON;
+        I422ToYUY2Row_NEON*;
         I444Copy;
         I444ToABGR;
         I444ToARGB;
-        I444ToARGBRow_Any_NEON;
+        I444ToARGBRow_Any_NEON*;
         I444ToARGBRow_C;
-        I444ToARGBRow_NEON;
+        I444ToARGBRow_NEON*;
         I444ToI420;
-        InitCpuFlags;
+        InitCpuFlags*;
         InterpolatePlane;
         InterpolateRow_16_C;
-        InterpolateRow_Any_NEON;
+        InterpolateRow_Any_NEON*;
         InterpolateRow_C;
-        InterpolateRow_NEON;
+        InterpolateRow_NEON*;
         J400ToARGB;
-        J400ToARGBRow_Any_NEON;
+        J400ToARGBRow_Any_NEON*;
         J400ToARGBRow_C;
-        J400ToARGBRow_NEON;
+        J400ToARGBRow_NEON*;
         J420ToABGR;
         J420ToARGB;
         J422ToABGR;
@@ -282,107 +282,107 @@
         kYvuJPEGConstants;
         M420ToARGB;
         M420ToI420;
-        MaskCpuFlags;
+        MaskCpuFlags*;
         MergeUVPlane;
-        MergeUVRow_Any_NEON;
+        MergeUVRow_Any_NEON*;
         MergeUVRow_C;
-        MergeUVRow_NEON;
-        MipsCpuCaps;
+        MergeUVRow_NEON*;
+        MipsCpuCaps*;
         MirrorPlane;
-        MirrorRow_Any_NEON;
+        MirrorRow_Any_NEON*;
         MirrorRow_C;
-        MirrorRow_NEON;
+        MirrorRow_NEON*;
         MirrorUVRow_C;
-        MirrorUVRow_NEON;
-        NV12ToARGBRow_Any_NEON;
+        MirrorUVRow_NEON*;
+        NV12ToARGBRow_Any_NEON*;
         NV12ToARGBRow_C;
-        NV12ToARGBRow_NEON;
+        NV12ToARGBRow_NEON*;
         NV12ToI420;
         NV12ToRGB565;
-        NV12ToRGB565Row_Any_NEON;
+        NV12ToRGB565Row_Any_NEON*;
         NV12ToRGB565Row_C;
-        NV12ToRGB565Row_NEON;
+        NV12ToRGB565Row_NEON*;
         NV21ToARGB;
-        NV21ToARGBRow_Any_NEON;
+        NV21ToARGBRow_Any_NEON*;
         NV21ToARGBRow_C;
-        NV21ToARGBRow_NEON;
+        NV21ToARGBRow_NEON*;
         NV21ToI420;
         RAWToARGB;
-        RAWToARGBRow_Any_NEON;
+        RAWToARGBRow_Any_NEON*;
         RAWToARGBRow_C;
-        RAWToARGBRow_NEON;
+        RAWToARGBRow_NEON*;
         RAWToI420;
         RAWToRGB24;
-        RAWToRGB24Row_Any_NEON;
+        RAWToRGB24Row_Any_NEON*;
         RAWToRGB24Row_C;
-        RAWToRGB24Row_NEON;
-        RAWToUVRow_Any_NEON;
+        RAWToRGB24Row_NEON*;
+        RAWToUVRow_Any_NEON*;
         RAWToUVRow_C;
-        RAWToUVRow_NEON;
-        RAWToYRow_Any_NEON;
+        RAWToUVRow_NEON*;
+        RAWToYRow_Any_NEON*;
         RAWToYRow_C;
-        RAWToYRow_NEON;
+        RAWToYRow_NEON*;
         RGB24ToARGB;
-        RGB24ToARGBRow_Any_NEON;
+        RGB24ToARGBRow_Any_NEON*;
         RGB24ToARGBRow_C;
-        RGB24ToARGBRow_NEON;
+        RGB24ToARGBRow_NEON*;
         RGB24ToI420;
-        RGB24ToUVRow_Any_NEON;
+        RGB24ToUVRow_Any_NEON*;
         RGB24ToUVRow_C;
-        RGB24ToUVRow_NEON;
-        RGB24ToYRow_Any_NEON;
+        RGB24ToUVRow_NEON*;
+        RGB24ToYRow_Any_NEON*;
         RGB24ToYRow_C;
-        RGB24ToYRow_NEON;
+        RGB24ToYRow_NEON*;
         RGB565ToARGB;
-        RGB565ToARGBRow_Any_NEON;
+        RGB565ToARGBRow_Any_NEON*;
         RGB565ToARGBRow_C;
-        RGB565ToARGBRow_NEON;
+        RGB565ToARGBRow_NEON*;
         RGB565ToI420;
-        RGB565ToUVRow_Any_NEON;
+        RGB565ToUVRow_Any_NEON*;
         RGB565ToUVRow_C;
-        RGB565ToUVRow_NEON;
-        RGB565ToYRow_Any_NEON;
+        RGB565ToUVRow_NEON*;
+        RGB565ToYRow_Any_NEON*;
         RGB565ToYRow_C;
-        RGB565ToYRow_NEON;
+        RGB565ToYRow_NEON*;
         RGBAToARGB;
         RGBAToI420;
-        RGBAToUVRow_Any_NEON;
+        RGBAToUVRow_Any_NEON*;
         RGBAToUVRow_C;
-        RGBAToUVRow_NEON;
-        RGBAToYRow_Any_NEON;
+        RGBAToUVRow_NEON*;
+        RGBAToYRow_Any_NEON*;
         RGBAToYRow_C;
-        RGBAToYRow_NEON;
+        RGBAToYRow_NEON*;
         RGBColorMatrix;
         RGBColorTable;
         RGBColorTableRow_C;
         Scale;
         ScaleAddRow_16_C;
         ScaleAddRow_C;
-        ScaleAddRows_NEON;
+        ScaleAddRows_NEON*;
         ScaleARGBCols64_C;
-        ScaleARGBCols_Any_NEON;
+        ScaleARGBCols_Any_NEON*;
         ScaleARGBCols_C;
-        ScaleARGBCols_NEON;
+        ScaleARGBCols_NEON*;
         ScaleARGBColsUp2_C;
         ScaleARGBFilterCols64_C;
-        ScaleARGBFilterCols_Any_NEON;
+        ScaleARGBFilterCols_Any_NEON*;
         ScaleARGBFilterCols_C;
-        ScaleARGBFilterCols_NEON;
-        ScaleARGBRowDown2_Any_NEON;
-        ScaleARGBRowDown2Box_Any_NEON;
+        ScaleARGBFilterCols_NEON*;
+        ScaleARGBRowDown2_Any_NEON*;
+        ScaleARGBRowDown2Box_Any_NEON*;
         ScaleARGBRowDown2Box_C;
-        ScaleARGBRowDown2Box_NEON;
+        ScaleARGBRowDown2Box_NEON*;
         ScaleARGBRowDown2_C;
-        ScaleARGBRowDown2Linear_Any_NEON;
+        ScaleARGBRowDown2Linear_Any_NEON*;
         ScaleARGBRowDown2Linear_C;
-        ScaleARGBRowDown2Linear_NEON;
-        ScaleARGBRowDown2_NEON;
-        ScaleARGBRowDownEven_Any_NEON;
-        ScaleARGBRowDownEvenBox_Any_NEON;
+        ScaleARGBRowDown2Linear_NEON*;
+        ScaleARGBRowDown2_NEON*;
+        ScaleARGBRowDownEven_Any_NEON*;
+        ScaleARGBRowDownEvenBox_Any_NEON*;
         ScaleARGBRowDownEvenBox_C;
-        ScaleARGBRowDownEvenBox_NEON;
+        ScaleARGBRowDownEvenBox_NEON*;
         ScaleARGBRowDownEven_C;
-        ScaleARGBRowDownEven_NEON;
+        ScaleARGBRowDownEven_NEON*;
         ScaleCols_16_C;
         ScaleCols_C;
         ScaleColsUp2_16_C;
@@ -390,11 +390,11 @@
         ScaleFilterCols_16_C;
         ScaleFilterCols64_16_C;
         ScaleFilterCols64_C;
-        ScaleFilterCols_Any_NEON;
+        ScaleFilterCols_Any_NEON*;
         ScaleFilterCols_C;
-        ScaleFilterCols_NEON;
+        ScaleFilterCols_NEON*;
         ScaleFilterReduce;
-        ScaleFilterRows_NEON;
+        ScaleFilterRows_NEON*;
         ScaleOffset;
         ScalePlane;
         ScalePlane_16;
@@ -405,104 +405,104 @@
         ScalePlaneVertical;
         ScalePlaneVertical_16;
         ScaleRowDown2_16_C;
-        ScaleRowDown2_Any_NEON;
+        ScaleRowDown2_Any_NEON*;
         ScaleRowDown2Box_16_C;
-        ScaleRowDown2Box_Any_NEON;
+        ScaleRowDown2Box_Any_NEON*;
         ScaleRowDown2Box_C;
-        ScaleRowDown2Box_NEON;
+        ScaleRowDown2Box_NEON*;
         ScaleRowDown2Box_Odd_C;
-        ScaleRowDown2Box_Odd_NEON;
+        ScaleRowDown2Box_Odd_NEON*;
         ScaleRowDown2_C;
         ScaleRowDown2Linear_16_C;
-        ScaleRowDown2Linear_Any_NEON;
+        ScaleRowDown2Linear_Any_NEON*;
         ScaleRowDown2Linear_C;
-        ScaleRowDown2Linear_NEON;
-        ScaleRowDown2_NEON;
+        ScaleRowDown2Linear_NEON*;
+        ScaleRowDown2_NEON*;
         ScaleRowDown34_0_Box_16_C;
-        ScaleRowDown34_0_Box_Any_NEON;
+        ScaleRowDown34_0_Box_Any_NEON*;
         ScaleRowDown34_0_Box_C;
-        ScaleRowDown34_0_Box_NEON;
+        ScaleRowDown34_0_Box_NEON*;
         ScaleRowDown34_16_C;
         ScaleRowDown34_1_Box_16_C;
-        ScaleRowDown34_1_Box_Any_NEON;
+        ScaleRowDown34_1_Box_Any_NEON*;
         ScaleRowDown34_1_Box_C;
-        ScaleRowDown34_1_Box_NEON;
-        ScaleRowDown34_Any_NEON;
+        ScaleRowDown34_1_Box_NEON*;
+        ScaleRowDown34_Any_NEON*;
         ScaleRowDown34_C;
-        ScaleRowDown34_NEON;
+        ScaleRowDown34_NEON*;
         ScaleRowDown38_16_C;
         ScaleRowDown38_2_Box_16_C;
-        ScaleRowDown38_2_Box_Any_NEON;
+        ScaleRowDown38_2_Box_Any_NEON*;
         ScaleRowDown38_2_Box_C;
-        ScaleRowDown38_2_Box_NEON;
+        ScaleRowDown38_2_Box_NEON*;
         ScaleRowDown38_3_Box_16_C;
-        ScaleRowDown38_3_Box_Any_NEON;
+        ScaleRowDown38_3_Box_Any_NEON*;
         ScaleRowDown38_3_Box_C;
-        ScaleRowDown38_3_Box_NEON;
-        ScaleRowDown38_Any_NEON;
+        ScaleRowDown38_3_Box_NEON*;
+        ScaleRowDown38_Any_NEON*;
         ScaleRowDown38_C;
-        ScaleRowDown38_NEON;
+        ScaleRowDown38_NEON*;
         ScaleRowDown4_16_C;
-        ScaleRowDown4_Any_NEON;
+        ScaleRowDown4_Any_NEON*;
         ScaleRowDown4Box_16_C;
-        ScaleRowDown4Box_Any_NEON;
+        ScaleRowDown4Box_Any_NEON*;
         ScaleRowDown4Box_C;
-        ScaleRowDown4Box_NEON;
+        ScaleRowDown4Box_NEON*;
         ScaleRowDown4_C;
-        ScaleRowDown4_NEON;
+        ScaleRowDown4_NEON*;
         ScaleSlope;
         SetPlane;
-        SetRow_Any_NEON;
+        SetRow_Any_NEON*;
         SetRow_C;
-        SetRow_NEON;
-        SobelRow_Any_NEON;
+        SetRow_NEON*;
+        SobelRow_Any_NEON*;
         SobelRow_C;
-        SobelRow_NEON;
-        SobelToPlaneRow_Any_NEON;
+        SobelRow_NEON*;
+        SobelToPlaneRow_Any_NEON*;
         SobelToPlaneRow_C;
-        SobelToPlaneRow_NEON;
+        SobelToPlaneRow_NEON*;
         SobelXRow_C;
-        SobelXRow_NEON;
-        SobelXYRow_Any_NEON;
+        SobelXRow_NEON*;
+        SobelXYRow_Any_NEON*;
         SobelXYRow_C;
-        SobelXYRow_NEON;
+        SobelXYRow_NEON*;
         SobelYRow_C;
-        SobelYRow_NEON;
+        SobelYRow_NEON*;
         SplitUVPlane;
-        SplitUVRow_Any_NEON;
+        SplitUVRow_Any_NEON*;
         SplitUVRow_C;
-        SplitUVRow_NEON;
+        SplitUVRow_NEON*;
         UYVYToARGB;
-        UYVYToARGBRow_Any_NEON;
+        UYVYToARGBRow_Any_NEON*;
         UYVYToARGBRow_C;
-        UYVYToARGBRow_NEON;
+        UYVYToARGBRow_NEON*;
         UYVYToI420;
         UYVYToI422;
         UYVYToNV12;
-        UYVYToUV422Row_Any_NEON;
+        UYVYToUV422Row_Any_NEON*;
         UYVYToUV422Row_C;
-        UYVYToUV422Row_NEON;
-        UYVYToUVRow_Any_NEON;
+        UYVYToUV422Row_NEON*;
+        UYVYToUVRow_Any_NEON*;
         UYVYToUVRow_C;
-        UYVYToUVRow_NEON;
-        UYVYToYRow_Any_NEON;
+        UYVYToUVRow_NEON*;
+        UYVYToYRow_Any_NEON*;
         UYVYToYRow_C;
-        UYVYToYRow_NEON;
+        UYVYToYRow_NEON*;
         YUY2ToARGB;
-        YUY2ToARGBRow_Any_NEON;
+        YUY2ToARGBRow_Any_NEON*;
         YUY2ToARGBRow_C;
-        YUY2ToARGBRow_NEON;
+        YUY2ToARGBRow_NEON*;
         YUY2ToI420;
         YUY2ToI422;
         YUY2ToNV12;
-        YUY2ToUV422Row_Any_NEON;
+        YUY2ToUV422Row_Any_NEON*;
         YUY2ToUV422Row_C;
-        YUY2ToUV422Row_NEON;
-        YUY2ToUVRow_Any_NEON;
+        YUY2ToUV422Row_NEON*;
+        YUY2ToUVRow_Any_NEON*;
         YUY2ToUVRow_C;
-        YUY2ToUVRow_NEON;
+        YUY2ToUVRow_NEON*;
         YUY2ToY;
-        YUY2ToYRow_Any_NEON;
+        YUY2ToYRow_Any_NEON*;
         YUY2ToYRow_C;
-        YUY2ToYRow_NEON;
+        YUY2ToYRow_NEON*;
 };
diff --git a/packages/MediaComponents/Android.mk b/packages/MediaComponents/Android.mk
index def9dc5..55a5424 100644
--- a/packages/MediaComponents/Android.mk
+++ b/packages/MediaComponents/Android.mk
@@ -42,7 +42,7 @@
 #
 #LOCAL_MULTILIB := first
 #
-#LOCAL_JAVA_LIBRARIES += android-support-annotations
+#LOCAL_JAVA_LIBRARIES += androidx.annotation_annotation
 #
 ## To embed native libraries in package, uncomment the lines below.
 ##LOCAL_MODULE_TAGS := samples
@@ -60,9 +60,9 @@
 #
 ## TODO: Remove dependency with other support libraries.
 #LOCAL_STATIC_ANDROID_LIBRARIES += \
-#    android-support-v4 \
-#    android-support-v7-appcompat \
-#    android-support-v7-palette
+#    androidx.legacy_legacy-support-v4 \
+#    androidx.appcompat_appcompat \
+#    androidx.palette_palette
 #LOCAL_USE_AAPT2 := true
 #
 #include $(BUILD_PACKAGE)
diff --git a/packages/MediaComponents/res/layout/mr_controller_material_dialog_b.xml b/packages/MediaComponents/res/layout/mr_controller_material_dialog_b.xml
index b304471..f6f7be5 100644
--- a/packages/MediaComponents/res/layout/mr_controller_material_dialog_b.xml
+++ b/packages/MediaComponents/res/layout/mr_controller_material_dialog_b.xml
@@ -169,7 +169,7 @@
             android:layout_height="wrap_content"
             android:fillViewport="true"
             android:scrollIndicators="top|bottom">
-            <android.support.v7.widget.ButtonBarLayout
+            <androidx.appcompat.widget.ButtonBarLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:gravity="bottom"
@@ -184,7 +184,7 @@
                     style="?android:attr/buttonBarNeutralButtonStyle"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"/>
-                <android.support.v4.widget.Space
+                <androidx.legacy.widget.Space
                     android:id="@+id/spacer"
                     android:layout_width="0dp"
                     android:layout_height="0dp"
@@ -200,7 +200,7 @@
                     style="?android:attr/buttonBarPositiveButtonStyle"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"/>
-            </android.support.v7.widget.ButtonBarLayout>
+            </androidx.appcompat.widget.ButtonBarLayout>
         </ScrollView>
     </LinearLayout>
 </FrameLayout>
diff --git a/packages/MediaComponents/res/layout/mr_controller_volume_item.xml b/packages/MediaComponents/res/layout/mr_controller_volume_item.xml
index a89058b..12d85ae 100644
--- a/packages/MediaComponents/res/layout/mr_controller_volume_item.xml
+++ b/packages/MediaComponents/res/layout/mr_controller_volume_item.xml
@@ -40,7 +40,7 @@
                        android:layout_marginBottom="8dp"
                        android:scaleType="fitCenter"
                        android:src="?attr/mediaRouteAudioTrackDrawable" />
-            <android.support.v7.app.MediaRouteVolumeSlider
+            <androidx.mediarouter.app.MediaRouteVolumeSlider
                 android:id="@+id/mr_volume_slider"
                 android:layout_width="fill_parent"
                 android:layout_height="40dp"
diff --git a/packages/MediaComponents/src/com/android/media/MediaBrowser2Impl.java b/packages/MediaComponents/src/com/android/media/MediaBrowser2Impl.java
index c909099..0327beb 100644
--- a/packages/MediaComponents/src/com/android/media/MediaBrowser2Impl.java
+++ b/packages/MediaComponents/src/com/android/media/MediaBrowser2Impl.java
@@ -19,7 +19,6 @@
 import android.content.Context;
 import android.media.MediaBrowser2;
 import android.media.MediaBrowser2.BrowserCallback;
-import android.media.MediaController2;
 import android.media.MediaItem2;
 import android.media.SessionToken2;
 import android.media.update.MediaBrowser2Provider;
diff --git a/packages/MediaComponents/src/com/android/media/MediaController2Impl.java b/packages/MediaComponents/src/com/android/media/MediaController2Impl.java
index 249365a..2883087 100644
--- a/packages/MediaComponents/src/com/android/media/MediaController2Impl.java
+++ b/packages/MediaComponents/src/com/android/media/MediaController2Impl.java
@@ -16,7 +16,6 @@
 
 package com.android.media;
 
-import static android.media.SessionCommand2.COMMAND_CODE_SET_VOLUME;
 import static android.media.SessionCommand2.COMMAND_CODE_PLAYLIST_ADD_ITEM;
 import static android.media.SessionCommand2.COMMAND_CODE_PLAYLIST_REMOVE_ITEM;
 import static android.media.SessionCommand2.COMMAND_CODE_PLAYLIST_REPLACE_ITEM;
@@ -30,6 +29,7 @@
 import static android.media.SessionCommand2.COMMAND_CODE_SESSION_PREPARE_FROM_MEDIA_ID;
 import static android.media.SessionCommand2.COMMAND_CODE_SESSION_PREPARE_FROM_SEARCH;
 import static android.media.SessionCommand2.COMMAND_CODE_SESSION_PREPARE_FROM_URI;
+import static android.media.SessionCommand2.COMMAND_CODE_SET_VOLUME;
 
 import android.app.PendingIntent;
 import android.content.ComponentName;
@@ -44,11 +44,11 @@
 import android.media.MediaMetadata2;
 import android.media.MediaPlaylistAgent.RepeatMode;
 import android.media.MediaPlaylistAgent.ShuffleMode;
-import android.media.SessionCommand2;
 import android.media.MediaSession2.CommandButton;
-import android.media.SessionCommandGroup2;
 import android.media.MediaSessionService2;
 import android.media.Rating2;
+import android.media.SessionCommand2;
+import android.media.SessionCommandGroup2;
 import android.media.SessionToken2;
 import android.media.update.MediaController2Provider;
 import android.net.Uri;
@@ -58,10 +58,11 @@
 import android.os.RemoteException;
 import android.os.ResultReceiver;
 import android.os.UserHandle;
-import android.support.annotation.GuardedBy;
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.annotation.GuardedBy;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.Executor;
diff --git a/packages/MediaComponents/src/com/android/media/MediaController2Stub.java b/packages/MediaComponents/src/com/android/media/MediaController2Stub.java
index 2cfc5df..ece4a00 100644
--- a/packages/MediaComponents/src/com/android/media/MediaController2Stub.java
+++ b/packages/MediaComponents/src/com/android/media/MediaController2Stub.java
@@ -21,8 +21,8 @@
 import android.media.MediaController2;
 import android.media.MediaItem2;
 import android.media.MediaMetadata2;
-import android.media.SessionCommand2;
 import android.media.MediaSession2.CommandButton;
+import android.media.SessionCommand2;
 import android.media.SessionCommandGroup2;
 import android.os.Bundle;
 import android.os.ResultReceiver;
diff --git a/packages/MediaComponents/src/com/android/media/MediaSession2Impl.java b/packages/MediaComponents/src/com/android/media/MediaSession2Impl.java
index 4ec6042..72ecf54 100644
--- a/packages/MediaComponents/src/com/android/media/MediaSession2Impl.java
+++ b/packages/MediaComponents/src/com/android/media/MediaSession2Impl.java
@@ -44,13 +44,13 @@
 import android.media.MediaPlaylistAgent.PlaylistEventCallback;
 import android.media.MediaSession2;
 import android.media.MediaSession2.Builder;
-import android.media.SessionCommand2;
 import android.media.MediaSession2.CommandButton;
-import android.media.SessionCommandGroup2;
 import android.media.MediaSession2.ControllerInfo;
 import android.media.MediaSession2.OnDataSourceMissingHelper;
 import android.media.MediaSession2.SessionCallback;
 import android.media.MediaSessionService2;
+import android.media.SessionCommand2;
+import android.media.SessionCommandGroup2;
 import android.media.SessionToken2;
 import android.media.VolumeProvider2;
 import android.media.session.MediaSessionManager;
@@ -60,10 +60,11 @@
 import android.os.Parcelable;
 import android.os.Process;
 import android.os.ResultReceiver;
-import android.support.annotation.GuardedBy;
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.annotation.GuardedBy;
+
 import java.lang.ref.WeakReference;
 import java.lang.reflect.Field;
 import java.util.ArrayList;
diff --git a/packages/MediaComponents/src/com/android/media/MediaSession2Stub.java b/packages/MediaComponents/src/com/android/media/MediaSession2Stub.java
index ec657d7..11ccd9f 100644
--- a/packages/MediaComponents/src/com/android/media/MediaSession2Stub.java
+++ b/packages/MediaComponents/src/com/android/media/MediaSession2Stub.java
@@ -22,11 +22,11 @@
 import android.media.MediaItem2;
 import android.media.MediaLibraryService2.LibraryRoot;
 import android.media.MediaMetadata2;
-import android.media.SessionCommand2;
 import android.media.MediaSession2.CommandButton;
-import android.media.SessionCommandGroup2;
 import android.media.MediaSession2.ControllerInfo;
 import android.media.Rating2;
+import android.media.SessionCommand2;
+import android.media.SessionCommandGroup2;
 import android.media.VolumeProvider2;
 import android.net.Uri;
 import android.os.Binder;
@@ -35,13 +35,14 @@
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.os.ResultReceiver;
-import android.support.annotation.GuardedBy;
-import android.support.annotation.NonNull;
 import android.text.TextUtils;
 import android.util.ArrayMap;
 import android.util.Log;
 import android.util.SparseArray;
 
+import androidx.annotation.GuardedBy;
+import androidx.annotation.NonNull;
+
 import com.android.media.MediaLibraryService2Impl.MediaLibrarySessionImpl;
 import com.android.media.MediaSession2Impl.CommandButtonImpl;
 import com.android.media.MediaSession2Impl.CommandGroupImpl;
diff --git a/packages/MediaComponents/src/com/android/media/MediaSessionService2Impl.java b/packages/MediaComponents/src/com/android/media/MediaSessionService2Impl.java
index c33eb65..d975839 100644
--- a/packages/MediaComponents/src/com/android/media/MediaSessionService2Impl.java
+++ b/packages/MediaComponents/src/com/android/media/MediaSessionService2Impl.java
@@ -20,7 +20,6 @@
 
 import android.app.Notification;
 import android.app.NotificationManager;
-import android.content.Context;
 import android.content.Intent;
 import android.media.MediaPlayerBase;
 import android.media.MediaPlayerBase.PlayerEventCallback;
@@ -31,9 +30,10 @@
 import android.media.SessionToken2.TokenType;
 import android.media.update.MediaSessionService2Provider;
 import android.os.IBinder;
-import android.support.annotation.GuardedBy;
 import android.util.Log;
 
+import androidx.annotation.GuardedBy;
+
 // TODO(jaewan): Need a test for session service itself.
 public class MediaSessionService2Impl implements MediaSessionService2Provider {
 
diff --git a/packages/MediaComponents/src/com/android/media/Rating2Impl.java b/packages/MediaComponents/src/com/android/media/Rating2Impl.java
index d558129..e2b9f0a 100644
--- a/packages/MediaComponents/src/com/android/media/Rating2Impl.java
+++ b/packages/MediaComponents/src/com/android/media/Rating2Impl.java
@@ -18,7 +18,6 @@
 
 import static android.media.Rating2.*;
 
-import android.content.Context;
 import android.media.Rating2;
 import android.media.Rating2.Style;
 import android.media.update.Rating2Provider;
diff --git a/packages/MediaComponents/src/com/android/media/RoutePlayer.java b/packages/MediaComponents/src/com/android/media/RoutePlayer.java
index 9450d34..ebff0e2 100644
--- a/packages/MediaComponents/src/com/android/media/RoutePlayer.java
+++ b/packages/MediaComponents/src/com/android/media/RoutePlayer.java
@@ -23,7 +23,8 @@
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
-import android.support.annotation.RequiresApi;
+
+import androidx.annotation.RequiresApi;
 
 import com.android.support.mediarouter.media.MediaItemStatus;
 import com.android.support.mediarouter.media.MediaRouter;
@@ -33,8 +34,6 @@
 import com.android.support.mediarouter.media.RemotePlaybackClient.SessionActionCallback;
 import com.android.support.mediarouter.media.RemotePlaybackClient.StatusCallback;
 
-import java.util.Map;
-
 @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
 public class RoutePlayer extends MediaSession.Callback {
     public static final long PLAYBACK_ACTIONS = PlaybackState.ACTION_PAUSE
diff --git a/packages/MediaComponents/src/com/android/media/SessionToken2Impl.java b/packages/MediaComponents/src/com/android/media/SessionToken2Impl.java
index a5cf8c4..f792712 100644
--- a/packages/MediaComponents/src/com/android/media/SessionToken2Impl.java
+++ b/packages/MediaComponents/src/com/android/media/SessionToken2Impl.java
@@ -16,9 +16,9 @@
 
 package com.android.media;
 
+import static android.media.SessionToken2.TYPE_LIBRARY_SERVICE;
 import static android.media.SessionToken2.TYPE_SESSION;
 import static android.media.SessionToken2.TYPE_SESSION_SERVICE;
-import static android.media.SessionToken2.TYPE_LIBRARY_SERVICE;
 
 import android.content.Context;
 import android.content.Intent;
diff --git a/packages/MediaComponents/src/com/android/media/subtitle/SubtitleController.java b/packages/MediaComponents/src/com/android/media/subtitle/SubtitleController.java
index a4d55d7..97d3927 100644
--- a/packages/MediaComponents/src/com/android/media/subtitle/SubtitleController.java
+++ b/packages/MediaComponents/src/com/android/media/subtitle/SubtitleController.java
@@ -16,12 +16,8 @@
 
 package com.android.media.subtitle;
 
-import java.util.Locale;
-import java.util.Vector;
-
 import android.content.Context;
 import android.media.MediaFormat;
-import android.media.MediaPlayer2;
 import android.media.MediaPlayer2.TrackInfo;
 import android.os.Handler;
 import android.os.Looper;
@@ -30,6 +26,9 @@
 
 import com.android.media.subtitle.SubtitleTrack.RenderingWidget;
 
+import java.util.Locale;
+import java.util.Vector;
+
 // Note: This is forked from android.media.SubtitleController since P
 /**
  * The subtitle controller provides the architecture to display subtitles for a
diff --git a/packages/MediaComponents/src/com/android/media/update/ApiFactory.java b/packages/MediaComponents/src/com/android/media/update/ApiFactory.java
index d7be549..f75b75e 100644
--- a/packages/MediaComponents/src/com/android/media/update/ApiFactory.java
+++ b/packages/MediaComponents/src/com/android/media/update/ApiFactory.java
@@ -31,13 +31,13 @@
 import android.media.MediaMetadata2;
 import android.media.MediaPlaylistAgent;
 import android.media.MediaSession2;
-import android.media.SessionCommand2;
-import android.media.SessionCommandGroup2;
 import android.media.MediaSession2.ControllerInfo;
 import android.media.MediaSession2.SessionCallback;
 import android.media.MediaSessionService2;
 import android.media.MediaSessionService2.MediaNotification;
 import android.media.Rating2;
+import android.media.SessionCommand2;
+import android.media.SessionCommandGroup2;
 import android.media.SessionToken2;
 import android.media.VolumeProvider2;
 import android.media.update.MediaBrowser2Provider;
@@ -59,11 +59,12 @@
 import android.media.update.VolumeProvider2Provider;
 import android.os.Bundle;
 import android.os.IInterface;
-import android.support.annotation.Nullable;
 import android.util.AttributeSet;
 import android.widget.MediaControlView2;
 import android.widget.VideoView2;
 
+import androidx.annotation.Nullable;
+
 import com.android.media.IMediaController2;
 import com.android.media.MediaBrowser2Impl;
 import com.android.media.MediaController2Impl;
diff --git a/packages/MediaComponents/src/com/android/media/update/ApiHelper.java b/packages/MediaComponents/src/com/android/media/update/ApiHelper.java
index ad8bb48..dc5e5e2 100644
--- a/packages/MediaComponents/src/com/android/media/update/ApiHelper.java
+++ b/packages/MediaComponents/src/com/android/media/update/ApiHelper.java
@@ -18,21 +18,21 @@
 
 import android.annotation.Nullable;
 import android.content.Context;
-import android.content.ContextWrapper;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.res.Resources;
 import android.content.res.Resources.Theme;
 import android.content.res.XmlResourceParser;
-import android.support.annotation.GuardedBy;
-import android.support.v4.widget.Space;
-import android.support.v7.widget.ButtonBarLayout;
 import android.util.AttributeSet;
 import android.view.ContextThemeWrapper;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+import androidx.annotation.GuardedBy;
+import androidx.appcompat.widget.ButtonBarLayout;
+import androidx.legacy.widget.Space;
+
 import com.android.support.mediarouter.app.MediaRouteButton;
 import com.android.support.mediarouter.app.MediaRouteExpandCollapseButton;
 import com.android.support.mediarouter.app.MediaRouteVolumeSlider;
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteActionProvider.java b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteActionProvider.java
index d3e8d47..98c0d17 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteActionProvider.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteActionProvider.java
@@ -19,11 +19,12 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.content.Context;
-import android.support.v4.view.ActionProvider;
 import android.util.Log;
 import android.view.View;
 import android.view.ViewGroup;
 
+import androidx.core.view.ActionProvider;
+
 import com.android.support.mediarouter.media.MediaRouteSelector;
 import com.android.support.mediarouter.media.MediaRouter;
 
@@ -48,7 +49,7 @@
  * <h3>Prerequisites</h3>
  * <p>
  * To use the media route action provider, the activity must be a subclass of
- * {@link AppCompatActivity} from the <code>android.support.v7.appcompat</code>
+ * {@link AppCompatActivity} from the <code>androidx.appcompat.appcompat</code>
  * support library.  Refer to support library documentation for details.
  * </p>
  *
@@ -65,7 +66,7 @@
  *     &lt;item android:id="@+id/media_route_menu_item"
  *         android:title="@string/media_route_menu_title"
  *         app:showAsAction="always"
- *         app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"/>
+ *         app:actionProviderClass="androidx.mediarouter.app.MediaRouteActionProvider"/>
  * &lt;/menu>
  * </pre><p>
  * Then configure the menu and set the route selector for the chooser.
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteButton.java b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteButton.java
index fde8a63..e82fcb9 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteButton.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteButton.java
@@ -28,14 +28,15 @@
 import android.graphics.drawable.AnimationDrawable;
 import android.graphics.drawable.Drawable;
 import android.os.AsyncTask;
-import android.support.v4.graphics.drawable.DrawableCompat;
-import android.support.v7.widget.TooltipCompat;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.util.SparseArray;
 import android.view.SoundEffectConstants;
 import android.view.View;
 
+import androidx.appcompat.widget.TooltipCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
+
 import com.android.media.update.ApiHelper;
 import com.android.media.update.R;
 import com.android.support.mediarouter.media.MediaRouteSelector;
@@ -70,7 +71,7 @@
  * <h3>Prerequisites</h3>
  * <p>
  * To use the media route button, the activity must be a subclass of
- * {@link FragmentActivity} from the <code>android.support.v4</code>
+ * {@link FragmentActivity} from the <code>androidx.core./code>
  * support library.  Refer to support library documentation for details.
  * </p>
  *
@@ -81,9 +82,9 @@
     private static final String TAG = "MediaRouteButton";
 
     private static final String CHOOSER_FRAGMENT_TAG =
-            "android.support.v7.mediarouter:MediaRouteChooserDialogFragment";
+            "androidx.mediarouter.media.outer:MediaRouteChooserDialogFragment";
     private static final String CONTROLLER_FRAGMENT_TAG =
-            "android.support.v7.mediarouter:MediaRouteControllerDialogFragment";
+            "androidx.mediarouter.media.outer:MediaRouteControllerDialogFragment";
 
     private final MediaRouter mRouter;
     private final MediaRouterCallback mCallback;
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteChooserDialog.java b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteChooserDialog.java
index cac64d9..f24028a 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteChooserDialog.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteChooserDialog.java
@@ -16,13 +16,14 @@
 
 package com.android.support.mediarouter.app;
 
-import static com.android.support.mediarouter.media.MediaRouter.RouteInfo.CONNECTION_STATE_CONNECTED;
-import static com.android.support.mediarouter.media.MediaRouter.RouteInfo.CONNECTION_STATE_CONNECTING;
+import static com.android.support.mediarouter.media.MediaRouter.RouteInfo
+        .CONNECTION_STATE_CONNECTED;
+import static com.android.support.mediarouter.media.MediaRouter.RouteInfo
+        .CONNECTION_STATE_CONNECTING;
 
 import android.annotation.NonNull;
 import android.app.Dialog;
 import android.content.Context;
-import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
@@ -30,12 +31,10 @@
 import android.os.Handler;
 import android.os.Message;
 import android.os.SystemClock;
-import android.support.v7.app.AppCompatDialog;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.ContextThemeWrapper;
 import android.view.Gravity;
-import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteControllerDialog.java b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteControllerDialog.java
index 060cfca..f6c1d2f 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteControllerDialog.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteControllerDialog.java
@@ -40,9 +40,6 @@
 import android.support.v4.media.session.MediaControllerCompat;
 import android.support.v4.media.session.MediaSessionCompat;
 import android.support.v4.media.session.PlaybackStateCompat;
-import android.support.v4.util.ObjectsCompat;
-import android.support.v4.view.accessibility.AccessibilityEventCompat;
-import android.support.v7.graphics.Palette;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.ContextThemeWrapper;
@@ -72,11 +69,15 @@
 import android.widget.SeekBar;
 import android.widget.TextView;
 
+import androidx.core.util.ObjectsCompat;
+import androidx.core.view.accessibility.AccessibilityEventCompat;
+import androidx.palette.graphics.Palette;
+
 import com.android.media.update.ApiHelper;
 import com.android.media.update.R;
+import com.android.support.mediarouter.app.OverlayListView.OverlayObject;
 import com.android.support.mediarouter.media.MediaRouteSelector;
 import com.android.support.mediarouter.media.MediaRouter;
-import com.android.support.mediarouter.app.OverlayListView.OverlayObject;
 
 import java.io.BufferedInputStream;
 import java.io.IOException;
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteDialogFactory.java b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteDialogFactory.java
index a9eaf39..b5ee63e 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteDialogFactory.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteDialogFactory.java
@@ -16,7 +16,7 @@
 
 package com.android.support.mediarouter.app;
 
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
 
 /**
  * The media route dialog factory is responsible for creating the media route
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteDiscoveryFragment.java b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteDiscoveryFragment.java
index 02ee118..52aecd88 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteDiscoveryFragment.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteDiscoveryFragment.java
@@ -17,10 +17,11 @@
 package com.android.support.mediarouter.app;
 
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
 
-import com.android.support.mediarouter.media.MediaRouter;
+import androidx.fragment.app.Fragment;
+
 import com.android.support.mediarouter.media.MediaRouteSelector;
+import com.android.support.mediarouter.media.MediaRouter;
 
 /**
  * Media route discovery fragment.
@@ -34,7 +35,7 @@
  * provide the {@link MediaRouter} callback to register.
  * </p><p>
  * Note that the discovery callback makes the application be connected with all the
- * {@link android.support.v7.media.MediaRouteProviderService media route provider services}
+ * {@link androidx.mediarouter.media.MediaRouteProviderService media route provider services}
  * while it is registered.
  * </p>
  */
@@ -114,7 +115,7 @@
     }
 
     /**
-     * Called to create the {@link android.support.v7.media.MediaRouter.Callback callback}
+     * Called to create the {@link androidx.mediarouter.media.MediaRouter.Callback callback}
      * that will be registered.
      * <p>
      * The default callback does nothing.  The application may override this method to
@@ -129,7 +130,7 @@
 
     /**
      * Called to prepare the callback flags that will be used when the
-     * {@link android.support.v7.media.MediaRouter.Callback callback} is registered.
+     * {@link androidx.mediarouter.media.MediaRouter.Callback callback} is registered.
      * <p>
      * The default implementation returns {@link MediaRouter#CALLBACK_FLAG_REQUEST_DISCOVERY}.
      * </p>
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteExpandCollapseButton.java b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteExpandCollapseButton.java
index 6a0a95a..dcca6a0 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteExpandCollapseButton.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouteExpandCollapseButton.java
@@ -21,7 +21,6 @@
 import android.graphics.PorterDuff;
 import android.graphics.PorterDuffColorFilter;
 import android.graphics.drawable.AnimationDrawable;
-import android.support.v4.content.ContextCompat;
 import android.util.AttributeSet;
 import android.view.View;
 import android.widget.ImageButton;
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouterThemeHelper.java b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouterThemeHelper.java
index 63f042f..b4bf8d1 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouterThemeHelper.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/app/MediaRouterThemeHelper.java
@@ -19,12 +19,13 @@
 import android.content.Context;
 import android.content.res.TypedArray;
 import android.graphics.Color;
-import android.support.annotation.IntDef;
-import android.support.v4.graphics.ColorUtils;
 import android.util.TypedValue;
 import android.view.ContextThemeWrapper;
 import android.view.View;
 
+import androidx.annotation.IntDef;
+import androidx.core.graphics.ColorUtils;
+
 import com.android.media.update.R;
 
 import java.lang.annotation.Retention;
@@ -170,7 +171,7 @@
     private static boolean isLightTheme(Context context) {
         TypedValue value = new TypedValue();
         // TODO(sungsoo): Switch to com.android.internal.R.attr.isLightTheme
-        return context.getTheme().resolveAttribute(android.support.v7.appcompat.R.attr.isLightTheme,
+        return context.getTheme().resolveAttribute(androidx.appcompat.R.attr.isLightTheme,
                 value, true) && value.data != 0;
     }
 
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/jellybean-mr1/MediaRouterJellybeanMr1.java b/packages/MediaComponents/src/com/android/support/mediarouter/jellybean-mr1/MediaRouterJellybeanMr1.java
index f8539bd..5a0bc95 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/jellybean-mr1/MediaRouterJellybeanMr1.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/jellybean-mr1/MediaRouterJellybeanMr1.java
@@ -20,7 +20,6 @@
 import android.hardware.display.DisplayManager;
 import android.os.Build;
 import android.os.Handler;
-import android.support.annotation.RequiresApi;
 import android.util.Log;
 import android.view.Display;
 
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaItemStatus.java b/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaItemStatus.java
index 90ea2d5..92f608b 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaItemStatus.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaItemStatus.java
@@ -19,7 +19,8 @@
 import android.app.PendingIntent;
 import android.os.Bundle;
 import android.os.SystemClock;
-import android.support.v4.util.TimeUtils;
+
+import androidx.core.util.TimeUtils;
 
 /**
  * Describes the playback status of a media item.
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouteProvider.java b/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouteProvider.java
index 91a2e1a..7ea328c 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouteProvider.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouteProvider.java
@@ -23,7 +23,8 @@
 import android.content.Intent;
 import android.os.Handler;
 import android.os.Message;
-import android.support.v4.util.ObjectsCompat;
+
+import androidx.core.util.ObjectsCompat;
 
 import com.android.support.mediarouter.media.MediaRouter.ControlRequestCallback;
 
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouteProviderService.java b/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouteProviderService.java
index 43cde10..a186fee 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouteProviderService.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouteProviderService.java
@@ -29,12 +29,14 @@
         .CLIENT_MSG_RELEASE_ROUTE_CONTROLLER;
 import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
         .CLIENT_MSG_ROUTE_CONTROL_REQUEST;
-import static com.android.support.mediarouter.media.MediaRouteProviderProtocol.CLIENT_MSG_SELECT_ROUTE;
+import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
+        .CLIENT_MSG_SELECT_ROUTE;
 import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
         .CLIENT_MSG_SET_DISCOVERY_REQUEST;
 import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
         .CLIENT_MSG_SET_ROUTE_VOLUME;
-import static com.android.support.mediarouter.media.MediaRouteProviderProtocol.CLIENT_MSG_UNREGISTER;
+import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
+        .CLIENT_MSG_UNREGISTER;
 import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
         .CLIENT_MSG_UNSELECT_ROUTE;
 import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
@@ -51,9 +53,12 @@
         .SERVICE_MSG_GENERIC_FAILURE;
 import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
         .SERVICE_MSG_GENERIC_SUCCESS;
-import static com.android.support.mediarouter.media.MediaRouteProviderProtocol.SERVICE_MSG_REGISTERED;
-import static com.android.support.mediarouter.media.MediaRouteProviderProtocol.SERVICE_VERSION_CURRENT;
-import static com.android.support.mediarouter.media.MediaRouteProviderProtocol.isValidRemoteMessenger;
+import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
+        .SERVICE_MSG_REGISTERED;
+import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
+        .SERVICE_VERSION_CURRENT;
+import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
+        .isValidRemoteMessenger;
 
 import android.app.Service;
 import android.content.Intent;
@@ -65,11 +70,12 @@
 import android.os.Message;
 import android.os.Messenger;
 import android.os.RemoteException;
-import android.support.annotation.VisibleForTesting;
-import android.support.v4.util.ObjectsCompat;
 import android.util.Log;
 import android.util.SparseArray;
 
+import androidx.annotation.VisibleForTesting;
+import androidx.core.util.ObjectsCompat;
+
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouteSelector.java b/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouteSelector.java
index 5669b19..f20dcc0 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouteSelector.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouteSelector.java
@@ -17,8 +17,9 @@
 
 import android.content.IntentFilter;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 
 import java.util.ArrayList;
 import java.util.Arrays;
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouter.java b/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouter.java
index db0052e..4b56b19 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouter.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaRouter.java
@@ -33,15 +33,16 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
-import android.support.v4.app.ActivityManagerCompat;
-import android.support.v4.hardware.display.DisplayManagerCompat;
-import android.support.v4.media.VolumeProviderCompat;
 import android.support.v4.media.session.MediaSessionCompat;
-import android.support.v4.util.Pair;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.Display;
 
+import androidx.core.app.ActivityManagerCompat;
+import androidx.core.hardware.display.DisplayManagerCompat;
+import androidx.core.util.Pair;
+import androidx.media.VolumeProviderCompat;
+
 import com.android.support.mediarouter.media.MediaRouteProvider.ProviderMetadata;
 import com.android.support.mediarouter.media.MediaRouteProvider.RouteController;
 
@@ -81,13 +82,13 @@
     static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
 
     /**
-     * Passed to {@link android.support.v7.media.MediaRouteProvider.RouteController#onUnselect(int)}
+     * Passed to {@link androidx.mediarouter.media.MediaRouteProvider.RouteController#onUnselect(int)}
      * and {@link Callback#onRouteUnselected(MediaRouter, RouteInfo, int)} when the reason the route
      * was unselected is unknown.
      */
     public static final int UNSELECT_REASON_UNKNOWN = 0;
     /**
-     * Passed to {@link android.support.v7.media.MediaRouteProvider.RouteController#onUnselect(int)}
+     * Passed to {@link androidx.mediarouter.media.MediaRouteProvider.RouteController#onUnselect(int)}
      * and {@link Callback#onRouteUnselected(MediaRouter, RouteInfo, int)} when the user pressed
      * the disconnect button to disconnect and keep playing.
      * <p>
@@ -96,13 +97,13 @@
      */
     public static final int UNSELECT_REASON_DISCONNECTED = 1;
     /**
-     * Passed to {@link android.support.v7.media.MediaRouteProvider.RouteController#onUnselect(int)}
+     * Passed to {@link androidx.mediarouter.media.MediaRouteProvider.RouteController#onUnselect(int)}
      * and {@link Callback#onRouteUnselected(MediaRouter, RouteInfo, int)} when the user pressed
      * the stop casting button.
      */
     public static final int UNSELECT_REASON_STOPPED = 2;
     /**
-     * Passed to {@link android.support.v7.media.MediaRouteProvider.RouteController#onUnselect(int)}
+     * Passed to {@link androidx.mediarouter.media.MediaRouteProvider.RouteController#onUnselect(int)}
      * and {@link Callback#onRouteUnselected(MediaRouter, RouteInfo, int)} when the user selected
      * a different route.
      */
@@ -174,7 +175,7 @@
      * Applications should typically add a callback using this flag in the
      * {@link android.app.Activity activity's} {@link android.app.Activity#onStart onStart}
      * method and remove it in the {@link android.app.Activity#onStop onStop} method.
-     * The {@link android.support.v7.app.MediaRouteDiscoveryFragment} fragment may
+     * The {@link androidx.mediarouter.app.MediaRouteDiscoveryFragment} fragment may
      * also be used for this purpose.
      * </p><p class="note">
      * On {@link ActivityManager#isLowRamDevice low-RAM devices} this flag
@@ -182,7 +183,7 @@
      * {@link #addCallback(MediaRouteSelector, Callback, int) addCallback} for details.
      * </p>
      *
-     * @see android.support.v7.app.MediaRouteDiscoveryFragment
+     * @see androidx.mediarouter.app.MediaRouteDiscoveryFragment
      */
     public static final int CALLBACK_FLAG_REQUEST_DISCOVERY = 1 << 2;
 
@@ -197,7 +198,7 @@
      * {@link #addCallback(MediaRouteSelector, Callback, int) addCallback} for details.
      * </p>
      *
-     * @see android.support.v7.app.MediaRouteDiscoveryFragment
+     * @see androidx.mediarouter.app.MediaRouteDiscoveryFragment
      */
     public static final int CALLBACK_FLAG_FORCE_DISCOVERY = 1 << 3;
 
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaSessionStatus.java b/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaSessionStatus.java
index 3206596..0e7514c 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaSessionStatus.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/media/MediaSessionStatus.java
@@ -19,7 +19,8 @@
 import android.app.PendingIntent;
 import android.os.Bundle;
 import android.os.SystemClock;
-import android.support.v4.util.TimeUtils;
+
+import androidx.core.util.TimeUtils;
 
 /**
  * Describes the playback status of a media session.
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/media/RegisteredMediaRouteProvider.java b/packages/MediaComponents/src/com/android/support/mediarouter/media/RegisteredMediaRouteProvider.java
index 98e4e28..eacf1c8 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/media/RegisteredMediaRouteProvider.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/media/RegisteredMediaRouteProvider.java
@@ -29,17 +29,20 @@
         .CLIENT_MSG_RELEASE_ROUTE_CONTROLLER;
 import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
         .CLIENT_MSG_ROUTE_CONTROL_REQUEST;
-import static com.android.support.mediarouter.media.MediaRouteProviderProtocol.CLIENT_MSG_SELECT_ROUTE;
+import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
+        .CLIENT_MSG_SELECT_ROUTE;
 import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
         .CLIENT_MSG_SET_DISCOVERY_REQUEST;
 import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
         .CLIENT_MSG_SET_ROUTE_VOLUME;
-import static com.android.support.mediarouter.media.MediaRouteProviderProtocol.CLIENT_MSG_UNREGISTER;
+import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
+        .CLIENT_MSG_UNREGISTER;
 import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
         .CLIENT_MSG_UNSELECT_ROUTE;
 import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
         .CLIENT_MSG_UPDATE_ROUTE_VOLUME;
-import static com.android.support.mediarouter.media.MediaRouteProviderProtocol.CLIENT_VERSION_CURRENT;
+import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
+        .CLIENT_VERSION_CURRENT;
 import static com.android.support.mediarouter.media.MediaRouteProviderProtocol.SERVICE_DATA_ERROR;
 import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
         .SERVICE_MSG_CONTROL_REQUEST_FAILED;
@@ -51,9 +54,11 @@
         .SERVICE_MSG_GENERIC_FAILURE;
 import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
         .SERVICE_MSG_GENERIC_SUCCESS;
-import static com.android.support.mediarouter.media.MediaRouteProviderProtocol.SERVICE_MSG_REGISTERED;
+import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
+        .SERVICE_MSG_REGISTERED;
 import static com.android.support.mediarouter.media.MediaRouteProviderProtocol.SERVICE_VERSION_1;
-import static com.android.support.mediarouter.media.MediaRouteProviderProtocol.isValidRemoteMessenger;
+import static com.android.support.mediarouter.media.MediaRouteProviderProtocol
+        .isValidRemoteMessenger;
 
 import android.annotation.NonNull;
 import android.content.ComponentName;
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/media/RemoteControlClientCompat.java b/packages/MediaComponents/src/com/android/support/mediarouter/media/RemoteControlClientCompat.java
index 826449b..65c5518 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/media/RemoteControlClientCompat.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/media/RemoteControlClientCompat.java
@@ -18,7 +18,6 @@
 import android.content.Context;
 import android.media.AudioManager;
 import android.os.Build;
-import android.support.annotation.RequiresApi;
 
 import java.lang.ref.WeakReference;
 
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/media/RemotePlaybackClient.java b/packages/MediaComponents/src/com/android/support/mediarouter/media/RemotePlaybackClient.java
index f6e1497..e76564e 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/media/RemotePlaybackClient.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/media/RemotePlaybackClient.java
@@ -22,9 +22,10 @@
 import android.content.IntentFilter;
 import android.net.Uri;
 import android.os.Bundle;
-import android.support.v4.util.ObjectsCompat;
 import android.util.Log;
 
+import androidx.core.util.ObjectsCompat;
+
 /**
  * A helper class for playing media on remote routes using the remote playback protocol
  * defined by {@link MediaControlIntent}.
@@ -867,11 +868,11 @@
 
     private final class ActionReceiver extends BroadcastReceiver {
         public static final String ACTION_ITEM_STATUS_CHANGED =
-                "android.support.v7.media.actions.ACTION_ITEM_STATUS_CHANGED";
+                "androidx.mediarouter.media.actions.ACTION_ITEM_STATUS_CHANGED";
         public static final String ACTION_SESSION_STATUS_CHANGED =
-                "android.support.v7.media.actions.ACTION_SESSION_STATUS_CHANGED";
+                "androidx.mediarouter.media.actions.ACTION_SESSION_STATUS_CHANGED";
         public static final String ACTION_MESSAGE_RECEIVED =
-                "android.support.v7.media.actions.ACTION_MESSAGE_RECEIVED";
+                "androidx.mediarouter.media.actions.ACTION_MESSAGE_RECEIVED";
 
         ActionReceiver() {
         }
diff --git a/packages/MediaComponents/src/com/android/support/mediarouter/media/SystemMediaRouteProvider.java b/packages/MediaComponents/src/com/android/support/mediarouter/media/SystemMediaRouteProvider.java
index a38491f..53901a4 100644
--- a/packages/MediaComponents/src/com/android/support/mediarouter/media/SystemMediaRouteProvider.java
+++ b/packages/MediaComponents/src/com/android/support/mediarouter/media/SystemMediaRouteProvider.java
@@ -24,7 +24,6 @@
 import android.content.res.Resources;
 import android.media.AudioManager;
 import android.os.Build;
-import android.support.annotation.RequiresApi;
 import android.view.Display;
 
 import com.android.media.update.ApiHelper;
diff --git a/packages/MediaComponents/src/com/android/widget/MediaControlView2Impl.java b/packages/MediaComponents/src/com/android/widget/MediaControlView2Impl.java
index 3aff150..ad85af4 100644
--- a/packages/MediaComponents/src/com/android/widget/MediaControlView2Impl.java
+++ b/packages/MediaComponents/src/com/android/widget/MediaControlView2Impl.java
@@ -20,15 +20,13 @@
 import android.content.res.Resources;
 import android.graphics.Point;
 import android.media.MediaMetadata;
+import android.media.SessionToken2;
 import android.media.session.MediaController;
 import android.media.session.PlaybackState;
-import android.media.SessionToken2;
 import android.media.update.MediaControlView2Provider;
 import android.media.update.ViewGroupProvider;
 import android.os.Bundle;
-import android.support.annotation.Nullable;
 import android.util.AttributeSet;
-import android.util.Log;
 import android.view.Gravity;
 import android.view.MotionEvent;
 import android.view.View;
@@ -36,27 +34,28 @@
 import android.view.WindowManager;
 import android.widget.AdapterView;
 import android.widget.BaseAdapter;
-import android.widget.Button;
 import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.MediaControlView2;
-import android.widget.ProgressBar;
 import android.widget.PopupWindow;
+import android.widget.ProgressBar;
 import android.widget.RelativeLayout;
 import android.widget.SeekBar;
 import android.widget.SeekBar.OnSeekBarChangeListener;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
+
 import com.android.media.update.ApiHelper;
 import com.android.media.update.R;
 import com.android.support.mediarouter.app.MediaRouteButton;
-import com.android.support.mediarouter.media.MediaRouter;
 import com.android.support.mediarouter.media.MediaRouteSelector;
+import com.android.support.mediarouter.media.MediaRouter;
 
-import java.util.Arrays;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Formatter;
 import java.util.List;
 import java.util.Locale;
diff --git a/packages/MediaComponents/src/com/android/widget/SubtitleView.java b/packages/MediaComponents/src/com/android/widget/SubtitleView.java
index 67b2cd1..db0ae33 100644
--- a/packages/MediaComponents/src/com/android/widget/SubtitleView.java
+++ b/packages/MediaComponents/src/com/android/widget/SubtitleView.java
@@ -19,10 +19,11 @@
 import android.content.Context;
 import android.graphics.Canvas;
 import android.os.Looper;
-import android.support.annotation.Nullable;
 import android.util.AttributeSet;
 import android.widget.FrameLayout;
 
+import androidx.annotation.Nullable;
+
 import com.android.media.subtitle.SubtitleController.Anchor;
 import com.android.media.subtitle.SubtitleTrack.RenderingWidget;
 
diff --git a/packages/MediaComponents/src/com/android/widget/VideoSurfaceView.java b/packages/MediaComponents/src/com/android/widget/VideoSurfaceView.java
index fc92e85..c9869c0 100644
--- a/packages/MediaComponents/src/com/android/widget/VideoSurfaceView.java
+++ b/packages/MediaComponents/src/com/android/widget/VideoSurfaceView.java
@@ -16,17 +16,18 @@
 
 package com.android.widget;
 
+import static android.widget.VideoView2.VIEW_TYPE_SURFACEVIEW;
+
 import android.content.Context;
 import android.graphics.Rect;
 import android.media.MediaPlayer2;
-import android.support.annotation.NonNull;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.SurfaceHolder;
 import android.view.SurfaceView;
 import android.view.View;
 
-import static android.widget.VideoView2.VIEW_TYPE_SURFACEVIEW;
+import androidx.annotation.NonNull;
 
 class VideoSurfaceView extends SurfaceView implements VideoViewInterface, SurfaceHolder.Callback {
     private static final String TAG = "VideoSurfaceView";
diff --git a/packages/MediaComponents/src/com/android/widget/VideoTextureView.java b/packages/MediaComponents/src/com/android/widget/VideoTextureView.java
index 024a3aa..40fb046 100644
--- a/packages/MediaComponents/src/com/android/widget/VideoTextureView.java
+++ b/packages/MediaComponents/src/com/android/widget/VideoTextureView.java
@@ -16,18 +16,19 @@
 
 package com.android.widget;
 
+import static android.widget.VideoView2.VIEW_TYPE_TEXTUREVIEW;
+
 import android.content.Context;
 import android.graphics.SurfaceTexture;
 import android.media.MediaPlayer2;
-import android.support.annotation.NonNull;
-import android.support.annotation.RequiresApi;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.Surface;
 import android.view.TextureView;
 import android.view.View;
 
-import static android.widget.VideoView2.VIEW_TYPE_TEXTUREVIEW;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
 
 @RequiresApi(26)
 class VideoTextureView extends TextureView
diff --git a/packages/MediaComponents/src/com/android/widget/VideoView2Impl.java b/packages/MediaComponents/src/com/android/widget/VideoView2Impl.java
index 97279d6..ffb145a 100644
--- a/packages/MediaComponents/src/com/android/widget/VideoView2Impl.java
+++ b/packages/MediaComponents/src/com/android/widget/VideoView2Impl.java
@@ -28,30 +28,29 @@
 import android.media.AudioFocusRequest;
 import android.media.AudioManager;
 import android.media.DataSourceDesc;
+import android.media.MediaItem2;
 import android.media.MediaMetadata;
+import android.media.MediaMetadata2;
+import android.media.MediaMetadataRetriever;
 import android.media.MediaPlayer2;
 import android.media.MediaPlayer2.MediaPlayer2EventCallback;
 import android.media.MediaPlayer2.OnSubtitleDataListener;
 import android.media.MediaPlayer2Impl;
-import android.media.SubtitleData;
-import android.media.MediaItem2;
-import android.media.MediaMetadata2;
-import android.media.MediaMetadataRetriever;
 import android.media.Metadata;
 import android.media.PlaybackParams;
+import android.media.SessionToken2;
+import android.media.SubtitleData;
 import android.media.TimedText;
 import android.media.session.MediaController;
 import android.media.session.MediaController.PlaybackInfo;
 import android.media.session.MediaSession;
 import android.media.session.PlaybackState;
-import android.media.SessionToken2;
 import android.media.update.VideoView2Provider;
 import android.media.update.ViewGroupProvider;
 import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.ResultReceiver;
-import android.support.annotation.Nullable;
 import android.util.AttributeSet;
 import android.util.DisplayMetrics;
 import android.util.Log;
@@ -66,6 +65,8 @@
 import android.widget.TextView;
 import android.widget.VideoView2;
 
+import androidx.annotation.Nullable;
+
 import com.android.internal.graphics.palette.Palette;
 import com.android.media.RoutePlayer;
 import com.android.media.subtitle.ClosedCaptionRenderer;
@@ -73,10 +74,10 @@
 import com.android.media.subtitle.SubtitleTrack;
 import com.android.media.update.ApiHelper;
 import com.android.media.update.R;
-import com.android.support.mediarouter.media.MediaItemStatus;
 import com.android.support.mediarouter.media.MediaControlIntent;
-import com.android.support.mediarouter.media.MediaRouter;
+import com.android.support.mediarouter.media.MediaItemStatus;
 import com.android.support.mediarouter.media.MediaRouteSelector;
+import com.android.support.mediarouter.media.MediaRouter;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/services/audioflinger/Android.mk b/services/audioflinger/Android.mk
index 7419e64..16c1673 100644
--- a/services/audioflinger/Android.mk
+++ b/services/audioflinger/Android.mk
@@ -15,6 +15,7 @@
     libbinder
 
 LOCAL_CFLAGS := -Wall -Werror
+LOCAL_SANITIZE := integer_overflow
 
 include $(BUILD_SHARED_LIBRARY)
 
@@ -82,6 +83,7 @@
 LOCAL_CFLAGS += -fvisibility=hidden
 
 LOCAL_CFLAGS += -Werror -Wall
+LOCAL_SANITIZE := integer_overflow
 
 include $(BUILD_SHARED_LIBRARY)