.class public Landroidx/exifinterface/media/ExifInterface; .super Ljava/lang/Object; .source "ExifInterface.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;, Landroidx/exifinterface/media/ExifInterface$IfdType;, Landroidx/exifinterface/media/ExifInterface$ExifTag;, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;, Landroidx/exifinterface/media/ExifInterface$Rational;, Landroidx/exifinterface/media/ExifInterface$ExifStreamType; } .end annotation # static fields .field public static final ALTITUDE_ABOVE_SEA_LEVEL:S = 0x0s .field public static final ALTITUDE_BELOW_SEA_LEVEL:S = 0x1s .field public static final ASCII:Ljava/nio/charset/Charset; .field public static final BITS_PER_SAMPLE_GREYSCALE_1:[I .field public static final BITS_PER_SAMPLE_GREYSCALE_2:[I .field public static final BITS_PER_SAMPLE_RGB:[I .field public static final BYTE_ALIGN_II:S = 0x4949s .field public static final BYTE_ALIGN_MM:S = 0x4d4ds .field public static final COLOR_SPACE_S_RGB:I = 0x1 .field public static final COLOR_SPACE_UNCALIBRATED:I = 0xffff .field public static final CONTRAST_HARD:S = 0x2s .field public static final CONTRAST_NORMAL:S = 0x0s .field public static final CONTRAST_SOFT:S = 0x1s .field public static final DATA_DEFLATE_ZIP:I = 0x8 .field public static final DATA_HUFFMAN_COMPRESSED:I = 0x2 .field public static final DATA_JPEG:I = 0x6 .field public static final DATA_JPEG_COMPRESSED:I = 0x7 .field public static final DATA_LOSSY_JPEG:I = 0x884c .field public static final DATA_PACK_BITS_COMPRESSED:I = 0x8005 .field public static final DATA_UNCOMPRESSED:I = 0x1 .field public static final DEBUG:Z .field public static final EXIF_ASCII_PREFIX:[B .field public static final EXIF_POINTER_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; .field public static final EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; .field public static final EXPOSURE_MODE_AUTO:S = 0x0s .field public static final EXPOSURE_MODE_AUTO_BRACKET:S = 0x2s .field public static final EXPOSURE_MODE_MANUAL:S = 0x1s .field public static final EXPOSURE_PROGRAM_ACTION:S = 0x6s .field public static final EXPOSURE_PROGRAM_APERTURE_PRIORITY:S = 0x3s .field public static final EXPOSURE_PROGRAM_CREATIVE:S = 0x5s .field public static final EXPOSURE_PROGRAM_LANDSCAPE_MODE:S = 0x8s .field public static final EXPOSURE_PROGRAM_MANUAL:S = 0x1s .field public static final EXPOSURE_PROGRAM_NORMAL:S = 0x2s .field public static final EXPOSURE_PROGRAM_NOT_DEFINED:S = 0x0s .field public static final EXPOSURE_PROGRAM_PORTRAIT_MODE:S = 0x7s .field public static final EXPOSURE_PROGRAM_SHUTTER_PRIORITY:S = 0x4s .field public static final FILE_SOURCE_DSC:S = 0x3s .field public static final FILE_SOURCE_OTHER:S = 0x0s .field public static final FILE_SOURCE_REFLEX_SCANNER:S = 0x2s .field public static final FILE_SOURCE_TRANSPARENT_SCANNER:S = 0x1s .field public static final FLAG_FLASH_FIRED:S = 0x1s .field public static final FLAG_FLASH_MODE_AUTO:S = 0x18s .field public static final FLAG_FLASH_MODE_COMPULSORY_FIRING:S = 0x8s .field public static final FLAG_FLASH_MODE_COMPULSORY_SUPPRESSION:S = 0x10s .field public static final FLAG_FLASH_NO_FLASH_FUNCTION:S = 0x20s .field public static final FLAG_FLASH_RED_EYE_SUPPORTED:S = 0x40s .field public static final FLAG_FLASH_RETURN_LIGHT_DETECTED:S = 0x6s .field public static final FLAG_FLASH_RETURN_LIGHT_NOT_DETECTED:S = 0x4s .field public static final FLIPPED_ROTATION_ORDER:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Ljava/lang/Integer;", ">;" } .end annotation .end field .field public static final FORMAT_CHUNKY:S = 0x1s .field public static final FORMAT_PLANAR:S = 0x2s .field public static final GAIN_CONTROL_HIGH_GAIN_DOWN:S = 0x4s .field public static final GAIN_CONTROL_HIGH_GAIN_UP:S = 0x2s .field public static final GAIN_CONTROL_LOW_GAIN_DOWN:S = 0x3s .field public static final GAIN_CONTROL_LOW_GAIN_UP:S = 0x1s .field public static final GAIN_CONTROL_NONE:S = 0x0s .field public static final GPS_DIRECTION_MAGNETIC:Ljava/lang/String; = "M" .field public static final GPS_DIRECTION_TRUE:Ljava/lang/String; = "T" .field public static final GPS_DISTANCE_KILOMETERS:Ljava/lang/String; = "K" .field public static final GPS_DISTANCE_MILES:Ljava/lang/String; = "M" .field public static final GPS_DISTANCE_NAUTICAL_MILES:Ljava/lang/String; = "N" .field public static final GPS_MEASUREMENT_2D:Ljava/lang/String; = "2" .field public static final GPS_MEASUREMENT_3D:Ljava/lang/String; = "3" .field public static final GPS_MEASUREMENT_DIFFERENTIAL_CORRECTED:S = 0x1s .field public static final GPS_MEASUREMENT_INTERRUPTED:Ljava/lang/String; = "V" .field public static final GPS_MEASUREMENT_IN_PROGRESS:Ljava/lang/String; = "A" .field public static final GPS_MEASUREMENT_NO_DIFFERENTIAL:S = 0x0s .field public static final GPS_SPEED_KILOMETERS_PER_HOUR:Ljava/lang/String; = "K" .field public static final GPS_SPEED_KNOTS:Ljava/lang/String; = "N" .field public static final GPS_SPEED_MILES_PER_HOUR:Ljava/lang/String; = "M" .field public static final HEIF_BRAND_HEIC:[B .field public static final HEIF_BRAND_MIF1:[B .field public static final HEIF_TYPE_FTYP:[B .field public static final IDENTIFIER_EXIF_APP1:[B .field public static final IDENTIFIER_XMP_APP1:[B .field public static final IFD_EXIF_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; .field public static final IFD_FORMAT_BYTE:I = 0x1 .field public static final IFD_FORMAT_BYTES_PER_FORMAT:[I .field public static final IFD_FORMAT_DOUBLE:I = 0xc .field public static final IFD_FORMAT_IFD:I = 0xd .field public static final IFD_FORMAT_NAMES:[Ljava/lang/String; .field public static final IFD_FORMAT_SBYTE:I = 0x6 .field public static final IFD_FORMAT_SINGLE:I = 0xb .field public static final IFD_FORMAT_SLONG:I = 0x9 .field public static final IFD_FORMAT_SRATIONAL:I = 0xa .field public static final IFD_FORMAT_SSHORT:I = 0x8 .field public static final IFD_FORMAT_STRING:I = 0x2 .field public static final IFD_FORMAT_ULONG:I = 0x4 .field public static final IFD_FORMAT_UNDEFINED:I = 0x7 .field public static final IFD_FORMAT_URATIONAL:I = 0x5 .field public static final IFD_FORMAT_USHORT:I = 0x3 .field public static final IFD_GPS_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; .field public static final IFD_INTEROPERABILITY_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; .field public static final IFD_OFFSET:I = 0x8 .field public static final IFD_THUMBNAIL_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; .field public static final IFD_TIFF_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; .field public static final IFD_TYPE_EXIF:I = 0x1 .field public static final IFD_TYPE_GPS:I = 0x2 .field public static final IFD_TYPE_INTEROPERABILITY:I = 0x3 .field public static final IFD_TYPE_ORF_CAMERA_SETTINGS:I = 0x7 .field public static final IFD_TYPE_ORF_IMAGE_PROCESSING:I = 0x8 .field public static final IFD_TYPE_ORF_MAKER_NOTE:I = 0x6 .field public static final IFD_TYPE_PEF:I = 0x9 .field public static final IFD_TYPE_PREVIEW:I = 0x5 .field public static final IFD_TYPE_PRIMARY:I = 0x0 .field public static final IFD_TYPE_THUMBNAIL:I = 0x4 .field public static final IMAGE_TYPE_ARW:I = 0x1 .field public static final IMAGE_TYPE_CR2:I = 0x2 .field public static final IMAGE_TYPE_DNG:I = 0x3 .field public static final IMAGE_TYPE_HEIF:I = 0xc .field public static final IMAGE_TYPE_JPEG:I = 0x4 .field public static final IMAGE_TYPE_NEF:I = 0x5 .field public static final IMAGE_TYPE_NRW:I = 0x6 .field public static final IMAGE_TYPE_ORF:I = 0x7 .field public static final IMAGE_TYPE_PEF:I = 0x8 .field public static final IMAGE_TYPE_PNG:I = 0xd .field public static final IMAGE_TYPE_RAF:I = 0x9 .field public static final IMAGE_TYPE_RW2:I = 0xa .field public static final IMAGE_TYPE_SRW:I = 0xb .field public static final IMAGE_TYPE_UNKNOWN:I = 0x0 .field public static final IMAGE_TYPE_WEBP:I = 0xe .field public static final JPEG_INTERCHANGE_FORMAT_LENGTH_TAG:Landroidx/exifinterface/media/ExifInterface$ExifTag; .field public static final JPEG_INTERCHANGE_FORMAT_TAG:Landroidx/exifinterface/media/ExifInterface$ExifTag; .field public static final JPEG_SIGNATURE:[B .field public static final LATITUDE_NORTH:Ljava/lang/String; = "N" .field public static final LATITUDE_SOUTH:Ljava/lang/String; = "S" .field public static final LIGHT_SOURCE_CLOUDY_WEATHER:S = 0xas .field public static final LIGHT_SOURCE_COOL_WHITE_FLUORESCENT:S = 0xes .field public static final LIGHT_SOURCE_D50:S = 0x17s .field public static final LIGHT_SOURCE_D55:S = 0x14s .field public static final LIGHT_SOURCE_D65:S = 0x15s .field public static final LIGHT_SOURCE_D75:S = 0x16s .field public static final LIGHT_SOURCE_DAYLIGHT:S = 0x1s .field public static final LIGHT_SOURCE_DAYLIGHT_FLUORESCENT:S = 0xcs .field public static final LIGHT_SOURCE_DAY_WHITE_FLUORESCENT:S = 0xds .field public static final LIGHT_SOURCE_FINE_WEATHER:S = 0x9s .field public static final LIGHT_SOURCE_FLASH:S = 0x4s .field public static final LIGHT_SOURCE_FLUORESCENT:S = 0x2s .field public static final LIGHT_SOURCE_ISO_STUDIO_TUNGSTEN:S = 0x18s .field public static final LIGHT_SOURCE_OTHER:S = 0xffs .field public static final LIGHT_SOURCE_SHADE:S = 0xbs .field public static final LIGHT_SOURCE_STANDARD_LIGHT_A:S = 0x11s .field public static final LIGHT_SOURCE_STANDARD_LIGHT_B:S = 0x12s .field public static final LIGHT_SOURCE_STANDARD_LIGHT_C:S = 0x13s .field public static final LIGHT_SOURCE_TUNGSTEN:S = 0x3s .field public static final LIGHT_SOURCE_UNKNOWN:S = 0x0s .field public static final LIGHT_SOURCE_WARM_WHITE_FLUORESCENT:S = 0x10s .field public static final LIGHT_SOURCE_WHITE_FLUORESCENT:S = 0xfs .field public static final LONGITUDE_EAST:Ljava/lang/String; = "E" .field public static final LONGITUDE_WEST:Ljava/lang/String; = "W" .field public static final MARKER:B = -0x1t .field public static final MARKER_APP1:B = -0x1ft .field public static final MARKER_COM:B = -0x2t .field public static final MARKER_EOI:B = -0x27t .field public static final MARKER_SOF0:B = -0x40t .field public static final MARKER_SOF1:B = -0x3ft .field public static final MARKER_SOF10:B = -0x36t .field public static final MARKER_SOF11:B = -0x35t .field public static final MARKER_SOF13:B = -0x33t .field public static final MARKER_SOF14:B = -0x32t .field public static final MARKER_SOF15:B = -0x31t .field public static final MARKER_SOF2:B = -0x3et .field public static final MARKER_SOF3:B = -0x3dt .field public static final MARKER_SOF5:B = -0x3bt .field public static final MARKER_SOF6:B = -0x3at .field public static final MARKER_SOF7:B = -0x39t .field public static final MARKER_SOF9:B = -0x37t .field public static final MARKER_SOI:B = -0x28t .field public static final MARKER_SOS:B = -0x26t .field public static final MAX_THUMBNAIL_SIZE:I = 0x200 .field public static final METERING_MODE_AVERAGE:S = 0x1s .field public static final METERING_MODE_CENTER_WEIGHT_AVERAGE:S = 0x2s .field public static final METERING_MODE_MULTI_SPOT:S = 0x4s .field public static final METERING_MODE_OTHER:S = 0xffs .field public static final METERING_MODE_PARTIAL:S = 0x6s .field public static final METERING_MODE_PATTERN:S = 0x5s .field public static final METERING_MODE_SPOT:S = 0x3s .field public static final METERING_MODE_UNKNOWN:S = 0x0s .field public static final ORF_CAMERA_SETTINGS_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; .field public static final ORF_IMAGE_PROCESSING_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; .field public static final ORF_MAKER_NOTE_HEADER_1:[B .field public static final ORF_MAKER_NOTE_HEADER_1_SIZE:I = 0x8 .field public static final ORF_MAKER_NOTE_HEADER_2:[B .field public static final ORF_MAKER_NOTE_HEADER_2_SIZE:I = 0xc .field public static final ORF_MAKER_NOTE_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; .field public static final ORF_SIGNATURE_1:S = 0x4f52s .field public static final ORF_SIGNATURE_2:S = 0x5352s .field public static final ORIENTATION_FLIP_HORIZONTAL:I = 0x2 .field public static final ORIENTATION_FLIP_VERTICAL:I = 0x4 .field public static final ORIENTATION_NORMAL:I = 0x1 .field public static final ORIENTATION_ROTATE_180:I = 0x3 .field public static final ORIENTATION_ROTATE_270:I = 0x8 .field public static final ORIENTATION_ROTATE_90:I = 0x6 .field public static final ORIENTATION_TRANSPOSE:I = 0x5 .field public static final ORIENTATION_TRANSVERSE:I = 0x7 .field public static final ORIENTATION_UNDEFINED:I = 0x0 .field public static final ORIGINAL_RESOLUTION_IMAGE:I = 0x0 .field public static final PEF_MAKER_NOTE_SKIP_SIZE:I = 0x6 .field public static final PEF_SIGNATURE:Ljava/lang/String; = "PENTAX" .field public static final PEF_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; .field public static final PHOTOMETRIC_INTERPRETATION_BLACK_IS_ZERO:I = 0x1 .field public static final PHOTOMETRIC_INTERPRETATION_RGB:I = 0x2 .field public static final PHOTOMETRIC_INTERPRETATION_WHITE_IS_ZERO:I = 0x0 .field public static final PHOTOMETRIC_INTERPRETATION_YCBCR:I = 0x6 .field public static final PNG_CHUNK_CRC_BYTE_LENGTH:I = 0x4 .field public static final PNG_CHUNK_TYPE_BYTE_LENGTH:I = 0x4 .field public static final PNG_CHUNK_TYPE_EXIF:[B .field public static final PNG_CHUNK_TYPE_IEND:[B .field public static final PNG_CHUNK_TYPE_IHDR:[B .field public static final PNG_SIGNATURE:[B .field public static final RAF_JPEG_LENGTH_VALUE_SIZE:I = 0x4 .field public static final RAF_OFFSET_TO_JPEG_IMAGE_OFFSET:I = 0x54 .field public static final RAF_SIGNATURE:Ljava/lang/String; = "FUJIFILMCCD-RAW" .field public static final REDUCED_RESOLUTION_IMAGE:I = 0x1 .field public static final RENDERED_PROCESS_CUSTOM:S = 0x1s .field public static final RENDERED_PROCESS_NORMAL:S = 0x0s .field public static final RESOLUTION_UNIT_CENTIMETERS:S = 0x3s .field public static final RESOLUTION_UNIT_INCHES:S = 0x2s .field public static final ROTATION_ORDER:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Ljava/lang/Integer;", ">;" } .end annotation .end field .field public static final RW2_SIGNATURE:S = 0x55s .field public static final SATURATION_HIGH:S = 0x0s .field public static final SATURATION_LOW:S = 0x0s .field public static final SATURATION_NORMAL:S = 0x0s .field public static final SCENE_CAPTURE_TYPE_LANDSCAPE:S = 0x1s .field public static final SCENE_CAPTURE_TYPE_NIGHT:S = 0x3s .field public static final SCENE_CAPTURE_TYPE_PORTRAIT:S = 0x2s .field public static final SCENE_CAPTURE_TYPE_STANDARD:S = 0x0s .field public static final SCENE_TYPE_DIRECTLY_PHOTOGRAPHED:S = 0x1s .field public static final SENSITIVITY_TYPE_ISO_SPEED:S = 0x3s .field public static final SENSITIVITY_TYPE_REI:S = 0x2s .field public static final SENSITIVITY_TYPE_REI_AND_ISO:S = 0x6s .field public static final SENSITIVITY_TYPE_SOS:S = 0x1s .field public static final SENSITIVITY_TYPE_SOS_AND_ISO:S = 0x5s .field public static final SENSITIVITY_TYPE_SOS_AND_REI:S = 0x4s .field public static final SENSITIVITY_TYPE_SOS_AND_REI_AND_ISO:S = 0x7s .field public static final SENSITIVITY_TYPE_UNKNOWN:S = 0x0s .field public static final SENSOR_TYPE_COLOR_SEQUENTIAL:S = 0x5s .field public static final SENSOR_TYPE_COLOR_SEQUENTIAL_LINEAR:S = 0x8s .field public static final SENSOR_TYPE_NOT_DEFINED:S = 0x1s .field public static final SENSOR_TYPE_ONE_CHIP:S = 0x2s .field public static final SENSOR_TYPE_THREE_CHIP:S = 0x4s .field public static final SENSOR_TYPE_TRILINEAR:S = 0x7s .field public static final SENSOR_TYPE_TWO_CHIP:S = 0x3s .field public static final SHARPNESS_HARD:S = 0x2s .field public static final SHARPNESS_NORMAL:S = 0x0s .field public static final SHARPNESS_SOFT:S = 0x1s .field public static final SIGNATURE_CHECK_SIZE:I = 0x1388 .field public static final START_CODE:B = 0x2at .field public static final STREAM_TYPE_EXIF_DATA_ONLY:I = 0x1 .field public static final STREAM_TYPE_FULL_IMAGE_DATA:I = 0x0 .field public static final SUBJECT_DISTANCE_RANGE_CLOSE_VIEW:S = 0x2s .field public static final SUBJECT_DISTANCE_RANGE_DISTANT_VIEW:S = 0x3s .field public static final SUBJECT_DISTANCE_RANGE_MACRO:S = 0x1s .field public static final SUBJECT_DISTANCE_RANGE_UNKNOWN:S = 0x0s .field public static final TAG:Ljava/lang/String; = "ExifInterface" .field public static final TAG_APERTURE_VALUE:Ljava/lang/String; = "ApertureValue" .field public static final TAG_ARTIST:Ljava/lang/String; = "Artist" .field public static final TAG_BITS_PER_SAMPLE:Ljava/lang/String; = "BitsPerSample" .field public static final TAG_BODY_SERIAL_NUMBER:Ljava/lang/String; = "BodySerialNumber" .field public static final TAG_BRIGHTNESS_VALUE:Ljava/lang/String; = "BrightnessValue" .field public static final TAG_CAMARA_OWNER_NAME:Ljava/lang/String; = "CameraOwnerName" .annotation runtime Ljava/lang/Deprecated; .end annotation .end field .field public static final TAG_CAMERA_OWNER_NAME:Ljava/lang/String; = "CameraOwnerName" .field public static final TAG_CFA_PATTERN:Ljava/lang/String; = "CFAPattern" .field public static final TAG_COLOR_SPACE:Ljava/lang/String; = "ColorSpace" .field public static final TAG_COMPONENTS_CONFIGURATION:Ljava/lang/String; = "ComponentsConfiguration" .field public static final TAG_COMPRESSED_BITS_PER_PIXEL:Ljava/lang/String; = "CompressedBitsPerPixel" .field public static final TAG_COMPRESSION:Ljava/lang/String; = "Compression" .field public static final TAG_CONTRAST:Ljava/lang/String; = "Contrast" .field public static final TAG_COPYRIGHT:Ljava/lang/String; = "Copyright" .field public static final TAG_CUSTOM_RENDERED:Ljava/lang/String; = "CustomRendered" .field public static final TAG_DATETIME:Ljava/lang/String; = "DateTime" .field public static final TAG_DATETIME_DIGITIZED:Ljava/lang/String; = "DateTimeDigitized" .field public static final TAG_DATETIME_ORIGINAL:Ljava/lang/String; = "DateTimeOriginal" .field public static final TAG_DEFAULT_CROP_SIZE:Ljava/lang/String; = "DefaultCropSize" .field public static final TAG_DEVICE_SETTING_DESCRIPTION:Ljava/lang/String; = "DeviceSettingDescription" .field public static final TAG_DIGITAL_ZOOM_RATIO:Ljava/lang/String; = "DigitalZoomRatio" .field public static final TAG_DNG_VERSION:Ljava/lang/String; = "DNGVersion" .field public static final TAG_EXIF_IFD_POINTER:Ljava/lang/String; = "ExifIFDPointer" .field public static final TAG_EXIF_VERSION:Ljava/lang/String; = "ExifVersion" .field public static final TAG_EXPOSURE_BIAS_VALUE:Ljava/lang/String; = "ExposureBiasValue" .field public static final TAG_EXPOSURE_INDEX:Ljava/lang/String; = "ExposureIndex" .field public static final TAG_EXPOSURE_MODE:Ljava/lang/String; = "ExposureMode" .field public static final TAG_EXPOSURE_PROGRAM:Ljava/lang/String; = "ExposureProgram" .field public static final TAG_EXPOSURE_TIME:Ljava/lang/String; = "ExposureTime" .field public static final TAG_FILE_SOURCE:Ljava/lang/String; = "FileSource" .field public static final TAG_FLASH:Ljava/lang/String; = "Flash" .field public static final TAG_FLASHPIX_VERSION:Ljava/lang/String; = "FlashpixVersion" .field public static final TAG_FLASH_ENERGY:Ljava/lang/String; = "FlashEnergy" .field public static final TAG_FOCAL_LENGTH:Ljava/lang/String; = "FocalLength" .field public static final TAG_FOCAL_LENGTH_IN_35MM_FILM:Ljava/lang/String; = "FocalLengthIn35mmFilm" .field public static final TAG_FOCAL_PLANE_RESOLUTION_UNIT:Ljava/lang/String; = "FocalPlaneResolutionUnit" .field public static final TAG_FOCAL_PLANE_X_RESOLUTION:Ljava/lang/String; = "FocalPlaneXResolution" .field public static final TAG_FOCAL_PLANE_Y_RESOLUTION:Ljava/lang/String; = "FocalPlaneYResolution" .field public static final TAG_F_NUMBER:Ljava/lang/String; = "FNumber" .field public static final TAG_GAIN_CONTROL:Ljava/lang/String; = "GainControl" .field public static final TAG_GAMMA:Ljava/lang/String; = "Gamma" .field public static final TAG_GPS_ALTITUDE:Ljava/lang/String; = "GPSAltitude" .field public static final TAG_GPS_ALTITUDE_REF:Ljava/lang/String; = "GPSAltitudeRef" .field public static final TAG_GPS_AREA_INFORMATION:Ljava/lang/String; = "GPSAreaInformation" .field public static final TAG_GPS_DATESTAMP:Ljava/lang/String; = "GPSDateStamp" .field public static final TAG_GPS_DEST_BEARING:Ljava/lang/String; = "GPSDestBearing" .field public static final TAG_GPS_DEST_BEARING_REF:Ljava/lang/String; = "GPSDestBearingRef" .field public static final TAG_GPS_DEST_DISTANCE:Ljava/lang/String; = "GPSDestDistance" .field public static final TAG_GPS_DEST_DISTANCE_REF:Ljava/lang/String; = "GPSDestDistanceRef" .field public static final TAG_GPS_DEST_LATITUDE:Ljava/lang/String; = "GPSDestLatitude" .field public static final TAG_GPS_DEST_LATITUDE_REF:Ljava/lang/String; = "GPSDestLatitudeRef" .field public static final TAG_GPS_DEST_LONGITUDE:Ljava/lang/String; = "GPSDestLongitude" .field public static final TAG_GPS_DEST_LONGITUDE_REF:Ljava/lang/String; = "GPSDestLongitudeRef" .field public static final TAG_GPS_DIFFERENTIAL:Ljava/lang/String; = "GPSDifferential" .field public static final TAG_GPS_DOP:Ljava/lang/String; = "GPSDOP" .field public static final TAG_GPS_H_POSITIONING_ERROR:Ljava/lang/String; = "GPSHPositioningError" .field public static final TAG_GPS_IMG_DIRECTION:Ljava/lang/String; = "GPSImgDirection" .field public static final TAG_GPS_IMG_DIRECTION_REF:Ljava/lang/String; = "GPSImgDirectionRef" .field public static final TAG_GPS_INFO_IFD_POINTER:Ljava/lang/String; = "GPSInfoIFDPointer" .field public static final TAG_GPS_LATITUDE:Ljava/lang/String; = "GPSLatitude" .field public static final TAG_GPS_LATITUDE_REF:Ljava/lang/String; = "GPSLatitudeRef" .field public static final TAG_GPS_LONGITUDE:Ljava/lang/String; = "GPSLongitude" .field public static final TAG_GPS_LONGITUDE_REF:Ljava/lang/String; = "GPSLongitudeRef" .field public static final TAG_GPS_MAP_DATUM:Ljava/lang/String; = "GPSMapDatum" .field public static final TAG_GPS_MEASURE_MODE:Ljava/lang/String; = "GPSMeasureMode" .field public static final TAG_GPS_PROCESSING_METHOD:Ljava/lang/String; = "GPSProcessingMethod" .field public static final TAG_GPS_SATELLITES:Ljava/lang/String; = "GPSSatellites" .field public static final TAG_GPS_SPEED:Ljava/lang/String; = "GPSSpeed" .field public static final TAG_GPS_SPEED_REF:Ljava/lang/String; = "GPSSpeedRef" .field public static final TAG_GPS_STATUS:Ljava/lang/String; = "GPSStatus" .field public static final TAG_GPS_TIMESTAMP:Ljava/lang/String; = "GPSTimeStamp" .field public static final TAG_GPS_TRACK:Ljava/lang/String; = "GPSTrack" .field public static final TAG_GPS_TRACK_REF:Ljava/lang/String; = "GPSTrackRef" .field public static final TAG_GPS_VERSION_ID:Ljava/lang/String; = "GPSVersionID" .field public static final TAG_IMAGE_DESCRIPTION:Ljava/lang/String; = "ImageDescription" .field public static final TAG_IMAGE_LENGTH:Ljava/lang/String; = "ImageLength" .field public static final TAG_IMAGE_UNIQUE_ID:Ljava/lang/String; = "ImageUniqueID" .field public static final TAG_IMAGE_WIDTH:Ljava/lang/String; = "ImageWidth" .field public static final TAG_INTEROPERABILITY_IFD_POINTER:Ljava/lang/String; = "InteroperabilityIFDPointer" .field public static final TAG_INTEROPERABILITY_INDEX:Ljava/lang/String; = "InteroperabilityIndex" .field public static final TAG_ISO_SPEED:Ljava/lang/String; = "ISOSpeed" .field public static final TAG_ISO_SPEED_LATITUDE_YYY:Ljava/lang/String; = "ISOSpeedLatitudeyyy" .field public static final TAG_ISO_SPEED_LATITUDE_ZZZ:Ljava/lang/String; = "ISOSpeedLatitudezzz" .field public static final TAG_ISO_SPEED_RATINGS:Ljava/lang/String; = "ISOSpeedRatings" .annotation runtime Ljava/lang/Deprecated; .end annotation .end field .field public static final TAG_JPEG_INTERCHANGE_FORMAT:Ljava/lang/String; = "JPEGInterchangeFormat" .field public static final TAG_JPEG_INTERCHANGE_FORMAT_LENGTH:Ljava/lang/String; = "JPEGInterchangeFormatLength" .field public static final TAG_LENS_MAKE:Ljava/lang/String; = "LensMake" .field public static final TAG_LENS_MODEL:Ljava/lang/String; = "LensModel" .field public static final TAG_LENS_SERIAL_NUMBER:Ljava/lang/String; = "LensSerialNumber" .field public static final TAG_LENS_SPECIFICATION:Ljava/lang/String; = "LensSpecification" .field public static final TAG_LIGHT_SOURCE:Ljava/lang/String; = "LightSource" .field public static final TAG_MAKE:Ljava/lang/String; = "Make" .field public static final TAG_MAKER_NOTE:Ljava/lang/String; = "MakerNote" .field public static final TAG_MAX_APERTURE_VALUE:Ljava/lang/String; = "MaxApertureValue" .field public static final TAG_METERING_MODE:Ljava/lang/String; = "MeteringMode" .field public static final TAG_MODEL:Ljava/lang/String; = "Model" .field public static final TAG_NEW_SUBFILE_TYPE:Ljava/lang/String; = "NewSubfileType" .field public static final TAG_OECF:Ljava/lang/String; = "OECF" .field public static final TAG_OFFSET_TIME:Ljava/lang/String; = "OffsetTime" .field public static final TAG_OFFSET_TIME_DIGITIZED:Ljava/lang/String; = "OffsetTimeDigitized" .field public static final TAG_OFFSET_TIME_ORIGINAL:Ljava/lang/String; = "OffsetTimeOriginal" .field public static final TAG_ORF_ASPECT_FRAME:Ljava/lang/String; = "AspectFrame" .field public static final TAG_ORF_CAMERA_SETTINGS_IFD_POINTER:Ljava/lang/String; = "CameraSettingsIFDPointer" .field public static final TAG_ORF_IMAGE_PROCESSING_IFD_POINTER:Ljava/lang/String; = "ImageProcessingIFDPointer" .field public static final TAG_ORF_PREVIEW_IMAGE_LENGTH:Ljava/lang/String; = "PreviewImageLength" .field public static final TAG_ORF_PREVIEW_IMAGE_START:Ljava/lang/String; = "PreviewImageStart" .field public static final TAG_ORF_THUMBNAIL_IMAGE:Ljava/lang/String; = "ThumbnailImage" .field public static final TAG_ORIENTATION:Ljava/lang/String; = "Orientation" .field public static final TAG_PHOTOGRAPHIC_SENSITIVITY:Ljava/lang/String; = "PhotographicSensitivity" .field public static final TAG_PHOTOMETRIC_INTERPRETATION:Ljava/lang/String; = "PhotometricInterpretation" .field public static final TAG_PIXEL_X_DIMENSION:Ljava/lang/String; = "PixelXDimension" .field public static final TAG_PIXEL_Y_DIMENSION:Ljava/lang/String; = "PixelYDimension" .field public static final TAG_PLANAR_CONFIGURATION:Ljava/lang/String; = "PlanarConfiguration" .field public static final TAG_PRIMARY_CHROMATICITIES:Ljava/lang/String; = "PrimaryChromaticities" .field public static final TAG_RAF_IMAGE_SIZE:Landroidx/exifinterface/media/ExifInterface$ExifTag; .field public static final TAG_RECOMMENDED_EXPOSURE_INDEX:Ljava/lang/String; = "RecommendedExposureIndex" .field public static final TAG_REFERENCE_BLACK_WHITE:Ljava/lang/String; = "ReferenceBlackWhite" .field public static final TAG_RELATED_SOUND_FILE:Ljava/lang/String; = "RelatedSoundFile" .field public static final TAG_RESOLUTION_UNIT:Ljava/lang/String; = "ResolutionUnit" .field public static final TAG_ROWS_PER_STRIP:Ljava/lang/String; = "RowsPerStrip" .field public static final TAG_RW2_ISO:Ljava/lang/String; = "ISO" .field public static final TAG_RW2_JPG_FROM_RAW:Ljava/lang/String; = "JpgFromRaw" .field public static final TAG_RW2_SENSOR_BOTTOM_BORDER:Ljava/lang/String; = "SensorBottomBorder" .field public static final TAG_RW2_SENSOR_LEFT_BORDER:Ljava/lang/String; = "SensorLeftBorder" .field public static final TAG_RW2_SENSOR_RIGHT_BORDER:Ljava/lang/String; = "SensorRightBorder" .field public static final TAG_RW2_SENSOR_TOP_BORDER:Ljava/lang/String; = "SensorTopBorder" .field public static final TAG_SAMPLES_PER_PIXEL:Ljava/lang/String; = "SamplesPerPixel" .field public static final TAG_SATURATION:Ljava/lang/String; = "Saturation" .field public static final TAG_SCENE_CAPTURE_TYPE:Ljava/lang/String; = "SceneCaptureType" .field public static final TAG_SCENE_TYPE:Ljava/lang/String; = "SceneType" .field public static final TAG_SENSING_METHOD:Ljava/lang/String; = "SensingMethod" .field public static final TAG_SENSITIVITY_TYPE:Ljava/lang/String; = "SensitivityType" .field public static final TAG_SHARPNESS:Ljava/lang/String; = "Sharpness" .field public static final TAG_SHUTTER_SPEED_VALUE:Ljava/lang/String; = "ShutterSpeedValue" .field public static final TAG_SOFTWARE:Ljava/lang/String; = "Software" .field public static final TAG_SPATIAL_FREQUENCY_RESPONSE:Ljava/lang/String; = "SpatialFrequencyResponse" .field public static final TAG_SPECTRAL_SENSITIVITY:Ljava/lang/String; = "SpectralSensitivity" .field public static final TAG_STANDARD_OUTPUT_SENSITIVITY:Ljava/lang/String; = "StandardOutputSensitivity" .field public static final TAG_STRIP_BYTE_COUNTS:Ljava/lang/String; = "StripByteCounts" .field public static final TAG_STRIP_OFFSETS:Ljava/lang/String; = "StripOffsets" .field public static final TAG_SUBFILE_TYPE:Ljava/lang/String; = "SubfileType" .field public static final TAG_SUBJECT_AREA:Ljava/lang/String; = "SubjectArea" .field public static final TAG_SUBJECT_DISTANCE:Ljava/lang/String; = "SubjectDistance" .field public static final TAG_SUBJECT_DISTANCE_RANGE:Ljava/lang/String; = "SubjectDistanceRange" .field public static final TAG_SUBJECT_LOCATION:Ljava/lang/String; = "SubjectLocation" .field public static final TAG_SUBSEC_TIME:Ljava/lang/String; = "SubSecTime" .field public static final TAG_SUBSEC_TIME_DIGITIZED:Ljava/lang/String; = "SubSecTimeDigitized" .field public static final TAG_SUBSEC_TIME_ORIGINAL:Ljava/lang/String; = "SubSecTimeOriginal" .field public static final TAG_SUB_IFD_POINTER:Ljava/lang/String; = "SubIFDPointer" .field public static final TAG_THUMBNAIL_IMAGE_LENGTH:Ljava/lang/String; = "ThumbnailImageLength" .field public static final TAG_THUMBNAIL_IMAGE_WIDTH:Ljava/lang/String; = "ThumbnailImageWidth" .field public static final TAG_THUMBNAIL_ORIENTATION:Ljava/lang/String; = "ThumbnailOrientation" .annotation build Landroidx/annotation/RestrictTo; value = { .enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope; } .end annotation .end field .field public static final TAG_TRANSFER_FUNCTION:Ljava/lang/String; = "TransferFunction" .field public static final TAG_USER_COMMENT:Ljava/lang/String; = "UserComment" .field public static final TAG_WHITE_BALANCE:Ljava/lang/String; = "WhiteBalance" .field public static final TAG_WHITE_POINT:Ljava/lang/String; = "WhitePoint" .field public static final TAG_XMP:Ljava/lang/String; = "Xmp" .field public static final TAG_X_RESOLUTION:Ljava/lang/String; = "XResolution" .field public static final TAG_Y_CB_CR_COEFFICIENTS:Ljava/lang/String; = "YCbCrCoefficients" .field public static final TAG_Y_CB_CR_POSITIONING:Ljava/lang/String; = "YCbCrPositioning" .field public static final TAG_Y_CB_CR_SUB_SAMPLING:Ljava/lang/String; = "YCbCrSubSampling" .field public static final TAG_Y_RESOLUTION:Ljava/lang/String; = "YResolution" .field public static final WEBP_CHUNK_SIZE_BYTE_LENGTH:I = 0x4 .field public static final WEBP_CHUNK_TYPE_ANIM:[B .field public static final WEBP_CHUNK_TYPE_ANMF:[B .field public static final WEBP_CHUNK_TYPE_BYTE_LENGTH:I = 0x4 .field public static final WEBP_CHUNK_TYPE_EXIF:[B .field public static final WEBP_CHUNK_TYPE_VP8:[B .field public static final WEBP_CHUNK_TYPE_VP8L:[B .field public static final WEBP_CHUNK_TYPE_VP8X:[B .field public static final WEBP_CHUNK_TYPE_VP8X_DEFAULT_LENGTH:I = 0xa .field public static final WEBP_CHUNK_TYPE_XMP:[B .field public static final WEBP_FILE_SIZE_BYTE_LENGTH:I = 0x4 .field public static final WEBP_SIGNATURE_1:[B .field public static final WEBP_SIGNATURE_2:[B .field public static final WEBP_VP8L_SIGNATURE:B = 0x2ft .field public static final WEBP_VP8_SIGNATURE:[B .field public static final WHITEBALANCE_AUTO:I = 0x0 .annotation runtime Ljava/lang/Deprecated; .end annotation .end field .field public static final WHITEBALANCE_MANUAL:I = 0x1 .annotation runtime Ljava/lang/Deprecated; .end annotation .end field .field public static final WHITE_BALANCE_AUTO:S = 0x0s .field public static final WHITE_BALANCE_MANUAL:S = 0x1s .field public static final Y_CB_CR_POSITIONING_CENTERED:S = 0x1s .field public static final Y_CB_CR_POSITIONING_CO_SITED:S = 0x2s .field public static final sExifPointerTagMap:Ljava/util/HashMap; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/HashMap<", "Ljava/lang/Integer;", "Ljava/lang/Integer;", ">;" } .end annotation .end field .field public static final sExifTagMapsForReading:[Ljava/util/HashMap; .annotation system Ldalvik/annotation/Signature; value = { "[", "Ljava/util/HashMap<", "Ljava/lang/Integer;", "Landroidx/exifinterface/media/ExifInterface$ExifTag;", ">;" } .end annotation .end field .field public static final sExifTagMapsForWriting:[Ljava/util/HashMap; .annotation system Ldalvik/annotation/Signature; value = { "[", "Ljava/util/HashMap<", "Ljava/lang/String;", "Landroidx/exifinterface/media/ExifInterface$ExifTag;", ">;" } .end annotation .end field .field public static sFormatter:Ljava/text/SimpleDateFormat; .field public static final sGpsTimestampPattern:Ljava/util/regex/Pattern; .field public static final sNonZeroTimePattern:Ljava/util/regex/Pattern; .field public static final sTagSetForCompatibility:Ljava/util/HashSet; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/HashSet<", "Ljava/lang/String;", ">;" } .end annotation .end field # instance fields .field public mAreThumbnailStripsConsecutive:Z .field public mAssetInputStream:Landroid/content/res/AssetManager$AssetInputStream; .field public final mAttributes:[Ljava/util/HashMap; .annotation system Ldalvik/annotation/Signature; value = { "[", "Ljava/util/HashMap<", "Ljava/lang/String;", "Landroidx/exifinterface/media/ExifInterface$ExifAttribute;", ">;" } .end annotation .end field .field public mAttributesOffsets:Ljava/util/Set; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Set<", "Ljava/lang/Integer;", ">;" } .end annotation .end field .field public mExifByteOrder:Ljava/nio/ByteOrder; .field public mExifOffset:I .field public mFilename:Ljava/lang/String; .field public mHasThumbnail:Z .field public mHasThumbnailStrips:Z .field public mIsExifDataOnly:Z .field public mIsSupportedFile:Z .field public mMimeType:I .field public mModified:Z .field public mOrfMakerNoteOffset:I .field public mOrfThumbnailLength:I .field public mOrfThumbnailOffset:I .field public mRw2JpgFromRawOffset:I .field public mSeekableFileDescriptor:Ljava/io/FileDescriptor; .field public mThumbnailBytes:[B .field public mThumbnailCompression:I .field public mThumbnailLength:I .field public mThumbnailOffset:I .field public mXmpIsFromSeparateMarker:Z # direct methods .method public static constructor ()V .locals 30 const-string v0, "ExifInterface" const/4 v1, 0x3 invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v2 invoke-static {v0, v1}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z move-result v0 sput-boolean v0, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z const/4 v0, 0x4 new-array v3, v0, [Ljava/lang/Integer; const/4 v4, 0x1 invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v5 const/4 v6, 0x0 aput-object v5, v3, v6 const/4 v7, 0x6 invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v8 aput-object v8, v3, v4 const/4 v8, 0x2 invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v9 aput-object v2, v3, v8 const/16 v10, 0x8 invoke-static {v10}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v11 aput-object v11, v3, v1 invoke-static {v3}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; move-result-object v3 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->ROTATION_ORDER:Ljava/util/List; new-array v3, v0, [Ljava/lang/Integer; aput-object v9, v3, v6 const/4 v12, 0x7 invoke-static {v12}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v13 aput-object v13, v3, v4 invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v14 aput-object v14, v3, v8 const/4 v14, 0x5 invoke-static {v14}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v15 aput-object v15, v3, v1 invoke-static {v3}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; move-result-object v3 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->FLIPPED_ROTATION_ORDER:Ljava/util/List; new-array v3, v1, [I fill-array-data v3, :array_0 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->BITS_PER_SAMPLE_RGB:[I new-array v3, v4, [I aput v0, v3, v6 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->BITS_PER_SAMPLE_GREYSCALE_1:[I new-array v3, v4, [I aput v10, v3, v6 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->BITS_PER_SAMPLE_GREYSCALE_2:[I new-array v3, v1, [B fill-array-data v3, :array_1 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->JPEG_SIGNATURE:[B new-array v3, v0, [B fill-array-data v3, :array_2 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->HEIF_TYPE_FTYP:[B new-array v3, v0, [B fill-array-data v3, :array_3 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->HEIF_BRAND_MIF1:[B new-array v3, v0, [B fill-array-data v3, :array_4 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->HEIF_BRAND_HEIC:[B new-array v3, v7, [B fill-array-data v3, :array_5 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->ORF_MAKER_NOTE_HEADER_1:[B const/16 v3, 0xa new-array v12, v3, [B fill-array-data v12, :array_6 sput-object v12, Landroidx/exifinterface/media/ExifInterface;->ORF_MAKER_NOTE_HEADER_2:[B new-array v12, v10, [B fill-array-data v12, :array_7 sput-object v12, Landroidx/exifinterface/media/ExifInterface;->PNG_SIGNATURE:[B new-array v12, v0, [B fill-array-data v12, :array_8 sput-object v12, Landroidx/exifinterface/media/ExifInterface;->PNG_CHUNK_TYPE_EXIF:[B new-array v12, v0, [B fill-array-data v12, :array_9 sput-object v12, Landroidx/exifinterface/media/ExifInterface;->PNG_CHUNK_TYPE_IHDR:[B new-array v12, v0, [B fill-array-data v12, :array_a sput-object v12, Landroidx/exifinterface/media/ExifInterface;->PNG_CHUNK_TYPE_IEND:[B new-array v12, v0, [B fill-array-data v12, :array_b sput-object v12, Landroidx/exifinterface/media/ExifInterface;->WEBP_SIGNATURE_1:[B new-array v12, v0, [B fill-array-data v12, :array_c sput-object v12, Landroidx/exifinterface/media/ExifInterface;->WEBP_SIGNATURE_2:[B new-array v12, v0, [B fill-array-data v12, :array_d sput-object v12, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_EXIF:[B new-array v12, v1, [B fill-array-data v12, :array_e sput-object v12, Landroidx/exifinterface/media/ExifInterface;->WEBP_VP8_SIGNATURE:[B invoke-static {}, Ljava/nio/charset/Charset;->defaultCharset()Ljava/nio/charset/Charset; move-result-object v12 const-string v3, "VP8X" invoke-virtual {v3, v12}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object v3 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_VP8X:[B invoke-static {}, Ljava/nio/charset/Charset;->defaultCharset()Ljava/nio/charset/Charset; move-result-object v3 const-string v12, "VP8L" invoke-virtual {v12, v3}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object v3 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_VP8L:[B invoke-static {}, Ljava/nio/charset/Charset;->defaultCharset()Ljava/nio/charset/Charset; move-result-object v3 const-string v12, "VP8 " invoke-virtual {v12, v3}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object v3 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_VP8:[B invoke-static {}, Ljava/nio/charset/Charset;->defaultCharset()Ljava/nio/charset/Charset; move-result-object v3 const-string v12, "ANIM" invoke-virtual {v12, v3}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object v3 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_ANIM:[B invoke-static {}, Ljava/nio/charset/Charset;->defaultCharset()Ljava/nio/charset/Charset; move-result-object v3 const-string v12, "ANMF" invoke-virtual {v12, v3}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object v3 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_ANMF:[B invoke-static {}, Ljava/nio/charset/Charset;->defaultCharset()Ljava/nio/charset/Charset; move-result-object v3 const-string v12, "XMP " invoke-virtual {v12, v3}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object v3 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_XMP:[B const-string v16, "" const-string v17, "BYTE" const-string v18, "STRING" const-string v19, "USHORT" const-string v20, "ULONG" const-string v21, "URATIONAL" const-string v22, "SBYTE" const-string v23, "UNDEFINED" const-string v24, "SSHORT" const-string v25, "SLONG" const-string v26, "SRATIONAL" const-string v27, "SINGLE" const-string v28, "DOUBLE" const-string v29, "IFD" filled-new-array/range {v16 .. v29}, [Ljava/lang/String; move-result-object v3 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->IFD_FORMAT_NAMES:[Ljava/lang/String; const/16 v3, 0xe new-array v12, v3, [I fill-array-data v12, :array_f sput-object v12, Landroidx/exifinterface/media/ExifInterface;->IFD_FORMAT_BYTES_PER_FORMAT:[I new-array v12, v10, [B fill-array-data v12, :array_10 sput-object v12, Landroidx/exifinterface/media/ExifInterface;->EXIF_ASCII_PREFIX:[B const/16 v12, 0x2a new-array v12, v12, [Landroidx/exifinterface/media/ExifInterface$ExifTag; new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v10, "NewSubfileType" const/16 v7, 0xfe invoke-direct {v3, v10, v7, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SubfileType" const/16 v10, 0xff invoke-direct {v3, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v3, v12, v4 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ImageWidth" const/16 v10, 0x100 invoke-direct {v3, v7, v10, v1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;III)V aput-object v3, v12, v8 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ImageLength" const/16 v10, 0x101 invoke-direct {v3, v7, v10, v1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;III)V aput-object v3, v12, v1 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "BitsPerSample" const/16 v10, 0x102 invoke-direct {v3, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v3, v12, v0 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Compression" const/16 v10, 0x103 invoke-direct {v3, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v3, v12, v14 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "PhotometricInterpretation" const/16 v10, 0x106 invoke-direct {v3, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/4 v7, 0x6 aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ImageDescription" const/16 v10, 0x10e invoke-direct {v3, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/4 v7, 0x7 aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Make" const/16 v10, 0x10f invoke-direct {v3, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x8 aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Model" const/16 v10, 0x110 invoke-direct {v3, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x9 aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v10, "StripOffsets" const/16 v7, 0x111 invoke-direct {v3, v10, v7, v1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;III)V const/16 v7, 0xa aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Orientation" const/16 v10, 0x112 invoke-direct {v3, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0xb aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v10, "SamplesPerPixel" const/16 v7, 0x115 invoke-direct {v3, v10, v7, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0xc aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v10, "RowsPerStrip" const/16 v7, 0x116 invoke-direct {v3, v10, v7, v1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;III)V const/16 v7, 0xd aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v10, "StripByteCounts" const/16 v7, 0x117 invoke-direct {v3, v10, v7, v1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;III)V const/16 v7, 0xe aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "XResolution" const/16 v10, 0x11a invoke-direct {v3, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0xf aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v10, "YResolution" const/16 v7, 0x11b invoke-direct {v3, v10, v7, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x10 aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v10, "PlanarConfiguration" const/16 v7, 0x11c invoke-direct {v3, v10, v7, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x11 aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v10, "ResolutionUnit" const/16 v7, 0x128 invoke-direct {v3, v10, v7, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x12 aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v10, "TransferFunction" const/16 v7, 0x12d invoke-direct {v3, v10, v7, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x13 aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v10, "Software" const/16 v7, 0x131 invoke-direct {v3, v10, v7, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x14 aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v10, "DateTime" const/16 v7, 0x132 invoke-direct {v3, v10, v7, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x15 aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Artist" const/16 v10, 0x13b invoke-direct {v3, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x16 aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "WhitePoint" const/16 v10, 0x13e invoke-direct {v3, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x17 aput-object v3, v12, v7 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v10, "PrimaryChromaticities" const/16 v6, 0x13f invoke-direct {v3, v10, v6, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x18 aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "SubIFDPointer" const/16 v10, 0x14a invoke-direct {v3, v6, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x19 aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "JPEGInterchangeFormat" const/16 v10, 0x201 invoke-direct {v3, v6, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x1a aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "JPEGInterchangeFormatLength" const/16 v10, 0x202 invoke-direct {v3, v6, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x1b aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "YCbCrCoefficients" const/16 v10, 0x211 invoke-direct {v3, v6, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x1c aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "YCbCrSubSampling" const/16 v10, 0x212 invoke-direct {v3, v6, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x1d aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "YCbCrPositioning" const/16 v10, 0x213 invoke-direct {v3, v6, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x1e aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "ReferenceBlackWhite" const/16 v10, 0x214 invoke-direct {v3, v6, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x1f aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "Copyright" const v10, 0x8298 invoke-direct {v3, v6, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x20 aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "ExifIFDPointer" const v10, 0x8769 invoke-direct {v3, v6, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x21 aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "GPSInfoIFDPointer" const v10, 0x8825 invoke-direct {v3, v6, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x22 aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "SensorTopBorder" invoke-direct {v3, v6, v0, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x23 aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "SensorLeftBorder" invoke-direct {v3, v6, v14, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x24 aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "SensorBottomBorder" const/4 v10, 0x6 invoke-direct {v3, v6, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x25 aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "SensorRightBorder" const/4 v10, 0x7 invoke-direct {v3, v6, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x26 aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "ISO" invoke-direct {v3, v6, v7, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x27 aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "JpgFromRaw" const/16 v7, 0x2e invoke-direct {v3, v6, v7, v10}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x28 aput-object v3, v12, v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "Xmp" const/16 v7, 0x2bc invoke-direct {v3, v6, v7, v4}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v6, 0x29 aput-object v3, v12, v6 sput-object v12, Landroidx/exifinterface/media/ExifInterface;->IFD_TIFF_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; const/16 v3, 0x4a new-array v3, v3, [Landroidx/exifinterface/media/ExifInterface$ExifTag; new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ExposureTime" const v10, 0x829a invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/4 v7, 0x0 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "FNumber" const v10, 0x829d invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v4 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ExposureProgram" const v10, 0x8822 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v8 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SpectralSensitivity" const v10, 0x8824 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v1 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "PhotographicSensitivity" const v10, 0x8827 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v0 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "OECF" const v10, 0x8828 const/4 v12, 0x7 invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v14 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SensitivityType" const v10, 0x8830 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/4 v7, 0x6 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "StandardOutputSensitivity" const v10, 0x8831 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v12 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "RecommendedExposureIndex" const v10, 0x8832 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x8 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ISOSpeed" const v10, 0x8833 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x9 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ISOSpeedLatitudeyyy" const v10, 0x8834 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0xa aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ISOSpeedLatitudezzz" const v10, 0x8835 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0xb aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ExifVersion" const v10, 0x9000 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0xc aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "DateTimeOriginal" const v10, 0x9003 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0xd aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "DateTimeDigitized" const v10, 0x9004 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0xe aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "OffsetTime" const v10, 0x9010 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0xf aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "OffsetTimeOriginal" const v10, 0x9011 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x10 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "OffsetTimeDigitized" const v10, 0x9012 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x11 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ComponentsConfiguration" const v10, 0x9101 const/4 v12, 0x7 invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x12 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "CompressedBitsPerPixel" const v10, 0x9102 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x13 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ShutterSpeedValue" const v10, 0x9201 const/16 v12, 0xa invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x14 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ApertureValue" const v10, 0x9202 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x15 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "BrightnessValue" const v10, 0x9203 invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x16 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ExposureBiasValue" const v10, 0x9204 invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x17 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "MaxApertureValue" const v10, 0x9205 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x18 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SubjectDistance" const v10, 0x9206 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x19 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "MeteringMode" const v10, 0x9207 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1a aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "LightSource" const v10, 0x9208 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1b aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Flash" const v10, 0x9209 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1c aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "FocalLength" const v10, 0x920a invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1d aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SubjectArea" const v10, 0x9214 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1e aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "MakerNote" const v10, 0x927c const/4 v12, 0x7 invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1f aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "UserComment" const v10, 0x9286 invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x20 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SubSecTime" const v10, 0x9290 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x21 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SubSecTimeOriginal" const v10, 0x9291 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x22 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SubSecTimeDigitized" const v10, 0x9292 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x23 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "FlashpixVersion" const v10, 0xa000 const/4 v12, 0x7 invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x24 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ColorSpace" const v10, 0xa001 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x25 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "PixelXDimension" const v10, 0xa002 invoke-direct {v6, v7, v10, v1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;III)V const/16 v7, 0x26 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "PixelYDimension" const v10, 0xa003 invoke-direct {v6, v7, v10, v1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;III)V const/16 v7, 0x27 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "RelatedSoundFile" const v10, 0xa004 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x28 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "InteroperabilityIFDPointer" const v10, 0xa005 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x29 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "FlashEnergy" const v10, 0xa20b invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x2a aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SpatialFrequencyResponse" const v10, 0xa20c const/4 v12, 0x7 invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x2b aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "FocalPlaneXResolution" const v10, 0xa20e invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x2c aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "FocalPlaneYResolution" const v10, 0xa20f invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x2d aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "FocalPlaneResolutionUnit" const v10, 0xa210 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x2e aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SubjectLocation" const v10, 0xa214 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x2f aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ExposureIndex" const v10, 0xa215 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x30 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SensingMethod" const v10, 0xa217 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x31 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "FileSource" const v10, 0xa300 const/4 v12, 0x7 invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x32 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SceneType" const v10, 0xa301 invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x33 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "CFAPattern" const v10, 0xa302 invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x34 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "CustomRendered" const v10, 0xa401 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x35 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ExposureMode" const v10, 0xa402 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x36 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "WhiteBalance" const v10, 0xa403 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x37 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "DigitalZoomRatio" const v10, 0xa404 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x38 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "FocalLengthIn35mmFilm" const v10, 0xa405 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x39 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SceneCaptureType" const v10, 0xa406 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x3a aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GainControl" const v10, 0xa407 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x3b aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Contrast" const v10, 0xa408 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x3c aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Saturation" const v10, 0xa409 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x3d aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Sharpness" const v10, 0xa40a invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x3e aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "DeviceSettingDescription" const v10, 0xa40b const/4 v12, 0x7 invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x3f aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SubjectDistanceRange" const v10, 0xa40c invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x40 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ImageUniqueID" const v10, 0xa420 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x41 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "CameraOwnerName" const v10, 0xa430 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x42 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "BodySerialNumber" const v10, 0xa431 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x43 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "LensSpecification" const v10, 0xa432 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x44 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "LensMake" const v10, 0xa433 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x45 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "LensModel" const v10, 0xa434 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x46 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Gamma" const v10, 0xa500 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x47 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "DNGVersion" const v10, 0xc612 invoke-direct {v6, v7, v10, v4}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x48 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "DefaultCropSize" const v10, 0xc620 invoke-direct {v6, v7, v10, v1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;III)V const/16 v7, 0x49 aput-object v6, v3, v7 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->IFD_EXIF_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; const/16 v3, 0x20 new-array v3, v3, [Landroidx/exifinterface/media/ExifInterface$ExifTag; new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSVersionID" const/4 v10, 0x0 invoke-direct {v6, v7, v10, v4}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSLatitudeRef" invoke-direct {v6, v7, v4, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v4 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSLatitude" invoke-direct {v6, v7, v8, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v8 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSLongitudeRef" invoke-direct {v6, v7, v1, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v1 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSLongitude" invoke-direct {v6, v7, v0, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v0 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSAltitudeRef" invoke-direct {v6, v7, v14, v4}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v14 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSAltitude" const/4 v10, 0x6 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSTimeStamp" const/4 v10, 0x7 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSSatellites" const/16 v10, 0x8 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSStatus" const/16 v10, 0x9 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSMeasureMode" const/16 v10, 0xa invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSDOP" const/16 v10, 0xb invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSSpeedRef" const/16 v10, 0xc invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSSpeed" const/16 v10, 0xd invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSTrackRef" const/16 v10, 0xe invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSTrack" const/16 v10, 0xf invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSImgDirectionRef" const/16 v10, 0x10 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSImgDirection" const/16 v10, 0x11 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSMapDatum" const/16 v10, 0x12 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSDestLatitudeRef" const/16 v10, 0x13 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSDestLatitude" const/16 v10, 0x14 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSDestLongitudeRef" const/16 v10, 0x15 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x15 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSDestLongitude" const/16 v10, 0x16 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x16 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSDestBearingRef" const/16 v10, 0x17 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v10 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSDestBearing" const/16 v10, 0x18 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x18 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSDestDistanceRef" const/16 v10, 0x19 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x19 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSDestDistance" const/16 v10, 0x1a invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1a aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSProcessingMethod" const/16 v10, 0x1b const/4 v12, 0x7 invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1b aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSAreaInformation" const/16 v10, 0x1c invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1c aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSDateStamp" const/16 v10, 0x1d invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1d aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSDifferential" const/16 v10, 0x1e invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1e aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSHPositioningError" const/16 v10, 0x1f invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1f aput-object v6, v3, v7 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->IFD_GPS_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; new-array v3, v4, [Landroidx/exifinterface/media/ExifInterface$ExifTag; new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "InteroperabilityIndex" invoke-direct {v6, v7, v4, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/4 v7, 0x0 aput-object v6, v3, v7 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->IFD_INTEROPERABILITY_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; const/16 v3, 0x25 new-array v3, v3, [Landroidx/exifinterface/media/ExifInterface$ExifTag; new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v10, "NewSubfileType" const/16 v12, 0xfe invoke-direct {v6, v10, v12, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SubfileType" const/16 v10, 0xff invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v4 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ThumbnailImageWidth" const/16 v10, 0x100 invoke-direct {v6, v7, v10, v1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;III)V aput-object v6, v3, v8 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ThumbnailImageLength" const/16 v10, 0x101 invoke-direct {v6, v7, v10, v1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;III)V aput-object v6, v3, v1 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "BitsPerSample" const/16 v10, 0x102 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v0 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Compression" const/16 v10, 0x103 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v14 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "PhotometricInterpretation" const/16 v10, 0x106 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/4 v7, 0x6 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ImageDescription" const/16 v10, 0x10e invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/4 v7, 0x7 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Make" const/16 v10, 0x10f invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x8 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Model" const/16 v10, 0x110 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x9 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "StripOffsets" const/16 v10, 0x111 invoke-direct {v6, v7, v10, v1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;III)V const/16 v7, 0xa aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ThumbnailOrientation" const/16 v10, 0x112 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0xb aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SamplesPerPixel" const/16 v10, 0x115 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0xc aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "RowsPerStrip" const/16 v10, 0x116 invoke-direct {v6, v7, v10, v1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;III)V const/16 v7, 0xd aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "StripByteCounts" const/16 v10, 0x117 invoke-direct {v6, v7, v10, v1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;III)V const/16 v7, 0xe aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "XResolution" const/16 v10, 0x11a invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0xf aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "YResolution" const/16 v10, 0x11b invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x10 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "PlanarConfiguration" const/16 v10, 0x11c invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x11 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ResolutionUnit" const/16 v10, 0x128 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x12 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "TransferFunction" const/16 v10, 0x12d invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x13 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Software" const/16 v10, 0x131 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x14 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "DateTime" const/16 v10, 0x132 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x15 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Artist" const/16 v10, 0x13b invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x16 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "WhitePoint" const/16 v10, 0x13e invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x17 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "PrimaryChromaticities" const/16 v10, 0x13f invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x18 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SubIFDPointer" const/16 v10, 0x14a invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x19 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "JPEGInterchangeFormat" const/16 v10, 0x201 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1a aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "JPEGInterchangeFormatLength" const/16 v10, 0x202 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1b aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "YCbCrCoefficients" const/16 v10, 0x211 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1c aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "YCbCrSubSampling" const/16 v10, 0x212 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1d aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "YCbCrPositioning" const/16 v10, 0x213 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1e aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ReferenceBlackWhite" const/16 v10, 0x214 invoke-direct {v6, v7, v10, v14}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x1f aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "Copyright" const v10, 0x8298 invoke-direct {v6, v7, v10, v8}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x20 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ExifIFDPointer" const v10, 0x8769 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x21 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSInfoIFDPointer" const v10, 0x8825 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x22 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "DNGVersion" const v10, 0xc612 invoke-direct {v6, v7, v10, v4}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/16 v7, 0x23 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "DefaultCropSize" const v10, 0xc620 invoke-direct {v6, v7, v10, v1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;III)V const/16 v7, 0x24 aput-object v6, v3, v7 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->IFD_THUMBNAIL_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "StripOffsets" const/16 v7, 0x111 invoke-direct {v3, v6, v7, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V sput-object v3, Landroidx/exifinterface/media/ExifInterface;->TAG_RAF_IMAGE_SIZE:Landroidx/exifinterface/media/ExifInterface$ExifTag; new-array v3, v1, [Landroidx/exifinterface/media/ExifInterface$ExifTag; new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ThumbnailImage" const/16 v10, 0x100 const/4 v12, 0x7 invoke-direct {v6, v7, v10, v12}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/4 v7, 0x0 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "CameraSettingsIFDPointer" const/16 v10, 0x2020 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v4 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ImageProcessingIFDPointer" const/16 v10, 0x2040 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v8 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->ORF_MAKER_NOTE_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; new-array v3, v8, [Landroidx/exifinterface/media/ExifInterface$ExifTag; new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "PreviewImageStart" const/16 v10, 0x101 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/4 v7, 0x0 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "PreviewImageLength" const/16 v10, 0x102 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v4 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->ORF_CAMERA_SETTINGS_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; new-array v3, v4, [Landroidx/exifinterface/media/ExifInterface$ExifTag; new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "AspectFrame" const/16 v10, 0x1113 invoke-direct {v6, v7, v10, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/4 v7, 0x0 aput-object v6, v3, v7 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->ORF_IMAGE_PROCESSING_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; new-array v3, v4, [Landroidx/exifinterface/media/ExifInterface$ExifTag; new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v10, "ColorSpace" const/16 v12, 0x37 invoke-direct {v6, v10, v12, v1}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v7 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->PEF_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; const/16 v6, 0xa new-array v6, v6, [[Landroidx/exifinterface/media/ExifInterface$ExifTag; sget-object v10, Landroidx/exifinterface/media/ExifInterface;->IFD_TIFF_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; aput-object v10, v6, v7 sget-object v7, Landroidx/exifinterface/media/ExifInterface;->IFD_EXIF_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; aput-object v7, v6, v4 sget-object v7, Landroidx/exifinterface/media/ExifInterface;->IFD_GPS_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; aput-object v7, v6, v8 sget-object v7, Landroidx/exifinterface/media/ExifInterface;->IFD_INTEROPERABILITY_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; aput-object v7, v6, v1 sget-object v7, Landroidx/exifinterface/media/ExifInterface;->IFD_THUMBNAIL_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; aput-object v7, v6, v0 aput-object v10, v6, v14 sget-object v7, Landroidx/exifinterface/media/ExifInterface;->ORF_MAKER_NOTE_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; const/4 v10, 0x6 aput-object v7, v6, v10 sget-object v7, Landroidx/exifinterface/media/ExifInterface;->ORF_CAMERA_SETTINGS_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; const/4 v12, 0x7 aput-object v7, v6, v12 sget-object v7, Landroidx/exifinterface/media/ExifInterface;->ORF_IMAGE_PROCESSING_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; const/16 v12, 0x8 aput-object v7, v6, v12 const/16 v7, 0x9 aput-object v3, v6, v7 sput-object v6, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; new-array v3, v10, [Landroidx/exifinterface/media/ExifInterface$ExifTag; new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "SubIFDPointer" const/16 v10, 0x14a invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V const/4 v7, 0x0 aput-object v6, v3, v7 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ExifIFDPointer" const v10, 0x8769 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v4 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "GPSInfoIFDPointer" const v10, 0x8825 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v8 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "InteroperabilityIFDPointer" const v10, 0xa005 invoke-direct {v6, v7, v10, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v1 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "CameraSettingsIFDPointer" const/16 v10, 0x2020 invoke-direct {v6, v7, v10, v4}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v0 new-instance v6, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v7, "ImageProcessingIFDPointer" const/16 v10, 0x2040 invoke-direct {v6, v7, v10, v4}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V aput-object v6, v3, v14 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->EXIF_POINTER_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "JPEGInterchangeFormat" const/16 v7, 0x201 invoke-direct {v3, v6, v7, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V sput-object v3, Landroidx/exifinterface/media/ExifInterface;->JPEG_INTERCHANGE_FORMAT_TAG:Landroidx/exifinterface/media/ExifInterface$ExifTag; new-instance v3, Landroidx/exifinterface/media/ExifInterface$ExifTag; const-string v6, "JPEGInterchangeFormatLength" const/16 v7, 0x202 invoke-direct {v3, v6, v7, v0}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->(Ljava/lang/String;II)V sput-object v3, Landroidx/exifinterface/media/ExifInterface;->JPEG_INTERCHANGE_FORMAT_LENGTH_TAG:Landroidx/exifinterface/media/ExifInterface$ExifTag; sget-object v3, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v6, v3 new-array v6, v6, [Ljava/util/HashMap; sput-object v6, Landroidx/exifinterface/media/ExifInterface;->sExifTagMapsForReading:[Ljava/util/HashMap; array-length v3, v3 new-array v3, v3, [Ljava/util/HashMap; sput-object v3, Landroidx/exifinterface/media/ExifInterface;->sExifTagMapsForWriting:[Ljava/util/HashMap; new-instance v3, Ljava/util/HashSet; const-string v6, "FNumber" const-string v7, "DigitalZoomRatio" const-string v10, "ExposureTime" const-string v12, "SubjectDistance" const-string v14, "GPSTimeStamp" filled-new-array {v6, v7, v10, v12, v14}, [Ljava/lang/String; move-result-object v6 invoke-static {v6}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; move-result-object v6 invoke-direct {v3, v6}, Ljava/util/HashSet;->(Ljava/util/Collection;)V sput-object v3, Landroidx/exifinterface/media/ExifInterface;->sTagSetForCompatibility:Ljava/util/HashSet; new-instance v3, Ljava/util/HashMap; invoke-direct {v3}, Ljava/util/HashMap;->()V sput-object v3, Landroidx/exifinterface/media/ExifInterface;->sExifPointerTagMap:Ljava/util/HashMap; const-string v3, "US-ASCII" invoke-static {v3}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset; move-result-object v3 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->ASCII:Ljava/nio/charset/Charset; const-string v6, "Exif\u0000\u0000" invoke-virtual {v6, v3}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object v3 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->IDENTIFIER_EXIF_APP1:[B sget-object v3, Landroidx/exifinterface/media/ExifInterface;->ASCII:Ljava/nio/charset/Charset; const-string v6, "http://ns.adobe.com/xap/1.0/\u0000" invoke-virtual {v6, v3}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object v3 sput-object v3, Landroidx/exifinterface/media/ExifInterface;->IDENTIFIER_XMP_APP1:[B new-instance v3, Ljava/text/SimpleDateFormat; const-string/jumbo v6, "yyyy:MM:dd HH:mm:ss" invoke-direct {v3, v6}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;)V sput-object v3, Landroidx/exifinterface/media/ExifInterface;->sFormatter:Ljava/text/SimpleDateFormat; const-string v6, "UTC" invoke-static {v6}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone; move-result-object v6 invoke-virtual {v3, v6}, Ljava/text/SimpleDateFormat;->setTimeZone(Ljava/util/TimeZone;)V const/4 v7, 0x0 :goto_0 sget-object v3, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v3, v3 if-ge v7, v3, :cond_1 sget-object v3, Landroidx/exifinterface/media/ExifInterface;->sExifTagMapsForReading:[Ljava/util/HashMap; new-instance v6, Ljava/util/HashMap; invoke-direct {v6}, Ljava/util/HashMap;->()V aput-object v6, v3, v7 sget-object v3, Landroidx/exifinterface/media/ExifInterface;->sExifTagMapsForWriting:[Ljava/util/HashMap; new-instance v6, Ljava/util/HashMap; invoke-direct {v6}, Ljava/util/HashMap;->()V aput-object v6, v3, v7 sget-object v3, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; aget-object v3, v3, v7 array-length v6, v3 const/4 v10, 0x0 :goto_1 if-ge v10, v6, :cond_0 aget-object v12, v3, v10 sget-object v14, Landroidx/exifinterface/media/ExifInterface;->sExifTagMapsForReading:[Ljava/util/HashMap; aget-object v14, v14, v7 iget v0, v12, Landroidx/exifinterface/media/ExifInterface$ExifTag;->number:I invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v0 invoke-virtual {v14, v0, v12}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; sget-object v0, Landroidx/exifinterface/media/ExifInterface;->sExifTagMapsForWriting:[Ljava/util/HashMap; aget-object v0, v0, v7 iget-object v14, v12, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; invoke-virtual {v0, v14, v12}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; add-int/lit8 v10, v10, 0x1 const/4 v0, 0x4 goto :goto_1 :cond_0 add-int/lit8 v7, v7, 0x1 const/4 v0, 0x4 goto :goto_0 :cond_1 sget-object v0, Landroidx/exifinterface/media/ExifInterface;->sExifPointerTagMap:Ljava/util/HashMap; sget-object v3, Landroidx/exifinterface/media/ExifInterface;->EXIF_POINTER_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; const/4 v6, 0x0 aget-object v3, v3, v6 iget v3, v3, Landroidx/exifinterface/media/ExifInterface$ExifTag;->number:I invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v3 invoke-virtual {v0, v3, v15}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; sget-object v0, Landroidx/exifinterface/media/ExifInterface;->sExifPointerTagMap:Ljava/util/HashMap; sget-object v3, Landroidx/exifinterface/media/ExifInterface;->EXIF_POINTER_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; aget-object v3, v3, v4 iget v3, v3, Landroidx/exifinterface/media/ExifInterface$ExifTag;->number:I invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v3 invoke-virtual {v0, v3, v5}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; sget-object v0, Landroidx/exifinterface/media/ExifInterface;->sExifPointerTagMap:Ljava/util/HashMap; sget-object v3, Landroidx/exifinterface/media/ExifInterface;->EXIF_POINTER_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; aget-object v3, v3, v8 iget v3, v3, Landroidx/exifinterface/media/ExifInterface$ExifTag;->number:I invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v3 invoke-virtual {v0, v3, v9}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; sget-object v0, Landroidx/exifinterface/media/ExifInterface;->sExifPointerTagMap:Ljava/util/HashMap; sget-object v3, Landroidx/exifinterface/media/ExifInterface;->EXIF_POINTER_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; aget-object v1, v3, v1 iget v1, v1, Landroidx/exifinterface/media/ExifInterface$ExifTag;->number:I invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v1 invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; sget-object v0, Landroidx/exifinterface/media/ExifInterface;->sExifPointerTagMap:Ljava/util/HashMap; sget-object v1, Landroidx/exifinterface/media/ExifInterface;->EXIF_POINTER_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; const/4 v2, 0x4 aget-object v1, v1, v2 iget v1, v1, Landroidx/exifinterface/media/ExifInterface$ExifTag;->number:I invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v1 invoke-virtual {v0, v1, v13}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; sget-object v0, Landroidx/exifinterface/media/ExifInterface;->sExifPointerTagMap:Ljava/util/HashMap; sget-object v1, Landroidx/exifinterface/media/ExifInterface;->EXIF_POINTER_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; const/4 v2, 0x5 aget-object v1, v1, v2 iget v1, v1, Landroidx/exifinterface/media/ExifInterface$ExifTag;->number:I invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v1 invoke-virtual {v0, v1, v11}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; const-string v0, ".*[1-9].*" invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern; move-result-object v0 sput-object v0, Landroidx/exifinterface/media/ExifInterface;->sNonZeroTimePattern:Ljava/util/regex/Pattern; const-string v0, "^([0-9][0-9]):([0-9][0-9]):([0-9][0-9])$" invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern; move-result-object v0 sput-object v0, Landroidx/exifinterface/media/ExifInterface;->sGpsTimestampPattern:Ljava/util/regex/Pattern; return-void :array_0 .array-data 4 0x8 0x8 0x8 .end array-data :array_1 .array-data 1 -0x1t -0x28t -0x1t .end array-data :array_2 .array-data 1 0x66t 0x74t 0x79t 0x70t .end array-data :array_3 .array-data 1 0x6dt 0x69t 0x66t 0x31t .end array-data :array_4 .array-data 1 0x68t 0x65t 0x69t 0x63t .end array-data :array_5 .array-data 1 0x4ft 0x4ct 0x59t 0x4dt 0x50t 0x0t .end array-data nop :array_6 .array-data 1 0x4ft 0x4ct 0x59t 0x4dt 0x50t 0x55t 0x53t 0x0t 0x49t 0x49t .end array-data nop :array_7 .array-data 1 -0x77t 0x50t 0x4et 0x47t 0xdt 0xat 0x1at 0xat .end array-data :array_8 .array-data 1 0x65t 0x58t 0x49t 0x66t .end array-data :array_9 .array-data 1 0x49t 0x48t 0x44t 0x52t .end array-data :array_a .array-data 1 0x49t 0x45t 0x4et 0x44t .end array-data :array_b .array-data 1 0x52t 0x49t 0x46t 0x46t .end array-data :array_c .array-data 1 0x57t 0x45t 0x42t 0x50t .end array-data :array_d .array-data 1 0x45t 0x58t 0x49t 0x46t .end array-data :array_e .array-data 1 -0x63t 0x1t 0x2at .end array-data :array_f .array-data 4 0x0 0x1 0x1 0x2 0x4 0x8 0x1 0x1 0x2 0x4 0x8 0x4 0x8 0x1 .end array-data :array_10 .array-data 1 0x41t 0x53t 0x43t 0x49t 0x49t 0x0t 0x0t 0x0t .end array-data .end method .method public constructor (Ljava/io/File;)V .locals 2 .param p1 # Ljava/io/File; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation invoke-direct {p0}, Ljava/lang/Object;->()V sget-object v0, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v0, v0 new-array v0, v0, [Ljava/util/HashMap; iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; new-instance v0, Ljava/util/HashSet; sget-object v1, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v1, v1 invoke-direct {v0, v1}, Ljava/util/HashSet;->(I)V iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributesOffsets:Ljava/util/Set; sget-object v0, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; if-eqz p1, :cond_0 invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; move-result-object p1 invoke-direct {p0, p1}, Landroidx/exifinterface/media/ExifInterface;->initForFilename(Ljava/lang/String;)V return-void :cond_0 new-instance p1, Ljava/lang/NullPointerException; const-string v0, "file cannot be null" invoke-direct {p1, v0}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 .end method .method public constructor (Ljava/io/FileDescriptor;)V .locals 4 .param p1 # Ljava/io/FileDescriptor; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation invoke-direct {p0}, Ljava/lang/Object;->()V sget-object v0, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v0, v0 new-array v0, v0, [Ljava/util/HashMap; iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; new-instance v0, Ljava/util/HashSet; sget-object v1, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v1, v1 invoke-direct {v0, v1}, Ljava/util/HashSet;->(I)V iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributesOffsets:Ljava/util/Set; sget-object v0, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; if-eqz p1, :cond_3 const/4 v0, 0x0 iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAssetInputStream:Landroid/content/res/AssetManager$AssetInputStream; iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; const/4 v1, 0x0 invoke-static {p1}, Landroidx/exifinterface/media/ExifInterface;->isSeekableFD(Ljava/io/FileDescriptor;)Z move-result v2 if-eqz v2, :cond_0 iput-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; :try_start_0 invoke-static {p1}, Landroid/system/Os;->dup(Ljava/io/FileDescriptor;)Ljava/io/FileDescriptor; move-result-object p1 :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 const/4 v1, 0x1 goto :goto_0 :catch_0 move-exception p1 new-instance v0, Ljava/io/IOException; const-string v1, "Failed to duplicate file descriptor" invoke-direct {v0, v1, p1}, Ljava/io/IOException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v0 :cond_0 iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; :goto_0 :try_start_1 new-instance v2, Ljava/io/FileInputStream; invoke-direct {v2, p1}, Ljava/io/FileInputStream;->(Ljava/io/FileDescriptor;)V :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_1 :try_start_2 invoke-direct {p0, v2}, Landroidx/exifinterface/media/ExifInterface;->loadAttributes(Ljava/io/InputStream;)V :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_0 invoke-static {v2}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V if-eqz v1, :cond_1 invoke-static {p1}, Landroidx/exifinterface/media/ExifInterface;->closeFileDescriptor(Ljava/io/FileDescriptor;)V :cond_1 return-void :catchall_0 move-exception v0 goto :goto_1 :catchall_1 move-exception v2 move-object v3, v2 move-object v2, v0 move-object v0, v3 :goto_1 invoke-static {v2}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V if-eqz v1, :cond_2 invoke-static {p1}, Landroidx/exifinterface/media/ExifInterface;->closeFileDescriptor(Ljava/io/FileDescriptor;)V :cond_2 throw v0 :cond_3 new-instance p1, Ljava/lang/NullPointerException; const-string v0, "fileDescriptor cannot be null" invoke-direct {p1, v0}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 .end method .method public constructor (Ljava/io/InputStream;)V .locals 1 .param p1 # Ljava/io/InputStream; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/4 v0, 0x0 invoke-direct {p0, p1, v0}, Landroidx/exifinterface/media/ExifInterface;->(Ljava/io/InputStream;Z)V return-void .end method .method public constructor (Ljava/io/InputStream;I)V .locals 1 .param p1 # Ljava/io/InputStream; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/4 v0, 0x1 if-ne p2, v0, :cond_0 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 invoke-direct {p0, p1, v0}, Landroidx/exifinterface/media/ExifInterface;->(Ljava/io/InputStream;Z)V return-void .end method .method public constructor (Ljava/io/InputStream;Z)V .locals 2 .param p1 # Ljava/io/InputStream; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation invoke-direct {p0}, Ljava/lang/Object;->()V sget-object v0, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v0, v0 new-array v0, v0, [Ljava/util/HashMap; iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; new-instance v0, Ljava/util/HashSet; sget-object v1, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v1, v1 invoke-direct {v0, v1}, Ljava/util/HashSet;->(I)V iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributesOffsets:Ljava/util/Set; sget-object v0, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; if-eqz p1, :cond_4 const/4 v0, 0x0 iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; if-eqz p2, :cond_1 new-instance p2, Ljava/io/BufferedInputStream; const/16 v1, 0x1388 invoke-direct {p2, p1, v1}, Ljava/io/BufferedInputStream;->(Ljava/io/InputStream;I)V invoke-static {p2}, Landroidx/exifinterface/media/ExifInterface;->isExifDataOnly(Ljava/io/BufferedInputStream;)Z move-result p1 if-nez p1, :cond_0 const-string p1, "ExifInterface" const-string p2, "Given data does not follow the structure of an Exif-only data." invoke-static {p1, p2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I return-void :cond_0 const/4 p1, 0x1 iput-boolean p1, p0, Landroidx/exifinterface/media/ExifInterface;->mIsExifDataOnly:Z iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAssetInputStream:Landroid/content/res/AssetManager$AssetInputStream; iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; move-object p1, p2 goto :goto_0 :cond_1 instance-of p2, p1, Landroid/content/res/AssetManager$AssetInputStream; if-eqz p2, :cond_2 move-object p2, p1 check-cast p2, Landroid/content/res/AssetManager$AssetInputStream; iput-object p2, p0, Landroidx/exifinterface/media/ExifInterface;->mAssetInputStream:Landroid/content/res/AssetManager$AssetInputStream; iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; goto :goto_0 :cond_2 instance-of p2, p1, Ljava/io/FileInputStream; if-eqz p2, :cond_3 move-object p2, p1 check-cast p2, Ljava/io/FileInputStream; invoke-virtual {p2}, Ljava/io/FileInputStream;->getFD()Ljava/io/FileDescriptor; move-result-object v1 invoke-static {v1}, Landroidx/exifinterface/media/ExifInterface;->isSeekableFD(Ljava/io/FileDescriptor;)Z move-result v1 if-eqz v1, :cond_3 iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAssetInputStream:Landroid/content/res/AssetManager$AssetInputStream; invoke-virtual {p2}, Ljava/io/FileInputStream;->getFD()Ljava/io/FileDescriptor; move-result-object p2 iput-object p2, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; goto :goto_0 :cond_3 iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAssetInputStream:Landroid/content/res/AssetManager$AssetInputStream; iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; :goto_0 invoke-direct {p0, p1}, Landroidx/exifinterface/media/ExifInterface;->loadAttributes(Ljava/io/InputStream;)V return-void :cond_4 new-instance p1, Ljava/lang/NullPointerException; const-string p2, "inputStream cannot be null" invoke-direct {p1, p2}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 .end method .method public constructor (Ljava/lang/String;)V .locals 2 .param p1 # Ljava/lang/String; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation invoke-direct {p0}, Ljava/lang/Object;->()V sget-object v0, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v0, v0 new-array v0, v0, [Ljava/util/HashMap; iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; new-instance v0, Ljava/util/HashSet; sget-object v1, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v1, v1 invoke-direct {v0, v1}, Ljava/util/HashSet;->(I)V iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributesOffsets:Ljava/util/Set; sget-object v0, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; if-eqz p1, :cond_0 invoke-direct {p0, p1}, Landroidx/exifinterface/media/ExifInterface;->initForFilename(Ljava/lang/String;)V return-void :cond_0 new-instance p1, Ljava/lang/NullPointerException; const-string v0, "filename cannot be null" invoke-direct {p1, v0}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 .end method .method private addDefaultValuesForCompatibility()V .locals 6 const-string v0, "DateTimeOriginal" invoke-virtual {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 const/4 v1, 0x0 if-eqz v0, :cond_0 const-string v2, "DateTime" invoke-virtual {p0, v2}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v3 if-nez v3, :cond_0 iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v3, v3, v1 invoke-static {v0}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createString(Ljava/lang/String;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v0 invoke-virtual {v3, v2, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_0 const-string v0, "ImageWidth" invoke-virtual {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 const-wide/16 v3, 0x0 if-nez v2, :cond_1 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v2, v2, v1 iget-object v5, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v3, v4, v5}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v5 invoke-virtual {v2, v0, v5}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_1 const-string v0, "ImageLength" invoke-virtual {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 if-nez v2, :cond_2 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v2, v2, v1 iget-object v5, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v3, v4, v5}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v5 invoke-virtual {v2, v0, v5}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_2 const-string v0, "Orientation" invoke-virtual {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 if-nez v2, :cond_3 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v1, v2, v1 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v3, v4, v2}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v2 invoke-virtual {v1, v0, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_3 const-string v0, "LightSource" invoke-virtual {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 if-nez v1, :cond_4 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/4 v2, 0x1 aget-object v1, v1, v2 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v3, v4, v2}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v2 invoke-virtual {v1, v0, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_4 return-void .end method .method public static byteArrayToHexString([B)Ljava/lang/String; .locals 5 new-instance v0, Ljava/lang/StringBuilder; array-length v1, p0 mul-int/lit8 v1, v1, 0x2 invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(I)V const/4 v1, 0x0 const/4 v2, 0x0 :goto_0 array-length v3, p0 if-ge v2, v3, :cond_0 const/4 v3, 0x1 new-array v3, v3, [Ljava/lang/Object; aget-byte v4, p0, v2 invoke-static {v4}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte; move-result-object v4 aput-object v4, v3, v1 const-string v4, "%02x" invoke-static {v4, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object v3 invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; add-int/lit8 v2, v2, 0x1 goto :goto_0 :cond_0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static closeFileDescriptor(Ljava/io/FileDescriptor;)V .locals 1 :try_start_0 invoke-static {p0}, Landroid/system/Os;->close(Ljava/io/FileDescriptor;)V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :catch_0 const-string p0, "ExifInterface" const-string v0, "Error closing fd." invoke-static {p0, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I :goto_0 return-void .end method .method public static closeQuietly(Ljava/io/Closeable;)V .locals 0 if-eqz p0, :cond_0 :try_start_0 invoke-interface {p0}, Ljava/io/Closeable;->close()V :try_end_0 .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_1 goto :goto_0 :catch_0 move-exception p0 throw p0 :catch_1 :cond_0 :goto_0 return-void .end method .method private convertDecimalDegree(D)Ljava/lang/String; .locals 8 double-to-long v0, p1 long-to-double v2, v0 sub-double/2addr p1, v2 const-wide/high16 v2, 0x404e000000000000L # 60.0 mul-double v4, p1, v2 double-to-long v4, v4 long-to-double v6, v4 div-double/2addr v6, v2 sub-double/2addr p1, v6 const-wide v2, 0x40ac200000000000L # 3600.0 mul-double p1, p1, v2 const-wide v2, 0x416312d000000000L # 1.0E7 mul-double p1, p1, v2 invoke-static {p1, p2}, Ljava/lang/Math;->round(D)J move-result-wide p1 new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; const-string v0, "/1," invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2, p1, p2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; const-string p1, "/10000000" invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 return-object p1 .end method .method public static convertRationalLatLonToDouble(Ljava/lang/String;Ljava/lang/String;)D .locals 11 const-string v0, "/" :try_start_0 const-string v1, "," const/4 v2, -0x1 invoke-virtual {p0, v1, v2}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object p0 const/4 v1, 0x0 aget-object v3, p0, v1 invoke-virtual {v3, v0, v2}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object v3 aget-object v4, v3, v1 invoke-virtual {v4}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v4 invoke-static {v4}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v4 const/4 v6, 0x1 aget-object v3, v3, v6 invoke-virtual {v3}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v3 invoke-static {v3}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v7 div-double/2addr v4, v7 aget-object v3, p0, v6 invoke-virtual {v3, v0, v2}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object v3 aget-object v7, v3, v1 invoke-virtual {v7}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v7 invoke-static {v7}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v7 aget-object v3, v3, v6 invoke-virtual {v3}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v3 invoke-static {v3}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v9 div-double/2addr v7, v9 const/4 v3, 0x2 aget-object p0, p0, v3 invoke-virtual {p0, v0, v2}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object p0 aget-object v0, p0, v1 invoke-virtual {v0}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v0 invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v0 aget-object p0, p0, v6 invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object p0 invoke-static {p0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v2 div-double/2addr v0, v2 const-wide/high16 v2, 0x404e000000000000L # 60.0 div-double/2addr v7, v2 add-double/2addr v7, v4 const-wide v2, 0x40ac200000000000L # 3600.0 div-double/2addr v0, v2 add-double/2addr v0, v7 const-string p0, "S" invoke-virtual {p1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_3 const-string p0, "W" invoke-virtual {p1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 goto :goto_1 :cond_0 const-string p0, "N" invoke-virtual {p1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_2 const-string p0, "E" invoke-virtual {p1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_1 goto :goto_0 :cond_1 new-instance p0, Ljava/lang/IllegalArgumentException; invoke-direct {p0}, Ljava/lang/IllegalArgumentException;->()V throw p0 :try_end_0 .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_0 .. :try_end_0} :catch_0 :cond_2 :goto_0 return-wide v0 :cond_3 :goto_1 neg-double p0, v0 return-wide p0 :catch_0 new-instance p0, Ljava/lang/IllegalArgumentException; invoke-direct {p0}, Ljava/lang/IllegalArgumentException;->()V throw p0 .end method .method public static convertToLongArray(Ljava/lang/Object;)[J .locals 4 instance-of v0, p0, [I if-eqz v0, :cond_1 check-cast p0, [I array-length v0, p0 new-array v0, v0, [J const/4 v1, 0x0 :goto_0 array-length v2, p0 if-ge v1, v2, :cond_0 aget v2, p0, v1 int-to-long v2, v2 aput-wide v2, v0, v1 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_0 return-object v0 :cond_1 instance-of v0, p0, [J if-eqz v0, :cond_2 check-cast p0, [J return-object p0 :cond_2 const/4 p0, 0x0 return-object p0 .end method .method public static copy(Ljava/io/InputStream;Ljava/io/OutputStream;)I .locals 5 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/16 v0, 0x2000 new-array v0, v0, [B const/4 v1, 0x0 const/4 v2, 0x0 :goto_0 invoke-virtual {p0, v0}, Ljava/io/InputStream;->read([B)I move-result v3 const/4 v4, -0x1 if-eq v3, v4, :cond_0 add-int/2addr v2, v3 invoke-virtual {p1, v0, v1, v3}, Ljava/io/OutputStream;->write([BII)V goto :goto_0 :cond_0 return v2 .end method .method public static copy(Ljava/io/InputStream;Ljava/io/OutputStream;I)V .locals 5 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/16 v0, 0x2000 new-array v1, v0, [B :goto_0 if-lez p2, :cond_1 invoke-static {p2, v0}, Ljava/lang/Math;->min(II)I move-result v2 const/4 v3, 0x0 invoke-virtual {p0, v1, v3, v2}, Ljava/io/InputStream;->read([BII)I move-result v4 if-ne v4, v2, :cond_0 sub-int/2addr p2, v4 invoke-virtual {p1, v1, v3, v4}, Ljava/io/OutputStream;->write([BII)V goto :goto_0 :cond_0 new-instance p0, Ljava/io/IOException; const-string p1, "Failed to copy the given amount of bytes from the inputstream to the output stream." invoke-direct {p0, p1}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p0 :cond_1 return-void .end method .method private copyChunksUpToGivenChunkType(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;[B[B)V .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation :cond_0 const/4 v0, 0x4 new-array v1, v0, [B invoke-virtual {p1, v1}, Ljava/io/InputStream;->read([B)I move-result v2 if-eq v2, v0, :cond_2 new-instance p1, Ljava/io/IOException; const-string p2, "Encountered invalid length while copying WebP chunks up tochunk type " invoke-static {p2}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 new-instance v0, Ljava/lang/String; sget-object v1, Landroidx/exifinterface/media/ExifInterface;->ASCII:Ljava/nio/charset/Charset; invoke-direct {v0, p3, v1}, Ljava/lang/String;->([BLjava/nio/charset/Charset;)V invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; if-nez p4, :cond_1 const-string p3, "" goto :goto_0 :cond_1 const-string p3, " or " invoke-static {p3}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p3 new-instance v0, Ljava/lang/String; sget-object v1, Landroidx/exifinterface/media/ExifInterface;->ASCII:Ljava/nio/charset/Charset; invoke-direct {v0, p4, v1}, Ljava/lang/String;->([BLjava/nio/charset/Charset;)V invoke-virtual {p3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p3 :goto_0 invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p2 invoke-direct {p1, p2}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_2 invoke-direct {p0, p1, p2, v1}, Landroidx/exifinterface/media/ExifInterface;->copyWebPChunk(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;[B)V invoke-static {v1, p3}, Ljava/util/Arrays;->equals([B[B)Z move-result v0 if-nez v0, :cond_3 if-eqz p4, :cond_0 invoke-static {v1, p4}, Ljava/util/Arrays;->equals([B[B)Z move-result v0 if-eqz v0, :cond_0 :cond_3 return-void .end method .method private copyWebPChunk(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;[B)V .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I move-result v0 invoke-virtual {p2, p3}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->write([B)V invoke-virtual {p2, v0}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeInt(I)V rem-int/lit8 p3, v0, 0x2 const/4 v1, 0x1 if-ne p3, v1, :cond_0 add-int/lit8 v0, v0, 0x1 :cond_0 invoke-static {p1, p2, v0}, Landroidx/exifinterface/media/ExifInterface;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;I)V return-void .end method .method private getExifAttribute(Ljava/lang/String;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; .locals 2 .param p1 # Ljava/lang/String; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation build Landroidx/annotation/Nullable; .end annotation if-eqz p1, :cond_4 const-string v0, "ISOSpeedRatings" invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_1 sget-boolean p1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz p1, :cond_0 const-string p1, "ExifInterface" const-string v0, "getExifAttribute: Replacing TAG_ISO_SPEED_RATINGS with TAG_PHOTOGRAPHIC_SENSITIVITY." invoke-static {p1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_0 const-string p1, "PhotographicSensitivity" :cond_1 const/4 v0, 0x0 :goto_0 sget-object v1, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v1, v1 if-ge v0, v1, :cond_3 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v1, v1, v0 invoke-virtual {v1, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 check-cast v1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz v1, :cond_2 return-object v1 :cond_2 add-int/lit8 v0, v0, 0x1 goto :goto_0 :cond_3 const/4 p1, 0x0 return-object p1 :cond_4 new-instance p1, Ljava/lang/NullPointerException; const-string v0, "tag shouldn\'t be null" invoke-direct {p1, v0}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 .end method .method private getHeifAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V .locals 12 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const-string/jumbo v0, "yes" new-instance v1, Landroid/media/MediaMetadataRetriever; invoke-direct {v1}, Landroid/media/MediaMetadataRetriever;->()V :try_start_0 sget v2, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v3, 0x17 if-lt v2, v3, :cond_0 new-instance v2, Landroidx/exifinterface/media/ExifInterface$1; invoke-direct {v2, p0, p1}, Landroidx/exifinterface/media/ExifInterface$1;->(Landroidx/exifinterface/media/ExifInterface;Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V invoke-virtual {v1, v2}, Landroid/media/MediaMetadataRetriever;->setDataSource(Landroid/media/MediaDataSource;)V goto :goto_0 :cond_0 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; if-eqz v2, :cond_1 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; invoke-virtual {v1, v2}, Landroid/media/MediaMetadataRetriever;->setDataSource(Ljava/io/FileDescriptor;)V goto :goto_0 :cond_1 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; if-eqz v2, :cond_10 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; invoke-virtual {v1, v2}, Landroid/media/MediaMetadataRetriever;->setDataSource(Ljava/lang/String;)V :goto_0 const/16 v2, 0x21 invoke-virtual {v1, v2}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object v2 const/16 v3, 0x22 invoke-virtual {v1, v3}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object v3 const/16 v4, 0x1a invoke-virtual {v1, v4}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object v4 const/16 v5, 0x11 invoke-virtual {v1, v5}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object v5 invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v4 const/4 v6, 0x0 if-eqz v4, :cond_2 const/16 v0, 0x1d invoke-virtual {v1, v0}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object v6 const/16 v0, 0x1e invoke-virtual {v1, v0}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object v0 const/16 v4, 0x1f invoke-virtual {v1, v4}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object v4 goto :goto_1 :cond_2 invoke-virtual {v0, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_3 const/16 v0, 0x12 invoke-virtual {v1, v0}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object v6 const/16 v0, 0x13 invoke-virtual {v1, v0}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object v0 const/16 v4, 0x18 invoke-virtual {v1, v4}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object v4 goto :goto_1 :cond_3 move-object v0, v6 move-object v4, v0 :goto_1 const/4 v5, 0x0 if-eqz v6, :cond_4 iget-object v7, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v7, v7, v5 const-string v8, "ImageWidth" invoke-static {v6}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v9 iget-object v10, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v9, v10}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createUShort(ILjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v9 invoke-virtual {v7, v8, v9}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_4 if-eqz v0, :cond_5 iget-object v7, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v7, v7, v5 const-string v8, "ImageLength" invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v9 iget-object v10, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v9, v10}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createUShort(ILjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v9 invoke-virtual {v7, v8, v9}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_5 const/4 v7, 0x6 if-eqz v4, :cond_9 const/4 v8, 0x1 invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v9 const/16 v10, 0x5a if-eq v9, v10, :cond_8 const/16 v10, 0xb4 if-eq v9, v10, :cond_7 const/16 v10, 0x10e if-eq v9, v10, :cond_6 goto :goto_2 :cond_6 const/16 v8, 0x8 goto :goto_2 :cond_7 const/4 v8, 0x3 goto :goto_2 :cond_8 const/4 v8, 0x6 :goto_2 iget-object v9, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v9, v9, v5 const-string v10, "Orientation" iget-object v11, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v8, v11}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createUShort(ILjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v8 invoke-virtual {v9, v10, v8}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_9 if-eqz v2, :cond_e if-eqz v3, :cond_e invoke-static {v2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v2 invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v3 if-le v3, v7, :cond_d int-to-long v8, v2 invoke-virtual {p1, v8, v9}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V new-array v8, v7, [B invoke-virtual {p1, v8}, Ljava/io/InputStream;->read([B)I move-result v9 if-ne v9, v7, :cond_c add-int/2addr v2, v7 add-int/lit8 v3, v3, -0x6 sget-object v7, Landroidx/exifinterface/media/ExifInterface;->IDENTIFIER_EXIF_APP1:[B invoke-static {v8, v7}, Ljava/util/Arrays;->equals([B[B)Z move-result v7 if-eqz v7, :cond_b new-array v7, v3, [B invoke-virtual {p1, v7}, Ljava/io/InputStream;->read([B)I move-result p1 if-ne p1, v3, :cond_a iput v2, p0, Landroidx/exifinterface/media/ExifInterface;->mExifOffset:I invoke-direct {p0, v7, v5}, Landroidx/exifinterface/media/ExifInterface;->readExifSegment([BI)V goto :goto_3 :cond_a new-instance p1, Ljava/io/IOException; const-string v0, "Can\'t read exif" invoke-direct {p1, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_b new-instance p1, Ljava/io/IOException; const-string v0, "Invalid identifier" invoke-direct {p1, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_c new-instance p1, Ljava/io/IOException; const-string v0, "Can\'t read identifier" invoke-direct {p1, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_d new-instance p1, Ljava/io/IOException; const-string v0, "Invalid exif length" invoke-direct {p1, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_e :goto_3 sget-boolean p1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz p1, :cond_f const-string p1, "ExifInterface" new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V const-string v3, "Heif meta: " invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string/jumbo v3, "x" invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v0, ", rotation " invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-static {p1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 :cond_f invoke-virtual {v1}, Landroid/media/MediaMetadataRetriever;->release()V return-void :cond_10 invoke-virtual {v1}, Landroid/media/MediaMetadataRetriever;->release()V return-void :catchall_0 move-exception p1 invoke-virtual {v1}, Landroid/media/MediaMetadataRetriever;->release()V throw p1 .end method .method private getJpegAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;II)V .locals 17 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation move-object/from16 v0, p0 move-object/from16 v1, p1 move/from16 v2, p2 move/from16 v3, p3 sget-boolean v4, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z const-string v5, "ExifInterface" if-eqz v4, :cond_0 new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V const-string v6, "getJpegAttributes starting with: " invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-static {v5, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_0 sget-object v4, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; invoke-virtual {v1, v4}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->setByteOrder(Ljava/nio/ByteOrder;)V int-to-long v6, v2 invoke-virtual {v1, v6, v7}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readByte()B move-result v4 const-string v6, "Invalid marker: " const/4 v7, -0x1 if-ne v4, v7, :cond_11 const/4 v8, 0x1 add-int/2addr v2, v8 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readByte()B move-result v9 const/16 v10, -0x28 if-ne v9, v10, :cond_10 add-int/2addr v2, v8 :goto_0 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readByte()B move-result v4 if-ne v4, v7, :cond_f add-int/2addr v2, v8 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readByte()B move-result v4 sget-boolean v6, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v6, :cond_1 const-string v6, "Found JPEG segment indicator: " invoke-static {v6}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v6 and-int/lit16 v7, v4, 0xff invoke-static {v7}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String; move-result-object v7 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v6 invoke-static {v5, v6}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_1 add-int/2addr v2, v8 const/16 v6, -0x27 if-eq v4, v6, :cond_e const/16 v6, -0x26 if-ne v4, v6, :cond_2 goto/16 :goto_4 :cond_2 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readUnsignedShort()I move-result v6 add-int/lit8 v6, v6, -0x2 add-int/lit8 v2, v2, 0x2 sget-boolean v7, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v7, :cond_3 const-string v7, "JPEG segment: " invoke-static {v7}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v7 and-int/lit16 v9, v4, 0xff invoke-static {v9}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String; move-result-object v9 invoke-virtual {v7, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v9, " (length: " invoke-virtual {v7, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; add-int/lit8 v9, v6, 0x2 invoke-virtual {v7, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; const-string v9, ")" invoke-virtual {v7, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v7 invoke-static {v5, v7}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_3 const-string v7, "Invalid length" if-ltz v6, :cond_d const/16 v9, -0x1f const/4 v10, 0x0 if-eq v4, v9, :cond_7 const/4 v9, -0x2 if-eq v4, v9, :cond_5 packed-switch v4, :pswitch_data_0 packed-switch v4, :pswitch_data_1 packed-switch v4, :pswitch_data_2 packed-switch v4, :pswitch_data_3 goto/16 :goto_3 :pswitch_0 invoke-virtual {v1, v8}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I move-result v4 if-ne v4, v8, :cond_4 iget-object v4, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v4, v4, v3 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readUnsignedShort()I move-result v8 int-to-long v8, v8 iget-object v10, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v8, v9, v10}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v8 const-string v9, "ImageLength" invoke-virtual {v4, v9, v8}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; iget-object v4, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v4, v4, v3 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readUnsignedShort()I move-result v8 int-to-long v8, v8 iget-object v10, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v8, v9, v10}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v8 const-string v9, "ImageWidth" invoke-virtual {v4, v9, v8}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; add-int/lit8 v6, v6, -0x5 goto/16 :goto_3 :cond_4 new-instance v1, Ljava/io/IOException; const-string v2, "Invalid SOFx" invoke-direct {v1, v2}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v1 :cond_5 new-array v4, v6, [B invoke-virtual {v1, v4}, Ljava/io/InputStream;->read([B)I move-result v9 if-ne v9, v6, :cond_6 const-string v6, "UserComment" invoke-virtual {v0, v6}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v9 if-nez v9, :cond_a iget-object v9, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v8, v9, v8 new-instance v9, Ljava/lang/String; sget-object v10, Landroidx/exifinterface/media/ExifInterface;->ASCII:Ljava/nio/charset/Charset; invoke-direct {v9, v4, v10}, Ljava/lang/String;->([BLjava/nio/charset/Charset;)V invoke-static {v9}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createString(Ljava/lang/String;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v4 invoke-virtual {v8, v6, v4}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_2 :cond_6 new-instance v1, Ljava/io/IOException; const-string v2, "Invalid exif" invoke-direct {v1, v2}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v1 :cond_7 new-array v4, v6, [B invoke-virtual {v1, v4}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readFully([B)V add-int v8, v2, v6 sget-object v9, Landroidx/exifinterface/media/ExifInterface;->IDENTIFIER_EXIF_APP1:[B invoke-static {v4, v9}, Landroidx/exifinterface/media/ExifInterface;->startsWith([B[B)Z move-result v9 if-eqz v9, :cond_8 sget-object v9, Landroidx/exifinterface/media/ExifInterface;->IDENTIFIER_EXIF_APP1:[B array-length v10, v9 add-int/2addr v2, v10 array-length v9, v9 invoke-static {v4, v9, v6}, Ljava/util/Arrays;->copyOfRange([BII)[B move-result-object v4 iput v2, v0, Landroidx/exifinterface/media/ExifInterface;->mExifOffset:I invoke-direct {v0, v4, v3}, Landroidx/exifinterface/media/ExifInterface;->readExifSegment([BI)V goto :goto_1 :cond_8 sget-object v9, Landroidx/exifinterface/media/ExifInterface;->IDENTIFIER_XMP_APP1:[B invoke-static {v4, v9}, Landroidx/exifinterface/media/ExifInterface;->startsWith([B[B)Z move-result v9 if-eqz v9, :cond_9 sget-object v9, Landroidx/exifinterface/media/ExifInterface;->IDENTIFIER_XMP_APP1:[B array-length v11, v9 add-int/2addr v2, v11 array-length v9, v9 invoke-static {v4, v9, v6}, Ljava/util/Arrays;->copyOfRange([BII)[B move-result-object v4 const-string v6, "Xmp" invoke-virtual {v0, v6}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v9 if-nez v9, :cond_9 iget-object v9, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v9, v9, v10 new-instance v10, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; const/4 v12, 0x1 array-length v13, v4 int-to-long v14, v2 move-object v11, v10 move-object/from16 v16, v4 invoke-direct/range {v11 .. v16}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->(IIJ[B)V invoke-virtual {v9, v6, v10}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; const/4 v2, 0x1 iput-boolean v2, v0, Landroidx/exifinterface/media/ExifInterface;->mXmpIsFromSeparateMarker:Z :cond_9 :goto_1 move v2, v8 :cond_a :goto_2 const/4 v6, 0x0 :goto_3 if-ltz v6, :cond_c invoke-virtual {v1, v6}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I move-result v4 if-ne v4, v6, :cond_b add-int/2addr v2, v6 const/4 v7, -0x1 const/4 v8, 0x1 goto/16 :goto_0 :cond_b new-instance v1, Ljava/io/IOException; const-string v2, "Invalid JPEG segment" invoke-direct {v1, v2}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v1 :cond_c new-instance v1, Ljava/io/IOException; invoke-direct {v1, v7}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v1 :cond_d new-instance v1, Ljava/io/IOException; invoke-direct {v1, v7}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v1 :cond_e :goto_4 iget-object v2, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->setByteOrder(Ljava/nio/ByteOrder;)V return-void :cond_f new-instance v1, Ljava/io/IOException; const-string v2, "Invalid marker:" invoke-static {v2}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 and-int/lit16 v3, v4, 0xff invoke-static {v3}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v1, v2}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v1 :cond_10 new-instance v1, Ljava/io/IOException; invoke-static {v6}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 and-int/lit16 v3, v4, 0xff invoke-static {v3}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v1, v2}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v1 :cond_11 new-instance v1, Ljava/io/IOException; invoke-static {v6}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 and-int/lit16 v3, v4, 0xff invoke-static {v3}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v1, v2}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v1 nop :pswitch_data_0 .packed-switch -0x40 :pswitch_0 :pswitch_0 :pswitch_0 :pswitch_0 .end packed-switch :pswitch_data_1 .packed-switch -0x3b :pswitch_0 :pswitch_0 :pswitch_0 .end packed-switch :pswitch_data_2 .packed-switch -0x37 :pswitch_0 :pswitch_0 :pswitch_0 .end packed-switch :pswitch_data_3 .packed-switch -0x33 :pswitch_0 :pswitch_0 :pswitch_0 .end packed-switch .end method .method private getMimeType(Ljava/io/BufferedInputStream;)I .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/16 v0, 0x1388 invoke-virtual {p1, v0}, Ljava/io/BufferedInputStream;->mark(I)V new-array v0, v0, [B invoke-virtual {p1, v0}, Ljava/io/BufferedInputStream;->read([B)I invoke-virtual {p1}, Ljava/io/BufferedInputStream;->reset()V invoke-static {v0}, Landroidx/exifinterface/media/ExifInterface;->isJpegFormat([B)Z move-result p1 if-eqz p1, :cond_0 const/4 p1, 0x4 return p1 :cond_0 invoke-direct {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->isRafFormat([B)Z move-result p1 if-eqz p1, :cond_1 const/16 p1, 0x9 return p1 :cond_1 invoke-direct {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->isHeifFormat([B)Z move-result p1 if-eqz p1, :cond_2 const/16 p1, 0xc return p1 :cond_2 invoke-direct {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->isOrfFormat([B)Z move-result p1 if-eqz p1, :cond_3 const/4 p1, 0x7 return p1 :cond_3 invoke-direct {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->isRw2Format([B)Z move-result p1 if-eqz p1, :cond_4 const/16 p1, 0xa return p1 :cond_4 invoke-direct {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->isPngFormat([B)Z move-result p1 if-eqz p1, :cond_5 const/16 p1, 0xd return p1 :cond_5 invoke-direct {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->isWebpFormat([B)Z move-result p1 if-eqz p1, :cond_6 const/16 p1, 0xe return p1 :cond_6 const/4 p1, 0x0 return p1 .end method .method private getOrfAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V .locals 6 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation invoke-direct {p0, p1}, Landroidx/exifinterface/media/ExifInterface;->getRawAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/4 v0, 0x1 aget-object p1, p1, v0 const-string v1, "MakerNote" invoke-virtual {p1, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 check-cast p1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz p1, :cond_6 new-instance v1, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream; iget-object p1, p1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->bytes:[B invoke-direct {v1, p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->([B)V iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v1, p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->setByteOrder(Ljava/nio/ByteOrder;)V sget-object p1, Landroidx/exifinterface/media/ExifInterface;->ORF_MAKER_NOTE_HEADER_1:[B array-length p1, p1 new-array p1, p1, [B invoke-virtual {v1, p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readFully([B)V const-wide/16 v2, 0x0 invoke-virtual {v1, v2, v3}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V sget-object v2, Landroidx/exifinterface/media/ExifInterface;->ORF_MAKER_NOTE_HEADER_2:[B array-length v2, v2 new-array v2, v2, [B invoke-virtual {v1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readFully([B)V sget-object v3, Landroidx/exifinterface/media/ExifInterface;->ORF_MAKER_NOTE_HEADER_1:[B invoke-static {p1, v3}, Ljava/util/Arrays;->equals([B[B)Z move-result p1 if-eqz p1, :cond_0 const-wide/16 v2, 0x8 invoke-virtual {v1, v2, v3}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V goto :goto_0 :cond_0 sget-object p1, Landroidx/exifinterface/media/ExifInterface;->ORF_MAKER_NOTE_HEADER_2:[B invoke-static {v2, p1}, Ljava/util/Arrays;->equals([B[B)Z move-result p1 if-eqz p1, :cond_1 const-wide/16 v2, 0xc invoke-virtual {v1, v2, v3}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V :cond_1 :goto_0 const/4 p1, 0x6 invoke-direct {p0, v1, p1}, Landroidx/exifinterface/media/ExifInterface;->readImageFileDirectory(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/4 v1, 0x7 aget-object p1, p1, v1 const-string v2, "PreviewImageStart" invoke-virtual {p1, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 check-cast p1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v1, v2, v1 const-string v2, "PreviewImageLength" invoke-virtual {v1, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 check-cast v1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz p1, :cond_2 if-eqz v1, :cond_2 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/4 v3, 0x5 aget-object v2, v2, v3 const-string v4, "JPEGInterchangeFormat" invoke-virtual {v2, v4, p1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object p1, p1, v3 const-string v2, "JPEGInterchangeFormatLength" invoke-virtual {p1, v2, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_2 iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/16 v1, 0x8 aget-object p1, p1, v1 const-string v1, "AspectFrame" invoke-virtual {p1, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 check-cast p1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz p1, :cond_6 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {p1, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getValue(Ljava/nio/ByteOrder;)Ljava/lang/Object; move-result-object p1 check-cast p1, [I if-eqz p1, :cond_5 array-length v1, p1 const/4 v2, 0x4 if-eq v1, v2, :cond_3 goto :goto_1 :cond_3 const/4 v1, 0x2 aget v2, p1, v1 const/4 v3, 0x0 aget v4, p1, v3 if-le v2, v4, :cond_6 const/4 v2, 0x3 aget v4, p1, v2 aget v5, p1, v0 if-le v4, v5, :cond_6 aget v1, p1, v1 aget v4, p1, v3 sub-int/2addr v1, v4 add-int/2addr v1, v0 aget v2, p1, v2 aget p1, p1, v0 sub-int/2addr v2, p1 add-int/2addr v2, v0 if-ge v1, v2, :cond_4 add-int/2addr v1, v2 sub-int v2, v1, v2 sub-int/2addr v1, v2 :cond_4 iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v1, p1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createUShort(ILjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object p1 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v2, v0}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createUShort(ILjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v0 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v1, v1, v3 const-string v2, "ImageWidth" invoke-virtual {v1, v2, p1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object p1, p1, v3 const-string v1, "ImageLength" invoke-virtual {p1, v1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_2 :cond_5 :goto_1 const-string v0, "Invalid aspect frame values. frame=" invoke-static {v0}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-static {p1}, Ljava/util/Arrays;->toString([I)Ljava/lang/String; move-result-object p1 invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 const-string v0, "ExifInterface" invoke-static {v0, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I :cond_6 :goto_2 return-void .end method .method private getPngAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V .locals 6 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation sget-boolean v0, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v0, :cond_0 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "getPngAttributes starting with: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 const-string v1, "ExifInterface" invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_0 sget-object v0, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; invoke-virtual {p1, v0}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->setByteOrder(Ljava/nio/ByteOrder;)V sget-object v0, Landroidx/exifinterface/media/ExifInterface;->PNG_SIGNATURE:[B array-length v0, v0 invoke-virtual {p1, v0}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I sget-object v0, Landroidx/exifinterface/media/ExifInterface;->PNG_SIGNATURE:[B array-length v0, v0 const/4 v1, 0x0 add-int/2addr v0, v1 :goto_0 :try_start_0 invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I move-result v2 const/4 v3, 0x4 add-int/2addr v0, v3 new-array v4, v3, [B invoke-virtual {p1, v4}, Ljava/io/InputStream;->read([B)I move-result v5 if-ne v5, v3, :cond_7 add-int/2addr v0, v3 const/16 v3, 0x10 if-ne v0, v3, :cond_2 sget-object v3, Landroidx/exifinterface/media/ExifInterface;->PNG_CHUNK_TYPE_IHDR:[B invoke-static {v4, v3}, Ljava/util/Arrays;->equals([B[B)Z move-result v3 if-eqz v3, :cond_1 goto :goto_1 :cond_1 new-instance p1, Ljava/io/IOException; const-string v0, "Encountered invalid PNG file--IHDR chunk should appearas the first chunk" invoke-direct {p1, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_2 :goto_1 sget-object v3, Landroidx/exifinterface/media/ExifInterface;->PNG_CHUNK_TYPE_IEND:[B invoke-static {v4, v3}, Ljava/util/Arrays;->equals([B[B)Z move-result v3 if-eqz v3, :cond_3 goto :goto_2 :cond_3 sget-object v3, Landroidx/exifinterface/media/ExifInterface;->PNG_CHUNK_TYPE_EXIF:[B invoke-static {v4, v3}, Ljava/util/Arrays;->equals([B[B)Z move-result v3 if-eqz v3, :cond_6 new-array v3, v2, [B invoke-virtual {p1, v3}, Ljava/io/InputStream;->read([B)I move-result v5 if-ne v5, v2, :cond_5 invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I move-result p1 new-instance v2, Ljava/util/zip/CRC32; invoke-direct {v2}, Ljava/util/zip/CRC32;->()V invoke-virtual {v2, v4}, Ljava/util/zip/CRC32;->update([B)V invoke-virtual {v2, v3}, Ljava/util/zip/CRC32;->update([B)V invoke-virtual {v2}, Ljava/util/zip/CRC32;->getValue()J move-result-wide v4 long-to-int v5, v4 if-ne v5, p1, :cond_4 iput v0, p0, Landroidx/exifinterface/media/ExifInterface;->mExifOffset:I invoke-direct {p0, v3, v1}, Landroidx/exifinterface/media/ExifInterface;->readExifSegment([BI)V invoke-direct {p0}, Landroidx/exifinterface/media/ExifInterface;->validateImages()V :goto_2 return-void :cond_4 new-instance v0, Ljava/io/IOException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v3, "Encountered invalid CRC value for PNG-EXIF chunk.\n recorded CRC value: " invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; const-string p1, ", calculated CRC value: " invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/util/zip/CRC32;->getValue()J move-result-wide v2 invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v0 :cond_5 new-instance p1, Ljava/io/IOException; new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "Failed to read given length for given PNG chunk type: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-static {v4}, Landroidx/exifinterface/media/ExifInterface;->byteArrayToHexString([B)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_6 add-int/lit8 v2, v2, 0x4 invoke-virtual {p1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I add-int/2addr v0, v2 goto/16 :goto_0 :cond_7 new-instance p1, Ljava/io/IOException; const-string v0, "Encountered invalid length while parsing PNG chunktype" invoke-direct {p1, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :try_end_0 .catch Ljava/io/EOFException; {:try_start_0 .. :try_end_0} :catch_0 :catch_0 new-instance p1, Ljava/io/IOException; const-string v0, "Encountered corrupt PNG file." invoke-direct {p1, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 .end method .method private getRafAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V .locals 7 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/16 v0, 0x54 invoke-virtual {p1, v0}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I const/4 v0, 0x4 new-array v1, v0, [B new-array v2, v0, [B invoke-virtual {p1, v1}, Ljava/io/InputStream;->read([B)I invoke-virtual {p1, v0}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I invoke-virtual {p1, v2}, Ljava/io/InputStream;->read([B)I invoke-static {v1}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer; move-result-object v0 invoke-virtual {v0}, Ljava/nio/ByteBuffer;->getInt()I move-result v0 invoke-static {v2}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer; move-result-object v1 invoke-virtual {v1}, Ljava/nio/ByteBuffer;->getInt()I move-result v1 const/4 v2, 0x5 invoke-direct {p0, p1, v0, v2}, Landroidx/exifinterface/media/ExifInterface;->getJpegAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;II)V int-to-long v0, v1 invoke-virtual {p1, v0, v1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V sget-object v0, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; invoke-virtual {p1, v0}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->setByteOrder(Ljava/nio/ByteOrder;)V invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I move-result v0 sget-boolean v1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z const-string v2, "ExifInterface" if-eqz v1, :cond_0 const-string v1, "numberOfDirectoryEntry: " invoke-static {v1, v0, v2}, Lf/e/b/a/a;->Q(Ljava/lang/String;ILjava/lang/String;)V :cond_0 const/4 v1, 0x0 const/4 v3, 0x0 :goto_0 if-ge v3, v0, :cond_3 invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readUnsignedShort()I move-result v4 invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readUnsignedShort()I move-result v5 sget-object v6, Landroidx/exifinterface/media/ExifInterface;->TAG_RAF_IMAGE_SIZE:Landroidx/exifinterface/media/ExifInterface$ExifTag; iget v6, v6, Landroidx/exifinterface/media/ExifInterface$ExifTag;->number:I if-ne v4, v6, :cond_2 invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readShort()S move-result v0 invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readShort()S move-result p1 iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v0, v3}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createUShort(ILjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v3 iget-object v4, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {p1, v4}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createUShort(ILjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v4 iget-object v5, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v5, v5, v1 const-string v6, "ImageLength" invoke-virtual {v5, v6, v3}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v1, v3, v1 const-string v3, "ImageWidth" invoke-virtual {v1, v3, v4}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; sget-boolean v1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v1, :cond_1 new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v3, "Updated to length: " invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; const-string v0, ", width: " invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v2, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_1 return-void :cond_2 invoke-virtual {p1, v5}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I add-int/lit8 v3, v3, 0x1 goto :goto_0 :cond_3 return-void .end method .method private getRawAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V .locals 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->available()I move-result v0 invoke-direct {p0, p1, v0}, Landroidx/exifinterface/media/ExifInterface;->parseTiffHeaders(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V const/4 v0, 0x0 invoke-direct {p0, p1, v0}, Landroidx/exifinterface/media/ExifInterface;->readImageFileDirectory(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V invoke-direct {p0, p1, v0}, Landroidx/exifinterface/media/ExifInterface;->updateImageSizeValues(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V const/4 v0, 0x5 invoke-direct {p0, p1, v0}, Landroidx/exifinterface/media/ExifInterface;->updateImageSizeValues(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V const/4 v0, 0x4 invoke-direct {p0, p1, v0}, Landroidx/exifinterface/media/ExifInterface;->updateImageSizeValues(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V invoke-direct {p0}, Landroidx/exifinterface/media/ExifInterface;->validateImages()V iget p1, p0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I const/16 v0, 0x8 if-ne p1, v0, :cond_0 iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/4 v0, 0x1 aget-object p1, p1, v0 const-string v1, "MakerNote" invoke-virtual {p1, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 check-cast p1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz p1, :cond_0 new-instance v1, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream; iget-object p1, p1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->bytes:[B invoke-direct {v1, p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->([B)V iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v1, p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->setByteOrder(Ljava/nio/ByteOrder;)V const-wide/16 v2, 0x6 invoke-virtual {v1, v2, v3}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V const/16 p1, 0x9 invoke-direct {p0, v1, p1}, Landroidx/exifinterface/media/ExifInterface;->readImageFileDirectory(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object p1, v1, p1 const-string v1, "ColorSpace" invoke-virtual {p1, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 check-cast p1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz p1, :cond_0 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v2, v0 invoke-virtual {v0, v1, p1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_0 return-void .end method .method private getRw2Attributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation invoke-direct {p0, p1}, Landroidx/exifinterface/media/ExifInterface;->getRawAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/4 v1, 0x0 aget-object v0, v0, v1 const-string v2, "JpgFromRaw" invoke-virtual {v0, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz v0, :cond_0 iget v0, p0, Landroidx/exifinterface/media/ExifInterface;->mRw2JpgFromRawOffset:I const/4 v2, 0x5 invoke-direct {p0, p1, v0, v2}, Landroidx/exifinterface/media/ExifInterface;->getJpegAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;II)V :cond_0 iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object p1, p1, v1 const-string v0, "ISO" invoke-virtual {p1, v0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 check-cast p1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/4 v1, 0x1 aget-object v0, v0, v1 const-string v2, "PhotographicSensitivity" invoke-virtual {v0, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz p1, :cond_1 if-nez v0, :cond_1 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, v1 invoke-virtual {v0, v2, p1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_1 return-void .end method .method private getStandaloneAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation sget-object v0, Landroidx/exifinterface/media/ExifInterface;->IDENTIFIER_EXIF_APP1:[B array-length v0, v0 invoke-virtual {p1, v0}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->available()I move-result v0 new-array v0, v0, [B invoke-virtual {p1, v0}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readFully([B)V sget-object p1, Landroidx/exifinterface/media/ExifInterface;->IDENTIFIER_EXIF_APP1:[B array-length p1, p1 iput p1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifOffset:I const/4 p1, 0x0 invoke-direct {p0, v0, p1}, Landroidx/exifinterface/media/ExifInterface;->readExifSegment([BI)V return-void .end method .method private getWebpAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V .locals 5 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation sget-boolean v0, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v0, :cond_0 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "getWebpAttributes starting with: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 const-string v1, "ExifInterface" invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_0 sget-object v0, Ljava/nio/ByteOrder;->LITTLE_ENDIAN:Ljava/nio/ByteOrder; invoke-virtual {p1, v0}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->setByteOrder(Ljava/nio/ByteOrder;)V sget-object v0, Landroidx/exifinterface/media/ExifInterface;->WEBP_SIGNATURE_1:[B array-length v0, v0 invoke-virtual {p1, v0}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I move-result v0 add-int/lit8 v0, v0, 0x8 sget-object v1, Landroidx/exifinterface/media/ExifInterface;->WEBP_SIGNATURE_2:[B array-length v1, v1 invoke-virtual {p1, v1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I move-result v1 add-int/lit8 v1, v1, 0x8 :goto_0 const/4 v2, 0x4 :try_start_0 new-array v3, v2, [B invoke-virtual {p1, v3}, Ljava/io/InputStream;->read([B)I move-result v4 if-ne v4, v2, :cond_7 add-int/2addr v1, v2 invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I move-result v4 add-int/2addr v1, v2 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_EXIF:[B invoke-static {v2, v3}, Ljava/util/Arrays;->equals([B[B)Z move-result v2 if-eqz v2, :cond_2 new-array v0, v4, [B invoke-virtual {p1, v0}, Ljava/io/InputStream;->read([B)I move-result p1 if-ne p1, v4, :cond_1 iput v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifOffset:I const/4 p1, 0x0 invoke-direct {p0, v0, p1}, Landroidx/exifinterface/media/ExifInterface;->readExifSegment([BI)V iput v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifOffset:I goto :goto_1 :cond_1 new-instance p1, Ljava/io/IOException; new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "Failed to read given length for given PNG chunk type: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-static {v3}, Landroidx/exifinterface/media/ExifInterface;->byteArrayToHexString([B)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_2 rem-int/lit8 v2, v4, 0x2 :try_end_0 .catch Ljava/io/EOFException; {:try_start_0 .. :try_end_0} :catch_0 const/4 v3, 0x1 if-ne v2, v3, :cond_3 add-int/lit8 v4, v4, 0x1 :cond_3 add-int v2, v1, v4 if-ne v2, v0, :cond_4 :goto_1 return-void :cond_4 const-string v3, "Encountered WebP file with invalid chunk size" if-gt v2, v0, :cond_6 :try_start_1 invoke-virtual {p1, v4}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I move-result v2 if-ne v2, v4, :cond_5 add-int/2addr v1, v2 goto :goto_0 :cond_5 new-instance p1, Ljava/io/IOException; invoke-direct {p1, v3}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_6 new-instance p1, Ljava/io/IOException; invoke-direct {p1, v3}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_7 new-instance p1, Ljava/io/IOException; const-string v0, "Encountered invalid length while parsing WebP chunktype" invoke-direct {p1, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :try_end_1 .catch Ljava/io/EOFException; {:try_start_1 .. :try_end_1} :catch_0 :catch_0 new-instance p1, Ljava/io/IOException; const-string v0, "Encountered corrupt WebP file." invoke-direct {p1, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 .end method .method public static guessDataFormat(Ljava/lang/String;)Landroid/util/Pair; .locals 12 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", ")", "Landroid/util/Pair<", "Ljava/lang/Integer;", "Ljava/lang/Integer;", ">;" } .end annotation const-string v0, "," invoke-virtual {p0, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v1 const/4 v2, 0x0 const/4 v3, 0x1 const/4 v4, 0x2 invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v5 const/4 v6, -0x1 invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v7 if-eqz v1, :cond_9 invoke-virtual {p0, v0, v6}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object p0 aget-object v0, p0, v2 invoke-static {v0}, Landroidx/exifinterface/media/ExifInterface;->guessDataFormat(Ljava/lang/String;)Landroid/util/Pair; move-result-object v0 iget-object v1, v0, Landroid/util/Pair;->first:Ljava/lang/Object; check-cast v1, Ljava/lang/Integer; invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I move-result v1 if-ne v1, v4, :cond_0 return-object v0 :cond_0 :goto_0 array-length v1, p0 if-ge v3, v1, :cond_8 aget-object v1, p0, v3 invoke-static {v1}, Landroidx/exifinterface/media/ExifInterface;->guessDataFormat(Ljava/lang/String;)Landroid/util/Pair; move-result-object v1 iget-object v2, v1, Landroid/util/Pair;->first:Ljava/lang/Object; check-cast v2, Ljava/lang/Integer; iget-object v4, v0, Landroid/util/Pair;->first:Ljava/lang/Object; invoke-virtual {v2, v4}, Ljava/lang/Integer;->equals(Ljava/lang/Object;)Z move-result v2 if-nez v2, :cond_2 iget-object v2, v1, Landroid/util/Pair;->second:Ljava/lang/Object; check-cast v2, Ljava/lang/Integer; iget-object v4, v0, Landroid/util/Pair;->first:Ljava/lang/Object; invoke-virtual {v2, v4}, Ljava/lang/Integer;->equals(Ljava/lang/Object;)Z move-result v2 if-eqz v2, :cond_1 goto :goto_1 :cond_1 const/4 v2, -0x1 goto :goto_2 :cond_2 :goto_1 iget-object v2, v0, Landroid/util/Pair;->first:Ljava/lang/Object; check-cast v2, Ljava/lang/Integer; invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I move-result v2 :goto_2 iget-object v4, v0, Landroid/util/Pair;->second:Ljava/lang/Object; check-cast v4, Ljava/lang/Integer; invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I move-result v4 if-eq v4, v6, :cond_4 iget-object v4, v1, Landroid/util/Pair;->first:Ljava/lang/Object; check-cast v4, Ljava/lang/Integer; iget-object v8, v0, Landroid/util/Pair;->second:Ljava/lang/Object; invoke-virtual {v4, v8}, Ljava/lang/Integer;->equals(Ljava/lang/Object;)Z move-result v4 if-nez v4, :cond_3 iget-object v1, v1, Landroid/util/Pair;->second:Ljava/lang/Object; check-cast v1, Ljava/lang/Integer; iget-object v4, v0, Landroid/util/Pair;->second:Ljava/lang/Object; invoke-virtual {v1, v4}, Ljava/lang/Integer;->equals(Ljava/lang/Object;)Z move-result v1 if-eqz v1, :cond_4 :cond_3 iget-object v1, v0, Landroid/util/Pair;->second:Ljava/lang/Object; check-cast v1, Ljava/lang/Integer; invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I move-result v1 goto :goto_3 :cond_4 const/4 v1, -0x1 :goto_3 if-ne v2, v6, :cond_5 if-ne v1, v6, :cond_5 new-instance p0, Landroid/util/Pair; invoke-direct {p0, v5, v7}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V return-object p0 :cond_5 if-ne v2, v6, :cond_6 new-instance v0, Landroid/util/Pair; invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v1 invoke-direct {v0, v1, v7}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V goto :goto_4 :cond_6 if-ne v1, v6, :cond_7 new-instance v0, Landroid/util/Pair; invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v1 invoke-direct {v0, v1, v7}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V :cond_7 :goto_4 add-int/lit8 v3, v3, 0x1 goto :goto_0 :cond_8 return-object v0 :cond_9 const-string v0, "/" invoke-virtual {p0, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v1 const-wide/16 v8, 0x0 if-eqz v1, :cond_f invoke-virtual {p0, v0, v6}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object p0 array-length v0, p0 if-ne v0, v4, :cond_e :try_start_0 aget-object v0, p0, v2 invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v0 double-to-long v0, v0 aget-object p0, p0, v3 invoke-static {p0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v2 double-to-long v2, v2 const/16 p0, 0xa cmp-long v4, v0, v8 if-ltz v4, :cond_d cmp-long v4, v2, v8 if-gez v4, :cond_a goto :goto_6 :cond_a const/4 v4, 0x5 const-wide/32 v8, 0x7fffffff cmp-long v6, v0, v8 if-gtz v6, :cond_c cmp-long v0, v2, v8 if-lez v0, :cond_b goto :goto_5 :cond_b new-instance v0, Landroid/util/Pair; invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v1 invoke-direct {v0, p0, v1}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V return-object v0 :cond_c :goto_5 new-instance p0, Landroid/util/Pair; invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v0 invoke-direct {p0, v0, v7}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V return-object p0 :cond_d :goto_6 new-instance v0, Landroid/util/Pair; invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 invoke-direct {v0, p0, v7}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V :try_end_0 .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 return-object v0 :catch_0 :cond_e new-instance p0, Landroid/util/Pair; invoke-direct {p0, v5, v7}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V return-object p0 :cond_f :try_start_1 invoke-static {p0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J move-result-wide v0 invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v0 invoke-virtual {v0}, Ljava/lang/Long;->longValue()J move-result-wide v1 const/4 v3, 0x4 cmp-long v4, v1, v8 if-ltz v4, :cond_10 invoke-virtual {v0}, Ljava/lang/Long;->longValue()J move-result-wide v1 const-wide/32 v10, 0xffff cmp-long v4, v1, v10 if-gtz v4, :cond_10 new-instance v0, Landroid/util/Pair; const/4 v1, 0x3 invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v1 invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v2 invoke-direct {v0, v1, v2}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V return-object v0 :cond_10 invoke-virtual {v0}, Ljava/lang/Long;->longValue()J move-result-wide v0 cmp-long v2, v0, v8 if-gez v2, :cond_11 new-instance v0, Landroid/util/Pair; const/16 v1, 0x9 invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v1 invoke-direct {v0, v1, v7}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V return-object v0 :cond_11 new-instance v0, Landroid/util/Pair; invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v1 invoke-direct {v0, v1, v7}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V :try_end_1 .catch Ljava/lang/NumberFormatException; {:try_start_1 .. :try_end_1} :catch_1 return-object v0 :catch_1 :try_start_2 invoke-static {p0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D new-instance p0, Landroid/util/Pair; const/16 v0, 0xc invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v0 invoke-direct {p0, v0, v7}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V :try_end_2 .catch Ljava/lang/NumberFormatException; {:try_start_2 .. :try_end_2} :catch_2 return-object p0 :catch_2 new-instance p0, Landroid/util/Pair; invoke-direct {p0, v5, v7}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V return-object p0 .end method .method private handleThumbnailFromJfif(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;Ljava/util/HashMap;)V .locals 5 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const-string v0, "JPEGInterchangeFormat" invoke-virtual {p2, v0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; const-string v1, "JPEGInterchangeFormatLength" invoke-virtual {p2, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p2 check-cast p2, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz v0, :cond_2 if-eqz p2, :cond_2 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v0, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result v0 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {p2, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result p2 iget v1, p0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I const/4 v2, 0x7 if-ne v1, v2, :cond_0 iget v1, p0, Landroidx/exifinterface/media/ExifInterface;->mOrfMakerNoteOffset:I add-int/2addr v0, v1 :cond_0 invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->getLength()I move-result v1 sub-int/2addr v1, v0 invoke-static {p2, v1}, Ljava/lang/Math;->min(II)I move-result p2 if-lez v0, :cond_1 if-lez p2, :cond_1 const/4 v1, 0x1 iput-boolean v1, p0, Landroidx/exifinterface/media/ExifInterface;->mHasThumbnail:Z iget v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifOffset:I add-int/2addr v1, v0 iput v1, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailOffset:I iput p2, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailLength:I iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; if-nez v2, :cond_1 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mAssetInputStream:Landroid/content/res/AssetManager$AssetInputStream; if-nez v2, :cond_1 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; if-nez v2, :cond_1 new-array v2, p2, [B int-to-long v3, v1 invoke-virtual {p1, v3, v4}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V invoke-virtual {p1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readFully([B)V iput-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailBytes:[B :cond_1 sget-boolean p1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz p1, :cond_2 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1}, Ljava/lang/StringBuilder;->()V const-string v1, "Setting thumbnail attributes with offset: " invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; const-string v0, ", length: " invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 const-string p2, "ExifInterface" invoke-static {p2, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_2 return-void .end method .method private handleThumbnailFromStrips(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;Ljava/util/HashMap;)V .locals 19 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation move-object/from16 v0, p0 move-object/from16 v1, p1 move-object/from16 v2, p2 const-string v3, "StripOffsets" invoke-virtual {v2, v3}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 check-cast v3, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; const-string v4, "StripByteCounts" invoke-virtual {v2, v4}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 check-cast v2, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz v3, :cond_9 if-eqz v2, :cond_9 iget-object v4, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v3, v4}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getValue(Ljava/nio/ByteOrder;)Ljava/lang/Object; move-result-object v3 invoke-static {v3}, Landroidx/exifinterface/media/ExifInterface;->convertToLongArray(Ljava/lang/Object;)[J move-result-object v3 iget-object v4, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v2, v4}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getValue(Ljava/nio/ByteOrder;)Ljava/lang/Object; move-result-object v2 invoke-static {v2}, Landroidx/exifinterface/media/ExifInterface;->convertToLongArray(Ljava/lang/Object;)[J move-result-object v2 const-string v4, "ExifInterface" if-eqz v3, :cond_8 array-length v5, v3 if-nez v5, :cond_0 goto/16 :goto_3 :cond_0 if-eqz v2, :cond_7 array-length v5, v2 if-nez v5, :cond_1 goto :goto_2 :cond_1 array-length v5, v3 array-length v6, v2 if-eq v5, v6, :cond_2 const-string v1, "stripOffsets and stripByteCounts should have same length." invoke-static {v4, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I return-void :cond_2 const-wide/16 v5, 0x0 array-length v7, v2 const/4 v8, 0x0 const/4 v9, 0x0 :goto_0 if-ge v9, v7, :cond_3 aget-wide v10, v2, v9 add-long/2addr v5, v10 add-int/lit8 v9, v9, 0x1 goto :goto_0 :cond_3 long-to-int v6, v5 new-array v5, v6, [B const/4 v7, 0x1 iput-boolean v7, v0, Landroidx/exifinterface/media/ExifInterface;->mAreThumbnailStripsConsecutive:Z iput-boolean v7, v0, Landroidx/exifinterface/media/ExifInterface;->mHasThumbnailStrips:Z iput-boolean v7, v0, Landroidx/exifinterface/media/ExifInterface;->mHasThumbnail:Z const/4 v9, 0x0 const/4 v10, 0x0 const/4 v11, 0x0 :goto_1 array-length v12, v3 if-ge v9, v12, :cond_6 aget-wide v12, v3, v9 long-to-int v13, v12 aget-wide v14, v2, v9 long-to-int v12, v14 array-length v14, v3 sub-int/2addr v14, v7 if-ge v9, v14, :cond_4 add-int v14, v13, v12 int-to-long v14, v14 add-int/lit8 v16, v9, 0x1 aget-wide v16, v3, v16 cmp-long v18, v14, v16 if-eqz v18, :cond_4 iput-boolean v8, v0, Landroidx/exifinterface/media/ExifInterface;->mAreThumbnailStripsConsecutive:Z :cond_4 sub-int/2addr v13, v10 if-gez v13, :cond_5 const-string v14, "Invalid strip offset value" invoke-static {v4, v14}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_5 int-to-long v14, v13 invoke-virtual {v1, v14, v15}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V add-int/2addr v10, v13 new-array v13, v12, [B invoke-virtual {v1, v13}, Ljava/io/InputStream;->read([B)I add-int/2addr v10, v12 invoke-static {v13, v8, v5, v11, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V add-int/2addr v11, v12 add-int/lit8 v9, v9, 0x1 goto :goto_1 :cond_6 iput-object v5, v0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailBytes:[B iget-boolean v1, v0, Landroidx/exifinterface/media/ExifInterface;->mAreThumbnailStripsConsecutive:Z if-eqz v1, :cond_9 aget-wide v1, v3, v8 long-to-int v2, v1 iget v1, v0, Landroidx/exifinterface/media/ExifInterface;->mExifOffset:I add-int/2addr v2, v1 iput v2, v0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailOffset:I iput v6, v0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailLength:I goto :goto_4 :cond_7 :goto_2 const-string v1, "stripByteCounts should not be null or have zero length." invoke-static {v4, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I return-void :cond_8 :goto_3 const-string v1, "stripOffsets should not be null or have zero length." invoke-static {v4, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I :cond_9 :goto_4 return-void .end method .method private initForFilename(Ljava/lang/String;)V .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation if-eqz p1, :cond_1 const/4 v0, 0x0 iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAssetInputStream:Landroid/content/res/AssetManager$AssetInputStream; iput-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; :try_start_0 new-instance v1, Ljava/io/FileInputStream; invoke-direct {v1, p1}, Ljava/io/FileInputStream;->(Ljava/lang/String;)V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_1 :try_start_1 invoke-virtual {v1}, Ljava/io/FileInputStream;->getFD()Ljava/io/FileDescriptor; move-result-object p1 invoke-static {p1}, Landroidx/exifinterface/media/ExifInterface;->isSeekableFD(Ljava/io/FileDescriptor;)Z move-result p1 if-eqz p1, :cond_0 invoke-virtual {v1}, Ljava/io/FileInputStream;->getFD()Ljava/io/FileDescriptor; move-result-object p1 iput-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; goto :goto_0 :cond_0 iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; :goto_0 invoke-direct {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->loadAttributes(Ljava/io/InputStream;)V :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 invoke-static {v1}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V return-void :catchall_0 move-exception p1 move-object v0, v1 goto :goto_1 :catchall_1 move-exception p1 :goto_1 invoke-static {v0}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V throw p1 :cond_1 new-instance p1, Ljava/lang/NullPointerException; const-string v0, "filename cannot be null" invoke-direct {p1, v0}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 .end method .method public static isExifDataOnly(Ljava/io/BufferedInputStream;)Z .locals 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation sget-object v0, Landroidx/exifinterface/media/ExifInterface;->IDENTIFIER_EXIF_APP1:[B array-length v0, v0 invoke-virtual {p0, v0}, Ljava/io/BufferedInputStream;->mark(I)V sget-object v0, Landroidx/exifinterface/media/ExifInterface;->IDENTIFIER_EXIF_APP1:[B array-length v0, v0 new-array v0, v0, [B invoke-virtual {p0, v0}, Ljava/io/BufferedInputStream;->read([B)I invoke-virtual {p0}, Ljava/io/BufferedInputStream;->reset()V const/4 p0, 0x0 const/4 v1, 0x0 :goto_0 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->IDENTIFIER_EXIF_APP1:[B array-length v3, v2 if-ge v1, v3, :cond_1 aget-byte v3, v0, v1 aget-byte v2, v2, v1 if-eq v3, v2, :cond_0 return p0 :cond_0 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_1 const/4 p0, 0x1 return p0 .end method .method private isHeifFormat([B)Z .locals 14 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/4 v0, 0x0 const/4 v1, 0x0 :try_start_0 new-instance v2, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream; invoke-direct {v2, p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->([B)V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_1 .catchall {:try_start_0 .. :try_end_0} :catchall_1 :try_start_1 invoke-virtual {v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I move-result v1 int-to-long v3, v1 const/4 v1, 0x4 new-array v5, v1, [B invoke-virtual {v2, v5}, Ljava/io/InputStream;->read([B)I sget-object v6, Landroidx/exifinterface/media/ExifInterface;->HEIF_TYPE_FTYP:[B invoke-static {v5, v6}, Ljava/util/Arrays;->equals([B[B)Z move-result v5 :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 .catchall {:try_start_1 .. :try_end_1} :catchall_0 if-nez v5, :cond_0 invoke-virtual {v2}, Ljava/io/InputStream;->close()V return v0 :cond_0 const-wide/16 v5, 0x10 const-wide/16 v7, 0x8 const-wide/16 v9, 0x1 cmp-long v11, v3, v9 if-nez v11, :cond_1 :try_start_2 invoke-virtual {v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readLong()J move-result-wide v3 :try_end_2 .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_0 .catchall {:try_start_2 .. :try_end_2} :catchall_0 cmp-long v11, v3, v5 if-gez v11, :cond_2 invoke-virtual {v2}, Ljava/io/InputStream;->close()V return v0 :cond_1 move-wide v5, v7 :cond_2 :try_start_3 array-length v11, p1 int-to-long v11, v11 cmp-long v13, v3, v11 if-lez v13, :cond_3 array-length p1, p1 :try_end_3 .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_3} :catch_0 .catchall {:try_start_3 .. :try_end_3} :catchall_0 int-to-long v3, p1 :cond_3 sub-long/2addr v3, v5 cmp-long p1, v3, v7 if-gez p1, :cond_4 invoke-virtual {v2}, Ljava/io/InputStream;->close()V return v0 :cond_4 :try_start_4 new-array p1, v1, [B const-wide/16 v5, 0x0 const/4 v7, 0x0 const/4 v8, 0x0 :goto_0 const-wide/16 v11, 0x4 div-long v11, v3, v11 cmp-long v13, v5, v11 if-gez v13, :cond_a invoke-virtual {v2, p1}, Ljava/io/InputStream;->read([B)I move-result v11 :try_end_4 .catch Ljava/lang/Exception; {:try_start_4 .. :try_end_4} :catch_0 .catchall {:try_start_4 .. :try_end_4} :catchall_0 if-eq v11, v1, :cond_5 invoke-virtual {v2}, Ljava/io/InputStream;->close()V return v0 :cond_5 cmp-long v11, v5, v9 if-nez v11, :cond_6 goto :goto_2 :cond_6 :try_start_5 sget-object v11, Landroidx/exifinterface/media/ExifInterface;->HEIF_BRAND_MIF1:[B invoke-static {p1, v11}, Ljava/util/Arrays;->equals([B[B)Z move-result v11 const/4 v12, 0x1 if-eqz v11, :cond_7 const/4 v7, 0x1 goto :goto_1 :cond_7 sget-object v11, Landroidx/exifinterface/media/ExifInterface;->HEIF_BRAND_HEIC:[B invoke-static {p1, v11}, Ljava/util/Arrays;->equals([B[B)Z move-result v11 :try_end_5 .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_0 .catchall {:try_start_5 .. :try_end_5} :catchall_0 if-eqz v11, :cond_8 const/4 v8, 0x1 :cond_8 :goto_1 if-eqz v7, :cond_9 if-eqz v8, :cond_9 invoke-virtual {v2}, Ljava/io/InputStream;->close()V return v12 :cond_9 :goto_2 add-long/2addr v5, v9 goto :goto_0 :cond_a invoke-virtual {v2}, Ljava/io/InputStream;->close()V goto :goto_4 :catchall_0 move-exception p1 move-object v1, v2 goto :goto_5 :catch_0 move-exception p1 move-object v1, v2 goto :goto_3 :catchall_1 move-exception p1 goto :goto_5 :catch_1 move-exception p1 :goto_3 :try_start_6 sget-boolean v2, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v2, :cond_b const-string v2, "ExifInterface" const-string v3, "Exception parsing HEIF file type box." invoke-static {v2, v3, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I :try_end_6 .catchall {:try_start_6 .. :try_end_6} :catchall_1 :cond_b if-eqz v1, :cond_c invoke-virtual {v1}, Ljava/io/InputStream;->close()V :cond_c :goto_4 return v0 :goto_5 if-eqz v1, :cond_d invoke-virtual {v1}, Ljava/io/InputStream;->close()V :cond_d throw p1 .end method .method public static isJpegFormat([B)Z .locals 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/4 v0, 0x0 const/4 v1, 0x0 :goto_0 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->JPEG_SIGNATURE:[B array-length v3, v2 if-ge v1, v3, :cond_1 aget-byte v3, p0, v1 aget-byte v2, v2, v1 if-eq v3, v2, :cond_0 return v0 :cond_0 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_1 const/4 p0, 0x1 return p0 .end method .method private isOrfFormat([B)Z .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/4 v0, 0x0 const/4 v1, 0x0 :try_start_0 new-instance v2, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream; invoke-direct {v2, p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->([B)V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_1 .catchall {:try_start_0 .. :try_end_0} :catchall_1 :try_start_1 invoke-direct {p0, v2}, Landroidx/exifinterface/media/ExifInterface;->readByteOrder(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)Ljava/nio/ByteOrder; move-result-object p1 iput-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v2, p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->setByteOrder(Ljava/nio/ByteOrder;)V invoke-virtual {v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readShort()S move-result p1 :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 .catchall {:try_start_1 .. :try_end_1} :catchall_0 const/16 v1, 0x4f52 if-eq p1, v1, :cond_0 const/16 v1, 0x5352 if-ne p1, v1, :cond_1 :cond_0 const/4 v0, 0x1 :cond_1 invoke-virtual {v2}, Ljava/io/InputStream;->close()V return v0 :catchall_0 move-exception p1 move-object v1, v2 goto :goto_0 :catch_0 move-object v1, v2 goto :goto_1 :catchall_1 move-exception p1 :goto_0 if-eqz v1, :cond_2 invoke-virtual {v1}, Ljava/io/InputStream;->close()V :cond_2 throw p1 :catch_1 nop :goto_1 if-eqz v1, :cond_3 invoke-virtual {v1}, Ljava/io/InputStream;->close()V :cond_3 return v0 .end method .method private isPngFormat([B)Z .locals 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/4 v0, 0x0 const/4 v1, 0x0 :goto_0 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->PNG_SIGNATURE:[B array-length v3, v2 if-ge v1, v3, :cond_1 aget-byte v3, p1, v1 aget-byte v2, v2, v1 if-eq v3, v2, :cond_0 return v0 :cond_0 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_1 const/4 p1, 0x1 return p1 .end method .method private isRafFormat([B)Z .locals 5 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation invoke-static {}, Ljava/nio/charset/Charset;->defaultCharset()Ljava/nio/charset/Charset; move-result-object v0 const-string v1, "FUJIFILMCCD-RAW" invoke-virtual {v1, v0}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object v0 const/4 v1, 0x0 const/4 v2, 0x0 :goto_0 array-length v3, v0 if-ge v2, v3, :cond_1 aget-byte v3, p1, v2 aget-byte v4, v0, v2 if-eq v3, v4, :cond_0 return v1 :cond_0 add-int/lit8 v2, v2, 0x1 goto :goto_0 :cond_1 const/4 p1, 0x1 return p1 .end method .method private isRw2Format([B)Z .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/4 v0, 0x0 const/4 v1, 0x0 :try_start_0 new-instance v2, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream; invoke-direct {v2, p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->([B)V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_1 .catchall {:try_start_0 .. :try_end_0} :catchall_1 :try_start_1 invoke-direct {p0, v2}, Landroidx/exifinterface/media/ExifInterface;->readByteOrder(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)Ljava/nio/ByteOrder; move-result-object p1 iput-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v2, p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->setByteOrder(Ljava/nio/ByteOrder;)V invoke-virtual {v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readShort()S move-result p1 :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 .catchall {:try_start_1 .. :try_end_1} :catchall_0 const/16 v1, 0x55 if-ne p1, v1, :cond_0 const/4 v0, 0x1 :cond_0 invoke-virtual {v2}, Ljava/io/InputStream;->close()V return v0 :catchall_0 move-exception p1 move-object v1, v2 goto :goto_0 :catch_0 move-object v1, v2 goto :goto_1 :catchall_1 move-exception p1 :goto_0 if-eqz v1, :cond_1 invoke-virtual {v1}, Ljava/io/InputStream;->close()V :cond_1 throw p1 :catch_1 nop :goto_1 if-eqz v1, :cond_2 invoke-virtual {v1}, Ljava/io/InputStream;->close()V :cond_2 return v0 .end method .method public static isSeekableFD(Ljava/io/FileDescriptor;)Z .locals 3 const-wide/16 v0, 0x0 :try_start_0 sget v2, Landroid/system/OsConstants;->SEEK_CUR:I invoke-static {p0, v0, v1, v2}, Landroid/system/Os;->lseek(Ljava/io/FileDescriptor;JI)J :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 const/4 p0, 0x1 return p0 :catch_0 nop sget-boolean p0, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz p0, :cond_0 const-string p0, "ExifInterface" const-string v0, "The file descriptor for the given input is not seekable" invoke-static {p0, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_0 const/4 p0, 0x0 return p0 .end method .method private isSupportedDataType(Ljava/util/HashMap;)Z .locals 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const-string v0, "BitsPerSample" invoke-virtual {p1, v0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz v0, :cond_3 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v0, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getValue(Ljava/nio/ByteOrder;)Ljava/lang/Object; move-result-object v0 check-cast v0, [I sget-object v1, Landroidx/exifinterface/media/ExifInterface;->BITS_PER_SAMPLE_RGB:[I invoke-static {v1, v0}, Ljava/util/Arrays;->equals([I[I)Z move-result v1 const/4 v2, 0x1 if-eqz v1, :cond_0 return v2 :cond_0 iget v1, p0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I const/4 v3, 0x3 if-ne v1, v3, :cond_3 const-string v1, "PhotometricInterpretation" invoke-virtual {p1, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 check-cast p1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz p1, :cond_3 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {p1, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result p1 if-ne p1, v2, :cond_1 sget-object v1, Landroidx/exifinterface/media/ExifInterface;->BITS_PER_SAMPLE_GREYSCALE_2:[I invoke-static {v0, v1}, Ljava/util/Arrays;->equals([I[I)Z move-result v1 if-nez v1, :cond_2 :cond_1 const/4 v1, 0x6 if-ne p1, v1, :cond_3 sget-object p1, Landroidx/exifinterface/media/ExifInterface;->BITS_PER_SAMPLE_RGB:[I invoke-static {v0, p1}, Ljava/util/Arrays;->equals([I[I)Z move-result p1 if-eqz p1, :cond_3 :cond_2 return v2 :cond_3 sget-boolean p1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz p1, :cond_4 const-string p1, "ExifInterface" const-string v0, "Unsupported data type value" invoke-static {p1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_4 const/4 p1, 0x0 return p1 .end method .method private isSupportedFormatForSavingAttributes()Z .locals 2 iget-boolean v0, p0, Landroidx/exifinterface/media/ExifInterface;->mIsSupportedFile:Z if-eqz v0, :cond_1 iget v0, p0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I const/4 v1, 0x4 if-eq v0, v1, :cond_0 const/16 v1, 0xd if-eq v0, v1, :cond_0 const/16 v1, 0xe if-ne v0, v1, :cond_1 :cond_0 const/4 v0, 0x1 return v0 :cond_1 const/4 v0, 0x0 return v0 .end method .method public static isSupportedMimeType(Ljava/lang/String;)Z .locals 4 .param p0 # Ljava/lang/String; .annotation build Landroidx/annotation/NonNull; .end annotation .end param if-eqz p0, :cond_1 sget-object v0, Ljava/util/Locale;->ROOT:Ljava/util/Locale; invoke-virtual {p0, v0}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String; move-result-object p0 const/4 v0, -0x1 invoke-virtual {p0}, Ljava/lang/String;->hashCode()I move-result v1 const/4 v2, 0x0 const/4 v3, 0x1 sparse-switch v1, :sswitch_data_0 goto/16 :goto_0 :sswitch_0 const-string v1, "image/x-canon-cr2" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const/4 v0, 0x2 goto/16 :goto_0 :sswitch_1 const-string v1, "image/x-nikon-nrw" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const/4 v0, 0x4 goto/16 :goto_0 :sswitch_2 const-string v1, "image/x-nikon-nef" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const/4 v0, 0x3 goto/16 :goto_0 :sswitch_3 const-string v1, "image/x-olympus-orf" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const/4 v0, 0x7 goto/16 :goto_0 :sswitch_4 const-string v1, "image/x-pentax-pef" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const/16 v0, 0x8 goto/16 :goto_0 :sswitch_5 const-string v1, "image/png" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const/16 v0, 0xd goto :goto_0 :sswitch_6 const-string v1, "image/x-panasonic-rw2" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const/4 v0, 0x6 goto :goto_0 :sswitch_7 const-string v1, "image/x-adobe-dng" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const/4 v0, 0x1 goto :goto_0 :sswitch_8 const-string v1, "image/webp" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const/16 v0, 0xe goto :goto_0 :sswitch_9 const-string v1, "image/jpeg" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const/4 v0, 0x0 goto :goto_0 :sswitch_a const-string v1, "image/heif" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const/16 v0, 0xc goto :goto_0 :sswitch_b const-string v1, "image/heic" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const/16 v0, 0xb goto :goto_0 :sswitch_c const-string v1, "image/x-sony-arw" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const/4 v0, 0x5 goto :goto_0 :sswitch_d const-string v1, "image/x-samsung-srw" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const/16 v0, 0x9 goto :goto_0 :sswitch_e const-string v1, "image/x-fuji-raf" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const/16 v0, 0xa :cond_0 :goto_0 packed-switch v0, :pswitch_data_0 return v2 :pswitch_0 return v3 :cond_1 new-instance p0, Ljava/lang/NullPointerException; const-string v0, "mimeType shouldn\'t be null" invoke-direct {p0, v0}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p0 :sswitch_data_0 .sparse-switch -0x6fc6acff -> :sswitch_e -0x617ac9e4 -> :sswitch_d -0x5f082c57 -> :sswitch_c -0x58a8e8f5 -> :sswitch_b -0x58a8e8f2 -> :sswitch_a -0x58a7d764 -> :sswitch_9 -0x58a21830 -> :sswitch_8 -0x54d6098a -> :sswitch_7 -0x3ab85cc1 -> :sswitch_6 -0x34686c8b -> :sswitch_5 -0x13d592a1 -> :sswitch_4 0x52243d4a -> :sswitch_3 0x7d1e84e8 -> :sswitch_2 0x7d1e868c -> :sswitch_1 0x7dd6e2bc -> :sswitch_0 .end sparse-switch :pswitch_data_0 .packed-switch 0x0 :pswitch_0 :pswitch_0 :pswitch_0 :pswitch_0 :pswitch_0 :pswitch_0 :pswitch_0 :pswitch_0 :pswitch_0 :pswitch_0 :pswitch_0 :pswitch_0 :pswitch_0 :pswitch_0 :pswitch_0 .end packed-switch .end method .method private isThumbnail(Ljava/util/HashMap;)Z .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const-string v0, "ImageLength" invoke-virtual {p1, v0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; const-string v1, "ImageWidth" invoke-virtual {p1, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 check-cast p1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz v0, :cond_0 if-eqz p1, :cond_0 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v0, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result v0 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {p1, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result p1 const/16 v1, 0x200 if-gt v0, v1, :cond_0 if-gt p1, v1, :cond_0 const/4 p1, 0x1 return p1 :cond_0 const/4 p1, 0x0 return p1 .end method .method private isWebpFormat([B)Z .locals 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/4 v0, 0x0 const/4 v1, 0x0 :goto_0 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->WEBP_SIGNATURE_1:[B array-length v3, v2 if-ge v1, v3, :cond_1 aget-byte v3, p1, v1 aget-byte v2, v2, v1 if-eq v3, v2, :cond_0 return v0 :cond_0 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_1 const/4 v1, 0x0 :goto_1 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->WEBP_SIGNATURE_2:[B array-length v3, v2 if-ge v1, v3, :cond_3 sget-object v3, Landroidx/exifinterface/media/ExifInterface;->WEBP_SIGNATURE_1:[B array-length v3, v3 add-int/2addr v3, v1 add-int/lit8 v3, v3, 0x4 aget-byte v3, p1, v3 aget-byte v2, v2, v1 if-eq v3, v2, :cond_2 return v0 :cond_2 add-int/lit8 v1, v1, 0x1 goto :goto_1 :cond_3 const/4 p1, 0x1 return p1 .end method .method private loadAttributes(Ljava/io/InputStream;)V .locals 4 .param p1 # Ljava/io/InputStream; .annotation build Landroidx/annotation/NonNull; .end annotation .end param if-eqz p1, :cond_6 const/4 v0, 0x0 const/4 v1, 0x0 :goto_0 :try_start_0 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v2, v2 if-ge v1, v2, :cond_0 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; new-instance v3, Ljava/util/HashMap; invoke-direct {v3}, Ljava/util/HashMap;->()V aput-object v3, v2, v1 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_0 iget-boolean v1, p0, Landroidx/exifinterface/media/ExifInterface;->mIsExifDataOnly:Z if-nez v1, :cond_1 new-instance v1, Ljava/io/BufferedInputStream; const/16 v2, 0x1388 invoke-direct {v1, p1, v2}, Ljava/io/BufferedInputStream;->(Ljava/io/InputStream;I)V invoke-direct {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->getMimeType(Ljava/io/BufferedInputStream;)I move-result p1 iput p1, p0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I move-object p1, v1 :cond_1 new-instance v1, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream; invoke-direct {v1, p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->(Ljava/io/InputStream;)V iget-boolean p1, p0, Landroidx/exifinterface/media/ExifInterface;->mIsExifDataOnly:Z if-nez p1, :cond_2 iget p1, p0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I packed-switch p1, :pswitch_data_0 goto :goto_1 :pswitch_0 invoke-direct {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->getWebpAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V goto :goto_1 :pswitch_1 invoke-direct {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->getPngAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V goto :goto_1 :pswitch_2 invoke-direct {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->getHeifAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V goto :goto_1 :pswitch_3 invoke-direct {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->getRw2Attributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V goto :goto_1 :pswitch_4 invoke-direct {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->getRafAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V goto :goto_1 :pswitch_5 invoke-direct {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->getOrfAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V goto :goto_1 :pswitch_6 invoke-direct {p0, v1, v0, v0}, Landroidx/exifinterface/media/ExifInterface;->getJpegAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;II)V goto :goto_1 :pswitch_7 invoke-direct {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->getRawAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V goto :goto_1 :cond_2 invoke-direct {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->getStandaloneAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V :goto_1 invoke-direct {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->setThumbnailData(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V const/4 p1, 0x1 iput-boolean p1, p0, Landroidx/exifinterface/media/ExifInterface;->mIsSupportedFile:Z :try_end_0 .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 invoke-direct {p0}, Landroidx/exifinterface/media/ExifInterface;->addDefaultValuesForCompatibility()V sget-boolean p1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz p1, :cond_4 goto :goto_2 :catchall_0 move-exception p1 goto :goto_3 :catch_0 move-exception p1 :try_start_1 iput-boolean v0, p0, Landroidx/exifinterface/media/ExifInterface;->mIsSupportedFile:Z sget-boolean v0, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v0, :cond_3 const-string v0, "ExifInterface" const-string v1, "Invalid image: ExifInterface got an unsupported image format file(ExifInterface supports JPEG and some RAW image formats only) or a corrupted JPEG file to ExifInterface." invoke-static {v0, v1, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 :cond_3 invoke-direct {p0}, Landroidx/exifinterface/media/ExifInterface;->addDefaultValuesForCompatibility()V sget-boolean p1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz p1, :cond_4 :goto_2 invoke-direct {p0}, Landroidx/exifinterface/media/ExifInterface;->printAttributes()V :cond_4 return-void :goto_3 invoke-direct {p0}, Landroidx/exifinterface/media/ExifInterface;->addDefaultValuesForCompatibility()V sget-boolean v0, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v0, :cond_5 invoke-direct {p0}, Landroidx/exifinterface/media/ExifInterface;->printAttributes()V :cond_5 throw p1 :cond_6 new-instance p1, Ljava/lang/NullPointerException; const-string v0, "inputstream shouldn\'t be null" invoke-direct {p1, v0}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 nop :pswitch_data_0 .packed-switch 0x0 :pswitch_7 :pswitch_7 :pswitch_7 :pswitch_7 :pswitch_6 :pswitch_7 :pswitch_7 :pswitch_5 :pswitch_7 :pswitch_4 :pswitch_3 :pswitch_7 :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch .end method .method public static parseDateTime(Ljava/lang/String;Ljava/lang/String;)J .locals 7 .param p0 # Ljava/lang/String; .annotation build Landroidx/annotation/Nullable; .end annotation .end param .param p1 # Ljava/lang/String; .annotation build Landroidx/annotation/Nullable; .end annotation .end param const-wide/16 v0, -0x1 if-eqz p0, :cond_4 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->sNonZeroTimePattern:Ljava/util/regex/Pattern; invoke-virtual {v2, p0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; move-result-object v2 invoke-virtual {v2}, Ljava/util/regex/Matcher;->matches()Z move-result v2 if-nez v2, :cond_0 goto :goto_1 :cond_0 new-instance v2, Ljava/text/ParsePosition; const/4 v3, 0x0 invoke-direct {v2, v3}, Ljava/text/ParsePosition;->(I)V :try_start_0 sget-object v3, Landroidx/exifinterface/media/ExifInterface;->sFormatter:Ljava/text/SimpleDateFormat; invoke-virtual {v3, p0, v2}, Ljava/text/SimpleDateFormat;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date; move-result-object p0 if-nez p0, :cond_1 return-wide v0 :cond_1 invoke-virtual {p0}, Ljava/util/Date;->getTime()J move-result-wide v2 :try_end_0 .catch Ljava/lang/IllegalArgumentException; {:try_start_0 .. :try_end_0} :catch_1 if-eqz p1, :cond_3 :try_start_1 invoke-static {p1}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J move-result-wide p0 :goto_0 const-wide/16 v4, 0x3e8 cmp-long v6, p0, v4 if-lez v6, :cond_2 const-wide/16 v4, 0xa div-long/2addr p0, v4 :try_end_1 .catch Ljava/lang/NumberFormatException; {:try_start_1 .. :try_end_1} :catch_0 .catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_1} :catch_1 goto :goto_0 :cond_2 add-long/2addr v2, p0 :catch_0 :cond_3 return-wide v2 :catch_1 :cond_4 :goto_1 return-wide v0 .end method .method private parseTiffHeaders(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation invoke-direct {p0, p1}, Landroidx/exifinterface/media/ExifInterface;->readByteOrder(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)Ljava/nio/ByteOrder; move-result-object v0 iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {p1, v0}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->setByteOrder(Ljava/nio/ByteOrder;)V invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readUnsignedShort()I move-result v0 iget v1, p0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I const/4 v2, 0x7 if-eq v1, v2, :cond_1 const/16 v2, 0xa if-eq v1, v2, :cond_1 const/16 v1, 0x2a if-ne v0, v1, :cond_0 goto :goto_0 :cond_0 new-instance p1, Ljava/io/IOException; const-string p2, "Invalid start code: " invoke-static {p2}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 invoke-static {v0}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String; move-result-object v0 invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p2 invoke-direct {p1, p2}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_1 :goto_0 invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I move-result v0 const/16 v1, 0x8 if-lt v0, v1, :cond_4 if-ge v0, p2, :cond_4 add-int/lit8 v0, v0, -0x8 if-lez v0, :cond_3 invoke-virtual {p1, v0}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I move-result p1 if-ne p1, v0, :cond_2 goto :goto_1 :cond_2 new-instance p1, Ljava/io/IOException; const-string p2, "Couldn\'t jump to first Ifd: " invoke-static {p2, v0}, Lf/e/b/a/a;->i(Ljava/lang/String;I)Ljava/lang/String; move-result-object p2 invoke-direct {p1, p2}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_3 :goto_1 return-void :cond_4 new-instance p1, Ljava/io/IOException; const-string p2, "Invalid first Ifd offset: " invoke-static {p2, v0}, Lf/e/b/a/a;->i(Ljava/lang/String;I)Ljava/lang/String; move-result-object p2 invoke-direct {p1, p2}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 .end method .method private printAttributes()V .locals 6 const/4 v0, 0x0 :goto_0 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; array-length v1, v1 if-ge v0, v1, :cond_1 const-string v1, "The size of tag group[" const-string v2, "]: " invoke-static {v1, v0, v2}, Lf/e/b/a/a;->F(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v2, v2, v0 invoke-virtual {v2}, Ljava/util/HashMap;->size()I move-result v2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 const-string v2, "ExifInterface" invoke-static {v2, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v1, v1, v0 invoke-virtual {v1}, Ljava/util/HashMap;->entrySet()Ljava/util/Set; move-result-object v1 invoke-interface {v1}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v1 :goto_1 invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v3 if-eqz v3, :cond_0 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v3 check-cast v3, Ljava/util/Map$Entry; invoke-interface {v3}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v4 check-cast v4, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; const-string v5, "tagName: " invoke-static {v5}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v5 invoke-interface {v3}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object v3 check-cast v3, Ljava/lang/String; invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v3, ", tagType: " invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v4}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->toString()Ljava/lang/String; move-result-object v3 invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v3, ", tagValue: \'" invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v4, v3}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getStringValue(Ljava/nio/ByteOrder;)Ljava/lang/String; move-result-object v3 invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v3, "\'" invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v3 invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I goto :goto_1 :cond_0 add-int/lit8 v0, v0, 0x1 goto :goto_0 :cond_1 return-void .end method .method private readByteOrder(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)Ljava/nio/ByteOrder; .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation invoke-virtual {p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readShort()S move-result p1 const/16 v0, 0x4949 const-string v1, "ExifInterface" if-eq p1, v0, :cond_2 const/16 v0, 0x4d4d if-ne p1, v0, :cond_1 sget-boolean p1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz p1, :cond_0 const-string p1, "readExifSegment: Byte Align MM" invoke-static {v1, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_0 sget-object p1, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; return-object p1 :cond_1 new-instance v0, Ljava/io/IOException; const-string v1, "Invalid byte order: " invoke-static {v1}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-static {p1}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String; move-result-object p1 invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v0 :cond_2 sget-boolean p1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz p1, :cond_3 const-string p1, "readExifSegment: Byte Align II" invoke-static {v1, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_3 sget-object p1, Ljava/nio/ByteOrder;->LITTLE_ENDIAN:Ljava/nio/ByteOrder; return-object p1 .end method .method private readExifSegment([BI)V .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation new-instance v0, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream; invoke-direct {v0, p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->([B)V array-length p1, p1 invoke-direct {p0, v0, p1}, Landroidx/exifinterface/media/ExifInterface;->parseTiffHeaders(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V invoke-direct {p0, v0, p2}, Landroidx/exifinterface/media/ExifInterface;->readImageFileDirectory(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V return-void .end method .method private readImageFileDirectory(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V .locals 25 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation move-object/from16 v0, p0 move-object/from16 v1, p1 move/from16 v2, p2 iget-object v3, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributesOffsets:Ljava/util/Set; iget v4, v1, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->mPosition:I invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v4 invoke-interface {v3, v4}, Ljava/util/Set;->add(Ljava/lang/Object;)Z iget v3, v1, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->mPosition:I add-int/lit8 v3, v3, 0x2 iget v4, v1, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->mLength:I if-le v3, v4, :cond_0 return-void :cond_0 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readShort()S move-result v3 sget-boolean v4, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z const-string v5, "ExifInterface" if-eqz v4, :cond_1 const-string v4, "numberOfDirectoryEntry: " invoke-static {v4, v3, v5}, Lf/e/b/a/a;->Q(Ljava/lang/String;ILjava/lang/String;)V :cond_1 iget v4, v1, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->mPosition:I mul-int/lit8 v6, v3, 0xc add-int/2addr v6, v4 iget v4, v1, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->mLength:I if-gt v6, v4, :cond_2d if-gtz v3, :cond_2 goto/16 :goto_e :cond_2 const/4 v4, 0x0 const/4 v6, 0x0 :goto_0 const/4 v7, 0x5 if-ge v6, v3, :cond_28 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readUnsignedShort()I move-result v8 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readUnsignedShort()I move-result v9 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I move-result v12 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->peek()I move-result v10 int-to-long v10, v10 const-wide/16 v13, 0x4 add-long/2addr v10, v13 sget-object v15, Landroidx/exifinterface/media/ExifInterface;->sExifTagMapsForReading:[Ljava/util/HashMap; aget-object v15, v15, v2 invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v13 invoke-virtual {v15, v13}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v13 move-object v15, v13 check-cast v15, Landroidx/exifinterface/media/ExifInterface$ExifTag; sget-boolean v13, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z const/4 v14, 0x3 if-eqz v13, :cond_4 new-array v7, v7, [Ljava/lang/Object; invoke-static/range {p2 .. p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v13 aput-object v13, v7, v4 invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v4 const/4 v13, 0x1 aput-object v4, v7, v13 if-eqz v15, :cond_3 iget-object v4, v15, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; goto :goto_1 :cond_3 const/4 v4, 0x0 :goto_1 const/4 v13, 0x2 aput-object v4, v7, v13 invoke-static {v9}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v4 aput-object v4, v7, v14 invoke-static {v12}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v4 const/4 v13, 0x4 aput-object v4, v7, v13 const-string v4, "ifdType: %d, tagNumber: %d, tagName: %s, dataFormat: %d, numberOfComponents: %d" invoke-static {v4, v7}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object v4 invoke-static {v5, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_4 const/4 v4, 0x7 if-nez v15, :cond_5 sget-boolean v4, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v4, :cond_7 const-string v4, "Skip the tag entry since tag number is not defined: " invoke-static {v4, v8, v5}, Lf/e/b/a/a;->Q(Ljava/lang/String;ILjava/lang/String;)V goto :goto_2 :cond_5 if-lez v9, :cond_d sget-object v7, Landroidx/exifinterface/media/ExifInterface;->IFD_FORMAT_BYTES_PER_FORMAT:[I array-length v7, v7 if-lt v9, v7, :cond_6 goto :goto_4 :cond_6 invoke-virtual {v15, v9}, Landroidx/exifinterface/media/ExifInterface$ExifTag;->isFormatCompatible(I)Z move-result v7 if-nez v7, :cond_8 sget-boolean v4, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v4, :cond_7 const-string v4, "Skip the tag entry since data format (" invoke-static {v4}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v4 sget-object v7, Landroidx/exifinterface/media/ExifInterface;->IFD_FORMAT_NAMES:[Ljava/lang/String; aget-object v7, v7, v9 invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v7, ") is unexpected for tag: " invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget-object v7, v15, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-static {v5, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_7 :goto_2 move/from16 v18, v3 goto :goto_5 :cond_8 if-ne v9, v4, :cond_9 iget v9, v15, Landroidx/exifinterface/media/ExifInterface$ExifTag;->primaryFormat:I :cond_9 int-to-long v13, v12 sget-object v4, Landroidx/exifinterface/media/ExifInterface;->IFD_FORMAT_BYTES_PER_FORMAT:[I aget v4, v4, v9 move/from16 v18, v3 int-to-long v3, v4 mul-long v3, v3, v13 const-wide/16 v13, 0x0 cmp-long v7, v3, v13 if-ltz v7, :cond_b const-wide/32 v13, 0x7fffffff cmp-long v7, v3, v13 if-lez v7, :cond_a goto :goto_3 :cond_a const/4 v7, 0x1 goto :goto_6 :cond_b :goto_3 sget-boolean v7, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v7, :cond_c const-string v7, "Skip the tag entry since the number of components is invalid: " invoke-static {v7, v12, v5}, Lf/e/b/a/a;->Q(Ljava/lang/String;ILjava/lang/String;)V :cond_c const/4 v7, 0x0 goto :goto_6 :cond_d :goto_4 move/from16 v18, v3 sget-boolean v3, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v3, :cond_e const-string v3, "Skip the tag entry since data format is invalid: " invoke-static {v3, v9, v5}, Lf/e/b/a/a;->Q(Ljava/lang/String;ILjava/lang/String;)V :cond_e :goto_5 const/4 v7, 0x0 const-wide/16 v3, 0x0 :goto_6 if-nez v7, :cond_f invoke-virtual {v1, v10, v11}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V move/from16 v16, v6 goto/16 :goto_d :cond_f const-string v7, "Compression" const-wide/16 v13, 0x4 cmp-long v16, v3, v13 if-lez v16, :cond_17 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I move-result v13 sget-boolean v14, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v14, :cond_10 const-string v14, "seek to data offset: " invoke-static {v14, v13, v5}, Lf/e/b/a/a;->Q(Ljava/lang/String;ILjava/lang/String;)V :cond_10 iget v14, v0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I move/from16 v16, v6 const/4 v6, 0x7 if-ne v14, v6, :cond_13 iget-object v6, v15, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; const-string v14, "MakerNote" invoke-virtual {v14, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v6 if-eqz v6, :cond_11 iput v13, v0, Landroidx/exifinterface/media/ExifInterface;->mOrfMakerNoteOffset:I goto :goto_7 :cond_11 const/4 v6, 0x6 if-ne v2, v6, :cond_12 iget-object v6, v15, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; const-string v14, "ThumbnailImage" invoke-virtual {v14, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v6 if-eqz v6, :cond_12 iput v13, v0, Landroidx/exifinterface/media/ExifInterface;->mOrfThumbnailOffset:I iput v12, v0, Landroidx/exifinterface/media/ExifInterface;->mOrfThumbnailLength:I iget-object v6, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; const/4 v14, 0x6 invoke-static {v14, v6}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createUShort(ILjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v6 iget v14, v0, Landroidx/exifinterface/media/ExifInterface;->mOrfThumbnailOffset:I move/from16 v17, v8 move/from16 v19, v9 int-to-long v8, v14 iget-object v14, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v8, v9, v14}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v8 iget v9, v0, Landroidx/exifinterface/media/ExifInterface;->mOrfThumbnailLength:I move-wide/from16 v20, v10 int-to-long v9, v9 iget-object v11, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v9, v10, v11}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v9 iget-object v10, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/4 v11, 0x4 aget-object v10, v10, v11 invoke-virtual {v10, v7, v6}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; iget-object v6, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v6, v6, v11 const-string v10, "JPEGInterchangeFormat" invoke-virtual {v6, v10, v8}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; iget-object v6, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v6, v6, v11 const-string v8, "JPEGInterchangeFormatLength" invoke-virtual {v6, v8, v9}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_8 :cond_12 :goto_7 move/from16 v17, v8 move/from16 v19, v9 move-wide/from16 v20, v10 goto :goto_8 :cond_13 move/from16 v17, v8 move/from16 v19, v9 move-wide/from16 v20, v10 const/16 v6, 0xa if-ne v14, v6, :cond_14 iget-object v6, v15, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; const-string v8, "JpgFromRaw" invoke-virtual {v8, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v6 if-eqz v6, :cond_14 iput v13, v0, Landroidx/exifinterface/media/ExifInterface;->mRw2JpgFromRawOffset:I :cond_14 :goto_8 int-to-long v8, v13 add-long v10, v8, v3 iget v6, v1, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->mLength:I move-object/from16 v22, v7 int-to-long v6, v6 cmp-long v14, v10, v6 if-gtz v14, :cond_15 invoke-virtual {v1, v8, v9}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V move-wide/from16 v10, v20 goto :goto_9 :cond_15 sget-boolean v3, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v3, :cond_16 const-string v3, "Skip the tag entry since data offset is invalid: " invoke-static {v3, v13, v5}, Lf/e/b/a/a;->Q(Ljava/lang/String;ILjava/lang/String;)V :cond_16 move-wide/from16 v10, v20 invoke-virtual {v1, v10, v11}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V goto/16 :goto_d :cond_17 move/from16 v16, v6 move-object/from16 v22, v7 move/from16 v17, v8 move/from16 v19, v9 :goto_9 sget-object v6, Landroidx/exifinterface/media/ExifInterface;->sExifPointerTagMap:Ljava/util/HashMap; invoke-static/range {v17 .. v17}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v7 invoke-virtual {v6, v7}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v6 check-cast v6, Ljava/lang/Integer; sget-boolean v7, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v7, :cond_18 new-instance v7, Ljava/lang/StringBuilder; invoke-direct {v7}, Ljava/lang/StringBuilder;->()V const-string v8, "nextIfdType: " invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; const-string v8, " byteCount: " invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v7, v3, v4}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v7 invoke-static {v5, v7}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_18 const/16 v7, 0x8 if-eqz v6, :cond_21 const-wide/16 v3, -0x1 const/4 v8, 0x3 move/from16 v9, v19 if-eq v9, v8, :cond_1c const/4 v8, 0x4 if-eq v9, v8, :cond_1b if-eq v9, v7, :cond_1a const/16 v7, 0x9 if-eq v9, v7, :cond_19 const/16 v7, 0xd if-eq v9, v7, :cond_19 goto :goto_b :cond_19 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I move-result v3 goto :goto_a :cond_1a invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readShort()S move-result v3 goto :goto_a :cond_1b invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readUnsignedInt()J move-result-wide v3 goto :goto_b :cond_1c invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readUnsignedShort()I move-result v3 :goto_a int-to-long v3, v3 :goto_b sget-boolean v7, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z const/4 v8, 0x2 if-eqz v7, :cond_1d new-array v7, v8, [Ljava/lang/Object; invoke-static {v3, v4}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v8 const/4 v9, 0x0 aput-object v8, v7, v9 iget-object v8, v15, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; const/4 v9, 0x1 aput-object v8, v7, v9 const-string v8, "Offset: %d, tagName: %s" invoke-static {v8, v7}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object v7 invoke-static {v5, v7}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_1d const-wide/16 v7, 0x0 cmp-long v9, v3, v7 if-lez v9, :cond_1f iget v7, v1, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->mLength:I int-to-long v7, v7 cmp-long v9, v3, v7 if-gez v9, :cond_1f iget-object v7, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributesOffsets:Ljava/util/Set; long-to-int v8, v3 invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v8 invoke-interface {v7, v8}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z move-result v7 if-nez v7, :cond_1e invoke-virtual {v1, v3, v4}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I move-result v3 invoke-direct {v0, v1, v3}, Landroidx/exifinterface/media/ExifInterface;->readImageFileDirectory(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V goto :goto_c :cond_1e sget-boolean v7, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v7, :cond_20 new-instance v7, Ljava/lang/StringBuilder; invoke-direct {v7}, Ljava/lang/StringBuilder;->()V const-string v8, "Skip jump into the IFD since it has already been read: IfdType " invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; const-string v6, " (at " invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v7, v3, v4}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; const-string v3, ")" invoke-virtual {v7, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v3 invoke-static {v5, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I goto :goto_c :cond_1f sget-boolean v6, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v6, :cond_20 new-instance v6, Ljava/lang/StringBuilder; invoke-direct {v6}, Ljava/lang/StringBuilder;->()V const-string v7, "Skip jump into the IFD since its offset is invalid: " invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v6, v3, v4}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v3 invoke-static {v5, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_20 :goto_c invoke-virtual {v1, v10, v11}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V goto/16 :goto_d :cond_21 move/from16 v9, v19 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->peek()I move-result v6 iget v8, v0, Landroidx/exifinterface/media/ExifInterface;->mExifOffset:I add-int/2addr v6, v8 long-to-int v4, v3 new-array v3, v4, [B invoke-virtual {v1, v3}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readFully([B)V new-instance v4, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; int-to-long v13, v6 move-wide/from16 v23, v10 move-object v10, v4 move v11, v9 move-object v6, v15 move-object v15, v3 invoke-direct/range {v10 .. v15}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->(IIJ[B)V iget-object v3, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v3, v3, v2 iget-object v8, v6, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; invoke-virtual {v3, v8, v4}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; iget-object v3, v6, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; const-string v8, "DNGVersion" invoke-virtual {v8, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v3 if-eqz v3, :cond_22 const/4 v3, 0x3 iput v3, v0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I :cond_22 iget-object v3, v6, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; const-string v8, "Make" invoke-virtual {v8, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v3 if-nez v3, :cond_23 iget-object v3, v6, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; const-string v8, "Model" invoke-virtual {v8, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v3 if-eqz v3, :cond_24 :cond_23 iget-object v3, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v4, v3}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getStringValue(Ljava/nio/ByteOrder;)Ljava/lang/String; move-result-object v3 const-string v8, "PENTAX" invoke-virtual {v3, v8}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v3 if-nez v3, :cond_25 :cond_24 iget-object v3, v6, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; move-object/from16 v6, v22 invoke-virtual {v6, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v3 if-eqz v3, :cond_26 iget-object v3, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v4, v3}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result v3 const v4, 0xffff if-ne v3, v4, :cond_26 :cond_25 iput v7, v0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I :cond_26 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->peek()I move-result v3 int-to-long v3, v3 move-wide/from16 v10, v23 cmp-long v6, v3, v10 if-eqz v6, :cond_27 invoke-virtual {v1, v10, v11}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V :cond_27 :goto_d add-int/lit8 v6, v16, 0x1 int-to-short v6, v6 const/4 v4, 0x0 move/from16 v3, v18 goto/16 :goto_0 :cond_28 invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->peek()I move-result v2 add-int/lit8 v2, v2, 0x4 iget v3, v1, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->mLength:I if-gt v2, v3, :cond_2d invoke-virtual/range {p1 .. p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I move-result v2 sget-boolean v3, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v3, :cond_29 const/4 v3, 0x1 new-array v3, v3, [Ljava/lang/Object; invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v4 const/4 v6, 0x0 aput-object v4, v3, v6 const-string v4, "nextIfdOffset: %d" invoke-static {v4, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object v3 invoke-static {v5, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_29 int-to-long v3, v2 const-wide/16 v8, 0x0 cmp-long v6, v3, v8 if-lez v6, :cond_2c iget v6, v1, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->mLength:I if-ge v2, v6, :cond_2c iget-object v6, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributesOffsets:Ljava/util/Set; invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v8 invoke-interface {v6, v8}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z move-result v6 if-nez v6, :cond_2b invoke-virtual {v1, v3, v4}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V iget-object v2, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/4 v3, 0x4 aget-object v2, v2, v3 invoke-virtual {v2}, Ljava/util/HashMap;->isEmpty()Z move-result v2 if-eqz v2, :cond_2a invoke-direct {v0, v1, v3}, Landroidx/exifinterface/media/ExifInterface;->readImageFileDirectory(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V goto :goto_e :cond_2a iget-object v2, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v2, v2, v7 invoke-virtual {v2}, Ljava/util/HashMap;->isEmpty()Z move-result v2 if-eqz v2, :cond_2d invoke-direct {v0, v1, v7}, Landroidx/exifinterface/media/ExifInterface;->readImageFileDirectory(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V goto :goto_e :cond_2b sget-boolean v1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v1, :cond_2d const-string v1, "Stop reading file since re-reading an IFD may cause an infinite loop: " invoke-static {v1, v2, v5}, Lf/e/b/a/a;->Q(Ljava/lang/String;ILjava/lang/String;)V goto :goto_e :cond_2c sget-boolean v1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v1, :cond_2d const-string v1, "Stop reading file since a wrong offset may cause an infinite loop: " invoke-static {v1, v2, v5}, Lf/e/b/a/a;->Q(Ljava/lang/String;ILjava/lang/String;)V :cond_2d :goto_e return-void .end method .method private removeAttribute(Ljava/lang/String;)V .locals 2 const/4 v0, 0x0 :goto_0 sget-object v1, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v1, v1 if-ge v0, v1, :cond_0 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v1, v1, v0 invoke-virtual {v1, p1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; add-int/lit8 v0, v0, 0x1 goto :goto_0 :cond_0 return-void .end method .method private retrieveJpegImageSize(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, p2 const-string v1, "ImageLength" invoke-virtual {v0, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v1, v1, p2 const-string v2, "ImageWidth" invoke-virtual {v1, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 check-cast v1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz v0, :cond_0 if-nez v1, :cond_1 :cond_0 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, p2 const-string v1, "JPEGInterchangeFormat" invoke-virtual {v0, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz v0, :cond_1 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v0, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result v0 invoke-direct {p0, p1, v0, p2}, Landroidx/exifinterface/media/ExifInterface;->getJpegAttributes(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;II)V :cond_1 return-void .end method .method private saveJpegAttributes(Ljava/io/InputStream;Ljava/io/OutputStream;)V .locals 12 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation sget-boolean v0, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v0, :cond_0 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "saveJpegAttributes starting with (inputStream: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; const-string v1, ", outputStream: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; const-string v1, ")" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 const-string v1, "ExifInterface" invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_0 new-instance v0, Ljava/io/DataInputStream; invoke-direct {v0, p1}, Ljava/io/DataInputStream;->(Ljava/io/InputStream;)V new-instance p1, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream; sget-object v1, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; invoke-direct {p1, p2, v1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->(Ljava/io/OutputStream;Ljava/nio/ByteOrder;)V invoke-virtual {v0}, Ljava/io/DataInputStream;->readByte()B move-result p2 const-string v1, "Invalid marker" const/4 v2, -0x1 if-ne p2, v2, :cond_e invoke-virtual {p1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeByte(I)V invoke-virtual {v0}, Ljava/io/DataInputStream;->readByte()B move-result p2 const/16 v3, -0x28 if-ne p2, v3, :cond_d invoke-virtual {p1, v3}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeByte(I)V const/4 p2, 0x0 const-string v3, "Xmp" invoke-virtual {p0, v3}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v4 const/4 v5, 0x0 if-eqz v4, :cond_1 iget-boolean v4, p0, Landroidx/exifinterface/media/ExifInterface;->mXmpIsFromSeparateMarker:Z if-eqz v4, :cond_1 iget-object p2, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object p2, p2, v5 invoke-virtual {p2, v3}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p2 check-cast p2, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; :cond_1 invoke-virtual {p1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeByte(I)V const/16 v4, -0x1f invoke-virtual {p1, v4}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeByte(I)V invoke-direct {p0, p1}, Landroidx/exifinterface/media/ExifInterface;->writeExifSegment(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;)I if-eqz p2, :cond_2 iget-object v6, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v6, v6, v5 invoke-virtual {v6, v3, p2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_2 const/16 p2, 0x1000 new-array v3, p2, [B :cond_3 :goto_0 invoke-virtual {v0}, Ljava/io/DataInputStream;->readByte()B move-result v6 if-ne v6, v2, :cond_c invoke-virtual {v0}, Ljava/io/DataInputStream;->readByte()B move-result v6 const/16 v7, -0x27 if-eq v6, v7, :cond_b const/16 v7, -0x26 if-eq v6, v7, :cond_b const-string v7, "Invalid length" if-eq v6, v4, :cond_5 invoke-virtual {p1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeByte(I)V invoke-virtual {p1, v6}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeByte(I)V invoke-virtual {v0}, Ljava/io/DataInputStream;->readUnsignedShort()I move-result v6 invoke-virtual {p1, v6}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeUnsignedShort(I)V add-int/lit8 v6, v6, -0x2 if-ltz v6, :cond_4 :goto_1 if-lez v6, :cond_3 invoke-static {v6, p2}, Ljava/lang/Math;->min(II)I move-result v7 invoke-virtual {v0, v3, v5, v7}, Ljava/io/DataInputStream;->read([BII)I move-result v7 if-ltz v7, :cond_3 invoke-virtual {p1, v3, v5, v7}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->write([BII)V sub-int/2addr v6, v7 goto :goto_1 :cond_4 new-instance p1, Ljava/io/IOException; invoke-direct {p1, v7}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_5 invoke-virtual {v0}, Ljava/io/DataInputStream;->readUnsignedShort()I move-result v8 add-int/lit8 v8, v8, -0x2 if-ltz v8, :cond_a const/4 v9, 0x6 new-array v10, v9, [B if-lt v8, v9, :cond_8 invoke-virtual {v0, v10}, Ljava/io/DataInputStream;->read([B)I move-result v11 if-ne v11, v9, :cond_7 sget-object v11, Landroidx/exifinterface/media/ExifInterface;->IDENTIFIER_EXIF_APP1:[B invoke-static {v10, v11}, Ljava/util/Arrays;->equals([B[B)Z move-result v11 if-eqz v11, :cond_8 add-int/lit8 v8, v8, -0x6 invoke-virtual {v0, v8}, Ljava/io/DataInputStream;->skipBytes(I)I move-result v6 if-ne v6, v8, :cond_6 goto :goto_0 :cond_6 new-instance p1, Ljava/io/IOException; invoke-direct {p1, v7}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_7 new-instance p1, Ljava/io/IOException; const-string p2, "Invalid exif" invoke-direct {p1, p2}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_8 invoke-virtual {p1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeByte(I)V invoke-virtual {p1, v6}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeByte(I)V add-int/lit8 v6, v8, 0x2 invoke-virtual {p1, v6}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeUnsignedShort(I)V if-lt v8, v9, :cond_9 add-int/lit8 v8, v8, -0x6 invoke-virtual {p1, v10}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->write([B)V :cond_9 :goto_2 if-lez v8, :cond_3 invoke-static {v8, p2}, Ljava/lang/Math;->min(II)I move-result v6 invoke-virtual {v0, v3, v5, v6}, Ljava/io/DataInputStream;->read([BII)I move-result v6 if-ltz v6, :cond_3 invoke-virtual {p1, v3, v5, v6}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->write([BII)V sub-int/2addr v8, v6 goto :goto_2 :cond_a new-instance p1, Ljava/io/IOException; invoke-direct {p1, v7}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_b invoke-virtual {p1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeByte(I)V invoke-virtual {p1, v6}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeByte(I)V invoke-static {v0, p1}, Landroidx/exifinterface/media/ExifInterface;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;)I return-void :cond_c new-instance p1, Ljava/io/IOException; invoke-direct {p1, v1}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_d new-instance p1, Ljava/io/IOException; invoke-direct {p1, v1}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_e new-instance p1, Ljava/io/IOException; invoke-direct {p1, v1}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 .end method .method private savePngAttributes(Ljava/io/InputStream;Ljava/io/OutputStream;)V .locals 5 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation sget-boolean v0, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v0, :cond_0 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "savePngAttributes starting with (inputStream: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; const-string v1, ", outputStream: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; const-string v1, ")" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 const-string v1, "ExifInterface" invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_0 new-instance v0, Ljava/io/DataInputStream; invoke-direct {v0, p1}, Ljava/io/DataInputStream;->(Ljava/io/InputStream;)V new-instance p1, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream; sget-object v1, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; invoke-direct {p1, p2, v1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->(Ljava/io/OutputStream;Ljava/nio/ByteOrder;)V sget-object p2, Landroidx/exifinterface/media/ExifInterface;->PNG_SIGNATURE:[B array-length p2, p2 invoke-static {v0, p1, p2}, Landroidx/exifinterface/media/ExifInterface;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;I)V iget p2, p0, Landroidx/exifinterface/media/ExifInterface;->mExifOffset:I const/4 v1, 0x4 if-nez p2, :cond_1 invoke-virtual {v0}, Ljava/io/DataInputStream;->readInt()I move-result p2 invoke-virtual {p1, p2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeInt(I)V add-int/2addr p2, v1 add-int/2addr p2, v1 invoke-static {v0, p1, p2}, Landroidx/exifinterface/media/ExifInterface;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;I)V goto :goto_0 :cond_1 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->PNG_SIGNATURE:[B array-length v2, v2 sub-int/2addr p2, v2 sub-int/2addr p2, v1 sub-int/2addr p2, v1 invoke-static {v0, p1, p2}, Landroidx/exifinterface/media/ExifInterface;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;I)V invoke-virtual {v0}, Ljava/io/DataInputStream;->readInt()I move-result p2 add-int/2addr p2, v1 add-int/2addr p2, v1 invoke-virtual {v0, p2}, Ljava/io/DataInputStream;->skipBytes(I)I :goto_0 const/4 p2, 0x0 :try_start_0 new-instance v2, Ljava/io/ByteArrayOutputStream; invoke-direct {v2}, Ljava/io/ByteArrayOutputStream;->()V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_1 :try_start_1 new-instance p2, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream; sget-object v3, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; invoke-direct {p2, v2, v3}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->(Ljava/io/OutputStream;Ljava/nio/ByteOrder;)V invoke-direct {p0, p2}, Landroidx/exifinterface/media/ExifInterface;->writeExifSegment(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;)I iget-object p2, p2, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->mOutputStream:Ljava/io/OutputStream; check-cast p2, Ljava/io/ByteArrayOutputStream; invoke-virtual {p2}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B move-result-object p2 invoke-virtual {p1, p2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->write([B)V new-instance v3, Ljava/util/zip/CRC32; invoke-direct {v3}, Ljava/util/zip/CRC32;->()V array-length v4, p2 sub-int/2addr v4, v1 invoke-virtual {v3, p2, v1, v4}, Ljava/util/zip/CRC32;->update([BII)V invoke-virtual {v3}, Ljava/util/zip/CRC32;->getValue()J move-result-wide v3 long-to-int p2, v3 invoke-virtual {p1, p2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeInt(I)V :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 invoke-static {v2}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V invoke-static {v0, p1}, Landroidx/exifinterface/media/ExifInterface;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;)I return-void :catchall_0 move-exception p1 move-object p2, v2 goto :goto_1 :catchall_1 move-exception p1 :goto_1 invoke-static {p2}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V throw p1 .end method .method private saveWebpAttributes(Ljava/io/InputStream;Ljava/io/OutputStream;)V .locals 10 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation sget-boolean v0, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v0, :cond_0 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "saveWebpAttributes starting with (inputStream: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; const-string v1, ", outputStream: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; const-string v1, ")" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 const-string v1, "ExifInterface" invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_0 new-instance v0, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream; sget-object v1, Ljava/nio/ByteOrder;->LITTLE_ENDIAN:Ljava/nio/ByteOrder; invoke-direct {v0, p1, v1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->(Ljava/io/InputStream;Ljava/nio/ByteOrder;)V new-instance v1, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream; sget-object v2, Ljava/nio/ByteOrder;->LITTLE_ENDIAN:Ljava/nio/ByteOrder; invoke-direct {v1, p2, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->(Ljava/io/OutputStream;Ljava/nio/ByteOrder;)V sget-object p2, Landroidx/exifinterface/media/ExifInterface;->WEBP_SIGNATURE_1:[B array-length p2, p2 invoke-static {v0, v1, p2}, Landroidx/exifinterface/media/ExifInterface;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;I)V sget-object p2, Landroidx/exifinterface/media/ExifInterface;->WEBP_SIGNATURE_2:[B array-length p2, p2 const/4 v2, 0x4 add-int/2addr p2, v2 invoke-virtual {v0, p2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I const/4 p2, 0x0 :try_start_0 new-instance v3, Ljava/io/ByteArrayOutputStream; invoke-direct {v3}, Ljava/io/ByteArrayOutputStream;->()V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_1 .catchall {:try_start_0 .. :try_end_0} :catchall_1 :try_start_1 new-instance v4, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream; sget-object v5, Ljava/nio/ByteOrder;->LITTLE_ENDIAN:Ljava/nio/ByteOrder; invoke-direct {v4, v3, v5}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->(Ljava/io/OutputStream;Ljava/nio/ByteOrder;)V iget v5, p0, Landroidx/exifinterface/media/ExifInterface;->mExifOffset:I if-eqz v5, :cond_1 sget-object p1, Landroidx/exifinterface/media/ExifInterface;->WEBP_SIGNATURE_1:[B array-length p1, p1 add-int/2addr p1, v2 sget-object p2, Landroidx/exifinterface/media/ExifInterface;->WEBP_SIGNATURE_2:[B array-length p2, p2 add-int/2addr p1, p2 iget p2, p0, Landroidx/exifinterface/media/ExifInterface;->mExifOffset:I sub-int/2addr p2, p1 sub-int/2addr p2, v2 sub-int/2addr p2, v2 invoke-static {v0, v4, p2}, Landroidx/exifinterface/media/ExifInterface;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;I)V invoke-virtual {v0, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I invoke-virtual {v0}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I move-result p1 invoke-virtual {v0, p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I invoke-direct {p0, v4}, Landroidx/exifinterface/media/ExifInterface;->writeExifSegment(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;)I goto/16 :goto_3 :cond_1 new-array v5, v2, [B invoke-virtual {v0, v5}, Ljava/io/InputStream;->read([B)I move-result v6 if-ne v6, v2, :cond_8 sget-object v6, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_VP8X:[B invoke-static {v5, v6}, Ljava/util/Arrays;->equals([B[B)Z move-result v6 if-eqz v6, :cond_6 invoke-virtual {v0}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I move-result v5 rem-int/lit8 v6, v5, 0x2 const/4 v7, 0x1 if-ne v6, v7, :cond_2 add-int/lit8 v6, v5, 0x1 goto :goto_0 :cond_2 move v6, v5 :goto_0 new-array v6, v6, [B invoke-virtual {v0, v6}, Ljava/io/InputStream;->read([B)I const/4 v8, 0x0 aget-byte v9, v6, v8 or-int/lit8 v9, v9, 0x8 int-to-byte v9, v9 aput-byte v9, v6, v8 aget-byte v9, v6, v8 shr-int/2addr v9, v7 and-int/2addr v9, v7 if-ne v9, v7, :cond_3 goto :goto_1 :cond_3 const/4 v7, 0x0 :goto_1 sget-object v8, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_VP8X:[B invoke-virtual {v4, v8}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->write([B)V invoke-virtual {v4, v5}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeInt(I)V invoke-virtual {v4, v6}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->write([B)V if-eqz v7, :cond_5 sget-object v5, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_ANIM:[B invoke-direct {p0, v0, v4, v5, p2}, Landroidx/exifinterface/media/ExifInterface;->copyChunksUpToGivenChunkType(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;[B[B)V :goto_2 new-array p2, v2, [B invoke-virtual {p1, p2}, Ljava/io/InputStream;->read([B)I sget-object v5, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_ANMF:[B invoke-static {p2, v5}, Ljava/util/Arrays;->equals([B[B)Z move-result v5 if-nez v5, :cond_4 invoke-direct {p0, v4}, Landroidx/exifinterface/media/ExifInterface;->writeExifSegment(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;)I goto :goto_3 :cond_4 invoke-direct {p0, v0, v4, p2}, Landroidx/exifinterface/media/ExifInterface;->copyWebPChunk(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;[B)V goto :goto_2 :cond_5 sget-object p1, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_VP8:[B sget-object p2, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_VP8L:[B invoke-direct {p0, v0, v4, p1, p2}, Landroidx/exifinterface/media/ExifInterface;->copyChunksUpToGivenChunkType(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;[B[B)V invoke-direct {p0, v4}, Landroidx/exifinterface/media/ExifInterface;->writeExifSegment(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;)I goto :goto_3 :cond_6 sget-object p1, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_VP8:[B invoke-static {v5, p1}, Ljava/util/Arrays;->equals([B[B)Z move-result p1 if-nez p1, :cond_7 sget-object p1, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_VP8L:[B invoke-static {v5, p1}, Ljava/util/Arrays;->equals([B[B)Z move-result p1 if-nez p1, :cond_7 :goto_3 invoke-static {v0, v4}, Landroidx/exifinterface/media/ExifInterface;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;)I invoke-virtual {v3}, Ljava/io/ByteArrayOutputStream;->size()I move-result p1 sget-object p2, Landroidx/exifinterface/media/ExifInterface;->WEBP_SIGNATURE_2:[B array-length p2, p2 add-int/2addr p1, p2 invoke-virtual {v1, p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeInt(I)V sget-object p1, Landroidx/exifinterface/media/ExifInterface;->WEBP_SIGNATURE_2:[B invoke-virtual {v1, p1}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->write([B)V invoke-virtual {v3, v1}, Ljava/io/ByteArrayOutputStream;->writeTo(Ljava/io/OutputStream;)V :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 .catchall {:try_start_1 .. :try_end_1} :catchall_0 invoke-static {v3}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V return-void :cond_7 :try_start_2 new-instance p1, Ljava/io/IOException; const-string p2, "WebP files with only VP8 or VP8L chunks are currently not supported" invoke-direct {p1, p2}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :cond_8 new-instance p1, Ljava/io/IOException; const-string p2, "Encountered invalid length while parsing WebP chunk type" invoke-direct {p1, p2}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 :try_end_2 .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_0 .catchall {:try_start_2 .. :try_end_2} :catchall_0 :catchall_0 move-exception p1 move-object p2, v3 goto :goto_5 :catch_0 move-exception p1 move-object p2, v3 goto :goto_4 :catchall_1 move-exception p1 goto :goto_5 :catch_1 move-exception p1 :goto_4 :try_start_3 new-instance v0, Ljava/io/IOException; const-string v1, "Failed to save WebP file" invoke-direct {v0, v1, p1}, Ljava/io/IOException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v0 :try_end_3 .catchall {:try_start_3 .. :try_end_3} :catchall_1 :goto_5 invoke-static {p2}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V throw p1 .end method .method private setThumbnailData(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;)V .locals 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/4 v1, 0x4 aget-object v0, v0, v1 const-string v1, "Compression" invoke-virtual {v0, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 check-cast v1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; const/4 v2, 0x6 if-eqz v1, :cond_2 iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v1, v3}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result v1 iput v1, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailCompression:I const/4 v3, 0x1 if-eq v1, v3, :cond_1 if-eq v1, v2, :cond_0 const/4 v2, 0x7 if-eq v1, v2, :cond_1 goto :goto_0 :cond_0 invoke-direct {p0, p1, v0}, Landroidx/exifinterface/media/ExifInterface;->handleThumbnailFromJfif(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;Ljava/util/HashMap;)V goto :goto_0 :cond_1 invoke-direct {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->isSupportedDataType(Ljava/util/HashMap;)Z move-result v1 if-eqz v1, :cond_3 invoke-direct {p0, p1, v0}, Landroidx/exifinterface/media/ExifInterface;->handleThumbnailFromStrips(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;Ljava/util/HashMap;)V goto :goto_0 :cond_2 iput v2, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailCompression:I invoke-direct {p0, p1, v0}, Landroidx/exifinterface/media/ExifInterface;->handleThumbnailFromJfif(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;Ljava/util/HashMap;)V :cond_3 :goto_0 return-void .end method .method public static startsWith([B[B)Z .locals 4 const/4 v0, 0x0 if-eqz p0, :cond_4 if-nez p1, :cond_0 goto :goto_1 :cond_0 array-length v1, p0 array-length v2, p1 if-ge v1, v2, :cond_1 return v0 :cond_1 const/4 v1, 0x0 :goto_0 array-length v2, p1 if-ge v1, v2, :cond_3 aget-byte v2, p0, v1 aget-byte v3, p1, v1 if-eq v2, v3, :cond_2 return v0 :cond_2 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_3 const/4 p0, 0x1 return p0 :cond_4 :goto_1 return v0 .end method .method private swapBasedOnImageSize(II)V .locals 6 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, p1 invoke-virtual {v0}, Ljava/util/HashMap;->isEmpty()Z move-result v0 const-string v1, "ExifInterface" if-nez v0, :cond_6 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, p2 invoke-virtual {v0}, Ljava/util/HashMap;->isEmpty()Z move-result v0 if-eqz v0, :cond_0 goto/16 :goto_3 :cond_0 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, p1 const-string v2, "ImageLength" invoke-virtual {v0, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v3, v3, p1 const-string v4, "ImageWidth" invoke-virtual {v3, v4}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 check-cast v3, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; iget-object v5, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v5, v5, p2 invoke-virtual {v5, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 check-cast v2, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; iget-object v5, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v5, v5, p2 invoke-virtual {v5, v4}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v4 check-cast v4, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz v0, :cond_4 if-nez v3, :cond_1 goto :goto_1 :cond_1 if-eqz v2, :cond_3 if-nez v4, :cond_2 goto :goto_0 :cond_2 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v0, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result v0 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v3, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result v1 iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v2, v3}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result v2 iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v4, v3}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result v3 if-ge v0, v2, :cond_5 if-ge v1, v3, :cond_5 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v1, v0, p1 aget-object v2, v0, p2 aput-object v2, v0, p1 aput-object v1, v0, p2 goto :goto_2 :cond_3 :goto_0 sget-boolean p1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz p1, :cond_5 const-string p1, "Second image does not contain valid size information" invoke-static {v1, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I goto :goto_2 :cond_4 :goto_1 sget-boolean p1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz p1, :cond_5 const-string p1, "First image does not contain valid size information" invoke-static {v1, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_5 :goto_2 return-void :cond_6 :goto_3 sget-boolean p1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz p1, :cond_7 const-string p1, "Cannot perform swap since only one image data exists" invoke-static {v1, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_7 return-void .end method .method private updateImageSizeValues(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V .locals 9 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, p2 const-string v1, "DefaultCropSize" invoke-virtual {v0, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v1, v1, p2 const-string v2, "SensorTopBorder" invoke-virtual {v1, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 check-cast v1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v2, v2, p2 const-string v3, "SensorLeftBorder" invoke-virtual {v2, v3}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 check-cast v2, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v3, v3, p2 const-string v4, "SensorBottomBorder" invoke-virtual {v3, v4}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 check-cast v3, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; iget-object v4, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v4, v4, p2 const-string v5, "SensorRightBorder" invoke-virtual {v4, v5}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v4 check-cast v4, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; const-string v5, "ImageLength" const-string v6, "ImageWidth" if-eqz v0, :cond_5 iget p1, v0, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->format:I const/4 v1, 0x5 const/4 v2, 0x1 const/4 v3, 0x0 const/4 v4, 0x2 const-string v7, "Invalid crop size values. cropSize=" const-string v8, "ExifInterface" if-ne p1, v1, :cond_2 iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v0, p1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getValue(Ljava/nio/ByteOrder;)Ljava/lang/Object; move-result-object p1 check-cast p1, [Landroidx/exifinterface/media/ExifInterface$Rational; if-eqz p1, :cond_1 array-length v0, p1 if-eq v0, v4, :cond_0 goto :goto_0 :cond_0 aget-object v0, p1, v3 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v0, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createURational(Landroidx/exifinterface/media/ExifInterface$Rational;Ljava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v0 aget-object p1, p1, v2 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {p1, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createURational(Landroidx/exifinterface/media/ExifInterface$Rational;Ljava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object p1 goto :goto_1 :cond_1 :goto_0 invoke-static {v7}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 invoke-static {p1}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String; move-result-object p1 invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v8, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I return-void :cond_2 iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v0, p1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getValue(Ljava/nio/ByteOrder;)Ljava/lang/Object; move-result-object p1 check-cast p1, [I if-eqz p1, :cond_4 array-length v0, p1 if-eq v0, v4, :cond_3 goto :goto_2 :cond_3 aget v0, p1, v3 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v0, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createUShort(ILjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v0 aget p1, p1, v2 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {p1, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createUShort(ILjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object p1 :goto_1 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v1, v1, p2 invoke-virtual {v1, v6, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object p2, v0, p2 invoke-virtual {p2, v5, p1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_3 :cond_4 :goto_2 invoke-static {v7}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 invoke-static {p1}, Ljava/util/Arrays;->toString([I)Ljava/lang/String; move-result-object p1 invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v8, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I return-void :cond_5 if-eqz v1, :cond_6 if-eqz v2, :cond_6 if-eqz v3, :cond_6 if-eqz v4, :cond_6 iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v1, p1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result p1 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v3, v0}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result v0 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v4, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result v1 iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v2, v3}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result v2 if-le v0, p1, :cond_7 if-le v1, v2, :cond_7 sub-int/2addr v0, p1 sub-int/2addr v1, v2 iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v0, p1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createUShort(ILjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object p1 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createUShort(ILjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v0 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v1, v1, p2 invoke-virtual {v1, v5, p1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object p1, p1, p2 invoke-virtual {p1, v6, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_3 :cond_6 invoke-direct {p0, p1, p2}, Landroidx/exifinterface/media/ExifInterface;->retrieveJpegImageSize(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataInputStream;I)V :cond_7 :goto_3 return-void .end method .method private validateImages()V .locals 7 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/4 v0, 0x0 const/4 v1, 0x5 invoke-direct {p0, v0, v1}, Landroidx/exifinterface/media/ExifInterface;->swapBasedOnImageSize(II)V const/4 v2, 0x4 invoke-direct {p0, v0, v2}, Landroidx/exifinterface/media/ExifInterface;->swapBasedOnImageSize(II)V invoke-direct {p0, v1, v2}, Landroidx/exifinterface/media/ExifInterface;->swapBasedOnImageSize(II)V iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/4 v4, 0x1 aget-object v3, v3, v4 const-string v5, "PixelXDimension" invoke-virtual {v3, v5}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 check-cast v3, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; iget-object v5, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v4, v5, v4 const-string v5, "PixelYDimension" invoke-virtual {v4, v5}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v4 check-cast v4, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz v3, :cond_0 if-eqz v4, :cond_0 iget-object v5, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v5, v5, v0 const-string v6, "ImageWidth" invoke-virtual {v5, v6, v3}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v3, v0 const-string v3, "ImageLength" invoke-virtual {v0, v3, v4}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_0 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, v2 invoke-virtual {v0}, Ljava/util/HashMap;->isEmpty()Z move-result v0 if-eqz v0, :cond_1 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, v1 invoke-direct {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->isThumbnail(Ljava/util/HashMap;)Z move-result v0 if-eqz v0, :cond_1 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v3, v0, v1 aput-object v3, v0, v2 new-instance v3, Ljava/util/HashMap; invoke-direct {v3}, Ljava/util/HashMap;->()V aput-object v3, v0, v1 :cond_1 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, v2 invoke-direct {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->isThumbnail(Ljava/util/HashMap;)Z move-result v0 if-nez v0, :cond_2 const-string v0, "ExifInterface" const-string v1, "No image meets the size requirements of a thumbnail image." invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_2 return-void .end method .method private writeExifSegment(Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;)I .locals 16 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation move-object/from16 v0, p0 move-object/from16 v1, p1 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v3, v2 new-array v3, v3, [I array-length v2, v2 new-array v2, v2, [I sget-object v4, Landroidx/exifinterface/media/ExifInterface;->EXIF_POINTER_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v5, v4 const/4 v6, 0x0 const/4 v7, 0x0 :goto_0 if-ge v7, v5, :cond_0 aget-object v8, v4, v7 iget-object v8, v8, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; invoke-direct {v0, v8}, Landroidx/exifinterface/media/ExifInterface;->removeAttribute(Ljava/lang/String;)V add-int/lit8 v7, v7, 0x1 goto :goto_0 :cond_0 sget-object v4, Landroidx/exifinterface/media/ExifInterface;->JPEG_INTERCHANGE_FORMAT_TAG:Landroidx/exifinterface/media/ExifInterface$ExifTag; iget-object v4, v4, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; invoke-direct {v0, v4}, Landroidx/exifinterface/media/ExifInterface;->removeAttribute(Ljava/lang/String;)V sget-object v4, Landroidx/exifinterface/media/ExifInterface;->JPEG_INTERCHANGE_FORMAT_LENGTH_TAG:Landroidx/exifinterface/media/ExifInterface$ExifTag; iget-object v4, v4, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; invoke-direct {v0, v4}, Landroidx/exifinterface/media/ExifInterface;->removeAttribute(Ljava/lang/String;)V const/4 v4, 0x0 :goto_1 sget-object v5, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v5, v5 if-ge v4, v5, :cond_3 iget-object v5, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v5, v5, v4 invoke-virtual {v5}, Ljava/util/HashMap;->entrySet()Ljava/util/Set; move-result-object v5 invoke-interface {v5}, Ljava/util/Set;->toArray()[Ljava/lang/Object; move-result-object v5 array-length v7, v5 const/4 v8, 0x0 :goto_2 if-ge v8, v7, :cond_2 aget-object v9, v5, v8 check-cast v9, Ljava/util/Map$Entry; invoke-interface {v9}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v10 if-nez v10, :cond_1 iget-object v10, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v10, v10, v4 invoke-interface {v9}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object v9 invoke-virtual {v10, v9}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; :cond_1 add-int/lit8 v8, v8, 0x1 goto :goto_2 :cond_2 add-int/lit8 v4, v4, 0x1 goto :goto_1 :cond_3 iget-object v4, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/4 v5, 0x1 aget-object v4, v4, v5 invoke-virtual {v4}, Ljava/util/HashMap;->isEmpty()Z move-result v4 const-wide/16 v7, 0x0 if-nez v4, :cond_4 iget-object v4, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v4, v4, v6 sget-object v9, Landroidx/exifinterface/media/ExifInterface;->EXIF_POINTER_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; aget-object v9, v9, v5 iget-object v9, v9, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; iget-object v10, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v7, v8, v10}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v10 invoke-virtual {v4, v9, v10}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_4 iget-object v4, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/4 v9, 0x2 aget-object v4, v4, v9 invoke-virtual {v4}, Ljava/util/HashMap;->isEmpty()Z move-result v4 if-nez v4, :cond_5 iget-object v4, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v4, v4, v6 sget-object v10, Landroidx/exifinterface/media/ExifInterface;->EXIF_POINTER_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; aget-object v10, v10, v9 iget-object v10, v10, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; iget-object v11, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v7, v8, v11}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v11 invoke-virtual {v4, v10, v11}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_5 iget-object v4, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/4 v10, 0x3 aget-object v4, v4, v10 invoke-virtual {v4}, Ljava/util/HashMap;->isEmpty()Z move-result v4 if-nez v4, :cond_6 iget-object v4, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v4, v4, v5 sget-object v11, Landroidx/exifinterface/media/ExifInterface;->EXIF_POINTER_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; aget-object v11, v11, v10 iget-object v11, v11, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; iget-object v12, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v7, v8, v12}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v12 invoke-virtual {v4, v11, v12}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_6 iget-boolean v4, v0, Landroidx/exifinterface/media/ExifInterface;->mHasThumbnail:Z const/4 v11, 0x4 if-eqz v4, :cond_7 iget-object v4, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v4, v4, v11 sget-object v12, Landroidx/exifinterface/media/ExifInterface;->JPEG_INTERCHANGE_FORMAT_TAG:Landroidx/exifinterface/media/ExifInterface$ExifTag; iget-object v12, v12, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; iget-object v13, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v7, v8, v13}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v13 invoke-virtual {v4, v12, v13}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; iget-object v4, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v4, v4, v11 sget-object v12, Landroidx/exifinterface/media/ExifInterface;->JPEG_INTERCHANGE_FORMAT_LENGTH_TAG:Landroidx/exifinterface/media/ExifInterface$ExifTag; iget-object v12, v12, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; iget v13, v0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailLength:I int-to-long v13, v13 iget-object v15, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v13, v14, v15}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v13 invoke-virtual {v4, v12, v13}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_7 const/4 v4, 0x0 :goto_3 sget-object v12, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v12, v12 if-ge v4, v12, :cond_a iget-object v12, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v12, v12, v4 invoke-virtual {v12}, Ljava/util/HashMap;->entrySet()Ljava/util/Set; move-result-object v12 invoke-interface {v12}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v12 const/4 v13, 0x0 :cond_8 :goto_4 invoke-interface {v12}, Ljava/util/Iterator;->hasNext()Z move-result v14 if-eqz v14, :cond_9 invoke-interface {v12}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v14 check-cast v14, Ljava/util/Map$Entry; invoke-interface {v14}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v14 check-cast v14, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; invoke-virtual {v14}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->size()I move-result v14 if-le v14, v11, :cond_8 add-int/2addr v13, v14 goto :goto_4 :cond_9 aget v12, v2, v4 add-int/2addr v12, v13 aput v12, v2, v4 add-int/lit8 v4, v4, 0x1 goto :goto_3 :cond_a const/16 v4, 0x8 const/4 v12, 0x0 :goto_5 sget-object v13, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v13, v13 if-ge v12, v13, :cond_c iget-object v13, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v13, v13, v12 invoke-virtual {v13}, Ljava/util/HashMap;->isEmpty()Z move-result v13 if-nez v13, :cond_b aput v4, v3, v12 iget-object v13, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v13, v13, v12 invoke-virtual {v13}, Ljava/util/HashMap;->size()I move-result v13 mul-int/lit8 v13, v13, 0xc add-int/2addr v13, v9 add-int/2addr v13, v11 aget v14, v2, v12 add-int/2addr v13, v14 add-int/2addr v13, v4 move v4, v13 :cond_b add-int/lit8 v12, v12, 0x1 goto :goto_5 :cond_c iget-boolean v12, v0, Landroidx/exifinterface/media/ExifInterface;->mHasThumbnail:Z if-eqz v12, :cond_d iget-object v12, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v12, v12, v11 sget-object v13, Landroidx/exifinterface/media/ExifInterface;->JPEG_INTERCHANGE_FORMAT_TAG:Landroidx/exifinterface/media/ExifInterface$ExifTag; iget-object v13, v13, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; int-to-long v14, v4 iget-object v7, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v14, v15, v7}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v7 invoke-virtual {v12, v13, v7}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; iget v7, v0, Landroidx/exifinterface/media/ExifInterface;->mExifOffset:I add-int/2addr v7, v4 iput v7, v0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailOffset:I iget v7, v0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailLength:I add-int/2addr v4, v7 :cond_d iget v7, v0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I if-ne v7, v11, :cond_e add-int/lit8 v4, v4, 0x8 :cond_e sget-boolean v7, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v7, :cond_f const/4 v7, 0x0 :goto_6 sget-object v8, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v8, v8 if-ge v7, v8, :cond_f const/4 v8, 0x5 new-array v8, v8, [Ljava/lang/Object; invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v12 aput-object v12, v8, v6 aget v12, v3, v7 invoke-static {v12}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v12 aput-object v12, v8, v5 iget-object v12, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v12, v12, v7 invoke-virtual {v12}, Ljava/util/HashMap;->size()I move-result v12 invoke-static {v12}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v12 aput-object v12, v8, v9 aget v12, v2, v7 invoke-static {v12}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v12 aput-object v12, v8, v10 invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v12 aput-object v12, v8, v11 const-string v12, "index: %d, offsets: %d, tag count: %d, data sizes: %d, total size: %d" invoke-static {v12, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object v8 const-string v12, "ExifInterface" invoke-static {v12, v8}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I add-int/lit8 v7, v7, 0x1 goto :goto_6 :cond_f iget-object v2, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v2, v2, v5 invoke-virtual {v2}, Ljava/util/HashMap;->isEmpty()Z move-result v2 if-nez v2, :cond_10 iget-object v2, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v2, v2, v6 sget-object v7, Landroidx/exifinterface/media/ExifInterface;->EXIF_POINTER_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; aget-object v7, v7, v5 iget-object v7, v7, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; aget v8, v3, v5 int-to-long v12, v8 iget-object v8, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v12, v13, v8}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v8 invoke-virtual {v2, v7, v8}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_10 iget-object v2, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v2, v2, v9 invoke-virtual {v2}, Ljava/util/HashMap;->isEmpty()Z move-result v2 if-nez v2, :cond_11 iget-object v2, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v2, v2, v6 sget-object v7, Landroidx/exifinterface/media/ExifInterface;->EXIF_POINTER_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; aget-object v7, v7, v9 iget-object v7, v7, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; aget v8, v3, v9 int-to-long v12, v8 iget-object v8, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v12, v13, v8}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v8 invoke-virtual {v2, v7, v8}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_11 iget-object v2, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v2, v2, v10 invoke-virtual {v2}, Ljava/util/HashMap;->isEmpty()Z move-result v2 if-nez v2, :cond_12 iget-object v2, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v2, v2, v5 sget-object v7, Landroidx/exifinterface/media/ExifInterface;->EXIF_POINTER_TAGS:[Landroidx/exifinterface/media/ExifInterface$ExifTag; aget-object v7, v7, v10 iget-object v7, v7, Landroidx/exifinterface/media/ExifInterface$ExifTag;->name:Ljava/lang/String; aget v8, v3, v10 int-to-long v12, v8 iget-object v8, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v12, v13, v8}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v8 invoke-virtual {v2, v7, v8}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_12 iget v2, v0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I const/16 v7, 0xe if-eq v2, v11, :cond_15 const/16 v8, 0xd if-eq v2, v8, :cond_14 if-eq v2, v7, :cond_13 goto :goto_7 :cond_13 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->WEBP_CHUNK_TYPE_EXIF:[B invoke-virtual {v1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->write([B)V invoke-virtual {v1, v4}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeInt(I)V goto :goto_7 :cond_14 invoke-virtual {v1, v4}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeInt(I)V sget-object v2, Landroidx/exifinterface/media/ExifInterface;->PNG_CHUNK_TYPE_EXIF:[B invoke-virtual {v1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->write([B)V goto :goto_7 :cond_15 invoke-virtual {v1, v4}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeUnsignedShort(I)V sget-object v2, Landroidx/exifinterface/media/ExifInterface;->IDENTIFIER_EXIF_APP1:[B invoke-virtual {v1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->write([B)V :goto_7 iget-object v2, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; sget-object v8, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; if-ne v2, v8, :cond_16 const/16 v2, 0x4d4d goto :goto_8 :cond_16 const/16 v2, 0x4949 :goto_8 invoke-virtual {v1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeShort(S)V iget-object v2, v0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->setByteOrder(Ljava/nio/ByteOrder;)V const/16 v2, 0x2a invoke-virtual {v1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeUnsignedShort(I)V const-wide/16 v12, 0x8 invoke-virtual {v1, v12, v13}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeUnsignedInt(J)V const/4 v2, 0x0 :goto_9 sget-object v8, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v8, v8 if-ge v2, v8, :cond_1e iget-object v8, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v8, v8, v2 invoke-virtual {v8}, Ljava/util/HashMap;->isEmpty()Z move-result v8 if-nez v8, :cond_1c iget-object v8, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v8, v8, v2 invoke-virtual {v8}, Ljava/util/HashMap;->size()I move-result v8 invoke-virtual {v1, v8}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeUnsignedShort(I)V aget v8, v3, v2 add-int/2addr v8, v9 iget-object v10, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v10, v10, v2 invoke-virtual {v10}, Ljava/util/HashMap;->size()I move-result v10 mul-int/lit8 v10, v10, 0xc add-int/2addr v10, v8 add-int/2addr v10, v11 iget-object v8, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v8, v8, v2 invoke-virtual {v8}, Ljava/util/HashMap;->entrySet()Ljava/util/Set; move-result-object v8 invoke-interface {v8}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v8 :cond_17 :goto_a invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z move-result v12 if-eqz v12, :cond_19 invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v12 check-cast v12, Ljava/util/Map$Entry; sget-object v13, Landroidx/exifinterface/media/ExifInterface;->sExifTagMapsForWriting:[Ljava/util/HashMap; aget-object v13, v13, v2 invoke-interface {v12}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object v14 invoke-virtual {v13, v14}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v13 check-cast v13, Landroidx/exifinterface/media/ExifInterface$ExifTag; iget v13, v13, Landroidx/exifinterface/media/ExifInterface$ExifTag;->number:I invoke-interface {v12}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v12 check-cast v12, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; invoke-virtual {v12}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->size()I move-result v14 invoke-virtual {v1, v13}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeUnsignedShort(I)V iget v13, v12, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->format:I invoke-virtual {v1, v13}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeUnsignedShort(I)V iget v13, v12, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->numberOfComponents:I invoke-virtual {v1, v13}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeInt(I)V if-le v14, v11, :cond_18 int-to-long v12, v10 invoke-virtual {v1, v12, v13}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeUnsignedInt(J)V add-int/2addr v10, v14 goto :goto_a :cond_18 iget-object v12, v12, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->bytes:[B invoke-virtual {v1, v12}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->write([B)V if-ge v14, v11, :cond_17 :goto_b if-ge v14, v11, :cond_17 invoke-virtual {v1, v6}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeByte(I)V add-int/lit8 v14, v14, 0x1 goto :goto_b :cond_19 if-nez v2, :cond_1a iget-object v8, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v8, v8, v11 invoke-virtual {v8}, Ljava/util/HashMap;->isEmpty()Z move-result v8 if-nez v8, :cond_1a aget v8, v3, v11 int-to-long v12, v8 invoke-virtual {v1, v12, v13}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeUnsignedInt(J)V const-wide/16 v12, 0x0 goto :goto_c :cond_1a const-wide/16 v12, 0x0 invoke-virtual {v1, v12, v13}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeUnsignedInt(J)V :goto_c iget-object v8, v0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v8, v8, v2 invoke-virtual {v8}, Ljava/util/HashMap;->entrySet()Ljava/util/Set; move-result-object v8 invoke-interface {v8}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v8 :cond_1b :goto_d invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z move-result v10 if-eqz v10, :cond_1d invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v10 check-cast v10, Ljava/util/Map$Entry; invoke-interface {v10}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v10 check-cast v10, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; iget-object v10, v10, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->bytes:[B array-length v14, v10 if-le v14, v11, :cond_1b array-length v14, v10 invoke-virtual {v1, v10, v6, v14}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->write([BII)V goto :goto_d :cond_1c const-wide/16 v12, 0x0 :cond_1d add-int/lit8 v2, v2, 0x1 goto/16 :goto_9 :cond_1e iget-boolean v2, v0, Landroidx/exifinterface/media/ExifInterface;->mHasThumbnail:Z if-eqz v2, :cond_1f invoke-virtual/range {p0 .. p0}, Landroidx/exifinterface/media/ExifInterface;->getThumbnailBytes()[B move-result-object v2 invoke-virtual {v1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->write([B)V :cond_1f iget v2, v0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I if-ne v2, v7, :cond_20 rem-int/lit8 v2, v4, 0x2 if-ne v2, v5, :cond_20 invoke-virtual {v1, v6}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->writeByte(I)V :cond_20 sget-object v2, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; invoke-virtual {v1, v2}, Landroidx/exifinterface/media/ExifInterface$ByteOrderedDataOutputStream;->setByteOrder(Ljava/nio/ByteOrder;)V return v4 .end method # virtual methods .method public flipHorizontally()V .locals 3 const-string v0, "Orientation" const/4 v1, 0x1 invoke-virtual {p0, v0, v1}, Landroidx/exifinterface/media/ExifInterface;->getAttributeInt(Ljava/lang/String;I)I move-result v2 packed-switch v2, :pswitch_data_0 const/4 v1, 0x0 goto :goto_0 :pswitch_0 const/4 v1, 0x7 goto :goto_0 :pswitch_1 const/16 v1, 0x8 goto :goto_0 :pswitch_2 const/4 v1, 0x5 goto :goto_0 :pswitch_3 const/4 v1, 0x6 goto :goto_0 :pswitch_4 const/4 v1, 0x3 goto :goto_0 :pswitch_5 const/4 v1, 0x4 goto :goto_0 :pswitch_6 const/4 v1, 0x2 :goto_0 :pswitch_7 invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; move-result-object v1 invoke-virtual {p0, v0, v1}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V return-void :pswitch_data_0 .packed-switch 0x1 :pswitch_6 :pswitch_7 :pswitch_5 :pswitch_4 :pswitch_3 :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch .end method .method public flipVertically()V .locals 3 const-string v0, "Orientation" const/4 v1, 0x1 invoke-virtual {p0, v0, v1}, Landroidx/exifinterface/media/ExifInterface;->getAttributeInt(Ljava/lang/String;I)I move-result v2 packed-switch v2, :pswitch_data_0 const/4 v1, 0x0 goto :goto_0 :pswitch_0 const/4 v1, 0x5 goto :goto_0 :pswitch_1 const/4 v1, 0x6 goto :goto_0 :pswitch_2 const/4 v1, 0x7 goto :goto_0 :pswitch_3 const/16 v1, 0x8 goto :goto_0 :pswitch_4 const/4 v1, 0x2 goto :goto_0 :pswitch_5 const/4 v1, 0x3 goto :goto_0 :pswitch_6 const/4 v1, 0x4 :goto_0 :pswitch_7 invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; move-result-object v1 invoke-virtual {p0, v0, v1}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V return-void :pswitch_data_0 .packed-switch 0x1 :pswitch_6 :pswitch_5 :pswitch_4 :pswitch_7 :pswitch_3 :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch .end method .method public getAltitude(D)D .locals 7 const-string v0, "GPSAltitude" const-wide/high16 v1, -0x4010000000000000L # -1.0 invoke-virtual {p0, v0, v1, v2}, Landroidx/exifinterface/media/ExifInterface;->getAttributeDouble(Ljava/lang/String;D)D move-result-wide v0 const-string v2, "GPSAltitudeRef" const/4 v3, -0x1 invoke-virtual {p0, v2, v3}, Landroidx/exifinterface/media/ExifInterface;->getAttributeInt(Ljava/lang/String;I)I move-result v2 const-wide/16 v4, 0x0 cmpl-double v6, v0, v4 if-ltz v6, :cond_1 if-ltz v2, :cond_1 const/4 p1, 0x1 if-ne v2, p1, :cond_0 goto :goto_0 :cond_0 const/4 v3, 0x1 :goto_0 int-to-double p1, v3 mul-double v0, v0, p1 return-wide v0 :cond_1 return-wide p1 .end method .method public getAttribute(Ljava/lang/String;)Ljava/lang/String; .locals 5 .param p1 # Ljava/lang/String; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation build Landroidx/annotation/Nullable; .end annotation if-eqz p1, :cond_6 invoke-direct {p0, p1}, Landroidx/exifinterface/media/ExifInterface;->getExifAttribute(Ljava/lang/String;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v0 const/4 v1, 0x0 if-eqz v0, :cond_5 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->sTagSetForCompatibility:Ljava/util/HashSet; invoke-virtual {v2, p1}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z move-result v2 if-nez v2, :cond_0 iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v0, p1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getStringValue(Ljava/nio/ByteOrder;)Ljava/lang/String; move-result-object p1 return-object p1 :cond_0 const-string v2, "GPSTimeStamp" invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_4 iget p1, v0, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->format:I const/4 v2, 0x5 const-string v3, "ExifInterface" if-eq p1, v2, :cond_1 const/16 v2, 0xa if-eq p1, v2, :cond_1 const-string p1, "GPS Timestamp format is not rational. format=" invoke-static {p1}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 iget v0, v0, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->format:I invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v3, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I return-object v1 :cond_1 iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v0, p1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getValue(Ljava/nio/ByteOrder;)Ljava/lang/Object; move-result-object p1 check-cast p1, [Landroidx/exifinterface/media/ExifInterface$Rational; if-eqz p1, :cond_3 array-length v0, p1 const/4 v2, 0x3 if-eq v0, v2, :cond_2 goto :goto_0 :cond_2 new-array v0, v2, [Ljava/lang/Object; const/4 v1, 0x0 aget-object v2, p1, v1 iget-wide v2, v2, Landroidx/exifinterface/media/ExifInterface$Rational;->numerator:J long-to-float v2, v2 aget-object v3, p1, v1 iget-wide v3, v3, Landroidx/exifinterface/media/ExifInterface$Rational;->denominator:J long-to-float v3, v3 div-float/2addr v2, v3 float-to-int v2, v2 invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v2 aput-object v2, v0, v1 const/4 v1, 0x1 aget-object v2, p1, v1 iget-wide v2, v2, Landroidx/exifinterface/media/ExifInterface$Rational;->numerator:J long-to-float v2, v2 aget-object v3, p1, v1 iget-wide v3, v3, Landroidx/exifinterface/media/ExifInterface$Rational;->denominator:J long-to-float v3, v3 div-float/2addr v2, v3 float-to-int v2, v2 invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v2 aput-object v2, v0, v1 const/4 v1, 0x2 aget-object v2, p1, v1 iget-wide v2, v2, Landroidx/exifinterface/media/ExifInterface$Rational;->numerator:J long-to-float v2, v2 aget-object p1, p1, v1 iget-wide v3, p1, Landroidx/exifinterface/media/ExifInterface$Rational;->denominator:J long-to-float p1, v3 div-float/2addr v2, p1 float-to-int p1, v2 invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p1 aput-object p1, v0, v1 const-string p1, "%02d:%02d:%02d" invoke-static {p1, v0}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object p1 return-object p1 :cond_3 :goto_0 const-string v0, "Invalid GPS Timestamp array. array=" invoke-static {v0}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-static {p1}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String; move-result-object p1 invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v3, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I return-object v1 :cond_4 :try_start_0 iget-object p1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v0, p1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getDoubleValue(Ljava/nio/ByteOrder;)D move-result-wide v2 invoke-static {v2, v3}, Ljava/lang/Double;->toString(D)Ljava/lang/String; move-result-object p1 :try_end_0 .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 return-object p1 :catch_0 :cond_5 return-object v1 :cond_6 new-instance p1, Ljava/lang/NullPointerException; const-string v0, "tag shouldn\'t be null" invoke-direct {p1, v0}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 .end method .method public getAttributeBytes(Ljava/lang/String;)[B .locals 1 .param p1 # Ljava/lang/String; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation build Landroidx/annotation/Nullable; .end annotation if-eqz p1, :cond_1 invoke-direct {p0, p1}, Landroidx/exifinterface/media/ExifInterface;->getExifAttribute(Ljava/lang/String;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object p1 if-eqz p1, :cond_0 iget-object p1, p1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->bytes:[B return-object p1 :cond_0 const/4 p1, 0x0 return-object p1 :cond_1 new-instance p1, Ljava/lang/NullPointerException; const-string v0, "tag shouldn\'t be null" invoke-direct {p1, v0}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 .end method .method public getAttributeDouble(Ljava/lang/String;D)D .locals 1 .param p1 # Ljava/lang/String; .annotation build Landroidx/annotation/NonNull; .end annotation .end param if-eqz p1, :cond_1 invoke-direct {p0, p1}, Landroidx/exifinterface/media/ExifInterface;->getExifAttribute(Ljava/lang/String;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object p1 if-nez p1, :cond_0 return-wide p2 :cond_0 :try_start_0 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {p1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getDoubleValue(Ljava/nio/ByteOrder;)D move-result-wide p1 :try_end_0 .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 return-wide p1 :catch_0 return-wide p2 :cond_1 new-instance p1, Ljava/lang/NullPointerException; const-string p2, "tag shouldn\'t be null" invoke-direct {p1, p2}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 .end method .method public getAttributeInt(Ljava/lang/String;I)I .locals 1 .param p1 # Ljava/lang/String; .annotation build Landroidx/annotation/NonNull; .end annotation .end param if-eqz p1, :cond_1 invoke-direct {p0, p1}, Landroidx/exifinterface/media/ExifInterface;->getExifAttribute(Ljava/lang/String;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object p1 if-nez p1, :cond_0 return p2 :cond_0 :try_start_0 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {p1, v0}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result p1 :try_end_0 .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 return p1 :catch_0 return p2 :cond_1 new-instance p1, Ljava/lang/NullPointerException; const-string p2, "tag shouldn\'t be null" invoke-direct {p1, p2}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 .end method .method public getAttributeRange(Ljava/lang/String;)[J .locals 4 .param p1 # Ljava/lang/String; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation build Landroidx/annotation/Nullable; .end annotation if-eqz p1, :cond_2 iget-boolean v0, p0, Landroidx/exifinterface/media/ExifInterface;->mModified:Z if-nez v0, :cond_1 invoke-direct {p0, p1}, Landroidx/exifinterface/media/ExifInterface;->getExifAttribute(Ljava/lang/String;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object p1 if-eqz p1, :cond_0 const/4 v0, 0x2 new-array v0, v0, [J const/4 v1, 0x0 iget-wide v2, p1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->bytesOffset:J aput-wide v2, v0, v1 const/4 v1, 0x1 iget-object p1, p1, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->bytes:[B array-length p1, p1 int-to-long v2, p1 aput-wide v2, v0, v1 return-object v0 :cond_0 const/4 p1, 0x0 return-object p1 :cond_1 new-instance p1, Ljava/lang/IllegalStateException; const-string v0, "The underlying file has been modified since being parsed" invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw p1 :cond_2 new-instance p1, Ljava/lang/NullPointerException; const-string v0, "tag shouldn\'t be null" invoke-direct {p1, v0}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 .end method .method public getDateTime()J .locals 2 .annotation build Landroidx/annotation/RestrictTo; value = { .enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope; } .end annotation const-string v0, "DateTime" invoke-virtual {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 const-string v1, "SubSecTime" invoke-virtual {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 invoke-static {v0, v1}, Landroidx/exifinterface/media/ExifInterface;->parseDateTime(Ljava/lang/String;Ljava/lang/String;)J move-result-wide v0 return-wide v0 .end method .method public getDateTimeDigitized()J .locals 2 .annotation build Landroidx/annotation/RestrictTo; value = { .enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope; } .end annotation const-string v0, "DateTimeDigitized" invoke-virtual {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 const-string v1, "SubSecTimeDigitized" invoke-virtual {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 invoke-static {v0, v1}, Landroidx/exifinterface/media/ExifInterface;->parseDateTime(Ljava/lang/String;Ljava/lang/String;)J move-result-wide v0 return-wide v0 .end method .method public getDateTimeOriginal()J .locals 2 .annotation build Landroidx/annotation/RestrictTo; value = { .enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope; } .end annotation const-string v0, "DateTimeOriginal" invoke-virtual {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 const-string v1, "SubSecTimeOriginal" invoke-virtual {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 invoke-static {v0, v1}, Landroidx/exifinterface/media/ExifInterface;->parseDateTime(Ljava/lang/String;Ljava/lang/String;)J move-result-wide v0 return-wide v0 .end method .method public getGpsDateTime()J .locals 5 .annotation build Landroidx/annotation/RestrictTo; value = { .enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope; } .end annotation const-string v0, "GPSDateStamp" invoke-virtual {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 const-string v1, "GPSTimeStamp" invoke-virtual {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 const-wide/16 v2, -0x1 if-eqz v0, :cond_2 if-eqz v1, :cond_2 sget-object v4, Landroidx/exifinterface/media/ExifInterface;->sNonZeroTimePattern:Ljava/util/regex/Pattern; invoke-virtual {v4, v0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; move-result-object v4 invoke-virtual {v4}, Ljava/util/regex/Matcher;->matches()Z move-result v4 if-nez v4, :cond_0 sget-object v4, Landroidx/exifinterface/media/ExifInterface;->sNonZeroTimePattern:Ljava/util/regex/Pattern; invoke-virtual {v4, v1}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; move-result-object v4 invoke-virtual {v4}, Ljava/util/regex/Matcher;->matches()Z move-result v4 if-nez v4, :cond_0 goto :goto_0 :cond_0 new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const/16 v0, 0x20 invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 new-instance v1, Ljava/text/ParsePosition; const/4 v4, 0x0 invoke-direct {v1, v4}, Ljava/text/ParsePosition;->(I)V :try_start_0 sget-object v4, Landroidx/exifinterface/media/ExifInterface;->sFormatter:Ljava/text/SimpleDateFormat; invoke-virtual {v4, v0, v1}, Ljava/text/SimpleDateFormat;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date; move-result-object v0 if-nez v0, :cond_1 return-wide v2 :cond_1 invoke-virtual {v0}, Ljava/util/Date;->getTime()J move-result-wide v0 :try_end_0 .catch Ljava/lang/IllegalArgumentException; {:try_start_0 .. :try_end_0} :catch_0 return-wide v0 :catch_0 :cond_2 :goto_0 return-wide v2 .end method .method public getLatLong([F)Z .locals 4 .annotation runtime Ljava/lang/Deprecated; .end annotation invoke-virtual {p0}, Landroidx/exifinterface/media/ExifInterface;->getLatLong()[D move-result-object v0 const/4 v1, 0x0 if-nez v0, :cond_0 return v1 :cond_0 aget-wide v2, v0, v1 double-to-float v2, v2 aput v2, p1, v1 const/4 v1, 0x1 aget-wide v2, v0, v1 double-to-float v0, v2 aput v0, p1, v1 return v1 .end method .method public getLatLong()[D .locals 12 .annotation build Landroidx/annotation/Nullable; .end annotation const-string v0, "GPSLatitude" invoke-virtual {p0, v0}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 const-string v1, "GPSLatitudeRef" invoke-virtual {p0, v1}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 const-string v2, "GPSLongitude" invoke-virtual {p0, v2}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 const-string v3, "GPSLongitudeRef" invoke-virtual {p0, v3}, Landroidx/exifinterface/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v3 if-eqz v0, :cond_0 if-eqz v1, :cond_0 if-eqz v2, :cond_0 if-eqz v3, :cond_0 const/4 v4, 0x2 const/4 v5, 0x1 const/4 v6, 0x0 :try_start_0 invoke-static {v0, v1}, Landroidx/exifinterface/media/ExifInterface;->convertRationalLatLonToDouble(Ljava/lang/String;Ljava/lang/String;)D move-result-wide v7 invoke-static {v2, v3}, Landroidx/exifinterface/media/ExifInterface;->convertRationalLatLonToDouble(Ljava/lang/String;Ljava/lang/String;)D move-result-wide v9 new-array v11, v4, [D aput-wide v7, v11, v6 aput-wide v9, v11, v5 :try_end_0 .catch Ljava/lang/IllegalArgumentException; {:try_start_0 .. :try_end_0} :catch_0 return-object v11 :catch_0 const-string v7, "Latitude/longitude values are not parsable. " invoke-static {v7}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v7 const/4 v8, 0x4 new-array v8, v8, [Ljava/lang/Object; aput-object v0, v8, v6 aput-object v1, v8, v5 aput-object v2, v8, v4 const/4 v0, 0x3 aput-object v3, v8, v0 const-string v0, "latValue=%s, latRef=%s, lngValue=%s, lngRef=%s" invoke-static {v0, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object v0 invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 const-string v1, "ExifInterface" invoke-static {v1, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I :cond_0 const/4 v0, 0x0 return-object v0 .end method .method public getRotationDegrees()I .locals 2 const-string v0, "Orientation" const/4 v1, 0x1 invoke-virtual {p0, v0, v1}, Landroidx/exifinterface/media/ExifInterface;->getAttributeInt(Ljava/lang/String;I)I move-result v0 packed-switch v0, :pswitch_data_0 const/4 v0, 0x0 return v0 :pswitch_0 const/16 v0, 0x5a return v0 :pswitch_1 const/16 v0, 0x10e return v0 :pswitch_2 const/16 v0, 0xb4 return v0 nop :pswitch_data_0 .packed-switch 0x3 :pswitch_2 :pswitch_2 :pswitch_1 :pswitch_0 :pswitch_0 :pswitch_1 .end packed-switch .end method .method public getThumbnail()[B .locals 2 .annotation build Landroidx/annotation/Nullable; .end annotation iget v0, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailCompression:I const/4 v1, 0x6 if-eq v0, v1, :cond_1 const/4 v1, 0x7 if-ne v0, v1, :cond_0 goto :goto_0 :cond_0 const/4 v0, 0x0 return-object v0 :cond_1 :goto_0 invoke-virtual {p0}, Landroidx/exifinterface/media/ExifInterface;->getThumbnailBytes()[B move-result-object v0 return-object v0 .end method .method public getThumbnailBitmap()Landroid/graphics/Bitmap; .locals 9 .annotation build Landroidx/annotation/Nullable; .end annotation iget-boolean v0, p0, Landroidx/exifinterface/media/ExifInterface;->mHasThumbnail:Z const/4 v1, 0x0 if-nez v0, :cond_0 return-object v1 :cond_0 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailBytes:[B if-nez v0, :cond_1 invoke-virtual {p0}, Landroidx/exifinterface/media/ExifInterface;->getThumbnailBytes()[B move-result-object v0 iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailBytes:[B :cond_1 iget v0, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailCompression:I const/4 v2, 0x6 const/4 v3, 0x0 if-eq v0, v2, :cond_5 const/4 v2, 0x7 if-ne v0, v2, :cond_2 goto :goto_1 :cond_2 const/4 v2, 0x1 if-ne v0, v2, :cond_4 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailBytes:[B array-length v0, v0 div-int/lit8 v0, v0, 0x3 new-array v2, v0, [I const/4 v4, 0x0 :goto_0 if-ge v4, v0, :cond_3 iget-object v5, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailBytes:[B mul-int/lit8 v6, v4, 0x3 aget-byte v7, v5, v6 shl-int/lit8 v7, v7, 0x10 add-int/2addr v7, v3 add-int/lit8 v8, v6, 0x1 aget-byte v8, v5, v8 shl-int/lit8 v8, v8, 0x8 add-int/2addr v7, v8 add-int/lit8 v6, v6, 0x2 aget-byte v5, v5, v6 add-int/2addr v7, v5 aput v7, v2, v4 add-int/lit8 v4, v4, 0x1 goto :goto_0 :cond_3 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; const/4 v3, 0x4 aget-object v0, v0, v3 const-string v4, "ImageLength" invoke-virtual {v0, v4}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; iget-object v4, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v3, v4, v3 const-string v4, "ImageWidth" invoke-virtual {v3, v4}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 check-cast v3, Landroidx/exifinterface/media/ExifInterface$ExifAttribute; if-eqz v0, :cond_4 if-eqz v3, :cond_4 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v0, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result v0 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-virtual {v3, v1}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I move-result v1 sget-object v3, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config; invoke-static {v2, v1, v0, v3}, Landroid/graphics/Bitmap;->createBitmap([IIILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap; move-result-object v0 return-object v0 :cond_4 return-object v1 :cond_5 :goto_1 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailBytes:[B iget v1, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailLength:I invoke-static {v0, v3, v1}, Landroid/graphics/BitmapFactory;->decodeByteArray([BII)Landroid/graphics/Bitmap; move-result-object v0 return-object v0 .end method .method public getThumbnailBytes()[B .locals 11 .annotation build Landroidx/annotation/Nullable; .end annotation const-string v0, "ExifInterface" iget-boolean v1, p0, Landroidx/exifinterface/media/ExifInterface;->mHasThumbnail:Z const/4 v2, 0x0 if-nez v1, :cond_0 return-object v2 :cond_0 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailBytes:[B if-eqz v1, :cond_1 return-object v1 :cond_1 :try_start_0 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mAssetInputStream:Landroid/content/res/AssetManager$AssetInputStream; if-eqz v1, :cond_3 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mAssetInputStream:Landroid/content/res/AssetManager$AssetInputStream; :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_3 .catchall {:try_start_0 .. :try_end_0} :catchall_2 :try_start_1 invoke-virtual {v1}, Ljava/io/InputStream;->markSupported()Z move-result v3 if-eqz v3, :cond_2 invoke-virtual {v1}, Ljava/io/InputStream;->reset()V :goto_0 move-object v3, v2 goto :goto_1 :cond_2 const-string v3, "Cannot read thumbnail from inputstream without mark/reset support" invoke-static {v0, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 .catchall {:try_start_1 .. :try_end_1} :catchall_0 invoke-static {v1}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V return-object v2 :catchall_0 move-exception v0 move-object v3, v2 goto/16 :goto_3 :catch_0 move-exception v3 move-object v4, v3 move-object v3, v2 goto/16 :goto_2 :cond_3 :try_start_2 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; if-eqz v1, :cond_4 new-instance v1, Ljava/io/FileInputStream; iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; invoke-direct {v1, v3}, Ljava/io/FileInputStream;->(Ljava/lang/String;)V goto :goto_0 :cond_4 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; if-eqz v1, :cond_5 iget-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; invoke-static {v1}, Landroid/system/Os;->dup(Ljava/io/FileDescriptor;)Ljava/io/FileDescriptor; move-result-object v1 :try_end_2 .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_3 .catchall {:try_start_2 .. :try_end_2} :catchall_2 const-wide/16 v3, 0x0 :try_start_3 sget v5, Landroid/system/OsConstants;->SEEK_SET:I invoke-static {v1, v3, v4, v5}, Landroid/system/Os;->lseek(Ljava/io/FileDescriptor;JI)J new-instance v3, Ljava/io/FileInputStream; invoke-direct {v3, v1}, Ljava/io/FileInputStream;->(Ljava/io/FileDescriptor;)V :try_end_3 .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_3} :catch_1 .catchall {:try_start_3 .. :try_end_3} :catchall_1 move-object v10, v3 move-object v3, v1 move-object v1, v10 goto :goto_1 :catchall_1 move-exception v0 move-object v3, v1 goto :goto_4 :catch_1 move-exception v3 move-object v4, v3 move-object v3, v1 move-object v1, v2 goto :goto_2 :cond_5 move-object v1, v2 move-object v3, v1 :goto_1 if-eqz v1, :cond_9 :try_start_4 iget v4, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailOffset:I int-to-long v4, v4 invoke-virtual {v1, v4, v5}, Ljava/io/InputStream;->skip(J)J move-result-wide v4 iget v6, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailOffset:I :try_end_4 .catch Ljava/lang/Exception; {:try_start_4 .. :try_end_4} :catch_2 .catchall {:try_start_4 .. :try_end_4} :catchall_3 int-to-long v6, v6 const-string v8, "Corrupted image" cmp-long v9, v4, v6 if-nez v9, :cond_8 :try_start_5 iget v4, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailLength:I new-array v4, v4, [B invoke-virtual {v1, v4}, Ljava/io/InputStream;->read([B)I move-result v5 iget v6, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailLength:I if-ne v5, v6, :cond_7 iput-object v4, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailBytes:[B :try_end_5 .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_2 .catchall {:try_start_5 .. :try_end_5} :catchall_3 invoke-static {v1}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V if-eqz v3, :cond_6 invoke-static {v3}, Landroidx/exifinterface/media/ExifInterface;->closeFileDescriptor(Ljava/io/FileDescriptor;)V :cond_6 return-object v4 :cond_7 :try_start_6 new-instance v4, Ljava/io/IOException; invoke-direct {v4, v8}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v4 :cond_8 new-instance v4, Ljava/io/IOException; invoke-direct {v4, v8}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v4 :catch_2 move-exception v4 goto :goto_2 :cond_9 new-instance v4, Ljava/io/FileNotFoundException; invoke-direct {v4}, Ljava/io/FileNotFoundException;->()V throw v4 :try_end_6 .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_6} :catch_2 .catchall {:try_start_6 .. :try_end_6} :catchall_3 :catchall_2 move-exception v0 move-object v3, v2 goto :goto_4 :catch_3 move-exception v3 move-object v1, v2 move-object v4, v3 move-object v3, v1 :goto_2 :try_start_7 const-string v5, "Encountered exception while getting thumbnail" invoke-static {v0, v5, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I :try_end_7 .catchall {:try_start_7 .. :try_end_7} :catchall_3 invoke-static {v1}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V if-eqz v3, :cond_a invoke-static {v3}, Landroidx/exifinterface/media/ExifInterface;->closeFileDescriptor(Ljava/io/FileDescriptor;)V :cond_a return-object v2 :catchall_3 move-exception v0 :goto_3 move-object v2, v1 :goto_4 invoke-static {v2}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V if-eqz v3, :cond_b invoke-static {v3}, Landroidx/exifinterface/media/ExifInterface;->closeFileDescriptor(Ljava/io/FileDescriptor;)V :cond_b throw v0 .end method .method public getThumbnailRange()[J .locals 4 .annotation build Landroidx/annotation/Nullable; .end annotation iget-boolean v0, p0, Landroidx/exifinterface/media/ExifInterface;->mModified:Z if-nez v0, :cond_2 iget-boolean v0, p0, Landroidx/exifinterface/media/ExifInterface;->mHasThumbnail:Z const/4 v1, 0x0 if-eqz v0, :cond_1 iget-boolean v0, p0, Landroidx/exifinterface/media/ExifInterface;->mHasThumbnailStrips:Z if-eqz v0, :cond_0 iget-boolean v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAreThumbnailStripsConsecutive:Z if-nez v0, :cond_0 return-object v1 :cond_0 const/4 v0, 0x2 new-array v0, v0, [J const/4 v1, 0x0 iget v2, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailOffset:I int-to-long v2, v2 aput-wide v2, v0, v1 const/4 v1, 0x1 iget v2, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailLength:I int-to-long v2, v2 aput-wide v2, v0, v1 return-object v0 :cond_1 return-object v1 :cond_2 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "The underlying file has been modified since being parsed" invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 .end method .method public hasAttribute(Ljava/lang/String;)Z .locals 0 .param p1 # Ljava/lang/String; .annotation build Landroidx/annotation/NonNull; .end annotation .end param invoke-direct {p0, p1}, Landroidx/exifinterface/media/ExifInterface;->getExifAttribute(Ljava/lang/String;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object p1 if-eqz p1, :cond_0 const/4 p1, 0x1 goto :goto_0 :cond_0 const/4 p1, 0x0 :goto_0 return p1 .end method .method public hasThumbnail()Z .locals 1 iget-boolean v0, p0, Landroidx/exifinterface/media/ExifInterface;->mHasThumbnail:Z return v0 .end method .method public isFlipped()Z .locals 3 const-string v0, "Orientation" const/4 v1, 0x1 invoke-virtual {p0, v0, v1}, Landroidx/exifinterface/media/ExifInterface;->getAttributeInt(Ljava/lang/String;I)I move-result v0 const/4 v2, 0x2 if-eq v0, v2, :cond_0 const/4 v2, 0x7 if-eq v0, v2, :cond_0 const/4 v2, 0x4 if-eq v0, v2, :cond_0 const/4 v2, 0x5 if-eq v0, v2, :cond_0 const/4 v0, 0x0 return v0 :cond_0 return v1 .end method .method public isThumbnailCompressed()Z .locals 3 iget-boolean v0, p0, Landroidx/exifinterface/media/ExifInterface;->mHasThumbnail:Z const/4 v1, 0x0 if-nez v0, :cond_0 return v1 :cond_0 iget v0, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailCompression:I const/4 v2, 0x6 if-eq v0, v2, :cond_2 const/4 v2, 0x7 if-ne v0, v2, :cond_1 goto :goto_0 :cond_1 return v1 :cond_2 :goto_0 const/4 v0, 0x1 return v0 .end method .method public resetOrientation()V .locals 2 const/4 v0, 0x1 invoke-static {v0}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; move-result-object v0 const-string v1, "Orientation" invoke-virtual {p0, v1, v0}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V return-void .end method .method public rotate(I)V .locals 6 rem-int/lit8 v0, p1, 0x5a if-nez v0, :cond_4 const/4 v0, 0x1 const-string v1, "Orientation" invoke-virtual {p0, v1, v0}, Landroidx/exifinterface/media/ExifInterface;->getAttributeInt(Ljava/lang/String;I)I move-result v0 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->ROTATION_ORDER:Ljava/util/List; invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v3 invoke-interface {v2, v3}, Ljava/util/List;->contains(Ljava/lang/Object;)Z move-result v2 const/4 v3, 0x0 const/4 v4, 0x4 if-eqz v2, :cond_1 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->ROTATION_ORDER:Ljava/util/List; invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v0 invoke-interface {v2, v0}, Ljava/util/List;->indexOf(Ljava/lang/Object;)I move-result v0 div-int/lit8 p1, p1, 0x5a add-int/2addr p1, v0 rem-int/2addr p1, v4 if-gez p1, :cond_0 const/4 v3, 0x4 :cond_0 add-int/2addr p1, v3 sget-object v0, Landroidx/exifinterface/media/ExifInterface;->ROTATION_ORDER:Ljava/util/List; invoke-interface {v0, p1}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object p1 check-cast p1, Ljava/lang/Integer; invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I move-result v3 goto :goto_0 :cond_1 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->FLIPPED_ROTATION_ORDER:Ljava/util/List; invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v5 invoke-interface {v2, v5}, Ljava/util/List;->contains(Ljava/lang/Object;)Z move-result v2 if-eqz v2, :cond_3 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->FLIPPED_ROTATION_ORDER:Ljava/util/List; invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v0 invoke-interface {v2, v0}, Ljava/util/List;->indexOf(Ljava/lang/Object;)I move-result v0 div-int/lit8 p1, p1, 0x5a add-int/2addr p1, v0 rem-int/2addr p1, v4 if-gez p1, :cond_2 const/4 v3, 0x4 :cond_2 add-int/2addr p1, v3 sget-object v0, Landroidx/exifinterface/media/ExifInterface;->FLIPPED_ROTATION_ORDER:Ljava/util/List; invoke-interface {v0, p1}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object p1 check-cast p1, Ljava/lang/Integer; invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I move-result v3 :cond_3 :goto_0 invoke-static {v3}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; move-result-object p1 invoke-virtual {p0, v1, p1}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V return-void :cond_4 new-instance p1, Ljava/lang/IllegalArgumentException; const-string v0, "degree should be a multiple of 90" invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 .end method .method public saveAttributes()V .locals 8 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation invoke-direct {p0}, Landroidx/exifinterface/media/ExifInterface;->isSupportedFormatForSavingAttributes()Z move-result v0 if-eqz v0, :cond_c iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; if-nez v0, :cond_1 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; if-eqz v0, :cond_0 goto :goto_0 :cond_0 new-instance v0, Ljava/io/IOException; const-string v1, "ExifInterface does not support saving attributes for the current input." invoke-direct {v0, v1}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v0 :cond_1 :goto_0 const/4 v0, 0x1 iput-boolean v0, p0, Landroidx/exifinterface/media/ExifInterface;->mModified:Z invoke-virtual {p0}, Landroidx/exifinterface/media/ExifInterface;->getThumbnail()[B move-result-object v0 iput-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailBytes:[B iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; const/4 v1, 0x0 if-eqz v0, :cond_2 new-instance v0, Ljava/io/File; iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; invoke-direct {v0, v2}, Ljava/io/File;->(Ljava/lang/String;)V goto :goto_1 :cond_2 move-object v0, v1 :goto_1 :try_start_0 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; const-wide/16 v3, 0x0 if-eqz v2, :cond_4 new-instance v2, Ljava/io/File; new-instance v5, Ljava/lang/StringBuilder; invoke-direct {v5}, Ljava/lang/StringBuilder;->()V iget-object v6, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v6, ".tmp" invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v5 invoke-direct {v2, v5}, Ljava/io/File;->(Ljava/lang/String;)V invoke-virtual {v0, v2}, Ljava/io/File;->renameTo(Ljava/io/File;)Z move-result v5 if-eqz v5, :cond_3 move-object v5, v1 goto :goto_4 :cond_3 new-instance v0, Ljava/io/IOException; new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;->()V const-string v4, "Couldn\'t rename to " invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; move-result-object v2 invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v0 :cond_4 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; if-eqz v2, :cond_5 const-string v2, "temp" const-string v5, "tmp" invoke-static {v2, v5}, Ljava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File; move-result-object v2 iget-object v5, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; sget v6, Landroid/system/OsConstants;->SEEK_SET:I invoke-static {v5, v3, v4, v6}, Landroid/system/Os;->lseek(Ljava/io/FileDescriptor;JI)J new-instance v5, Ljava/io/FileInputStream; iget-object v6, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; invoke-direct {v5, v6}, Ljava/io/FileInputStream;->(Ljava/io/FileDescriptor;)V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_5 .catchall {:try_start_0 .. :try_end_0} :catchall_6 :try_start_1 new-instance v6, Ljava/io/FileOutputStream; invoke-direct {v6, v2}, Ljava/io/FileOutputStream;->(Ljava/io/File;)V :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1 .catchall {:try_start_1 .. :try_end_1} :catchall_1 :try_start_2 invoke-static {v5, v6}, Landroidx/exifinterface/media/ExifInterface;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;)I :try_end_2 .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_0 .catchall {:try_start_2 .. :try_end_2} :catchall_0 goto :goto_5 :catchall_0 move-exception v0 goto :goto_2 :catch_0 move-exception v0 goto :goto_3 :catchall_1 move-exception v0 move-object v6, v1 :goto_2 move-object v1, v5 goto/16 :goto_d :catch_1 move-exception v0 move-object v6, v1 :goto_3 move-object v1, v5 goto/16 :goto_c :cond_5 move-object v2, v1 move-object v5, v2 :goto_4 move-object v6, v5 :goto_5 invoke-static {v5}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V invoke-static {v6}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V :try_start_3 new-instance v5, Ljava/io/FileInputStream; invoke-direct {v5, v2}, Ljava/io/FileInputStream;->(Ljava/io/File;)V iget-object v6, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; if-eqz v6, :cond_6 new-instance v3, Ljava/io/FileOutputStream; iget-object v4, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; invoke-direct {v3, v4}, Ljava/io/FileOutputStream;->(Ljava/lang/String;)V goto :goto_6 :cond_6 iget-object v6, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; if-eqz v6, :cond_7 iget-object v6, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; sget v7, Landroid/system/OsConstants;->SEEK_SET:I invoke-static {v6, v3, v4, v7}, Landroid/system/Os;->lseek(Ljava/io/FileDescriptor;JI)J new-instance v3, Ljava/io/FileOutputStream; iget-object v4, p0, Landroidx/exifinterface/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor; invoke-direct {v3, v4}, Ljava/io/FileOutputStream;->(Ljava/io/FileDescriptor;)V goto :goto_6 :cond_7 move-object v3, v1 :goto_6 new-instance v4, Ljava/io/BufferedInputStream; invoke-direct {v4, v5}, Ljava/io/BufferedInputStream;->(Ljava/io/InputStream;)V :try_end_3 .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_3} :catch_4 .catchall {:try_start_3 .. :try_end_3} :catchall_4 :try_start_4 new-instance v5, Ljava/io/BufferedOutputStream; invoke-direct {v5, v3}, Ljava/io/BufferedOutputStream;->(Ljava/io/OutputStream;)V :try_end_4 .catch Ljava/lang/Exception; {:try_start_4 .. :try_end_4} :catch_3 .catchall {:try_start_4 .. :try_end_4} :catchall_3 :try_start_5 iget v3, p0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I const/4 v6, 0x4 if-ne v3, v6, :cond_8 invoke-direct {p0, v4, v5}, Landroidx/exifinterface/media/ExifInterface;->saveJpegAttributes(Ljava/io/InputStream;Ljava/io/OutputStream;)V goto :goto_7 :cond_8 iget v3, p0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I const/16 v6, 0xd if-ne v3, v6, :cond_9 invoke-direct {p0, v4, v5}, Landroidx/exifinterface/media/ExifInterface;->savePngAttributes(Ljava/io/InputStream;Ljava/io/OutputStream;)V goto :goto_7 :cond_9 iget v3, p0, Landroidx/exifinterface/media/ExifInterface;->mMimeType:I const/16 v6, 0xe if-ne v3, v6, :cond_a invoke-direct {p0, v4, v5}, Landroidx/exifinterface/media/ExifInterface;->saveWebpAttributes(Ljava/io/InputStream;Ljava/io/OutputStream;)V :try_end_5 .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_2 .catchall {:try_start_5 .. :try_end_5} :catchall_2 :cond_a :goto_7 invoke-static {v4}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V invoke-static {v5}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V invoke-virtual {v2}, Ljava/io/File;->delete()Z iput-object v1, p0, Landroidx/exifinterface/media/ExifInterface;->mThumbnailBytes:[B return-void :catchall_2 move-exception v0 goto :goto_8 :catch_2 move-exception v3 goto :goto_9 :catchall_3 move-exception v0 move-object v5, v1 :goto_8 move-object v1, v4 goto :goto_b :catch_3 move-exception v3 move-object v5, v1 :goto_9 move-object v1, v4 goto :goto_a :catchall_4 move-exception v0 move-object v5, v1 goto :goto_b :catch_4 move-exception v3 move-object v5, v1 :goto_a :try_start_6 iget-object v4, p0, Landroidx/exifinterface/media/ExifInterface;->mFilename:Ljava/lang/String; if-eqz v4, :cond_b invoke-virtual {v2, v0}, Ljava/io/File;->renameTo(Ljava/io/File;)Z move-result v4 if-nez v4, :cond_b new-instance v3, Ljava/io/IOException; new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V const-string v6, "Couldn\'t restore original file: " invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; move-result-object v0 invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {v3, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v3 :cond_b new-instance v0, Ljava/io/IOException; const-string v4, "Failed to save new file" invoke-direct {v0, v4, v3}, Ljava/io/IOException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v0 :try_end_6 .catchall {:try_start_6 .. :try_end_6} :catchall_5 :catchall_5 move-exception v0 :goto_b invoke-static {v1}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V invoke-static {v5}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V invoke-virtual {v2}, Ljava/io/File;->delete()Z throw v0 :catchall_6 move-exception v0 move-object v6, v1 goto :goto_d :catch_5 move-exception v0 move-object v6, v1 :goto_c :try_start_7 new-instance v2, Ljava/io/IOException; const-string v3, "Failed to copy original file to temp file" invoke-direct {v2, v3, v0}, Ljava/io/IOException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v2 :try_end_7 .catchall {:try_start_7 .. :try_end_7} :catchall_7 :catchall_7 move-exception v0 :goto_d invoke-static {v1}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V invoke-static {v6}, Landroidx/exifinterface/media/ExifInterface;->closeQuietly(Ljava/io/Closeable;)V throw v0 :cond_c new-instance v0, Ljava/io/IOException; const-string v1, "ExifInterface only supports saving attributes on JPEG, PNG, or WebP formats." invoke-direct {v0, v1}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v0 .end method .method public setAltitude(D)V .locals 3 const-wide/16 v0, 0x0 cmpl-double v2, p1, v0 if-ltz v2, :cond_0 const-string v0, "0" goto :goto_0 :cond_0 const-string v0, "1" :goto_0 new-instance v1, Landroidx/exifinterface/media/ExifInterface$Rational; invoke-static {p1, p2}, Ljava/lang/Math;->abs(D)D move-result-wide p1 invoke-direct {v1, p1, p2}, Landroidx/exifinterface/media/ExifInterface$Rational;->(D)V invoke-virtual {v1}, Landroidx/exifinterface/media/ExifInterface$Rational;->toString()Ljava/lang/String; move-result-object p1 const-string p2, "GPSAltitude" invoke-virtual {p0, p2, p1}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V const-string p1, "GPSAltitudeRef" invoke-virtual {p0, p1, v0}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V return-void .end method .method public setAttribute(Ljava/lang/String;Ljava/lang/String;)V .locals 13 .param p1 # Ljava/lang/String; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .param p2 # Ljava/lang/String; .annotation build Landroidx/annotation/Nullable; .end annotation .end param if-eqz p1, :cond_17 const-string v0, "ISOSpeedRatings" invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 const-string v1, "ExifInterface" if-eqz v0, :cond_1 sget-boolean p1, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz p1, :cond_0 const-string p1, "setAttribute: Replacing TAG_ISO_SPEED_RATINGS with TAG_PHOTOGRAPHIC_SENSITIVITY." invoke-static {v1, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_0 const-string p1, "PhotographicSensitivity" :cond_1 const/4 v0, 0x2 const/4 v2, 0x1 if-eqz p2, :cond_4 sget-object v3, Landroidx/exifinterface/media/ExifInterface;->sTagSetForCompatibility:Ljava/util/HashSet; invoke-virtual {v3, p1}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z move-result v3 if-eqz v3, :cond_4 const-string v3, "GPSTimeStamp" invoke-virtual {p1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v3 const-string v4, " : " const-string v5, "Invalid value for " if-eqz v3, :cond_3 sget-object v3, Landroidx/exifinterface/media/ExifInterface;->sGpsTimestampPattern:Ljava/util/regex/Pattern; invoke-virtual {v3, p2}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; move-result-object v3 invoke-virtual {v3}, Ljava/util/regex/Matcher;->find()Z move-result v6 if-nez v6, :cond_2 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v1, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I return-void :cond_2 new-instance p2, Ljava/lang/StringBuilder; invoke-direct {p2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v3, v2}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String; move-result-object v4 invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v4 invoke-virtual {p2, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; const-string v4, "/1," invoke-virtual {p2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3, v0}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String; move-result-object v5 invoke-static {v5}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v5 invoke-virtual {p2, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; invoke-virtual {p2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const/4 v4, 0x3 invoke-virtual {v3, v4}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String; move-result-object v3 invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v3 invoke-virtual {p2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; const-string v3, "/1" invoke-virtual {p2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p2 goto :goto_0 :cond_3 :try_start_0 invoke-static {p2}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v6 new-instance v3, Landroidx/exifinterface/media/ExifInterface$Rational; invoke-direct {v3, v6, v7}, Landroidx/exifinterface/media/ExifInterface$Rational;->(D)V invoke-virtual {v3}, Landroidx/exifinterface/media/ExifInterface$Rational;->toString()Ljava/lang/String; move-result-object p2 :try_end_0 .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :catch_0 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v1, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I return-void :cond_4 :goto_0 const/4 v3, 0x0 const/4 v4, 0x0 :goto_1 sget-object v5, Landroidx/exifinterface/media/ExifInterface;->EXIF_TAGS:[[Landroidx/exifinterface/media/ExifInterface$ExifTag; array-length v5, v5 if-ge v4, v5, :cond_16 const/4 v5, 0x4 if-ne v4, v5, :cond_5 iget-boolean v5, p0, Landroidx/exifinterface/media/ExifInterface;->mHasThumbnail:Z if-nez v5, :cond_5 goto/16 :goto_d :cond_5 sget-object v5, Landroidx/exifinterface/media/ExifInterface;->sExifTagMapsForWriting:[Ljava/util/HashMap; aget-object v5, v5, v4 invoke-virtual {v5, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v5 check-cast v5, Landroidx/exifinterface/media/ExifInterface$ExifTag; if-eqz v5, :cond_15 if-nez p2, :cond_6 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, v4 invoke-virtual {v0, p1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; goto/16 :goto_d :cond_6 invoke-static {p2}, Landroidx/exifinterface/media/ExifInterface;->guessDataFormat(Ljava/lang/String;)Landroid/util/Pair; move-result-object v6 iget v7, v5, Landroidx/exifinterface/media/ExifInterface$ExifTag;->primaryFormat:I iget-object v8, v6, Landroid/util/Pair;->first:Ljava/lang/Object; check-cast v8, Ljava/lang/Integer; invoke-virtual {v8}, Ljava/lang/Integer;->intValue()I move-result v8 const/4 v9, -0x1 if-eq v7, v8, :cond_e iget v7, v5, Landroidx/exifinterface/media/ExifInterface$ExifTag;->primaryFormat:I iget-object v8, v6, Landroid/util/Pair;->second:Ljava/lang/Object; check-cast v8, Ljava/lang/Integer; invoke-virtual {v8}, Ljava/lang/Integer;->intValue()I move-result v8 if-ne v7, v8, :cond_7 goto/16 :goto_5 :cond_7 iget v7, v5, Landroidx/exifinterface/media/ExifInterface$ExifTag;->secondaryFormat:I if-eq v7, v9, :cond_9 iget-object v8, v6, Landroid/util/Pair;->first:Ljava/lang/Object; check-cast v8, Ljava/lang/Integer; invoke-virtual {v8}, Ljava/lang/Integer;->intValue()I move-result v8 if-eq v7, v8, :cond_8 iget v7, v5, Landroidx/exifinterface/media/ExifInterface$ExifTag;->secondaryFormat:I iget-object v8, v6, Landroid/util/Pair;->second:Ljava/lang/Object; check-cast v8, Ljava/lang/Integer; invoke-virtual {v8}, Ljava/lang/Integer;->intValue()I move-result v8 if-ne v7, v8, :cond_9 :cond_8 iget v0, v5, Landroidx/exifinterface/media/ExifInterface$ExifTag;->secondaryFormat:I goto/16 :goto_6 :cond_9 iget v7, v5, Landroidx/exifinterface/media/ExifInterface$ExifTag;->primaryFormat:I if-eq v7, v2, :cond_d const/4 v8, 0x7 if-eq v7, v8, :cond_d if-ne v7, v0, :cond_a goto/16 :goto_4 :cond_a sget-boolean v0, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v0, :cond_15 const-string v0, "Given tag (" const-string v2, ") value didn\'t match with one of expected formats: " invoke-static {v0, p1, v2}, Lf/e/b/a/a;->K(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->IFD_FORMAT_NAMES:[Ljava/lang/String; iget v3, v5, Landroidx/exifinterface/media/ExifInterface$ExifTag;->primaryFormat:I aget-object v2, v2, v3 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget v2, v5, Landroidx/exifinterface/media/ExifInterface$ExifTag;->secondaryFormat:I const-string v3, "" const-string v7, ", " if-ne v2, v9, :cond_b move-object v2, v3 goto :goto_2 :cond_b invoke-static {v7}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 sget-object v8, Landroidx/exifinterface/media/ExifInterface;->IFD_FORMAT_NAMES:[Ljava/lang/String; iget v5, v5, Landroidx/exifinterface/media/ExifInterface$ExifTag;->secondaryFormat:I aget-object v5, v8, v5 invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 :goto_2 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v2, " (guess: " invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v2, Landroidx/exifinterface/media/ExifInterface;->IFD_FORMAT_NAMES:[Ljava/lang/String; iget-object v5, v6, Landroid/util/Pair;->first:Ljava/lang/Object; check-cast v5, Ljava/lang/Integer; invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I move-result v5 aget-object v2, v2, v5 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget-object v2, v6, Landroid/util/Pair;->second:Ljava/lang/Object; check-cast v2, Ljava/lang/Integer; invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I move-result v2 if-ne v2, v9, :cond_c goto :goto_3 :cond_c invoke-static {v7}, Lf/e/b/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 sget-object v3, Landroidx/exifinterface/media/ExifInterface;->IFD_FORMAT_NAMES:[Ljava/lang/String; iget-object v5, v6, Landroid/util/Pair;->second:Ljava/lang/Object; check-cast v5, Ljava/lang/Integer; invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I move-result v5 aget-object v3, v3, v5 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v3 :goto_3 invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v2, ")" invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I goto/16 :goto_d :cond_d :goto_4 iget v0, v5, Landroidx/exifinterface/media/ExifInterface$ExifTag;->primaryFormat:I goto :goto_6 :cond_e :goto_5 iget v0, v5, Landroidx/exifinterface/media/ExifInterface$ExifTag;->primaryFormat:I :goto_6 const-string v5, "/" const-string v6, "," packed-switch v0, :pswitch_data_0 :pswitch_0 sget-boolean v2, Landroidx/exifinterface/media/ExifInterface;->DEBUG:Z if-eqz v2, :cond_15 const-string v2, "Data format isn\'t one of expected formats: " invoke-static {v2, v0, v1}, Lf/e/b/a/a;->Q(Ljava/lang/String;ILjava/lang/String;)V goto/16 :goto_d :pswitch_1 invoke-virtual {p2, v6, v9}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object v0 array-length v2, v0 new-array v2, v2, [D const/4 v3, 0x0 :goto_7 array-length v5, v0 if-ge v3, v5, :cond_f aget-object v5, v0, v3 invoke-static {v5}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v5 aput-wide v5, v2, v3 add-int/lit8 v3, v3, 0x1 goto :goto_7 :cond_f iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, v4 iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v2, v3}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createDouble([DLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v2 invoke-virtual {v0, p1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto/16 :goto_d :pswitch_2 invoke-virtual {p2, v6, v9}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object v0 array-length v6, v0 new-array v6, v6, [Landroidx/exifinterface/media/ExifInterface$Rational; const/4 v7, 0x0 :goto_8 array-length v8, v0 if-ge v7, v8, :cond_10 aget-object v8, v0, v7 invoke-virtual {v8, v5, v9}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object v8 new-instance v10, Landroidx/exifinterface/media/ExifInterface$Rational; aget-object v3, v8, v3 invoke-static {v3}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v11 double-to-long v11, v11 aget-object v2, v8, v2 invoke-static {v2}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v2 double-to-long v2, v2 invoke-direct {v10, v11, v12, v2, v3}, Landroidx/exifinterface/media/ExifInterface$Rational;->(JJ)V aput-object v10, v6, v7 add-int/lit8 v7, v7, 0x1 const/4 v2, 0x1 const/4 v3, 0x0 goto :goto_8 :cond_10 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, v4 iget-object v2, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v6, v2}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createSRational([Landroidx/exifinterface/media/ExifInterface$Rational;Ljava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v2 invoke-virtual {v0, p1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto/16 :goto_d :pswitch_3 invoke-virtual {p2, v6, v9}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object v0 array-length v2, v0 new-array v2, v2, [I const/4 v3, 0x0 :goto_9 array-length v5, v0 if-ge v3, v5, :cond_11 aget-object v5, v0, v3 invoke-static {v5}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v5 aput v5, v2, v3 add-int/lit8 v3, v3, 0x1 goto :goto_9 :cond_11 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, v4 iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v2, v3}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createSLong([ILjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v2 invoke-virtual {v0, p1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto/16 :goto_d :pswitch_4 invoke-virtual {p2, v6, v9}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object v0 array-length v2, v0 new-array v2, v2, [Landroidx/exifinterface/media/ExifInterface$Rational; const/4 v3, 0x0 :goto_a array-length v6, v0 if-ge v3, v6, :cond_12 aget-object v6, v0, v3 invoke-virtual {v6, v5, v9}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object v6 new-instance v7, Landroidx/exifinterface/media/ExifInterface$Rational; const/4 v8, 0x0 aget-object v8, v6, v8 invoke-static {v8}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v8 double-to-long v8, v8 const/4 v10, 0x1 aget-object v6, v6, v10 invoke-static {v6}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v10 double-to-long v10, v10 invoke-direct {v7, v8, v9, v10, v11}, Landroidx/exifinterface/media/ExifInterface$Rational;->(JJ)V aput-object v7, v2, v3 add-int/lit8 v3, v3, 0x1 const/4 v9, -0x1 goto :goto_a :cond_12 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, v4 iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v2, v3}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createURational([Landroidx/exifinterface/media/ExifInterface$Rational;Ljava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v2 invoke-virtual {v0, p1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_d :pswitch_5 const/4 v0, -0x1 invoke-virtual {p2, v6, v0}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object v0 array-length v2, v0 new-array v2, v2, [J const/4 v3, 0x0 :goto_b array-length v5, v0 if-ge v3, v5, :cond_13 aget-object v5, v0, v3 invoke-static {v5}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J move-result-wide v5 aput-wide v5, v2, v3 add-int/lit8 v3, v3, 0x1 goto :goto_b :cond_13 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, v4 iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v2, v3}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createULong([JLjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v2 invoke-virtual {v0, p1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_d :pswitch_6 const/4 v0, -0x1 invoke-virtual {p2, v6, v0}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object v0 array-length v2, v0 new-array v2, v2, [I const/4 v3, 0x0 :goto_c array-length v5, v0 if-ge v3, v5, :cond_14 aget-object v5, v0, v3 invoke-static {v5}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v5 aput v5, v2, v3 add-int/lit8 v3, v3, 0x1 goto :goto_c :cond_14 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, v4 iget-object v3, p0, Landroidx/exifinterface/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder; invoke-static {v2, v3}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createUShort([ILjava/nio/ByteOrder;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v2 invoke-virtual {v0, p1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_d :pswitch_7 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, v4 invoke-static {p2}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createString(Ljava/lang/String;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v2 invoke-virtual {v0, p1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_d :pswitch_8 iget-object v0, p0, Landroidx/exifinterface/media/ExifInterface;->mAttributes:[Ljava/util/HashMap; aget-object v0, v0, v4 invoke-static {p2}, Landroidx/exifinterface/media/ExifInterface$ExifAttribute;->createByte(Ljava/lang/String;)Landroidx/exifinterface/media/ExifInterface$ExifAttribute; move-result-object v2 invoke-virtual {v0, p1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_15 :goto_d add-int/lit8 v4, v4, 0x1 const/4 v0, 0x2 const/4 v2, 0x1 const/4 v3, 0x0 goto/16 :goto_1 :cond_16 return-void :cond_17 new-instance p1, Ljava/lang/NullPointerException; const-string p2, "tag shouldn\'t be null" invoke-direct {p1, p2}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 nop :pswitch_data_0 .packed-switch 0x1 :pswitch_8 :pswitch_7 :pswitch_6 :pswitch_5 :pswitch_4 :pswitch_0 :pswitch_7 :pswitch_0 :pswitch_3 :pswitch_2 :pswitch_0 :pswitch_1 .end packed-switch .end method .method public setDateTime(J)V .locals 4 .annotation build Landroidx/annotation/RestrictTo; value = { .enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope; } .end annotation const-wide/16 v0, 0x3e8 rem-long v0, p1, v0 sget-object v2, Landroidx/exifinterface/media/ExifInterface;->sFormatter:Ljava/text/SimpleDateFormat; new-instance v3, Ljava/util/Date; invoke-direct {v3, p1, p2}, Ljava/util/Date;->(J)V invoke-virtual {v2, v3}, Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;)Ljava/lang/String; move-result-object p1 const-string p2, "DateTime" invoke-virtual {p0, p2, p1}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V invoke-static {v0, v1}, Ljava/lang/Long;->toString(J)Ljava/lang/String; move-result-object p1 const-string p2, "SubSecTime" invoke-virtual {p0, p2, p1}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V return-void .end method .method public setGpsInfo(Landroid/location/Location;)V .locals 5 if-nez p1, :cond_0 return-void :cond_0 invoke-virtual {p1}, Landroid/location/Location;->getProvider()Ljava/lang/String; move-result-object v0 const-string v1, "GPSProcessingMethod" invoke-virtual {p0, v1, v0}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V invoke-virtual {p1}, Landroid/location/Location;->getLatitude()D move-result-wide v0 invoke-virtual {p1}, Landroid/location/Location;->getLongitude()D move-result-wide v2 invoke-virtual {p0, v0, v1, v2, v3}, Landroidx/exifinterface/media/ExifInterface;->setLatLong(DD)V invoke-virtual {p1}, Landroid/location/Location;->getAltitude()D move-result-wide v0 invoke-virtual {p0, v0, v1}, Landroidx/exifinterface/media/ExifInterface;->setAltitude(D)V const-string v0, "GPSSpeedRef" const-string v1, "K" invoke-virtual {p0, v0, v1}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Landroidx/exifinterface/media/ExifInterface$Rational; invoke-virtual {p1}, Landroid/location/Location;->getSpeed()F move-result v1 sget-object v2, Ljava/util/concurrent/TimeUnit;->HOURS:Ljava/util/concurrent/TimeUnit; const-wide/16 v3, 0x1 invoke-virtual {v2, v3, v4}, Ljava/util/concurrent/TimeUnit;->toSeconds(J)J move-result-wide v2 long-to-float v2, v2 mul-float v1, v1, v2 const/high16 v2, 0x447a0000 # 1000.0f div-float/2addr v1, v2 float-to-double v1, v1 invoke-direct {v0, v1, v2}, Landroidx/exifinterface/media/ExifInterface$Rational;->(D)V invoke-virtual {v0}, Landroidx/exifinterface/media/ExifInterface$Rational;->toString()Ljava/lang/String; move-result-object v0 const-string v1, "GPSSpeed" invoke-virtual {p0, v1, v0}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V sget-object v0, Landroidx/exifinterface/media/ExifInterface;->sFormatter:Ljava/text/SimpleDateFormat; new-instance v1, Ljava/util/Date; invoke-virtual {p1}, Landroid/location/Location;->getTime()J move-result-wide v2 invoke-direct {v1, v2, v3}, Ljava/util/Date;->(J)V invoke-virtual {v0, v1}, Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;)Ljava/lang/String; move-result-object p1 const/4 v0, -0x1 const-string v1, "\\s+" invoke-virtual {p1, v1, v0}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object p1 const/4 v0, 0x0 aget-object v0, p1, v0 const-string v1, "GPSDateStamp" invoke-virtual {p0, v1, v0}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V const/4 v0, 0x1 aget-object p1, p1, v0 const-string v0, "GPSTimeStamp" invoke-virtual {p0, v0, p1}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V return-void .end method .method public setLatLong(DD)V .locals 4 const-string v0, " is not valid." const-wide v1, -0x3fa9800000000000L # -90.0 cmpg-double v3, p1, v1 if-ltz v3, :cond_3 const-wide v1, 0x4056800000000000L # 90.0 cmpl-double v3, p1, v1 if-gtz v3, :cond_3 invoke-static {p1, p2}, Ljava/lang/Double;->isNaN(D)Z move-result v1 if-nez v1, :cond_3 const-wide v1, -0x3f99800000000000L # -180.0 cmpg-double v3, p3, v1 if-ltz v3, :cond_2 const-wide v1, 0x4066800000000000L # 180.0 cmpl-double v3, p3, v1 if-gtz v3, :cond_2 invoke-static {p3, p4}, Ljava/lang/Double;->isNaN(D)Z move-result v1 if-nez v1, :cond_2 const-wide/16 v0, 0x0 cmpl-double v2, p1, v0 if-ltz v2, :cond_0 const-string v2, "N" goto :goto_0 :cond_0 const-string v2, "S" :goto_0 const-string v3, "GPSLatitudeRef" invoke-virtual {p0, v3, v2}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V invoke-static {p1, p2}, Ljava/lang/Math;->abs(D)D move-result-wide p1 invoke-direct {p0, p1, p2}, Landroidx/exifinterface/media/ExifInterface;->convertDecimalDegree(D)Ljava/lang/String; move-result-object p1 const-string p2, "GPSLatitude" invoke-virtual {p0, p2, p1}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V cmpl-double p1, p3, v0 if-ltz p1, :cond_1 const-string p1, "E" goto :goto_1 :cond_1 const-string p1, "W" :goto_1 const-string p2, "GPSLongitudeRef" invoke-virtual {p0, p2, p1}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V invoke-static {p3, p4}, Ljava/lang/Math;->abs(D)D move-result-wide p1 invoke-direct {p0, p1, p2}, Landroidx/exifinterface/media/ExifInterface;->convertDecimalDegree(D)Ljava/lang/String; move-result-object p1 const-string p2, "GPSLongitude" invoke-virtual {p0, p2, p1}, Landroidx/exifinterface/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V return-void :cond_2 new-instance p1, Ljava/lang/IllegalArgumentException; new-instance p2, Ljava/lang/StringBuilder; invoke-direct {p2}, Ljava/lang/StringBuilder;->()V const-string v1, "Longitude value " invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p2, p3, p4}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder; invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p2 invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 :cond_3 new-instance p3, Ljava/lang/IllegalArgumentException; new-instance p4, Ljava/lang/StringBuilder; invoke-direct {p4}, Ljava/lang/StringBuilder;->()V const-string v1, "Latitude value " invoke-virtual {p4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p4, p1, p2}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder; invoke-virtual {p4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {p3, p1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p3 .end method