Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 84c36e43 authored by Austin Kolander's avatar Austin Kolander
Browse files

Added inspector support for viewing audio files.

Bug: 64539977
Test: MediaViewTest
Change-Id: Ia9deee51dceddb9faff81f8ea199c67d6f2fd64e
parent 8a984ca8
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@
    <string name="metadata_aperture">Aperture</string>
    <!-- The value of a photos shutter speed. Note that this is probably camera EXIF data.-->
    <string name="metadata_shutter_speed">Shutter speed</string>
    <!-- When a photo was taken. Note that this is probably camera EXIF data.-->
    <!-- How long a video/audio file is.-->
    <string name="metadata_duration">Duration</string>
    <!-- When a photo was taken. Note that this is probably camera EXIF data.-->
    <string name="metadata_date_time">Taken on</string>
@@ -77,6 +77,12 @@
    <string name="metadata_iso_speed_ratings">ISO equivalent</string>
    <!--The format for displaying ISO speed. Note that this is probably camera EXIF data-->
    <string name="metadata_iso_format">ISO <xliff:g id="iso_speed" example="35">%1$d</xliff:g></string>
    <!--The title of the audio file, Note this is probably MP3 ID3 tags.-->
    <string name="metadata_artist">Artist</string>
    <!--The composer for the audio file, Note this is probably MP3 ID3 tags-->
    <string name="metadata_composer">Composer</string>
    <!--The album the file is in, Note this is probably MP3 ID3 tags-->
    <string name="metadata_album">Album</string>

    <!-- String label for developer/debug file details, specifying which stream types are available. -->
    <string name="debug_stream_types">Stream types</string>
+27 −0
Original line number Diff line number Diff line
@@ -69,9 +69,36 @@ public class MediaView extends TableView implements MediaDisplay {
            showVideoData(this, mResources, doc, video, geoClickListener);
        }

        Bundle audio = metadata.getBundle(Shared.METADATA_KEY_AUDIO);
        if (audio != null) {
            showAudioData(this, audio);
        }

        setVisible(!isEmpty());
    }

    @VisibleForTesting
    public static void showAudioData(TableDisplay table, Bundle tags) {

        if (tags.containsKey(MediaMetadata.METADATA_KEY_ARTIST)) {
            table.put(R.string.metadata_artist, tags.getString(MediaMetadata.METADATA_KEY_ARTIST));
        }

        if (tags.containsKey(MediaMetadata.METADATA_KEY_COMPOSER)) {
            table.put(R.string.metadata_composer,
                    tags.getString(MediaMetadata.METADATA_KEY_COMPOSER));
        }

        if (tags.containsKey(MediaMetadata.METADATA_KEY_ALBUM)) {
            table.put(R.string.metadata_album, tags.getString(MediaMetadata.METADATA_KEY_ALBUM));
        }

        if (tags.containsKey(MediaMetadata.METADATA_KEY_DURATION)) {
            int millis = tags.getInt(MediaMetadata.METADATA_KEY_DURATION);
            table.put(R.string.metadata_duration, DateUtils.formatElapsedTime(millis / 1000));
        }
    }

    @VisibleForTesting
    public static void showVideoData(
            TableDisplay table,
+12 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ public class MediaViewTest {
        mMetadata = new Bundle();
        TestMetadata.populateExifData(mMetadata);
        TestMetadata.populateVideoData(mMetadata);
        TestMetadata.populateAudioData(mMetadata);
    }

    /**
@@ -118,6 +119,17 @@ public class MediaViewTest {
        mTable.assertHasRow(R.string.metadata_dimensions, "1920 x 1080, 2.1MP");
    }

    @Test
    public void testShowAudioData() throws Exception {
        Bundle data = mMetadata.getBundle(Shared.METADATA_KEY_AUDIO);
        MediaView.showAudioData(mTable, data);

        mTable.assertHasRow(R.string.metadata_duration, "01:12");
        mTable.assertHasRow(R.string.metadata_artist, "artist");
        mTable.assertHasRow(R.string.metadata_composer, "composer");
        mTable.assertHasRow(R.string.metadata_album, "album");
    }

    /**
     * Test that the updateMetadata method is printing metadata for selected items found in the
     * bundle.
+10 −0
Original line number Diff line number Diff line
@@ -54,4 +54,14 @@ final class TestMetadata {
        data.putInt(ExifInterface.TAG_IMAGE_LENGTH, 1080);
        data.putInt(MediaMetadata.METADATA_KEY_DURATION, 72000);
    }

    static void populateAudioData(Bundle container) {
        Bundle data = new Bundle();
        container.putBundle(Shared.METADATA_KEY_AUDIO, data);

        data.putInt(MediaMetadata.METADATA_KEY_DURATION, 72000);
        data.putString(MediaMetadata.METADATA_KEY_ARTIST, "artist");
        data.putString(MediaMetadata.METADATA_KEY_COMPOSER, "composer");
        data.putString(MediaMetadata.METADATA_KEY_ALBUM, "album");
    }
}