回到 file_show_store,在这个信息标签视图里面我们还可以显示一些其它的数据,比如处理照片用的软件,拍摄日期等等。
先复制一份这个 lens 计算属性,修改一下,选中几个要修改的地方,可以统一修改一下,名字是 software。
声明一个 software,值是 metadata 里的 software 。 如果它的值不是 null,让 value 等于 software。再把 FileMetadataListItem 的 title 设置成处理软件。
createDate
复制一份这个计算属性,选中几个要修改的地方,改成 createDate,拍摄日期。 把这个 FileMetadataListItem 的 title 设置成拍摄日期。
modifyDate
再复制一份这个拍摄日期,选中要修改的地方,改成 modifyDate,修改日期。 title 的值改成修改日期。
size
复制一份这个计算属性,下面可以再定义一个 size,表示照片的原始尺寸。 在它里面声明一个 width ,值是 file? 里的 width ,下面再定义一个 height,表示照片的高度,值是 file? 里的 height。
判断一下,如果 width 不等于 null ,并且 height 也不等于 null,声明一个 value ,它的值是个字符串,里面先是 width ,乘号,然后是 height 。 再把这个 title 设置成 原图尺寸。
exposureProgram
复制一份上面这个 modifyDate, 选中几个要修改的地方,统一改一下,名字是 exposureProgram,曝光模式。
如果 metadata 里的 exposureProgram 不是 null,可以声明一个 String 类型的值,名字是 value。
下面用一组 switch ,先设置一下默认的情况,把这个 value 设置成 未定义。 这里检查的是 exposureProgram 的值,添加一种情况,如果它的值是 1 ,就让这个 value 的值等于手动模式。
复制几份这个 case , 分别再修改一下,如果 exposureProgram 的值是 2, value 的值就是正常模式,如果它的值是 3 ,value 的值是光圈优先,如果它的值是 4 , value 的值就是快门优先。如果它的值是 5,value 的值是 创意模式,如果是 6 ,value 就是运动模式,如果是 7 ,value 就是人像模式,如果是 8 ,value 就是风景模式。
修改一下 title 的值,设置成曝光模式。
misc
找到上面定义的 kit 这个计算属性,复制一份,再定义一个 misc 。在它的 items 里面,判断一下 software 不等于 null,满足条件就添加一个 software。
复制一份,判断 size ,添加一个 size,再检查 createDate ,添加一个 createDate,然后检查 modifyDate ,添加一个 modifyDate,最后还有一个 exposureProgram。
getFileById
找到 getFileById 这个方法,在这个 cache 里面,添加一个 'misc' ,值是 misc。
post_bottom_sheet_file_metadata
打开 post_bottom_sheet_file_metadata ,复制一份这个 kit ,再声明一个 misc,值是 cache ,value 里的 misc 。
然后在 Column 的 children 里面,再判断一下 misc,不等于 null 添加一个 separator,还有一个 FileMetadataList,提供的列表数据是 misc。
测试
重新启动一下应用,再打开一个内容项目,然后打开内容底板。你会发现,这次在信息这个标签下面,会显示照片的处理软件,原图尺寸,拍摄日期这些数据。
注意现在拍摄日期还有修改日期都是数字,这个是时间戳。下面我们要想办法格式化一下它的显示。