diff --git a/app/src/main/res/drawable-hdpi/ic_vpn_notification.png b/app/src/main/res/drawable-hdpi/ic_vpn_notification.png index 4a52ae6..17517bc 100644 Binary files a/app/src/main/res/drawable-hdpi/ic_vpn_notification.png and b/app/src/main/res/drawable-hdpi/ic_vpn_notification.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_vpn_notification.png b/app/src/main/res/drawable-mdpi/ic_vpn_notification.png index 9d1e509..264cd78 100644 Binary files a/app/src/main/res/drawable-mdpi/ic_vpn_notification.png and b/app/src/main/res/drawable-mdpi/ic_vpn_notification.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_vpn_notification.png b/app/src/main/res/drawable-xhdpi/ic_vpn_notification.png index ec645d4..438b91c 100644 Binary files a/app/src/main/res/drawable-xhdpi/ic_vpn_notification.png and b/app/src/main/res/drawable-xhdpi/ic_vpn_notification.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_vpn_notification.png b/app/src/main/res/drawable-xxhdpi/ic_vpn_notification.png index f69106c..5f5a6f1 100644 Binary files a/app/src/main/res/drawable-xxhdpi/ic_vpn_notification.png and b/app/src/main/res/drawable-xxhdpi/ic_vpn_notification.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_vpn_notification.png b/app/src/main/res/drawable-xxxhdpi/ic_vpn_notification.png index bf01af3..4dbad0b 100644 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_vpn_notification.png and b/app/src/main/res/drawable-xxxhdpi/ic_vpn_notification.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png index bdba2f3..7c6dd5a 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_background.png b/app/src/main/res/mipmap-hdpi/ic_launcher_background.png index 6ad2f93..2e8f887 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_background.png and b/app/src/main/res/mipmap-hdpi/ic_launcher_background.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png index 81a9d77..73914d0 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png and b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png index be2c10c..8c97c0b 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png index 91ae7c2..af50fdd 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_background.png b/app/src/main/res/mipmap-mdpi/ic_launcher_background.png index b7c609c..d97bf16 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_background.png and b/app/src/main/res/mipmap-mdpi/ic_launcher_background.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png index 1a1ccf4..e361e3c 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png and b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png index 8a02ac4..0a893ce 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 5477e32..2d898d4 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png index c5d2f00..8316b69 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png index 049ae0e..ae31c72 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png index 5dd4469..b8e5d4e 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index efe9a44..c54a02e 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png index 0148bbb..e9e1aa2 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png index 945c2cc..fbca0e7 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png index bd1dcc3..713b9dd 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 8daabc3..05323b1 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png index df20bf6..3b3b8c4 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png index 296fb78..3323e73 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png index 9283b7b..d2d2c01 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/assets/branding/identity-lock.json b/assets/branding/identity-lock.json index 3f833ad..ee2738d 100644 --- a/assets/branding/identity-lock.json +++ b/assets/branding/identity-lock.json @@ -1,54 +1,54 @@ { "repository": "https://github.com/andre487/MegaProxyIdentity", - "commit": "8958f0f6b74b03fcfc874e2ac4367ecfddeaace5", - "renderer": "rsvg-convert version 2.62.3\n\nlibraries used:\n cairo 1.18.6\n pango 1.58.2\n harfbuzz 14.6.0\n fontconfig 2.18.3", + "commit": "65898348e43b94a8831180f8aa2b00cabd520fe4", + "renderer": "rsvg-convert version 2.62.4\n\nlibraries used:\n cairo 1.18.6\n pango 1.57.1\n harfbuzz 14.1.0\n fontconfig 2.17.0", "sources": { - "SVG/icon.svg": "18da427e78dd555a0b41d568b7f330512c924a226c4b20bdf7574de4359f6735", - "SVG/icon-radius.svg": "a7b233505adddcc3f5814dbfa33f0e875ae26a5cdb6caae792395ef9dc3e2782", - "SVG/icon-round.svg": "21709d03ca94deb643f27c28765419a88fde0ff93564b347b61879e306e50d81", - "SVG/feature-graphic.svg": "cb76a52ba46da5e0ee63821325d5481731f17436059c9c026111d41c37a412a0", - "SVG/social-preview.svg": "7edb6fa286e896cba12c8080fa4147f20fc3abd84713edf252520cdccce6e107", - "SVG/icon-taskbar.svg": "790cc523b24d6e9256c63068f74552d156b1a099ac14b9890570f5b516b4f8ab", + "SVG/icon.svg": "cfa4002c330e462e1533fe9c045c33c5e374aa02d912d9c19874f254a35825f9", + "SVG/icon-radius.svg": "c1765e20535898b327d7f6f0153ac127dd949277c2fb377288fa418cf652516b", + "SVG/icon-round.svg": "3fa8361afeccde26f8aafb0588cd6d30ad0cd7448adc9f382f0f3e680b25a6f5", + "SVG/feature-graphic.svg": "ba7e6d86360a74350820a72e4ec958be7cd3e5062ebcf6e41c4f22a336dca534", + "SVG/social-preview.svg": "986f2bfab9b0c06bee6beeca7a2d51ee8adba471363af0633d7e49b1e329189d", + "SVG/icon-taskbar.svg": "3e14289c2a91ff125109ffa1cdc983b37201a2a6219359a6108b232045b5e71a", "LICENSE": "a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499" }, "local_sources": { "docs/assets/get-it-on-github.svg": "a3463008b42db57aede368deb5cfb5d4b137c318f04d8fead00118bc64263693" }, "outputs": { - "app/src/main/res/drawable-hdpi/ic_vpn_notification.png": "7acdbd9e9ce1038c9ccc2a312868384bc93f8d3e84bb1c316e7bbe6880a7bee8", - "app/src/main/res/drawable-mdpi/ic_vpn_notification.png": "25628dc8ec8f60a5931ad2e9cf90721ace1d322121abb6c2f3db2d2d624c920f", - "app/src/main/res/drawable-xhdpi/ic_vpn_notification.png": "eb1e344686913d8dfe10342b1d109d826e082cd929b093c60d08ea4d58befce3", - "app/src/main/res/drawable-xxhdpi/ic_vpn_notification.png": "7e33bbbdf9d292dd2751719937cbd40e180720da918b4abeec2e43164ed1e03b", - "app/src/main/res/drawable-xxxhdpi/ic_vpn_notification.png": "79105f9bcf8b53a820249c6a466979871e6766b9d06ee8be410fe493a0104b20", + "app/src/main/res/drawable-hdpi/ic_vpn_notification.png": "68a85aaee7e25183e54dab83755d5bd502941bfd77b73c99ed866a32b93a9fb3", + "app/src/main/res/drawable-mdpi/ic_vpn_notification.png": "d404ea8ae1d7b733f5a3df2e72a3dfc426379a66673a84787174220573cf33b1", + "app/src/main/res/drawable-xhdpi/ic_vpn_notification.png": "00e085877db72eca7dab1e88144708d380566488eaa010a0f5035ff0ac8bc2a5", + "app/src/main/res/drawable-xxhdpi/ic_vpn_notification.png": "2d60ce2e78240057102fadbf32088eb0b8d50029b0862d43724d27c5fb8ad227", + "app/src/main/res/drawable-xxxhdpi/ic_vpn_notification.png": "9375d6ae2f05cb2c6ffcf4b7a55e8e7a17e253a587bc0d2eece53365121aa966", "app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml": "c4fe288de664c1d03457499c5e5c060695265f705ee0ab3222668efd7044bbc1", "app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml": "c4fe288de664c1d03457499c5e5c060695265f705ee0ab3222668efd7044bbc1", - "app/src/main/res/mipmap-hdpi/ic_launcher.png": "5c43f767e395bcbf81a9757af9c7415721c78112ab0205b2023d96d91d63ab35", - "app/src/main/res/mipmap-hdpi/ic_launcher_background.png": "b7bc17dbd5345a7b87c45ea6f1caae55a4dd7b5c283b420361b28b3ce604d2f9", - "app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png": "397b4ada2959790f22525dc2d3096e7981dcae39e3a9dfa0def9012cf8b3f74b", - "app/src/main/res/mipmap-hdpi/ic_launcher_round.png": "248599c82f2035734a16418794f73bc7399839cf2f5b9a1ffce7fa166128d416", - "app/src/main/res/mipmap-mdpi/ic_launcher.png": "8d27ba9f7c0597955a63feb331b2e24c0115302cffc5723e4bb6f9b5ddad4d7a", - "app/src/main/res/mipmap-mdpi/ic_launcher_background.png": "06beddd6cb61455d1f8e3003a018141c83683266e9a189900c81ceae3d43784f", - "app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png": "d533928a889c31741a2688819c3644658bd953e31af09c7d19bb0dbaa90478c3", - "app/src/main/res/mipmap-mdpi/ic_launcher_round.png": "f7636b8f2be5dc929d3ad8f5cc7b347757dc0054612aea9ae5f391cf69f40d54", - "app/src/main/res/mipmap-xhdpi/ic_launcher.png": "874c40eda801a275abc52bd4f6819738a18730796c90ea980c5474e221f09686", - "app/src/main/res/mipmap-xhdpi/ic_launcher_background.png": "33e9efa0c5ec99b33e1ed09cfb352f0f88d4a744556176fd60d3dcd8203de2d5", - "app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png": "6c65f3a6c30062a33506f25fef78af602c34ac73979d5b803ecb58ccaefe8b1f", - "app/src/main/res/mipmap-xhdpi/ic_launcher_round.png": "c35ce610605451931a91f8daed0f29ea0717a1dd3c6516e4093362512c8e5601", - "app/src/main/res/mipmap-xxhdpi/ic_launcher.png": "b2025ac76bd882e251ef1c4ac0fa3005c592c21d334696a85e476fc08678124e", - "app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png": "2087baf37a52a2bcb9eb7871f8e8cdd3f6c7ea5d0c6d960bdb177184628c4ebd", - "app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png": "a9d96a7e692414a55a954eb684d669eb927711189622f9faf7ee5eba6912cc22", - "app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png": "985db1ecd8cd245b3225b7eeda465ecc4dce2c2d736e3f2e11699f780c29574f", - "app/src/main/res/mipmap-xxxhdpi/ic_launcher.png": "9f29f75f64b211c59062f72528acadfe7f61f5ebaec9b66f018a2a66671ae344", - "app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png": "63885f095aa8a529a1d03e7219bcf5af6ff8b662e9ebf2bf8a8efdc03ff4eb54", - "app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png": "fb47c5ce427b8c8cc0c8435a2f3f5ab6ba6864404986416280f554ad7f225242", - "app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png": "ddfdbdd28730b37e127f6f20b46a505f8e63fc490298e1b5e8d2b592541c181a", + "app/src/main/res/mipmap-hdpi/ic_launcher.png": "5fdf89a0bbe6d3d2fb922285954c8a32bab73c69dff92156ea10e2114e92d343", + "app/src/main/res/mipmap-hdpi/ic_launcher_background.png": "2a6992aba64cdc5a51d5c0d8d5b17a676e2bd73a3907e211a1c3275f9e05058a", + "app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png": "47f627f03f55875661d7ec2ae32cec2d0c5db46424c7059b7079b65dfda2eb82", + "app/src/main/res/mipmap-hdpi/ic_launcher_round.png": "793fa51f0ce74aacee2feb7abd7c192203b4f47de862573122bb5829330908ed", + "app/src/main/res/mipmap-mdpi/ic_launcher.png": "7b9862db1aa308f1655ecc124c2d78a5223ff3e47b75e2e9a8a7a3ad3f454070", + "app/src/main/res/mipmap-mdpi/ic_launcher_background.png": "8750b54e82c019411ad65ce24dfa7c3b034fdfec66c13efe5473cf208d448c1a", + "app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png": "506b35f4cb79114e23ed384714467ef926860e171dded860e702f8515aca158f", + "app/src/main/res/mipmap-mdpi/ic_launcher_round.png": "f607788a4b7ff681e3176d89a5904a2528dfb6bba7b1322bdda300e02af27319", + "app/src/main/res/mipmap-xhdpi/ic_launcher.png": "5ac9398dcfabd633b9824b93b4da379b4a033b44eda3b5267f5598dab7f46731", + "app/src/main/res/mipmap-xhdpi/ic_launcher_background.png": "59069874f7283bfbf3d814e66f37b3deb815304b774e3215ac7261802ec7e137", + "app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png": "f892b6491bd0c3f045d8b3e8c72e630a63ff3679a31651f61b8d70d643ea904e", + "app/src/main/res/mipmap-xhdpi/ic_launcher_round.png": "0a46a1429a72a22149a8d9208719a8a4215e049ae1039b0b27cb1003360d1759", + "app/src/main/res/mipmap-xxhdpi/ic_launcher.png": "f7f51b478a06fa2bccad50beff18a10d7f6fad72ef55ef62e0ee35a0cb4e3517", + "app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png": "f60e5fe832fbe26ecf49d2353d279b67669eeec6c185d90fa412695f929c4946", + "app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png": "39467a45decf6412e1f6524aa3bf12d5e709c8d8990226f5a9a058c3956a74f7", + "app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png": "756272d7a8ae14fd34babd61f58bc8e75037ee51f9deb19adb68c3bf700f981c", + "app/src/main/res/mipmap-xxxhdpi/ic_launcher.png": "11471f03e6a389b255cf233f89b5de42a7a2bffca226148efd6ec165e79fca3b", + "app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png": "ba17328d6a5a0017c42ef3ab21ed62fa0e11066f11020fe2282e6ff494e11cc2", + "app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png": "a355200519dbf3e797167315e4f807aaff681f2630614472ad7857fbb720cd51", + "app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png": "e6214241110550527581028bfaff677706c70bd0663c2b3df33094caf4b9888a", "assets/branding/IDENTITY-LICENSE": "a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499", - "docs/assets/get-it-on-github.png": "6f5cca8d2a224beff6ef2310c406dbda776f6f02ce6deb8791b30675df9e1da6", - "docs/assets/icon-radius.svg": "a7b233505adddcc3f5814dbfa33f0e875ae26a5cdb6caae792395ef9dc3e2782", - "docs/assets/social-preview.png": "972e5faa58aded5e8033c550b9757de4c17ab3e318ce06f92cfa3b9b87ab074a", - "fastlane/metadata/android/en-US/images/featureGraphic.png": "6651973cc2b3432d319c131742645d427874944e2b72b5aa9db9c939426fe9b6", - "fastlane/metadata/android/en-US/images/icon.png": "7ad68cc3e416ef0b09901b0a1a5eab2d23360714365ee0c89bd85ec51a650d6c", - "fastlane/metadata/android/ru-RU/images/featureGraphic.png": "6651973cc2b3432d319c131742645d427874944e2b72b5aa9db9c939426fe9b6", - "fastlane/metadata/android/ru-RU/images/icon.png": "7ad68cc3e416ef0b09901b0a1a5eab2d23360714365ee0c89bd85ec51a650d6c" + "docs/assets/get-it-on-github.png": "e922fb688813eeaaaae2c4e908bb7f0c1fcf4f400208b6da7b6ea953d7bb08ed", + "docs/assets/icon-radius.svg": "c1765e20535898b327d7f6f0153ac127dd949277c2fb377288fa418cf652516b", + "docs/assets/social-preview.png": "5b9df7e3228cee2cd898cfdab9e2ecbf2cbe6086dbbf0d4775bfbbc47260c583", + "fastlane/metadata/android/en-US/images/featureGraphic.png": "951079c01b6e13849ad5a16be9cd3d9226acb5cee6f7d0368a97011262daf7a3", + "fastlane/metadata/android/en-US/images/icon.png": "48b74177dce8d5f6c2481850dd1440bff31c4e044a944070e106d015c61b9282", + "fastlane/metadata/android/ru-RU/images/featureGraphic.png": "951079c01b6e13849ad5a16be9cd3d9226acb5cee6f7d0368a97011262daf7a3", + "fastlane/metadata/android/ru-RU/images/icon.png": "48b74177dce8d5f6c2481850dd1440bff31c4e044a944070e106d015c61b9282" } } diff --git a/docs/assets/get-it-on-github.png b/docs/assets/get-it-on-github.png index 8388a28..2072ff7 100644 Binary files a/docs/assets/get-it-on-github.png and b/docs/assets/get-it-on-github.png differ diff --git a/docs/assets/icon-radius.svg b/docs/assets/icon-radius.svg index cd574a3..fc47476 100644 --- a/docs/assets/icon-radius.svg +++ b/docs/assets/icon-radius.svg @@ -1,148 +1,820 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + +image/svg+xml diff --git a/docs/assets/social-preview.png b/docs/assets/social-preview.png index 96156e6..1562c15 100644 Binary files a/docs/assets/social-preview.png and b/docs/assets/social-preview.png differ diff --git a/docs/en/graphics.md b/docs/en/graphics.md index 4ba4af0..f6e8f85 100644 --- a/docs/en/graphics.md +++ b/docs/en/graphics.md @@ -37,8 +37,10 @@ without downloading Identity or running a renderer. | Local `docs/assets/get-it-on-github.svg` | 1292×500 GitHub download badge PNG; local notices are retained | Adaptive layers retain the SVG's background/rings and keep the wordmark inside Android's safe -circle by scaling it to 75% of the 108dp foreground canvas. The extraction uses the Identity -`icon-2` and `Background` layer IDs; a changed SVG structure requires reviewing the recipe. +circle by scaling it to 75% of the 108dp foreground canvas. Extraction selects groups by +`data-name="background"` and `data-name="foreground"`, preserving definitions and parent transforms. +Each group must occur exactly once and neither may contain the other. Internal IDs and group +structure can change freely; Inkscape labels are preserved by Identity's exporter. The social preview is rendered directly from its dedicated Identity SVG. Identity-derived artwork retains the upstream license in `assets/branding/IDENTITY-LICENSE`; the GitHub badge retains its separate notices. diff --git a/docs/ru/graphics.md b/docs/ru/graphics.md index f5acf19..6e15f32 100644 --- a/docs/ru/graphics.md +++ b/docs/ru/graphics.md @@ -38,9 +38,11 @@ Lane вызывает `scripts/update_graphics.py`. Скрипт определ | Локальный `docs/assets/get-it-on-github.svg` | PNG кнопки GitHub 1292×500; локальные лицензии сохраняются | Adaptive icon сохраняет фон и кольца SVG, а логотип уменьшается до 75% холста 108dp, чтобы -вписаться в безопасную окружность Android. Извлечение использует ID слоёв `icon-2` и `Background`; -изменение структуры SVG требует проверки рецепта. Social preview генерируется из отдельного -SVG Identity. Лицензия Identity сохраняется в +вписаться в безопасную окружность Android. Извлечение выбирает группы по +`data-name="background"` и `data-name="foreground"`, сохраняя определения и родительские трансформации. +Каждая группа должна встречаться ровно один раз; они не должны быть вложены друг в друга. +Внутренние ID и структура групп могут меняться свободно; метки Inkscape сохраняет экспортёр Identity. +Social preview генерируется из отдельного SVG Identity. Лицензия Identity сохраняется в `assets/branding/IDENTITY-LICENSE`; у кнопки GitHub остаются отдельные лицензии. `bundle exec fastlane android python_checks` проверяет хеши готовых файлов, размеры, закрепление diff --git a/fastlane/metadata/android/en-US/images/featureGraphic.png b/fastlane/metadata/android/en-US/images/featureGraphic.png index f49cfa1..1e2ce44 100644 Binary files a/fastlane/metadata/android/en-US/images/featureGraphic.png and b/fastlane/metadata/android/en-US/images/featureGraphic.png differ diff --git a/fastlane/metadata/android/en-US/images/icon.png b/fastlane/metadata/android/en-US/images/icon.png index 66bcb0e..c67b816 100644 Binary files a/fastlane/metadata/android/en-US/images/icon.png and b/fastlane/metadata/android/en-US/images/icon.png differ diff --git a/fastlane/metadata/android/ru-RU/images/featureGraphic.png b/fastlane/metadata/android/ru-RU/images/featureGraphic.png index f49cfa1..1e2ce44 100644 Binary files a/fastlane/metadata/android/ru-RU/images/featureGraphic.png and b/fastlane/metadata/android/ru-RU/images/featureGraphic.png differ diff --git a/fastlane/metadata/android/ru-RU/images/icon.png b/fastlane/metadata/android/ru-RU/images/icon.png index 66bcb0e..c67b816 100644 Binary files a/fastlane/metadata/android/ru-RU/images/icon.png and b/fastlane/metadata/android/ru-RU/images/icon.png differ diff --git a/scripts/tests/test_update_graphics.py b/scripts/tests/test_update_graphics.py index e515ab8..eb09b23 100644 --- a/scripts/tests/test_update_graphics.py +++ b/scripts/tests/test_update_graphics.py @@ -12,8 +12,11 @@ import update_graphics as m ICON = b""" - -""" + + + + +""" class UpdateGraphicsTest(unittest.TestCase): @@ -104,12 +107,34 @@ def render(content, width, height, directory): def test_adaptive_layers_preserve_center_and_reject_changed_structure(self): background, foreground = map(m.svg, m.adaptive_layers(ICON)) + self.assertIsNotNone(background.find(".//*[@id='Gradient']")) + self.assertIsNotNone(background.find(".//*[@data-name='Ring 3']")) + self.assertIsNone(foreground.find(".//*[@data-name='Ring 1']")) + self.assertEqual( + "scale(0.5)", foreground.find(f"{{{m.SVG}}}g").get("transform") + ) self.assertIsNone(background.find(f".//*[@id='logo']")) - self.assertIsNone(foreground.find(f".//*[@id='Background']")) + self.assertIsNone(foreground.find(f".//*[@id='Gradient']")) self.assertIsNotNone(foreground.find(f".//*[@id='logo']")) self.assertEqual("-20 -20 160 160", foreground.get("viewBox")) with self.assertRaises(ValueError): - m.adaptive_layers(ICON.replace(b'id="Background"', b'id="renamed"')) + m.adaptive_layers( + ICON.replace(b'data-name="background"', b'data-name="renamed"') + ) + # Internal IDs, group names and nesting may change independently of the contract. + changed = ICON.replace(b"Gradient", b"new-gradient").replace( + b"Ring 2", b"new-ring" + ) + m.adaptive_layers(changed) + with self.assertRaises(ValueError): + m.adaptive_layers( + ICON.replace(b'data-name="MPX"', b'data-name="foreground"') + ) + with self.assertRaises(ValueError): + m.adaptive_layers( + b'' + b'' + ) with self.assertRaises(ValueError): m.svg( b'' diff --git a/scripts/update_graphics.py b/scripts/update_graphics.py index 0fe60c5..7eb96ca 100644 --- a/scripts/update_graphics.py +++ b/scripts/update_graphics.py @@ -65,15 +65,25 @@ def svg(content): def adaptive_layers(content): background, foreground = svg(content), svg(content) - for root, keep_background in ((background, True), (foreground, False)): - artwork = root.find(f".//{{{SVG}}}g[@id='icon-2']") - if artwork is None or artwork.find(f"{{{SVG}}}g[@id='Background']") is None: - raise ValueError( - "Identity icon layers changed; review the adaptive icon recipe" + for root, discard in ((background, "foreground"), (foreground, "background")): + layers = {} + for name in ("background", "foreground"): + matches = root.findall(f".//{{{SVG}}}g[@data-name='{name}']") + if len(matches) != 1: + raise ValueError(f"Expected exactly one Identity {name} group") + layers[name] = matches[0] + if any( + layers[other] in layers[name].iter() + for name, other in ( + ("background", "foreground"), + ("foreground", "background"), ) - for child in list(artwork): - if (child.get("id") == "Background") != keep_background: - artwork.remove(child) + ): + raise ValueError("Identity background and foreground groups must not nest") + for parent in root.iter(): + if layers[discard] in list(parent): + parent.remove(layers[discard]) + break # Keep the complete wordmark inside Android's 66dp safe circle on the 108dp layer. x, y, width, height = map(float, foreground.get("viewBox").split()) foreground.set(