From 79dbf2746fabfb05aa550f1ffe4d120e1b628a81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= Date: Tue, 6 Jan 2015 12:48:15 +0100 Subject: [PATCH] Added new media icons for audio/video Added icons new icons, deleted an old one. Using new icons in AudioSlide/VideoSlide. Closes #2304 --- BUILDING.md | 12 +++++++ res/drawable-hdpi/ic_audio_dark.png | Bin 0 -> 1977 bytes res/drawable-hdpi/ic_audio_light.png | Bin 0 -> 1748 bytes res/drawable-hdpi/ic_video_dark.png | Bin 0 -> 941 bytes res/drawable-hdpi/ic_video_light.png | Bin 0 -> 862 bytes res/drawable-mdpi/ic_audio_dark.png | Bin 0 -> 1023 bytes res/drawable-mdpi/ic_audio_light.png | Bin 0 -> 888 bytes res/drawable-mdpi/ic_video_dark.png | Bin 0 -> 596 bytes res/drawable-mdpi/ic_video_light.png | Bin 0 -> 542 bytes res/drawable-xhdpi/ic_audio_dark.png | Bin 0 -> 2807 bytes res/drawable-xhdpi/ic_audio_light.png | Bin 0 -> 2431 bytes res/drawable-xhdpi/ic_video_dark.png | Bin 0 -> 1229 bytes res/drawable-xhdpi/ic_video_light.png | Bin 0 -> 1075 bytes res/drawable-xxhdpi/ic_audio_dark.png | Bin 0 -> 4643 bytes res/drawable-xxhdpi/ic_audio_light.png | Bin 0 -> 3740 bytes res/drawable-xxhdpi/ic_video_dark.png | Bin 0 -> 1971 bytes res/drawable-xxhdpi/ic_video_light.png | Bin 0 -> 1751 bytes res/drawable/ic_launcher_video_player.png | Bin 3822 -> 0 bytes res/values/attrs.xml | 3 ++ res/values/themes.xml | 6 ++++ .../securesms/ConversationItem.java | 2 +- .../securesms/ImageMediaAdapter.java | 2 +- .../securesms/mms/AttachmentManager.java | 2 +- .../securesms/mms/AudioSlide.java | 6 ++-- .../securesms/mms/ImageSlide.java | 17 +++++++--- src/org/thoughtcrime/securesms/mms/Slide.java | 11 ++++--- .../securesms/mms/VideoSlide.java | 6 ++-- .../securesms/util/ThemeUtil.java | 31 ++++++++++++++++++ 28 files changed, 81 insertions(+), 17 deletions(-) create mode 100644 res/drawable-hdpi/ic_audio_dark.png create mode 100644 res/drawable-hdpi/ic_audio_light.png create mode 100644 res/drawable-hdpi/ic_video_dark.png create mode 100644 res/drawable-hdpi/ic_video_light.png create mode 100644 res/drawable-mdpi/ic_audio_dark.png create mode 100644 res/drawable-mdpi/ic_audio_light.png create mode 100644 res/drawable-mdpi/ic_video_dark.png create mode 100644 res/drawable-mdpi/ic_video_light.png create mode 100644 res/drawable-xhdpi/ic_audio_dark.png create mode 100644 res/drawable-xhdpi/ic_audio_light.png create mode 100644 res/drawable-xhdpi/ic_video_dark.png create mode 100644 res/drawable-xhdpi/ic_video_light.png create mode 100644 res/drawable-xxhdpi/ic_audio_dark.png create mode 100644 res/drawable-xxhdpi/ic_audio_light.png create mode 100644 res/drawable-xxhdpi/ic_video_dark.png create mode 100644 res/drawable-xxhdpi/ic_video_light.png delete mode 100644 res/drawable/ic_launcher_video_player.png create mode 100644 src/org/thoughtcrime/securesms/util/ThemeUtil.java diff --git a/BUILDING.md b/BUILDING.md index cea307ad07..5e837e528c 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -30,6 +30,18 @@ The following steps should help you (re)build TextSecure from the command line. ./gradlew build +Visual assets +---------------------- + +Source assets tend to be large binary blobs, which are best stored outside of git repositories. We host ours in a [Pixelapse repository](https://www.pixelapse.com/openwhispersystems/projects/signal-android/). Some source files are SVGs that can be auto-colored and sized using a tool like [android-res-utils](https://github.com/sebkur/android-res-utils). + +Sample command for generating our audio placeholder image: + +```bash +pngs_from_svg.py ic_audio.svg /path/to/TextSecure/res/ 150 "#000" 0.54 _light +pngs_from_svg.py ic_audio.svg /path/to/TextSecure/res/ 150 "#fff" 1.0 _dark +``` + Setting up a development environment ------------------------------------ diff --git a/res/drawable-hdpi/ic_audio_dark.png b/res/drawable-hdpi/ic_audio_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..6b865ebd6dd6aabb51f1544c7645875606a349bc GIT binary patch literal 1977 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 literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/ic_video_dark.png b/res/drawable-hdpi/ic_video_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..ae43e5f84227184dfa6fac1130a784d0a100a30f GIT binary patch literal 941 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 O0000uz z<<~tl^5BrOHZ^Q*=fN-fcg^7%R;1ntV|Xp@um~s_ z7j$~#T83-+4K6?xzCXBEZWBFli~YpLwHDX78)R;GCGTz10g;U^KvMNqn2h$tZI2=% zw}~FF;_d{JUR%~$ge}TFx=|=syKic0bm1Cf517!TJfM)qMze0yWSdUaX%R_#7oR>N z>+YvQ|nKmy)txQ|T+ z3xvZ2@=Iod1g1sYKMFGKkN8=RT@muHXRMK3-(Tu-t?%0LTdLW+Unh&cJ9)!4mE)SG zq_u3@*0ZuVcO_R#ge9I5o>`UTCD|2fp%|<_h2xr7xX#H7leD+BC0(^n@q2&Pa!J6W zh*sHkFL!2_X%w!hsy_4Td{5a$W&S$`$?LB!kUb4?vA2#t*nK)1Z9vWhvOhs6C!P29 Y{|+uo_BM%J2TUytp00i_>zopr0Gf*oivR!s literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_video_light.png b/res/drawable-mdpi/ic_video_light.png new file mode 100644 index 0000000000000000000000000000000000000000..da0a760d3926fbb1cd73a948c1fae047dcef0af4 GIT binary patch literal 542 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 KLxa74#(w~r?5*qo literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/ic_video_dark.png b/res/drawable-xhdpi/ic_video_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..76c3e88833d40270771b70d2cef72964cdb3a7a1 GIT binary patch literal 1229 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4i=!urmN^d3XuDz&#JNx(C+L*}m0@tp1 zSpVHw|8;rYy|Vmgv)w8$96tB#absfb<;b(Yo`0S#^)xB`xBK*68<_gFUr*(Hefi%_ z`Kt9c>&{AvU(5ehZJ%@U@vSw2iM6Zue>twVC1rEYwT=zjen;=mJDGNKO<>~PH|e@J zb!MAtty%wjm+I`)&2Fto!H2Wv4_;{~b8>?50TN!@uHwgEi=_ zx&QUA7Dz+e*SU4ksXz@kHrT!03lcik_SF@nI{EOdUr@#`PkRlJ;`XnP!J68)27|P` z*id#F=#HP_AkwiLB-F5BU$oijv|j$zK$~C790J*|HCy%d&%+?rwhh~Irk$0Np9VDk zxhRMXzNr(r{zNZGYlxZmHEki7V88j)vy;Ad$-D=e=9{`XWv@~q$fqE|3W%nUc^I0I zOnRIY@Uicx6PWo}R!8iRQ^bQ~hmsU^W-ui_tZ+wF zawmc#d#j>O3+tgnANzo2fJ}xPCjhchQ3qrZnE9}R9cU4V33XpVawE_p4xm$kdRT!L zad6ALj{uw2+j^7%vCQSjczH*=~P7!Mq&Beq(?iUa{RCO=y;ZK`H-CH_3 z&p2Ou&Tdr~d%Zsq=#Bo{IyUpv*Bth{B{QeQ!au@)_x)!N>inN`u70=0az}7+Yw7ms zxomM|<@+{>-OVyCSbel6@#@sR)G!%%=?bqDtIip(5q}%G)--1I z-ncJe+x(;-e2>lUD*dqPFJD!5u(HgTO82#PeZTfJv(1otyn%oBwZhfikJo)oZ0Frr zddp#V?A!3zjH@3uMaO1dGzeDK-F1aM_FbI%S~kC3*Pq(GxO8I8v~JV5_unJsw_bkt z`hC)Sp?TY1oP7Phu-!JdLlPWPz)%9mBP2RN0R;(4Z~%jo1vp-S;>0PeVE)gz!z>{3 TLUZ+fP^sbR>gTe~DWM4fKT$#v literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/ic_video_light.png b/res/drawable-xhdpi/ic_video_light.png new file mode 100644 index 0000000000000000000000000000000000000000..12c8a6d12a3a21bf59c474b1bef96aec4ded1a8a GIT binary patch literal 1075 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4rZW;-{LxVAhk5WC&U#<4}K8x&+{SBmF6Wu ze!&bJhCWdlr7c~`e3mKg!5wUFs&zKZA!$JtN-UMO4eqSkVT|<()}G--Rn;}MjZMw1 zZJnBqInU4QPG?|XX7hA$45?szb6T5;L4bkPV1N7X`4OU~sjs!~GoplpLvC%#y4sV$ zHcu{{^kNPaVM~nhSath|MgLoyqYwYiKR>&TzrQJ5pALX@ckJ2-&raR+*e@9t$^wMA>h* zV%1oxy5Ss<&GcHv1IW}1o8aZ05bJjVL^7`2!gB4J>6S}E5#}I)yLta4<_2O#K2W z0kZ5gK!QzQ!5o5zOrasbu92dkvzp8&M4q2WfyA&Qa#KRlE4;r~{to+W zdoN_C-tA>k>s0SuFPOQ_+cdVVBLDD9o4mj*oB3@&+Pt>E{@(sLY(`&u?f%zZ9+Ol& cG11!J>^c`Jr!%qCZUZHGPgg&ebxsLQ0M40*1ONa4 literal 0 HcmV?d00001 diff --git a/res/drawable-xxhdpi/ic_audio_dark.png b/res/drawable-xxhdpi/ic_audio_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..85f999841721bf9c1d473ed2d6f3f10588f59e69 GIT binary patch literal 4643 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 DT|S)A literal 0 HcmV?d00001 diff --git a/res/drawable-xxhdpi/ic_audio_light.png b/res/drawable-xxhdpi/ic_audio_light.png new file mode 100644 index 0000000000000000000000000000000000000000..d53eef6ff62789969512e6e340fd45acb31d9537 GIT binary patch literal 3740 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 W^FGr_{kIbU literal 0 HcmV?d00001 diff --git a/res/drawable-xxhdpi/ic_video_dark.png b/res/drawable-xxhdpi/ic_video_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..b7e9e10faf7abff68d909755f7611c0eec357089 GIT binary patch literal 1971 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 I&MBb@0IG&R?EnA( literal 0 HcmV?d00001 diff --git a/res/drawable/ic_launcher_video_player.png b/res/drawable/ic_launcher_video_player.png deleted file mode 100644 index 6e231be17fc3c4bd66f28724ecd2299bae19a36a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3822 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 + + + diff --git a/res/values/themes.xml b/res/values/themes.xml index 96bd3b3055..f73e52a8db 100644 --- a/res/values/themes.xml +++ b/res/values/themes.xml @@ -94,6 +94,9 @@ @drawable/ic_forward_white_24dp @drawable/ic_save_white_24dp + @drawable/ic_audio_light + @drawable/ic_video_light + #ff1d85d7 @drawable/ic_push_black @@ -193,6 +196,9 @@ @drawable/ic_forward_white_24dp @drawable/ic_save_white_24dp + @drawable/ic_audio_dark + @drawable/ic_video_dark + @color/textsecure_primary_dark @drawable/ic_push_gray diff --git a/src/org/thoughtcrime/securesms/ConversationItem.java b/src/org/thoughtcrime/securesms/ConversationItem.java index 1aa779e2c4..87525fe6ef 100644 --- a/src/org/thoughtcrime/securesms/ConversationItem.java +++ b/src/org/thoughtcrime/securesms/ConversationItem.java @@ -394,7 +394,7 @@ public class ConversationItem extends LinearLayout { public void run() { for (Slide slide : result.getSlides()) { if (slide.hasImage()) { - slide.setThumbnailOn(mmsThumbnail); + slide.setThumbnailOn(context, mmsThumbnail); mmsThumbnail.setOnClickListener(new ThumbnailClickListener(slide)); mmsThumbnail.setVisibility(View.VISIBLE); return; diff --git a/src/org/thoughtcrime/securesms/ImageMediaAdapter.java b/src/org/thoughtcrime/securesms/ImageMediaAdapter.java index c6753b7868..74a7f501f7 100644 --- a/src/org/thoughtcrime/securesms/ImageMediaAdapter.java +++ b/src/org/thoughtcrime/securesms/ImageMediaAdapter.java @@ -80,7 +80,7 @@ public class ImageMediaAdapter extends CursorRecyclerViewAdapter { part.setId(imageRecord.getPartId()); Slide slide = MediaUtil.getSlideForPart(getContext(), masterSecret, part, imageRecord.getContentType()); - if (slide != null) slide.setThumbnailOn(imageView, gridSize, gridSize, new ColorDrawable(0x11ffffff)); + if (slide != null) slide.setThumbnailOn(getContext(), imageView, gridSize, gridSize, new ColorDrawable(0x11ffffff)); imageView.setOnClickListener(new OnMediaClickListener(imageRecord)); } diff --git a/src/org/thoughtcrime/securesms/mms/AttachmentManager.java b/src/org/thoughtcrime/securesms/mms/AttachmentManager.java index 3beb1f002c..25951162d2 100644 --- a/src/org/thoughtcrime/securesms/mms/AttachmentManager.java +++ b/src/org/thoughtcrime/securesms/mms/AttachmentManager.java @@ -83,7 +83,7 @@ public class AttachmentManager { @Override protected Drawable doInBackground(Void... params) { - return slide.getThumbnail(thumbnailWidth, thumbnailHeight); + return slide.getThumbnail(context, thumbnailWidth, thumbnailHeight); } @Override diff --git a/src/org/thoughtcrime/securesms/mms/AudioSlide.java b/src/org/thoughtcrime/securesms/mms/AudioSlide.java index b32c57f150..e25adf3bcf 100644 --- a/src/org/thoughtcrime/securesms/mms/AudioSlide.java +++ b/src/org/thoughtcrime/securesms/mms/AudioSlide.java @@ -21,6 +21,7 @@ import java.io.IOException; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.crypto.MasterSecret; import org.thoughtcrime.securesms.util.SmilUtil; +import org.thoughtcrime.securesms.util.ThemeUtil; import org.w3c.dom.smil.SMILDocument; import org.w3c.dom.smil.SMILMediaElement; import org.w3c.dom.smil.SMILRegionElement; @@ -28,6 +29,7 @@ import org.w3c.dom.smil.SMILRegionMediaElement; import ws.com.google.android.mms.pdu.PduPart; import android.content.Context; +import android.content.res.TypedArray; import android.database.Cursor; import android.graphics.drawable.Drawable; import android.net.Uri; @@ -64,8 +66,8 @@ public class AudioSlide extends Slide { } @Override - public Drawable getThumbnail(int maxWidth, int maxHeight) { - return context.getResources().getDrawable(R.drawable.ic_menu_add_sound); + public Drawable getThumbnail(Context context, int maxWidth, int maxHeight) { + return ThemeUtil.resolveIcon(context, R.attr.conversation_icon_attach_audio); } public static PduPart constructPartFromUri(Context context, Uri uri) throws IOException, MediaTooLargeException { diff --git a/src/org/thoughtcrime/securesms/mms/ImageSlide.java b/src/org/thoughtcrime/securesms/mms/ImageSlide.java index c3cbf6dc61..3533b58c47 100644 --- a/src/org/thoughtcrime/securesms/mms/ImageSlide.java +++ b/src/org/thoughtcrime/securesms/mms/ImageSlide.java @@ -70,7 +70,7 @@ public class ImageSlide extends Slide { } @Override - public Drawable getThumbnail(int maxWidth, int maxHeight) { + public Drawable getThumbnail(Context context, int maxWidth, int maxHeight) { Drawable thumbnail = getCachedThumbnail(); if (thumbnail != null) { @@ -111,12 +111,12 @@ public class ImageSlide extends Slide { } @Override - public void setThumbnailOn(ImageView imageView) { - setThumbnailOn(imageView, imageView.getWidth(), imageView.getHeight(), new ColorDrawable(Color.TRANSPARENT)); + public void setThumbnailOn(Context context, ImageView imageView) { + setThumbnailOn(context, imageView, imageView.getWidth(), imageView.getHeight(), new ColorDrawable(Color.TRANSPARENT)); } @Override - public void setThumbnailOn(ImageView imageView, final int width, final int height, final Drawable placeholder) { + public void setThumbnailOn(Context context, ImageView imageView, final int width, final int height, final Drawable placeholder) { Drawable thumbnail = getCachedThumbnail(); if (thumbnail != null) { @@ -125,6 +125,7 @@ public class ImageSlide extends Slide { return; } + final WeakReference weakContext = new WeakReference<>(context); final WeakReference weakImageView = new WeakReference<>(imageView); final Handler handler = new Handler(); @@ -136,7 +137,13 @@ public class ImageSlide extends Slide { MmsDatabase.slideResolver.execute(new Runnable() { @Override public void run() { - final Drawable bitmap = getThumbnail(width, height); + final Context context = weakContext.get(); + if (context == null) { + Log.w(TAG, "context SoftReference was null, leaving"); + return; + } + + final Drawable bitmap = getThumbnail(context, width, height); final ImageView destination = weakImageView.get(); Log.w(TAG, "slide resolved, destination available? " + (destination == null)); diff --git a/src/org/thoughtcrime/securesms/mms/Slide.java b/src/org/thoughtcrime/securesms/mms/Slide.java index 0c9008243b..4a1fd2076b 100644 --- a/src/org/thoughtcrime/securesms/mms/Slide.java +++ b/src/org/thoughtcrime/securesms/mms/Slide.java @@ -30,6 +30,7 @@ import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.net.Uri; import android.util.Log; +import android.util.TypedValue; import android.widget.ImageView; import ws.com.google.android.mms.pdu.PduPart; @@ -70,16 +71,16 @@ public abstract class Slide { return part.getDataUri(); } - public Drawable getThumbnail(int maxWidth, int maxHeight) { + public Drawable getThumbnail(Context context, int maxWidth, int maxHeight) { throw new AssertionError("getThumbnail() called on non-thumbnail producing slide!"); } - public void setThumbnailOn(ImageView imageView) { - imageView.setImageDrawable(getThumbnail(imageView.getWidth(), imageView.getHeight())); + public void setThumbnailOn(Context context, ImageView imageView) { + imageView.setImageDrawable(getThumbnail(context, imageView.getWidth(), imageView.getHeight())); } - public void setThumbnailOn(ImageView imageView, int height, int width, Drawable placeholder) { - imageView.setImageDrawable(getThumbnail(width, height)); + public void setThumbnailOn(Context context, ImageView imageView, int height, int width, Drawable placeholder) { + imageView.setImageDrawable(getThumbnail(context, width, height)); } public Bitmap getGeneratedThumbnail() { return null; } diff --git a/src/org/thoughtcrime/securesms/mms/VideoSlide.java b/src/org/thoughtcrime/securesms/mms/VideoSlide.java index c383257358..fd19f9493f 100644 --- a/src/org/thoughtcrime/securesms/mms/VideoSlide.java +++ b/src/org/thoughtcrime/securesms/mms/VideoSlide.java @@ -21,6 +21,7 @@ import java.io.IOException; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.crypto.MasterSecret; import org.thoughtcrime.securesms.util.SmilUtil; +import org.thoughtcrime.securesms.util.ThemeUtil; import org.w3c.dom.smil.SMILDocument; import org.w3c.dom.smil.SMILMediaElement; import org.w3c.dom.smil.SMILRegionElement; @@ -28,6 +29,7 @@ import org.w3c.dom.smil.SMILRegionElement; import ws.com.google.android.mms.pdu.PduPart; import android.content.ContentResolver; import android.content.Context; +import android.content.res.TypedArray; import android.database.Cursor; import android.graphics.drawable.Drawable; import android.net.Uri; @@ -45,8 +47,8 @@ public class VideoSlide extends Slide { } @Override - public Drawable getThumbnail(int width, int height) { - return context.getResources().getDrawable(R.drawable.ic_launcher_video_player); + public Drawable getThumbnail(Context context, int width, int height) { + return ThemeUtil.resolveIcon(context, R.attr.conversation_icon_attach_video); } @Override diff --git a/src/org/thoughtcrime/securesms/util/ThemeUtil.java b/src/org/thoughtcrime/securesms/util/ThemeUtil.java new file mode 100644 index 0000000000..d48621916c --- /dev/null +++ b/src/org/thoughtcrime/securesms/util/ThemeUtil.java @@ -0,0 +1,31 @@ +/** + * Copyright (C) 2015 Open Whisper Systems + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package org.thoughtcrime.securesms.util; + +import android.content.Context; +import android.graphics.drawable.Drawable; +import android.util.TypedValue; + +public class ThemeUtil { + public static Drawable resolveIcon(Context c, int iconAttr) + { + TypedValue out = new TypedValue(); + c.getTheme().resolveAttribute(iconAttr, out, true); + return c.getResources().getDrawable(out.resourceId); + } +}