invert activity icon on dark mode

removed outer white border on shared_via_ink

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
This commit is contained in:
tobiasKaminsky 2020-06-05 11:45:36 +02:00
parent d1f17df63c
commit b625cdaddb
No known key found for this signature in database
GPG Key ID: 0E00D4D47D0C5AF7
6 changed files with 121 additions and 63 deletions

View File

@ -1,20 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" inkscape:export-ydpi="384" inkscape:export-xdpi="384"
height="16"
width="16"
version="1.1"
id="svg8"
sodipodi:docname="shared_via_link.svg"
inkscape:version="0.92.2 2405546, 2018-03-11"
inkscape:export-filename="C:\DEV\src\Android\Nextcloud\greySharedIndicator\res\drawable-xxxhdpi\shared_via_link.png" inkscape:export-filename="C:\DEV\src\Android\Nextcloud\greySharedIndicator\res\drawable-xxxhdpi\shared_via_link.png"
inkscape:export-xdpi="384" inkscape:version="1.0 (4035a4fb49, 2020-05-01)" sodipodi:docname="shared_via_link.svg" id="svg8" version="1.1"
inkscape:export-ydpi="384"> width="16" height="16">
<metadata <metadata
id="metadata14"> id="metadata14">
<rdf:RDF> <rdf:RDF>
@ -28,37 +19,18 @@
</metadata> </metadata>
<defs <defs
id="defs12" /> id="defs12" />
<sodipodi:namedview <sodipodi:namedview inkscape:document-rotation="0" inkscape:current-layer="g6" inkscape:window-maximized="1"
pagecolor="#ffffff" inkscape:window-y="0" inkscape:window-x="0" inkscape:cy="8.0173062" inkscape:cx="5.9813853"
bordercolor="#666666" inkscape:zoom="41.7193" showgrid="false" id="namedview10" inkscape:window-height="1141"
borderopacity="1" inkscape:window-width="1920" inkscape:pageshadow="2" inkscape:pageopacity="0" guidetolerance="10"
objecttolerance="10" gridtolerance="10" objecttolerance="10" borderopacity="1" bordercolor="#666666" pagecolor="#ffffff" />
gridtolerance="10" <g style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-opacity:1;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;opacity:0.8"
guidetolerance="10" id="g6" color="#000">
inkscape:pageopacity="0" <path id="path2"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="871"
id="namedview10"
showgrid="false"
inkscape:zoom="29.5"
inkscape:cx="-1.1061145"
inkscape:cy="7.2856262"
inkscape:window-x="1600"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg8"/>
<g
color="#000"
id="g6"
style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-opacity:1;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;opacity:0.8">
<path
style="block-progression:tb;text-transform:none;text-indent:0;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-opacity:1;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
d="M5.99 5.318a3.332 3.332 0 0 0 0 4.693c.116.118.226.22.355.315l1.383-1.383A1.4 1.4 0 0 1 7.33 6.66l3.352-3.352c.568-.57 1.442-.57 2.01 0s.57 1.442 0 2.01l-1.13 1.132c.34.725.464 1.518.377 2.304l2.094-2.095c1.288-1.29 1.288-3.406 0-4.694s-3.405-1.288-4.693 0L5.99 5.318z" d="M5.99 5.318a3.332 3.332 0 0 0 0 4.693c.116.118.226.22.355.315l1.383-1.383A1.4 1.4 0 0 1 7.33 6.66l3.352-3.352c.568-.57 1.442-.57 2.01 0s.57 1.442 0 2.01l-1.13 1.132c.34.725.464 1.518.377 2.304l2.094-2.095c1.288-1.29 1.288-3.406 0-4.694s-3.405-1.288-4.693 0L5.99 5.318z"
id="path2"/> style="block-progression:tb;text-transform:none;text-indent:0;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none" />
<path <path id="path4"
style="block-progression:tb;text-transform:none;text-indent:0;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-opacity:1;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
d="M10.01 10.68a3.332 3.332 0 0 0 0-4.692 3.126 3.126 0 0 0-.355-.314L8.272 7.057A1.4 1.4 0 0 1 8.67 9.34l-3.35 3.35c-.57.57-1.444.57-2.013.002s-.568-1.442 0-2.01L4.44 9.55a4.288 4.288 0 0 1-.38-2.305L1.967 9.34c-1.288 1.29-1.288 3.405 0 4.693s3.405 1.29 4.693 0l3.35-3.352z" d="M10.01 10.68a3.332 3.332 0 0 0 0-4.692 3.126 3.126 0 0 0-.355-.314L8.272 7.057A1.4 1.4 0 0 1 8.67 9.34l-3.35 3.35c-.57.57-1.444.57-2.013.002s-.568-1.442 0-2.01L4.44 9.55a4.288 4.288 0 0 1-.38-2.305L1.967 9.34c-1.288 1.29-1.288 3.405 0 4.693s3.405 1.29 4.693 0l3.35-3.352z"
id="path4"/> style="block-progression:tb;text-transform:none;text-indent:0;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none" />
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -23,8 +23,11 @@
package com.owncloud.android.ui.adapter; package com.owncloud.android.ui.adapter;
import android.content.Context; import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.drawable.PictureDrawable; import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.net.Uri; import android.net.Uri;
import android.text.Spannable; import android.text.Spannable;
import android.text.SpannableStringBuilder; import android.text.SpannableStringBuilder;
@ -69,9 +72,8 @@ import com.owncloud.android.ui.interfaces.ActivityListInterface;
import com.owncloud.android.utils.DisplayUtils; import com.owncloud.android.utils.DisplayUtils;
import com.owncloud.android.utils.MimeTypeUtil; import com.owncloud.android.utils.MimeTypeUtil;
import com.owncloud.android.utils.glide.CustomGlideStreamLoader; import com.owncloud.android.utils.glide.CustomGlideStreamLoader;
import com.owncloud.android.utils.svg.SvgBitmapTranscoder;
import com.owncloud.android.utils.svg.SvgDecoder; import com.owncloud.android.utils.svg.SvgDecoder;
import com.owncloud.android.utils.svg.SvgDrawableTranscoder;
import com.owncloud.android.utils.svg.SvgSoftwareLayerSetter;
import java.io.InputStream; import java.io.InputStream;
import java.util.ArrayList; import java.util.ArrayList;
@ -196,9 +198,22 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
} }
if (!TextUtils.isEmpty(activity.getIcon())) { if (!TextUtils.isEmpty(activity.getIcon())) {
downloadIcon(activity.getIcon(), activityViewHolder.activityIcon); downloadIcon(activity, activityViewHolder.activityIcon);
} }
int nightModeFlag = context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
if (!activity.getType().equalsIgnoreCase("file_created") &&
!activity.getType().equalsIgnoreCase("file_deleted")) {
if (Configuration.UI_MODE_NIGHT_YES == nightModeFlag) {
activityViewHolder.activityIcon.setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN);
} else {
activityViewHolder.activityIcon.setColorFilter(Color.BLACK, PorterDuff.Mode.SRC_IN);
}
}
if (activity.getRichSubjectElement() != null && if (activity.getRichSubjectElement() != null &&
activity.getRichSubjectElement().getRichObjectList().size() > 0) { activity.getRichSubjectElement().getRichObjectList().size() > 0) {
activityViewHolder.list.setVisibility(View.VISIBLE); activityViewHolder.list.setVisibility(View.VISIBLE);
@ -329,21 +344,20 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
} }
} }
private void downloadIcon(String icon, ImageView itemViewType) { private void downloadIcon(Activity activity, ImageView itemViewType) {
GenericRequestBuilder<Uri, InputStream, SVG, PictureDrawable> requestBuilder = Glide.with(context) GenericRequestBuilder<Uri, InputStream, SVG, Bitmap> requestBuilder = Glide.with(context)
.using(Glide.buildStreamModelLoader(Uri.class, context), InputStream.class) .using(Glide.buildStreamModelLoader(Uri.class, context), InputStream.class)
.from(Uri.class) .from(Uri.class)
.as(SVG.class) .as(SVG.class)
.transcode(new SvgDrawableTranscoder(), PictureDrawable.class) .transcode(new SvgBitmapTranscoder(128, 128), Bitmap.class)
.sourceEncoder(new StreamEncoder()) .sourceEncoder(new StreamEncoder())
.cacheDecoder(new FileToStreamDecoder<>(new SvgDecoder())) .cacheDecoder(new FileToStreamDecoder<>(new SvgDecoder()))
.decoder(new SvgDecoder()) .decoder(new SvgDecoder())
.placeholder(R.drawable.ic_activity) .placeholder(R.drawable.ic_activity)
.error(R.drawable.ic_activity) .error(R.drawable.ic_activity)
.animate(android.R.anim.fade_in) .animate(android.R.anim.fade_in);
.listener(new SvgSoftwareLayerSetter<>());
Uri uri = Uri.parse(icon); Uri uri = Uri.parse(activity.getIcon());
requestBuilder requestBuilder
.diskCacheStrategy(DiskCacheStrategy.SOURCE) .diskCacheStrategy(DiskCacheStrategy.SOURCE)
.load(uri) .load(uri)

View File

@ -0,0 +1,73 @@
/*
*
* Nextcloud Android client application
*
* @author Tobias Kaminsky
* Copyright (C) 2020 Tobias Kaminsky
* Copyright (C) 2020 Nextcloud GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.owncloud.android.utils.svg;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import com.bumptech.glide.load.engine.Resource;
import com.bumptech.glide.load.resource.SimpleResource;
import com.bumptech.glide.load.resource.transcode.ResourceTranscoder;
import com.caverock.androidsvg.SVG;
import com.caverock.androidsvg.SVGParseException;
import com.owncloud.android.lib.common.utils.Log_OC;
/**
* Convert the {@link SVG}'s internal representation to a Bitmap.
*/
public class SvgBitmapTranscoder implements ResourceTranscoder<SVG, Bitmap> {
private int width;
private int height;
public SvgBitmapTranscoder(int width, int height) {
this.width = width;
this.height = height;
}
@Override
public Resource<Bitmap> transcode(Resource<SVG> toTranscode) {
SVG svg = toTranscode.get();
svg.setDocumentViewBox(0, 0, svg.getDocumentWidth(), svg.getDocumentHeight());
try {
svg.setDocumentHeight("100%");
svg.setDocumentWidth("100%");
} catch (SVGParseException e) {
Log_OC.e(this, "Could not set document size. Output might have wrong size");
}
// Create a canvas to draw onto
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
// Render our document onto our canvas
svg.renderToCanvas(canvas);
return new SimpleResource<>(bitmap);
}
@Override
public String getId() {
return "";
}
}

View File

@ -23,14 +23,14 @@
android:viewportHeight="16.0"> android:viewportHeight="16.0">
<path <path
android:fillColor="#FFFFFFFF" android:fillColor="#FFFFFFFF"
android:strokeColor="#FF000000" android:strokeColor="#FFFFFFFF"
android:strokeWidth="0.2" android:strokeWidth="0.0"
android:strokeMiterLimit="4" android:strokeMiterLimit="4"
android:pathData="M5.99 5.318a3.332 3.332 0 0 0 0 4.693c 0.116 0.118 0.226 0.22 0.355 0.315l1.383-1.383A1.4 1.4 0 0 1 7.33 6.66l3.352-3.352c 0.568-0.57 1.442-0.57 2.01 0s 0.57 1.442 0 2.01l-1.13 1.132c 0.34 0.725 0.464 1.518 0.377 2.304l2.094-2.095c1.288-1.29 1.288-3.406 0-4.694s-3.405-1.288-4.693 0L5.99 5.318z"/> android:pathData="M5.99 5.318a3.332 3.332 0 0 0 0 4.693c 0.116 0.118 0.226 0.22 0.355 0.315l1.383-1.383A1.4 1.4 0 0 1 7.33 6.66l3.352-3.352c 0.568-0.57 1.442-0.57 2.01 0s 0.57 1.442 0 2.01l-1.13 1.132c 0.34 0.725 0.464 1.518 0.377 2.304l2.094-2.095c1.288-1.29 1.288-3.406 0-4.694s-3.405-1.288-4.693 0L5.99 5.318z"/>
<path <path
android:fillColor="#FFFFFFFF" android:fillColor="#FFFFFFFF"
android:strokeColor="#FF000000" android:strokeColor="#FFFFFFFF"
android:strokeWidth="0.2" android:strokeWidth="0.0"
android:strokeMiterLimit="4" android:strokeMiterLimit="4"
android:pathData="M10.01 10.68a3.332 3.332 0 0 0 0-4.692 3.126 3.126 0 0 0-0.355-0.314L8.272 7.057A1.4 1.4 0 0 1 8.67 9.34l-3.35 3.35c-0.57 0.57-1.444 0.57-2.013 0.002s-0.568-1.442 0-2.01L4.44 9.55a4.288 4.288 0 0 1-0.38-2.305L1.967 9.34c-1.288 1.29-1.288 3.405 0 4.693s3.405 1.29 4.693 0l3.35-3.352z"/> android:pathData="M10.01 10.68a3.332 3.332 0 0 0 0-4.692 3.126 3.126 0 0 0-0.355-0.314L8.272 7.057A1.4 1.4 0 0 1 8.67 9.34l-3.35 3.35c-0.57 0.57-1.444 0.57-2.013 0.002s-0.568-1.442 0-2.01L4.44 9.55a4.288 4.288 0 0 1-0.38-2.305L1.967 9.34c-1.288 1.29-1.288 3.405 0 4.693s3.405 1.29 4.693 0l3.35-3.352z"/>
</vector> </vector>

View File

@ -23,14 +23,14 @@
android:viewportHeight="16.0"> android:viewportHeight="16.0">
<path <path
android:fillColor="#FF000000" android:fillColor="#FF000000"
android:strokeColor="#FFFFFFFF" android:strokeColor="#FF000000"
android:strokeWidth="0.2" android:strokeWidth="0.0"
android:strokeMiterLimit="4" android:strokeMiterLimit="4"
android:pathData="M5.99 5.318a3.332 3.332 0 0 0 0 4.693c 0.116 0.118 0.226 0.22 0.355 0.315l1.383-1.383A1.4 1.4 0 0 1 7.33 6.66l3.352-3.352c 0.568-0.57 1.442-0.57 2.01 0s 0.57 1.442 0 2.01l-1.13 1.132c 0.34 0.725 0.464 1.518 0.377 2.304l2.094-2.095c1.288-1.29 1.288-3.406 0-4.694s-3.405-1.288-4.693 0L5.99 5.318z"/> android:pathData="M5.99 5.318a3.332 3.332 0 0 0 0 4.693c 0.116 0.118 0.226 0.22 0.355 0.315l1.383-1.383A1.4 1.4 0 0 1 7.33 6.66l3.352-3.352c 0.568-0.57 1.442-0.57 2.01 0s 0.57 1.442 0 2.01l-1.13 1.132c 0.34 0.725 0.464 1.518 0.377 2.304l2.094-2.095c1.288-1.29 1.288-3.406 0-4.694s-3.405-1.288-4.693 0L5.99 5.318z"/>
<path <path
android:fillColor="#FF000000" android:fillColor="#FF000000"
android:strokeColor="#FFFFFFFF" android:strokeColor="#FF000000"
android:strokeWidth="0.2" android:strokeWidth="0.0"
android:strokeMiterLimit="4" android:strokeMiterLimit="4"
android:pathData="M10.01 10.68a3.332 3.332 0 0 0 0-4.692 3.126 3.126 0 0 0-0.355-0.314L8.272 7.057A1.4 1.4 0 0 1 8.67 9.34l-3.35 3.35c-0.57 0.57-1.444 0.57-2.013 0.002s-0.568-1.442 0-2.01L4.44 9.55a4.288 4.288 0 0 1-0.38-2.305L1.967 9.34c-1.288 1.29-1.288 3.405 0 4.693s3.405 1.29 4.693 0l3.35-3.352z"/> android:pathData="M10.01 10.68a3.332 3.332 0 0 0 0-4.692 3.126 3.126 0 0 0-0.355-0.314L8.272 7.057A1.4 1.4 0 0 1 8.67 9.34l-3.35 3.35c-0.57 0.57-1.444 0.57-2.013 0.002s-0.568-1.442 0-2.01L4.44 9.55a4.288 4.288 0 0 1-0.38-2.305L1.967 9.34c-1.288 1.29-1.288 3.405 0 4.693s3.405 1.29 4.693 0l3.35-3.352z"/>
</vector> </vector>

View File

@ -36,7 +36,6 @@
android:layout_marginTop="@dimen/standard_margin" android:layout_marginTop="@dimen/standard_margin"
android:alpha="0.5" android:alpha="0.5"
android:padding="2dp" android:padding="2dp"
android:background="@drawable/round_bgnd_icons"
android:contentDescription="@string/activity_icon" android:contentDescription="@string/activity_icon"
android:src="@drawable/ic_activity" /> android:src="@drawable/ic_activity" />