From f440d30e427389effe68000c4af78a1e20316519 Mon Sep 17 00:00:00 2001 From: "David A. Velasco" Date: Thu, 24 Jan 2013 13:34:27 +0100 Subject: [PATCH] Code ready to provide different icons for well-known MIME types --- res/drawable-hdpi/file_doc.png | Bin 0 -> 1139 bytes res/drawable-hdpi/file_image.png | Bin 0 -> 1139 bytes res/drawable-hdpi/file_movie.png | Bin 0 -> 1139 bytes res/drawable-hdpi/file_pdf.png | Bin 0 -> 1139 bytes res/drawable-hdpi/file_sound.png | Bin 0 -> 1139 bytes res/drawable-hdpi/file_zip.png | Bin 0 -> 1139 bytes res/drawable-ldpi/file_doc.png | Bin 0 -> 600 bytes res/drawable-ldpi/file_image.png | Bin 0 -> 600 bytes res/drawable-ldpi/file_movie.png | Bin 0 -> 600 bytes res/drawable-ldpi/file_pdf.png | Bin 0 -> 600 bytes res/drawable-ldpi/file_sound.png | Bin 0 -> 600 bytes res/drawable-ldpi/file_zip.png | Bin 0 -> 600 bytes res/drawable-mdpi/file_doc.png | Bin 0 -> 684 bytes res/drawable-mdpi/file_image.png | Bin 0 -> 684 bytes res/drawable-mdpi/file_movie.png | Bin 0 -> 684 bytes res/drawable-mdpi/file_pdf.png | Bin 0 -> 684 bytes res/drawable-mdpi/file_sound.png | Bin 0 -> 684 bytes res/drawable-mdpi/file_zip.png | Bin 0 -> 684 bytes src/com/owncloud/android/DisplayUtils.java | 86 +++++++++++++++++++-- .../android/ui/adapter/FileListListAdapter.java | 6 +- .../android/ui/fragment/FileDetailFragment.java | 13 +++- 21 files changed, 91 insertions(+), 14 deletions(-) create mode 100644 res/drawable-hdpi/file_doc.png create mode 100644 res/drawable-hdpi/file_image.png create mode 100644 res/drawable-hdpi/file_movie.png create mode 100644 res/drawable-hdpi/file_pdf.png create mode 100644 res/drawable-hdpi/file_sound.png create mode 100644 res/drawable-hdpi/file_zip.png create mode 100644 res/drawable-ldpi/file_doc.png create mode 100644 res/drawable-ldpi/file_image.png create mode 100644 res/drawable-ldpi/file_movie.png create mode 100644 res/drawable-ldpi/file_pdf.png create mode 100644 res/drawable-ldpi/file_sound.png create mode 100644 res/drawable-ldpi/file_zip.png create mode 100644 res/drawable-mdpi/file_doc.png create mode 100644 res/drawable-mdpi/file_image.png create mode 100644 res/drawable-mdpi/file_movie.png create mode 100644 res/drawable-mdpi/file_pdf.png create mode 100644 res/drawable-mdpi/file_sound.png create mode 100644 res/drawable-mdpi/file_zip.png diff --git a/res/drawable-hdpi/file_doc.png b/res/drawable-hdpi/file_doc.png new file mode 100644 index 0000000000000000000000000000000000000000..bf4b83244aab9d7b63ed70c0dad3f62fd1ca7cee GIT binary patch literal 1139 zcmV-(1dRKMP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iyS` z3p*MtzpkVJ00Z+$L_t(|+U;D;Ya2%#eej<3uRZk8UTkvmJvTf41A1tCv7r=-4=%>7T}m;sQd_vSEFl!_P7am9 zEphZ=?T6%fum_FyH#7U@_ug-I7Z#9^kdO!tuSRM7sz7^9YDnU-bgr>CbS*LB_ce~b`vi!mk~$Jz4TgEUQ3!lbKM zEOu>teB4eZlW+acC+{kX@<|XT9Xc?^*x=ycKqiw(6GF}xk$bADe(b9U0lMU0!a2mneX)Cq*AGO zOQlk&SS*%3%^*tsQRnN%nV+BkwNc#K+S)~XC6di%2X}UMe)E)|AhEEp@cShQLL?H2 z3=9mU4-XG}Q(}$ax^BbyHT$S0^i^zse?Qe~%=-Fzya^v8o=VKG49ewlnRq<@fKs}0 zbaYf~lsOw48+}VlOYe7TeqG@~gpgSw#B3swIJ;wS6tX)pG4VlQ1o`Pf?T!_A2Khx0 z=bW`VRy#3WYtp7^TB@o>T8T-eQtxzZfx=D@V~pFjJ$!O<@{i*<4POfC{~{JBL4NOp zIOjYbk0*jypssi(9V9}3FBUYe##Q#Z2X&>yt_nd?Vv-=~LDGYy#H7Te#3VsiHG`xF zNrL3vy!0R`FAhwL2rEWMNB?TdO4{jM2yth7d;9+8=4Qfm-L6X|(=@9yGc!3&(;j+85P;ck z_ZLFQBU$DH+6NVT;Mxmb67(a0pV8ru8Tp960X%Ew#8>r8=8tPBU<3dF002ovPDHLk FV1f_U52OG9 literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/file_image.png b/res/drawable-hdpi/file_image.png new file mode 100644 index 0000000000000000000000000000000000000000..bf4b83244aab9d7b63ed70c0dad3f62fd1ca7cee GIT binary patch literal 1139 zcmV-(1dRKMP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iyS` z3p*MtzpkVJ00Z+$L_t(|+U;D;Ya2%#eej<3uRZk8UTkvmJvTf41A1tCv7r=-4=%>7T}m;sQd_vSEFl!_P7am9 zEphZ=?T6%fum_FyH#7U@_ug-I7Z#9^kdO!tuSRM7sz7^9YDnU-bgr>CbS*LB_ce~b`vi!mk~$Jz4TgEUQ3!lbKM zEOu>teB4eZlW+acC+{kX@<|XT9Xc?^*x=ycKqiw(6GF}xk$bADe(b9U0lMU0!a2mneX)Cq*AGO zOQlk&SS*%3%^*tsQRnN%nV+BkwNc#K+S)~XC6di%2X}UMe)E)|AhEEp@cShQLL?H2 z3=9mU4-XG}Q(}$ax^BbyHT$S0^i^zse?Qe~%=-Fzya^v8o=VKG49ewlnRq<@fKs}0 zbaYf~lsOw48+}VlOYe7TeqG@~gpgSw#B3swIJ;wS6tX)pG4VlQ1o`Pf?T!_A2Khx0 z=bW`VRy#3WYtp7^TB@o>T8T-eQtxzZfx=D@V~pFjJ$!O<@{i*<4POfC{~{JBL4NOp zIOjYbk0*jypssi(9V9}3FBUYe##Q#Z2X&>yt_nd?Vv-=~LDGYy#H7Te#3VsiHG`xF zNrL3vy!0R`FAhwL2rEWMNB?TdO4{jM2yth7d;9+8=4Qfm-L6X|(=@9yGc!3&(;j+85P;ck z_ZLFQBU$DH+6NVT;Mxmb67(a0pV8ru8Tp960X%Ew#8>r8=8tPBU<3dF002ovPDHLk FV1f_U52OG9 literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/file_movie.png b/res/drawable-hdpi/file_movie.png new file mode 100644 index 0000000000000000000000000000000000000000..bf4b83244aab9d7b63ed70c0dad3f62fd1ca7cee GIT binary patch literal 1139 zcmV-(1dRKMP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iyS` z3p*MtzpkVJ00Z+$L_t(|+U;D;Ya2%#eej<3uRZk8UTkvmJvTf41A1tCv7r=-4=%>7T}m;sQd_vSEFl!_P7am9 zEphZ=?T6%fum_FyH#7U@_ug-I7Z#9^kdO!tuSRM7sz7^9YDnU-bgr>CbS*LB_ce~b`vi!mk~$Jz4TgEUQ3!lbKM zEOu>teB4eZlW+acC+{kX@<|XT9Xc?^*x=ycKqiw(6GF}xk$bADe(b9U0lMU0!a2mneX)Cq*AGO zOQlk&SS*%3%^*tsQRnN%nV+BkwNc#K+S)~XC6di%2X}UMe)E)|AhEEp@cShQLL?H2 z3=9mU4-XG}Q(}$ax^BbyHT$S0^i^zse?Qe~%=-Fzya^v8o=VKG49ewlnRq<@fKs}0 zbaYf~lsOw48+}VlOYe7TeqG@~gpgSw#B3swIJ;wS6tX)pG4VlQ1o`Pf?T!_A2Khx0 z=bW`VRy#3WYtp7^TB@o>T8T-eQtxzZfx=D@V~pFjJ$!O<@{i*<4POfC{~{JBL4NOp zIOjYbk0*jypssi(9V9}3FBUYe##Q#Z2X&>yt_nd?Vv-=~LDGYy#H7Te#3VsiHG`xF zNrL3vy!0R`FAhwL2rEWMNB?TdO4{jM2yth7d;9+8=4Qfm-L6X|(=@9yGc!3&(;j+85P;ck z_ZLFQBU$DH+6NVT;Mxmb67(a0pV8ru8Tp960X%Ew#8>r8=8tPBU<3dF002ovPDHLk FV1f_U52OG9 literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/file_pdf.png b/res/drawable-hdpi/file_pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..bf4b83244aab9d7b63ed70c0dad3f62fd1ca7cee GIT binary patch literal 1139 zcmV-(1dRKMP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iyS` z3p*MtzpkVJ00Z+$L_t(|+U;D;Ya2%#eej<3uRZk8UTkvmJvTf41A1tCv7r=-4=%>7T}m;sQd_vSEFl!_P7am9 zEphZ=?T6%fum_FyH#7U@_ug-I7Z#9^kdO!tuSRM7sz7^9YDnU-bgr>CbS*LB_ce~b`vi!mk~$Jz4TgEUQ3!lbKM zEOu>teB4eZlW+acC+{kX@<|XT9Xc?^*x=ycKqiw(6GF}xk$bADe(b9U0lMU0!a2mneX)Cq*AGO zOQlk&SS*%3%^*tsQRnN%nV+BkwNc#K+S)~XC6di%2X}UMe)E)|AhEEp@cShQLL?H2 z3=9mU4-XG}Q(}$ax^BbyHT$S0^i^zse?Qe~%=-Fzya^v8o=VKG49ewlnRq<@fKs}0 zbaYf~lsOw48+}VlOYe7TeqG@~gpgSw#B3swIJ;wS6tX)pG4VlQ1o`Pf?T!_A2Khx0 z=bW`VRy#3WYtp7^TB@o>T8T-eQtxzZfx=D@V~pFjJ$!O<@{i*<4POfC{~{JBL4NOp zIOjYbk0*jypssi(9V9}3FBUYe##Q#Z2X&>yt_nd?Vv-=~LDGYy#H7Te#3VsiHG`xF zNrL3vy!0R`FAhwL2rEWMNB?TdO4{jM2yth7d;9+8=4Qfm-L6X|(=@9yGc!3&(;j+85P;ck z_ZLFQBU$DH+6NVT;Mxmb67(a0pV8ru8Tp960X%Ew#8>r8=8tPBU<3dF002ovPDHLk FV1f_U52OG9 literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/file_sound.png b/res/drawable-hdpi/file_sound.png new file mode 100644 index 0000000000000000000000000000000000000000..bf4b83244aab9d7b63ed70c0dad3f62fd1ca7cee GIT binary patch literal 1139 zcmV-(1dRKMP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iyS` z3p*MtzpkVJ00Z+$L_t(|+U;D;Ya2%#eej<3uRZk8UTkvmJvTf41A1tCv7r=-4=%>7T}m;sQd_vSEFl!_P7am9 zEphZ=?T6%fum_FyH#7U@_ug-I7Z#9^kdO!tuSRM7sz7^9YDnU-bgr>CbS*LB_ce~b`vi!mk~$Jz4TgEUQ3!lbKM zEOu>teB4eZlW+acC+{kX@<|XT9Xc?^*x=ycKqiw(6GF}xk$bADe(b9U0lMU0!a2mneX)Cq*AGO zOQlk&SS*%3%^*tsQRnN%nV+BkwNc#K+S)~XC6di%2X}UMe)E)|AhEEp@cShQLL?H2 z3=9mU4-XG}Q(}$ax^BbyHT$S0^i^zse?Qe~%=-Fzya^v8o=VKG49ewlnRq<@fKs}0 zbaYf~lsOw48+}VlOYe7TeqG@~gpgSw#B3swIJ;wS6tX)pG4VlQ1o`Pf?T!_A2Khx0 z=bW`VRy#3WYtp7^TB@o>T8T-eQtxzZfx=D@V~pFjJ$!O<@{i*<4POfC{~{JBL4NOp zIOjYbk0*jypssi(9V9}3FBUYe##Q#Z2X&>yt_nd?Vv-=~LDGYy#H7Te#3VsiHG`xF zNrL3vy!0R`FAhwL2rEWMNB?TdO4{jM2yth7d;9+8=4Qfm-L6X|(=@9yGc!3&(;j+85P;ck z_ZLFQBU$DH+6NVT;Mxmb67(a0pV8ru8Tp960X%Ew#8>r8=8tPBU<3dF002ovPDHLk FV1f_U52OG9 literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/file_zip.png b/res/drawable-hdpi/file_zip.png new file mode 100644 index 0000000000000000000000000000000000000000..bf4b83244aab9d7b63ed70c0dad3f62fd1ca7cee GIT binary patch literal 1139 zcmV-(1dRKMP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iyS` z3p*MtzpkVJ00Z+$L_t(|+U;D;Ya2%#eej<3uRZk8UTkvmJvTf41A1tCv7r=-4=%>7T}m;sQd_vSEFl!_P7am9 zEphZ=?T6%fum_FyH#7U@_ug-I7Z#9^kdO!tuSRM7sz7^9YDnU-bgr>CbS*LB_ce~b`vi!mk~$Jz4TgEUQ3!lbKM zEOu>teB4eZlW+acC+{kX@<|XT9Xc?^*x=ycKqiw(6GF}xk$bADe(b9U0lMU0!a2mneX)Cq*AGO zOQlk&SS*%3%^*tsQRnN%nV+BkwNc#K+S)~XC6di%2X}UMe)E)|AhEEp@cShQLL?H2 z3=9mU4-XG}Q(}$ax^BbyHT$S0^i^zse?Qe~%=-Fzya^v8o=VKG49ewlnRq<@fKs}0 zbaYf~lsOw48+}VlOYe7TeqG@~gpgSw#B3swIJ;wS6tX)pG4VlQ1o`Pf?T!_A2Khx0 z=bW`VRy#3WYtp7^TB@o>T8T-eQtxzZfx=D@V~pFjJ$!O<@{i*<4POfC{~{JBL4NOp zIOjYbk0*jypssi(9V9}3FBUYe##Q#Z2X&>yt_nd?Vv-=~LDGYy#H7Te#3VsiHG`xF zNrL3vy!0R`FAhwL2rEWMNB?TdO4{jM2yth7d;9+8=4Qfm-L6X|(=@9yGc!3&(;j+85P;ck z_ZLFQBU$DH+6NVT;Mxmb67(a0pV8ru8Tp960X%Ew#8>r8=8tPBU<3dF002ovPDHLk FV1f_U52OG9 literal 0 HcmV?d00001 diff --git a/res/drawable-ldpi/file_doc.png b/res/drawable-ldpi/file_doc.png new file mode 100644 index 0000000000000000000000000000000000000000..8cdfc4f281083857464b29dee784300939343ca9 GIT binary patch literal 600 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 SzcteU00009QXVEOHBaG zX7i~|in!?YdWYBng2CVoP180lDi#Ex&a&)7v)SytL7?5}bUFeyfKVvJYPswnonEO_ zdg3^aAHKQ=h`n~ZEnoo%hr_HM`l(i{m3%(`IDEVUfPE|gkw^p!Kp+sP#A2~K^gAAp zuggIci^ZpIx7$Z@0%?u(#H7Mg2+Im55{azO=WCA2>2NsaZ4kL!E)NhJ@bkXWXq?IA zG${qZ(cX&xDklPfv7X`cmfdb&QMCgmlL?p1Z=szJb8e0rI0xbP`EB*E}JKe)6-qf!22Kj@v7n#*dnPN_PDuw8vAYRBnxGE#k+OlBsXPOpudQ*RHT z0*?U#$-*u%gopR@*a2`!2#$A4tJNA@+Q65Bgj6i!&ZX;z%VuCJjr!&O zt7->u1r#~G3V}1HVaKSh02r?l*yHC`MkMr0B=qZdfOvp-fOz0Pcz{TV01yul4-fzX zKmZ7U3ILbO^}=!7tWiZW4D%wpxJnX;qIhKVN`nfv|KyigDZqolb;{2FD!>5jJ*qLT SzcteU00009QXVEOHBaG zX7i~|in!?YdWYBng2CVoP180lDi#Ex&a&)7v)SytL7?5}bUFeyfKVvJYPswnonEO_ zdg3^aAHKQ=h`n~ZEnoo%hr_HM`l(i{m3%(`IDEVUfPE|gkw^p!Kp+sP#A2~K^gAAp zuggIci^ZpIx7$Z@0%?u(#H7Mg2+Im55{azO=WCA2>2NsaZ4kL!E)NhJ@bkXWXq?IA zG${qZ(cX&xDklPfv7X`cmfdb&QMCgmlL?p1Z=szJb8e0rI0xbP`EB*E}JKe)6-qf!22Kj@v7n#*dnPN_PDuw8vAYRBnxGE#k+OlBsXPOpudQ*RHT z0*?U#$-*u%gopR@*a2`!2#$A4tJNA@+Q65Bgj6i!&ZX;z%VuCJjr!&O zt7->u1r#~G3V}1HVaKSh02r?l*yHC`MkMr0B=qZdfOvp-fOz0Pcz{TV01yul4-fzX zKmZ7U3ILbO^}=!7tWiZW4D%wpxJnX;qIhKVN`nfv|KyigDZqolb;{2FD!>5jJ*qLT SzcteU00009QXVEOHBaG zX7i~|in!?YdWYBng2CVoP180lDi#Ex&a&)7v)SytL7?5}bUFeyfKVvJYPswnonEO_ zdg3^aAHKQ=h`n~ZEnoo%hr_HM`l(i{m3%(`IDEVUfPE|gkw^p!Kp+sP#A2~K^gAAp zuggIci^ZpIx7$Z@0%?u(#H7Mg2+Im55{azO=WCA2>2NsaZ4kL!E)NhJ@bkXWXq?IA zG${qZ(cX&xDklPfv7X`cmfdb&QMCgmlL?p1Z=szJb8e0rI0xbP`EB*E}JKe)6-qf!22Kj@v7n#*dnPN_PDuw8vAYRBnxGE#k+OlBsXPOpudQ*RHT z0*?U#$-*u%gopR@*a2`!2#$A4tJNA@+Q65Bgj6i!&ZX;z%VuCJjr!&O zt7->u1r#~G3V}1HVaKSh02r?l*yHC`MkMr0B=qZdfOvp-fOz0Pcz{TV01yul4-fzX zKmZ7U3ILbO^}=!7tWiZW4D%wpxJnX;qIhKVN`nfv|KyigDZqolb;{2FD!>5jJ*qLT SzcteU00009QXVEOHBaG zX7i~|in!?YdWYBng2CVoP180lDi#Ex&a&)7v)SytL7?5}bUFeyfKVvJYPswnonEO_ zdg3^aAHKQ=h`n~ZEnoo%hr_HM`l(i{m3%(`IDEVUfPE|gkw^p!Kp+sP#A2~K^gAAp zuggIci^ZpIx7$Z@0%?u(#H7Mg2+Im55{azO=WCA2>2NsaZ4kL!E)NhJ@bkXWXq?IA zG${qZ(cX&xDklPfv7X`cmfdb&QMCgmlL?p1Z=szJb8e0rI0xbP`EB*E}JKe)6-qf!22Kj@v7n#*dnPN_PDuw8vAYRBnxGE#k+OlBsXPOpudQ*RHT z0*?U#$-*u%gopR@*a2`!2#$A4tJNA@+Q65Bgj6i!&ZX;z%VuCJjr!&O zt7->u1r#~G3V}1HVaKSh02r?l*yHC`MkMr0B=qZdfOvp-fOz0Pcz{TV01yul4-fzX zKmZ7U3ILbO^}=!7tWiZW4D%wpxJnX;qIhKVN`nfv|KyigDZqolb;{2FD!>5jJ*qLT SzcteU00009QXVEOHBaG zX7i~|in!?YdWYBng2CVoP180lDi#Ex&a&)7v)SytL7?5}bUFeyfKVvJYPswnonEO_ zdg3^aAHKQ=h`n~ZEnoo%hr_HM`l(i{m3%(`IDEVUfPE|gkw^p!Kp+sP#A2~K^gAAp zuggIci^ZpIx7$Z@0%?u(#H7Mg2+Im55{azO=WCA2>2NsaZ4kL!E)NhJ@bkXWXq?IA zG${qZ(cX&xDklPfv7X`cmfdb&QMCgmlL?p1Z=szJb8e0rI0xbP`EB*E}JKe)6-qf!22Kj@v7n#*dnPN_PDuw8vAYRBnxGE#k+OlBsXPOpudQ*RHT z0*?U#$-*u%gopR@*a2`!2#$A4tJNA@+Q65Bgj6i!&ZX;z%VuCJjr!&O zt7->u1r#~G3V}1HVaKSh02r?l*yHC`MkMr0B=qZdfOvp-fOz0Pcz{TV01yul4-fzX zKmZ7U3ILbO^}=!7tWiZW4D%wpxJnX;qIhKVN`nfv|KyigDZqolb;{2FD!>5jJ*qLT SzcteU0000 mimeType2HUmanReadable; static { @@ -48,6 +56,22 @@ public class DisplayUtils { } + private static final String TYPE_APPLICATION = "application"; + private static final String TYPE_AUDIO = "audio"; + private static final String TYPE_IMAGE = "image"; + private static final String TYPE_TXT = "txt"; + private static final String TYPE_VIDEO = "video"; + + private static final String SUBTYPE_PDF = "pdf"; + private static final String[] SUBTYPES_DOCUMENT = { "msword", "mspowerpoint", "msexcel", + "vnd.oasis.opendocument.presentation", + "vnd.oasis.opendocument.spreadsheet", + "vnd.oasis.opendocument.text" + }; + private static Set SUBTYPES_DOCUMENT_SET = new HashSet(Arrays.asList(SUBTYPES_DOCUMENT)); + private static final String[] SUBTYPES_COMPRESSED = {"x-tar", "x-gzip", "zip"}; + private static final Set SUBTYPES_COMPRESSED_SET = new HashSet(Arrays.asList(SUBTYPES_COMPRESSED)); + /** * Converts the file size in bytes to human readable output. * @@ -57,12 +81,12 @@ public class DisplayUtils { public static String bytesToHumanReadable(long bytes) { double result = bytes; int attachedsuff = 0; - while (result > 1024 && attachedsuff < suffixes.length) { + while (result > 1024 && attachedsuff < sizeSuffixes.length) { result /= 1024.; attachedsuff++; } result = ((int) (result * 100)) / 100.; - return result + " " + suffixes[attachedsuff]; + return result + " " + sizeSuffixes[attachedsuff]; } /** @@ -104,6 +128,58 @@ public class DisplayUtils { return mimetype.split("/")[1].toUpperCase() + " file"; return "Unknown type"; } + + + /** + * Returns the resource identifier of an image resource to use as icon associated to a + * known MIME type. + * + * @param mimetype MIME type string. + * @return Resource identifier of an image resource. + */ + public static int getResourceId(String mimetype) { + + if (mimetype == null || "DIR".equals(mimetype)) { + return R.drawable.ic_menu_archive; + + } else { + String [] parts = mimetype.split("/"); + String type = parts[0]; + String subtype = parts[1]; + + if(TYPE_TXT.equals(type)) { + return R.drawable.file_doc; + + } else if(TYPE_IMAGE.equals(type)) { + return R.drawable.file_image; + + } else if(TYPE_VIDEO.equals(type)) { + return R.drawable.file_movie; + + } else if(TYPE_AUDIO.equals(type)) { + return R.drawable.file_sound; + + } else if(TYPE_APPLICATION.equals(type)) { + + if (SUBTYPE_PDF.equals(subtype)) { + return R.drawable.file_pdf; + + } else if (SUBTYPES_DOCUMENT_SET.contains(subtype)) { + return R.drawable.file_doc; + + } else if (SUBTYPES_COMPRESSED_SET.contains(subtype)) { + return R.drawable.file_zip; + } + + } + // problems: RAR, RTF, 3GP are send as application/octet-stream from the server ; extension in the filename should be explicitly reviewed + } + + // default icon + return R.drawable.file; + } + + /** * Converts Unix time to human readable format diff --git a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java index 503dfffe..b924cc8c 100644 --- a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java +++ b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java @@ -115,11 +115,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { fileName.setText(name); ImageView fileIcon = (ImageView) view.findViewById(R.id.imageView1); - if (file.getMimetype() == null || !file.getMimetype().equals("DIR")) { - fileIcon.setImageResource(R.drawable.file); - } else { - fileIcon.setImageResource(R.drawable.ic_menu_archive); - } + fileIcon.setImageResource(DisplayUtils.getResourceId(file.getMimetype())); ImageView localStateView = (ImageView) view.findViewById(R.id.imageView2); FileDownloaderBinder downloaderBinder = mTransferServiceGetter.getFileDownloaderBinder(); FileUploaderBinder uploaderBinder = mTransferServiceGetter.getFileUploaderBinder(); diff --git a/src/com/owncloud/android/ui/fragment/FileDetailFragment.java b/src/com/owncloud/android/ui/fragment/FileDetailFragment.java index 2c43278f..fc6f1672 100644 --- a/src/com/owncloud/android/ui/fragment/FileDetailFragment.java +++ b/src/com/owncloud/android/ui/fragment/FileDetailFragment.java @@ -507,8 +507,7 @@ public class FileDetailFragment extends SherlockFragment implements // set file details setFilename(mFile.getFileName()); - setFiletype(DisplayUtils.convertMIMEtoPrettyPrint(mFile - .getMimetype())); + setFiletype(mFile.getMimetype()); setFilesize(mFile.getFileLength()); if(ocVersionSupportsTimeCreated()){ setTimeCreated(mFile.getCreationTimestamp()); @@ -560,8 +559,14 @@ public class FileDetailFragment extends SherlockFragment implements */ private void setFiletype(String mimetype) { TextView tv = (TextView) getView().findViewById(R.id.fdType); - if (tv != null) - tv.setText(mimetype); + if (tv != null) { + String printableMimetype = DisplayUtils.convertMIMEtoPrettyPrint(mimetype);; + tv.setText(printableMimetype); + } + ImageView iv = (ImageView) getView().findViewById(R.id.fdIcon); + if (iv != null) { + iv.setImageResource(DisplayUtils.getResourceId(mimetype)); + } } /** -- 2.11.0