feat(YouTube - Overlay buttons): Allow setting patch options Bottom margin and Wider between-buttons space for YouTube 19.17+ (#129)

* allow using bottom margin and wider buttons options for 19.16+

* allow using bottom margin and wider buttons options for 19.16+

* update old and add some res under play_all generated playlist

* fix: Build error

* chore: Lint code

---------

Co-authored-by: inotia00 <108592928+inotia00@users.noreply.github.com>
This commit is contained in:
MondayNitro 2025-01-19 11:42:29 +05:30 committed by GitHub
parent 66b7761e77
commit 4892b701e6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
46 changed files with 39 additions and 48 deletions

View File

@ -15,15 +15,12 @@ import app.revanced.patches.youtube.utils.patch.PatchList.OVERLAY_BUTTONS
import app.revanced.patches.youtube.utils.pip.pipStateHookPatch import app.revanced.patches.youtube.utils.pip.pipStateHookPatch
import app.revanced.patches.youtube.utils.playercontrols.hookBottomControlButton import app.revanced.patches.youtube.utils.playercontrols.hookBottomControlButton
import app.revanced.patches.youtube.utils.playercontrols.playerControlsPatch import app.revanced.patches.youtube.utils.playercontrols.playerControlsPatch
import app.revanced.patches.youtube.utils.playservice.is_19_17_or_greater
import app.revanced.patches.youtube.utils.playservice.versionCheckPatch
import app.revanced.patches.youtube.utils.resourceid.sharedResourceIdPatch import app.revanced.patches.youtube.utils.resourceid.sharedResourceIdPatch
import app.revanced.patches.youtube.utils.settings.ResourceUtils.addPreference import app.revanced.patches.youtube.utils.settings.ResourceUtils.addPreference
import app.revanced.patches.youtube.utils.settings.settingsPatch import app.revanced.patches.youtube.utils.settings.settingsPatch
import app.revanced.patches.youtube.video.information.videoEndMethod import app.revanced.patches.youtube.video.information.videoEndMethod
import app.revanced.patches.youtube.video.information.videoInformationPatch import app.revanced.patches.youtube.video.information.videoInformationPatch
import app.revanced.util.ResourceGroup import app.revanced.util.ResourceGroup
import app.revanced.util.Utils.printWarn
import app.revanced.util.copyResources import app.revanced.util.copyResources
import app.revanced.util.copyXmlNode import app.revanced.util.copyXmlNode
import app.revanced.util.doRecursively import app.revanced.util.doRecursively
@ -78,7 +75,6 @@ val overlayButtonsPatch = resourcePatch(
playerControlsPatch, playerControlsPatch,
sharedResourceIdPatch, sharedResourceIdPatch,
settingsPatch, settingsPatch,
versionCheckPatch,
) )
val iconTypeOption = stringOption( val iconTypeOption = stringOption(
@ -103,7 +99,7 @@ val overlayButtonsPatch = resourcePatch(
"Wider" to MARGIN_WIDER, "Wider" to MARGIN_WIDER,
), ),
title = "Bottom margin", title = "Bottom margin",
description = "The bottom margin for the overlay buttons and timestamp. Supports from YouTube 18.29.38 to YouTube 19.16.39.", description = "The bottom margin for the overlay buttons and timestamp.",
required = true required = true
) )
@ -111,7 +107,7 @@ val overlayButtonsPatch = resourcePatch(
key = "widerButtonsSpace", key = "widerButtonsSpace",
default = false, default = false,
title = "Wider between-buttons space", title = "Wider between-buttons space",
description = "Prevent adjacent button presses by increasing the horizontal spacing between buttons. Supports from YouTube 18.29.38 to YouTube 19.16.39.", description = "Prevent adjacent button presses by increasing the horizontal spacing between buttons.",
required = true required = true
) )
@ -129,18 +125,10 @@ val overlayButtonsPatch = resourcePatch(
val iconType = iconTypeOption val iconType = iconTypeOption
.lowerCaseOrThrow() .lowerCaseOrThrow()
var marginBottom = bottomMarginOption val marginBottom = bottomMarginOption
.lowerCaseOrThrow() .lowerCaseOrThrow()
if (marginBottom != MARGIN_DEFAULT && is_19_17_or_greater) { val useWiderButtonsSpace = widerButtonsSpace == true
printWarn("\"Bottom margin\" is not supported in this version. Use YouTube 19.16.39 or earlier.")
marginBottom = MARGIN_DEFAULT
}
if (widerButtonsSpace == true && is_19_17_or_greater) {
printWarn("\"Wider between-buttons space\" is not supported in this version. Use YouTube 19.16.39 or earlier.")
}
val useWiderButtonsSpace = widerButtonsSpace == true && !is_19_17_or_greater
// Inject hooks for overlay buttons. // Inject hooks for overlay buttons.
setOf( setOf(
@ -196,10 +184,13 @@ val overlayButtonsPatch = resourcePatch(
"yt_fill_arrow_repeat_white_24.png", "yt_fill_arrow_repeat_white_24.png",
"yt_outline_arrow_repeat_1_white_24.png", "yt_outline_arrow_repeat_1_white_24.png",
"yt_outline_arrow_shuffle_1_white_24.png", "yt_outline_arrow_shuffle_1_white_24.png",
"yt_outline_arrow_shuffle_black_24.png",
"yt_outline_list_play_arrow_black_24.png",
"yt_outline_list_play_arrow_white_24.png",
"yt_outline_screen_full_exit_white_24.png", "yt_outline_screen_full_exit_white_24.png",
"yt_outline_screen_full_white_24.png",
"yt_outline_screen_full_vd_theme_24.png", "yt_outline_screen_full_vd_theme_24.png",
"yt_outline_screen_vertical_vd_theme_24.png" "yt_outline_screen_full_white_24.png",
"yt_outline_screen_vertical_vd_theme_24.png",
), ),
ResourceGroup( ResourceGroup(
"drawable", "drawable",
@ -215,15 +206,11 @@ val overlayButtonsPatch = resourcePatch(
"android.support.constraint.ConstraintLayout" "android.support.constraint.ConstraintLayout"
) )
var xmlFiles = arrayOf( arrayOf(
"youtube_controls_bottom_ui_container.xml" "youtube_controls_bottom_ui_container.xml",
) "youtube_controls_fullscreen_button.xml",
if (!is_19_17_or_greater) { "youtube_controls_cf_fullscreen_button.xml"
xmlFiles += "youtube_controls_fullscreen_button.xml" ).forEach { xmlFile ->
xmlFiles += "youtube_controls_cf_fullscreen_button.xml"
}
xmlFiles.forEach { xmlFile ->
val targetXml = get("res").resolve("layout").resolve(xmlFile) val targetXml = get("res").resolve("layout").resolve(xmlFile)
if (targetXml.exists()) { if (targetXml.exists()) {
document("res/layout/$xmlFile").use { document -> document("res/layout/$xmlFile").use { document ->
@ -238,6 +225,13 @@ val overlayButtonsPatch = resourcePatch(
} }
} }
node.getAttributeNode("yt:layout_constraintBottom_toTopOf")
?.let { attribute ->
if (attribute.textContent == "@id/quick_actions_container") {
attribute.textContent = "@+id/bottom_margin"
}
}
val (id, height, width) = Triple( val (id, height, width) = Triple(
node.getAttribute("android:id"), node.getAttribute("android:id"),
node.getAttribute("android:layout_height"), node.getAttribute("android:layout_height"),
@ -248,11 +242,7 @@ val overlayButtonsPatch = resourcePatch(
width != "0.0dip", width != "0.0dip",
) )
val isButton = if (is_19_17_or_greater) val isButton = id.endsWith("_button") && id != "@id/multiview_button" || id == "@id/youtube_controls_fullscreen_button_stub"
// Note: Do not modify fullscreen button and multiview button
id.endsWith("_button") && id != "@id/multiview_button"
else
id.endsWith("_button") || id == "@id/youtube_controls_fullscreen_button_stub"
// Adjust TimeBar and Chapter bottom padding // Adjust TimeBar and Chapter bottom padding
val timBarItem = mutableMapOf( val timBarItem = mutableMapOf(
@ -266,7 +256,6 @@ val overlayButtonsPatch = resourcePatch(
"48.0dip" "48.0dip"
if (isButton) { if (isButton) {
node.setAttribute("android:layout_marginBottom", marginBottom)
node.setAttribute("android:paddingLeft", "0.0dip") node.setAttribute("android:paddingLeft", "0.0dip")
node.setAttribute("android:paddingRight", "0.0dip") node.setAttribute("android:paddingRight", "0.0dip")
node.setAttribute("android:paddingBottom", "22.0dip") node.setAttribute("android:paddingBottom", "22.0dip")
@ -275,14 +264,15 @@ val overlayButtonsPatch = resourcePatch(
node.setAttribute("android:layout_width", layoutHeightWidth) node.setAttribute("android:layout_width", layoutHeightWidth)
} }
} else if (timBarItem.containsKey(id)) { } else if (timBarItem.containsKey(id)) {
node.setAttribute("android:layout_marginBottom", marginBottom)
if (!useWiderButtonsSpace) { if (!useWiderButtonsSpace) {
node.setAttribute("android:paddingBottom", timBarItem.getValue(id)) node.setAttribute("android:paddingBottom", timBarItem.getValue(id))
} }
} }
if (!is_19_17_or_greater && id.equals("@id/youtube_controls_fullscreen_button_stub")) { if (id.equals("@+id/bottom_margin")) {
node.setAttribute("android:layout_width", layoutHeightWidth) node.setAttribute("android:layout_height", marginBottom)
} else if (id.equals("@id/time_bar_reference_view")) {
node.setAttribute("yt:layout_constraintBottom_toTopOf", "@id/quick_actions_container")
} }
} }
} }

View File

@ -1,11 +1,12 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:yt="http://schemas.android.com/apk/res-auto" android:id="@+id/youtube_controls_bottom_ui_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:layoutDirection="ltr"> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:yt="http://schemas.android.com/apk/res-auto" android:id="@+id/youtube_controls_bottom_ui_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:layoutDirection="ltr">
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/speed_dialog_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_speed_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/copy_video_url_button" style="@style/YouTubePlayerButton"/> <View android:id="@+id/bottom_margin" android:layout_width="fill_parent" android:layout_height="0.0dip" android:background="@android:color/transparent" yt:layout_constraintBottom_toTopOf="@+id/time_bar_reference_view" />
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/copy_video_url_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_copy_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/copy_video_url_timestamp_button" style="@style/YouTubePlayerButton"/> <com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/speed_dialog_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_speed_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/bottom_margin" yt:layout_constraintRight_toLeftOf="@+id/copy_video_url_button" style="@style/YouTubePlayerButton"/>
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/copy_video_url_timestamp_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_copy_timestamp_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/mute_volume_button" style="@style/YouTubePlayerButton"/> <com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/copy_video_url_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_copy_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/bottom_margin" yt:layout_constraintRight_toLeftOf="@+id/copy_video_url_timestamp_button" style="@style/YouTubePlayerButton"/>
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/mute_volume_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_mute_volume_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/whitelist_button" style="@style/YouTubePlayerButton"/> <com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/copy_video_url_timestamp_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_copy_timestamp_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/bottom_margin" yt:layout_constraintRight_toLeftOf="@+id/mute_volume_button" style="@style/YouTubePlayerButton"/>
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/whitelist_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_whitelist_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/play_all_button" style="@style/YouTubePlayerButton"/> <com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/mute_volume_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_mute_volume_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/bottom_margin" yt:layout_constraintRight_toLeftOf="@+id/whitelist_button" style="@style/YouTubePlayerButton"/>
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/play_all_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_play_all_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/always_repeat_button" style="@style/YouTubePlayerButton"/> <com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/whitelist_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_whitelist_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/bottom_margin" yt:layout_constraintRight_toLeftOf="@+id/play_all_button" style="@style/YouTubePlayerButton"/>
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/always_repeat_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_repeat_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/external_download_button" style="@style/YouTubePlayerButton"/> <com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/play_all_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_play_all_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/bottom_margin" yt:layout_constraintRight_toLeftOf="@+id/always_repeat_button" style="@style/YouTubePlayerButton"/>
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/external_download_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_download_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" style="@style/YouTubePlayerButton"/> <com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/always_repeat_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_repeat_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/bottom_margin" yt:layout_constraintRight_toLeftOf="@+id/external_download_button" style="@style/YouTubePlayerButton"/>
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/external_download_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_download_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/bottom_margin" yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" style="@style/YouTubePlayerButton"/>
</android.support.constraint.ConstraintLayout> </android.support.constraint.ConstraintLayout>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 364 B

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 364 B

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 402 B

After

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 601 B

After

Width:  |  Height:  |  Size: 585 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 333 B

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 661 B

After

Width:  |  Height:  |  Size: 674 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 665 B

After

Width:  |  Height:  |  Size: 667 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 582 B

After

Width:  |  Height:  |  Size: 573 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 592 B

After

Width:  |  Height:  |  Size: 610 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 458 B

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 505 B

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 B

After

Width:  |  Height:  |  Size: 469 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 902 B

After

Width:  |  Height:  |  Size: 886 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 364 B

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 364 B

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 404 B

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 404 B

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 494 B

After

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 770 B

After

Width:  |  Height:  |  Size: 810 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 480 B

After

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 416 B

After

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 939 B

After

Width:  |  Height:  |  Size: 953 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 899 B

After

Width:  |  Height:  |  Size: 928 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 779 B

After

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 896 B

After

Width:  |  Height:  |  Size: 889 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 589 B

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 651 B

After

Width:  |  Height:  |  Size: 641 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 605 B

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 591 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 473 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 404 B

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 404 B

After

Width:  |  Height:  |  Size: 278 B

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<vector android:tint="?colorControlNormal" android:height="24.0dip" android:width="24.0dip" android:viewportWidth="24.0" android:viewportHeight="24.0" <vector android:tint="?colorControlNormal" android:height="24.0dip" android:width="24.0dip" android:viewportWidth="24.0" android:viewportHeight="24.0"
xmlns:android="http://schemas.android.com/apk/res/android"> xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M 5.29 20 L 5.3 13.5 L 6 13.5 L 5.99 19.273 L 10.628 19.273 L 10.628 20 L 5.29 20 Z M 13.388 20 L 13.388 19.273 L 18.015 19.273 L 18.015 13.5 L 18.715 13.5 L 18.715 20 L 13.388 20 Z M 5.29 10.5 L 5.29 4 L 10.628 4 L 10.628 4.727 L 5.99 4.727 L 5.99 10.5 L 5.29 10.5 Z M 18.015 10.5 L 18.015 4.727 L 13.388 4.727 L 13.388 4 L 18.715 4 L 18.715 10.5 L 18.015 10.5 Z" android:strokeColor="@android:color/white" android:strokeWidth="0.3" /> <path android:fillColor="@android:color/white" android:pathData="M 5.15 20.058 L 5.16 13.51 L 5.875 13.51 L 5.864 19.325 L 10.597 19.325 L 10.597 20.058 L 5.15 20.058 Z M 13.414 20.058 L 13.414 19.325 L 18.136 19.325 L 18.136 13.51 L 18.85 13.51 L 18.85 20.058 L 13.414 20.058 Z M 5.15 10.488 L 5.15 3.94 L 10.597 3.94 L 10.597 4.673 L 5.864 4.673 L 5.864 10.488 L 5.15 10.488 Z M 18.136 10.488 L 18.136 4.673 L 13.414 4.673 L 13.414 3.94 L 18.85 3.94 L 18.85 10.488 L 18.136 10.488 Z" android:strokeColor="@android:color/white" android:strokeWidth="0.3" />
</vector> </vector>