Loading api/system-current.txt +7 −0 Original line number Original line Diff line number Diff line Loading @@ -2115,8 +2115,15 @@ package android.hardware.radio { field public static final java.lang.String METADATA_KEY_ART = "android.hardware.radio.metadata.ART"; field public static final java.lang.String METADATA_KEY_ART = "android.hardware.radio.metadata.ART"; field public static final java.lang.String METADATA_KEY_ARTIST = "android.hardware.radio.metadata.ARTIST"; field public static final java.lang.String METADATA_KEY_ARTIST = "android.hardware.radio.metadata.ARTIST"; field public static final java.lang.String METADATA_KEY_CLOCK = "android.hardware.radio.metadata.CLOCK"; field public static final java.lang.String METADATA_KEY_CLOCK = "android.hardware.radio.metadata.CLOCK"; field public static final java.lang.String METADATA_KEY_DAB_COMPONENT_NAME = "android.hardware.radio.metadata.DAB_COMPONENT_NAME"; field public static final java.lang.String METADATA_KEY_DAB_COMPONENT_NAME_SHORT = "android.hardware.radio.metadata.DAB_COMPONENT_NAME_SHORT"; field public static final java.lang.String METADATA_KEY_DAB_ENSEMBLE_NAME = "android.hardware.radio.metadata.DAB_ENSEMBLE_NAME"; field public static final java.lang.String METADATA_KEY_DAB_ENSEMBLE_NAME_SHORT = "android.hardware.radio.metadata.DAB_ENSEMBLE_NAME_SHORT"; field public static final java.lang.String METADATA_KEY_DAB_SERVICE_NAME = "android.hardware.radio.metadata.DAB_SERVICE_NAME"; field public static final java.lang.String METADATA_KEY_DAB_SERVICE_NAME_SHORT = "android.hardware.radio.metadata.DAB_SERVICE_NAME_SHORT"; field public static final java.lang.String METADATA_KEY_GENRE = "android.hardware.radio.metadata.GENRE"; field public static final java.lang.String METADATA_KEY_GENRE = "android.hardware.radio.metadata.GENRE"; field public static final java.lang.String METADATA_KEY_ICON = "android.hardware.radio.metadata.ICON"; field public static final java.lang.String METADATA_KEY_ICON = "android.hardware.radio.metadata.ICON"; field public static final java.lang.String METADATA_KEY_PROGRAM_NAME = "android.hardware.radio.metadata.PROGRAM_NAME"; field public static final java.lang.String METADATA_KEY_RBDS_PTY = "android.hardware.radio.metadata.RBDS_PTY"; field public static final java.lang.String METADATA_KEY_RBDS_PTY = "android.hardware.radio.metadata.RBDS_PTY"; field public static final java.lang.String METADATA_KEY_RDS_PI = "android.hardware.radio.metadata.RDS_PI"; field public static final java.lang.String METADATA_KEY_RDS_PI = "android.hardware.radio.metadata.RDS_PI"; field public static final java.lang.String METADATA_KEY_RDS_PS = "android.hardware.radio.metadata.RDS_PS"; field public static final java.lang.String METADATA_KEY_RDS_PS = "android.hardware.radio.metadata.RDS_PS"; Loading core/java/android/hardware/radio/RadioMetadata.java +49 −0 Original line number Original line Diff line number Diff line Loading @@ -96,6 +96,48 @@ public final class RadioMetadata implements Parcelable { */ */ public static final String METADATA_KEY_CLOCK = "android.hardware.radio.metadata.CLOCK"; public static final String METADATA_KEY_CLOCK = "android.hardware.radio.metadata.CLOCK"; /** * Technology-independent program name (station name). */ public static final String METADATA_KEY_PROGRAM_NAME = "android.hardware.radio.metadata.PROGRAM_NAME"; /** * DAB ensemble name. */ public static final String METADATA_KEY_DAB_ENSEMBLE_NAME = "android.hardware.radio.metadata.DAB_ENSEMBLE_NAME"; /** * DAB ensemble name - short version (up to 8 characters). */ public static final String METADATA_KEY_DAB_ENSEMBLE_NAME_SHORT = "android.hardware.radio.metadata.DAB_ENSEMBLE_NAME_SHORT"; /** * DAB service name. */ public static final String METADATA_KEY_DAB_SERVICE_NAME = "android.hardware.radio.metadata.DAB_SERVICE_NAME"; /** * DAB service name - short version (up to 8 characters). */ public static final String METADATA_KEY_DAB_SERVICE_NAME_SHORT = "android.hardware.radio.metadata.DAB_SERVICE_NAME_SHORT"; /** * DAB component name. */ public static final String METADATA_KEY_DAB_COMPONENT_NAME = "android.hardware.radio.metadata.DAB_COMPONENT_NAME"; /** * DAB component name. */ public static final String METADATA_KEY_DAB_COMPONENT_NAME_SHORT = "android.hardware.radio.metadata.DAB_COMPONENT_NAME_SHORT"; private static final int METADATA_TYPE_INVALID = -1; private static final int METADATA_TYPE_INVALID = -1; private static final int METADATA_TYPE_INT = 0; private static final int METADATA_TYPE_INT = 0; Loading @@ -119,6 +161,13 @@ public final class RadioMetadata implements Parcelable { METADATA_KEYS_TYPE.put(METADATA_KEY_ICON, METADATA_TYPE_BITMAP); METADATA_KEYS_TYPE.put(METADATA_KEY_ICON, METADATA_TYPE_BITMAP); METADATA_KEYS_TYPE.put(METADATA_KEY_ART, METADATA_TYPE_BITMAP); METADATA_KEYS_TYPE.put(METADATA_KEY_ART, METADATA_TYPE_BITMAP); METADATA_KEYS_TYPE.put(METADATA_KEY_CLOCK, METADATA_TYPE_CLOCK); METADATA_KEYS_TYPE.put(METADATA_KEY_CLOCK, METADATA_TYPE_CLOCK); METADATA_KEYS_TYPE.put(METADATA_KEY_PROGRAM_NAME, METADATA_TYPE_TEXT); METADATA_KEYS_TYPE.put(METADATA_KEY_DAB_ENSEMBLE_NAME, METADATA_TYPE_TEXT); METADATA_KEYS_TYPE.put(METADATA_KEY_DAB_ENSEMBLE_NAME_SHORT, METADATA_TYPE_TEXT); METADATA_KEYS_TYPE.put(METADATA_KEY_DAB_SERVICE_NAME, METADATA_TYPE_TEXT); METADATA_KEYS_TYPE.put(METADATA_KEY_DAB_SERVICE_NAME_SHORT, METADATA_TYPE_TEXT); METADATA_KEYS_TYPE.put(METADATA_KEY_DAB_COMPONENT_NAME, METADATA_TYPE_TEXT); METADATA_KEYS_TYPE.put(METADATA_KEY_DAB_COMPONENT_NAME_SHORT, METADATA_TYPE_TEXT); } } // keep in sync with: system/media/radio/include/system/radio_metadata.h // keep in sync with: system/media/radio/include/system/radio_metadata.h Loading services/core/java/com/android/server/broadcastradio/hal2/Convert.java +75 −1 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.hardware.broadcastradio.V2_0.AmFmRegionConfig; import android.hardware.broadcastradio.V2_0.Announcement; import android.hardware.broadcastradio.V2_0.Announcement; import android.hardware.broadcastradio.V2_0.DabTableEntry; import android.hardware.broadcastradio.V2_0.DabTableEntry; import android.hardware.broadcastradio.V2_0.IdentifierType; import android.hardware.broadcastradio.V2_0.IdentifierType; import android.hardware.broadcastradio.V2_0.Metadata; import android.hardware.broadcastradio.V2_0.MetadataKey; import android.hardware.broadcastradio.V2_0.ProgramFilter; import android.hardware.broadcastradio.V2_0.ProgramFilter; import android.hardware.broadcastradio.V2_0.ProgramIdentifier; import android.hardware.broadcastradio.V2_0.ProgramIdentifier; import android.hardware.broadcastradio.V2_0.ProgramInfo; import android.hardware.broadcastradio.V2_0.ProgramInfo; Loading @@ -34,6 +36,7 @@ import android.hardware.broadcastradio.V2_0.VendorKeyValue; import android.hardware.radio.ProgramList; import android.hardware.radio.ProgramList; import android.hardware.radio.ProgramSelector; import android.hardware.radio.ProgramSelector; import android.hardware.radio.RadioManager; import android.hardware.radio.RadioManager; import android.hardware.radio.RadioMetadata; import android.os.ParcelableException; import android.os.ParcelableException; import android.util.Slog; import android.util.Slog; Loading Loading @@ -283,6 +286,77 @@ class Convert { secondaryIds, null); secondaryIds, null); } } private enum MetadataType { INT, STRING } private static class MetadataDef { private MetadataType type; private String key; private MetadataDef(MetadataType type, String key) { this.type = type; this.key = key; } } private static final Map<Integer, MetadataDef> metadataKeys; static { metadataKeys = new HashMap<>(); metadataKeys.put(MetadataKey.RDS_PS, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_RDS_PS)); metadataKeys.put(MetadataKey.RDS_PTY, new MetadataDef( MetadataType.INT, RadioMetadata.METADATA_KEY_RDS_PTY)); metadataKeys.put(MetadataKey.RBDS_PTY, new MetadataDef( MetadataType.INT, RadioMetadata.METADATA_KEY_RBDS_PTY)); metadataKeys.put(MetadataKey.RDS_RT, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_RDS_RT)); metadataKeys.put(MetadataKey.SONG_TITLE, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_TITLE)); metadataKeys.put(MetadataKey.SONG_ARTIST, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_ARTIST)); metadataKeys.put(MetadataKey.SONG_ALBUM, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_ALBUM)); metadataKeys.put(MetadataKey.STATION_ICON, new MetadataDef( MetadataType.INT, RadioMetadata.METADATA_KEY_ICON)); metadataKeys.put(MetadataKey.ALBUM_ART, new MetadataDef( MetadataType.INT, RadioMetadata.METADATA_KEY_ART)); metadataKeys.put(MetadataKey.PROGRAM_NAME, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_PROGRAM_NAME)); metadataKeys.put(MetadataKey.DAB_ENSEMBLE_NAME, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_DAB_ENSEMBLE_NAME)); metadataKeys.put(MetadataKey.DAB_ENSEMBLE_NAME_SHORT, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_DAB_ENSEMBLE_NAME_SHORT)); metadataKeys.put(MetadataKey.DAB_SERVICE_NAME, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_DAB_SERVICE_NAME)); metadataKeys.put(MetadataKey.DAB_SERVICE_NAME_SHORT, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_DAB_SERVICE_NAME_SHORT)); metadataKeys.put(MetadataKey.DAB_COMPONENT_NAME, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_DAB_COMPONENT_NAME)); metadataKeys.put(MetadataKey.DAB_COMPONENT_NAME_SHORT, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_DAB_COMPONENT_NAME_SHORT)); } private static @NonNull RadioMetadata metadataFromHal(@NonNull ArrayList<Metadata> meta) { RadioMetadata.Builder builder = new RadioMetadata.Builder(); for (Metadata entry : meta) { MetadataDef keyDef = metadataKeys.get(entry.key); if (keyDef == null) { Slog.i(TAG, "Ignored unknown metadata entry: " + MetadataKey.toString(entry.key)); continue; } if (keyDef.type == MetadataType.STRING) { builder.putString(keyDef.key, entry.stringValue); } else { // MetadataType.INT /* Current java API use 32-bit values for int metadata, * but we might change it in the future */ builder.putInt(keyDef.key, (int)entry.intValue); } } return builder.build(); } static @NonNull RadioManager.ProgramInfo programInfoFromHal(@NonNull ProgramInfo info) { static @NonNull RadioManager.ProgramInfo programInfoFromHal(@NonNull ProgramInfo info) { Collection<ProgramSelector.Identifier> relatedContent = info.relatedContent.stream(). Collection<ProgramSelector.Identifier> relatedContent = info.relatedContent.stream(). map(id -> Objects.requireNonNull(programIdentifierFromHal(id))). map(id -> Objects.requireNonNull(programIdentifierFromHal(id))). Loading @@ -295,7 +369,7 @@ class Convert { relatedContent, relatedContent, info.infoFlags, info.infoFlags, info.signalQuality, info.signalQuality, null, // TODO(b/69860743): metadata metadataFromHal(info.metadata), vendorInfoFromHal(info.vendorInfo) vendorInfoFromHal(info.vendorInfo) ); ); } } Loading Loading
api/system-current.txt +7 −0 Original line number Original line Diff line number Diff line Loading @@ -2115,8 +2115,15 @@ package android.hardware.radio { field public static final java.lang.String METADATA_KEY_ART = "android.hardware.radio.metadata.ART"; field public static final java.lang.String METADATA_KEY_ART = "android.hardware.radio.metadata.ART"; field public static final java.lang.String METADATA_KEY_ARTIST = "android.hardware.radio.metadata.ARTIST"; field public static final java.lang.String METADATA_KEY_ARTIST = "android.hardware.radio.metadata.ARTIST"; field public static final java.lang.String METADATA_KEY_CLOCK = "android.hardware.radio.metadata.CLOCK"; field public static final java.lang.String METADATA_KEY_CLOCK = "android.hardware.radio.metadata.CLOCK"; field public static final java.lang.String METADATA_KEY_DAB_COMPONENT_NAME = "android.hardware.radio.metadata.DAB_COMPONENT_NAME"; field public static final java.lang.String METADATA_KEY_DAB_COMPONENT_NAME_SHORT = "android.hardware.radio.metadata.DAB_COMPONENT_NAME_SHORT"; field public static final java.lang.String METADATA_KEY_DAB_ENSEMBLE_NAME = "android.hardware.radio.metadata.DAB_ENSEMBLE_NAME"; field public static final java.lang.String METADATA_KEY_DAB_ENSEMBLE_NAME_SHORT = "android.hardware.radio.metadata.DAB_ENSEMBLE_NAME_SHORT"; field public static final java.lang.String METADATA_KEY_DAB_SERVICE_NAME = "android.hardware.radio.metadata.DAB_SERVICE_NAME"; field public static final java.lang.String METADATA_KEY_DAB_SERVICE_NAME_SHORT = "android.hardware.radio.metadata.DAB_SERVICE_NAME_SHORT"; field public static final java.lang.String METADATA_KEY_GENRE = "android.hardware.radio.metadata.GENRE"; field public static final java.lang.String METADATA_KEY_GENRE = "android.hardware.radio.metadata.GENRE"; field public static final java.lang.String METADATA_KEY_ICON = "android.hardware.radio.metadata.ICON"; field public static final java.lang.String METADATA_KEY_ICON = "android.hardware.radio.metadata.ICON"; field public static final java.lang.String METADATA_KEY_PROGRAM_NAME = "android.hardware.radio.metadata.PROGRAM_NAME"; field public static final java.lang.String METADATA_KEY_RBDS_PTY = "android.hardware.radio.metadata.RBDS_PTY"; field public static final java.lang.String METADATA_KEY_RBDS_PTY = "android.hardware.radio.metadata.RBDS_PTY"; field public static final java.lang.String METADATA_KEY_RDS_PI = "android.hardware.radio.metadata.RDS_PI"; field public static final java.lang.String METADATA_KEY_RDS_PI = "android.hardware.radio.metadata.RDS_PI"; field public static final java.lang.String METADATA_KEY_RDS_PS = "android.hardware.radio.metadata.RDS_PS"; field public static final java.lang.String METADATA_KEY_RDS_PS = "android.hardware.radio.metadata.RDS_PS"; Loading
core/java/android/hardware/radio/RadioMetadata.java +49 −0 Original line number Original line Diff line number Diff line Loading @@ -96,6 +96,48 @@ public final class RadioMetadata implements Parcelable { */ */ public static final String METADATA_KEY_CLOCK = "android.hardware.radio.metadata.CLOCK"; public static final String METADATA_KEY_CLOCK = "android.hardware.radio.metadata.CLOCK"; /** * Technology-independent program name (station name). */ public static final String METADATA_KEY_PROGRAM_NAME = "android.hardware.radio.metadata.PROGRAM_NAME"; /** * DAB ensemble name. */ public static final String METADATA_KEY_DAB_ENSEMBLE_NAME = "android.hardware.radio.metadata.DAB_ENSEMBLE_NAME"; /** * DAB ensemble name - short version (up to 8 characters). */ public static final String METADATA_KEY_DAB_ENSEMBLE_NAME_SHORT = "android.hardware.radio.metadata.DAB_ENSEMBLE_NAME_SHORT"; /** * DAB service name. */ public static final String METADATA_KEY_DAB_SERVICE_NAME = "android.hardware.radio.metadata.DAB_SERVICE_NAME"; /** * DAB service name - short version (up to 8 characters). */ public static final String METADATA_KEY_DAB_SERVICE_NAME_SHORT = "android.hardware.radio.metadata.DAB_SERVICE_NAME_SHORT"; /** * DAB component name. */ public static final String METADATA_KEY_DAB_COMPONENT_NAME = "android.hardware.radio.metadata.DAB_COMPONENT_NAME"; /** * DAB component name. */ public static final String METADATA_KEY_DAB_COMPONENT_NAME_SHORT = "android.hardware.radio.metadata.DAB_COMPONENT_NAME_SHORT"; private static final int METADATA_TYPE_INVALID = -1; private static final int METADATA_TYPE_INVALID = -1; private static final int METADATA_TYPE_INT = 0; private static final int METADATA_TYPE_INT = 0; Loading @@ -119,6 +161,13 @@ public final class RadioMetadata implements Parcelable { METADATA_KEYS_TYPE.put(METADATA_KEY_ICON, METADATA_TYPE_BITMAP); METADATA_KEYS_TYPE.put(METADATA_KEY_ICON, METADATA_TYPE_BITMAP); METADATA_KEYS_TYPE.put(METADATA_KEY_ART, METADATA_TYPE_BITMAP); METADATA_KEYS_TYPE.put(METADATA_KEY_ART, METADATA_TYPE_BITMAP); METADATA_KEYS_TYPE.put(METADATA_KEY_CLOCK, METADATA_TYPE_CLOCK); METADATA_KEYS_TYPE.put(METADATA_KEY_CLOCK, METADATA_TYPE_CLOCK); METADATA_KEYS_TYPE.put(METADATA_KEY_PROGRAM_NAME, METADATA_TYPE_TEXT); METADATA_KEYS_TYPE.put(METADATA_KEY_DAB_ENSEMBLE_NAME, METADATA_TYPE_TEXT); METADATA_KEYS_TYPE.put(METADATA_KEY_DAB_ENSEMBLE_NAME_SHORT, METADATA_TYPE_TEXT); METADATA_KEYS_TYPE.put(METADATA_KEY_DAB_SERVICE_NAME, METADATA_TYPE_TEXT); METADATA_KEYS_TYPE.put(METADATA_KEY_DAB_SERVICE_NAME_SHORT, METADATA_TYPE_TEXT); METADATA_KEYS_TYPE.put(METADATA_KEY_DAB_COMPONENT_NAME, METADATA_TYPE_TEXT); METADATA_KEYS_TYPE.put(METADATA_KEY_DAB_COMPONENT_NAME_SHORT, METADATA_TYPE_TEXT); } } // keep in sync with: system/media/radio/include/system/radio_metadata.h // keep in sync with: system/media/radio/include/system/radio_metadata.h Loading
services/core/java/com/android/server/broadcastradio/hal2/Convert.java +75 −1 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.hardware.broadcastradio.V2_0.AmFmRegionConfig; import android.hardware.broadcastradio.V2_0.Announcement; import android.hardware.broadcastradio.V2_0.Announcement; import android.hardware.broadcastradio.V2_0.DabTableEntry; import android.hardware.broadcastradio.V2_0.DabTableEntry; import android.hardware.broadcastradio.V2_0.IdentifierType; import android.hardware.broadcastradio.V2_0.IdentifierType; import android.hardware.broadcastradio.V2_0.Metadata; import android.hardware.broadcastradio.V2_0.MetadataKey; import android.hardware.broadcastradio.V2_0.ProgramFilter; import android.hardware.broadcastradio.V2_0.ProgramFilter; import android.hardware.broadcastradio.V2_0.ProgramIdentifier; import android.hardware.broadcastradio.V2_0.ProgramIdentifier; import android.hardware.broadcastradio.V2_0.ProgramInfo; import android.hardware.broadcastradio.V2_0.ProgramInfo; Loading @@ -34,6 +36,7 @@ import android.hardware.broadcastradio.V2_0.VendorKeyValue; import android.hardware.radio.ProgramList; import android.hardware.radio.ProgramList; import android.hardware.radio.ProgramSelector; import android.hardware.radio.ProgramSelector; import android.hardware.radio.RadioManager; import android.hardware.radio.RadioManager; import android.hardware.radio.RadioMetadata; import android.os.ParcelableException; import android.os.ParcelableException; import android.util.Slog; import android.util.Slog; Loading Loading @@ -283,6 +286,77 @@ class Convert { secondaryIds, null); secondaryIds, null); } } private enum MetadataType { INT, STRING } private static class MetadataDef { private MetadataType type; private String key; private MetadataDef(MetadataType type, String key) { this.type = type; this.key = key; } } private static final Map<Integer, MetadataDef> metadataKeys; static { metadataKeys = new HashMap<>(); metadataKeys.put(MetadataKey.RDS_PS, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_RDS_PS)); metadataKeys.put(MetadataKey.RDS_PTY, new MetadataDef( MetadataType.INT, RadioMetadata.METADATA_KEY_RDS_PTY)); metadataKeys.put(MetadataKey.RBDS_PTY, new MetadataDef( MetadataType.INT, RadioMetadata.METADATA_KEY_RBDS_PTY)); metadataKeys.put(MetadataKey.RDS_RT, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_RDS_RT)); metadataKeys.put(MetadataKey.SONG_TITLE, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_TITLE)); metadataKeys.put(MetadataKey.SONG_ARTIST, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_ARTIST)); metadataKeys.put(MetadataKey.SONG_ALBUM, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_ALBUM)); metadataKeys.put(MetadataKey.STATION_ICON, new MetadataDef( MetadataType.INT, RadioMetadata.METADATA_KEY_ICON)); metadataKeys.put(MetadataKey.ALBUM_ART, new MetadataDef( MetadataType.INT, RadioMetadata.METADATA_KEY_ART)); metadataKeys.put(MetadataKey.PROGRAM_NAME, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_PROGRAM_NAME)); metadataKeys.put(MetadataKey.DAB_ENSEMBLE_NAME, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_DAB_ENSEMBLE_NAME)); metadataKeys.put(MetadataKey.DAB_ENSEMBLE_NAME_SHORT, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_DAB_ENSEMBLE_NAME_SHORT)); metadataKeys.put(MetadataKey.DAB_SERVICE_NAME, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_DAB_SERVICE_NAME)); metadataKeys.put(MetadataKey.DAB_SERVICE_NAME_SHORT, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_DAB_SERVICE_NAME_SHORT)); metadataKeys.put(MetadataKey.DAB_COMPONENT_NAME, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_DAB_COMPONENT_NAME)); metadataKeys.put(MetadataKey.DAB_COMPONENT_NAME_SHORT, new MetadataDef( MetadataType.STRING, RadioMetadata.METADATA_KEY_DAB_COMPONENT_NAME_SHORT)); } private static @NonNull RadioMetadata metadataFromHal(@NonNull ArrayList<Metadata> meta) { RadioMetadata.Builder builder = new RadioMetadata.Builder(); for (Metadata entry : meta) { MetadataDef keyDef = metadataKeys.get(entry.key); if (keyDef == null) { Slog.i(TAG, "Ignored unknown metadata entry: " + MetadataKey.toString(entry.key)); continue; } if (keyDef.type == MetadataType.STRING) { builder.putString(keyDef.key, entry.stringValue); } else { // MetadataType.INT /* Current java API use 32-bit values for int metadata, * but we might change it in the future */ builder.putInt(keyDef.key, (int)entry.intValue); } } return builder.build(); } static @NonNull RadioManager.ProgramInfo programInfoFromHal(@NonNull ProgramInfo info) { static @NonNull RadioManager.ProgramInfo programInfoFromHal(@NonNull ProgramInfo info) { Collection<ProgramSelector.Identifier> relatedContent = info.relatedContent.stream(). Collection<ProgramSelector.Identifier> relatedContent = info.relatedContent.stream(). map(id -> Objects.requireNonNull(programIdentifierFromHal(id))). map(id -> Objects.requireNonNull(programIdentifierFromHal(id))). Loading @@ -295,7 +369,7 @@ class Convert { relatedContent, relatedContent, info.infoFlags, info.infoFlags, info.signalQuality, info.signalQuality, null, // TODO(b/69860743): metadata metadataFromHal(info.metadata), vendorInfoFromHal(info.vendorInfo) vendorInfoFromHal(info.vendorInfo) ); ); } } Loading