From 65ec42c9a1fcb8d7aee74144e3b8eeeb13691331 Mon Sep 17 00:00:00 2001 From: Cccc_ <47687154+Cccc-owo@users.noreply.github.com> Date: Thu, 27 Jul 2023 10:54:37 +0800 Subject: [PATCH 001/215] Update strings.xml based on c651008 --- app/src/main/res/values-zh-rCN/strings.xml | 122 +++++++++++++++++---- 1 file changed, 99 insertions(+), 23 deletions(-) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 6e484603e..6a718a192 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -77,6 +77,8 @@ 改变媒体播放器图标 快速设置面板 修改快速设置面板 + 快速设置面板边距 + 修改快速设置面板边距 Monet 强调色 使用系统 Monet 强调色 @@ -94,24 +96,27 @@ 启用深色主题(黑) 深色主题(Amoled) 启用深色主题(Amoled) + + 深色 + Amoled 警告 继续 Iconify Logo 嘿,你好! 重启 - 关闭 + 禁用 启用 应用 圆角半径 图标 - 关闭自定义颜色 + 禁用自定义颜色 应用颜色 互联网 安息 飞行模式 - 关闭 + 禁用 位置信息 - 关闭 + 禁用 蓝牙 开启 自定义无趣的 Android UI @@ -179,18 +184,19 @@ 帮助我完成 Shell 脚本。 帮助我解决 RRO 问题。 测试本应用程序。 + 许可使用「更好的快速设置」。 在 Github 上的贡献。 - 已应用 请先授予存储权限! 安装中 出了点问题 请先重启你的设备! - 关闭所有功能 - 禁用 Iconify 所做的所有应用覆盖、颜色和杂项修改。 - 长按可关闭所有功能 - 所有功能已关闭 + 禁用所有功能 + 禁用 Iconify 的所有应用覆盖、颜色和杂项修改。 + 长按可禁用所有功能 + 所有功能已禁用 重启 SystemUI - 有时候一些选项可能被应用了,但在 SystemUI 重启之前不可见。这种情况下,您可以使用此选项重启 SystemUI。 + 如果应用的选项不能立即生效,则重启 SystemUI。 长按以重启 SystemUI 全屏 隐藏药丸和键盘的间距 @@ -204,10 +210,10 @@ 隐藏手势导航药丸 Monet 药丸 应用强调色至药丸 - 关闭左侧手势 - 关闭左侧的返回手势 - 关闭右侧手势 - 关闭右侧的返回手势 + 禁用左侧手势 + 禁用左侧的返回手势 + 禁用右侧手势 + 禁用右侧的返回手势 降低灵敏度 降低手势灵敏度 隐藏键盘按钮 @@ -220,7 +226,8 @@ 导入/导出 导出设置 导入设置 - 实验性功能 + 重置设置 + 实验性 无法连接至服务器!\n这可能与您的互联网连接有关,或者此刻服务器可能已经宕机。请稍后再试。 未找到更新日志!\n这可能与您的互联网连接有关,或者此刻服务器可能已经宕机。请稍后再试。 下载 @@ -235,7 +242,7 @@ 检查更新失败! 不可用 你确定吗? - 你会失去当前的设置和配置。 + 你将会失去当前的设置和设定。 是的 成功导入了设置 @@ -355,6 +362,21 @@ 样式 8 样式 9 样式 10 + 样式 11 + 样式 12 + 样式 13 + 样式 14 + 样式 15 + 样式 16 + 样式 17 + 样式 18 + 样式 19 + 样式 20 + 样式 21 + 样式 22 + 样式 23 + 样式 24 + 样式 25 选择标头图片 选择时钟字体 更新可用 @@ -374,11 +396,14 @@ Monochrome Tonal Spot Vibrant + Rainbow Expressive Fidelity + Fruit Salad Content 未找到应用程序! - 强调色饱和度 + 主强调色饱和度 + 副强调色饱和度 背景色饱和度 背景色亮度 音乐标题 @@ -413,7 +438,7 @@ 选择一种你喜欢的样式 在 Telegram 上协助我。 注意! - 在启用 Iconify LSPosed模块之前,长按 Iconify 并点击重新优化。之后,启用 Iconify 并重启你的 SystemUI。为了获得更流畅的体验,这是必要的。 + 在启用 Iconify LSPosed 模块之前,长按 Iconify 并点击重新优化。之后,启用 Iconify 并重启你的 SystemUI。为了获得更流畅的体验,这是必要的。 默认系统色调 Monet / 强调色色调 自定义色调(颜色选择器) @@ -433,9 +458,9 @@ 双重切换深色模式 重启 SystemUI 什么都不做(我会自己来做) - XPosed 设置 + Xposed 设置 显示警告 - 在 XPosed 菜单中显示关于如何重新优化模块的警告 + 在 Xposed 菜单中显示关于如何重新优化模块的警告 强制应用方法 强制应用 Xposed 菜单中的更改的方法 杂项设置 @@ -448,8 +473,8 @@ 电池样式 电池宽度 电池高度 - 关闭动画 - 关闭 Iconify 的滚动动画 + 禁用动画 + 禁用 Iconify 的滚动动画 开机后重启 SystemUI 一些选项,如模糊强度,在重新启动 SystemUI 之前不会生效 跳过 @@ -494,7 +519,7 @@ 样式 调整 设置 - 关闭 + 禁用 DrDisagree 用\u2764\uFE0E制作 未找到支持的音乐播放器 你好,空白片段 @@ -523,7 +548,7 @@ 透明通知栏 仅使通知栏透明 流体快速设置主题 - 双色调半透明快速设置主题\n不使用自定义形状 + 双色调半透明快速设置主题\n切换主题以修复颜色\n不使用自定义形状 禁用系统 Monet 有助于保留自定义颜色\n需要重启 SystemUI 双色调线性图标包 @@ -547,4 +572,55 @@ 默认图标 带主题的图标 怀旧图标 + 锁屏自定义 + 启用锁屏自定义 + 通知透明度 + 快速设置流体的通知透明度\n不使用自定义通知样式 + Tablet Header + 启用大的屏幕阴影页眉 + 跟随系统 + 透明文本 + 自定义颜色 + 状态栏时钟颜色 + 时钟颜色选取 + 设置状态栏时钟文字的颜色 + Accent Privacy Chip + Make privacy chip accent colored + 启用 + 关闭 + 中央时钟 + 将时钟移至视图中央 + 在 Landscape 中隐藏 + 在 Landscape 模式下隐藏时钟 + 自动隐藏时钟 + 在收到通知时隐藏时钟 + Iconify 缓存已清理 + 清理应用程序缓存 + 清除因使用自定义字体、图像或 gif 而产生的缓存。 + 自定义时钟颜色 + 自定义颜色代替原色 + 时钟颜色选取 + 设置锁屏时钟文字的颜色 + Tablet Landscape + 又称为「更好的快速设置」\n必须使用消除刘海屏功能 + 安装已跳过。某些功能可能无法正常运行。 + 重启你的设备! + 你目前处于 Xposed Only 模式。这需要在 LSPosed 应用程序中启用 iconify。还要确保 Iconify 模块显示在 Magisk 管理器中。要访问所有功能,只需重新打开应用程序并完成安装过程即可! + 电源菜单透明度 + 快速设置流体的电源菜单透明度\n不使用自定义通知样式 + 时钟字体 + 为标头时钟使用自定义字体\n不要从「最近」中选择文件 + 自定义时钟颜色 + 自定义颜色代替原色 + 时钟颜色选取 + 设置标头时钟文本的颜色 + 隐藏数据禁用图标 + 隐藏数据禁用指示器 + 是的 + 不了 + 成功导入设置 + 成功导出设置 + 正常 + 像素 + Monet 样式 From 3eeb47e46538f3aa780df6afc4f0db90e9d4c09a Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Thu, 27 Jul 2023 10:19:18 +0300 Subject: [PATCH 002/215] Add files via upload --- app/src/main/res/values/arrays.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index dc66c3ca9..141d9eb8b 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -6,6 +6,7 @@ com.google.android.apps.nexuslauncher + العربيه English Chinese (China) French @@ -17,6 +18,7 @@ Vietnamese + ar en zh fr @@ -107,4 +109,4 @@ @string/monet_content @string/monet_fruitsalad - \ No newline at end of file + From 80869778de3f30796adfc99bedbf0a34005c7e9d Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Thu, 27 Jul 2023 10:19:56 +0300 Subject: [PATCH 003/215] Create .txt --- app/src/main/res/values-ar/.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 app/src/main/res/values-ar/.txt diff --git a/app/src/main/res/values-ar/.txt b/app/src/main/res/values-ar/.txt new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/app/src/main/res/values-ar/.txt @@ -0,0 +1 @@ + From 1fc77dcc0a1ab4f62b32fb987efa2b1d5ad42554 Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Thu, 27 Jul 2023 10:20:10 +0300 Subject: [PATCH 004/215] Add files via upload --- app/src/main/res/values-ar/strings.xml | 558 +++++++++++++++++++++++++ 1 file changed, 558 insertions(+) create mode 100644 app/src/main/res/values-ar/strings.xml diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml new file mode 100644 index 000000000..0e4d92a55 --- /dev/null +++ b/app/src/main/res/values-ar/strings.xml @@ -0,0 +1,558 @@ + + Iconify + + + شريط السطوع + تخصيص شريط التقدم + محرك الألوان + التحكم بالألوان + إضافات + تعديلات وخيارات إضافية + Iconify + حزمة الأيقونات + تغيير حزمة ايقونات النظام + حول + معلومات حول هذا التطبيق + مشغل الوسائط + تغيير شكل مشغل الوسائط + إشعار + تخصيص نمط الإشعار + الأيقونة والتسمية + الصف والعمود + QS بلاط لوحة + QS تخصيص بلاط لوحة + إعدادات + إعدادات متنوعة + لوحة الصوت + تخصيص تصميم لوحة الصوت + محرك Monent + تجاوز لوحة الألوان النقدية + تجريبي + التغيير + قائمة XPosed + مطلوب LSPosed لهذه الخيارات + متنوع + التخصيصات المتنوعة + الشفافية & التعتيم + تمكين الطمس والشفافية للـQS + ساعة قفل الشاشة + أضف ساعة مخصصة على شاشة القفل + استدارة واجهة المستخدم + تغيير نصف قطر الزاوية للواجهة + شريط التنقل + تعديل خيارات التنقل + صورة الرأس + أضف صورة مخصصة على لوحة QS + ساعة الرأس + أضف ساعة مخصصة على لوحة QS + رقاقة الخلفية + أضف رقاقة ملونة خلف الساعة + QS + القرص المتعلق بلوحة QS + بطارية ملونة + تغيير لون رمز البطارية + آخر + تعديلات Xposed المتنوعة + شريط الحالة + تعديل واجهة شريط الحالة + الألوان الأساسية + تغيير اللون الأول و الثانوي + أيقونات الإعدادات + تغيير حزمة أيقونات الإعدادات + شكل الأيقونة + تغيير أشكال أيقونات النظام + نوعية Pixel + للرومات ذات لوحة QS السوداء + حجم بلاط QS + تغيير ارتفاع بلاط لوحة QS + نمط البطارية + تخصيص عرض أيقونة البطارية + نخب الإطار + تغيير نمط الإشعار التوست + شريط التقدم + استخدم أسلوب تقدم مختلف + تحويل + تخصيص مظهر التبديل + أيقونات الوسائط + تغيير أيقونات مشغل الوسائط + لوحة QS + تعديل لوحة QS + + تمييز Monet + إستخدم Monet الخاص بالنظام كلون تمييز + تدرج Monet + إستخدم Monet الخاص بالنظام كلون متدرج + معاينة منتقي الألوان + ظلال دقيقة + قم بتعطيل هذا للحصول على الألوان المختارة بدقة + لون أولي + متنقي الألوان + لون ثانوي + الحد الأدنى من لوحة QS + إزالة الظل العلوي للوحة QS + مظهر شديد السواد + تمكين مظهر شديد السواد + تحذير + استمر + شعار Iconify + مرحباً! + إعداة تشغيل + تعطيل + تمكين + تطبيق + نصف قطر الجوانب + أيقونة + تعطيل الألوان المخصصة + تطبيق الألوان + الإنترنت + Iconify_WIFI + وضع الطيران + معطل + الموقع + معطل + بلوتوث + ممكن + قم بتغيير واجهة المستخدم الممله الخاصه بك - تم تعريب التطبيق بواسطة MRX7014 و MUHAMMAD BAHAA + شكرا ل + المساهمون + معاينة مشغل الوسائط + خلفية التمييز + خلفية النظام + خلفية شديدة السواد + أيقونات مشغل الوسائط + إخفاء التسمية + إزالة تسميات بلاط QS + حجم النص + المحدد: + (إفتراضي) + حجم الأيقونة + حرك الأيقونة + لون نص QS + دائماً أبيض + عنوان أبيض، عنوان فرعي أبيض + دائما الأبيض v2 + عنوان أبيض ، لهجة الترجمة + اتبع النظام + نظام العنوان ونظام الترجمة + اتبع النظام v2 + نظام العنوان، لهجة الترجمة + إصلاح لون النص + استخدم إذا لم تعمل تلك المذكورة أعلاه + قد لا تعمل بعض المجموعات في بعض الرومات. في هذه الحالة، ما عليك سوى تجربة بعض التركيبات الأخرى واختيار الأفضل بالنسبة لك. + صف لوحة QS السريع + صف لوحة QS + عمود لوحة QS + إعادة ضبط + الصف والعمود + تغيير صفوف وأعمدة بلاط QS + الرمز والتسمية + تغيير خيارات الأيقونة والتسمية + خلفية رقيقة + خلفية سميكة + بدون خلفية + تم تحديث Iconify للتو! + أعد تشغيل هاتفك لاستخدام أحدث الميزات والخيارات المضافة. + اعادة التشغيل الان + Aurora + Gradicon + Plumpy + معاينة الإعلام.\nانقر لتطبيق هذا النمط. + الرجاء الانتظار + تم التطبيق + معطل + اعادة ضبط + إعادة تشغيل مطلوبة + إعادة التشغيل في 5 ثوانِِ + Iconify إصدار + اسم الإصدار: + كود الإصدار: + نُسخ إلى الحافظة + إصدار + GitHub + تحقق من مستودع Github. + Telegram + اتبع للحصول على آخر الأخبار & التحديثات. + لأيقونات Plumpy. & Fluency. + لمجموعة أيقونات داخل التطبيق. + لمساعدتي في بسكريبت Shell. + لمساعدتي في RRO. + لاختبار التطبيق. + للمساهمة على GitHub. + تم التطبيق + امنح حق الوصول إلى التخزين أولاً! + جارِِ + هناك خطأ ما + أعد تشغيل جهازك أولاً! + تعطيل كل شيء + قم بتعطيل جميع التراكبات والألوان والتغييرات المتنوعة المطبقة بواسطة Iconify. + اضغط لفترة طويلة لتعطيل كل شيء + كل شيء معطل + إعادة تشغيل SystemUI + في بعض الأحيان قد يتم تطبيق بعض الخيارات ولكنها غير مرئية حتى يتم إعادة تشغيل SystemUI. في هذه الحالة ، يمكنك استخدام هذا الخيار لإعادة تشغيل SystemUI. + اضغط لفترة طويلة لإعادة تشغيل SystemUI + تكبير الشاشة + إخفاء تباعد الحبة ولوحة المفاتيح + غامرة + التباعد الافتراضي للوحة المفاتيح + غامرة v2 + تباعد أصغر بين لوحة المفاتيح + غامرة v3 + أصغر تباعد بين لوحة المفاتيح + إخفاء الحبة + إخفاء ازرار شريط التنقل + حبة Monet + ربط لون تمييز الازرار + تعطيل الإماءة اليسرى + تعطيل إماءة الرجوع للجانب الأيسر + تعطيل الإيماءة اليمنى + تعطيل إماءة الرجوع للجانب الأيمن + حساسية أقل + حساسية أقل للإيماءات + إخفاء أزرار لوحة المفاتيح + إخفاء أزرار الرجوع/التبديل في لوحة المفاتيح + تم الحقق + اختر لون التمييز الثانوي + اختر لون التمييز الأولي + تحديثات التطبيق + سجل التغيير + استيراد/تصدير + إعدادات التصدير + إعدادات الاستيراد + الميزات التجريبية + تعذر الاتصال بالخادم!\n قد تكون هناك مشكلة في الاتصال بالإنترنت أو ربما يكون الخادم معطلاً في الوقت الحالي. الرجاء معاودة المحاولة في وقت لاحق. + لم يتم العثور على سجل التغيير!\n قد تكون هذه مشكلة في اتصالك بالإنترنت أو ربما يكون الخادم معطلاً في الوقت الحالي. الرجاء معاودة المحاولة في وقت لاحق. + تنزيل + تحديث الجدول + متى تحقق من التحديث + تحديث جديد متاح! + عرض سجل التغيير + إخفاء سجل التغيير + أنت بالفعل في أحدث اصدار. + الاصدار الحالي: + احدث اصدار: + فشل التحقق من التحديث! + غير متاح + هل أنت متأكد؟ + ستفقد الإعداد والإعدادات الحالية. + نعم + لا + تم استيراد الإعدادات بنجاح + تم حفظ الإعدادات بنجاح + كل مرة + كل ساعة + كل يوم + كل أسبوع + مطلقاً + + تحديث {latestVersionName} متاح للتنزيل. + جارِِ التحقق من وجود التحديث + تم إنشاء Module بنجاح + نمط الصوت + يقوم بإنشاء Magisk Module قابلة للتثبيت لهذا النمط + إنشاء Module + اقرأ بعناية! + سيؤدي هذا الخيار إلى إنشاء Magisk Moduleداخل مجلد التنزيل في وحدة التخزين الداخلية. قم بتثبيت الـModule المسمى IconifyCompanion.zip في Magisk. قم دائمًا بإلغاء تثبيت الـModule السابق لـIconify Companion (إذا كان مثبت) وأعد التشغيل قبل وتثبيت Module جديد.\n\n ملاحظة: \n• قم بإلغاء تثبيت الـModule قبل تثبيت الروم.\n• أعد إنشاء الـModule إذا قمت بتغيير أو تحديث الروم.\n• لا تقم بتثبيت Module لم يتم إنشاؤها بناءً على الروم الخاص بك. + لوحة QS الشفافة + جعل خلفية لوحة QS شفافة + الشفافية ألفا + بلاط QS عمودي + إظهار التسمية أسفل رمز QS + إخفاء تسمية بلاط QS + استخدم فقط مع البلاط العمودي + رقاقة ساعة شريط الحالة + عرض رقاقة خلف ساعة شريط الحالة + اختر صورة الرأس + أضف صورة العنوان على لوحة QS\nلا تحدد ملفًا من الحالي + اختر صورة + ارتفاع الصورة + إخفاء أيقونات الحالة + قم بإزالة أيقونات الوقت والتاريخ والبطارية + صورة ألفا + أعد تسمية الملف إلى شيء أبسط + ساعة قفل الشاشة مخصصة + تمكين ساعة شاشة القفل مخصصة + نمط الساعة + توست مخصص + تمكين توست ذي نمط مخصص + شريط التقدم مخصص + تمكين شريط التقدم التدرج + شريط البحث مخصص + تمكين شريط البحث ذي النمط المخصص + يحتاج إلى إعادة تشغيل SystemUI + يستخدم Lorn بطارية ملونة بشكل افتراضي + يستخدم Plumpy بطارية ملونة بشكل افتراضي + رقاقة ساعة QS + عرض الرقاقة خلف ساعة QS + نمط الرقاقة + + رقاقة تاريخ QS + عرض الرقاقة خلف تاريخ QS + رقاقة أيقونات الحالة + عرض الرقاقة خلف أيقونات الحالة + تمكين البطارية الملونة + استخدم لونًا مخصصًا لرمز البطارية + لون الخلفية + لون حاوية تعبئة البطارية + لون معبأ + لون مؤشر مستوى البطارية + ساعة رأس مخصصة + أضف ساعة مخصصة على لوحة QS + نمط الساعة + هامش الساعة الجانبي + هامش الساعة العلوي + نص أبيض + فرض ألوان النص أن تكون بيضاء + هامش QS مخصص + تفعيل الهامش المخصص للوحة QS + QQS Panel Top Margin + الهامش العلوي للوحة QS + إعادة تشغيل SystemUI + تكبير للتناسب + يتم تمديد الصورة لتناسب بشكل افتراضي + خط الساعة + استخدم خطًا مخصصًا لساعة شاشة القفل\n لا تحدد ملفاً من الحالي + اختر الخط + ارتفاع خط + الهامش العلوي + الهامش السفليn + نص أبيض + إجبار كل الألوان على أن تكون بيضاء + تعتيم مستتوى النافذة + يتطلب إعادة التشغيل لكي يعمل + كثافة التعتيم + فرض تمكين التعتيم + فرض تمكين التعتيم للرومات غير المدعومة + إخفاء عنوان شركة الإتصال + إخفاء عنوان شركة الإتصال من لوحة QS + الحشو الأيسر + الحشو الأيمن + لون تينت + تينت رموز شريط الحالة والنصوص + إعادة ضبط التينت + حدد نمطًا أولاً + متدرج + طبقة مزدوجة + طبقة مظللة + نيومورف + شكل خارجي + مخطط نيومورف + المترجمون + إعادة تشغيل مطلوبة + LSPosed غير موجود! + كيف عرفت ذلك؟ + لماذا مازلت تفعل ذلك؟ + حدث خطأ ما.\nسجل التغيير هذا قد لا يكون متاحًا على الخادم. + لا شيء + النمط 1 + النمط 2 + النمط 3 + النمط 4 + النمط 5 + النمط 6 + النمط 7 + النمط 8 + النمط 9 + النمط 10 + النمط 11 + النمط 12 + النمط 13 + النمط 14 + النمط 15 + النمط 16 + النمط 17 + النمط 18 + النمط 19 + النمط 20 + النمط 21 + النمط 22 + النمط 23 + النمط 24 + النمط 25 + اختر صورة العنوان الرأسي + اختر خط الساعة + التحديث متاح + يتوفر إصدار جديد من Iconify. + التحديثات + هذه القناة تعرض إشعارًا حول آخر التحديثات. + الترجمة الفارسية. + الترجمة الفرنسية + الترجمة الاندونيسية. + الترجمة البرتغالية. + الترجمة الروسية. + الترجمة التركية. + الترجمة الفيتنامية. + ترجمة الصينية المبسطة. + مشغل Android 13 الافتراضي + حيادي + أحادي اللون + بقعة لونية + نابض بالحياة + معبرة + الاخلاص + محتوى + التطبيق غير موجود! + تشبع التمييز + تشبع الخلفية + إضاءة الخلفية + عنوان الموسيقى + اسم فنان + مكبر صوت الهاتف + تحجيم النص + تحجيم النص + اعادة التشغيل + نمط الرقاقة + أيقونات الحالة ثابتة + اضبط أيقونات الحالة في وضع ثابت\nقد تكون بها مشاكل في بعض الرومات + الهامش العلوي + الهامش الجانبي + لا شيء + Pebble + Hexagon + Samsung + Scroll + Square + Teardrop + Rounded\nRectangle + iOS + Cloudy + Cylinder + Flower + Heart + Leaf + Streteched + Tapered\nRectangle + Vessel + Rohie Meow + اختر نمط من اختيارك + لمساعدتي علي تيليجرام! + انتباه! + قبل تفعيل Iconify في اضافات LSposed, اضغط لفترة طويلة على Iconify وانقر على إعادة التحسين. بعد ذلك، قم بتمكين Iconify وأعد تشغيل واجهتك. هذا ضروري لتجربة أكثر سلاسة.. + صبغة النظام الافتراضية + Monet/Accent Tint + الصبغة المخصصة (منتقي الألوان) + جارٍ بدء الإعداد + خطوه + إنشاء قذيفة الوحدة + استخراج الملفات الضرورية + إنشاء ملفات APK متراكبة + محاذاة ملفات APK المتراكبة + توقيع تراكب APKs + تنظيف المسارات + (عمودي) + ارتفاع موسع + (أفقي) + إطلاق صفحة \ "الوصول إلى كافة الملفات \" + ارتفاع غير موسع + مزدوج تبديل الوضع الداكن + اعادة تشغيل الواجهه + لا تفعل شيئًا (سأفعل ذلك بنفسي) + إعدادات XPosed + إظهار التحذير + إظهار تحذير حول كيفية إعادة تحسين الوحدة النمطية في قائمة XPosed + فرض التطبيق + طريقة فرض التطبيقات في قائمة XPosed + إعدادات متنوعة + إعدادات اساسيه + استخدم تمييز فاتح + استخدم لون تمييز فاتح في وضع الفاتح + السجلات + بطاريه مخصصه + تفعيل شكل مخصص للبطاريه + شكل البطاريه + عرض البطاريه + طول البطاريه + إلغاء تفعيل الرسوم المتحركه + تعطيل تحريك الرسوم المتحركة لـ Iconify + أعد تشغيل SystemUI بعد الأقلاع + لا تسري بعض الخيارات مثل كثافة التعتيم حتى يتم إعادة تشغيل SystemUI + تخطي + هل مللت من واجهة المستخدم الخاصة بك؟ + دعونا نخصيص كل شيء حسب رغباتنا. + التالي + السابق + هل جهازي مدعوم؟ + يدعم Iconify جميع الرومات المبنيه علي Pixelو AOSP. + هل نبدأ الآن؟ + حان الوقت للقيام ببعض الأعمال الداخلية. + هيا بنا! + يحتاج لصلاحيات التخزين + صلاحيات التخزين ضروريه لبناء الملفات المهمه + لم يتم العثور علي Magisk + استخدم Magisk لعمل روت لهاتفك + لا يمكن الوصول الي الروت + يبدو أن جهازك ليس به روت + بحاجة إلى إعادة تشغيل الجهاز + أعد تشغيل جهازك لوضع جميع الملفات في مكانها. + عفوا لم أتوقع ذلك + تم حفظ السجلات في ذاكرة الجهاز. + رسالة Toast + الخلفية + الحد الأدنى + مملوء + الخطوط العريضة + نيومورف + شكل + دائره + مربع مستدير + مربع + شكل الأيقونه + 0.5x + 0.65x + 0.8x + 1.0x + لون الأيقونه + اتبع النظام + عكس النظام + Monet / تمييز + أشكال + تعديلات + الإعدادات + إغلاق + تم التعريب بواسطة MRX7014 و Muhammad Bahaa + مشغل الموسيقى المدعوم غير موجود + اهلا blank fragment + إخفاء LS Carrier + إخفاء اسم الناقل على شاشة القفل + إخفاء LS Statusbar + إخفاء شريط الحالة على شاشة القفل + قاتل النوتش بار + قتل الأجزاء الفارغه من النوتش بار + مظهر فاتح + سمة فاتحة QS في الوضع الفاتح \n يجب استخدام شكل QS المخصص + نغمة مزدوجة + استخدم لونًا مختلفًا للرأس + عرض الحبة + سمك الحبة + الفضاء السفلي + اللغه + سمة التطبيق + سمة فاتحه + سمة داكنه + اتبع النظام + إخفاء في الوضع الأفقي + إخفاء الصورة في الوضع الأفقي + مظهر Pixel الأسود + مظهر Black QS في الوضع الفاتح \n يجب استخدام شكل Pixel QS \n تبديل المظهر الداكن لإصلاح لون النص + لون Notif الشفاف فقط + اجعل غطاء الإشعارات فقط شفافًا + مظهر QS سائل + سمة QS ذات نغمتين شبه شفافة \n لا تستخدم الأشكال المخصصة + تعطيل Monet النظام + يساعد على الاحتفاظ بالألوان المخصصة + حزمة رمز خطي ثنائي اللون + حزمة أيقونة مظللة متدرجة + حزمة رمز خطي سميك + Dual tone filled icon pack + Acherus sub icon pack + Thin line icon pack + Dual tone filled icon pack + Thin line icon pack + حزمة أيقونات OxygenOS + Thin outline icon pack + Thick dualtone icon pack + حزمة أيقونات زاوية مدورة + حزمة أيقونات معبأة + حزمة أيقونات منفعلة + حزمة أيقونة متعددة الألوان مضمنة + حزمة أيقونات متعددة الألوان مخططة + From 3aadb485579f52da6352c8440d411113bbed1f71 Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Thu, 27 Jul 2023 10:20:40 +0300 Subject: [PATCH 005/215] Delete .txt --- app/src/main/res/values-ar/.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 app/src/main/res/values-ar/.txt diff --git a/app/src/main/res/values-ar/.txt b/app/src/main/res/values-ar/.txt deleted file mode 100644 index 8b1378917..000000000 --- a/app/src/main/res/values-ar/.txt +++ /dev/null @@ -1 +0,0 @@ - From 1483947b3ec04c48c6646c13a0e294a51570eaea Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Thu, 27 Jul 2023 10:22:08 +0300 Subject: [PATCH 006/215] Add files via upload --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 3862fd38c..ec871e69b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@
Banner + +**This app It has been Arabized by MRX7014 +and Mohamed Bahaa Dowload from Here** # v6.4.0 is out!
From 8f5225b5ae88b845bff33b63877b2989724eab22 Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Thu, 27 Jul 2023 10:30:29 +0300 Subject: [PATCH 007/215] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ec871e69b..b8719026a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Banner **This app It has been Arabized by MRX7014 -and Mohamed Bahaa Dowload from Here** +and Mohamed Bahaa Dowload from Here** # v6.4.0 is out! From b53f56063af6eb1ab044d1617e2c6aa2cc42d1fa Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Thu, 27 Jul 2023 10:31:39 +0300 Subject: [PATCH 008/215] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b8719026a..86f68b400 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Banner **This app It has been Arabized by MRX7014 -and Mohamed Bahaa Dowload from Here** +and Mohamed Bahaa Dowload from Here** # v6.4.0 is out! From ae8d77764df7b27531f9387971f7ef79a5e114fc Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Thu, 27 Jul 2023 10:32:10 +0300 Subject: [PATCH 009/215] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 86f68b400..72aa30fc7 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Banner **This app It has been Arabized by MRX7014 -and Mohamed Bahaa Dowload from Here** +and Mohamed Bahaa Dowload from Here** # v6.4.0 is out! From 3105f0c6d2f0d88e5770dd6ca7279835f57da9f1 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 27 Jul 2023 14:06:24 +0600 Subject: [PATCH 010/215] Monet Engine: Fix error importing settings --- .../java/com/drdisagree/iconify/ui/activities/MonetEngine.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/activities/MonetEngine.java b/app/src/main/java/com/drdisagree/iconify/ui/activities/MonetEngine.java index 85dc59812..a20d625a6 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/activities/MonetEngine.java +++ b/app/src/main/java/com/drdisagree/iconify/ui/activities/MonetEngine.java @@ -699,6 +699,7 @@ public boolean importMonetSettings(SharedPreferences sharedPreferences, final @N SharedPreferences.Editor editor = sharedPreferences.edit(); for (Map.Entry e : map.entrySet()) { + if (e.getKey() == null) continue; if (e.getValue() instanceof Boolean && (e.getKey().contains(MONET_ENGINE_SWITCH) || e.getKey().contains(MONET_ACCURATE_SHADES) )) { From d321ce5f3b42c957f772560ca1b8823a149b0d87 Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Thu, 27 Jul 2023 13:49:03 +0300 Subject: [PATCH 011/215] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 72aa30fc7..f6605a3ca 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,9 @@ **This app It has been Arabized by MRX7014 and Mohamed Bahaa Dowload from Here** - + +**Donate: https://bmc.link/mrx7014** + # v6.4.0 is out!

From a108eb560fa298ef4d1dfe5ba1b4fb2bee58a213 Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Thu, 27 Jul 2023 16:41:36 +0300 Subject: [PATCH 012/215] Update arrays.xml --- app/src/main/res/values/arrays.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 141d9eb8b..788af3efc 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -6,7 +6,7 @@ com.google.android.apps.nexuslauncher - العربيه + Arabic English Chinese (China) French From 06ce5a42b1859645dee8b32e5de7b9eaca2857c5 Mon Sep 17 00:00:00 2001 From: Ilya Kushnir Date: Thu, 27 Jul 2023 18:04:11 +0300 Subject: [PATCH 013/215] Update AGP, Gradle & deps --- app/build.gradle | 6 +++--- app/src/main/AndroidManifest.xml | 1 - build.gradle | 4 ++-- gradle/wrapper/gradle-wrapper.jar | Bin 61608 -> 63375 bytes gradle/wrapper/gradle-wrapper.properties | 3 ++- gradlew | 12 ++++++++---- 6 files changed, 15 insertions(+), 11 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d5cec4750..307411610 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -93,7 +93,7 @@ dependencies { implementation 'androidx.core:core-ktx:1.10.1' // Magisk libsu version - def libsuVersion = '5.1.0' + def libsuVersion = '5.2.0' // Xposed API compileOnly files('lib/api-82.jar') @@ -133,7 +133,7 @@ dependencies { annotationProcessor 'com.github.bumptech.glide:compiler:4.15.1' // RecyclerView - implementation "androidx.recyclerview:recyclerview:1.3.0" + implementation "androidx.recyclerview:recyclerview:1.3.1" implementation "androidx.recyclerview:recyclerview-selection:1.1.0" // ViewPager2 @@ -143,7 +143,7 @@ dependencies { implementation 'me.relex:circleindicator:2.1.6' // Lottie Animation - implementation 'com.airbnb.android:lottie:6.0.1' + implementation 'com.airbnb.android:lottie:6.1.0' // HTML Parser implementation 'org.jsoup:jsoup:1.16.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8dd6a4fc7..ece9d192e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -30,7 +30,6 @@ android:allowBackup="false" android:dataExtractionRules="@xml/data_extraction_rules" android:enableOnBackInvokedCallback="true" - android:extractNativeLibs="true" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/derived_app_name" diff --git a/build.gradle b/build.gradle index 6f4dc2c2d..136980b25 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - id 'com.android.application' version '8.0.2' apply false - id 'com.android.library' version '8.0.2' apply false + id 'com.android.application' version '8.1.0' apply false + id 'com.android.library' version '8.1.0' apply false id 'org.jetbrains.kotlin.android' version '1.9.0' apply false } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index ccebba7710deaf9f98673a68957ea02138b60d0a..033e24c4cdf41af1ab109bc7f253b2b887023340 100644 GIT binary patch delta 21856 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 delta 20086 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/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. @@ -197,6 +197,10 @@ if "$cygwin" || "$msys" ; then done fi + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + # Collect all arguments for the java command; # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of # shell script including quotes and variable substitutions, so put them in From 47df4c7ce49613048ab63ed4957e76e895743d38 Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Fri, 28 Jul 2023 01:01:57 +0300 Subject: [PATCH 014/215] Update strings.xml --- app/src/main/res/values-ar/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 0e4d92a55..640a65f86 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -112,7 +112,7 @@ معطل بلوتوث ممكن - قم بتغيير واجهة المستخدم الممله الخاصه بك - تم تعريب التطبيق بواسطة MRX7014 و MUHAMMAD BAHAA + قم بتغيير واجهة المستخدم الممله شكرا ل المساهمون معاينة مشغل الوسائط From 3b76b1e40a9ed4b990a77500ffe002bc30d27c5b Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Fri, 28 Jul 2023 03:09:06 +0300 Subject: [PATCH 015/215] Create .txt --- Screenshots/.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 Screenshots/.txt diff --git a/Screenshots/.txt b/Screenshots/.txt new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/Screenshots/.txt @@ -0,0 +1 @@ + From d178f05fde6976e5a2e22a075fd00fc1b8695647 Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Fri, 28 Jul 2023 03:09:26 +0300 Subject: [PATCH 016/215] Delete .txt --- Screenshots/.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Screenshots/.txt diff --git a/Screenshots/.txt b/Screenshots/.txt deleted file mode 100644 index 8b1378917..000000000 --- a/Screenshots/.txt +++ /dev/null @@ -1 +0,0 @@ - From 81bed664196c941eaeba6317f9a1baa3794a0987 Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Fri, 28 Jul 2023 03:09:54 +0300 Subject: [PATCH 017/215] Create .txt --- Screenshots/.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 Screenshots/.txt diff --git a/Screenshots/.txt b/Screenshots/.txt new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/Screenshots/.txt @@ -0,0 +1 @@ + From 722eb5b6d6b3814f6aea473da519665ff60cbc6a Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Fri, 28 Jul 2023 03:13:01 +0300 Subject: [PATCH 018/215] Add files via upload --- Screenshots/IMG_20230728_031236_905.jpg | Bin 0 -> 64188 bytes Screenshots/IMG_20230728_031237_087.jpg | Bin 0 -> 47525 bytes Screenshots/IMG_20230728_031237_225.jpg | Bin 0 -> 47259 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Screenshots/IMG_20230728_031236_905.jpg create mode 100644 Screenshots/IMG_20230728_031237_087.jpg create mode 100644 Screenshots/IMG_20230728_031237_225.jpg diff --git a/Screenshots/IMG_20230728_031236_905.jpg b/Screenshots/IMG_20230728_031236_905.jpg new file mode 100644 index 0000000000000000000000000000000000000000..35c76a5a0d260577fff06fe356166f4fc4a93154 GIT binary patch literal 64188 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%0AKqaX9?Mw^a^1gA>-U5vZz)8N-f^Ul4`#frxy z-enDZ6J%%-f;AQcTJV=2c15(5hID!z&h*0IUuQs%#3UduhZq0RZFezffW``TJ>m;d zq6OQ^8(j`fy~{+$@oV-vHsw4F9~>e2?Jh}OQ~UE8jOLpTx|O)+f-q`aPeT-42a5it zQ*_PqF2&dLPq(6*dsX+nIvqpz9CJEhMqHr#^o>>%0jqiv{h0ijoI7rq`7fA zu5e`e#7Y-21y_e@aK3Lg|HJV4A71V&^O5|Z6MH&Ez~h3EWpuZcz(T+C7}Pa^Y>GDM zOqlNB@ZZ%AE+m_spM!d{FZ;Hg->Lf`>*E*lHKeY$78%|NVk#eg(%f6a$2nN%LlASn ze=z;znklz%Or>KmB_f{>AZ%kmq0VX>3tCuQSAsIE_6J zs&s|_EjzrmfBurYjdYH3r?IKk;uy(Bi$5x&xH+nd%o z|It*vCe#w$Y;C0ivk;0?X^ClWSyS63RDP+DXzxMBo&MZ;C+20#PzQX#H^-~Jd5*)W zu!xBv5G)kbKTZ5j_>U#x<{uIE&!MEeY1Q#=qm9}13a#01IU-(b`3f)#MB;yK74rGi zJYl!39sV%r)nxKaMIg%AnBJbKI{C_7A?_sGVF`=XsZhU^6YIn>@gFXX3*WA+f-zF8 z84QNCLk^c;^3HR>y3z-J)~AqtXL*4MRqSL~pw?Rl5vc&o6p@7JQP^&_L@yw7WX!;?$9J zUWF$f10utoN=n)lhG=Y#IQYuQNU!ziBU1=gD#mx?h=2IbU&<2tbm63b&kuR2$uFG) zNt=gt8vX|q_FSj`c{g@xSL%@$=@1EAO_ineQL{|Gtvg?CmvG@xG((vkX%D%g$@e}2u^CWbe_y4ie_U{j?Z7hE?-;sEc_xabRE^R$;0>9hbZMxTbBG5Ta zQ0FBtp8AuO@pbO>0|_cHqpt1!@nTJCs{za<0!WWi1z|5vDD2yehL@_D#Z|*lMOo zb*d}ioPM0X2*SB?;$a(^ELW3++a65U^%s|}QBSnx$E9p*2Pl)gZ`r1pL074A*r)J8 zT);_U%#Mh)uwYEVq~9%9qcM?NCkOSEFEIpqq-drKJxfe$F%PnJf`QCv*wL9&@T6<( z+6s3qOzgEwDo$yRFu1CRMZpI_T?S~-MUG=2E!Xx9C|^Qkb?(DAB?TQ%u?|Vry>7x^ z*>r^jA_Rr;hiYF`N5kZ)S6sdaMNeOWuSyVAnk?sjtsLXCL;D71ID2V){i+jhrli=yNo z(U07!bQvzwo&rzS1J0er8ANPdj951mQJ{TSH!@YdJlLdh%mak%z*6770H-p+nOy=} zv2}~puG~oF(E25lk-^6-$R}|mRq*wh3)4@6`EXv96|Y~{{Q|_x(E(4u)h3{^#mfa9 z3gR^KB3WbB+-H3bf(BzY2}fIbI9}}dpJrm4rc-rq^MhJOaqk>$VVi75?1L$gG9X90 z2eR!>>Zj+&q^g--Vcl3cGpYck;P|Rr;e7eg>7-agc&yro`d>h~g&MdDcWBygSU4aN zMTLsAld#Fs`|tB7!5R6EQ_Fth59uVSv88=D)A)q;x~Vt2>OV=h^fQl5qatCy9h+1( zcqJ!g*??ddziyFDNf5n__pJf=Q+;u;>liiHHNRS?YF6S%O@KgW!!uY@3WLoe<7@7j zxqT#p+za;boxWxmHZ4bza>5NcZ{P2wWE=6} z>bnA+rD))Q)R}NLUAieUxf0ccYBwrG!Lj0#PxIwT!Vq`u=NO;@kA0uIc6Y1+maXqP z@)7+gWcLQ9+;?MfT`=X-<<)NBj-XF^l1gQ;ItY<7iin;2!M|HSH^Xo*XZto12||HY z3Ttb5;!CxN%tRVSgb)vVqeu7cK z3yeEsDK&3t@A?SFQLgZe*tnRW);0&H7lUTsYw#fxZryqLO-cpF=sV8XJbUuXekL@U zBv3Ec@aDo*rSdnHBO;ArrbKts<4v*g7~5evM+_d$@V;}B)lYv{41~KhTv-es)di+! zkGIZFfsoRS^`n0RKgvF3Yut8RF4cX^$x%*o2k!V!>$QDdjuup5Y;*|HmjBRB3WQp; zdB3-p^*l`qm=sYMJF)fW*ZBmVH41=;-e?VfIBNhw##*H?YYzc?R|v3AV|%K7r4f@z zl5WkJ>gDnGRhJit$L?l)uG?h>!Bry;(5?y3{l<4trt1a&|3o{|KB;x9x+L%Ow6E91 z(&sMz#dkK1ZzPs;|Cv88>EjWBNS8nOy0BlPE#om95`tW3OEn)mAxCO zvkz}dt9+zi4~9>|LG;i#b}qKmq`>ry;E&Kq!2%>yoTgKd_9Jh$WY#0g^;z~+B1w{f zA-l%QMp>PqgDiCK`yaBe*^flqW)JB$|K!#zxe9@d!&?Jn<%7Kb65M;g03katF5RW^>emCYEsx7TUZ@&hzd2Q8 zzwJG8a+{hLw-&!o{PU%(Y0|Ry)WG`}=GtffJfHRS+GWp$Zy)y+9sGIkfBC}sqb$?- zbp^;^qGQb9$b+Sad0Id7aI!E?h3NLHL*91=3+-R$UDEp~tWQ`51KOz|`Zu$YrtXvy zi!4`xKxGcYCtE>_z90!9^Y@Ni@KT*Tp;oR4wFayEs>5Nru0zO4MncK9h$fB{gt%>S zW^1zZ!Zse9m_$^MyV{Z7iaJP;6r;$v1xjewv&|NQa{KPukH-lTDWUg9+@d)A0CkYZ zZY^$CKz~hrk`JU`TadH`Adc;F`$hMl`dJkL=iqeyXL6@s%{g(HSpDn1E%kM|r1C+f zJv?AomR8SGtgdlwXRFTfPs0*;i_~zFtI<{C(&uv2?AypZI@bqEY-O10+(zpu*;tV- zj(`P6#v}JJN57b%v>esS$uEFK6J)&83VAH1id8+Dhvk%mmKNtKthxjEsDtC;9RS*>`x9m z7NC6#U$DEQw%qk6Pa12gvHzo2ICj>_UG>mYW&i=9CNyUGGcZ<_kG0&9>8Z-u{C#(6 z+iwB9dFP6zn1}Ah@mmiZel!Nf;7^kQEEmAi5`zT15sc)iMn%EY^gBavMfIjx@tiJ4 z(|UjYLN+0_{yB<8*2TcFe1q5bemR)3Bn}miHmXjK(9G#-UQ~ba<$=2xmzkY$UFqyT z$cWP|+tZ@?9T6UproJSIePPXbmGwQ5szTy;_AWr?v!X^jFRrp z+HP%>ftu$z{B)o2T2CkVoiFc1PUXRD#%VY+Bu2D(x^W@;GDYiWtu9EYqd2`Cs7}6eF)k7kvXX0vDhDMYR zt0Wgj_xSIlnsJ=I_0!s!8)N~WyZKYfdb8n%nu$nz=Yo}8 zLyq+TJ9OO!Xz->pPX_K=5qq8eiP=)NWT$@Ae~gC+uJb(&?sh5v<`NIW`i^xa|~5eAlH;Q8wHU zQBg8%ti@ROn92XDLsSt6d7hi#iw4k`iieZAjiD*-YcjqhV9v6OvNDeS(XxJAO{oEP1yCiQLHaK7W4{ z;Z`lO@U^YMQ8rAlvS}fXp~9IYP0PiywuxV(o8a4Mp%)rOrAcYZ?8paYPtw=~IY)wF z=d9hm$NY~tq6D^NSn;P7zXGVTBVIJsSEvT2{au&`QypIaKtsSxpCg9fp$kxN(J$$}joedI+4|M4)n zV|(9-!k5K6W|?o+Zx>njSi?A2kYD$UcJA+lZlD;_dpqg)=lsMv$=sUGMopLGLa1!Y zsobWBKQKWdIoTOO02zIA_y>H%5oY-+J$~znGI*2()*&Ai+{~Kg9A|9!Pn|o|aiff_ z2D^*uIK9uWR$58#HjA8ZWpu4P0f!?i(>W>w*1^biMIk&){W0ydt~IW*#sD%d`E#0J z%W(~~?)dg;T)aQ;7$=1(#|<4G@`1wfWP-9_vW-4yf{7DqB?Gw7oKZ7v)=7?sK zFe3S9hmXo$WdNCo(9?_|NZ2(;X+7!u$^5>Q*kKHqBB#!;PdCbnC+9B(0pM|heT;Xu zd>aLiviH-!ZBr_^+JI=%7Cv57sD)!&G@d|{Oy>YcM_j1W`oJ%M#sa~d0EWcOK~cyaluHlMSMi(s;d zl9^|`ghIulW2m*Ao}P0S34E_;FJySGc@qqSS+f$IYU^KS5T>ci107F~KL#)@KKPxvn`vdP z_4r$1i`#w|Ze6XEg+e0X(7dfOh1OInM{AJ{G_C1zLsr#ME1G5J)dsCyct-%(YAuUU z+Ed;vl9Ue~blz_bdK%*{0XKTb!BEb=RA;vgbLy?fA2(^6JC~7hB(>_YQPwGi!rY-p zX=9ZV3GsVCG#uf=Jr;FbFn(Azo4Q)te9H#CWx#dMyd8F0PW|KY zA_bJ%m9n#jFZ(Wp0`PK2p{lshWsJU%=Ae)(ZywJ3O(0!SMZ$W?@3 z^lMq>s1SHn(ChsV{&hy5#CF8uHmGTFy6Mxb?<4eHd1i%(to|8+V-Ph9*`Z`=a_%4s z5@RvDU>FCH<*rh=ySue4RJg4VCmdCB^J(JZp@DZV%vI0+c_8cYwaa!3-+tSdckt)c z|3wQGM&o1E6HH#M{EU3DzWrAHhesw4Cp&A+v~;JEy1skllf%g`SC22Uk34(%QjhQ4 zcfa%U?35kzUc&GF31Ie>AYu51&XU_2U7ZJ*CUN?8FSiLCq^=mHHZY?8a_&)N9h<3P zptCpyo~MdKWz)zrC@U9qIl{g|p{yifSE=hRly5YqqceiDgU)`Ns7HP5%-oE(IIRTU z&)IxljP11<`tdnFX;=nT0~e9Cw?!#hGE&=;F1&@5K)-p5&nS%V0sD$ zEwSV%VKlz!V+l`8qVXaA4*B)G2X;c{|) z&@5)Nm!0+uH!W)z@-66&pmGI%P?HaD?texO6_mQp=w$Q}_MZQGWQ5{gN^zD;P&(~l z^9}%!@@2N+Ghz5Xa1w~`_#(r6LC~N#mJzl4d_J|uCjpmP95OS}D#As$R95r7T&Y%3 zA38nqV`776?sm;&Y9Yvy!X`B!(nEC-{zY4CSs7D9WL~_qGn?-U5m&#w`|#0xVh~J3 z(Ily@_2t`qYbmK3A=C7RL}C;4qz^g{{PyAvv)fz{R>&D&5ozo<()#FH>gBYL_9jFq zMH*B2u&Bpb z_p+SiDY8p%V)sL;%&6*-;CCHG?!@Nd+AawPj~iPv**L6wv1pO+y85vx+ZHHi@QIJv zpO0+_`i!bm`46!v73+oEDB$$6?&lZJgjk?NQ>y9_FA$FDZZc*vRFn17L)fAe4I7aP z`MlG@Xe$>)QC4(kp4lNR0CJEb&M?C&r@&D(=dN7R>J^UUIhdkI0_8fT#QuJ}AhsGH zc`@QLXlT@MWh(vDGmNJ6GqtXQQ4Z4mL#yNOK8hR^&c{_TReGqr z*i0>#TF3XHK?Pn7LAR)QgUsZd@Fw>d(cHbweEWsyB6mkm)m~|dGJSgTkIk%^GU?-l2hdm z7hx2nEygU-Ox%LrxRIdiD?)kxM3Y@m^~D;f^MS2qN{7SvhMRltCR4fwy?;yH`T z3OF1ecb;3mt;~iFAY zuq~h@k+o^mD=~$Me|rWb>)LoR(V&9f09=N zL)v}4zpU?ExoAtUVr(8&@({mUX3a_E%2#iv2Edv5rO%(o4;13>L05W#;s zI`kAn6C>uo9`uf%1MmfCKPjj^pf66ffP-+|A+j>t$Z9`9>q3$}h92Cio{gnDp0MlC znAmtdLU8?(GK$Q{8y8wTg;bB;U3+ydXc9B#f`fDGC=?gL?Im9(qZHLx#DhTK>zw%d z-K_3aWb6_1tXa`3H)p0Z%=QYLJutKN^8A9?%k=L@{jCE5A&LcpwxL1|1KwIm~o zV@Tp83W~ZN>aH42ii9UlH62n4X7@6v5XvY#_%*|jxf*zF{)pS_Gm6?E2tBIWw1Xu< zu>~wcO3yy;vRE}n@L8UC#Wx=n(mR@C3R+2=Y0eb^^Dj*aTx4vwQTsCBIMb$rBdiPX z3ch0%@oBF(>V=iLs$$DGVsJ3N`pBnT`{-m1M@hPpl9s^s;syF$DxeAfPF2tTgG6V- z6s9FAb;5*6nhqrAy{+GCpRl;KV-y#m`odyE8koDXPwC_(WtWfpj<^)w_NO?vRIg-a zeTG0v5D+r%fFE455JVfW8~P?>0f8*{t|4^s+1Z60L@*D^epEBQ7CQOA$ppvWKU42? zzctShW_C9I#37N|ySR5-vk>Cad(CMQjCpFrp^RwU+#=w3|pMH|{L|b{!f(ItFv%oVJu*zwr5F%pU7ZJ)rcJZcN14 z_Qa~?PFR&N73E~%S5Ji>LW+l>H9sBS>V1dms+=qd%6? zEHDgfhq^}zg9y|E5WJ6OKdQL&AVbIO>Z_Yz8tZKu;!lD-48~$6YD3-y9>!4cEvg&DK|c6UJ$0K z;XpOGTJ{eb5{-v&x}|4s3U5omtcrXrD$dM$+TBw~VDoj8IzCGG}>o4l%J zHy9?f3h-8f_q~$$Gei?J2J!Gc8bRlO#{|GA%Q(45^@p}Xz~w^f2Hd0*8gb*P17y$) zvsq4MP60hS-E7ig@iEOQidJSFZyEIg71pGN6s&hPdAfWR<{y0NJ&ASp5%fBYO!X~r zGcoA@81xO$!Y0^sc>j4={Bel1Y+|V5lOr+)6{9r2GCS83H!6+(R8?H2vV5@q`#hbr zCv&&6{cJ+PIz5-lEyEBDVs$iqil6$5_+g{8>ULI!Kz zI9KJ3%}E!*Px!9fSLkggg}O<_m4U3^QL&=ZT#yMYRL*i)nF1t(<(zLn#cm5HDxATU zXfOKA7+>^Mu_emknSQrChT~6p885}z`xw3vt>JotA2vkQO>;zkrXclI6sWPtT;mU|!^6lC~34*u8 zRTZG>?e3ZGwP@37J4FqUZASlSJ@grj%@5kQb0|;hOKIe15u!{O)+Gc6X zBx@mbU=y{c45-{*2L107}D@p>zY&wvW^ZYnMJd?56~3!^L9t?Mb9 zW1|bO;bd3-(4Ry<3S5Swu!K-OKD96@*@dfoN-4j3hV&#y!iT{~I6LLYe3*UBs2-${ z2^G0a=UN{Ktn8I59D)&C>4hLr4E<1a4h_d>O;I?#B<1urKM#+?^4stGKhw2;%}W10 zUHiw7tosr=^~Heag^PGyoWAl9d%WP;m8%A*L47&88*NK!BV`ZZcB;0aF@Ns&!)y*# zt~nE~w2cTsN|BM4=Kyq0#=J%UbB0^iLj&a!y<;=ug@KBhU6rY_kPG~(+jEKQS-#O7~WV98j#<@{4VeWiVs%e8 zg~5Z+;%v2C_si)}wd;-+WMFnuPw&`1ch>dcD?=)u?@L;zT@-P$F%gq-a*QGvZPy#) zhkdc#D>)va95}=6K!x394D9tQcb4(F4;h&+vPgt6wZdH*Ywk(n2)M8d-61g}MrQiY zR5mySe1)r zoD?fP|GkDv8ZaZNnxLRp#+k(T$A^>#C6hk*ZyLTR8eIgULw`Ft)c-2GnrKW;T-CiH z0y3uGR*nrl-wE$`vPiUnlD!Jj#fO6ueT)<~+K)}h&h)PkU&!|e?a>qN%1>^z)oaYU zs2u_B=I;tS!FD?qJrV`d<{4GrN5t#sPD7a}oMPd@_EK#c9G|$qt3xhE)Y}DAE9N$(sMr zJ)4bX*nT^JX6DdJDenaluoS)^zolT8?0%DJo4mf#{FDwypetj-4s0vpI6Cfpe3}p1 zHQ7|4Gz_YiCw->zYzG8?)NtCd+E+avq-(%HJ1zOsX{p9EJbePE!Ri+? zPOJ(fft=DAb2Pzo8GKB7h)NNv#L2$097H37Tq@0Ph%q>m5`I?>xlFxPVMocnBrmAC zQ_9gEmYk;R1T@R`MJqySQ1{iyzR1T&G|?Fk#U$xoX58_Sh7$)@lI#y;!l<#Ft~J&h zv_sX0Mg?3WX9h!2F)XJ5K0RYJvi>Xy#lCWC#j2wM-WtFR5%s^`nuF&;!Oe~HgCoYO$y(qv8JvEYNEmoHs;z8l zH&;+)jA}uxK=MF#cM^j_IGo)5cBetQOvV-F%AKa$j^EA=ft+ts+-qfaUQQ?GqHaSF z6$7}<$8@v zR5q+CoVAJD6c_K&81dj>)8(f?xSaaEcamDVSS9W}m|c}8L)H1&qwsa*jJDn{E@S}w zFsy{tJm8TwOc&kkY@5ndn`lHOqJ#;yT30WQ@X%fcxz-4#o1>P>J57eV4a)YqL7|LxhJj-$uG^|CW^>gNAj)N(cOqVzatTvyu=V1D(o)%E=ptp}P)H>m6@z70 z_H=ytvHx$Ji5%QM@`*Q}J=02HRTRO~`-MlhpZ5Uqeq4;Fu(*DiSx5&X7;9uOo`NwPSM}PGo^Wy-g5$?2 zpJcC!xv`+ybm)mTKHZE7#peLEGR^sQ)dS59#h@-6B5}XnxwazVsuTX>e87Kp*r%tz z>jt2~pfX9xK%5ru4rD->n4~t!wco|v$mL65>EFN6r$0pq_@VH+r*g0H1_cK&35#En z(=B^ zi3`M!vGdZEcNIV3&h0%Et*zi(D76(^DEo{i&Jw?ll>Z=c>VDhfF&YzR!oT0@XCX{{ zk;ZbcRJm{X7~ByVE+SC7UyuKONWV~%LX7s8>36#gIqA?_r@v^gGOfN>h{k(2@6*D;82@4_d5fhrFYr7(afWc5H zK^nNxV}IvYiyUrq{Cy`dhpe5nvfI#pETsC<*B{dy?sj$hBz7>ddUotA59YIY5K2ao z^p4#(z-qu^GlW>?-Mm_ z5PYWd((J~|_Rf3XVc zQhuCF`AMwVRmNFM3uhx$+3$wVlj^mQkTx|;>Ek{3rs%kk+-NhEho7RgLHs zIe33AwV|v{$s;qMMsbhSOxQcU+w448GF95L4K(<8uJv>-lU@$2wmzC$&6TF3W7F*C z3OrK35vn>+5|UCn~g%0c0&&nyLnBHUOakIUO5pUya|`I2!Q4INKM z+{gPO06s!kL|AWwK1KqR>>@LSkGxbkfzm{7WcFLlMZ4%`o`6`uy{OOPe#>2!tULSQ z)Aw%m&fpVtP{ks^>~0az%VR3bMmu*hAalxgJKj;tgwT758zxSCBIXjMF~uDi=NZch6!Kr%8w)W*n_aD86zyQ*qiMUo9y+S;giglsLuB2kF z285h}gUh_PMnLIcI)rACUZx6?LodSwI{U6$ysfN<_CKMDz=ot}U~@vFIRp|>z*;#t z(RM$I7XEgjEuD?nZ~Hodx!D~E7N51qNa{>L$=`ePRh1%0PiaC#EH}an>@Qe zx`3oTiK8nMd?R>R52niw{JGXRJ<_tZW$}FHy-W7dH0~p{J?-|Q@&~o?4HAB_SLIW= zDj}4>nT`nk2F5)>qx$QX4i`-qZS!5&&iq++jsCykl*Y?_9r0nszkr4`g(MgS&)(=+ z;<($YsfZ--{3oDaLlS#f@TSMrS*2>tCQBRz6FH8UDTR zs4Z5iI_%9|xtc406@PDKasL5j*2o0F^G25nX$Setfjxb|*QKo9e-v=5&Nd@Pk2rAn zm;+(J30L3@Rcyuh07*}r5I#}OShk!CN^HbCDSw`B1x~+BCE?VW>$<-H#VQ4WA91w2 zB|TVh4Y7MPF5v^VRZRhclBTXde0Fsl0tmq*C|qv7ASx$d&<53z5{dg55CF0*1)@xs zsJ-n&VD);CSNq05P@ybX4(52>Zr`+E9_|s1Vk64EpN^SS$r&ohAL|)`ypuI0T9z** zdmjiQGi0sG+VAN;7ZSw_Lrwcv?m$d5@-5kLrw*tqf5RkkxgUDC{Nq*v-{XVp^~ETYW zc6;re%#+&~Ik7SQait7Jh@4(vEmwhgpQ~oAm2MlnRK1PfvurjnVPI4qKPPcMXt@J9 z(qIr0SrOuNj$Kp(r8BkX6d7z~!Y3YQ?%|bO2(|=tj47qIIQeB-5~#6-pFjsZUL=Ww zscAB2kp#l9*@IP>G38Cd28AA5oNXa+;#Q@Kr}!{Ue3cSqf5uB&7ve&zt%{NO{S|8z zOLNuVh~2GBsPEi4a`R)%CzL`}^nR8~c~9uVBw{!;)EVBoD1NLSKnvVPl=@G+Z($4M zAbI=(mrpR^LF?of^Yk1IoNZ|)V2&^g=z4U_Q908lOvTx57MUL?)jhbpM+u| z@CpOPVuKcWNN&9WHYTmzxq89^u1=ZN@tQ*jb~#<~t1*r55jYeeL9l1gRi&Q15lwzn zO%BrPclaV3Bb$f^?8(OC&tLbnw}HHuJAMJH@+zo^Y^TZkOVe&}v9yj8EoA1-k%r(5NI|hrglOM!L$Yda64B`UQmL z<~m~K2f{qvB$dQBdO5Jnt9Qyuw$U-+FYCOw4*NY+j6bEuLxS@RyeKj|2uS5fXNuiI-ox z-Z1rsBDiDTdKT?1Miw^v^38JS7x3rDo1-fjv70mSM2e5x7p|PEd>PySfIwV)O=OSy zg9wR*?@BTkv@c(x4~Z`B&XE%N@p34$o>a&d(J(ikEZO*B*U}UxZ{ps+c0+-s;-c?I2o3w7=MQsy+?1 zg6cFsdqfTn9<%X*dUv(HJ2)h87AwZpT=hlD>MQWPb{MIB(K+$wVgujNZ#%getr!*w z4w{C70^jm2+3$A!B%DR7lWRe<{aDk{-OrgX!9l6P|YY@+z zy4PaSFQjuQDp?5_6A`)_D|hy?BbVyfwItkWAl5qaQT*`!=S=82QvUNKzGHOmotXdz z7c8HE+xBcP3$tr+*sri?lF;+^rfn@dSl?mgWYywdy=EJR$X8SjQ#Wh-{c}T`WCbe4 zIUNoW{Y`87pkb4sJnIDyFQ4OY1vo0+i_$~$M&W=Clkxp>uUzR+DxFc-mvH>;8MjAN z4S?I*0ZCtdFM+@UXy4cLV`T{lU=j@?YeXW_^UK0idFTBgP3O_wwb3 z5tdb#(%$PJY|HGR*U=^^KOS@VxX=AqXU|6G1wTm`I(q0o1u_H8{5@qQhhVTf0s4zh zgZ`XpyNd;O8rm#AW+$an;#%d_-Q8k5xWV445CH3{p{=>9^%_Q2G^V?X9Wb3xc%TTL zqx(9hE$?soOz<-|fup0x{{Y`y6thPUU4hm2HO_P(-9p2wj_8J-ici)If-CBoi29?gymNbWnd}e!$VMjfg41x6*xa^kYDEY79i`cgm1k zHl7z(FTsKU0RSLnSP1|^Z0k^*;v%V4U8~joOtO|8QXuy(AQ%8fqCSY+t9j50^=Dji z1pzEa7Ob|EPh$X$Yqh0ML{8P~`wXXJPi%6x7cH+t&Kmtp@|K-aAonglgf6E|nCSli zVx1gvYD$n=NG)R!bweqEk|hGznyM5HM|r9wlia-l+7)k3Tm&($t4f{3PSxxCANU<0 z8YH3`WfZ4eZ)HIY0YqHhf+=)3Fjk<35TYt?K@_?iHfowE5}+yqzOVhgnTpgNgRtQo z2xm7OJTZPVsS)XB4V=gQqdrvQ9T^s?y;t@nlhRdn2S{lj_Z(PA6e<3P9uEuY0N#byXolv0K7D{#W5uc z6RAVg#zdFYs;{cQu}NU>iS@@H#$ZjW%P~_xItT4k<-PC18QciY(8j)-R(NKd!`mCa eo{#&(OI%YDP@y`MJxpXteM+kOtN#FifB)H3n!4Zs literal 0 HcmV?d00001 diff --git a/Screenshots/IMG_20230728_031237_087.jpg b/Screenshots/IMG_20230728_031237_087.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bded126595f0089476b9e1f79802e5d787371afb GIT binary patch literal 47525 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

n+k*Ux-%9Bxof< z*+ZNS1eVjfM(xW!P>nqU?gj(1=M*e1OMj%6#+KTjnsXpq8S+jfIj^5_xxZkrzK&VH zbsVrhGIoiTOebhb4A|OVaMz-x3UHhYZay95sPKSzn4t>% zvTVi4vJlLZ@uE8%-!sSJ{h2lTGvGWs>KUN))=S?*I0J(TgOkB6E)@Z<}U9L@|3vej6!51Z^F1=<%i`qF~~-SMMQJ&$AGlM%VXnw&T&uJJA|(>a299wV&yh` zWK`&Igdpv|1@R|+eHTaI`>|?9xVNJNkA9mDk3xv#Q`uF?gA-ReF3TAn5AY6d22Pt(=BbL87f!A@ z){U~JHK5{7?`P>Pf6k(PdreAnE$2Yt>OFBMbN&o)n`8^TwyU$rH#y-g&iF>&64_wZ z9Cva>A9hkB%Y40@)_|mt9bdL^;Dnwp;|uGxYELO!^5%liq|vnjU-DkafKfG+d zJ!qdZ#n^6TL$=e%O3O*228E;}e8&u?-IteZbGD~@J{7*fTd0NkK05s=yIbRl{`A;8 z^dV_fB{>#9ZR|wRKwl;}c z3)xKw{N8m0t2?& zhv8~zFUt+Nws|UmZ>2(lGZeduhmsc1CXa;m`YNwcUne0_0sXcur$=n@F<$FBOX%8J zr(VT)8tSsmh?^zWu2?s+&!b%2JZ4f_CMQ4bZfxA$eMrzS`oF%s>B}N!n}~_Wu3KB; zy|t-mZ+pM+9R$q=#vHeen;cDCMRvz5N&G0YZ1!wPu*<3L!sp_$IOaoTDd|FKzGdYI zj>LYKWJUFHM^g@psfo0O(wKkyn-*(k*S+DGxn94fN6mGC9ZJSvy*vl{O}|#d!gbp_ zgZ$?IKcq0nJa;0-od0J9+OM z^d)dJQ%8q%MEt|TNJIw5k#>M~w+HJyO@D_NG%DJLih-A_eI+CNP76Va=FW4b(3UvOGYxviQ#G8 zLGHJ~O%g`>yxB(aN33~I2kbh%T0z%&hJIATy5`BGX1|8`Mz_y;D^5uafp@0mBkA!BH#YNX0&w$jH9xG4Svi|XB08jce zfa~0~2)u!KnsKX?arx1q;(NM=?k=Q0IrS)N*!HcvnGVd96!LK@Pu2$pu1QU0CZa95 zR9?Wh)!Bd14c+FRDI;hiWQjlQyG8RvI`cL(4BvII7`0D(5Gg$22qaJ`5}IVCY@%c2 z&R5&4BQWQ0BgIWQwtrj%o228)A^N}JdeV@f`ftH&_p`Hyd)u>zXMp9(v@5U$SB{5> zJcb}X|FYs^?^P@X$EGAmW>(T~wKrxkVWy_Ol7ue_X+V~{FuXi%@~np1Ohq>y28ogW zgI7bk2Tjx?XC=M01s?o4?jsksw}>F0Pz<}{pqG90g7uG-$I!;D(Ydw?-J0;Y`hi5w zw>O@PySLHnm=;M*l=CM4Be39hGgrXG(reK z%Wct6RP1Ho>B(;_wsaf0gft79R^Stn-MZ5^`%8JjCGL~m#TaqcCU+ZECev5z5rr4O z4I5H15_5%*sA0{EVLzmdrL~mMzOHD^Ak3Ju54@S&WIMf-_RM>17`4ALmKhJ*;TaqG zr&jI{cmHe9mhgYQV1F%nokI_Ap-T<;Jq_PL)g(J?+ynyfw){Tf2Hl{1C11I(Fs{Th zmkwvJ3QnWDY|kV2&Kr70Hj-ep?*nR!eoAnj_P< z=b~#l>Bd6Ak=K_?@Ga}qrr;&#p)HqOo|<@Z#$l0dAa`AuksDhYp3b$|YnL{hw6yK* z4#d%n8+&46KJ)-_Jp@-In+2UIADWOgPrB$WRWZO@$%OF^Y8my}Ov-qAh5Ci{IY}=8 zwhV$@t4B1!;fyEUHI_}iG`F0BSV3O48^gQE!Jz>Ig9MGs_6d{nz4TO93qEbv2%z1uXKTrr!~wyj zOTsbfGr$2n+aF5*j+NP#@V?JtIWltR-cjRr66p?kz#kR?C*s298qY;1lL*%tAvEhs z<9)!)WK)4<_w=nB-3fPZ<{nB-DUBAQ1AYI5xAaeo_d_Xeg2JG?!SykrhfUqU0C5gy zrTXDyYFBI3BccZA#FE?NTc27Y&;LOPI=s7(Rrid3HuZY{t7ost>i9lqx!^L}xrImM zhw3ZAx^=5(z&`tvxsY7VGoWtr>D^Cr)|^RW#GWMH;;cNHFz(r+hH*By3S&5Mmf=` zF*sFf)nEZ6AfIJi>fRuoe#^#YC?Rgdy%90ki?O|S^_mY?QaMd|O#K;vdZRq=Zcw3p zm1Sp3*wAmLFr*!jlH4VC7#H}op34=URnB@JJxl2xqk6rzf?1Q2sl^l8cVhy!Lyb>- z-t>QmGfKDRa{J`HyBaue_L#62$3dysl%In#R5Y=L}V_GI5%ZC`^>+i=xx3TzgE;4z~0$M*Qe2GJIb1 z=&1U0Wt1B5`Mr3P_Pz!+-JYnI;5=iAj@d)xK&XGRh^<-p{)@#kAa+DI@$?0a^yW86 ztV2nL2CAb_Yxrr-=KfKwa8!S8Kk`8p&9r>v{YKk#HI>M^%EeKOV{z}m8}T{uciT?myM^cTD8Up{JqOxJsKuBEK%-oGqc3z#86d2cVI%W7t~c z=z`mOkmoyyH1njH!MMIj?#}XJ`-~ARwpe2E_`2z9L%#doiah1M(-R5Z*y8xg&>)p( z02}e%rBD6Q(5GDaZLbM=Jk8iRy4`2MeH&+>P|rbTMS%L;K3PLUL;|JPQAyG!jYcRZ z{}QEf7HeE?(FIG!8At?}pJ#P5BCd~db9G$eYU?dwZ}Bjorjq0y#G2e2&A?>9HY`)1`16_6-Xo-8S=TC3MUd3@(L9 zS%lN-_be5GNo<0x=;PTIWE&ko+Rk#9{H|fi;45jn8Z&m(E0(7iy$X(&r=lZ#;v%yH zp?6esaa-mSrsVquqe)3DHL2B>>9L5xB_~(9rgM)PMgvItdq7^W`TWe|ItG+)$|bK0HNt03#q%k;_!wF}KAez{vU_ z9C;zw3UB>l;x;L;!V6395dHN_d8|a#t%ghR>BeebbS`3Sb#iyD-}SP5Cuufvp-)Kd z8L)6%GR175vmaAz!~?qZY~ylVhi4M^MWapA%MnWm*A5N`K6uUWfOdEIAl>;2)mPaX z%30lGO)@;uLgy`$5mnIBdxX>>%KDN`kpP3_Ns0cS6UKvcT-79ingK=Moc z*fiU`k8C$Qh*hj~7kVcrL}ReVmpYVaCkO$Z+oasZQX>N(7ZZ+_rK{^Bs}^@$^duRU zs|Zbg?~Jw9f@gp^r<^cQVTFYzmrOLt@uV!kUhC+xyT|9iY+iKSTzfVPtEa8m_EQTl!`6Z0aOwg*W|rMn8Y-sU>}-m(TSKX_EUU%Oh{$Cfk6f{!8!st){iQMQxy; zYfQdW$idF70TE4HFrPx%C(74KT$(#nd9a_7dWG8Ohr3@8fAGkV;6acH>a_iIZF6ra z`qtxi-9nQ&e*@j5~`z7!>*ba<3rBkyL_k++XGIe2NYaEHq88S>~{Ms#+lns2|3tCeAu z(Gyc6N8T4z6?S`~BY(CLDigu5Baoh+o;-5z@I)W~&5VfOKh31i?c6z%KvUb+n&;vf z01oHTp#mTwpr9aOpnm&f0Rj>V0F8=*#)3|YLB=eiNG|+INzXR3{8tnY9Pkr@xMQ|` zyYpBg1GDX0WaBAI?B_I>Thv2dYbZO(j&c`9@vgYV)YptHX@j12!5h8(m_r}Ka5_C( zN9)#KP}h1TXu-z8-&x2Fj$d`=xM+u9|2(}1J4Hi-xolO)oAx-|r^rDa=oiA;2Pzof zT8bf>HX)WrVK;4j1}Jck-~vm?cNdVy4hrAd*4!2{fnrFMYOp`Oe-%k%II(oM_uksA zp~c+~qNOI*t-;$|`2uC2uU#OG(Z26Y#^B{e?A;agi5y*>!L>KI^UUDRLxTGY0|WnC zj1v`HghoLlWkDBK^ofGOz$6o4R{E%CWBVyO^Opu7e`;XS(5Jl?RVrmM{aHUqAh!TA3UzZtcHQ{)HX0ml0;=H*Mys@nyBNS|_l* zO-b`i&?ucdTjZ#xo2oT8sDo8V@D`YihpVn>L;8aMZrG8=Wk9{!)2U7_Yt`vYM_#H} zf&1jPq${S1GV6MzAk8^m^BItPqV2)ehcaR;KgqsmiQBSDZzzYiOx(kE4a(Smu~n5a zRHmYom6l=|@A1BF>e`9E-eI~gu^4FOOD9jbCQJ6tRl!F^BO$8sX{)BeBr9@Va54Y} zb?Mi1Q33y__ESSJaB#4%prPTw9{_@<3o0}kDLRXY5)1|zs~!poxiVN=%x^yGXI6Az zvMJh+pHi?3i`spTiixdUJA>s=iF^Il;j592k8f7?`agriutJdM#Wtid;!D}Cc@YjQ z{Y_IRnAObEbxMF7>%Dmq|M^225u z-QNJeq{NZHBN$X$nji(J=81P$OB@L6YX-7M&A(IBzAr-b4MZYg?PsKz?!1k_Scix= zQliumFQ1SNrO+2iRyQ->ljRigprmFkUs1aQeqbR&dL=&7E-^RS?$(O=>fU93Imk57 zm0@hOTQs!Ov0$4PSUsd)cY0RL&n-*!E&{E0QFfNW8u_J8gz+KbNq1S%CA*#zZ87G1 zbDWhyD?w0#tnyVCiK0`43w~r{Zt@|XI6ZJf1)e$YebkMwmi#+1M_hG*V?3FYEaCDk znV_Bu_0H(8E&4MwTTHC!yUvUKT8tC$?9twMkvPofQej~P>8YqEg)D40X~&y9uDDgT z##{!TmlwcIw1Jh63mK0M?%I^Nxe?bRx!$PWLAkP);#hh%$o_%nVBUXD}}X`~$A8 zr_$*tic9g!n_sjP89}@#Dr&gPiXcXq=&0~24b(M~3g`}%%m9jVNjrRdJ5liQn{at< z?~e*7Og|vgVE&`XeUE{Bg`S%87*(51;aZnWT`=C@!#<6hbq*}%79OSVNr7Rf{v;;! z><|#-iM3m{?;ShvoxAi&{4&3D;j!og*Lb!H@^&-u8E{FL1!6bd60N`XE-a0HBdNb! zoPMAM4r07wq}9mgdZj=d4sYPsHU9$2ngg(Bn2OE+`7s7~s~R~zj>CL|t9W`DFSL)m zLNohB9BoHl{)HXOVA$(^zgs;d1o<`+@`%Df3j1W64mo0X9{05B)Czmb6RY!wCLk5T z>B73a_JktI$WP8r8f|9igC*m_k3eN$%B3wD<*?DqLiahf#h2oZtm(sa7F43*wtOex zH30l3tNN{Atiz0aFCtRbfO2Q@m}AN&>20T;bpbJ+SvQ~MKwPPXYJIcd=lAqy=$Q?9 z-KB&!H-yu(t1@>gS?gckVGT3fPTA7S1a?U*3wzfL8nGVwDOT6j+_=I=a*~;J(eI)- zi(Qq52NrJ~*d*g@9fO1ERRf{+lw(DmM$0Q8f!U9wPVyM|y2^+mtWtS&P}CkPt&OVX zlHZFsfu$2{9<|>C*35SwII(lGVR6pWq+>9gf=eUQZIz@^akcZ-+H^hlxmU!3)#sY5 zG~-uuPVFK5Od;P&8E;)rpFt9^i3Y!_l5a_7KlY3x?U6!Tr}q>jVk7YC8qNPy;UX&< z2h29&DYF_?;3bfdUZ)Th7`E+By9BLi~Q0{`2dQw=wfEs$k6qTcoN3=rQatr(r4OOZIh#VdR2xaKO_) zeeoesREYb77m_JzXQMYRGsI@NwKX;|ZLH|3jsuGeEBPxR1@<(4*Zw1H2;J6bhqY|e zAyBEDB5aVbo}r!mB#-9;f==S}9F@?&M!&cHP>qMBtO50+s*WdEt*e#?Vd&FId&f3GpAOKnX%e5M^|k>xlm= zc^VB(8uE%EJ-udkbK_)LTTcB6b}nd}Bl{L0o(XD>9$!XUd2M#Q7JDL&FTH_Ds!+f) z;N=lj_UlxpMRN_C3qef(o)`%I=DGs~dSwmm1Kcjy8*@`RC^^5YY^Bs678P_uo`tUy zW`=9)GG=*;yj15cuaocbOH!7OE|oV#MT@1+wVVvxYA(+MMB@XAkLJs#X2vkl-(I&Q zX=X+mYf44&(jM5Dkq@!f3TsOzJ8m53CJn)lSPc$1&30Dj$CDce^Nj#u^d&=nIM@xR zm!$zq7>!1m3U<`rX;Z10O&p-;_qo=bD6b_Voy%c+kc^mrrhk)`r&!8mTdal;fq+uU ztop$LLlgm3Cd3z!!xzR?<}<`berGv3CN8&YF2WFJ;|v)Ap0i9;-BQ+<55?3)o+V-<*B?sX=)BK@%fVFZDBQ?J@z z&D70HASLlD`qDu*DH*rk&yeV?Irx`nBjYgGap3RMbi%&^rqXOEIfk((xyCX3*WTc* z25;Dz(u##~CoAzGgbcD{0irc*6-Ds7n1*#`(%5W^y-1-b>~*$G)K>(oJuT2F@G^l9 zcPTjB*^b@3IF2^tTo&7c9OL5#A?)Avod$zCLh^}&OKTX3oO+7G4&vLDk)h=EclTPD zX>Sr6k&DyS4 z`iLv@6SMFP6JSP9M}Y5>$hY)ArBWMoc{la?u~2p)A_Zfwdw9zgm$OJ=+Y$)Ht@Y7U z2yLC~^V`IFCvJ(T=+hX+OK*r&F)x#BgX_i9kb}=)Ukr7{^QK_QID<0OHFF~2(3t`F zhz>OjCrMr8)_0v(RW#(W^{?fsRASi5d|HHAY+3sl5BA);a1ke@Dw&@Fnw@c2OoWSz zNs*o9>qe9`#7wnWuB5=&a)P#nIC0pKg#C^x*jzDXjk=dCsf#ZBJ>rwyXT96AL&_3m zMnO~W(l7d9S9d<1)pIYHMi8Q&BWxLAk<4xzKJ677bK&BP zqI5M<+FA~Gwj*cKL)-Sl!&P&S<70|LUAT)+tvmzTDif$VZF{@7BN;7RmYy&s)`>U> zW8=0*^66A8%Y$)witP!RT2sl$x3BzV;v@oG9jxwc;cl)~$p};XiTN-_fGZr9d!fcQ z`&mCo3Cv$xy!t$Q6MH*lHrHF(IxboN!t5FFIp12@zSiR2T6zM(2n#RvX3CBejVqpE zpTX|a)dq@H7Z6%XNry9j@=a9e7?y|%O-bTl*qE< z^XD75#ru=uWlf4$8b#G8fFRK`fIE%iT-5UpZ~DO-^@;SWt^EK;oe4NFVzp|BeyML~ zE1>&oh*GIn9KLDogP{S&Kqc!YY79Ns=Otu+$KfC0rNd>YxhDz`_~NQ#4pT-oCraxk zq2s-0v3A`1f`fbSw7iGgpcFV|&&2dWw^L2fIC61FYgSr3cxR87rNPU3zPin`(iB#& zBV++CE6YD5i`7WA>L9f8r}@41!&lMLji$KX4_e0^&pOHl?_QcxhQ2spH>t+2S|NJE z{C<#^YJH)^BF|j@IZHzT1hJ8;53SzJTb~?Fo*=_FC*quOeXAMwKLiVv0guSuZ;%k!JNGO8|*hY)zw%RCaG-%Ejw1T{H`NT3>tk~Zq>D#xy4T2Q} zg=iZyst@7^1FLC0&X z8aSGI9=J(V^RPYH;*GZ_SW_`{$9(8SIGo0yPCQ$-s-7`Zw|ZU}m@rB%5FoHc(2|jl zZc!Cfp^)6Zs%(zA2uZ=&przF}uO2QkC#d#VEiYr#a`J=GTnnNU95(=sz?+0M18wMM zrZj82#Nw$G^ZjGWC%54kU%yLCB)^%VE}Y@3X*iH7G5yI;kz(O-4ca@=|)kgiGKy#oQU1@o{ zy`|3cx??yfrqI~195UaCONAWu41@-4Uk_!|8s`)%y}r^?mlfVWoKF<7`Y4b& zXIY0*`qplf=u|faGC{0@brf6{8(PexBv%^X<(=D<@0E7sN+rjuw0tBNn9t`)he z+iQ3`F3~MH=zOpPBekW-4abqeGIpS=NqaFk=z=Y@2zGPX_);O1otP@aB(L?dQpCC` z-|P~&Bhreq@!>aRL*~D_-B<~x{jSK5sfA9+LfvOMJ z3O~R))04#!9lz(~f*tdsuq{R+)8?e~;OWQ$Avg!tHuk-hnW>d;4Rz1l1m-$qJp<0@ z9s|C5P#CKPPxlj)sVBLWGV!sYh6u#L`BbdX5pqecZGMVk97uJ%FsFl|64wzSA+z&N z)q9F7nfNq~j!fPQE%MgT3U1NjZt-Ig2Ao4oy|5R@gEiDMz>a$O-D@A~7;GfCt}S6D zJ2Qj$;NDm#rAC(i+eg^>9pIOTx`|4P30k+z>gjka$yS&WvB?0B5CUAC}3DXtVy zGj?Vwm;tiy>XHe|ZuTVW-|j0?IdLaFNUfVyDbS3q9Ho2AWw%t-YsP}Z=IuQgIuYC{ zI_nXb&j5CC*!1k1(1QdNy`2+9uu-ccKdpL4y#(EPwER#K&05>?#v9XB>wr|%#8W|` z{E>CNk6KFY)>)b_tl z9QcbTDs@G)c0``pyz&gQdTxPK7sXhlam&(|Kmwh<@MaoIaT9FI+S-f3>`+9q5jM;x zXQ%tHR#3#Pw>Ub@<$fYhM4ceUvMw5>D1onI$s9+W&MhD|P0O!YJ2*e@~>OfCj)Y%eKxr)mDE2!ow|tr8!}Eap8@ zF0>+4**K=9?ZhB5Pa$pRI~@C-H}>)^^?W=59<#US^#;l|-&=o_baN z9;G=(cT+~7dPCS<7*2YCcGH9TD?!WD_Xw%+GAKNiJX#m$T@(j#((I?FLgJfI&IUD) zSL2l%XDFTZ8n1DU2p{`SIEXmq<3HgWRmFbvm&q_;Sbe!aGFg$#_|kll1L~|aTGhrW zX`Jjfl+c`wlg7p$hqa2Kr$;tsy-}z@T0x(km4|9ar{Y^ue?4zBnk|YZ+%<+kh zT=~esm)v>=%xx|n=DKT1mT$9>_CYcBM8~>KqZ$b$(Oix>(aO&Nyl24BGhiwIC@(n+ z8SN&82lMFk&kjO#)uaU6RTQDga&-DH=f$EiEx+-@r4rS<$Z0de68o&hmRxdo~ zGbr1|Q}?TqSSq6vf}2U>7WQ2y_z<$JKxtzaH?dN=Qi6s}9xsJY;Ex%6gE&PFJ9|!! zuW@6s=~87p)YmV)RleQsb>F}`f{jD^BPWxJ{ZsrO6&D?1LMLV#uT6%OFJQw7i zg7mh65fZqxki>JlijN`mtw^z2Empl7bM?Zy-E<3kXBuX5B3QL9)F?FXR6~Z?!(aKN zzcC)BrOsp`QDQPJDb)a)cM+(H(?I7OA7SPuT2Q&59KrgzGpz|zh~*KFsY`h8hb$Bf zvl&g~B-WneK=NAN2U79fs)||;kMlTEA|ijnE~(@Xduy4j!(#7#c5^rMa**itadC9f z;)d>>_r2j`-1q8CGOP1Gyxb?^w|Ly!4&ikLK>j1Shy0?!GhHtg^9C-edlzwoc2A{_s&ewYOkg05oA~F~+45RC)3vALEphzsP<jEwWz+Gq5+w zW$SvTboz!K?ecZ|woYqQ}VTVE9+z|{B(woaw;h!YbDf3PU9nnc zgXtu)*UbN<-zlojg=oB1uK#X1%q7W_K|JZhW~f8&qQY;&Z;^1cZVJC)I)IIhSvM~@ zG*e?7gnu;e{IH0iIuRF_)WJnKE<+K`o9(O~j)?o2vmYO;HlD0+2~NR?Tn3-S>!=rG zfX4=nZGqVN`AzQJDJFF{ys~=F;O5%cKnyhF3Wl;6ZI=tjFLdxs8jEf3h0IodlR!J= zVB$pIsKTS|GvKx3PbY&Lyl01a^v|k;~Q3y}CTqMXg zDb{JItTq{x<5@GfT)W(Fk!v)FX}^8XaI4mn8S!@3>z)|Tu=8yc+=<8igXvMNN`-PJ z#79Sd7ghQnwAG>c06LTK0Lq!IAOOtTtzR@U{SE2jZmzJ_hHNma_LZPFas3|~ z58mkchsiS-4=-qmFW#wo|6U2d z4jCG4A;Ve=>l>X4QB1}Wn@vb%Hd3x7VFEg|gCIgRNZ4t8ef2L8&QmQ0C>3i4LDI&w z&VJUItTJiRvfpaQ3TkwV9kuDW)vV~30Jl^1InwvssVCAMh()D&K_TETuubroA-rKJo#@9rn(c}itZk`rie9P& z3I34D>Zk|;FH@%kc6c>h#BWd1STE3+g3LbT_3Yzs82KdELU#Whd!rgtF18DepuoP z%*3-VsCYFP3E!-T0chQKfP7&e$`XMBe-T4wC(ftb_AT4BB=KG7xxl$)t${P&$%q09 z&xSxj#*9k+L$QF>BL0Er3ifG>kj}$Nz=2I&;JBEdS!iF_gr|BvvZrNLc)oV4)`4a9 z_miF;i}tP3PECDEcf)-kiA20gJAf%B-h6wt63Y$z{85Ik7G#zbcMi~otZgl4L{BUxqf6XPX zfi2RmfO<1)vmdxhP=kJ(#sGvZh|Dn$Xa&A!j-D2DRws~ z55lV*abejQ&Hil3ZclF*PZ8ZVXGUmKVG_11-&UI~#V}`Valz1uS29>m!RK(Y>H(9Qez)uk??i(twP}4nd zY@vi49QB!A-1;&2WsILOt&>QfVH?7&BJHgKx$`8VN1$^^RdO7;Q&mlvph~RK#?hG~uPK6S?vYp=f zSLz1#ioxy;sV3@WoJ|ief7mpZpdxakRegqBnhpZ-*T;yt5Naz&X3V$Lpaeq4!5DP= zqg=V7tq)zCpED+<7Ehc;TY&+2fnq-*hJBD|#a2!R9|EH;)p)96kl#huWuLc^tML-Y zg*a(8j{Re7i4 zr@txZU?eA#k61JuWh^bxV(=46UoajjtD0BRXQg-%UTgDtFr*T6_@~vpPaC)ef?xcsday++@C#;Z(g5s3GCD1s17l$uoXByyaReUVAh&>wknp`#^u*_ zjmi?s!VM8`+rk%7ecGnu+DhXb`XWB^xZpu78aPC?Q-Pc<#WG;6)n8Fp&Vv}Cbc1i32rkJ{MmOz>kjM# zpZi3DyQv>0J~KU{IX@+JZ`i&#zcQ9BC`(lFv_38by(ff{H|ma`&)!1l&F^4m62!+K zw`{0vJcBwa7AHh93Lo@6-xZ6j})> zufQYTRPJgxL*bWtBx5huq03QP;OBfdPcx_yx!jo5-QkmAg?G;;WW+DBV!^MQ(oLPr z4`uVn7*22mnE?5wwM736$3xZS6-JpuBFFf#L)}TPgWqifr+R~Qkl~24r(>Oe{kX~N zq^@Fvvw{meQK0~ZHs>LKVU36%)YVC@N)l*(uF1uA7f)hFFp>U{;(?B@_SM!wA)df^ z1gn;3fV7WXS+AdUz@_j3$%pm(3sqaa_&inTTAlaB@^V!$vsuZ8l~^tlJ;sgDsAr zm0$R<`pqn)rZ~Pd3N*!#s(VK?hOWNEV;@8C9_a#rbb?1o`bB?x9JeynrZ(jnK3ALLR5Uw!D=KWyx3>xom{k=G@McVQ^#xzRD&b!A-Bp)b_Mk)Ud5CCjjL ze238In;y77V)41#JHUdzpnoYz>k`yTEBqShV18*=<*okSP2uESTEop$c}9vyUm^xm zVBj{W*XPnkqRXeKu>M>sw6nKDpA0ubX@%(HyQx?`sk!&vi*=*~9{hRysxq`h`YD)P zL1E(=$ZWb%FB@YlY4~2=W@Lc*G&`}1%{-I66-o1ASA4sDA;Cr}!zyp`&QMd>*0x{# z5RV>%!7NwT9@#gVsYO6Y4jdjT!HAdUJ%PJ~#WSnTlOliR?wB{{eM23gI%*sNPjzcL;iX>+mt~SH(;gwv&FlK zouB-jZhJ7;^KxQXZoZm5d{_-uM%tNY6TXYS52lEfHpH&6mW7c*l%4Iq`rqst@Y3RLqz+n3vUKEyQJq|iH<;{`eU)~=*!VW#kKW2{&e4ypPDC1)k?*MDdqFUA9R(Xc0dudD zB0QR}AMHImzr5nsHq23vOcH3`OX;w()@vF>X&Mk`e(EVhp@xY7u? z-9q*?*-^U&tu_q)g6!1k{s7_8y7N=Hg>qw9flCTx9{gSqDYAukdAE+Qa zS(T2(o<`vJB@J?J^Q1M~jMVSGan-tn>_cKz4R=O3E+TMPUAaSyb4gARQst@ZC!nxr zT^nc+=^K%_l4GU8tUb= zB5#l#Y;oj5cuxn$go8U9%!xQ?C4~p>eenBgRdchgKo(=HBf@D|T)A!p`y-)4{*fk$ zYV8Ke4P}Q7ImuUb zV&JFl!_BZro&l;}3v@nRhfhtZ8UE}s6(;`=dv5_1SM%kIHjM~l*IDOOSN+cJ zb9Pmos@hexxA{xu#|hx7ch6Cs&CQ;jZBcztuAh!Edw3?Z2d}>`{CVfor%QD?W+Hcf z+M}O<^?S%wMQmUIDge2r>X$*kUxx9JON&r&sX4`5s8mf&{A0iz*(#OohhwWpqRy~? z?2QzmzOKpbw!^4SE-{TbaXRKXwSPIpNk7KCb!Zivx<~f@plHYpv~>u6 z%l7^(R88c9MOSNfVEaSe_|Pd8R(-9?TjSTksB6IW6OfrtSFP;!{wH8pXV-hvx^uXy zo6Hu{iFmbklhOvl(S_KkTQwTL!+z11P#l@$zGvTJ1FF7!Uq*(Xvgnpx&A?q{!}Y}S zsr%7gGkM`NXYN2n9hZemgf5Yrm?w29Rt?_j11tagA7gSBsz;>)+}t06b!&YqyjeWJiV;2~EnvJdD;3B*2w4Qcjl_qz3(u`wgcfnaxc*ZbjjNA+2`M8ir^X2DF zzkd7EpzZS;)&*jFd5u~lDYE$9%HFLYUS?W4?^G~lX`^2pWYDtw#V4*NONU7Fo0xO- zC|BE3w2gdb?2-9HjuPYw@~F1>9YkvC>leo=AKqK1@vh|eHd5>yKJ8~E*AuLm86%p; zK$=b3g|g(_I%~%ed|li2?28i2fu5U|3n$){CyhNP!hT^@-oDRd5qn~Bm!5+PAea8} zaV6;iU*OlLyTteo@(iK3!5MMIE*n3RPrxB$eTVBFRi%#DjZ3$<787IycMAH(r(F}c z1qgf{W>qr7fn@S7JiSBskQRE!7_Jl+Ag_`rFCT~DwC#z!~vE_ z;|g=1r5D0`svjv$JLIHpFq^qmesmgPa27@)7JS0!Vz>!MJk)E2yF^OFXTR4>W;iOQ z2!AK^?O|T1x}g`A@zM9dXw6TnDY%eH_bcV!v1{#|bsq6cjEfZewbu_;i`bKz~36DHGP#at;spGX{dE_uW@?7XGNzN2_b?5#YCBj^X#rN{-lyC%irN{I%`|#>JSM_)ZlwYDSqs)L7>) zjWXL^t50u?a=%ZstvCx%Jh+GI|KAu`J+1T6N{JOi1OKOw$RstVt<&W^o2`q20!DeY zYwA!5D?D*?O0K>O-qr*%Mf9C}(T#>bg8W>d?`jlzeuSmaI#l^svL0{gYwr@O&OO6wEUtjKX0K01imk#=RRC4Lc? z(a;JWVC8-6^}+BKQ@hr7Ov}4(j=Y zM2H@JWQim7)Ii21aKpSl$D8h;+D}!@Atuw*ubRC(x!{Uj9fPF5RcUK}%a0zjzuc&Q ze!sqRd%Q!jYcbbIkHoFFLD_d_|0h7-^sHe8+1h7E4ug$2uQ?g515eU!%Ar$=PxF~{ zlS+(lJZ>Eg3s0eCc5lp&1&S4yld2Bt2Efw@#hjrB%O{56)5lUNrb4a_n? z0Ch%tGX+B^Kb2?N!~FiBGCf+xBYp%gNwvIgT3jOinPXtp%|fMXQ-oJ~$1usFWO#AU z2Su+ao5ZnllZ1!j+s7SO?uOBo0c8F?uSZ-D#c?yv0&;5JDJU|(V(y?M)n!YRQJ
=y|K(KMgrg-2*Mjms&=vP@LOePUKval0pp+Ct=kC9aV zP`XEaI$&w&K$pPpea4MiKhrxJLghhnb%tsv_r@0-#PG$oS$NE~fCsQ0&K%RWfs>@>m;;OD4B-wjmx*x zUdNp(F{xN?Jhy55kswT4c^FE8{cai1<(0OL);|xiW=d|b*GQWX88#*B1Yxo=6d7{~MDSE@)4ma_kWUu#dkV_9HnD=F-!#fL=VqfR!}fOh(s7j9cMPg41iEG~J+yB~E=y$X zW-pG}V?G~nSLU5RcuSk?T8j@y=(Kf{}_M#2+3BXXwPZimE zP=As3(7y{;aNb@jU(B(1jG1*j`JDB!4NJzzPXJmugO%o}G5gj9VVeW8SMsiy_Z|Nd zHddn6f+g7{K8nR7_*kkjT~7Vi^6ySb~8L7K;`|Q|_{qOciL7SxC06u*vrd(@*h!M7g_k66$T}gsBI65%pT=e?BTd7mQ;~>lt93(PwH9;usX^*X z7$x;vh|KKalydAkI>N8b=x$2}1`1oM0wTcs#Pi%ST=7-bN5A!!7Q8|O0c)MD6 zC7$Jc*Yu-Kd9ijK##JN{cwQy~+uwT!S4JRr-y8RHi}9|5mOO4fb-?)!4ezRtn6i6 z_N!_wUaFrmA` zR=n;z+eWsqT)gqa0QX?kxkT%`z?jLAAvc0zA?mPd zty@T=E(xmE5)JUYfRuXCvHE$2w0Szd^S;B81yICQFPa?t>1J8vt}=JM)M zG&W}O8w3hL6;lW<2GiC4Daz zBA@(T7r)+1n|>i%3Rj_;rl`TK4vPiZWh5E$1?@JvHIBQhqJ>=%ba%ei=PVSB_*mrx zxhZLCkAi$)fj}X<#)Pl%g)3l=#i6(EQ7N+dHyeTNWz+GB2md? z$bpl)U}fI28OQhWyzJS~@1Sc5gK9M=$NZY%eB-Ik3SGndik$jhXS|b11*@3iKIusX zhlZ@rglCGLoF4wSj|q^&4jQhS;Hp%UlM@!V(iA!~e9xQ8&?TNfRwKBsvTF{@tBY`V(Ge6fU z{pK#M7H3}NIF}d1bj#hg-tQK+Gs7ys_ldqxjyH3cl&U~fQ+nv>>wXJ{_vMe?L`#S8 z?|hEC!gWI`$3sjce4DOr$~dm8E8<-EZHN;?C|&mBmK$zb*LoW5l)a773t3moMAUrCa;%ALfd&qkZ$% zQ;aT~cWNfPsI=QFP_kCiJ8ZF3aT$e*t#R@a%1ZcjXe>~+7_bZr$=`_U^#{V6&EMDDZhHnO&mY4TERC;@6;OWZF|Z za=d;UD^u#jKLPhax4=A?Aa5L|MvOYpniX$Z&3MoIDtv{Ognq8@Kg}fxoU<(R$;UP~<#6FQeKAV1H zKylj!&rPGw2b>S6cSK->5n%*Y@F{i|&e#&LH%o7LWsavPE{q?+C$lid=tV*Cx zGfAnO2mhhTt2<1*Y0pm%wIiLeL0a(1F&ovFFE*HGae8@%o(0@vyA8Q3$a4`2NewKW zg40)h%l#f82mFY#c{aHI!_eeCFqiaWU;mS`Z%b>pQYLn;ESX7nHbKQp;^o1o1 zh{Plr4fQTFqcT;}HcydJMr+;jQZNpu&T zF(BgbBl5&HKHb;3MFqLay&&%SKIHigYt{C&++`4*98K`rb7BQ-o-nWPj%dz3hsnka z!JZJ=p^zb}b|xZokYE6j!MU_;xZ1Er?U#Y2Z>|t=dLt4hf8!cojJ2=@aOglqg-L504Q@EOQA?1ubZbgX~`XJA|%BW*U zb%SI`-Ocyg8H$Im(m6Xr<5U>4m`(Xd=?tMDWy;JrQiQ7X(zh@sfoStYVu>mOhUBAR zP1|5IPcN*Qc5l8<>PgZSYi%7;F{z5HPcRNF)~wXAdZB02_YZj!pI>rFSX!ak23nPJ z-v+$7vTM?TOT*580z_LsKPQWu!f~TJCoWi4*xS08FY-vdc5FYtuKKUA0#;UC7N9;+ zs#;VoFST`AJQ1JA=p($W=9>s#(H#y7?oM-AXkNB}=9uJ<7xjO&YRtCkaFiNg*K}le zz>J83PP{LgT0)OoZcppnzs;KzWu5c7LaGZUN_ddF3QEw{^zx4VA(Iog~|?;@7H|3&*#gL@3xu->24N5m#)$!u}HDLsSUad(Txcmud51DtNjbZUo6-<*Ya{Ndcy!h>qHot0TZ!DnL;bL2Dtv+_Ku1bN%v7B6} z3zR2euZ|EG*}>aSulYn>-|87`^{T3N!O8o<9g+RqklcoSO6ZFj(_)2#GQ)!@82%z& z{?6+cSf$^KNRJH1TC<`Kk7GF=NviO|8bkFWdu_hu+GLXM9jr{;?{0Y#Re!!WnaVerxrr=+D z=J68%bP%lQs=z8JP*9W%mMLBylWS(zFhL;Ap^sqbqkSqTX8wseP?2+9^2Q`LCHD*NxI$c~N2toZ?Jt56yDCgClSU1ab}H>Kv=y>oEegKi*4SBWy*QZ;2 z$V`*Q~NZSvJK+NIDFVT{x% z-s$?Tv7*+tjJ(?$oZ@E&PH(S|73*uvauWkVo;sA(WA4aR`ac1rcbEcK#)q6tsd0_2 zCQr&e;47~wO$lguDG)ZRQ3B?}4>6NU4S$@nU-s>P(Q$qsc(`jU&z3Hi*E!o9o<4o< zZ8Nrt8D``EPQ$_UpFpo)#%28w0+(?@>c2E&nJBTLs~7Rqdl6Tvr!IYt6yz~Uh>RN0 zCab=|nFWs(%$m=J^<-`m_!)|q8g)L8`Ec%wbCTasxs!RdqAeOL<%^F?O~1H!G#%C4 ztf8VT`I&~jp6@5%VMY*}#;#~;rd&hc+U=KjtM-OM*nImXF5#FqXOpKMMKz zr=QmNS+Sqc^FRLyh^4tMMZPrE9U3`K#+o9S&IxB=>NdFc?W>pg=%t?<`u&iOvYPaX zHmXZb7JPyiz9C-3m`dQdviknI>E86aJGeX-M2`GWD2#XX6N#s^Qz0Q+%cHJ#JFopJ zOZkT-lBPobv?O`n5+HYxHo9$fAq=ySR+EOvr8+?^z=$tQ$@BH{4n zK7L UuJo$}j62TG&ec(ceiE{=OhtGWTxBoYPhYWXE-6H62D9Oga3e*%b?vz56L zky}HUkF`^Bj|)WF11J+K&lhAPFs;N!&S!?m9cs_6znrdxt&8V|Sx>MIRIN?EoW#$E z&<+yGky92#MaAXdOI^1MM+m>KSEeH*{RwEWd2ds+qBfBK&aVMS+n+ysAwPgWK#cSK zL~n2ZXr4x&K-hk;m!}t|Zu6nzgwU@G<4cZ$aCKpq>!yk3h*^@6yn{QLWs!24En^Q~ z)Ioc#WeEnGN5k$uV>tIxl+T4Fr{YmRf@FPP^49U`FE%eLOsrz zwq^WmCBpLht?ke?{`*p?rO;jEfYo+uE>pmZt=;RvfZXHy*Z~ygJ*g+Vy&F;BJzeC& zW&qL{#BVO+kQ3+t02oCM_Ah2Re&-4d4EJXS3II^=|4!mRq9FZH05;}7e*S+nK=L1X zZww6bp@x@Ke*q1E282_={sQ!mWbwaLVTDiunEnC(!vH$$50j7y;y@|@z>Xyp83g|! z4uc6RJQP3%Ktj>}5CnJ-FNl0QlYl=){7OMVmMEC=_!Pyg<> zMA<)uQ00VDVOAg?{m)4O69xqQDh#5(kK-G+%zsl54g)}bRh++~Wa=!W1Kz(vA!`i` zfcBS`dVl30?5}vCAj|2WVvrRXS)E0Z7}y`+(4k}n$kq)5lL`rd{4NL#3nGDpgG~V7 z?10||{EEZ`ir{_}s4 z1i)bMUlI_d`sbMc^&*ap$jw4~VEspcUpIiosbaCIU;wH=menuVZ-mK(ETTZs-@<=- zGWp+AVV!?gEwNy~?m#giS^1{|3IE?2ARpD_w^$MjxFFT95b*anf(QP|iwgmz^KWPr z64-Coe}Cc#{HH`rj(<-5JyyRU)S|z-&B%X3X8y15?7t%pq|<8v(%tkkX%0-mER>oy zlnfI91qtli=)ZxP!;r-u0D_4IVWDJX0GD3_ypqtRr=h67>)Mv1kAq7V*|!1U4{`wd zsQ#4?at$mq?k|TQKr|o-`AEMJatSPe6D(%xqUuk@A*y0h**>;<81rw;3W6_Esrh-r z442P38d?r~@YhI-4p%kbx(dIs#sBg+sRW;@LDEdwC3YeB4m-=a&K+^SF*~0a@Zi`) zrnxiM*ga(#^rD2jZM2Bv0tZtDn5(j*T(VZ01!_S_(wVfE-O$J2Nb%z&eyzIi3_-uY zd2c5_WC4TVb|lt3XvW{J()}QBP+lc%Pr1%lVES2U-8l6(`WSNYU`-_n`hEW7jchVm zLSP|+L#NHeyk}c)yz+?oF_*A6nktlV7FsOm_eSLT;{K zW85oIHD}5IsW$CS62Yl2Vk0gYe!c*OA?32jo}Yk(>&*#NdV?yX^rO7e6*8d2C#J6% zuuY0`8021h{hFY$y$6$C5%XFgyRK{SE%aTUk|86~ zpAIt9fye`CkMCau4yNK%5mOa4b@9*Uh=Cy`e)ta)hG3Gfd0*uXR0Tu62D+&7T`{`Z z(3(lc8VSA*DMO20v3VM)O555U-bmZ7YXGkWM1JN{_upLrYb;YOv_t0$n zL@Yf;jVZ21D=90+Sfa-o@yx5Is003YD7z7%5rpIc{)3ZP5keIyqR4uUfuL$1ev&%5lN@PDI1LxAG*hCKl=luv9I-K`V$r3K zmoHJ@-=cH6nVLxr!|J@H51T2Zj}v+3dxBEGYixcXT9P`M4`yLvbV7%Im|oF!HI$rY zjgzIT6l^$Oo9?LkTePT_`*(6jQbN5fk6qJL|26qLxQAZQW^JX*=-3EpFhb!&*eZ66 z>z*1oC><XaB5hlP}#arYDy4~K%A`3BJ!A#xXl2BE1n5U1Ik+z|{Q69tkK)WtQkW&o9cdZer znuw@0c|EoG!eV*-Qt@l-oFGXEWF<&a5<)vy%b;zvFeUJ3Dply>6w}|5y(BNM&d$=C z;$+cOZ#%Uy2eYqv0dn>RNU0yiL-$n4fX{(d~y&>a3VEco(MB5tk`Gc-hXoj zAKd|dslJ+ay5|R^K2`=^?VQIzV;P8Z=RR(kWH3z1`n_fPAI&Fy;OAJn8X`+cGDcHknVTZYs@8IN_;ny4%2H*Ri6Qlw)E84N8i(i#eb%aAv$}Rb z9-hz~ zrt=q3jWRZ!ch)>)&HyS5z!_jAzuRAX)tO&TJLn_`(-zAd!L)TsC?Uo&M%YyttgSg! ztE=aOIS7VKiqYp6dhUg}Z;*+cs!9?efQ4nDUIVx}~e}DF6grq3UAzP&uDAq$QUfEV0 z#q3KJ@S&8oFpf3{C4iv1ZB|p%dn{D8u?hep?jlHU5p&k`uPHtyYh+fW+q5&}XK=_Mm7VUr|`?pfroEO*G4q=rzyQ2)0iB6lzM z@6hd3pn45zgT14^wQmZ?yXoO}ew~`^$?@ofm0uSarEJ?pg%v1nD_u_bp5-`qeTIvOsRlhM{EQign7?H{XU=5~HYNiStu?W!*p@?;V7;vgyWkG9Ve1Ak# zt*8>mxMtxIfi+#woy^sN|HIXAx`MTcQzM<+<{Z6KvjvYZ?~s~C&X4mN)fV9_4-;+FVhHfx(K%Z zX#`itdIDXqM$Go5O>(=zmx}R@0isCTO19%NeT6JZ83;rO+Mx5LvN(?J+m?r0)KhX8 zypCCXhIum!P^lM>B8M(sNZby1Tvdit=0In~o93j5-$qKqmqK*y@$k5W(*P3ajT>6Oh4#mSF7+1Uy6#4c%dPXOvE=Kxqi?=XKldhkMcenz7=QFP zAf~{lHpPR}6*;Pq5pR-DQ9;@;$%saoNao_|seajUFc8y!IVqwRs_qDUYpXo8TC^z@94s15v8JcH)+o5k?$=O*^)eEwA^f zL*}ILrE*Af4uoSd1Gq5h3FMXf^*D!hb97Z8WatPYU8jJ$1fV)579(6mSKjocLLD~- zWO_27fMrpxiS_=I4${02m*x7g57{W3);^J7pl;}7uPZ(Ve_t3*wzo3=1OQ`q0@G6 z`dbe#ff&Ltd&#~~8YW`(&GAuSAkz%eH46&%JvJ=2V&U@J8#+c6B3*L}4uSxNECh*d zgFSL4s&qCi2HXLnfMl3VwBLxwe#@~hX2(8f29xfGXeqFjZTCsy%7NjD4-|@r*ceEg zahOQ$(f*uLB%CMgZy~+YQb1MX7qM$-7g;3_#;6DQ^xY z^>w*0-{g&C(rI&-Nny&^62Q#wT?}!}95y9seq+db-wlTGZ@)S05L$@mWrNPZql|M*vIHrd_Pnu0wzJ_0)OhKD@855qNBu}; zsGAF8k;KKV#D@r*Hg(%LX4`2?XB1o%Rx|A=lo*eycB)P&)+T70U-|`v{19O#KlHs8+Wp%?uuTq6COa)Wlj^zy>|Mw<6Wr$mS2;TGMxLB1=iWtRW@qbe0yZil%U`ljc| zd|J#EDSheRe%(8q9m1X1b?u=7Ax2RUEmRT%lPoBcuWs;FL&p>I zr_d9!KX&uywrD#4XqyXAL7Z%FRKs7O@sXK@LvS3^KmZ_O6XhH27iBI09ViQXJ@}1} z+ba2>6P5-QiA+YJK5a!}qOO%fNC~dAEf*>55CjTz&T|E5&{2)Nx82C9J9=KN$+!yf z(tU?fsDa|pz-y?z$KRGJ`4R%*dUqP9MHUFJNO}|N8Fn9FBZjJ&q{Y?34y<+7Q(2AB zyI}UCOOAIC%|>WEn_?C%8+)-+)zzCO3ZcoDye=(|9=((C;YOfSGPTusNFg1qJu^Yo z9OLRI)h1Q-?fv4s?pL7#aI)@$Ck1F;$bLu3dK;0{lIW;~19<_l4rx%>nMI4O zdT);s&Jk_4iQZ|NI9s(5U(L-zjs|>UP~FL7c%6ve(BpK!Tm`~ZnzcVooD~_^0Au<4fj$Uqb$f`79 zV9JbHuK{}SxQ6AI*WF600>EMjSOs@tm}1TsO8_mli>mckI+4EDw9jI*0aONoLzY4M zXwwnc)RD+(XaL`(oU$1toM-%dm%L_;gI}0Ko$)sx`<_D3*p2qZsn2Fl2|C01!<{Q- z;A6nA&nraC1XWyv-&9mIxHiW4M6sN(iux5*AK5ULGm%a)fGk@=noBdu##4Y_UPsqA zEC1R$J-R{Px09Q6bd#X%DaK3^d!YlpCK@peIJY@z#)}m%EsAYwsx@G%S|vptyAUyX zK^CdkayCJ=Ne-N=5~@ppcTqyoNqQUKzB46gM8j8YsM6i%ct$Osr!S8_&d6n`K#A#q zYBz-k>DbfGBsGwy@Xz0vas6~|*IzFE;e5^INIO961ZLLIs0 zc0}hx+U~oGu9c`-Q(N}C%NOj-?)2BA(G6@h<@v2nRv$M~ zmshwRw$_a9FmG#5mKUNb2m1SXyF7aC(;9mGbuD~lgyZ_gb>!uBX!$o(sk9&XegRI0 zig#G8?fjSY$X!#*EB~Y77!kMApf%k6YuM<$oxN(?duLc@K9VvbWD2%h=eK#hyqDpq zW9OHZ&oa%K-ubJrBZrOXx8B}x6q{_v;3HS0(;$s7fJQvsRK_vGw#{><;H)Vh@>_%C z+-el9C;-zXdKfQeK(bm1Wy#$dToS;lEh?N<3T*U-PUzH?x7o>AH6R@@B;2p4v1YXd zi4L@XZH~u`RAnW$StVhfh%ZVu!iZ+>%mkN5Zm5x25E!z^(zUh&w=~saOcIH7QEf~R z-DDMYnyZRLFFv`OlLHgKSS9TTkL)JM@sW=QtBEg=sEA6xgX*Wf7`Sl^zIlzNY6L2k z6bvHF+TXq)%R;+PY=(;~h`z=A-;Jjewg-5Vw&L}|GiNvBe(aff7M@CB*t_c3! zT3;!7Ghzi|`{qUi@Z%OE?ux~y97vRejt$m|$Zs9tqR`ADKob)MA}y`8#jyIs>uFV3 zBK5rHN;b~WLM>Fcgm;nuPP)VX1aKL6fjsva`^;f|LHBbxI zQl}ac0H?y6G>j~t_*2Lvq5(_v9=Ye?G8;c3+~JngU1dZ^15~51V{soV?`Q%eHc+>- z#|INe)m1Igr#juZpW(Ya)q7~GIo@*5->lLff1DA2Lb)dhsn&k}+)`VFU^!x-5_Mv^ zCnz)=BIbHx0wV`J?r)O5_A-hPB+cBhELc5#N~rmL*S1n2$9ThftyCC;d{OH-&orl; z^h$BjY@Z4y_^irE*VF2t+fT%tn0qDx%Pui50LxO}@7qkVPZBhAm8AhNt{&J+hpnpr zipbwzoifB$W#tst3ClC+4gYYK6h8V_l_|8tm>3Gk_E7mgYVT9K$kK56j>RP|Sqs5E zj!2zZQlnKDS9xaa7@!tz>B<5v=gW35trI?N0!v_%svoJN+0b zcj%!VjN>7I=@C88!Qd&eJkV9sq{h2RW(0&4p^BE@N0AQz5{S}=3Y=!jBZdLwXeh3k zZJ*rG=msby4T0}4+*hT#3#~QD!s`oXO=VWIwyaFb+E~m#HrC@oAT*%#dx2NyKbADt zFz8#~Aw9TjzW-!Z8Lb%exJs`)pbZ|V(kJj#JTM56BSC;ppt)sX%=tn$s1eG<2AI+e z#E{C@cQ0>*ALy}d8$}crF<*k;kWsZrV}tOjc8Ikp<1JOt>j^?%>r^a(O#C-+h{lCW zwSfZ>T;T|TnjVu9T7oD!@mfS6!fXeGs)s3D7D6}iNw;=hziGi+3IrEr(Mm?e%BC1g zGvEP*j_YjcO#157QdMk(Z^N?g>v{U~VKSixN#*aF;+Vd|QN;X$EvoL!rPprjG+^Dh z)1=R#Ric&zP0lNA!BRLy^HEk7rFtB8JF&d$c+nUX&bYNjh<|d5tz1_!p_5SF#x5t_ zfK<9w_+&aEh{ukqYx6Um#?`frLvuovi}z8*MOtgeiXJY|EM5>A+)mR6@?Fs{)6TD_ zdB-`$Ivgvu$kp}#4~UXby@D5VziYW$IpTyl#Z_ia%%&!RiKrSSd5$;zW~q!Tlka^!A0!YE!`zsl}MA0bV+&ZW0&h5!>5@ zS;d<1RijP4<@$C2Y!$BUEXk56z6v5c*<1S;yAf(#{bsrm_`RLHk69*fb6hoBrK$%- zv9;KVDY;@*f`d&M5t*Uyv0qnz1YjHtKU!@ZAADk|l>(So=(r@sK+r#(7g4ceyzLhQ zVbr+tjis1;S_{g;eM!)VmK5N%mrE`M3ufrx>#VO`!NvnHD_UZD*Agoy5=27>{Lf}K zGmd+fQYqQQorGF%dpK&Bym?xaaqd$6NLM5_Z~&y5qL>F@8~MaiTc~LKT=qFsmH@3M z{IqeZn|AxXp+?qnx)i?n2Zafr z)$WgJ!J#Vtc^(`5g0;E?xL9#iz+!rQz)`T~0yDvK*D?zI=!50rdX$Vul7!u1M75vB z{r1(a*N4%&gA0WvxL;_dblza!$+T0iCje0(rjKasXy)?Ibag4Vb)v3TG_bV+QWhc4 zRC$OnBR!dQ-c9m`VPuX=+Xg<@X;J`7 zv~@}D3ys&lQJ3o=iBb;WjVtSQ_E(U5v_gq>)WPOBmELFz@h$eXFVm*K7K}|dY=&Wv zb42VuHkH>Zyjo10&^a?m>#O;XYNvcR(ZCuNwe79)lkOE?RY1j{RQ(wxmQ*2~>OFb% z=kU(H$14~W{`mIvC9Dy7*0BV(TG-Y3%s8#ojC!borA}DS&p~|TphTRpEhz(KUFK-O zpcbgXw3m8qNe!-Q&jFUR-`R1dh4|Cec1(UFh|V_1mlGutZMgpw1yD#pz-Six;9*Um zbzmVnJP|#*%hnmQXp&859+r2PDI>mpJ8f$i-Y`dWKz=WljWzj(CR~ySlPw(WIO;IU zj|(9B1Ty5U9S7qHosIgWq@!6+!a;yBMQNO~+nrm73aARICF*@0kf!ONJ$DONIxo}B zpORvAsL%jDfrNtis!e{NlRcIRUBQ9y(X0kD5Bi}|aiQ11zmmP;RV)M$uK>x*V26@; z?Y1+TQ@VcY;#g?z(lM&QA&FcTox-JP6-;!&z+-u1s><`@2bESSzeb#HU4V&8%BbG? z{iLsJ<_?s?%e?s^t*ozT@%2U2{X(1$hwn&RJNYlIkUQv>SJQrQ|4)kR;;B318G7sn z|DULk9QKF-kx-iB)Jw{bX~xTv<<_zo5fOa*NaBHB2mqBtz6>jR%;}_#*PM?cfB2*U z*D<~_0zFAPFEiO%X&}3sB1u~*>5NO^!wNb~fLzjax}}zPavt zIC73Vk%NxRCr*~W7zgMN-$PS2&1zF6*RaJ~BVpv?ffv%^DuCVx8mb083~k$B^FLy` zdM?e#hO-Lt8J^8EW(*z9Ybz;|Y29#ZROMhIK~aDacRhYBBCC?VU=zHtBHUH*{*(l` z9SVVnByw`Y)vW>82?I5DQr>#ai*5ou;W47yA7lkA0_Cc+V=Y+-6SY6(3(`2rJCAJed8*Wfm9`tyMykN|G zLMcWCQJIa-rJI@4U=2b?xhF`QU*2Vitt_O1#_I1sOqTV-p7aZgYHXX@F~i$UH|0jU z_m#T92?tN%QL;idz3TQI-3Oq1DB5s&bCwhoB`^)JRo3jUx$0t3g%U z;F?@zw+Bq&DYP6>d7{^&>lH*&r5jl#MI-hQ)jVKq0BqI#P<3n|LNT^5@;=$JeX%}X zz?cbcccj|q5hy2^gXe9vk4#lGVSdS6zG)Zhdi>5!8cXicRYkQxRSeZJhc z*UdwcT~7$JKI4PW_@XJ(I6FZmcJ?raGz1OLCS^Z!ou=YLGsxrfgqsiOkrn%XMPPJG6nC`1;ilD^E?@lUWa~o?ZN7*EFMKKV&t@Bmu$wjqaZ^iXUQ?Vj$7e$on6LWo!D3CVM z57Gn9`4fLVGNIPYVt<0raSPEa%0gu-L}6FkmkI@m@){bF=U%e@FRIAfa5jfR=KDIK zk(l4MV*&>4#W6!`EWkG6NtEdJ9Yuw~QY%IJn!fc^%qmRiW2ykQFFK?5V_+=z5z0D@ zxU@L((gzD}H!p3(N>oZfL~Crm5o(KQhSr#S;fM#8iIk!0)OCZ&YLpM@vdkqU4)iCr&pMpFRBv z$ZwQz5sPE7rg$T|_4SW5f>xV3iVZ64Zvhn>j}Yo4*mAS#8DVDdqPazs$x0E3*c7;S zvSHAm@{JMOS6$Y5KupKCC5o$VPR8_Ybn$IeUL~$h)-@8k_;CCF-65hqA#Dx8dkp7Z zH2HM)Is`5D(qFM{ESM&PQ@FgIbx%&M^NO}NvTqM;qL=ZYGOh3iaC}uIQlw^~fasnU zmL+V1HAh*oRr>KS7K01lOOw|O++s3q0#j6mo>I9F6-QP>8LeF7dmyPDvS|1Ma@G%f zn@%&oAiM^O2Z`N`7(DmRRXGW+nR0LeQ@HjnOuX!Rc4lCNzi+b7gJQ0t3bqBz2-cxk zjPU_mbO68v+5>59bW09Lzyc88rtx1<_H=cPhmT1T>m*b_K4xKv>0}*XHwblU00Pi+ zQKh1~&=aFsnE*tHsbaRPZj<}Aqcq|+@UjO&A_z+a-l4okG1b{uY)~MrhVABS&6Zq| zApZ=U!qO$M)vNGb00n%O(Q<0i={V=ek_>&z0y?*%G!~C7U~d?VDEs_XEwP4#2kFhy zP)GPYjw3r8C5^0~Rl^C997YUH8HWis_&k=Y)^r!v+&bXCRxmmlXnyuh&!x*$j90Vz z{9$A2ZFB19L_0rNpYYv`L`iv(v06(Oj_?EYv!gCg&htB(!KiTNK!MJky@@A-+Ysc~ zg6My;lJD2MVdfWK=rD)MG;X7cJ}$2vD||f3Fm;AY@xz9-xM2P~esX3F`cP(mt?S&U z5R_HC!oDel=>Wya%NWFeBzZZOU+H8Fn~oiJyLmca`>ri_n^$fta8~~#2+EA2QN{uN ztan|)CoMm3zovPkDvMPj-Y+Juwsvtt9ONLSL9A&8Y&)=^0+OMD4D-!JXVRRbu~B8; zyVljlIa-LaNVtQo>o<7$o=)bsu>q<|@etgU98kvu1QE53>Yh~tv+FE60G#ArP_b$D zj>?RYnSKB{LDFX<65Bg>NNwY+Qi*QeV7E&{hoJ$h>!GT?Dkmaay{*`8$K9Us-l7mf2I(nYI78IN5{=KZa;XpZKc7`i z99};HAx_TW6zbnnYQ4k63h%Xxl*oPES<-1J?qV}?DYO5e2@|A!=Epm9wjr*!QDhRJ ztF?R;Gb&z~5KgB8%B>s;3wkJ!E#|n3iQ3lha?5I^lt=7Yi~>p5t+R zx+{(|Ojf3VZjCiydPh-pJPP|GZ2NF`r%yy$VdAsR*pk8zMqdd0EwzEw;P*dPa zc6-$ueZHCTxiKv>g9@Fu#R37+x4i~cQ&nosn7%E&uDA_wq+Yk$q5zz+79mTeNQ93` z9Rh+d$k)RvV49Y;Rg2LEnhI2ypgy%Z5(9hYT1+-w^n2=ES#3*}753hR%-^zJrjHVe ztr9BBPnTHwh=<|!$tU`o?^bd=mkbp%V6A?*r@6`e!M++_en_KpfI%f4Iu1;P@!xCE z!R)Zqi_e;xBQG2c!PvJ*NF=j*vh)Km&V$$f6rN9WOtKASs4r54+5?4O+65$Z092|` zi>>+zZ?tmsqGCER;{TuS&iozfzU|}RneiRN*o|#ehM~qXL}R47GGpyR8JUrWX+p%v zQmL!mzKvaDD&1Gc&Wu4aghVbRTA0WZHf%y-<#jCw8M4774m6565X?&`@?tv z@_KUGEh==jXeKXTl)LV4P|~Z*RM$vVJ7v}02g7DZs68q%-&)^GrNk>c;g1Dg9fg;{ z=hdLG1#3+mp8V+JB;%lKmTNlt_gzg;b0D5#W-{^RvyP&;nz^88DLRY?=1{??5XIMS z?+zfY75vY~YWtMD;n6{%14894_24t&r&BFS0Qv;lNlwrOBP$zI1Vt>oN7S&e-&qVM zl-JJ}Gt%0>z`J^syJKz_a>IPk{8zG_R%zExT#BU&NIPik@x5(xT7?C+Goh6}iqm-@ z$JA2+B|h-YzSuE)yYj!$rG`zt5^&cbxf_Qsi&mf&FZ8g}PLsma4|ZM*vC=PKX-=BK z%2JCWwN^*d;hwr^lzs8_-T6X_@?$3C`mp-Dcd3^*`%u+HHJ!xEr?mYNUPL^Wz>t@( zc{YUlo@Tnk)%z=|G8)cxVyg<@X0b@@tN zk_sGgrprY|gnXEtQ&N*GDA531S3fTgNZCRR>Y#UhaYr91lZ~5X!Rfx*#fq?x67!#m zH_5Ob#opFvWU)63sOJtA&nV4L)eY03gmyyWKDl$xoDl%KoY~#$EKeMG6WG4M@io3` z^+DrGYZBK~<+4oTuy!Nf%wVtfI%zWsOz={#voABSX7l+~w57!hg*i1xISH0w{EdmP z24-1a>zAdy9=P_pxR9HsfZz>*1`Yh1)b|#F4`IiC-x6SDUP^pNJx?RCoHXmKRKZh zm;yg8BP+FHi~|YU1L%42!neRZHQf3YxnvOX?qel8+~7!!W>M(4hXVHnz(7y}poy)= z{QWmGYj>8=ZoE=lx_6-`Mz$0I>Mi&d;^R z)KV&72=BJ%KN_^Y-(e3GdXL~3jbx`neh@*N7F?H1G_e4G!xZj{x4$8>=7+CG-P`iu zA&L8p8b%Iu;c|MhY=h_)Xg_9}K3xcNOa<^3)KkivEa3QMNU^kr)6diWq2q~sU1YFM z$DV6AstU|F77Q9#+k@=$_66JfHS{Cj``l#t@cGqC_srdGc5T@V4SdJ&e#|@xRiA8* zj2n6rsLr1E&UFZ;IgB}O_>vHGq(BfqX^e3Q+O1xPzJ6q?E3;`R|Gl*JDOJCn_GA@} zo(U&AeVQmecI=eo0vx?0#W161cSZD!RCbt#XK0%qYs1_>D!M|!&j zDK5BwVD}Wrmn06A>4>=meYr0rQpzN_%(399(*^CeZW_N$R^r{cSU`Zr zHlus5+U<{sCsl>zJl7%)r<>Nm%I{R`)5&AUPGURkJ(V%FU7VgbGC??+uO!t=6DzJ) zdSfeVkz9BuXT*gaof??+(iOY$$<+aoGJRN6kTagJa3;vtNmpBRFj-Aj#KT4YwgYu( zsacIcVi1MI_5M;BQY<#|forxY(siOKLLH52lx5kuv)EJ|SsTJRbM9zV8@10!W#Q18 zy-&b)sHIj+J;yvU!)`g^PXG}32jOA=aAaNm1^#YYkQ@`v7%nq)B;sTGG{kr4gAN=@D8{H1iM?3lm zH+-j)oPGh@-mmQIhOPgE7B~wbvubvtn9mW1owDZ;G8q#lv z`@gSheWh(lg7th*_>dO>MX=SBuG@zDW!Q~7)P|~clnnj-{106?PU!30gg2^6T{T19 zRqCOBMcR4GtDp9j)~bZWbs#Tpi!0OzNcPX9CN-HVngziwtbZ6>_d5QP9u2!-OO3im z2vCK^@;{DCNUVBzl)njd-|&!on4Vj}M+EsmxyNjhhSPwSM&;G(q&o7P(dEO+F)`dn z`Ed2~Tpln^;b=FcYuUF=@)E!v;kyC=Mo^%4D`b{2lFszs^tk$ z5parLp7_?&?tFy=Na#@pK>Lc^mZXW9&Ec&(RBJfs5l-1gtI?9#Vryq+&Xs`aSYahs zfDcjm`X{V`4hlwLAD?f)7J0YHO;P39RhWNTdTzx^*_n!oHAj5yMj0{lno;gD>JIe= zE%Wauu~IgdEI3WMH%I-qCKk5uQJ)F)FVcwp}!rRz9*1??y-MLo^7J9MP{ zHym`={Z-cOhS@J`zqj3aB)>gl;^z<0WccqP3~S3ZoPZfkDDvE2h;A`FSZ9H#9zAVn zf{I&|lN*$KE{iL5>kL0(`3D7uF3(@+Jvl-ZE&j!Pa653$txa+Lpc>@ws4?SC!*(`B zd(l-6eU=@WaRj8ed;T@#f>rI#o0yV4+|okDHBnXU)BK=AH<0P4A>MB1131T|y_%DQB#r0dzo_R$ls=}gK`GW+@%eU}K>XR`cs z17D<#zBf&Dt~&qTC5pTP4-Fp!Pp`r<`}BEI7+DXEW8YdqjcQvn4Ylt2Z3CHss^Mdp zVkmMFhJUwLWxOgSwGPqj^WG)nc@G;{Y+KGV?Ua^)#t0$bvO%K7TJ^&=N3!s_KDWLtnnVPRgFGGKikxikI&Oy3zCzDq;GP_uq1`b%b{a|yx^%@DZ|Q7~=V;Zj4ZWY5Bi zVScn^UjgcY*FSq=HKA-qI2rXwPScoThj4cm>EXNqphq0HuOFV@Z^w*?IF&^4vLX zEEGK(+&@zC3-CCK9qcBacUyOC6%jMiQt4HKuP(ddMJxrScAJIUHCZNxn~L9W=sLVV zx|US5Gq^b+zu-5)X($VO0+)Uz^!SMIZvSff#EG)azg&Dg zR4R>jmL%0$=sy;Vn5+#HH|ci%kF=#*T{bX;~l(0 literal 0 HcmV?d00001 diff --git a/Screenshots/IMG_20230728_031237_225.jpg b/Screenshots/IMG_20230728_031237_225.jpg new file mode 100644 index 0000000000000000000000000000000000000000..220d865448116ca48c62b2f4fee54d24f9ab2137 GIT binary patch literal 47259 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 Date: Fri, 28 Jul 2023 03:13:25 +0300 Subject: [PATCH 019/215] Delete .txt --- Screenshots/.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Screenshots/.txt diff --git a/Screenshots/.txt b/Screenshots/.txt deleted file mode 100644 index 8b1378917..000000000 --- a/Screenshots/.txt +++ /dev/null @@ -1 +0,0 @@ - From 73f362843aa212375d30690e133d6a895bfa3a41 Mon Sep 17 00:00:00 2001 From: Kareem Ebrahem <90919499+mrx7014@users.noreply.github.com> Date: Fri, 28 Jul 2023 03:14:42 +0300 Subject: [PATCH 020/215] Delete Screenshots directory --- Screenshots/IMG_20230728_031236_905.jpg | Bin 64188 -> 0 bytes Screenshots/IMG_20230728_031237_087.jpg | Bin 47525 -> 0 bytes Screenshots/IMG_20230728_031237_225.jpg | Bin 47259 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Screenshots/IMG_20230728_031236_905.jpg delete mode 100644 Screenshots/IMG_20230728_031237_087.jpg delete mode 100644 Screenshots/IMG_20230728_031237_225.jpg diff --git a/Screenshots/IMG_20230728_031236_905.jpg b/Screenshots/IMG_20230728_031236_905.jpg deleted file mode 100644 index 35c76a5a0d260577fff06fe356166f4fc4a93154..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64188 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%0AKqaX9?Mw^a^1gA>-U5vZz)8N-f^Ul4`#frxy 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 diff --git a/Screenshots/IMG_20230728_031237_087.jpg b/Screenshots/IMG_20230728_031237_087.jpg deleted file mode 100644 index bded126595f0089476b9e1f79802e5d787371afb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47525 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

n+k*Ux-%9Bxof< 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 diff --git a/Screenshots/IMG_20230728_031237_225.jpg b/Screenshots/IMG_20230728_031237_225.jpg deleted file mode 100644 index 220d865448116ca48c62b2f4fee54d24f9ab2137..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47259 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
U9>D!Gmi?@$V*Gu8`U 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 Date: Fri, 28 Jul 2023 15:37:22 +0300 Subject: [PATCH 021/215] Update README.md --- README.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/README.md b/README.md index f6605a3ca..3862fd38c 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,6 @@

Banner - -**This app It has been Arabized by MRX7014 -and Mohamed Bahaa Dowload from Here** - -**Donate: https://bmc.link/mrx7014** - + # v6.4.0 is out!

From 417ed07d8534e047d7cfb20c39a263cc0e7c7ce0 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 28 Jul 2023 19:03:54 +0600 Subject: [PATCH 022/215] Fix seekbar view in RTL mode --- .../res/drawable-ldrtl-v24/seekbar_progress.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 app/src/main/res/drawable-ldrtl-v24/seekbar_progress.xml diff --git a/app/src/main/res/drawable-ldrtl-v24/seekbar_progress.xml b/app/src/main/res/drawable-ldrtl-v24/seekbar_progress.xml new file mode 100644 index 000000000..10f270272 --- /dev/null +++ b/app/src/main/res/drawable-ldrtl-v24/seekbar_progress.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + \ No newline at end of file From 8a6adfc7c3aa8eab5f37800bc65e4b490b328df2 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 28 Jul 2023 19:04:59 +0600 Subject: [PATCH 023/215] Update README.md --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 3862fd38c..4e60f1bc0 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,17 @@ You can track all the progress [HERE](https://github.com/Mahmud0808/Iconify/comm - [HideNavBar](https://github.com/Magisk-Modules-Repo/HideNavBar) for the navbar tweaks. - And everyone who contributed... :) +# 🌐 Translations +- Arabic [@MRX7014](https://github.com/mrx7014), [@Mohamed Bahaa](https://github.com/muhammadbahaa2001) +- French [@MXC48](https://github.com/MXC48) +- Indonesian [@KaeruShi](https://github.com/KaeruShi) +- Persian [@Faceless1999](https://github.com/Faceless1999) +- Portuguese [@ElTifo](https://github.com/ElTifo) +- Russian [@B1ays](https://github.com/B1ays) +- Simplified Chinese [@Cccc-owo](https://github.com/Cccc-owo) +- Turkish [@serhat-demir](https://github.com/serhat-demir) +- Vietnamese [@viettel1211](https://t.me/viettel1211) + # 🤝 Contribution We highly appreciate and welcome all forms of contributions, ranging from code, documentation, graphics, design suggestions, to bug reports. We encourage you to make the most of GitHub's collaborative platform by submitting Pull Requests, providing tutorials or other relevant content. Whatever you have to offer, we value and can utilize it effectively in our project. From 477b3cddc7c27918a24f208e2d4d5e294ee48981 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 28 Jul 2023 19:54:39 +0600 Subject: [PATCH 024/215] Fix views in RTL mode --- .../preview_seekbar_oldschool_thumb.xml | 54 +++++++++++++++++++ .../qs_shape_divided_disabled.xml | 28 ++++++++++ .../preview_seekbar_oldschool_thumb.xml | 54 +++++++++++++++++++ .../qs_shape_divided_disabled.xml | 28 ++++++++++ .../qs_shape_divided_disabled_pixel.xml | 28 ++++++++++ .../qs_shape_divided_enabled.xml | 22 ++++++++ .../qs_shape_divided_enabled_pixel.xml | 22 ++++++++ .../qs_shape_divided_disabled.xml | 18 ++++--- .../main/res/drawable-v24/bb_comet_thumb.xml | 30 ++++++----- .../res/drawable-v24/bb_comet_thumb_pixel.xml | 30 ++++++----- .../main/res/drawable-v24/bb_roundedclip.xml | 26 +++++---- .../res/drawable-v24/bb_roundedclip_pixel.xml | 26 +++++---- .../main/res/drawable-v24/ic_qs_airplane.xml | 1 - .../main/res/drawable-v24/ic_qs_bluetooth.xml | 1 - .../main/res/drawable-v24/ic_qs_internet.xml | 1 - .../main/res/drawable-v24/ic_qs_location.xml | 1 - .../qs_shape_divided_disabled.xml | 18 ++++--- .../qs_shape_divided_disabled_pixel.xml | 18 ++++--- .../drawable-v24/qs_shape_divided_enabled.xml | 18 ++++--- .../qs_shape_divided_enabled_pixel.xml | 18 ++++--- .../qs_shape_reflected_enabled.xml | 19 ++++--- .../qs_shape_reflected_enabled_pixel.xml | 19 ++++--- .../qs_shape_reflected_fill_enabled.xml | 19 ++++--- .../qs_shape_reflected_fill_enabled_pixel.xml | 19 ++++--- app/src/main/res/values-ldrtl/dimens.xml | 5 ++ app/src/main/res/values/dimens.xml | 2 + 26 files changed, 410 insertions(+), 115 deletions(-) create mode 100644 app/src/main/res/drawable-ldrtl-night-v24/preview_seekbar_oldschool_thumb.xml create mode 100644 app/src/main/res/drawable-ldrtl-night-v24/qs_shape_divided_disabled.xml create mode 100644 app/src/main/res/drawable-ldrtl-v24/preview_seekbar_oldschool_thumb.xml create mode 100644 app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_disabled.xml create mode 100644 app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_disabled_pixel.xml create mode 100644 app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_enabled.xml create mode 100644 app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_enabled_pixel.xml create mode 100644 app/src/main/res/values-ldrtl/dimens.xml diff --git a/app/src/main/res/drawable-ldrtl-night-v24/preview_seekbar_oldschool_thumb.xml b/app/src/main/res/drawable-ldrtl-night-v24/preview_seekbar_oldschool_thumb.xml new file mode 100644 index 000000000..634ce5fcc --- /dev/null +++ b/app/src/main/res/drawable-ldrtl-night-v24/preview_seekbar_oldschool_thumb.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-ldrtl-night-v24/qs_shape_divided_disabled.xml b/app/src/main/res/drawable-ldrtl-night-v24/qs_shape_divided_disabled.xml new file mode 100644 index 000000000..2c3eaf204 --- /dev/null +++ b/app/src/main/res/drawable-ldrtl-night-v24/qs_shape_divided_disabled.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-ldrtl-v24/preview_seekbar_oldschool_thumb.xml b/app/src/main/res/drawable-ldrtl-v24/preview_seekbar_oldschool_thumb.xml new file mode 100644 index 000000000..668e058d1 --- /dev/null +++ b/app/src/main/res/drawable-ldrtl-v24/preview_seekbar_oldschool_thumb.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_disabled.xml b/app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_disabled.xml new file mode 100644 index 000000000..217e6ef46 --- /dev/null +++ b/app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_disabled.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_disabled_pixel.xml b/app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_disabled_pixel.xml new file mode 100644 index 000000000..6dbd08604 --- /dev/null +++ b/app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_disabled_pixel.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_enabled.xml b/app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_enabled.xml new file mode 100644 index 000000000..d25e36315 --- /dev/null +++ b/app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_enabled.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_enabled_pixel.xml b/app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_enabled_pixel.xml new file mode 100644 index 000000000..d25e36315 --- /dev/null +++ b/app/src/main/res/drawable-ldrtl-v24/qs_shape_divided_enabled_pixel.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-night-v24/qs_shape_divided_disabled.xml b/app/src/main/res/drawable-night-v24/qs_shape_divided_disabled.xml index d91626df0..272d69468 100644 --- a/app/src/main/res/drawable-night-v24/qs_shape_divided_disabled.xml +++ b/app/src/main/res/drawable-night-v24/qs_shape_divided_disabled.xml @@ -13,12 +13,16 @@ - - - - - + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/bb_comet_thumb.xml b/app/src/main/res/drawable-v24/bb_comet_thumb.xml index 6967f78b6..26cf4997a 100644 --- a/app/src/main/res/drawable-v24/bb_comet_thumb.xml +++ b/app/src/main/res/drawable-v24/bb_comet_thumb.xml @@ -31,19 +31,23 @@ - - - + + + + + - - - + + + + + - - - - - + + + + + + + diff --git a/app/src/main/res/drawable-v24/bb_roundedclip_pixel.xml b/app/src/main/res/drawable-v24/bb_roundedclip_pixel.xml index 76a5a0bc9..397e6f439 100644 --- a/app/src/main/res/drawable-v24/bb_roundedclip_pixel.xml +++ b/app/src/main/res/drawable-v24/bb_roundedclip_pixel.xml @@ -11,16 +11,20 @@ - - - - - + + + + + + + diff --git a/app/src/main/res/drawable-v24/ic_qs_airplane.xml b/app/src/main/res/drawable-v24/ic_qs_airplane.xml index 113be531d..52d5987d8 100644 --- a/app/src/main/res/drawable-v24/ic_qs_airplane.xml +++ b/app/src/main/res/drawable-v24/ic_qs_airplane.xml @@ -1,7 +1,6 @@ - - - - - + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/qs_shape_divided_disabled_pixel.xml b/app/src/main/res/drawable-v24/qs_shape_divided_disabled_pixel.xml index 94d2d91f4..512e39c7c 100644 --- a/app/src/main/res/drawable-v24/qs_shape_divided_disabled_pixel.xml +++ b/app/src/main/res/drawable-v24/qs_shape_divided_disabled_pixel.xml @@ -13,12 +13,16 @@ - - - - - + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/qs_shape_divided_enabled.xml b/app/src/main/res/drawable-v24/qs_shape_divided_enabled.xml index e7f60f504..358bd887c 100644 --- a/app/src/main/res/drawable-v24/qs_shape_divided_enabled.xml +++ b/app/src/main/res/drawable-v24/qs_shape_divided_enabled.xml @@ -7,12 +7,16 @@ - - - - - + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/qs_shape_divided_enabled_pixel.xml b/app/src/main/res/drawable-v24/qs_shape_divided_enabled_pixel.xml index e7f60f504..358bd887c 100644 --- a/app/src/main/res/drawable-v24/qs_shape_divided_enabled_pixel.xml +++ b/app/src/main/res/drawable-v24/qs_shape_divided_enabled_pixel.xml @@ -7,12 +7,16 @@ - - - - - + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/qs_shape_reflected_enabled.xml b/app/src/main/res/drawable-v24/qs_shape_reflected_enabled.xml index 6fffbfd4b..72927fba7 100644 --- a/app/src/main/res/drawable-v24/qs_shape_reflected_enabled.xml +++ b/app/src/main/res/drawable-v24/qs_shape_reflected_enabled.xml @@ -39,13 +39,18 @@ android:tint="#FFFFFF" android:viewportWidth="24.0" android:viewportHeight="24.0"> - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/qs_shape_reflected_enabled_pixel.xml b/app/src/main/res/drawable-v24/qs_shape_reflected_enabled_pixel.xml index 0c0128638..e8c1ab8d4 100644 --- a/app/src/main/res/drawable-v24/qs_shape_reflected_enabled_pixel.xml +++ b/app/src/main/res/drawable-v24/qs_shape_reflected_enabled_pixel.xml @@ -29,13 +29,18 @@ android:tint="#FFFFFF" android:viewportWidth="24.0" android:viewportHeight="24.0"> - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/qs_shape_reflected_fill_enabled.xml b/app/src/main/res/drawable-v24/qs_shape_reflected_fill_enabled.xml index dbebe7737..772171bb3 100644 --- a/app/src/main/res/drawable-v24/qs_shape_reflected_fill_enabled.xml +++ b/app/src/main/res/drawable-v24/qs_shape_reflected_fill_enabled.xml @@ -19,13 +19,18 @@ android:tint="#FFFFFF" android:viewportWidth="24.0" android:viewportHeight="24.0"> - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/qs_shape_reflected_fill_enabled_pixel.xml b/app/src/main/res/drawable-v24/qs_shape_reflected_fill_enabled_pixel.xml index dbebe7737..772171bb3 100644 --- a/app/src/main/res/drawable-v24/qs_shape_reflected_fill_enabled_pixel.xml +++ b/app/src/main/res/drawable-v24/qs_shape_reflected_fill_enabled_pixel.xml @@ -19,13 +19,18 @@ android:tint="#FFFFFF" android:viewportWidth="24.0" android:viewportHeight="24.0"> - + + + \ No newline at end of file diff --git a/app/src/main/res/values-ldrtl/dimens.xml b/app/src/main/res/values-ldrtl/dimens.xml new file mode 100644 index 000000000..26f8d1852 --- /dev/null +++ b/app/src/main/res/values-ldrtl/dimens.xml @@ -0,0 +1,5 @@ + + + 180.0 + -1.0 + \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 729a2df0a..ccaa3e253 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -23,4 +23,6 @@ 32dp 32dp 1.0 + 0.0 + 1.0 \ No newline at end of file From c0fedd72cd12d981ebe20aa8bc56884aedec1529 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 28 Jul 2023 19:57:22 +0600 Subject: [PATCH 025/215] Info: Add credits for Arabic translation --- .../main/java/com/drdisagree/iconify/ui/activities/Info.java | 2 ++ app/src/main/res/values/strings.xml | 1 + 2 files changed, 3 insertions(+) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/activities/Info.java b/app/src/main/java/com/drdisagree/iconify/ui/activities/Info.java index 71afb5bff..b2b26299e 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/activities/Info.java +++ b/app/src/main/java/com/drdisagree/iconify/ui/activities/Info.java @@ -100,6 +100,8 @@ private InfoAdapter initTranslatorsList() { ArrayList translators_list = new ArrayList<>(); translators_list.add(new InfoModel(getResources().getString(R.string.section_title_translators))); + translators_list.add(new InfoModel(this, "MRX7014", getResources().getString(R.string.ar_translation), "https://github.com/mrx7014", R.drawable.ic_user)); + translators_list.add(new InfoModel(this, "Mohamed Bahaa", getResources().getString(R.string.ar_translation), "https://github.com/muhammadbahaa2001", R.drawable.ic_user)); translators_list.add(new InfoModel(this, "MXC48", getResources().getString(R.string.fr_translation), "https://github.com/MXC48", R.drawable.ic_user)); translators_list.add(new InfoModel(this, "KaeruShi", getResources().getString(R.string.id_translation), "https://github.com/KaeruShi", R.drawable.ic_user)); translators_list.add(new InfoModel(this, "Faceless1999", getResources().getString(R.string.fa_translation), "https://github.com/Faceless1999", R.drawable.ic_user)); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0ebe7f80e..29bd16b02 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -383,6 +383,7 @@ A new version of Iconify is available. Updates This channel shows notification about the latest updates. + Arabic translation. Persian translation. French translation. Indonesian translation. From 069781ce025c0276b3b6d40e87502977ce4f2e99 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sat, 29 Jul 2023 16:25:37 +0600 Subject: [PATCH 026/215] Add files via upload --- .github/resources/bmc-button.png | Bin 0 -> 24415 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/resources/bmc-button.png diff --git a/.github/resources/bmc-button.png b/.github/resources/bmc-button.png new file mode 100644 index 0000000000000000000000000000000000000000..464bfd969dc1265095cc53628f71f97146d325ed GIT binary patch literal 24415 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 literal 0 HcmV?d00001 From 0e9a2c63d4ab67299ac38434381fa258823abc6e Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sat, 29 Jul 2023 16:30:54 +0600 Subject: [PATCH 027/215] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4e60f1bc0..a779e4d15 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,9 @@ Iconify is an open-source Android mobile application aimed at providing users wi Furthermore, the open-source nature of Iconify encourages community contributions and continuous improvement, ensuring a dynamic and evolving user experience. 🤝

- -#### 🌟STAR THIS REPOSITORY TO SUPPORT THE DEVELOPER AND ENCOURAGE THE DEVELOPMENT OF THE APPLICATION! - +
+ Buy me a coffee +

Features
@@ -94,8 +94,8 @@ You can track all the progress [HERE](https://github.com/Mahmud0808/Iconify/comm - To report a bug, please navigate to the [Issues](https://github.com/Mahmud0808/Iconify/issues/new/choose) section. Create a new issue and ensure you select the `Bug Report` template. Provide as much detailed information as possible, including steps to reproduce the bug and any relevant error messages or screenshots. - How do I request a new feature? - If you have a feature request, please go to the [Issues](https://github.com/Mahmud0808/Iconify/issues/new/choose) section. Create a new issue and choose the `Feature Request` template. Be sure to include comprehensive details about the desired feature, its potential benefits, and any other relevant information that can assist in understanding and evaluating the request. -- How can I donate to this project? - - At present, I do not accept any form of donation. This project is purely a personal endeavor undertaken during my leisure time. Additionally, I prefer to maintain the freedom of releasing future updates without any obligations associated with accepting donations. +- Where can I make a donation? + - The preferred and designated means for donating to the project's developer is via the "[Buy me a coffee](https://www.buymeacoffee.com/DrDisagree)" page. # ❤ Credits From 83b48819ad720ed716eb1331d58e8bf01c9790cd Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sat, 29 Jul 2023 16:32:17 +0600 Subject: [PATCH 028/215] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a779e4d15..4bb694139 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Furthermore, the open-source nature of Iconify encourages community contribution


- Buy me a coffee +
Buy me a coffee

Features From cb75636d5599968fe47a8c9ac86eae982f644c78 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sun, 30 Jul 2023 14:16:11 +0600 Subject: [PATCH 029/215] Fix config oriented QS margin not resetting --- .../com/drdisagree/iconify/ui/activities/QsPanelMargin.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/activities/QsPanelMargin.java b/app/src/main/java/com/drdisagree/iconify/ui/activities/QsPanelMargin.java index 67c8ef9a6..3b27db11d 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/activities/QsPanelMargin.java +++ b/app/src/main/java/com/drdisagree/iconify/ui/activities/QsPanelMargin.java @@ -161,7 +161,7 @@ public void onStopTrackingTouch(SeekBar seekBar) { binding.qsMarginReset.setVisibility(View.VISIBLE); } else { - RPrefs.putInt(HEADER_QQS_TOPMARGIN, -1); + RPrefs.clearPref(HEADER_QQS_TOPMARGIN); } new Handler(Looper.getMainLooper()).postDelayed(() -> { @@ -182,6 +182,7 @@ public void onStopTrackingTouch(SeekBar seekBar) { binding.qsMarginReset.setOnClickListener(v -> { Prefs.clearPrefs(PORT_QQS_TOP_MARGIN, PORT_QS_TOP_MARGIN, LAND_QQS_TOP_MARGIN, LAND_QS_TOP_MARGIN); + RPrefs.clearPref(HEADER_QQS_TOPMARGIN); portQqsMargin[0] = 100; portQsMargin[0] = 100; From 7e1002868024c243c410957cdad353fab5fcea66 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 3 Aug 2023 14:19:22 +0600 Subject: [PATCH 030/215] Settings Icons: Add Personalizations icon --- .../ic_homepage_personalizations.xml | 39 +++++++++++ .../ic_homepage_personalizations.xml | 39 +++++++++++ .../ic_homepage_personalizations.xml | 68 +++++++++++++++++++ .../ic_homepage_personalizations.xml | 68 +++++++++++++++++++ .../ic_homepage_personalizations.xml | 36 ++++++++++ .../ic_homepage_personalizations.xml | 36 ++++++++++ .../ic_homepage_personalizations.xml | 35 ++++++++++ .../ic_homepage_personalizations.xml | 35 ++++++++++ .../ic_homepage_personalizations.xml | 12 ++++ .../ic_homepage_personalizations.xml | 12 ++++ .../ic_homepage_personalizations.xml | 12 ++++ .../ic_homepage_personalizations.xml | 12 ++++ .../ic_homepage_personalizations.xml | 12 ++++ .../ic_homepage_personalizations.xml | 12 ++++ 14 files changed, 428 insertions(+) create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_homepage_personalizations.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_homepage_personalizations.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_homepage_personalizations.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_homepage_personalizations.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_homepage_personalizations.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_homepage_personalizations.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_homepage_personalizations.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_homepage_personalizations.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_homepage_personalizations.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_homepage_personalizations.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_homepage_personalizations.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_homepage_personalizations.xml create mode 100644 app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_homepage_personalizations.xml create mode 100644 app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_homepage_personalizations.xml diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_homepage_personalizations.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_homepage_personalizations.xml new file mode 100644 index 000000000..76de87e37 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_homepage_personalizations.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_homepage_personalizations.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_homepage_personalizations.xml new file mode 100644 index 000000000..76de87e37 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_homepage_personalizations.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_homepage_personalizations.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_homepage_personalizations.xml new file mode 100644 index 000000000..9e0321300 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_homepage_personalizations.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_homepage_personalizations.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_homepage_personalizations.xml new file mode 100644 index 000000000..9e0321300 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_homepage_personalizations.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_homepage_personalizations.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_homepage_personalizations.xml new file mode 100644 index 000000000..5dc2b5a91 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_homepage_personalizations.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_homepage_personalizations.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_homepage_personalizations.xml new file mode 100644 index 000000000..5dc2b5a91 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_homepage_personalizations.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_homepage_personalizations.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_homepage_personalizations.xml new file mode 100644 index 000000000..8a1f76f8f --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_homepage_personalizations.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_homepage_personalizations.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_homepage_personalizations.xml new file mode 100644 index 000000000..8a1f76f8f --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_homepage_personalizations.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_homepage_personalizations.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_homepage_personalizations.xml new file mode 100644 index 000000000..b4b78bf89 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_homepage_personalizations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_homepage_personalizations.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_homepage_personalizations.xml new file mode 100644 index 000000000..b4b78bf89 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_homepage_personalizations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_homepage_personalizations.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_homepage_personalizations.xml new file mode 100644 index 000000000..7dd272e33 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_homepage_personalizations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_homepage_personalizations.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_homepage_personalizations.xml new file mode 100644 index 000000000..7e0e63d9a --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_homepage_personalizations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_homepage_personalizations.xml b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_homepage_personalizations.xml new file mode 100644 index 000000000..7dd272e33 --- /dev/null +++ b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_homepage_personalizations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_homepage_personalizations.xml b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_homepage_personalizations.xml new file mode 100644 index 000000000..7e0e63d9a --- /dev/null +++ b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_homepage_personalizations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file From d15a132c4eaa220ec1a61ee30e3ebddfa6c28207 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 3 Aug 2023 14:24:04 +0600 Subject: [PATCH 031/215] Settings Icons: Add Superior Lab icon --- .../drawable-anydpi/ic_settings_superior.xml | 39 +++++++++++ .../ic_settings_superior.xml | 39 +++++++++++ .../drawable-anydpi/ic_settings_superior.xml | 68 +++++++++++++++++++ .../ic_settings_superior.xml | 68 +++++++++++++++++++ .../drawable-anydpi/ic_settings_superior.xml | 36 ++++++++++ .../ic_settings_superior.xml | 36 ++++++++++ .../drawable-anydpi/ic_settings_superior.xml | 35 ++++++++++ .../ic_settings_superior.xml | 35 ++++++++++ .../drawable-anydpi/ic_settings_superior.xml | 12 ++++ .../ic_settings_superior.xml | 12 ++++ .../drawable-anydpi/ic_settings_superior.xml | 12 ++++ .../ic_settings_superior.xml | 12 ++++ .../drawable-anydpi/ic_settings_superior.xml | 12 ++++ .../ic_settings_superior.xml | 12 ++++ 14 files changed, 428 insertions(+) create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_superior.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_superior.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_settings_superior.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_settings_superior.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_settings_superior.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_settings_superior.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_settings_superior.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_settings_superior.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_settings_superior.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_settings_superior.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_settings_superior.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_settings_superior.xml create mode 100644 app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_superior.xml create mode 100644 app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_superior.xml diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_superior.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_superior.xml new file mode 100644 index 000000000..76de87e37 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_superior.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_superior.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_superior.xml new file mode 100644 index 000000000..76de87e37 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_superior.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_settings_superior.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_settings_superior.xml new file mode 100644 index 000000000..9e0321300 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_settings_superior.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_settings_superior.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_settings_superior.xml new file mode 100644 index 000000000..9e0321300 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_settings_superior.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_settings_superior.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_settings_superior.xml new file mode 100644 index 000000000..5dc2b5a91 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_settings_superior.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_settings_superior.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_settings_superior.xml new file mode 100644 index 000000000..5dc2b5a91 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_settings_superior.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_settings_superior.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_settings_superior.xml new file mode 100644 index 000000000..8a1f76f8f --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_settings_superior.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_settings_superior.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_settings_superior.xml new file mode 100644 index 000000000..8a1f76f8f --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_settings_superior.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_settings_superior.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_settings_superior.xml new file mode 100644 index 000000000..b4b78bf89 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_settings_superior.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_settings_superior.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_settings_superior.xml new file mode 100644 index 000000000..b4b78bf89 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_settings_superior.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_settings_superior.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_settings_superior.xml new file mode 100644 index 000000000..7dd272e33 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_settings_superior.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_settings_superior.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_settings_superior.xml new file mode 100644 index 000000000..7e0e63d9a --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_settings_superior.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_superior.xml b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_superior.xml new file mode 100644 index 000000000..7dd272e33 --- /dev/null +++ b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_superior.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_superior.xml b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_superior.xml new file mode 100644 index 000000000..7e0e63d9a --- /dev/null +++ b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_superior.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file From a8c41436eaa94fe21f45c3c01def760396bb5552 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 3 Aug 2023 14:29:08 +0600 Subject: [PATCH 032/215] Settings Icons: Add About Phone icon --- .../res/drawable-anydpi/ic_settings_about.xml | 39 +++++++++++ .../ic_settings_about_device.xml | 39 +++++++++++ .../ic_settings_about.xml | 39 +++++++++++ .../ic_settings_about_device.xml | 39 +++++++++++ .../res/drawable-anydpi/ic_settings_about.xml | 68 +++++++++++++++++++ .../ic_settings_about_device.xml | 68 +++++++++++++++++++ .../ic_settings_about.xml | 68 +++++++++++++++++++ .../ic_settings_about_device.xml | 68 +++++++++++++++++++ .../res/drawable-anydpi/ic_settings_about.xml | 30 ++++++++ .../ic_settings_about_device.xml | 30 ++++++++ .../ic_settings_about.xml | 30 ++++++++ .../ic_settings_about_device.xml | 30 ++++++++ .../res/drawable-anydpi/ic_settings_about.xml | 35 ++++++++++ .../ic_settings_about_device.xml | 35 ++++++++++ .../ic_settings_about.xml | 35 ++++++++++ .../ic_settings_about_device.xml | 35 ++++++++++ .../res/drawable-anydpi/ic_settings_about.xml | 12 ++++ .../ic_settings_about_device.xml | 12 ++++ .../ic_settings_about.xml | 12 ++++ .../ic_settings_about_device.xml | 12 ++++ .../res/drawable-anydpi/ic_settings_about.xml | 12 ++++ .../ic_settings_about_device.xml | 12 ++++ .../ic_settings_about.xml | 12 ++++ .../ic_settings_about_device.xml | 12 ++++ .../res/drawable-anydpi/ic_settings_about.xml | 12 ++++ .../ic_settings_about_device.xml | 12 ++++ .../ic_settings_about.xml | 12 ++++ .../ic_settings_about_device.xml | 12 ++++ 28 files changed, 832 insertions(+) create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about_device.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about_device.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_settings_about.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_settings_about_device.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_settings_about.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_settings_about_device.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_settings_about.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_settings_about_device.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_settings_about.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_settings_about_device.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_settings_about.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_settings_about_device.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_settings_about.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_settings_about_device.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_settings_about.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_settings_about_device.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_settings_about.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_settings_about_device.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_settings_about.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_settings_about_device.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_settings_about.xml create mode 100644 app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_settings_about_device.xml create mode 100644 app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about.xml create mode 100644 app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about_device.xml create mode 100644 app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about.xml create mode 100644 app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about_device.xml diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about.xml new file mode 100644 index 000000000..c6b16091e --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about_device.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about_device.xml new file mode 100644 index 000000000..c6b16091e --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about_device.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about.xml new file mode 100644 index 000000000..c6b16091e --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about_device.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about_device.xml new file mode 100644 index 000000000..c6b16091e --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about_device.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_settings_about.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_settings_about.xml new file mode 100644 index 000000000..2d4150fd1 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_settings_about.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_settings_about_device.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_settings_about_device.xml new file mode 100644 index 000000000..2d4150fd1 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-anydpi/ic_settings_about_device.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_settings_about.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_settings_about.xml new file mode 100644 index 000000000..2d4150fd1 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_settings_about.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_settings_about_device.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_settings_about_device.xml new file mode 100644 index 000000000..2d4150fd1 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/drawable-night-anydpi/ic_settings_about_device.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_settings_about.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_settings_about.xml new file mode 100644 index 000000000..650dfd88c --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_settings_about.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_settings_about_device.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_settings_about_device.xml new file mode 100644 index 000000000..650dfd88c --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-anydpi/ic_settings_about_device.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_settings_about.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_settings_about.xml new file mode 100644 index 000000000..650dfd88c --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_settings_about.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_settings_about_device.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_settings_about_device.xml new file mode 100644 index 000000000..650dfd88c --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/drawable-night-anydpi/ic_settings_about_device.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_settings_about.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_settings_about.xml new file mode 100644 index 000000000..0894410c6 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_settings_about.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_settings_about_device.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_settings_about_device.xml new file mode 100644 index 000000000..0894410c6 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-anydpi/ic_settings_about_device.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_settings_about.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_settings_about.xml new file mode 100644 index 000000000..0894410c6 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_settings_about.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_settings_about_device.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_settings_about_device.xml new file mode 100644 index 000000000..0894410c6 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/drawable-night-anydpi/ic_settings_about_device.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_settings_about.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_settings_about.xml new file mode 100644 index 000000000..006c86db7 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_settings_about.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_settings_about_device.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_settings_about_device.xml new file mode 100644 index 000000000..006c86db7 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-anydpi/ic_settings_about_device.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_settings_about.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_settings_about.xml new file mode 100644 index 000000000..006c86db7 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_settings_about.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_settings_about_device.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_settings_about_device.xml new file mode 100644 index 000000000..006c86db7 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP5/res/drawable-night-anydpi/ic_settings_about_device.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_settings_about.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_settings_about.xml new file mode 100644 index 000000000..5c2761f4a --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_settings_about.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_settings_about_device.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_settings_about_device.xml new file mode 100644 index 000000000..5c2761f4a --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-anydpi/ic_settings_about_device.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_settings_about.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_settings_about.xml new file mode 100644 index 000000000..9fb6a16db --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_settings_about.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_settings_about_device.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_settings_about_device.xml new file mode 100644 index 000000000..9fb6a16db --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP6/res/drawable-night-anydpi/ic_settings_about_device.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about.xml b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about.xml new file mode 100644 index 000000000..5c2761f4a --- /dev/null +++ b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about_device.xml b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about_device.xml new file mode 100644 index 000000000..5c2761f4a --- /dev/null +++ b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-anydpi/ic_settings_about_device.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about.xml b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about.xml new file mode 100644 index 000000000..9fb6a16db --- /dev/null +++ b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about_device.xml b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about_device.xml new file mode 100644 index 000000000..9fb6a16db --- /dev/null +++ b/app/src/main/assets/Overlays/com.android.settings/SIP1/res/drawable-night-anydpi/ic_settings_about_device.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file From 6d71c034957314c786c6f0361052f4537278bcb5 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 3 Aug 2023 16:52:08 +0600 Subject: [PATCH 033/215] Refactor build.gradle --- app/build.gradle | 34 ++++++++++++++++++---------------- build.gradle | 2 +- gradle.properties | 27 +++++++++++---------------- 3 files changed, 30 insertions(+), 33 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 307411610..0a1563105 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,6 +1,8 @@ plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' + id 'kotlin-android' + id 'kotlin-kapt' } android { @@ -33,10 +35,9 @@ android { buildTypes { debug { - minifyEnabled true + minifyEnabled false shrinkResources false - zipAlignEnabled true - crunchPngs true + crunchPngs false proguardFiles "proguard-android-optimize.txt", "proguard.pro", "proguard-rules.pro" applicationIdSuffix ".debug" resValue("string", "derived_app_name", "Iconify (Debug)") @@ -46,7 +47,6 @@ android { release { minifyEnabled true shrinkResources true - zipAlignEnabled true crunchPngs true proguardFiles "proguard-android-optimize.txt", "proguard.pro", "proguard-rules.pro" resValue("string", "derived_app_name", "Iconify") @@ -70,16 +70,13 @@ android { } packagingOptions { + jniLibs { + excludes += ['/META-INF/*', '/META-INF/versions/**', '/org/bouncycastle/**', '/kotlin/**', '/kotlinx/**'] + } + resources { + excludes += ['/META-INF/*', '/META-INF/versions/**', '/org/bouncycastle/**', '/kotlin/**', '/kotlinx/**', 'rebel.xml', '/*.txt', '/*.bin', '/*.json'] + } jniLibs.useLegacyPackaging true - exclude '/META-INF/*' - exclude '/META-INF/versions/**' - exclude '/org/bouncycastle/**' - exclude '/kotlin/**' - exclude '/kotlinx/**' - exclude 'rebel.xml' - exclude '/*.txt' - exclude '/*.bin' - exclude '/*.json' } namespace 'com.drdisagree.iconify' @@ -90,11 +87,15 @@ android { } dependencies { - implementation 'androidx.core:core-ktx:1.10.1' - // Magisk libsu version def libsuVersion = '5.2.0' + // Kotlin + implementation 'androidx.core:core-ktx:1.10.1' + + // Data Binding + implementation 'com.android.databinding:library:8.1.0' + // Xposed API compileOnly files('lib/api-82.jar') compileOnly files('lib/api-82-sources.jar') @@ -148,6 +149,7 @@ dependencies { // HTML Parser implementation 'org.jsoup:jsoup:1.16.1' + // Misc implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.work:work-runtime:2.8.1' @@ -160,6 +162,6 @@ dependencies { androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' } -task printVersionName { +tasks.register('printVersionName') { println android.defaultConfig.versionName.replaceAll("-(Stable|Beta)", "") } diff --git a/build.gradle b/build.gradle index 136980b25..da950d986 100644 --- a/build.gradle +++ b/build.gradle @@ -5,6 +5,6 @@ plugins { id 'org.jetbrains.kotlin.android' version '1.9.0' apply false } -task clean(type: Delete) { +tasks.register('clean', Delete) { delete rootProject.buildDir } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index f58033d06..391b310bb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,27 +1,22 @@ -# Project-wide Gradle settings. -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. -# For more details on how to configure your build environment visit +## For more details on how to configure your build environment visit # http://www.gradle.org/docs/current/userguide/build_environment.html +# # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# Default value: -Xmx1024m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +# # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app"s APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -org.gradle.parallel=true -android.useAndroidX=true -# Enables namespacing of each library's R class so that its R class includes only the -# resources declared in the library itself and none from the library's dependencies, -# thereby reducing the size of the R class for that library -android.nonTransitiveRClass=true -android.enableJetifier=false +#Thu Aug 03 16:35:29 BDT 2023 +android.enableJetifier=true android.nonFinalResIds=false +android.nonTransitiveRClass=true +android.useAndroidX=true org.gradle.configureondemand=true org.gradle.daemon=true +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding\=UTF-8 +org.gradle.parallel=true org.gradle.unsafe.configuration-cache=true From 887b7a754c255bdca55213d9f3f17bf7023dd3ac Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 3 Aug 2023 17:00:26 +0600 Subject: [PATCH 034/215] Xposed QS Light Theme: Fix security footer inset (Closes #240) --- .../Overlays/android/QSLT/res/values/dimens.xml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/app/src/main/assets/Overlays/android/QSLT/res/values/dimens.xml b/app/src/main/assets/Overlays/android/QSLT/res/values/dimens.xml index 6ef2743f0..cc7403182 100644 --- a/app/src/main/assets/Overlays/android/QSLT/res/values/dimens.xml +++ b/app/src/main/assets/Overlays/android/QSLT/res/values/dimens.xml @@ -2,16 +2,4 @@ 56.0dip 16.0sp - 28.0dip - 20.0dip - 2.0dip - 12.0dip - 28.0dip - 24.0dip - 48.0dip - 14.0dip - 20.0dip - 2.0dip - 22.0dip - 4.0dip From 167647d1ee8f3c7c1141324e49177550fad60289 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 3 Aug 2023 17:57:44 +0600 Subject: [PATCH 035/215] QS Text Color: Fix pixel variant accents --- .../com.android.systemui/QSPT1/res/values-night/iconify.xml | 4 ++-- .../com.android.systemui/QSPT1/res/values/iconify.xml | 4 ++-- .../com.android.systemui/QSPT2/res/values-night/iconify.xml | 6 +++--- .../com.android.systemui/QSPT2/res/values/iconify.xml | 6 +++--- .../com.android.systemui/QSPT3/res/values-night/iconify.xml | 4 ++-- .../com.android.systemui/QSPT3/res/values/iconify.xml | 4 ++-- .../com.android.systemui/QSPT4/res/values-night/iconify.xml | 6 +++--- .../com.android.systemui/QSPT4/res/values/iconify.xml | 6 +++--- 8 files changed, 20 insertions(+), 20 deletions(-) diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values-night/iconify.xml index 7cc29536b..765ecae70 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values-night/iconify.xml @@ -5,9 +5,9 @@ #FFFFFFFF #BFFFFFFF true - @*android:color/holo_blue_light + @*android:color/holo_blue_dark #FFFFFFFF - @*android:color/holo_green_light + @*android:color/holo_green_dark #FFFFFFFF \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values/iconify.xml index 7cc29536b..765ecae70 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values/iconify.xml @@ -5,9 +5,9 @@ #FFFFFFFF #BFFFFFFF true - @*android:color/holo_blue_light + @*android:color/holo_blue_dark #FFFFFFFF - @*android:color/holo_green_light + @*android:color/holo_green_dark #FFFFFFFF \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSPT2/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSPT2/res/values-night/iconify.xml index 222b427d3..bbbdce8d5 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSPT2/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSPT2/res/values-night/iconify.xml @@ -3,11 +3,11 @@ \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSPT2/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSPT2/res/values/iconify.xml index 222b427d3..bbbdce8d5 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSPT2/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSPT2/res/values/iconify.xml @@ -3,11 +3,11 @@ \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSPT3/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSPT3/res/values-night/iconify.xml index 7cc29536b..765ecae70 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSPT3/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSPT3/res/values-night/iconify.xml @@ -5,9 +5,9 @@ #FFFFFFFF #BFFFFFFF true - @*android:color/holo_blue_light + @*android:color/holo_blue_dark #FFFFFFFF - @*android:color/holo_green_light + @*android:color/holo_green_dark #FFFFFFFF \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSPT3/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSPT3/res/values/iconify.xml index c0f7566d5..751b1803f 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSPT3/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSPT3/res/values/iconify.xml @@ -5,9 +5,9 @@ #FF000000 #BF000000 true - @*android:color/holo_blue_light + @*android:color/holo_blue_dark #FFFFFFFF - @*android:color/holo_green_light + @*android:color/holo_green_dark #FFFFFFFF \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSPT4/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSPT4/res/values-night/iconify.xml index 222b427d3..bbbdce8d5 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSPT4/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSPT4/res/values-night/iconify.xml @@ -3,11 +3,11 @@ \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSPT4/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSPT4/res/values/iconify.xml index 68adc23f8..5247b5009 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSPT4/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSPT4/res/values/iconify.xml @@ -3,11 +3,11 @@ \ No newline at end of file From 0b349906e170fffe3d57e65f0cf215c70b43811e Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 3 Aug 2023 18:17:37 +0600 Subject: [PATCH 036/215] Refactor Xposed SettingsLibUtils --- .../drdisagree/iconify/xposed/utils/SettingsLibUtils.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/SettingsLibUtils.java b/app/src/main/java/com/drdisagree/iconify/xposed/utils/SettingsLibUtils.java index c8f18e3f1..f66a0fea4 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/utils/SettingsLibUtils.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/utils/SettingsLibUtils.java @@ -31,6 +31,10 @@ public static void init(ClassLoader classLoader) { UtilsClass = findClass("com.android.settingslib.Utils", classLoader); } + public static ColorStateList getColorAttr(Context context, int resID) { + return getColorAttr(resID, context); + } + public static ColorStateList getColorAttr(int resID, Context context) { if (UtilsClass == null) return null; @@ -41,6 +45,10 @@ public static ColorStateList getColorAttr(int resID, Context context) { } } + public static int getColorAttrDefaultColor(Context context, int resID) { + return getColorAttrDefaultColor(resID, context); + } + public static int getColorAttrDefaultColor(int resID, Context context) { if (UtilsClass == null) return 0; From ae35fd3e50353a8ddbe0984e92f3ecd486324e50 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 3 Aug 2023 18:47:49 +0600 Subject: [PATCH 037/215] iOS 16 Battery: Remove percentage when charging --- .../xposed/mods/BatteryStyleManager.java | 69 +++++++++++++++---- 1 file changed, 54 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java index cbf61e0b7..6b0bb9eab 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java @@ -63,11 +63,15 @@ import android.content.Context; import android.content.res.Resources; import android.content.res.XResources; +import android.graphics.Color; import android.graphics.drawable.Drawable; import android.util.TypedValue; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; +import android.widget.LinearLayout; + +import androidx.annotation.NonNull; import com.drdisagree.iconify.xposed.HookEntry; import com.drdisagree.iconify.xposed.ModPack; @@ -115,6 +119,7 @@ public class BatteryStyleManager extends ModPack { private int frameColor; private Object BatteryController = null; private int customBatteryMargin = 6; + private int textColorPrimary = Color.TRANSPARENT; public BatteryStyleManager(Context context) { super(context); @@ -317,7 +322,7 @@ protected void afterHookedMethod(MethodHookParam param) { try { View.OnAttachStateChangeListener listener = new View.OnAttachStateChangeListener() { @Override - public void onViewAttachedToWindow(View v) { + public void onViewAttachedToWindow(@NonNull View v) { batteryViews.add(v); new Thread(() -> { try { @@ -331,7 +336,7 @@ public void onViewAttachedToWindow(View v) { } @Override - public void onViewDetachedFromWindow(View v) { + public void onViewDetachedFromWindow(@NonNull View v) { batteryViews.remove(v); } }; @@ -387,6 +392,33 @@ protected void afterHookedMethod(MethodHookParam param) { log(TAG + throwable); } + try { + Class ShadeHeaderControllerClass = findClassIfExists("com.android.systemui.shade.ShadeHeaderController", lpparam.classLoader); + if (ShadeHeaderControllerClass == null) + ShadeHeaderControllerClass = findClass("com.android.systemui.shade.LargeScreenShadeHeaderController", lpparam.classLoader); + + hookAllMethods(ShadeHeaderControllerClass, "updateResources", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) { + if (!customBatteryEnabled) return; + + updateBatteryResources(mContext, param); + hidePercentage(param); + } + }); + + hookAllMethods(ShadeHeaderControllerClass, "onConfigurationChanged", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) { + if (!customBatteryEnabled) return; + + updateBatteryResources(mContext, param); + hidePercentage(param); + } + }); + } catch (Throwable ignored) { + } + try { hookAllMethods(BatteryMeterViewClass, "setPercentShowMode", new XC_MethodHook() { @Override @@ -396,22 +428,11 @@ protected void beforeHookedMethod(MethodHookParam param) { } } }); - } catch (Throwable throwable) { - log(TAG + throwable); - } - try { hookAllMethods(BatteryMeterViewClass, "updateShowPercent", new XC_MethodHook() { @Override - protected void beforeHookedMethod(MethodHookParam param) { - if (showPercentInside) { - setObjectField(param.thisObject, "mShowPercentMode", 2); - try { - callMethod(param.thisObject, "removeView", getObjectField(param.thisObject, "mBatteryPercentView")); - setObjectField(param.thisObject, "mBatteryPercentView", null); - } catch (Throwable ignored) { - } - } + protected void afterHookedMethod(MethodHookParam param) { + hidePercentage(param); } }); } catch (Throwable throwable) { @@ -440,6 +461,24 @@ protected Object replaceHookedMethod(MethodHookParam methodHookParam) { setCustomBatteryDimens(); } + private void updateBatteryResources(Context context, XC_MethodHook.MethodHookParam param) { + try { + int textColor = SettingsLibUtils.getColorAttrDefaultColor(context, android.R.attr.textColorPrimary); + LinearLayout batteryIcon = (LinearLayout) getObjectField(param.thisObject, "batteryIcon"); + + if (textColor != textColorPrimary) { + int textColorSecondary = SettingsLibUtils.getColorAttrDefaultColor(context, android.R.attr.textColorHint); + textColorPrimary = textColor; + if (getObjectField(param.thisObject, "iconManager") != null) { + callMethod(getObjectField(param.thisObject, "iconManager"), "setTint", textColor); + } + callMethod(batteryIcon, "updateColors", textColorPrimary, textColorSecondary, textColorPrimary); + } + } catch (Throwable throwable) { + log(TAG + throwable); + } + } + @SuppressLint("DiscouragedApi") private void initBatteryIfNull(XC_MethodHook.MethodHookParam param, ImageView mBatteryIconView) { if (mBatteryIconView == null) { From b0eb0e7425793fb36809635c8fb471e39d052c6f Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sun, 6 Aug 2023 21:35:08 +0600 Subject: [PATCH 038/215] Fluid QS Theme: Allow custom notification style --- .../iconify/xposed/mods/QSFluidTheme.java | 82 ++++++++----------- 1 file changed, 36 insertions(+), 46 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java index 7d2cd835f..e66693449 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java @@ -7,7 +7,6 @@ import static com.drdisagree.iconify.config.XPrefs.Xprefs; import static com.drdisagree.iconify.xposed.HookRes.modRes; import static com.drdisagree.iconify.xposed.HookRes.resparams; -import static com.drdisagree.iconify.xposed.utils.SettingsLibUtils.getColorAttr; import static de.robv.android.xposed.XposedBridge.hookAllConstructors; import static de.robv.android.xposed.XposedBridge.hookAllMethods; import static de.robv.android.xposed.XposedBridge.log; @@ -30,13 +29,13 @@ import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.InsetDrawable; import android.graphics.drawable.LayerDrawable; -import android.graphics.drawable.RippleDrawable; import android.graphics.drawable.ShapeDrawable; import android.graphics.drawable.shapes.RoundRectShape; import android.os.Build; import android.util.TypedValue; import android.view.Gravity; import android.view.View; +import android.widget.Button; import android.widget.ImageView; import android.widget.SeekBar; @@ -106,6 +105,8 @@ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { Class BrightnessControllerClass = findClass(SYSTEMUI_PACKAGE + ".settings.brightness.BrightnessController", lpparam.classLoader); Class BrightnessMirrorControllerClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.policy.BrightnessMirrorController", lpparam.classLoader); Class BrightnessSliderControllerClass = findClass(SYSTEMUI_PACKAGE + ".settings.brightness.BrightnessSliderController", lpparam.classLoader); + Class ActivatableNotificationViewClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.notification.row.ActivatableNotificationView", lpparam.classLoader); + Class FooterViewClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.notification.row.FooterView", lpparam.classLoader); SettingsLibUtils.init(lpparam.classLoader); initResources(); @@ -304,6 +305,39 @@ protected void afterHookedMethod(MethodHookParam param) { } }); + // Notifications + hookAllMethods(ActivatableNotificationViewClass, "onFinishInflate", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) { + if (!fluidQsThemeEnabled || !fluidNotifEnabled) return; + + View mBackgroundNormal = (View) getObjectField(param.thisObject, "mBackgroundNormal"); + + if (mBackgroundNormal != null) { + mBackgroundNormal.setAlpha(INACTIVE_ALPHA); + } + } + }); + + // Notification footer buttons + hookAllMethods(FooterViewClass, "updateColors", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) { + if (!fluidQsThemeEnabled || !fluidNotifEnabled) return; + + Button mManageButton = (Button) getObjectField(param.thisObject, "mManageButton"); + Button mClearAllButton = (Button) getObjectField(param.thisObject, "mClearAllButton"); + + if (mManageButton != null) { + mManageButton.getBackground().setAlpha((int) (INACTIVE_ALPHA * 255)); + } + + if (mClearAllButton != null) { + mClearAllButton.getBackground().setAlpha((int) (INACTIVE_ALPHA * 255)); + } + } + }); + // Initialize colors hookAllConstructors(CentralSurfacesImplClass, new XC_MethodHook() { @Override @@ -346,7 +380,6 @@ private void initResources() { int px2dp2 = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, mContext.getResources().getDisplayMetrics()); int px2dp4 = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()); - int px2dp20 = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, mContext.getResources().getDisplayMetrics()); int notifCornerRadius = mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("notification_corner_radius", "dimen", mContext.getPackageName())); try { @@ -439,49 +472,6 @@ public Drawable newDrawable(XResources res, int id) { } catch (Throwable ignored) { } - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "notif_footer_btn_background", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setShape(GradientDrawable.RECTANGLE); - gradientDrawable.setColor(colorInactiveAlpha[0]); - gradientDrawable.setCornerRadius(notifCornerRadius); - gradientDrawable.setPadding(px2dp20, 0, px2dp20, 0); - return new InsetDrawable(gradientDrawable, 0, px2dp2, 0, px2dp2); - } - }); - } catch (Throwable ignored) { - } - - @SuppressLint("DiscouragedApi") ColorStateList states = getColorAttr(mContext.getResources().getIdentifier("android:attr/colorControlHighlight", "attr", listenPackage), mContext); - - if (fluidNotifEnabled && states != null) { - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "notification_material_bg", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setColor(colorInactiveAlpha[0]); - return new RippleDrawable(ColorStateList.valueOf(states.getDefaultColor()), gradientDrawable, null); - } - }); - } catch (Throwable ignored) { - } - - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "notification_material_bg_monet", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setColor(colorInactiveAlpha[0]); - return new RippleDrawable(ColorStateList.valueOf(states.getDefaultColor()), gradientDrawable, null); - } - }); - } catch (Throwable ignored) { - } - } - if (fluidPowerMenuEnabled) { try { ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "global_actions_lite_background", new XResources.DrawableLoader() { From c8a5926d81d1ff24d9c2eaa333839240756bced8 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Mon, 7 Aug 2023 01:25:25 +0600 Subject: [PATCH 039/215] Fluid QS Theme: Fix QS light mode for pixel variant --- .../iconify/xposed/mods/QSFluidTheme.java | 356 ++++++++---------- 1 file changed, 162 insertions(+), 194 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java index e66693449..f3fb504a6 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java @@ -5,7 +5,6 @@ import static com.drdisagree.iconify.common.Preferences.FLUID_POWERMENU_TRANSPARENCY; import static com.drdisagree.iconify.common.Preferences.FLUID_QSPANEL; import static com.drdisagree.iconify.config.XPrefs.Xprefs; -import static com.drdisagree.iconify.xposed.HookRes.modRes; import static com.drdisagree.iconify.xposed.HookRes.resparams; import static de.robv.android.xposed.XposedBridge.hookAllConstructors; import static de.robv.android.xposed.XposedBridge.hookAllMethods; @@ -17,10 +16,8 @@ import android.annotation.SuppressLint; import android.content.Context; -import android.content.pm.PackageManager; import android.content.res.ColorStateList; import android.content.res.Configuration; -import android.content.res.Resources; import android.content.res.XResources; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; @@ -29,23 +26,16 @@ import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.InsetDrawable; import android.graphics.drawable.LayerDrawable; -import android.graphics.drawable.ShapeDrawable; -import android.graphics.drawable.shapes.RoundRectShape; import android.os.Build; import android.util.TypedValue; -import android.view.Gravity; import android.view.View; import android.widget.Button; +import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.SeekBar; -import androidx.appcompat.content.res.AppCompatResources; -import androidx.core.content.res.ResourcesCompat; - -import com.drdisagree.iconify.R; import com.drdisagree.iconify.xposed.HookEntry; import com.drdisagree.iconify.xposed.ModPack; -import com.drdisagree.iconify.xposed.utils.RoundedCornerProgressDrawable; import com.drdisagree.iconify.xposed.utils.SettingsLibUtils; import de.robv.android.xposed.XC_MethodHook; @@ -60,16 +50,19 @@ public class QSFluidTheme extends ModPack { private static final int STATE_UNAVAILABLE = 0; private static final int STATE_INACTIVE = 1; private static final int STATE_ACTIVE = 2; - private static final float UNAVAILABLE_ALPHA = 0.3f; - private static final float TILE_ALPHA = 0.2f; - private static final float INACTIVE_ALPHA = 0.2f; + private static final float UNAVAILABLE_ALPHA = 0.2f; + private static final float ACTIVE_ALPHA = 0.3f; + private static final float INACTIVE_ALPHA = 0.3f; private static boolean fluidQsThemeEnabled = false; private static boolean fluidNotifEnabled = false; private static boolean fluidPowerMenuEnabled = false; + private static XC_MethodHook.MethodHookParam customParam = null; private boolean wasDark = getIsDark(); - final Integer[] colorAccent = {wasDark ? mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_300", "color", listenPackage), mContext.getTheme()) : mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_600", "color", listenPackage), mContext.getTheme())}; - final Integer[] colorActiveAlpha = {Color.argb((int) (TILE_ALPHA * 255), Color.red(colorAccent[0]), Color.green(colorAccent[0]), Color.blue(colorAccent[0]))}; + final Integer[] colorInactive = {null}; + final Integer[] colorAccent = {mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_300", "color", listenPackage), mContext.getTheme())}; + final Integer[] colorActiveAlpha = {Color.argb((int) (ACTIVE_ALPHA * 255), Color.red(colorAccent[0]), Color.green(colorAccent[0]), Color.blue(colorAccent[0]))}; final Integer[] colorInactiveAlpha = {wasDark ? Color.parseColor("#0FFFFFFF") : Color.parseColor("#59FFFFFF")}; + final Integer[] colorInactiveQsAlpha = colorInactiveAlpha; final Integer[] colorUnavailableAlpha = {wasDark ? Color.parseColor("#08FFFFFF") : Color.parseColor("#33FFFFFF")}; public QSFluidTheme(Context context) { @@ -79,10 +72,6 @@ public QSFluidTheme(Context context) { wasDark = getIsDark(); } - private static float dpToPx(Context context, int dp) { - return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics()); - } - @Override public void updatePrefs(String... Key) { if (Xprefs == null) return; @@ -90,6 +79,15 @@ public void updatePrefs(String... Key) { fluidQsThemeEnabled = Xprefs.getBoolean(FLUID_QSPANEL, false); fluidNotifEnabled = Xprefs.getBoolean(FLUID_NOTIF_TRANSPARENCY, false); fluidPowerMenuEnabled = Xprefs.getBoolean(FLUID_POWERMENU_TRANSPARENCY, false); + + boolean isDark = getIsDark(); + if (isDark != wasDark) { + wasDark = isDark; + } + + if (customParam != null) { + initColors(customParam); + } initResources(); } @@ -100,27 +98,38 @@ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { Class QsPanelClass = findClass(SYSTEMUI_PACKAGE + ".qs.QSPanel", lpparam.classLoader); Class QSTileViewImplClass = findClass(SYSTEMUI_PACKAGE + ".qs.tileimpl.QSTileViewImpl", lpparam.classLoader); Class QSIconViewImplClass = findClass(SYSTEMUI_PACKAGE + ".qs.tileimpl.QSIconViewImpl", lpparam.classLoader); - Class CentralSurfacesImplClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.phone.CentralSurfacesImpl", lpparam.classLoader); + Class FooterViewClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.notification.row.FooterView", lpparam.classLoader); Class BrightnessSliderViewClass = findClass(SYSTEMUI_PACKAGE + ".settings.brightness.BrightnessSliderView", lpparam.classLoader); Class BrightnessControllerClass = findClass(SYSTEMUI_PACKAGE + ".settings.brightness.BrightnessController", lpparam.classLoader); Class BrightnessMirrorControllerClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.policy.BrightnessMirrorController", lpparam.classLoader); Class BrightnessSliderControllerClass = findClass(SYSTEMUI_PACKAGE + ".settings.brightness.BrightnessSliderController", lpparam.classLoader); Class ActivatableNotificationViewClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.notification.row.ActivatableNotificationView", lpparam.classLoader); - Class FooterViewClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.notification.row.FooterView", lpparam.classLoader); SettingsLibUtils.init(lpparam.classLoader); - initResources(); + + // Initialize resources and colors + hookAllMethods(QSTileViewImplClass, "init", new XC_MethodHook() { + @Override + protected void beforeHookedMethod(MethodHookParam param) { + customParam = param; + if (!fluidQsThemeEnabled) return; + + initColors(param); + initResources(); + } + }); // QS tile color hookAllMethods(QSTileViewImplClass, "getBackgroundColorForState", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) { + customParam = param; if (!fluidQsThemeEnabled) return; try { if ((int) param.args[0] == STATE_ACTIVE) { param.setResult(colorActiveAlpha[0]); } else if ((int) param.args[0] == STATE_INACTIVE) { - param.setResult(colorInactiveAlpha[0]); + param.setResult(colorInactiveQsAlpha[0]); } else if ((int) param.args[0] == STATE_UNAVAILABLE) { param.setResult(colorUnavailableAlpha[0]); } @@ -183,15 +192,22 @@ protected void afterHookedMethod(MethodHookParam param) { if (!fluidQsThemeEnabled) return; try { - ((Drawable) getObjectField(param.thisObject, "mProgressDrawable")).setTint(colorActiveAlpha[0]); + SeekBar mSlider = (SeekBar) getObjectField(param.thisObject, "mSlider"); + LayerDrawable progress = (LayerDrawable) mSlider.getProgressDrawable(); + + GradientDrawable backgroundSlider = (GradientDrawable) progress.findDrawableByLayerId(android.R.id.background); + backgroundSlider.setAlpha((int) ((INACTIVE_ALPHA + 0.2f) * 255)); - LayerDrawable progress = (LayerDrawable) ((SeekBar) getObjectField(param.thisObject, "mSlider")).getProgressDrawable(); DrawableWrapper progressSlider = (DrawableWrapper) progress.findDrawableByLayerId(android.R.id.progress); LayerDrawable actualProgressSlider = (LayerDrawable) progressSlider.getDrawable(); + actualProgressSlider.setTint(colorAccent[0]); + actualProgressSlider.setAlpha((int) (ACTIVE_ALPHA * 255)); + Drawable mBrightnessIcon = actualProgressSlider.findDrawableByLayerId(mContext.getResources().getIdentifier("slider_icon", "id", mContext.getPackageName())); - mBrightnessIcon.setAlpha(0); - mBrightnessIcon.setTint(Color.TRANSPARENT); - } catch (Throwable ignored) { + mBrightnessIcon.setTint(colorAccent[0]); + mBrightnessIcon.setAlpha(255); + } catch (Throwable throwable) { + log(TAG + throwable); } } }); @@ -243,6 +259,20 @@ protected void afterHookedMethod(MethodHookParam param) { } }); + hookAllMethods(BrightnessMirrorControllerClass, "updateResources", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) { + if (!fluidQsThemeEnabled) return; + + try { + FrameLayout mBrightnessMirror = (FrameLayout) getObjectField(param.thisObject, "mBrightnessMirror"); + mBrightnessMirror.getBackground().setAlpha((int) (INACTIVE_ALPHA * 255)); + } catch (Throwable throwable) { + log(TAG + throwable); + } + } + }); + hookAllMethods(QsPanelClass, "updateResources", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) { @@ -259,6 +289,7 @@ protected void afterHookedMethod(MethodHookParam param) { hookAllMethods(QSTileViewImplClass, "getLabelColorForState", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) { + customParam = param; if (!fluidQsThemeEnabled) return; try { @@ -275,6 +306,7 @@ protected void beforeHookedMethod(MethodHookParam param) { hookAllMethods(QSTileViewImplClass, "getSecondaryLabelColorForState", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) { + customParam = param; if (!fluidQsThemeEnabled) return; try { @@ -288,14 +320,18 @@ protected void beforeHookedMethod(MethodHookParam param) { }); // For LineageOS based roms - hookAllConstructors(QSTileViewImplClass, new XC_MethodHook() { + hookAllMethods(QSTileViewImplClass, "updateResources", new XC_MethodHook() { @Override - protected void afterHookedMethod(MethodHookParam param) { + protected void beforeHookedMethod(MethodHookParam param) { + customParam = param; if (!fluidQsThemeEnabled) return; + initColors(param); + initResources(); + try { setObjectField(param.thisObject, "colorActive", colorActiveAlpha[0]); - setObjectField(param.thisObject, "colorInactive", colorInactiveAlpha[0]); + setObjectField(param.thisObject, "colorInactive", colorInactiveQsAlpha[0]); setObjectField(param.thisObject, "colorUnavailable", colorUnavailableAlpha[0]); setObjectField(param.thisObject, "colorLabelActive", colorAccent[0]); setObjectField(param.thisObject, "colorSecondaryLabelActive", colorAccent[0]); @@ -337,214 +373,146 @@ protected void afterHookedMethod(MethodHookParam param) { } } }); - - // Initialize colors - hookAllConstructors(CentralSurfacesImplClass, new XC_MethodHook() { - @Override - protected void afterHookedMethod(MethodHookParam param) { - initResources(); - } - }); - - hookAllMethods(CentralSurfacesImplClass, "updateTheme", new XC_MethodHook() { - @Override - protected void afterHookedMethod(MethodHookParam param) { - initResources(); - } - }); } private boolean getIsDark() { return (mContext.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_YES) == Configuration.UI_MODE_NIGHT_YES; } - private void initResources() { - boolean isDark = getIsDark(); - - if (isDark != wasDark) { - wasDark = isDark; - } - + private void initColors(XC_MethodHook.MethodHookParam param) { try { - colorAccent[0] = wasDark ? mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_300", "color", listenPackage), mContext.getTheme()) : mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_600", "color", listenPackage), mContext.getTheme()); - colorActiveAlpha[0] = Color.argb((int) (TILE_ALPHA * 255), Color.red(colorAccent[0]), Color.green(colorAccent[0]), Color.blue(colorAccent[0])); - colorInactiveAlpha[0] = wasDark ? Color.parseColor("#0FFFFFFF") : Color.parseColor("#59FFFFFF"); - colorUnavailableAlpha[0] = wasDark ? Color.parseColor("#08FFFFFF") : Color.parseColor("#33FFFFFF"); + colorInactive[0] = (Integer) getObjectField(param.thisObject, "colorInactive"); + colorAccent[0] = mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_300", "color", mContext.getPackageName()), mContext.getTheme()); + colorActiveAlpha[0] = Color.argb((int) (ACTIVE_ALPHA * 255), Color.red(colorAccent[0]), Color.green(colorAccent[0]), Color.blue(colorAccent[0])); + colorInactiveAlpha[0] = changeAlpha(colorInactive[0], INACTIVE_ALPHA); + colorInactiveQsAlpha[0] = changeAlpha(colorInactive[0], INACTIVE_ALPHA + 0.2f); + colorUnavailableAlpha[0] = changeAlpha(colorInactive[0], UNAVAILABLE_ALPHA); } catch (Throwable ignored) { } + } + private void initResources() { // Replace drawables to match QS style XC_InitPackageResources.InitPackageResourcesParam ourResparam = resparams.get(SYSTEMUI_PACKAGE); - if (ourResparam != null) { - if (!fluidQsThemeEnabled) return; - int px2dp2 = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, mContext.getResources().getDisplayMetrics()); - int px2dp4 = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()); - int notifCornerRadius = mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("notification_corner_radius", "dimen", mContext.getPackageName())); + if (ourResparam == null || !fluidQsThemeEnabled) return; - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_actions_background", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - return new ColorDrawable(Color.TRANSPARENT); - } - }); - } catch (Throwable ignored) { - } + int px2dp2 = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, mContext.getResources().getDisplayMetrics()); + int px2dp4 = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()); + int notifCornerRadius = mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("notification_corner_radius", "dimen", mContext.getPackageName())); - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "brightness_mirror_background", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setShape(GradientDrawable.RECTANGLE); - gradientDrawable.setColor(colorInactiveAlpha[0]); - gradientDrawable.setCornerRadius(mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("rounded_slider_background_rounded_corner", "dimen", mContext.getPackageName()))); - return gradientDrawable; - } - }); - } catch (Throwable ignored) { - } + try { + ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_actions_background", new XResources.DrawableLoader() { + @Override + public Drawable newDrawable(XResources res, int id) { + return new ColorDrawable(Color.TRANSPARENT); + } + }); + } catch (Throwable ignored) { + } - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "brightness_progress_drawable", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) throws PackageManager.NameNotFoundException { - return createBrightnessBackgroundDrawable(mContext); - } - }); - } catch (Throwable ignored) { - } + try { + ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_action_circle", new XResources.DrawableLoader() { + @Override + public Drawable newDrawable(XResources res, int id) { + GradientDrawable gradientDrawable = new GradientDrawable(); + gradientDrawable.setShape(GradientDrawable.RECTANGLE); + gradientDrawable.setColor(colorInactiveAlpha[0]); + gradientDrawable.setCornerRadius(notifCornerRadius); + return new InsetDrawable(gradientDrawable, px2dp4, px2dp4, px2dp4, px2dp4); + } + }); + } catch (Throwable ignored) { + } - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_action_circle", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setShape(GradientDrawable.RECTANGLE); - gradientDrawable.setColor(colorInactiveAlpha[0]); - gradientDrawable.setCornerRadius(notifCornerRadius); - return new InsetDrawable(gradientDrawable, px2dp4, px2dp4, px2dp4, px2dp4); - } - }); - } catch (Throwable ignored) { - } + try { + ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_action_circle_color", new XResources.DrawableLoader() { + @Override + public Drawable newDrawable(XResources res, int id) { + GradientDrawable gradientDrawable = new GradientDrawable(); + gradientDrawable.setShape(GradientDrawable.RECTANGLE); + gradientDrawable.setColor(colorActiveAlpha[0]); + gradientDrawable.setCornerRadius(notifCornerRadius); + return new InsetDrawable(gradientDrawable, px2dp4, px2dp4, px2dp4, px2dp4); + } + }); + } catch (Throwable ignored) { + } - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_action_circle_color", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setShape(GradientDrawable.RECTANGLE); - gradientDrawable.setColor(colorActiveAlpha[0]); - gradientDrawable.setCornerRadius(notifCornerRadius); - return new InsetDrawable(gradientDrawable, px2dp4, px2dp4, px2dp4, px2dp4); - } - }); - } catch (Throwable ignored) { - } + try { + ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_action_chip_background", new XResources.DrawableLoader() { + @Override + public Drawable newDrawable(XResources res, int id) { + GradientDrawable gradientDrawable = new GradientDrawable(); + gradientDrawable.setShape(GradientDrawable.RECTANGLE); + gradientDrawable.setColor(colorInactiveAlpha[0]); + gradientDrawable.setCornerRadius(notifCornerRadius); + return new InsetDrawable(gradientDrawable, 0, px2dp2, 0, px2dp2); + } + }); + } catch (Throwable ignored) { + } + try { + ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_security_footer_background", new XResources.DrawableLoader() { + @Override + public Drawable newDrawable(XResources res, int id) { + GradientDrawable gradientDrawable = new GradientDrawable(); + gradientDrawable.setShape(GradientDrawable.RECTANGLE); + gradientDrawable.setColor(colorInactiveAlpha[0]); + gradientDrawable.setCornerRadius(notifCornerRadius); + return new InsetDrawable(gradientDrawable, 0, px2dp4, 0, px2dp4); + } + }); + } catch (Throwable ignored) { + } + + if (fluidPowerMenuEnabled) { try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_action_chip_background", new XResources.DrawableLoader() { + ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "global_actions_lite_background", new XResources.DrawableLoader() { @Override public Drawable newDrawable(XResources res, int id) { GradientDrawable gradientDrawable = new GradientDrawable(); gradientDrawable.setShape(GradientDrawable.RECTANGLE); gradientDrawable.setColor(colorInactiveAlpha[0]); gradientDrawable.setCornerRadius(notifCornerRadius); - return new InsetDrawable(gradientDrawable, 0, px2dp2, 0, px2dp2); + return gradientDrawable; } }); } catch (Throwable ignored) { } try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_security_footer_background", new XResources.DrawableLoader() { + ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "global_actions_lite_button", new XResources.DrawableLoader() { @Override public Drawable newDrawable(XResources res, int id) { GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setShape(GradientDrawable.RECTANGLE); + gradientDrawable.setShape(GradientDrawable.OVAL); gradientDrawable.setColor(colorInactiveAlpha[0]); - gradientDrawable.setCornerRadius(notifCornerRadius); - return new InsetDrawable(gradientDrawable, 0, px2dp4, 0, px2dp4); + return gradientDrawable; } }); } catch (Throwable ignored) { } - - if (fluidPowerMenuEnabled) { - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "global_actions_lite_background", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setShape(GradientDrawable.RECTANGLE); - gradientDrawable.setColor(colorInactiveAlpha[0]); - gradientDrawable.setCornerRadius(notifCornerRadius); - return gradientDrawable; - } - }); - } catch (Throwable ignored) { - } - - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "global_actions_lite_button", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setShape(GradientDrawable.OVAL); - gradientDrawable.setColor(colorInactiveAlpha[0]); - return gradientDrawable; - } - }); - } catch (Throwable ignored) { - } - } } } - private LayerDrawable createBrightnessBackgroundDrawable(Context context) throws PackageManager.NameNotFoundException { - Resources res = context.getResources(); - int cornerRadius = context.getResources().getDimensionPixelSize(res.getIdentifier("rounded_slider_corner_radius", "dimen", context.getPackageName())); - int height = context.getResources().getDimensionPixelSize(res.getIdentifier("rounded_slider_height", "dimen", context.getPackageName())); - int startPadding = (int) dpToPx(context, 15); - int endPadding = (int) dpToPx(context, 15); - - // Create the background shape - float[] radiusF = new float[8]; - for (int i = 0; i < 8; i++) { - radiusF[i] = cornerRadius; - } - ShapeDrawable backgroundShape = new ShapeDrawable(new RoundRectShape(radiusF, null, null)); - backgroundShape.setIntrinsicHeight(height); - backgroundShape.getPaint().setColor(colorInactiveAlpha[0]); + private int changeAlpha(int color, float alpha) { + return changeAlpha(color, (int) (alpha * 255)); + } - // Create the progress drawable - RoundedCornerProgressDrawable progressDrawable = null; - try { - progressDrawable = new RoundedCornerProgressDrawable(AppCompatResources.getDrawable(context, res.getIdentifier("brightness_progress_full_drawable", "drawable", context.getPackageName()))); - } catch (Throwable ignored) { - } + private int changeAlpha(int color, int alpha) { + alpha = Math.max(0, Math.min(alpha, 255)); - // Create the start and end drawables - Drawable startDrawable = ResourcesCompat.getDrawable(modRes, R.drawable.ic_brightness_low, context.getTheme()); - Drawable endDrawable = ResourcesCompat.getDrawable(modRes, R.drawable.ic_brightness_full, context.getTheme()); - if (startDrawable != null && endDrawable != null) { - startDrawable.setTint(colorAccent[0]); - endDrawable.setTint(colorAccent[0]); - } + int red = Color.red(color); + int green = Color.green(color); + int blue = Color.blue(color); - // Create the layer drawable - Drawable[] layers = {backgroundShape, progressDrawable, startDrawable, endDrawable}; - LayerDrawable layerDrawable = new LayerDrawable(layers); - layerDrawable.setId(0, android.R.id.background); - layerDrawable.setId(1, android.R.id.progress); - layerDrawable.setLayerGravity(2, Gravity.START | Gravity.CENTER_VERTICAL); - layerDrawable.setLayerGravity(3, Gravity.END | Gravity.CENTER_VERTICAL); - layerDrawable.setLayerInsetStart(2, startPadding); - layerDrawable.setLayerInsetEnd(3, endPadding); - - return layerDrawable; + return Color.argb(alpha, red, green, blue); + } + + private static float dpToPx(Context context, int dp) { + return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics()); } @Override From 1954cf05aa9187617fc78180a6154ead2bed1e00 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Mon, 7 Aug 2023 01:25:25 +0600 Subject: [PATCH 040/215] Fluid QS Theme: Fix QS light mode for pixel variant --- .../iconify/xposed/mods/QSFluidTheme.java | 356 ++++++++---------- .../utils/RoundedCornerProgressDrawable.kt | 94 ----- 2 files changed, 162 insertions(+), 288 deletions(-) delete mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/utils/RoundedCornerProgressDrawable.kt diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java index e66693449..f3fb504a6 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java @@ -5,7 +5,6 @@ import static com.drdisagree.iconify.common.Preferences.FLUID_POWERMENU_TRANSPARENCY; import static com.drdisagree.iconify.common.Preferences.FLUID_QSPANEL; import static com.drdisagree.iconify.config.XPrefs.Xprefs; -import static com.drdisagree.iconify.xposed.HookRes.modRes; import static com.drdisagree.iconify.xposed.HookRes.resparams; import static de.robv.android.xposed.XposedBridge.hookAllConstructors; import static de.robv.android.xposed.XposedBridge.hookAllMethods; @@ -17,10 +16,8 @@ import android.annotation.SuppressLint; import android.content.Context; -import android.content.pm.PackageManager; import android.content.res.ColorStateList; import android.content.res.Configuration; -import android.content.res.Resources; import android.content.res.XResources; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; @@ -29,23 +26,16 @@ import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.InsetDrawable; import android.graphics.drawable.LayerDrawable; -import android.graphics.drawable.ShapeDrawable; -import android.graphics.drawable.shapes.RoundRectShape; import android.os.Build; import android.util.TypedValue; -import android.view.Gravity; import android.view.View; import android.widget.Button; +import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.SeekBar; -import androidx.appcompat.content.res.AppCompatResources; -import androidx.core.content.res.ResourcesCompat; - -import com.drdisagree.iconify.R; import com.drdisagree.iconify.xposed.HookEntry; import com.drdisagree.iconify.xposed.ModPack; -import com.drdisagree.iconify.xposed.utils.RoundedCornerProgressDrawable; import com.drdisagree.iconify.xposed.utils.SettingsLibUtils; import de.robv.android.xposed.XC_MethodHook; @@ -60,16 +50,19 @@ public class QSFluidTheme extends ModPack { private static final int STATE_UNAVAILABLE = 0; private static final int STATE_INACTIVE = 1; private static final int STATE_ACTIVE = 2; - private static final float UNAVAILABLE_ALPHA = 0.3f; - private static final float TILE_ALPHA = 0.2f; - private static final float INACTIVE_ALPHA = 0.2f; + private static final float UNAVAILABLE_ALPHA = 0.2f; + private static final float ACTIVE_ALPHA = 0.3f; + private static final float INACTIVE_ALPHA = 0.3f; private static boolean fluidQsThemeEnabled = false; private static boolean fluidNotifEnabled = false; private static boolean fluidPowerMenuEnabled = false; + private static XC_MethodHook.MethodHookParam customParam = null; private boolean wasDark = getIsDark(); - final Integer[] colorAccent = {wasDark ? mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_300", "color", listenPackage), mContext.getTheme()) : mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_600", "color", listenPackage), mContext.getTheme())}; - final Integer[] colorActiveAlpha = {Color.argb((int) (TILE_ALPHA * 255), Color.red(colorAccent[0]), Color.green(colorAccent[0]), Color.blue(colorAccent[0]))}; + final Integer[] colorInactive = {null}; + final Integer[] colorAccent = {mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_300", "color", listenPackage), mContext.getTheme())}; + final Integer[] colorActiveAlpha = {Color.argb((int) (ACTIVE_ALPHA * 255), Color.red(colorAccent[0]), Color.green(colorAccent[0]), Color.blue(colorAccent[0]))}; final Integer[] colorInactiveAlpha = {wasDark ? Color.parseColor("#0FFFFFFF") : Color.parseColor("#59FFFFFF")}; + final Integer[] colorInactiveQsAlpha = colorInactiveAlpha; final Integer[] colorUnavailableAlpha = {wasDark ? Color.parseColor("#08FFFFFF") : Color.parseColor("#33FFFFFF")}; public QSFluidTheme(Context context) { @@ -79,10 +72,6 @@ public QSFluidTheme(Context context) { wasDark = getIsDark(); } - private static float dpToPx(Context context, int dp) { - return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics()); - } - @Override public void updatePrefs(String... Key) { if (Xprefs == null) return; @@ -90,6 +79,15 @@ public void updatePrefs(String... Key) { fluidQsThemeEnabled = Xprefs.getBoolean(FLUID_QSPANEL, false); fluidNotifEnabled = Xprefs.getBoolean(FLUID_NOTIF_TRANSPARENCY, false); fluidPowerMenuEnabled = Xprefs.getBoolean(FLUID_POWERMENU_TRANSPARENCY, false); + + boolean isDark = getIsDark(); + if (isDark != wasDark) { + wasDark = isDark; + } + + if (customParam != null) { + initColors(customParam); + } initResources(); } @@ -100,27 +98,38 @@ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { Class QsPanelClass = findClass(SYSTEMUI_PACKAGE + ".qs.QSPanel", lpparam.classLoader); Class QSTileViewImplClass = findClass(SYSTEMUI_PACKAGE + ".qs.tileimpl.QSTileViewImpl", lpparam.classLoader); Class QSIconViewImplClass = findClass(SYSTEMUI_PACKAGE + ".qs.tileimpl.QSIconViewImpl", lpparam.classLoader); - Class CentralSurfacesImplClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.phone.CentralSurfacesImpl", lpparam.classLoader); + Class FooterViewClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.notification.row.FooterView", lpparam.classLoader); Class BrightnessSliderViewClass = findClass(SYSTEMUI_PACKAGE + ".settings.brightness.BrightnessSliderView", lpparam.classLoader); Class BrightnessControllerClass = findClass(SYSTEMUI_PACKAGE + ".settings.brightness.BrightnessController", lpparam.classLoader); Class BrightnessMirrorControllerClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.policy.BrightnessMirrorController", lpparam.classLoader); Class BrightnessSliderControllerClass = findClass(SYSTEMUI_PACKAGE + ".settings.brightness.BrightnessSliderController", lpparam.classLoader); Class ActivatableNotificationViewClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.notification.row.ActivatableNotificationView", lpparam.classLoader); - Class FooterViewClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.notification.row.FooterView", lpparam.classLoader); SettingsLibUtils.init(lpparam.classLoader); - initResources(); + + // Initialize resources and colors + hookAllMethods(QSTileViewImplClass, "init", new XC_MethodHook() { + @Override + protected void beforeHookedMethod(MethodHookParam param) { + customParam = param; + if (!fluidQsThemeEnabled) return; + + initColors(param); + initResources(); + } + }); // QS tile color hookAllMethods(QSTileViewImplClass, "getBackgroundColorForState", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) { + customParam = param; if (!fluidQsThemeEnabled) return; try { if ((int) param.args[0] == STATE_ACTIVE) { param.setResult(colorActiveAlpha[0]); } else if ((int) param.args[0] == STATE_INACTIVE) { - param.setResult(colorInactiveAlpha[0]); + param.setResult(colorInactiveQsAlpha[0]); } else if ((int) param.args[0] == STATE_UNAVAILABLE) { param.setResult(colorUnavailableAlpha[0]); } @@ -183,15 +192,22 @@ protected void afterHookedMethod(MethodHookParam param) { if (!fluidQsThemeEnabled) return; try { - ((Drawable) getObjectField(param.thisObject, "mProgressDrawable")).setTint(colorActiveAlpha[0]); + SeekBar mSlider = (SeekBar) getObjectField(param.thisObject, "mSlider"); + LayerDrawable progress = (LayerDrawable) mSlider.getProgressDrawable(); + + GradientDrawable backgroundSlider = (GradientDrawable) progress.findDrawableByLayerId(android.R.id.background); + backgroundSlider.setAlpha((int) ((INACTIVE_ALPHA + 0.2f) * 255)); - LayerDrawable progress = (LayerDrawable) ((SeekBar) getObjectField(param.thisObject, "mSlider")).getProgressDrawable(); DrawableWrapper progressSlider = (DrawableWrapper) progress.findDrawableByLayerId(android.R.id.progress); LayerDrawable actualProgressSlider = (LayerDrawable) progressSlider.getDrawable(); + actualProgressSlider.setTint(colorAccent[0]); + actualProgressSlider.setAlpha((int) (ACTIVE_ALPHA * 255)); + Drawable mBrightnessIcon = actualProgressSlider.findDrawableByLayerId(mContext.getResources().getIdentifier("slider_icon", "id", mContext.getPackageName())); - mBrightnessIcon.setAlpha(0); - mBrightnessIcon.setTint(Color.TRANSPARENT); - } catch (Throwable ignored) { + mBrightnessIcon.setTint(colorAccent[0]); + mBrightnessIcon.setAlpha(255); + } catch (Throwable throwable) { + log(TAG + throwable); } } }); @@ -243,6 +259,20 @@ protected void afterHookedMethod(MethodHookParam param) { } }); + hookAllMethods(BrightnessMirrorControllerClass, "updateResources", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) { + if (!fluidQsThemeEnabled) return; + + try { + FrameLayout mBrightnessMirror = (FrameLayout) getObjectField(param.thisObject, "mBrightnessMirror"); + mBrightnessMirror.getBackground().setAlpha((int) (INACTIVE_ALPHA * 255)); + } catch (Throwable throwable) { + log(TAG + throwable); + } + } + }); + hookAllMethods(QsPanelClass, "updateResources", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) { @@ -259,6 +289,7 @@ protected void afterHookedMethod(MethodHookParam param) { hookAllMethods(QSTileViewImplClass, "getLabelColorForState", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) { + customParam = param; if (!fluidQsThemeEnabled) return; try { @@ -275,6 +306,7 @@ protected void beforeHookedMethod(MethodHookParam param) { hookAllMethods(QSTileViewImplClass, "getSecondaryLabelColorForState", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) { + customParam = param; if (!fluidQsThemeEnabled) return; try { @@ -288,14 +320,18 @@ protected void beforeHookedMethod(MethodHookParam param) { }); // For LineageOS based roms - hookAllConstructors(QSTileViewImplClass, new XC_MethodHook() { + hookAllMethods(QSTileViewImplClass, "updateResources", new XC_MethodHook() { @Override - protected void afterHookedMethod(MethodHookParam param) { + protected void beforeHookedMethod(MethodHookParam param) { + customParam = param; if (!fluidQsThemeEnabled) return; + initColors(param); + initResources(); + try { setObjectField(param.thisObject, "colorActive", colorActiveAlpha[0]); - setObjectField(param.thisObject, "colorInactive", colorInactiveAlpha[0]); + setObjectField(param.thisObject, "colorInactive", colorInactiveQsAlpha[0]); setObjectField(param.thisObject, "colorUnavailable", colorUnavailableAlpha[0]); setObjectField(param.thisObject, "colorLabelActive", colorAccent[0]); setObjectField(param.thisObject, "colorSecondaryLabelActive", colorAccent[0]); @@ -337,214 +373,146 @@ protected void afterHookedMethod(MethodHookParam param) { } } }); - - // Initialize colors - hookAllConstructors(CentralSurfacesImplClass, new XC_MethodHook() { - @Override - protected void afterHookedMethod(MethodHookParam param) { - initResources(); - } - }); - - hookAllMethods(CentralSurfacesImplClass, "updateTheme", new XC_MethodHook() { - @Override - protected void afterHookedMethod(MethodHookParam param) { - initResources(); - } - }); } private boolean getIsDark() { return (mContext.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_YES) == Configuration.UI_MODE_NIGHT_YES; } - private void initResources() { - boolean isDark = getIsDark(); - - if (isDark != wasDark) { - wasDark = isDark; - } - + private void initColors(XC_MethodHook.MethodHookParam param) { try { - colorAccent[0] = wasDark ? mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_300", "color", listenPackage), mContext.getTheme()) : mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_600", "color", listenPackage), mContext.getTheme()); - colorActiveAlpha[0] = Color.argb((int) (TILE_ALPHA * 255), Color.red(colorAccent[0]), Color.green(colorAccent[0]), Color.blue(colorAccent[0])); - colorInactiveAlpha[0] = wasDark ? Color.parseColor("#0FFFFFFF") : Color.parseColor("#59FFFFFF"); - colorUnavailableAlpha[0] = wasDark ? Color.parseColor("#08FFFFFF") : Color.parseColor("#33FFFFFF"); + colorInactive[0] = (Integer) getObjectField(param.thisObject, "colorInactive"); + colorAccent[0] = mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_300", "color", mContext.getPackageName()), mContext.getTheme()); + colorActiveAlpha[0] = Color.argb((int) (ACTIVE_ALPHA * 255), Color.red(colorAccent[0]), Color.green(colorAccent[0]), Color.blue(colorAccent[0])); + colorInactiveAlpha[0] = changeAlpha(colorInactive[0], INACTIVE_ALPHA); + colorInactiveQsAlpha[0] = changeAlpha(colorInactive[0], INACTIVE_ALPHA + 0.2f); + colorUnavailableAlpha[0] = changeAlpha(colorInactive[0], UNAVAILABLE_ALPHA); } catch (Throwable ignored) { } + } + private void initResources() { // Replace drawables to match QS style XC_InitPackageResources.InitPackageResourcesParam ourResparam = resparams.get(SYSTEMUI_PACKAGE); - if (ourResparam != null) { - if (!fluidQsThemeEnabled) return; - int px2dp2 = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, mContext.getResources().getDisplayMetrics()); - int px2dp4 = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()); - int notifCornerRadius = mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("notification_corner_radius", "dimen", mContext.getPackageName())); + if (ourResparam == null || !fluidQsThemeEnabled) return; - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_actions_background", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - return new ColorDrawable(Color.TRANSPARENT); - } - }); - } catch (Throwable ignored) { - } + int px2dp2 = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, mContext.getResources().getDisplayMetrics()); + int px2dp4 = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()); + int notifCornerRadius = mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("notification_corner_radius", "dimen", mContext.getPackageName())); - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "brightness_mirror_background", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setShape(GradientDrawable.RECTANGLE); - gradientDrawable.setColor(colorInactiveAlpha[0]); - gradientDrawable.setCornerRadius(mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("rounded_slider_background_rounded_corner", "dimen", mContext.getPackageName()))); - return gradientDrawable; - } - }); - } catch (Throwable ignored) { - } + try { + ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_actions_background", new XResources.DrawableLoader() { + @Override + public Drawable newDrawable(XResources res, int id) { + return new ColorDrawable(Color.TRANSPARENT); + } + }); + } catch (Throwable ignored) { + } - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "brightness_progress_drawable", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) throws PackageManager.NameNotFoundException { - return createBrightnessBackgroundDrawable(mContext); - } - }); - } catch (Throwable ignored) { - } + try { + ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_action_circle", new XResources.DrawableLoader() { + @Override + public Drawable newDrawable(XResources res, int id) { + GradientDrawable gradientDrawable = new GradientDrawable(); + gradientDrawable.setShape(GradientDrawable.RECTANGLE); + gradientDrawable.setColor(colorInactiveAlpha[0]); + gradientDrawable.setCornerRadius(notifCornerRadius); + return new InsetDrawable(gradientDrawable, px2dp4, px2dp4, px2dp4, px2dp4); + } + }); + } catch (Throwable ignored) { + } - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_action_circle", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setShape(GradientDrawable.RECTANGLE); - gradientDrawable.setColor(colorInactiveAlpha[0]); - gradientDrawable.setCornerRadius(notifCornerRadius); - return new InsetDrawable(gradientDrawable, px2dp4, px2dp4, px2dp4, px2dp4); - } - }); - } catch (Throwable ignored) { - } + try { + ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_action_circle_color", new XResources.DrawableLoader() { + @Override + public Drawable newDrawable(XResources res, int id) { + GradientDrawable gradientDrawable = new GradientDrawable(); + gradientDrawable.setShape(GradientDrawable.RECTANGLE); + gradientDrawable.setColor(colorActiveAlpha[0]); + gradientDrawable.setCornerRadius(notifCornerRadius); + return new InsetDrawable(gradientDrawable, px2dp4, px2dp4, px2dp4, px2dp4); + } + }); + } catch (Throwable ignored) { + } - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_action_circle_color", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setShape(GradientDrawable.RECTANGLE); - gradientDrawable.setColor(colorActiveAlpha[0]); - gradientDrawable.setCornerRadius(notifCornerRadius); - return new InsetDrawable(gradientDrawable, px2dp4, px2dp4, px2dp4, px2dp4); - } - }); - } catch (Throwable ignored) { - } + try { + ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_action_chip_background", new XResources.DrawableLoader() { + @Override + public Drawable newDrawable(XResources res, int id) { + GradientDrawable gradientDrawable = new GradientDrawable(); + gradientDrawable.setShape(GradientDrawable.RECTANGLE); + gradientDrawable.setColor(colorInactiveAlpha[0]); + gradientDrawable.setCornerRadius(notifCornerRadius); + return new InsetDrawable(gradientDrawable, 0, px2dp2, 0, px2dp2); + } + }); + } catch (Throwable ignored) { + } + try { + ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_security_footer_background", new XResources.DrawableLoader() { + @Override + public Drawable newDrawable(XResources res, int id) { + GradientDrawable gradientDrawable = new GradientDrawable(); + gradientDrawable.setShape(GradientDrawable.RECTANGLE); + gradientDrawable.setColor(colorInactiveAlpha[0]); + gradientDrawable.setCornerRadius(notifCornerRadius); + return new InsetDrawable(gradientDrawable, 0, px2dp4, 0, px2dp4); + } + }); + } catch (Throwable ignored) { + } + + if (fluidPowerMenuEnabled) { try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_action_chip_background", new XResources.DrawableLoader() { + ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "global_actions_lite_background", new XResources.DrawableLoader() { @Override public Drawable newDrawable(XResources res, int id) { GradientDrawable gradientDrawable = new GradientDrawable(); gradientDrawable.setShape(GradientDrawable.RECTANGLE); gradientDrawable.setColor(colorInactiveAlpha[0]); gradientDrawable.setCornerRadius(notifCornerRadius); - return new InsetDrawable(gradientDrawable, 0, px2dp2, 0, px2dp2); + return gradientDrawable; } }); } catch (Throwable ignored) { } try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_security_footer_background", new XResources.DrawableLoader() { + ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "global_actions_lite_button", new XResources.DrawableLoader() { @Override public Drawable newDrawable(XResources res, int id) { GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setShape(GradientDrawable.RECTANGLE); + gradientDrawable.setShape(GradientDrawable.OVAL); gradientDrawable.setColor(colorInactiveAlpha[0]); - gradientDrawable.setCornerRadius(notifCornerRadius); - return new InsetDrawable(gradientDrawable, 0, px2dp4, 0, px2dp4); + return gradientDrawable; } }); } catch (Throwable ignored) { } - - if (fluidPowerMenuEnabled) { - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "global_actions_lite_background", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setShape(GradientDrawable.RECTANGLE); - gradientDrawable.setColor(colorInactiveAlpha[0]); - gradientDrawable.setCornerRadius(notifCornerRadius); - return gradientDrawable; - } - }); - } catch (Throwable ignored) { - } - - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "global_actions_lite_button", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setShape(GradientDrawable.OVAL); - gradientDrawable.setColor(colorInactiveAlpha[0]); - return gradientDrawable; - } - }); - } catch (Throwable ignored) { - } - } } } - private LayerDrawable createBrightnessBackgroundDrawable(Context context) throws PackageManager.NameNotFoundException { - Resources res = context.getResources(); - int cornerRadius = context.getResources().getDimensionPixelSize(res.getIdentifier("rounded_slider_corner_radius", "dimen", context.getPackageName())); - int height = context.getResources().getDimensionPixelSize(res.getIdentifier("rounded_slider_height", "dimen", context.getPackageName())); - int startPadding = (int) dpToPx(context, 15); - int endPadding = (int) dpToPx(context, 15); - - // Create the background shape - float[] radiusF = new float[8]; - for (int i = 0; i < 8; i++) { - radiusF[i] = cornerRadius; - } - ShapeDrawable backgroundShape = new ShapeDrawable(new RoundRectShape(radiusF, null, null)); - backgroundShape.setIntrinsicHeight(height); - backgroundShape.getPaint().setColor(colorInactiveAlpha[0]); + private int changeAlpha(int color, float alpha) { + return changeAlpha(color, (int) (alpha * 255)); + } - // Create the progress drawable - RoundedCornerProgressDrawable progressDrawable = null; - try { - progressDrawable = new RoundedCornerProgressDrawable(AppCompatResources.getDrawable(context, res.getIdentifier("brightness_progress_full_drawable", "drawable", context.getPackageName()))); - } catch (Throwable ignored) { - } + private int changeAlpha(int color, int alpha) { + alpha = Math.max(0, Math.min(alpha, 255)); - // Create the start and end drawables - Drawable startDrawable = ResourcesCompat.getDrawable(modRes, R.drawable.ic_brightness_low, context.getTheme()); - Drawable endDrawable = ResourcesCompat.getDrawable(modRes, R.drawable.ic_brightness_full, context.getTheme()); - if (startDrawable != null && endDrawable != null) { - startDrawable.setTint(colorAccent[0]); - endDrawable.setTint(colorAccent[0]); - } + int red = Color.red(color); + int green = Color.green(color); + int blue = Color.blue(color); - // Create the layer drawable - Drawable[] layers = {backgroundShape, progressDrawable, startDrawable, endDrawable}; - LayerDrawable layerDrawable = new LayerDrawable(layers); - layerDrawable.setId(0, android.R.id.background); - layerDrawable.setId(1, android.R.id.progress); - layerDrawable.setLayerGravity(2, Gravity.START | Gravity.CENTER_VERTICAL); - layerDrawable.setLayerGravity(3, Gravity.END | Gravity.CENTER_VERTICAL); - layerDrawable.setLayerInsetStart(2, startPadding); - layerDrawable.setLayerInsetEnd(3, endPadding); - - return layerDrawable; + return Color.argb(alpha, red, green, blue); + } + + private static float dpToPx(Context context, int dp) { + return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics()); } @Override diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/RoundedCornerProgressDrawable.kt b/app/src/main/java/com/drdisagree/iconify/xposed/utils/RoundedCornerProgressDrawable.kt deleted file mode 100644 index 01bbed766..000000000 --- a/app/src/main/java/com/drdisagree/iconify/xposed/utils/RoundedCornerProgressDrawable.kt +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (C) 2021 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.drdisagree.iconify.xposed.utils - -import android.content.pm.ActivityInfo -import android.content.res.Resources -import android.graphics.Rect -import android.graphics.drawable.Drawable -import android.graphics.drawable.DrawableWrapper -import android.graphics.drawable.InsetDrawable - -/** - * [DrawableWrapper] to use in the progress of a slider. - * - * This drawable is used to change the bounds of the enclosed drawable depending on the level to - * simulate a sliding progress, instead of using clipping or scaling. That way, the shape of the - * edges is maintained. - * - * Meant to be used with a rounded ends background, it will also prevent deformation when the slider - * is meant to be smaller than the rounded corner. The background should have rounded corners that - * are half of the height. - */ -class RoundedCornerProgressDrawable @JvmOverloads constructor( - drawable: Drawable? = null -) : InsetDrawable(drawable, 0) { - - companion object { - private const val MAX_LEVEL = 10000 // Taken from Drawable - } - - override fun onLayoutDirectionChanged(layoutDirection: Int): Boolean { - onLevelChange(level) - return super.onLayoutDirectionChanged(layoutDirection) - } - - override fun onBoundsChange(bounds: Rect) { - super.onBoundsChange(bounds) - onLevelChange(level) - } - - override fun onLevelChange(level: Int): Boolean { - val db = drawable?.bounds!! - // On 0, the width is bounds.height (a circle), and on MAX_LEVEL, the width is bounds.width - val width = bounds.height() + (bounds.width() - bounds.height()) * level / MAX_LEVEL - drawable?.setBounds(bounds.left, db.top, bounds.left + width, db.bottom) - return super.onLevelChange(level) - } - - override fun getConstantState(): ConstantState { - // This should not be null as it was created with a state in the constructor. - return RoundedCornerState(super.getConstantState()!!) - } - - override fun getChangingConfigurations(): Int { - return super.getChangingConfigurations() or ActivityInfo.CONFIG_DENSITY - } - - override fun canApplyTheme(): Boolean { - return (drawable?.canApplyTheme() ?: false) || super.canApplyTheme() - } - - private class RoundedCornerState(private val wrappedState: ConstantState) : ConstantState() { - override fun newDrawable(): Drawable { - return newDrawable(null, null) - } - - override fun newDrawable(res: Resources?, theme: Resources.Theme?): Drawable { - val wrapper = wrappedState.newDrawable(res, theme) as DrawableWrapper - return RoundedCornerProgressDrawable(wrapper.drawable) - } - - override fun getChangingConfigurations(): Int { - return wrappedState.changingConfigurations - } - - override fun canApplyTheme(): Boolean { - return true - } - } -} \ No newline at end of file From d9aa2380e30adc84f93963c962833f9e50145c25 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 8 Aug 2023 18:11:48 +0600 Subject: [PATCH 041/215] QS Panel Margin: Fix back button not working --- .../com/drdisagree/iconify/ui/activities/QsPanelMargin.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/activities/QsPanelMargin.java b/app/src/main/java/com/drdisagree/iconify/ui/activities/QsPanelMargin.java index 3b27db11d..753752ee0 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/activities/QsPanelMargin.java +++ b/app/src/main/java/com/drdisagree/iconify/ui/activities/QsPanelMargin.java @@ -15,8 +15,6 @@ import android.widget.SeekBar; import android.widget.Toast; -import androidx.appcompat.app.AppCompatActivity; - import com.drdisagree.iconify.R; import com.drdisagree.iconify.config.Prefs; import com.drdisagree.iconify.config.RPrefs; @@ -30,7 +28,7 @@ import java.io.IOException; import java.util.concurrent.atomic.AtomicBoolean; -public class QsPanelMargin extends AppCompatActivity { +public class QsPanelMargin extends BaseActivity { private ActivityQsPanelMarginBinding binding; private LoadingDialog loadingDialog; From d8a95a7a9c9b282fcaa2cf5de4251cb265bc0b6d Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 10 Aug 2023 11:45:12 +0600 Subject: [PATCH 042/215] Improve overlay installation method --- .../drdisagree/iconify/utils/compiler/MonetCompiler.java | 7 ++++++- .../iconify/utils/compiler/OnDemandCompiler.java | 7 ++++++- .../iconify/utils/compiler/QsMarginCompiler.java | 7 ++++++- .../iconify/utils/compiler/QsTileHeightCompiler.java | 7 ++++++- .../iconify/utils/compiler/RoundnessCompiler.java | 7 ++++++- .../iconify/utils/compiler/SettingsIconsCompiler.java | 7 ++++++- .../drdisagree/iconify/utils/compiler/SwitchCompiler.java | 7 ++++++- 7 files changed, 42 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/utils/compiler/MonetCompiler.java b/app/src/main/java/com/drdisagree/iconify/utils/compiler/MonetCompiler.java index b389dd000..8f02749ae 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/compiler/MonetCompiler.java +++ b/app/src/main/java/com/drdisagree/iconify/utils/compiler/MonetCompiler.java @@ -95,7 +95,12 @@ private static void postExecute(boolean hasErroredOut) { if (!hasErroredOut) { Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponentME.apk " + Resources.OVERLAY_DIR + "/IconifyComponentME.apk").exec(); RootUtil.setPermissions(644, Resources.OVERLAY_DIR + "/IconifyComponentME.apk"); - Shell.cmd("pm install -r " + Resources.OVERLAY_DIR + "/IconifyComponentME.apk").exec(); + + // Move to files dir and install + Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponentME.apk " + Resources.DATA_DIR + "/IconifyComponentME.apk").exec(); + RootUtil.setPermissions(644, Resources.DATA_DIR + "/IconifyComponentME.apk"); + Shell.cmd("pm install -r " + Resources.DATA_DIR + "/IconifyComponentME.apk").exec(); + Shell.cmd("rm -rf " + Resources.DATA_DIR + "/IconifyComponentME.apk").exec(); SystemUtil.mountRW(); Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponentME.apk " + "/system/product/overlay/IconifyComponentME.apk").exec(); diff --git a/app/src/main/java/com/drdisagree/iconify/utils/compiler/OnDemandCompiler.java b/app/src/main/java/com/drdisagree/iconify/utils/compiler/OnDemandCompiler.java index ecdf80b4a..a622e8f7e 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/compiler/OnDemandCompiler.java +++ b/app/src/main/java/com/drdisagree/iconify/utils/compiler/OnDemandCompiler.java @@ -94,7 +94,12 @@ private static void postExecute(boolean hasErroredOut) { if (!hasErroredOut) { Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponent" + mOverlayName + ".apk " + Resources.OVERLAY_DIR + "/IconifyComponent" + mOverlayName + ".apk").exec(); RootUtil.setPermissions(644, Resources.OVERLAY_DIR + "/IconifyComponent" + mOverlayName + ".apk"); - Shell.cmd("pm install -r " + Resources.OVERLAY_DIR + "/IconifyComponent" + mOverlayName + ".apk").exec(); + + // Move to files dir and install + Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponent" + mOverlayName + ".apk " + Resources.DATA_DIR + "/IconifyComponent" + mOverlayName + ".apk").exec(); + RootUtil.setPermissions(644, Resources.DATA_DIR + "/IconifyComponent" + mOverlayName + ".apk"); + Shell.cmd("pm install -r " + Resources.DATA_DIR + "/IconifyComponent" + mOverlayName + ".apk").exec(); + Shell.cmd("rm -rf " + Resources.DATA_DIR + "/IconifyComponent" + mOverlayName + ".apk").exec(); SystemUtil.mountRW(); Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponent" + mOverlayName + ".apk " + "/system/product/overlay/IconifyComponent" + mOverlayName + ".apk").exec(); diff --git a/app/src/main/java/com/drdisagree/iconify/utils/compiler/QsMarginCompiler.java b/app/src/main/java/com/drdisagree/iconify/utils/compiler/QsMarginCompiler.java index 7a36db69e..357426f4a 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/compiler/QsMarginCompiler.java +++ b/app/src/main/java/com/drdisagree/iconify/utils/compiler/QsMarginCompiler.java @@ -104,7 +104,12 @@ private static void postExecute(boolean hasErroredOut) { for (String overlayName : mOverlayName) { Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponent" + overlayName + ".apk " + Resources.OVERLAY_DIR + "/IconifyComponent" + overlayName + ".apk").exec(); RootUtil.setPermissions(644, Resources.OVERLAY_DIR + "/IconifyComponent" + overlayName + ".apk"); - Shell.cmd("pm install -r " + Resources.OVERLAY_DIR + "/IconifyComponent" + overlayName + ".apk").exec(); + + // Move to files dir and install + Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponent" + overlayName + ".apk " + Resources.DATA_DIR + "/IconifyComponent" + overlayName + ".apk").exec(); + RootUtil.setPermissions(644, Resources.DATA_DIR + "/IconifyComponent" + overlayName + ".apk"); + Shell.cmd("pm install -r " + Resources.DATA_DIR + "/IconifyComponent" + overlayName + ".apk").exec(); + Shell.cmd("rm -rf " + Resources.DATA_DIR + "/IconifyComponent" + overlayName + ".apk").exec(); } SystemUtil.mountRW(); diff --git a/app/src/main/java/com/drdisagree/iconify/utils/compiler/QsTileHeightCompiler.java b/app/src/main/java/com/drdisagree/iconify/utils/compiler/QsTileHeightCompiler.java index 124db28bc..98dad4270 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/compiler/QsTileHeightCompiler.java +++ b/app/src/main/java/com/drdisagree/iconify/utils/compiler/QsTileHeightCompiler.java @@ -95,7 +95,12 @@ private static void postExecute(boolean hasErroredOut) { if (!hasErroredOut) { Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponentQSTH.apk " + Resources.OVERLAY_DIR + "/IconifyComponentQSTH.apk").exec(); RootUtil.setPermissions(644, Resources.OVERLAY_DIR + "/IconifyComponentQSTH.apk"); - Shell.cmd("pm install -r " + Resources.OVERLAY_DIR + "/IconifyComponentQSTH.apk").exec(); + + // Move to files dir and install + Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponentQSTH.apk " + Resources.DATA_DIR + "/IconifyComponentQSTH.apk").exec(); + RootUtil.setPermissions(644, Resources.DATA_DIR + "/IconifyComponentQSTH.apk"); + Shell.cmd("pm install -r " + Resources.DATA_DIR + "/IconifyComponentQSTH.apk").exec(); + Shell.cmd("rm -rf " + Resources.DATA_DIR + "/IconifyComponentQSTH.apk").exec(); SystemUtil.mountRW(); Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponentQSTH.apk " + "/system/product/overlay/IconifyComponentQSTH.apk").exec(); diff --git a/app/src/main/java/com/drdisagree/iconify/utils/compiler/RoundnessCompiler.java b/app/src/main/java/com/drdisagree/iconify/utils/compiler/RoundnessCompiler.java index 60084ea39..c33908fd0 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/compiler/RoundnessCompiler.java +++ b/app/src/main/java/com/drdisagree/iconify/utils/compiler/RoundnessCompiler.java @@ -104,7 +104,12 @@ private static void postExecute(boolean hasErroredOut) { for (String overlayName : mOverlayName) { Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponent" + overlayName + ".apk " + Resources.OVERLAY_DIR + "/IconifyComponent" + overlayName + ".apk").exec(); RootUtil.setPermissions(644, Resources.OVERLAY_DIR + "/IconifyComponent" + overlayName + ".apk"); - Shell.cmd("pm install -r " + Resources.OVERLAY_DIR + "/IconifyComponent" + overlayName + ".apk").exec(); + + // Move to files dir and install + Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponent" + overlayName + ".apk " + Resources.DATA_DIR + "/IconifyComponent" + overlayName + ".apk").exec(); + RootUtil.setPermissions(644, Resources.DATA_DIR + "/IconifyComponent" + overlayName + ".apk"); + Shell.cmd("pm install -r " + Resources.DATA_DIR + "/IconifyComponent" + overlayName + ".apk").exec(); + Shell.cmd("rm -rf " + Resources.DATA_DIR + "/IconifyComponent" + overlayName + ".apk").exec(); } SystemUtil.mountRW(); diff --git a/app/src/main/java/com/drdisagree/iconify/utils/compiler/SettingsIconsCompiler.java b/app/src/main/java/com/drdisagree/iconify/utils/compiler/SettingsIconsCompiler.java index f84c1f56f..b6f70b946 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/compiler/SettingsIconsCompiler.java +++ b/app/src/main/java/com/drdisagree/iconify/utils/compiler/SettingsIconsCompiler.java @@ -113,7 +113,12 @@ private static void postExecute(boolean hasErroredOut) { for (int i = 1; i <= packages.length; i++) { Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponentSIP" + i + ".apk " + Resources.OVERLAY_DIR + "/IconifyComponentSIP" + i + ".apk").exec(); RootUtil.setPermissions(644, Resources.OVERLAY_DIR + "/IconifyComponentSIP" + i + ".apk"); - Shell.cmd("pm install -r " + Resources.OVERLAY_DIR + "/IconifyComponentSIP" + i + ".apk").exec(); + + // Move to files dir and install + Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponentSIP" + i + ".apk " + Resources.DATA_DIR + "/IconifyComponentSIP" + i + ".apk").exec(); + RootUtil.setPermissions(644, Resources.DATA_DIR + "/IconifyComponentSIP" + i + ".apk"); + Shell.cmd("pm install -r " + Resources.DATA_DIR + "/IconifyComponentSIP" + i + ".apk").exec(); + Shell.cmd("rm -rf " + Resources.DATA_DIR + "/IconifyComponentSIP" + i + ".apk").exec(); } SystemUtil.mountRW(); diff --git a/app/src/main/java/com/drdisagree/iconify/utils/compiler/SwitchCompiler.java b/app/src/main/java/com/drdisagree/iconify/utils/compiler/SwitchCompiler.java index 7dad4570b..c1561b76d 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/compiler/SwitchCompiler.java +++ b/app/src/main/java/com/drdisagree/iconify/utils/compiler/SwitchCompiler.java @@ -101,7 +101,12 @@ private static void postExecute(boolean hasErroredOut) { for (String overlayName : mOverlayName) { Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponent" + overlayName + ".apk " + Resources.OVERLAY_DIR + "/IconifyComponent" + overlayName + ".apk").exec(); RootUtil.setPermissions(644, Resources.OVERLAY_DIR + "/IconifyComponent" + overlayName + ".apk"); - Shell.cmd("pm install -r " + Resources.OVERLAY_DIR + "/IconifyComponent" + overlayName + ".apk").exec(); + + // Move to files dir and install + Shell.cmd("cp -rf " + Resources.SIGNED_DIR + "/IconifyComponent" + overlayName + ".apk " + Resources.DATA_DIR + "/IconifyComponent" + overlayName + ".apk").exec(); + RootUtil.setPermissions(644, Resources.DATA_DIR + "/IconifyComponent" + overlayName + ".apk"); + Shell.cmd("pm install -r " + Resources.DATA_DIR + "/IconifyComponent" + overlayName + ".apk").exec(); + Shell.cmd("rm -rf " + Resources.DATA_DIR + "/IconifyComponent" + overlayName + ".apk").exec(); } SystemUtil.mountRW(); From 8058e0eff04562de35ed0bec42c1a26a2b5059ab Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 10 Aug 2023 14:48:14 +0600 Subject: [PATCH 043/215] Xposed performance improvement --- .../com/drdisagree/iconify/common/Const.java | 8 + .../com/drdisagree/iconify/config/XPrefs.java | 7 +- .../drdisagree/iconify/xposed/EntryList.java | 6 +- .../drdisagree/iconify/xposed/HookEntry.java | 28 +-- .../xposed/mods/BatteryStyleManager.java | 1 - .../iconify/xposed/mods/QSBlackTheme.java | 1 - .../iconify/xposed/mods/QSFluidTheme.java | 1 - .../iconify/xposed/mods/QSLightTheme.java | 218 +++++++++--------- .../xposed/utils/BootLoopProtector.java | 48 ++++ .../xposed/utils/SettingsLibUtils.java | 32 ++- .../iconify/xposed/utils/SystemUtil.java | 12 + 11 files changed, 216 insertions(+), 146 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/utils/BootLoopProtector.java diff --git a/app/src/main/java/com/drdisagree/iconify/common/Const.java b/app/src/main/java/com/drdisagree/iconify/common/Const.java index 34b9292a2..16c934bf0 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Const.java +++ b/app/src/main/java/com/drdisagree/iconify/common/Const.java @@ -1,5 +1,10 @@ package com.drdisagree.iconify.common; +import com.drdisagree.iconify.xposed.utils.BootLoopProtector; + +import java.util.Arrays; +import java.util.List; + public class Const { // System packages @@ -18,4 +23,7 @@ public class Const { public static final int FRAGMENT_TRANSITION_DELAY = 120; public static final int FRAGMENT_BACK_BUTTON_DELAY = 50; public static final int SWITCH_ANIMATION_DELAY = 300; + + // Xposed variables + public static final List PREF_UPDATE_EXCLUSIONS = Arrays.asList(BootLoopProtector.LOAD_TIME_KEY_KEY, BootLoopProtector.PACKAGE_STRIKE_KEY_KEY); } diff --git a/app/src/main/java/com/drdisagree/iconify/config/XPrefs.java b/app/src/main/java/com/drdisagree/iconify/config/XPrefs.java index f3e166c38..780cbcc42 100644 --- a/app/src/main/java/com/drdisagree/iconify/config/XPrefs.java +++ b/app/src/main/java/com/drdisagree/iconify/config/XPrefs.java @@ -25,15 +25,17 @@ import com.crossbowffs.remotepreferences.RemotePreferences; import com.drdisagree.iconify.BuildConfig; +import com.drdisagree.iconify.common.Const; import com.drdisagree.iconify.xposed.HookEntry; import com.drdisagree.iconify.xposed.ModPack; public class XPrefs { - private static final SharedPreferences.OnSharedPreferenceChangeListener listener = (sharedPreferences, key) -> loadEverything(key); public static SharedPreferences Xprefs; private static String packageName; + private static final SharedPreferences.OnSharedPreferenceChangeListener listener = (sharedPreferences, key) -> loadEverything(key); + public static void init(Context context) { packageName = context.getPackageName(); Xprefs = new RemotePreferences(context, BuildConfig.APPLICATION_ID, SharedXPref, true); @@ -42,6 +44,9 @@ public static void init(Context context) { } public static void loadEverything(String... key) { + if (key.length > 0 && Const.PREF_UPDATE_EXCLUSIONS.stream().anyMatch(exclusion -> key[0].startsWith(exclusion))) + return; + for (ModPack thisMod : HookEntry.runningMods) { thisMod.updatePrefs(key); } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.java b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.java index 5a5b884c1..f0d29d339 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.java @@ -30,14 +30,16 @@ import com.drdisagree.iconify.xposed.mods.QSLightThemeA12; import com.drdisagree.iconify.xposed.mods.QSTransparency; import com.drdisagree.iconify.xposed.mods.QuickSettings; +import com.drdisagree.iconify.xposed.utils.SettingsLibUtils; import java.util.ArrayList; public class EntryList { - public static ArrayList> getEntries() { - ArrayList> modPacks = new ArrayList<>(); + public static ArrayList> getEntries() { + ArrayList> modPacks = new ArrayList<>(); + modPacks.add(SettingsLibUtils.class); modPacks.add(BackgroundChip.class); modPacks.add(HeaderClock.class); modPacks.add(HeaderImage.class); diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.java b/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.java index 0ac2e7b5e..8a5141f7b 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.java @@ -19,11 +19,10 @@ import static android.content.Context.CONTEXT_IGNORE_SECURITY; import static com.drdisagree.iconify.BuildConfig.APPLICATION_ID; -import static com.drdisagree.iconify.config.XPrefs.Xprefs; +import static com.drdisagree.iconify.xposed.utils.BootLoopProtector.isBootLooped; import static de.robv.android.xposed.XposedBridge.log; import static de.robv.android.xposed.XposedHelpers.findAndHookMethod; -import android.annotation.SuppressLint; import android.app.Instrumentation; import android.content.Context; @@ -31,7 +30,6 @@ import com.drdisagree.iconify.xposed.utils.SystemUtil; import java.util.ArrayList; -import java.util.Calendar; import de.robv.android.xposed.IXposedHookLoadPackage; import de.robv.android.xposed.XC_MethodHook; @@ -43,24 +41,6 @@ public class HookEntry implements IXposedHookLoadPackage { public static ArrayList runningMods = new ArrayList<>(); public Context mContext = null; - @SuppressLint("ApplySharedPref") - private static boolean bootLooped(String packageName) { - String loadTimeKey = String.format("packageLastLoad_%s", packageName); - String strikeKey = String.format("packageStrike_%s", packageName); - long currentTime = Calendar.getInstance().getTime().getTime(); - long lastLoadTime = Xprefs.getLong(loadTimeKey, 0); - int strikeCount = Xprefs.getInt(strikeKey, 0); - - if (currentTime - lastLoadTime > 40000) { - Xprefs.edit().putLong(loadTimeKey, currentTime).putInt(strikeKey, 0).commit(); - } else if (strikeCount >= 3) { - return true; - } else { - Xprefs.edit().putInt(strikeKey, ++strikeCount).commit(); - } - return false; - } - @Override public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { isChildProcess = lpparam.processName.contains(":"); @@ -75,7 +55,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { HookRes.modRes = mContext.createPackageContext(APPLICATION_ID, CONTEXT_IGNORE_SECURITY).getResources(); - if (bootLooped(mContext.getPackageName())) { + if (isBootLooped(mContext.getPackageName())) { log(String.format("Possible bootloop in %s ; Iconify will not load for now...", mContext.getPackageName())); return; } @@ -84,14 +64,16 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { XPrefs.loadEverything(mContext.getPackageName()); } - for (Class mod : EntryList.getEntries()) { + for (Class mod : EntryList.getEntries()) { try { ModPack instance = ((ModPack) mod.getConstructor(Context.class).newInstance(mContext)); if (!instance.listensTo(lpparam.packageName)) continue; + try { instance.updatePrefs(); } catch (Throwable ignored) { } + instance.handleLoadPackage(lpparam); runningMods.add(instance); } catch (Throwable throwable) { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java index 6b0bb9eab..5b9223475 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java @@ -246,7 +246,6 @@ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { if (BatteryMeterViewClass == null) { BatteryMeterViewClass = findClass("com.android.systemui.BatteryMeterView", lpparam.classLoader); } - SettingsLibUtils.init(lpparam.classLoader); try { findAndHookConstructor("com.android.settingslib.graph.ThemedBatteryDrawable", lpparam.classLoader, Context.class, int.class, new XC_MethodHook() { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSBlackTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSBlackTheme.java index 83c394f95..582f65062 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSBlackTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSBlackTheme.java @@ -119,7 +119,6 @@ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { Class BrightnessControllerClass = findClass(SYSTEMUI_PACKAGE + ".settings.brightness.BrightnessController", lpparam.classLoader); Class BrightnessMirrorControllerClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.policy.BrightnessMirrorController", lpparam.classLoader); Class BrightnessSliderControllerClass = findClass(SYSTEMUI_PACKAGE + ".settings.brightness.BrightnessSliderController", lpparam.classLoader); - SettingsLibUtils.init(lpparam.classLoader); hookAllConstructors(QSPanelControllerClass, new XC_MethodHook() { @Override diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java index 2854117a1..5a19f8d09 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java @@ -94,7 +94,6 @@ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { Class ActivatableNotificationViewClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.notification.row.ActivatableNotificationView", lpparam.classLoader); // Initialize resources and colors - SettingsLibUtils.init(lpparam.classLoader); initResources(); hookAllMethods(QSTileViewImplClass, "init", new XC_MethodHook() { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightTheme.java index e1d724c98..7500b42a8 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightTheme.java @@ -37,7 +37,6 @@ import android.annotation.SuppressLint; import android.content.Context; import android.content.res.ColorStateList; -import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Color; import android.graphics.Paint; @@ -47,7 +46,6 @@ import android.os.Build; import android.view.View; import android.view.ViewGroup; -import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -60,6 +58,8 @@ import com.drdisagree.iconify.xposed.utils.SettingsLibUtils; import com.drdisagree.iconify.xposed.utils.SystemUtil; +import java.util.Arrays; + import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.callbacks.XC_LoadPackage; @@ -72,42 +72,29 @@ public class QSLightTheme extends ModPack { private static boolean lightQSHeaderEnabled = false; private static boolean dualToneQSEnabled = false; private Object mBehindColors; - private boolean wasDark; + private boolean isDark; + private Integer colorActive = null; private Integer colorInactive = null; - private Drawable lightFooterShape = null; private Object mClockViewQSHeader = null; + private Object unlockedScrimState; public QSLightTheme(Context context) { super(context); if (!listensTo(context.getPackageName())) return; - lightFooterShape = makeFooterShape(); - wasDark = getIsDark(); + isDark = SystemUtil.isDarkMode(); } @Override public void updatePrefs(String... Key) { if (Xprefs == null) return; + lightQSHeaderEnabled = Xprefs.getBoolean(LIGHT_QSPANEL, false); dualToneQSEnabled = Xprefs.getBoolean(DUALTONE_QSPANEL, false); - if (dualToneQSEnabled) Helpers.enableOverlay("IconifyComponentQSDT.overlay"); - else Helpers.disableOverlay("IconifyComponentQSDT.overlay"); - - boolean lightQSEnabled = Xprefs.getBoolean(LIGHT_QSPANEL, false); - if (lightQSEnabled) Helpers.enableOverlay("IconifyComponentQSLT.overlay"); - else Helpers.disableOverlay("IconifyComponentQSLT.overlay"); - - setLightQSHeader(lightQSEnabled); - } - public void setLightQSHeader(boolean state) { - if (lightQSHeaderEnabled != state) { - lightQSHeaderEnabled = state; - - try { - applyOverlays(true); - } catch (Throwable ignored) { - } + try { + applyOverlays(true); + } catch (Throwable ignored) { } } @@ -126,7 +113,36 @@ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { Class CentralSurfacesImplClass = findClass("com.android.systemui.statusbar.phone.CentralSurfacesImpl", lpparam.classLoader); Class ClockClass = findClass("com.android.systemui.statusbar.policy.Clock", lpparam.classLoader); Class QuickStatusBarHeaderClass = findClass("com.android.systemui.qs.QuickStatusBarHeader", lpparam.classLoader); - SettingsLibUtils.init(lpparam.classLoader); + + try { + Class BatteryStatusChipClass = findClass("com.android.systemui.statusbar.BatteryStatusChip", lpparam.classLoader); + + //background color of android 14's charging chip. Fix for light QS theme situation + hookAllMethods(BatteryStatusChipClass, "updateResources", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) throws Throwable { + if (lightQSHeaderEnabled && !isDark) { + ((LinearLayout) getObjectField(param.thisObject, "roundedContainer")).getBackground().setTint(colorActive); + + int colorPrimary = SettingsLibUtils.getColorAttrDefaultColor(mContext, android.R.attr.textColorPrimaryInverse); + int textColorSecondary = SettingsLibUtils.getColorAttrDefaultColor(mContext, android.R.attr.textColorSecondaryInverse); + callMethod((LinearLayout) getObjectField(param.thisObject, "batteryMeterView"), "updateColors", colorPrimary, textColorSecondary, colorPrimary); + } + } + }); + } catch (Throwable ignored) { + } + + unlockedScrimState = Arrays.stream(ScrimStateEnum.getEnumConstants()).filter(c -> c.toString().equals("UNLOCKED")).findFirst().get(); + + hookAllMethods(unlockedScrimState.getClass(), "prepare", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) throws Throwable { + if (!lightQSHeaderEnabled) return; + + setObjectField(unlockedScrimState, "mBehindTint", Color.TRANSPARENT); + } + }); hookAllConstructors(QSPanelControllerClass, new XC_MethodHook() { @Override @@ -135,7 +151,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { } }); - try { //QPR1 + try { //13QPR1 Class QSSecurityFooterClass = findClass("com.android.systemui.qs.QSSecurityFooter", lpparam.classLoader); Class QSFgsManagerFooterClass = findClass("com.android.systemui.qs.QSFgsManagerFooter", lpparam.classLoader); Class FooterActionsControllerClass = findClass("com.android.systemui.qs.FooterActionsController", lpparam.classLoader); @@ -143,10 +159,9 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { hookAllConstructors(QSFgsManagerFooterClass, new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (!wasDark && lightQSHeaderEnabled) { + if (!isDark && lightQSHeaderEnabled) { try { ((View) getObjectField(param.thisObject, "mNumberContainer")).getBackground().setTint(colorInactive); - ((View) getObjectField(param.thisObject, "mTextContainer")).setBackground(lightFooterShape.getConstantState().newDrawable().mutate()); //original has to be copied to new object otherwise will get affected by view changes } catch (Throwable throwable) { log(TAG + throwable); } @@ -154,12 +169,19 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { } }); - hookAllConstructors(QSSecurityFooterClass, new XC_MethodHook() { + hookAllConstructors(FooterActionsControllerClass, new XC_MethodHook() { + @SuppressLint("DiscouragedApi") @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (!wasDark && lightQSHeaderEnabled) { + if (!isDark && lightQSHeaderEnabled) { try { - ((View) getObjectField(param.thisObject, "mView")).setBackground(lightFooterShape.getConstantState().newDrawable().mutate()); + Resources res = mContext.getResources(); + ViewGroup view = (ViewGroup) param.args[0]; + + view.findViewById(res.getIdentifier("multi_user_switch", "id", mContext.getPackageName())).getBackground().setTint(colorInactive); + + View settings_button_container = view.findViewById(res.getIdentifier("settings_button_container", "id", mContext.getPackageName())); + settings_button_container.getBackground().setTint(colorInactive); } catch (Throwable throwable) { log(TAG + throwable); } @@ -167,32 +189,39 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { } }); - hookAllConstructors(FooterActionsControllerClass, new XC_MethodHook() { + //White QS Clock bug - doesn't seem applicable on 13QPR3 and 14 + hookAllMethods(QuickStatusBarHeaderClass, "onFinishInflate", new XC_MethodHook() { @SuppressLint("DiscouragedApi") @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (!wasDark && lightQSHeaderEnabled) { - try { - Resources res = mContext.getResources(); - ViewGroup view = (ViewGroup) param.args[0]; + View thisView = (View) param.thisObject; + Resources res = mContext.getResources(); - view.findViewById(res.getIdentifier("multi_user_switch", "id", mContext.getPackageName())).getBackground().setTint(colorInactive); - - View settings_button_container = view.findViewById(res.getIdentifier("settings_button_container", "id", mContext.getPackageName())); - settings_button_container.getBackground().setTint(colorInactive); + try { + mClockViewQSHeader = getObjectField(param.thisObject, "mClockView"); + } catch (Throwable ignored) { + mClockViewQSHeader = thisView.findViewById(res.getIdentifier("clock", "id", mContext.getPackageName())); + } + } + }); - ((LinearLayout.LayoutParams) ((ViewGroup) settings_button_container.getParent()).getLayoutParams()).setMarginEnd(0); + //White QS Clock bug - doesn't seem applicable on 13QPR3 and 14 + hookAllMethods(ClockClass, "onColorsChanged", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) throws Throwable { + if (lightQSHeaderEnabled && isDark && mClockViewQSHeader != null) { + try { + ((TextView) mClockViewQSHeader).setTextColor(Color.BLACK); } catch (Throwable throwable) { log(TAG + throwable); } } } }); - - } catch (Throwable throwable) { //QPR2&3 - //QPR3 + } catch (Throwable throwable) { //13QPR2&3 + //13QPR3 Class ShadeHeaderControllerClass = findClassIfExists("com.android.systemui.shade.ShadeHeaderController", lpparam.classLoader); - //QPR2 + //13QPR2 if (ShadeHeaderControllerClass == null) ShadeHeaderControllerClass = findClass("com.android.systemui.shade.LargeScreenShadeHeaderController", lpparam.classLoader); Class QSContainerImplClass = findClass("com.android.systemui.qs.QSContainerImpl", lpparam.classLoader); @@ -225,7 +254,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { @SuppressLint("DiscouragedApi") @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (!wasDark && lightQSHeaderEnabled) { + if (!isDark && lightQSHeaderEnabled) { try { Resources res = mContext.getResources(); ViewGroup view = (ViewGroup) param.thisObject; @@ -233,16 +262,12 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { View settings_button_container = view.findViewById(res.getIdentifier("settings_button_container", "id", mContext.getPackageName())); settings_button_container.getBackground().setTint(colorInactive); - ImageView icon = settings_button_container.findViewById(res.getIdentifier("icon", "id", mContext.getPackageName())); - icon.setImageTintList(ColorStateList.valueOf(Color.BLACK)); - - ((FrameLayout.LayoutParams) ((ViewGroup) settings_button_container.getParent()).getLayoutParams()).setMarginEnd(0); + ImageView settings_icon = settings_button_container.findViewById(res.getIdentifier("icon", "id", mContext.getPackageName())); + settings_icon.setImageTintList(ColorStateList.valueOf(Color.BLACK)); - ViewGroup parent = (ViewGroup) settings_button_container.getParent(); - for (int i = 0; i < 3; i++) //Security + Foreground services containers - { - parent.getChildAt(i).setBackground(lightFooterShape.getConstantState().newDrawable().mutate()); - } + View pm_button_container = view.findViewById(res.getIdentifier("pm_lite", "id", mContext.getPackageName())); + ImageView pm_icon = pm_button_container.findViewById(res.getIdentifier("icon", "id", mContext.getPackageName())); + pm_icon.setImageTintList(ColorStateList.valueOf(Color.WHITE)); } catch (Throwable throwable) { log(TAG + throwable); } @@ -254,7 +279,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { hookAllMethods(QSIconViewImplClass, "updateIcon", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (lightQSHeaderEnabled && !getIsDark() && getIntField(param.args[1], "state") == STATE_ACTIVE) { + if (lightQSHeaderEnabled && !isDark && getIntField(param.args[1], "state") == STATE_ACTIVE) { try { ((ImageView) param.args[0]).setImageTintList(ColorStateList.valueOf(colorInactive)); } catch (Throwable throwable) { @@ -267,7 +292,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { hookAllMethods(QSIconViewImplClass, "setIcon", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) throws Throwable { - if (lightQSHeaderEnabled && !getIsDark()) { + if (lightQSHeaderEnabled && !isDark) { try { if (param.args[0] instanceof ImageView && getIntField(param.args[1], "state") == STATE_ACTIVE) { setObjectField(param.thisObject, "mTint", colorInactive); @@ -279,31 +304,6 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { } }); - // White QS Clock bug - hookAllMethods(QuickStatusBarHeaderClass, "onFinishInflate", new XC_MethodHook() { - @Override - protected void afterHookedMethod(MethodHookParam param) throws Throwable { - try { - mClockViewQSHeader = getObjectField(param.thisObject, "mClockView"); - } catch (Throwable ignored) { - } - } - }); - - // White QS Clock bug - hookAllMethods(ClockClass, "onColorsChanged", new XC_MethodHook() { - @Override - protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (lightQSHeaderEnabled && !SystemUtil.isDarkMode() && mClockViewQSHeader != null) { - try { - ((TextView) mClockViewQSHeader).setTextColor(Color.BLACK); - } catch (Throwable throwable) { - log(TAG + throwable); - } - } - } - }); - hookAllConstructors(CentralSurfacesImplClass, new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { @@ -314,7 +314,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { hookAllConstructors(QSTileViewImplClass, new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (!lightQSHeaderEnabled || wasDark) return; + if (!lightQSHeaderEnabled || isDark) return; try { setObjectField(param.thisObject, "colorLabelActive", Color.WHITE); @@ -327,23 +327,12 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { hookAllMethods(QSIconViewImplClass, "getIconColorForState", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) throws Throwable { - if (!wasDark && lightQSHeaderEnabled && ((boolean) param.args[1])) { - try { - param.setResult(Color.WHITE); - } catch (Throwable throwable) { - log(TAG + throwable); - } + if (!isDark && lightQSHeaderEnabled && ((boolean) param.args[1])) { + param.setResult(Color.WHITE); } } }); - hookAllMethods(CentralSurfacesImplClass, "updateTheme", new XC_MethodHook() { - @Override - protected void afterHookedMethod(MethodHookParam param) throws Throwable { - applyOverlays(false); - } - }); - try { mBehindColors = GradientColorsClass.getDeclaredConstructor().newInstance(); } catch (Throwable throwable) { @@ -368,16 +357,18 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { } }); - hookAllMethods(ScrimControllerClass, "updateThemeColors", new XC_MethodHook() { + hookAllMethods(CentralSurfacesImplClass, "updateTheme", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - calculateColors(); + applyOverlays(false); } }); hookAllMethods(ScrimControllerClass, "updateThemeColors", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { + calculateColors(); + if (!dualToneQSEnabled) return; try { @@ -474,11 +465,11 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { @Override protected void beforeHookedMethod(MethodHookParam param) throws Throwable { if (!lightQSHeaderEnabled) return; + param.setResult(Color.TRANSPARENT); } }); break; - case "UNLOCKED": hookAllMethods(constant.getClass(), "prepare", new XC_MethodHook() { @Override @@ -513,35 +504,44 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { } } }); - } private void applyOverlays(boolean force) throws Throwable { - boolean isDark = getIsDark(); + boolean isCurrentlyDark = SystemUtil.isDarkMode(); - if (isDark == wasDark && !force) return; - wasDark = isDark; + if (isCurrentlyDark == isDark && !force) return; + isDark = isCurrentlyDark; calculateColors(); Helpers.disableOverlay("IconifyComponentQSLT.overlay"); + Helpers.disableOverlay("IconifyComponentQSDT.overlay"); Thread.sleep(50); - if (lightQSHeaderEnabled && !isDark) { + if (lightQSHeaderEnabled && !isCurrentlyDark) { Helpers.enableOverlay("IconifyComponentQSLT.overlay"); } + + if (lightQSHeaderEnabled && dualToneQSEnabled) { + Helpers.enableOverlay("IconifyComponentQSDT.overlay"); + } } @SuppressLint("DiscouragedApi") private void calculateColors() { - if (!lightQSHeaderEnabled || wasDark) return; + if (!lightQSHeaderEnabled) return; try { - Resources res = mContext.getResources(); - colorInactive = res.getColor(res.getIdentifier("android:color/system_neutral1_10", "color", listenPackage), mContext.getTheme()); + if (unlockedScrimState != null) { + setObjectField(unlockedScrimState, "mBehindTint", Color.TRANSPARENT); + } - lightFooterShape.setTint(colorInactive); + if (!isDark) { + Resources res = mContext.getResources(); + colorActive = mContext.getColor(android.R.color.system_accent1_600); + colorInactive = res.getColor(res.getIdentifier("android:color/system_neutral1_10", "color", listenPackage), mContext.getTheme()); + } } catch (Throwable throwable) { log(TAG + throwable); } @@ -579,10 +579,6 @@ private void setHeaderComponentsColor(View mView, Object iconManager, Object bat } } - private boolean getIsDark() { - return (mContext.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_YES) == Configuration.UI_MODE_NIGHT_YES; - } - private Drawable makeFooterShape() { @SuppressLint("DiscouragedApi") int radius = mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("qs_security_footer_corner_radius", "dimen", mContext.getPackageName())); float[] radiusF = new float[8]; diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/BootLoopProtector.java b/app/src/main/java/com/drdisagree/iconify/xposed/utils/BootLoopProtector.java new file mode 100644 index 000000000..06599180f --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/utils/BootLoopProtector.java @@ -0,0 +1,48 @@ +package com.drdisagree.iconify.xposed.utils; + +/* + * From AOSPMods + * https://github.com/siavash79/AOSPMods/blob/canary/app/src/main/java/sh/siava/AOSPMods/modpacks/utils/BootLoopProtector.java + */ + +import static com.drdisagree.iconify.config.XPrefs.Xprefs; + +import android.annotation.SuppressLint; + +import java.util.Calendar; + +public class BootLoopProtector { + + public static final String LOAD_TIME_KEY_KEY = "packageLastLoad_"; + public static final String PACKAGE_STRIKE_KEY_KEY = "packageStrike_"; + + @SuppressLint("ApplySharedPref") + public static boolean isBootLooped(String packageName) { + String loadTimeKey = String.format("%s%s", LOAD_TIME_KEY_KEY, packageName); + String strikeKey = String.format("%s%s", PACKAGE_STRIKE_KEY_KEY, packageName); + long currentTime = Calendar.getInstance().getTime().getTime(); + long lastLoadTime = Xprefs.getLong(loadTimeKey, 0); + int strikeCount = Xprefs.getInt(strikeKey, 0); + + if (currentTime - lastLoadTime > 40000) { + Xprefs.edit().putLong(loadTimeKey, currentTime).putInt(strikeKey, 0).commit(); + } else if (strikeCount >= 3) { + return true; + } else { + Xprefs.edit().putInt(strikeKey, ++strikeCount).commit(); + } + return false; + } + + @SuppressLint("ApplySharedPref") + public static void resetCounter(String packageName) { + try { + String loadTimeKey = String.format("%s%s", LOAD_TIME_KEY_KEY, packageName); + String strikeKey = String.format("%s%s", PACKAGE_STRIKE_KEY_KEY, packageName); + long currentTime = Calendar.getInstance().getTime().getTime(); + + Xprefs.edit().putLong(loadTimeKey, currentTime).putInt(strikeKey, 0).commit(); + } catch (Throwable ignored) { + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/SettingsLibUtils.java b/app/src/main/java/com/drdisagree/iconify/xposed/utils/SettingsLibUtils.java index f66a0fea4..dfb25cd07 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/utils/SettingsLibUtils.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/utils/SettingsLibUtils.java @@ -17,19 +17,21 @@ * along with this program. If not, see [http://www.gnu.org/licenses/]. */ +import static com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE; import static de.robv.android.xposed.XposedHelpers.callStaticMethod; import static de.robv.android.xposed.XposedHelpers.findClass; import android.content.Context; import android.content.res.ColorStateList; -public class SettingsLibUtils { - private static Class UtilsClass = null; +import com.drdisagree.iconify.xposed.HookEntry; +import com.drdisagree.iconify.xposed.ModPack; - public static void init(ClassLoader classLoader) { - if (UtilsClass == null) - UtilsClass = findClass("com.android.settingslib.Utils", classLoader); - } +import de.robv.android.xposed.callbacks.XC_LoadPackage; + +public class SettingsLibUtils extends ModPack { + private static final String listenPackage = SYSTEMUI_PACKAGE; + private static Class UtilsClass = null; public static ColorStateList getColorAttr(Context context, int resID) { return getColorAttr(resID, context); @@ -62,4 +64,22 @@ public static int getColorAttrDefaultColor(int resID, Context context) { } } } + + public SettingsLibUtils(Context context) { + super(context); + } + + @Override + public void updatePrefs(String... Key) { + } + + @Override + public boolean listensTo(String packageName) { + return listenPackage.equals(packageName) && !HookEntry.isChildProcess; + } + + @Override + public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable { + UtilsClass = findClass("com.android.settingslib.Utils", lpparam.classLoader); + } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.java b/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.java index 183741e78..9582c4c2f 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.java @@ -6,10 +6,13 @@ */ import android.annotation.SuppressLint; +import android.app.Application; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; +import android.os.Build; +import android.os.Process; import android.util.TypedValue; import androidx.annotation.AttrRes; @@ -64,4 +67,13 @@ public static int getColorResCompat(Context context, @AttrRes int id) { private boolean getIsDark() { return (mContext.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_YES) == Configuration.UI_MODE_NIGHT_YES; } + + public static void killSelf() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + BootLoopProtector.resetCounter(Process.myProcessName()); + } else { + BootLoopProtector.resetCounter(Application.getProcessName()); + } + Process.killProcess(Process.myPid()); + } } From 2ad6329d4b1d30d0093bbc590b22ecf150298421 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 10 Aug 2023 14:48:14 +0600 Subject: [PATCH 044/215] Xposed performance improvement --- .../com/drdisagree/iconify/common/Const.java | 8 + .../com/drdisagree/iconify/config/XPrefs.java | 7 +- .../drdisagree/iconify/xposed/EntryList.java | 6 +- .../drdisagree/iconify/xposed/HookEntry.java | 28 +-- .../xposed/mods/BatteryStyleManager.java | 1 - .../iconify/xposed/mods/QSBlackTheme.java | 1 - .../iconify/xposed/mods/QSFluidTheme.java | 1 - .../iconify/xposed/mods/QSLightTheme.java | 234 ++++++++---------- .../xposed/utils/BootLoopProtector.java | 48 ++++ .../xposed/utils/SettingsLibUtils.java | 32 ++- .../iconify/xposed/utils/SystemUtil.java | 12 + 11 files changed, 216 insertions(+), 162 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/utils/BootLoopProtector.java diff --git a/app/src/main/java/com/drdisagree/iconify/common/Const.java b/app/src/main/java/com/drdisagree/iconify/common/Const.java index 34b9292a2..16c934bf0 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Const.java +++ b/app/src/main/java/com/drdisagree/iconify/common/Const.java @@ -1,5 +1,10 @@ package com.drdisagree.iconify.common; +import com.drdisagree.iconify.xposed.utils.BootLoopProtector; + +import java.util.Arrays; +import java.util.List; + public class Const { // System packages @@ -18,4 +23,7 @@ public class Const { public static final int FRAGMENT_TRANSITION_DELAY = 120; public static final int FRAGMENT_BACK_BUTTON_DELAY = 50; public static final int SWITCH_ANIMATION_DELAY = 300; + + // Xposed variables + public static final List PREF_UPDATE_EXCLUSIONS = Arrays.asList(BootLoopProtector.LOAD_TIME_KEY_KEY, BootLoopProtector.PACKAGE_STRIKE_KEY_KEY); } diff --git a/app/src/main/java/com/drdisagree/iconify/config/XPrefs.java b/app/src/main/java/com/drdisagree/iconify/config/XPrefs.java index f3e166c38..780cbcc42 100644 --- a/app/src/main/java/com/drdisagree/iconify/config/XPrefs.java +++ b/app/src/main/java/com/drdisagree/iconify/config/XPrefs.java @@ -25,15 +25,17 @@ import com.crossbowffs.remotepreferences.RemotePreferences; import com.drdisagree.iconify.BuildConfig; +import com.drdisagree.iconify.common.Const; import com.drdisagree.iconify.xposed.HookEntry; import com.drdisagree.iconify.xposed.ModPack; public class XPrefs { - private static final SharedPreferences.OnSharedPreferenceChangeListener listener = (sharedPreferences, key) -> loadEverything(key); public static SharedPreferences Xprefs; private static String packageName; + private static final SharedPreferences.OnSharedPreferenceChangeListener listener = (sharedPreferences, key) -> loadEverything(key); + public static void init(Context context) { packageName = context.getPackageName(); Xprefs = new RemotePreferences(context, BuildConfig.APPLICATION_ID, SharedXPref, true); @@ -42,6 +44,9 @@ public static void init(Context context) { } public static void loadEverything(String... key) { + if (key.length > 0 && Const.PREF_UPDATE_EXCLUSIONS.stream().anyMatch(exclusion -> key[0].startsWith(exclusion))) + return; + for (ModPack thisMod : HookEntry.runningMods) { thisMod.updatePrefs(key); } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.java b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.java index 5a5b884c1..f0d29d339 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.java @@ -30,14 +30,16 @@ import com.drdisagree.iconify.xposed.mods.QSLightThemeA12; import com.drdisagree.iconify.xposed.mods.QSTransparency; import com.drdisagree.iconify.xposed.mods.QuickSettings; +import com.drdisagree.iconify.xposed.utils.SettingsLibUtils; import java.util.ArrayList; public class EntryList { - public static ArrayList> getEntries() { - ArrayList> modPacks = new ArrayList<>(); + public static ArrayList> getEntries() { + ArrayList> modPacks = new ArrayList<>(); + modPacks.add(SettingsLibUtils.class); modPacks.add(BackgroundChip.class); modPacks.add(HeaderClock.class); modPacks.add(HeaderImage.class); diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.java b/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.java index 0ac2e7b5e..8a5141f7b 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.java @@ -19,11 +19,10 @@ import static android.content.Context.CONTEXT_IGNORE_SECURITY; import static com.drdisagree.iconify.BuildConfig.APPLICATION_ID; -import static com.drdisagree.iconify.config.XPrefs.Xprefs; +import static com.drdisagree.iconify.xposed.utils.BootLoopProtector.isBootLooped; import static de.robv.android.xposed.XposedBridge.log; import static de.robv.android.xposed.XposedHelpers.findAndHookMethod; -import android.annotation.SuppressLint; import android.app.Instrumentation; import android.content.Context; @@ -31,7 +30,6 @@ import com.drdisagree.iconify.xposed.utils.SystemUtil; import java.util.ArrayList; -import java.util.Calendar; import de.robv.android.xposed.IXposedHookLoadPackage; import de.robv.android.xposed.XC_MethodHook; @@ -43,24 +41,6 @@ public class HookEntry implements IXposedHookLoadPackage { public static ArrayList runningMods = new ArrayList<>(); public Context mContext = null; - @SuppressLint("ApplySharedPref") - private static boolean bootLooped(String packageName) { - String loadTimeKey = String.format("packageLastLoad_%s", packageName); - String strikeKey = String.format("packageStrike_%s", packageName); - long currentTime = Calendar.getInstance().getTime().getTime(); - long lastLoadTime = Xprefs.getLong(loadTimeKey, 0); - int strikeCount = Xprefs.getInt(strikeKey, 0); - - if (currentTime - lastLoadTime > 40000) { - Xprefs.edit().putLong(loadTimeKey, currentTime).putInt(strikeKey, 0).commit(); - } else if (strikeCount >= 3) { - return true; - } else { - Xprefs.edit().putInt(strikeKey, ++strikeCount).commit(); - } - return false; - } - @Override public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { isChildProcess = lpparam.processName.contains(":"); @@ -75,7 +55,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { HookRes.modRes = mContext.createPackageContext(APPLICATION_ID, CONTEXT_IGNORE_SECURITY).getResources(); - if (bootLooped(mContext.getPackageName())) { + if (isBootLooped(mContext.getPackageName())) { log(String.format("Possible bootloop in %s ; Iconify will not load for now...", mContext.getPackageName())); return; } @@ -84,14 +64,16 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { XPrefs.loadEverything(mContext.getPackageName()); } - for (Class mod : EntryList.getEntries()) { + for (Class mod : EntryList.getEntries()) { try { ModPack instance = ((ModPack) mod.getConstructor(Context.class).newInstance(mContext)); if (!instance.listensTo(lpparam.packageName)) continue; + try { instance.updatePrefs(); } catch (Throwable ignored) { } + instance.handleLoadPackage(lpparam); runningMods.add(instance); } catch (Throwable throwable) { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java index 6b0bb9eab..5b9223475 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java @@ -246,7 +246,6 @@ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { if (BatteryMeterViewClass == null) { BatteryMeterViewClass = findClass("com.android.systemui.BatteryMeterView", lpparam.classLoader); } - SettingsLibUtils.init(lpparam.classLoader); try { findAndHookConstructor("com.android.settingslib.graph.ThemedBatteryDrawable", lpparam.classLoader, Context.class, int.class, new XC_MethodHook() { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSBlackTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSBlackTheme.java index 83c394f95..582f65062 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSBlackTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSBlackTheme.java @@ -119,7 +119,6 @@ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { Class BrightnessControllerClass = findClass(SYSTEMUI_PACKAGE + ".settings.brightness.BrightnessController", lpparam.classLoader); Class BrightnessMirrorControllerClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.policy.BrightnessMirrorController", lpparam.classLoader); Class BrightnessSliderControllerClass = findClass(SYSTEMUI_PACKAGE + ".settings.brightness.BrightnessSliderController", lpparam.classLoader); - SettingsLibUtils.init(lpparam.classLoader); hookAllConstructors(QSPanelControllerClass, new XC_MethodHook() { @Override diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java index 2854117a1..5a19f8d09 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java @@ -94,7 +94,6 @@ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { Class ActivatableNotificationViewClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.notification.row.ActivatableNotificationView", lpparam.classLoader); // Initialize resources and colors - SettingsLibUtils.init(lpparam.classLoader); initResources(); hookAllMethods(QSTileViewImplClass, "init", new XC_MethodHook() { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightTheme.java index e1d724c98..265a77d26 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightTheme.java @@ -37,17 +37,11 @@ import android.annotation.SuppressLint; import android.content.Context; import android.content.res.ColorStateList; -import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Color; -import android.graphics.Paint; -import android.graphics.drawable.Drawable; -import android.graphics.drawable.ShapeDrawable; -import android.graphics.drawable.shapes.RoundRectShape; import android.os.Build; import android.view.View; import android.view.ViewGroup; -import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -60,6 +54,8 @@ import com.drdisagree.iconify.xposed.utils.SettingsLibUtils; import com.drdisagree.iconify.xposed.utils.SystemUtil; +import java.util.Arrays; + import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.callbacks.XC_LoadPackage; @@ -72,42 +68,29 @@ public class QSLightTheme extends ModPack { private static boolean lightQSHeaderEnabled = false; private static boolean dualToneQSEnabled = false; private Object mBehindColors; - private boolean wasDark; + private boolean isDark; + private Integer colorActive = null; private Integer colorInactive = null; - private Drawable lightFooterShape = null; private Object mClockViewQSHeader = null; + private Object unlockedScrimState; public QSLightTheme(Context context) { super(context); if (!listensTo(context.getPackageName())) return; - lightFooterShape = makeFooterShape(); - wasDark = getIsDark(); + isDark = SystemUtil.isDarkMode(); } @Override public void updatePrefs(String... Key) { if (Xprefs == null) return; + lightQSHeaderEnabled = Xprefs.getBoolean(LIGHT_QSPANEL, false); dualToneQSEnabled = Xprefs.getBoolean(DUALTONE_QSPANEL, false); - if (dualToneQSEnabled) Helpers.enableOverlay("IconifyComponentQSDT.overlay"); - else Helpers.disableOverlay("IconifyComponentQSDT.overlay"); - - boolean lightQSEnabled = Xprefs.getBoolean(LIGHT_QSPANEL, false); - if (lightQSEnabled) Helpers.enableOverlay("IconifyComponentQSLT.overlay"); - else Helpers.disableOverlay("IconifyComponentQSLT.overlay"); - - setLightQSHeader(lightQSEnabled); - } - public void setLightQSHeader(boolean state) { - if (lightQSHeaderEnabled != state) { - lightQSHeaderEnabled = state; - - try { - applyOverlays(true); - } catch (Throwable ignored) { - } + try { + applyOverlays(true); + } catch (Throwable ignored) { } } @@ -126,7 +109,36 @@ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { Class CentralSurfacesImplClass = findClass("com.android.systemui.statusbar.phone.CentralSurfacesImpl", lpparam.classLoader); Class ClockClass = findClass("com.android.systemui.statusbar.policy.Clock", lpparam.classLoader); Class QuickStatusBarHeaderClass = findClass("com.android.systemui.qs.QuickStatusBarHeader", lpparam.classLoader); - SettingsLibUtils.init(lpparam.classLoader); + + try { + Class BatteryStatusChipClass = findClass("com.android.systemui.statusbar.BatteryStatusChip", lpparam.classLoader); + + //background color of android 14's charging chip. Fix for light QS theme situation + hookAllMethods(BatteryStatusChipClass, "updateResources", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) throws Throwable { + if (lightQSHeaderEnabled && !isDark) { + ((LinearLayout) getObjectField(param.thisObject, "roundedContainer")).getBackground().setTint(colorActive); + + int colorPrimary = SettingsLibUtils.getColorAttrDefaultColor(mContext, android.R.attr.textColorPrimaryInverse); + int textColorSecondary = SettingsLibUtils.getColorAttrDefaultColor(mContext, android.R.attr.textColorSecondaryInverse); + callMethod((LinearLayout) getObjectField(param.thisObject, "batteryMeterView"), "updateColors", colorPrimary, textColorSecondary, colorPrimary); + } + } + }); + } catch (Throwable ignored) { + } + + unlockedScrimState = Arrays.stream(ScrimStateEnum.getEnumConstants()).filter(c -> c.toString().equals("UNLOCKED")).findFirst().get(); + + hookAllMethods(unlockedScrimState.getClass(), "prepare", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) throws Throwable { + if (!lightQSHeaderEnabled) return; + + setObjectField(unlockedScrimState, "mBehindTint", Color.TRANSPARENT); + } + }); hookAllConstructors(QSPanelControllerClass, new XC_MethodHook() { @Override @@ -135,18 +147,16 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { } }); - try { //QPR1 - Class QSSecurityFooterClass = findClass("com.android.systemui.qs.QSSecurityFooter", lpparam.classLoader); + try { //13QPR1 Class QSFgsManagerFooterClass = findClass("com.android.systemui.qs.QSFgsManagerFooter", lpparam.classLoader); Class FooterActionsControllerClass = findClass("com.android.systemui.qs.FooterActionsController", lpparam.classLoader); hookAllConstructors(QSFgsManagerFooterClass, new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (!wasDark && lightQSHeaderEnabled) { + if (!isDark && lightQSHeaderEnabled) { try { ((View) getObjectField(param.thisObject, "mNumberContainer")).getBackground().setTint(colorInactive); - ((View) getObjectField(param.thisObject, "mTextContainer")).setBackground(lightFooterShape.getConstantState().newDrawable().mutate()); //original has to be copied to new object otherwise will get affected by view changes } catch (Throwable throwable) { log(TAG + throwable); } @@ -154,12 +164,19 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { } }); - hookAllConstructors(QSSecurityFooterClass, new XC_MethodHook() { + hookAllConstructors(FooterActionsControllerClass, new XC_MethodHook() { + @SuppressLint("DiscouragedApi") @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (!wasDark && lightQSHeaderEnabled) { + if (!isDark && lightQSHeaderEnabled) { try { - ((View) getObjectField(param.thisObject, "mView")).setBackground(lightFooterShape.getConstantState().newDrawable().mutate()); + Resources res = mContext.getResources(); + ViewGroup view = (ViewGroup) param.args[0]; + + view.findViewById(res.getIdentifier("multi_user_switch", "id", mContext.getPackageName())).getBackground().setTint(colorInactive); + + View settings_button_container = view.findViewById(res.getIdentifier("settings_button_container", "id", mContext.getPackageName())); + settings_button_container.getBackground().setTint(colorInactive); } catch (Throwable throwable) { log(TAG + throwable); } @@ -167,32 +184,39 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { } }); - hookAllConstructors(FooterActionsControllerClass, new XC_MethodHook() { + //White QS Clock bug - doesn't seem applicable on 13QPR3 and 14 + hookAllMethods(QuickStatusBarHeaderClass, "onFinishInflate", new XC_MethodHook() { @SuppressLint("DiscouragedApi") @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (!wasDark && lightQSHeaderEnabled) { - try { - Resources res = mContext.getResources(); - ViewGroup view = (ViewGroup) param.args[0]; - - view.findViewById(res.getIdentifier("multi_user_switch", "id", mContext.getPackageName())).getBackground().setTint(colorInactive); + View thisView = (View) param.thisObject; + Resources res = mContext.getResources(); - View settings_button_container = view.findViewById(res.getIdentifier("settings_button_container", "id", mContext.getPackageName())); - settings_button_container.getBackground().setTint(colorInactive); + try { + mClockViewQSHeader = getObjectField(param.thisObject, "mClockView"); + } catch (Throwable ignored) { + mClockViewQSHeader = thisView.findViewById(res.getIdentifier("clock", "id", mContext.getPackageName())); + } + } + }); - ((LinearLayout.LayoutParams) ((ViewGroup) settings_button_container.getParent()).getLayoutParams()).setMarginEnd(0); + //White QS Clock bug - doesn't seem applicable on 13QPR3 and 14 + hookAllMethods(ClockClass, "onColorsChanged", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) throws Throwable { + if (lightQSHeaderEnabled && isDark && mClockViewQSHeader != null) { + try { + ((TextView) mClockViewQSHeader).setTextColor(Color.BLACK); } catch (Throwable throwable) { log(TAG + throwable); } } } }); - - } catch (Throwable throwable) { //QPR2&3 - //QPR3 + } catch (Throwable throwable) { //13QPR2&3 + //13QPR3 Class ShadeHeaderControllerClass = findClassIfExists("com.android.systemui.shade.ShadeHeaderController", lpparam.classLoader); - //QPR2 + //13QPR2 if (ShadeHeaderControllerClass == null) ShadeHeaderControllerClass = findClass("com.android.systemui.shade.LargeScreenShadeHeaderController", lpparam.classLoader); Class QSContainerImplClass = findClass("com.android.systemui.qs.QSContainerImpl", lpparam.classLoader); @@ -225,7 +249,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { @SuppressLint("DiscouragedApi") @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (!wasDark && lightQSHeaderEnabled) { + if (!isDark && lightQSHeaderEnabled) { try { Resources res = mContext.getResources(); ViewGroup view = (ViewGroup) param.thisObject; @@ -233,16 +257,12 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { View settings_button_container = view.findViewById(res.getIdentifier("settings_button_container", "id", mContext.getPackageName())); settings_button_container.getBackground().setTint(colorInactive); - ImageView icon = settings_button_container.findViewById(res.getIdentifier("icon", "id", mContext.getPackageName())); - icon.setImageTintList(ColorStateList.valueOf(Color.BLACK)); - - ((FrameLayout.LayoutParams) ((ViewGroup) settings_button_container.getParent()).getLayoutParams()).setMarginEnd(0); + ImageView settings_icon = settings_button_container.findViewById(res.getIdentifier("icon", "id", mContext.getPackageName())); + settings_icon.setImageTintList(ColorStateList.valueOf(Color.BLACK)); - ViewGroup parent = (ViewGroup) settings_button_container.getParent(); - for (int i = 0; i < 3; i++) //Security + Foreground services containers - { - parent.getChildAt(i).setBackground(lightFooterShape.getConstantState().newDrawable().mutate()); - } + View pm_button_container = view.findViewById(res.getIdentifier("pm_lite", "id", mContext.getPackageName())); + ImageView pm_icon = pm_button_container.findViewById(res.getIdentifier("icon", "id", mContext.getPackageName())); + pm_icon.setImageTintList(ColorStateList.valueOf(Color.WHITE)); } catch (Throwable throwable) { log(TAG + throwable); } @@ -254,7 +274,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { hookAllMethods(QSIconViewImplClass, "updateIcon", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (lightQSHeaderEnabled && !getIsDark() && getIntField(param.args[1], "state") == STATE_ACTIVE) { + if (lightQSHeaderEnabled && !isDark && getIntField(param.args[1], "state") == STATE_ACTIVE) { try { ((ImageView) param.args[0]).setImageTintList(ColorStateList.valueOf(colorInactive)); } catch (Throwable throwable) { @@ -267,7 +287,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { hookAllMethods(QSIconViewImplClass, "setIcon", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) throws Throwable { - if (lightQSHeaderEnabled && !getIsDark()) { + if (lightQSHeaderEnabled && !isDark) { try { if (param.args[0] instanceof ImageView && getIntField(param.args[1], "state") == STATE_ACTIVE) { setObjectField(param.thisObject, "mTint", colorInactive); @@ -279,31 +299,6 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { } }); - // White QS Clock bug - hookAllMethods(QuickStatusBarHeaderClass, "onFinishInflate", new XC_MethodHook() { - @Override - protected void afterHookedMethod(MethodHookParam param) throws Throwable { - try { - mClockViewQSHeader = getObjectField(param.thisObject, "mClockView"); - } catch (Throwable ignored) { - } - } - }); - - // White QS Clock bug - hookAllMethods(ClockClass, "onColorsChanged", new XC_MethodHook() { - @Override - protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (lightQSHeaderEnabled && !SystemUtil.isDarkMode() && mClockViewQSHeader != null) { - try { - ((TextView) mClockViewQSHeader).setTextColor(Color.BLACK); - } catch (Throwable throwable) { - log(TAG + throwable); - } - } - } - }); - hookAllConstructors(CentralSurfacesImplClass, new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { @@ -314,7 +309,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { hookAllConstructors(QSTileViewImplClass, new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (!lightQSHeaderEnabled || wasDark) return; + if (!lightQSHeaderEnabled || isDark) return; try { setObjectField(param.thisObject, "colorLabelActive", Color.WHITE); @@ -327,23 +322,12 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { hookAllMethods(QSIconViewImplClass, "getIconColorForState", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) throws Throwable { - if (!wasDark && lightQSHeaderEnabled && ((boolean) param.args[1])) { - try { - param.setResult(Color.WHITE); - } catch (Throwable throwable) { - log(TAG + throwable); - } + if (!isDark && lightQSHeaderEnabled && ((boolean) param.args[1])) { + param.setResult(Color.WHITE); } } }); - hookAllMethods(CentralSurfacesImplClass, "updateTheme", new XC_MethodHook() { - @Override - protected void afterHookedMethod(MethodHookParam param) throws Throwable { - applyOverlays(false); - } - }); - try { mBehindColors = GradientColorsClass.getDeclaredConstructor().newInstance(); } catch (Throwable throwable) { @@ -368,16 +352,18 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { } }); - hookAllMethods(ScrimControllerClass, "updateThemeColors", new XC_MethodHook() { + hookAllMethods(CentralSurfacesImplClass, "updateTheme", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - calculateColors(); + applyOverlays(false); } }); hookAllMethods(ScrimControllerClass, "updateThemeColors", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { + calculateColors(); + if (!dualToneQSEnabled) return; try { @@ -474,11 +460,11 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { @Override protected void beforeHookedMethod(MethodHookParam param) throws Throwable { if (!lightQSHeaderEnabled) return; + param.setResult(Color.TRANSPARENT); } }); break; - case "UNLOCKED": hookAllMethods(constant.getClass(), "prepare", new XC_MethodHook() { @Override @@ -513,35 +499,44 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { } } }); - } private void applyOverlays(boolean force) throws Throwable { - boolean isDark = getIsDark(); + boolean isCurrentlyDark = SystemUtil.isDarkMode(); - if (isDark == wasDark && !force) return; - wasDark = isDark; + if (isCurrentlyDark == isDark && !force) return; + isDark = isCurrentlyDark; calculateColors(); Helpers.disableOverlay("IconifyComponentQSLT.overlay"); + Helpers.disableOverlay("IconifyComponentQSDT.overlay"); Thread.sleep(50); - if (lightQSHeaderEnabled && !isDark) { + if (lightQSHeaderEnabled && !isCurrentlyDark) { Helpers.enableOverlay("IconifyComponentQSLT.overlay"); } + + if (lightQSHeaderEnabled && dualToneQSEnabled) { + Helpers.enableOverlay("IconifyComponentQSDT.overlay"); + } } @SuppressLint("DiscouragedApi") private void calculateColors() { - if (!lightQSHeaderEnabled || wasDark) return; + if (!lightQSHeaderEnabled) return; try { - Resources res = mContext.getResources(); - colorInactive = res.getColor(res.getIdentifier("android:color/system_neutral1_10", "color", listenPackage), mContext.getTheme()); + if (unlockedScrimState != null) { + setObjectField(unlockedScrimState, "mBehindTint", Color.TRANSPARENT); + } - lightFooterShape.setTint(colorInactive); + if (!isDark) { + Resources res = mContext.getResources(); + colorActive = mContext.getColor(android.R.color.system_accent1_600); + colorInactive = res.getColor(res.getIdentifier("android:color/system_neutral1_10", "color", listenPackage), mContext.getTheme()); + } } catch (Throwable throwable) { log(TAG + throwable); } @@ -579,21 +574,6 @@ private void setHeaderComponentsColor(View mView, Object iconManager, Object bat } } - private boolean getIsDark() { - return (mContext.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_YES) == Configuration.UI_MODE_NIGHT_YES; - } - - private Drawable makeFooterShape() { - @SuppressLint("DiscouragedApi") int radius = mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("qs_security_footer_corner_radius", "dimen", mContext.getPackageName())); - float[] radiusF = new float[8]; - for (int i = 0; i < 8; i++) { - radiusF[i] = radius; - } - final ShapeDrawable result = new ShapeDrawable(new RoundRectShape(radiusF, null, null)); - result.getPaint().setStyle(Paint.Style.FILL); - return result; - } - @Override public boolean listensTo(String packageName) { return listenPackage.equals(packageName) && !HookEntry.isChildProcess && Build.VERSION.SDK_INT >= 33; diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/BootLoopProtector.java b/app/src/main/java/com/drdisagree/iconify/xposed/utils/BootLoopProtector.java new file mode 100644 index 000000000..06599180f --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/utils/BootLoopProtector.java @@ -0,0 +1,48 @@ +package com.drdisagree.iconify.xposed.utils; + +/* + * From AOSPMods + * https://github.com/siavash79/AOSPMods/blob/canary/app/src/main/java/sh/siava/AOSPMods/modpacks/utils/BootLoopProtector.java + */ + +import static com.drdisagree.iconify.config.XPrefs.Xprefs; + +import android.annotation.SuppressLint; + +import java.util.Calendar; + +public class BootLoopProtector { + + public static final String LOAD_TIME_KEY_KEY = "packageLastLoad_"; + public static final String PACKAGE_STRIKE_KEY_KEY = "packageStrike_"; + + @SuppressLint("ApplySharedPref") + public static boolean isBootLooped(String packageName) { + String loadTimeKey = String.format("%s%s", LOAD_TIME_KEY_KEY, packageName); + String strikeKey = String.format("%s%s", PACKAGE_STRIKE_KEY_KEY, packageName); + long currentTime = Calendar.getInstance().getTime().getTime(); + long lastLoadTime = Xprefs.getLong(loadTimeKey, 0); + int strikeCount = Xprefs.getInt(strikeKey, 0); + + if (currentTime - lastLoadTime > 40000) { + Xprefs.edit().putLong(loadTimeKey, currentTime).putInt(strikeKey, 0).commit(); + } else if (strikeCount >= 3) { + return true; + } else { + Xprefs.edit().putInt(strikeKey, ++strikeCount).commit(); + } + return false; + } + + @SuppressLint("ApplySharedPref") + public static void resetCounter(String packageName) { + try { + String loadTimeKey = String.format("%s%s", LOAD_TIME_KEY_KEY, packageName); + String strikeKey = String.format("%s%s", PACKAGE_STRIKE_KEY_KEY, packageName); + long currentTime = Calendar.getInstance().getTime().getTime(); + + Xprefs.edit().putLong(loadTimeKey, currentTime).putInt(strikeKey, 0).commit(); + } catch (Throwable ignored) { + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/SettingsLibUtils.java b/app/src/main/java/com/drdisagree/iconify/xposed/utils/SettingsLibUtils.java index f66a0fea4..dfb25cd07 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/utils/SettingsLibUtils.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/utils/SettingsLibUtils.java @@ -17,19 +17,21 @@ * along with this program. If not, see [http://www.gnu.org/licenses/]. */ +import static com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE; import static de.robv.android.xposed.XposedHelpers.callStaticMethod; import static de.robv.android.xposed.XposedHelpers.findClass; import android.content.Context; import android.content.res.ColorStateList; -public class SettingsLibUtils { - private static Class UtilsClass = null; +import com.drdisagree.iconify.xposed.HookEntry; +import com.drdisagree.iconify.xposed.ModPack; - public static void init(ClassLoader classLoader) { - if (UtilsClass == null) - UtilsClass = findClass("com.android.settingslib.Utils", classLoader); - } +import de.robv.android.xposed.callbacks.XC_LoadPackage; + +public class SettingsLibUtils extends ModPack { + private static final String listenPackage = SYSTEMUI_PACKAGE; + private static Class UtilsClass = null; public static ColorStateList getColorAttr(Context context, int resID) { return getColorAttr(resID, context); @@ -62,4 +64,22 @@ public static int getColorAttrDefaultColor(int resID, Context context) { } } } + + public SettingsLibUtils(Context context) { + super(context); + } + + @Override + public void updatePrefs(String... Key) { + } + + @Override + public boolean listensTo(String packageName) { + return listenPackage.equals(packageName) && !HookEntry.isChildProcess; + } + + @Override + public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable { + UtilsClass = findClass("com.android.settingslib.Utils", lpparam.classLoader); + } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.java b/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.java index 183741e78..9582c4c2f 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.java @@ -6,10 +6,13 @@ */ import android.annotation.SuppressLint; +import android.app.Application; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; +import android.os.Build; +import android.os.Process; import android.util.TypedValue; import androidx.annotation.AttrRes; @@ -64,4 +67,13 @@ public static int getColorResCompat(Context context, @AttrRes int id) { private boolean getIsDark() { return (mContext.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_YES) == Configuration.UI_MODE_NIGHT_YES; } + + public static void killSelf() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + BootLoopProtector.resetCounter(Process.myProcessName()); + } else { + BootLoopProtector.resetCounter(Application.getProcessName()); + } + Process.killProcess(Process.myPid()); + } } From 4b8df1e9e159a15a949985d7ad9bec437a3a777a Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 10 Aug 2023 15:29:06 +0600 Subject: [PATCH 045/215] Update QS Pixel Black Theme --- .../iconify/xposed/mods/QSBlackTheme.java | 118 +++--------------- 1 file changed, 14 insertions(+), 104 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSBlackTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSBlackTheme.java index 582f65062..870da7f8e 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSBlackTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSBlackTheme.java @@ -35,27 +35,18 @@ import android.annotation.SuppressLint; import android.content.Context; import android.content.res.ColorStateList; -import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Color; -import android.graphics.Paint; -import android.graphics.drawable.Drawable; -import android.graphics.drawable.ShapeDrawable; -import android.graphics.drawable.shapes.RoundRectShape; -import android.os.Build; import android.view.View; import android.view.ViewGroup; -import android.widget.FrameLayout; import android.widget.ImageView; -import android.widget.LinearLayout; import android.widget.TextView; import androidx.core.graphics.ColorUtils; import com.drdisagree.iconify.xposed.HookEntry; import com.drdisagree.iconify.xposed.ModPack; -import com.drdisagree.iconify.xposed.utils.Helpers; -import com.drdisagree.iconify.xposed.utils.SettingsLibUtils; +import com.drdisagree.iconify.xposed.utils.SystemUtil; import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.callbacks.XC_LoadPackage; @@ -68,17 +59,15 @@ public class QSBlackTheme extends ModPack { private static final String TAG = "Iconify - QSBlackTheme: "; private static boolean blackQSHeaderEnabled = false; private Object mBehindColors; - private boolean wasDark; + private boolean isDark; private Integer colorText = null; - private Drawable darkFooterShape = null; private Object mClockViewQSHeader = null; public QSBlackTheme(Context context) { super(context); if (!listensTo(context.getPackageName())) return; - darkFooterShape = makeFooterShape(); - wasDark = getIsDark(); + isDark = SystemUtil.isDarkMode(); } @Override @@ -87,17 +76,9 @@ public void updatePrefs(String... Key) { blackQSHeaderEnabled = Xprefs.getBoolean(BLACK_QSPANEL, false); - setBlackQSHeader(blackQSHeaderEnabled); - } - - public void setBlackQSHeader(boolean state) { - if (blackQSHeaderEnabled != state) { - blackQSHeaderEnabled = state; - - try { - applyOverlays(true); - } catch (Throwable ignored) { - } + try { + initColors(true); + } catch (Throwable ignored) { } } @@ -128,48 +109,14 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { }); try { //QPR1 - Class QSSecurityFooterClass = findClass("com.android.systemui.qs.QSSecurityFooter", lpparam.classLoader); Class QSFgsManagerFooterClass = findClass("com.android.systemui.qs.QSFgsManagerFooter", lpparam.classLoader); - Class FooterActionsControllerClass = findClass("com.android.systemui.qs.FooterActionsController", lpparam.classLoader); hookAllConstructors(QSFgsManagerFooterClass, new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (!wasDark && blackQSHeaderEnabled) { + if (!isDark && blackQSHeaderEnabled) { try { ((View) getObjectField(param.thisObject, "mNumberContainer")).getBackground().setTint(colorText); - ((View) getObjectField(param.thisObject, "mTextContainer")).setBackground(darkFooterShape.getConstantState().newDrawable().mutate()); //original has to be copied to new object otherwise will get affected by view changes - } catch (Throwable throwable) { - log(TAG + throwable); - } - } - } - }); - - hookAllConstructors(QSSecurityFooterClass, new XC_MethodHook() { - @Override - protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (!wasDark && blackQSHeaderEnabled) { - try { - ((View) getObjectField(param.thisObject, "mView")).setBackground(darkFooterShape.getConstantState().newDrawable().mutate()); - } catch (Throwable throwable) { - log(TAG + throwable); - } - } - } - }); - - hookAllConstructors(FooterActionsControllerClass, new XC_MethodHook() { - @SuppressLint("DiscouragedApi") - @Override - protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (!wasDark && blackQSHeaderEnabled) { - try { - Resources res = mContext.getResources(); - ViewGroup view = (ViewGroup) param.args[0]; - - View settings_button_container = view.findViewById(res.getIdentifier("settings_button_container", "id", mContext.getPackageName())); - ((LinearLayout.LayoutParams) ((ViewGroup) settings_button_container.getParent()).getLayoutParams()).setMarginEnd(0); } catch (Throwable throwable) { log(TAG + throwable); } @@ -222,14 +169,6 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { View settings_button_container = view.findViewById(res.getIdentifier("settings_button_container", "id", mContext.getPackageName())); ImageView icon = settings_button_container.findViewById(res.getIdentifier("icon", "id", mContext.getPackageName())); icon.setImageTintList(ColorStateList.valueOf(Color.WHITE)); - - ((FrameLayout.LayoutParams) ((ViewGroup) settings_button_container.getParent()).getLayoutParams()).setMarginEnd(0); - - ViewGroup parent = (ViewGroup) settings_button_container.getParent(); - for (int i = 0; i < 3; i++) //Security + Foreground services containers - { - parent.getChildAt(i).setBackground(darkFooterShape.getConstantState().newDrawable().mutate()); - } } catch (Throwable throwable) { log(TAG + throwable); } @@ -371,7 +310,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { hookAllConstructors(CentralSurfacesImplClass, new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - applyOverlays(true); + initColors(true); } }); @@ -412,7 +351,7 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { hookAllMethods(CentralSurfacesImplClass, "updateTheme", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - applyOverlays(false); + initColors(false); } }); @@ -585,24 +524,15 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { } } }); - } - private void applyOverlays(boolean force) throws Throwable { - boolean isDark = getIsDark(); + private void initColors(boolean force) throws Throwable { + boolean isDark = SystemUtil.isDarkMode(); - if (isDark == wasDark && !force) return; - wasDark = isDark; + if (isDark == this.isDark && !force) return; + this.isDark = isDark; calculateColors(); - - Helpers.disableOverlay("IconifyComponentQSLT.overlay"); - - Thread.sleep(50); - - if (blackQSHeaderEnabled && !isDark) { - Helpers.enableOverlay("IconifyComponentQSLT.overlay"); - } } @SuppressLint("DiscouragedApi") @@ -610,11 +540,6 @@ private void calculateColors() { try { Resources res = mContext.getResources(); colorText = res.getColor(res.getIdentifier("android:color/system_neutral1_900", "color", listenPackage), mContext.getTheme()); - int colorInactive = res.getColor(res.getIdentifier("android:color/system_neutral1_900", "color", listenPackage), mContext.getTheme()); - - if (!wasDark) { - darkFooterShape.setTint(colorInactive); - } } catch (Throwable throwable) { log(TAG + throwable); } @@ -652,23 +577,8 @@ private void setHeaderComponentsColor(View mView, Object iconManager, Object bat } } - private boolean getIsDark() { - return (mContext.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_YES) == Configuration.UI_MODE_NIGHT_YES; - } - - private Drawable makeFooterShape() { - @SuppressLint("DiscouragedApi") int radius = mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("qs_security_footer_corner_radius", "dimen", mContext.getPackageName())); - float[] radiusF = new float[8]; - for (int i = 0; i < 8; i++) { - radiusF[i] = radius; - } - final ShapeDrawable result = new ShapeDrawable(new RoundRectShape(radiusF, null, null)); - result.getPaint().setStyle(Paint.Style.FILL); - return result; - } - @Override public boolean listensTo(String packageName) { - return listenPackage.equals(packageName) && !HookEntry.isChildProcess && Build.VERSION.SDK_INT >= 33; + return listenPackage.equals(packageName) && !HookEntry.isChildProcess; } } \ No newline at end of file From 4e37c77424beda731521d61bd79e62bccd45f6ce Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 10 Aug 2023 16:07:55 +0600 Subject: [PATCH 046/215] Fix QS Fluid Theme colors for pixel roms --- .../iconify/xposed/mods/QSFluidTheme.java | 115 +++++++++++------- 1 file changed, 71 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java index 5a19f8d09..65caf48b2 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java @@ -17,7 +17,7 @@ import android.annotation.SuppressLint; import android.content.Context; import android.content.res.ColorStateList; -import android.content.res.Configuration; +import android.content.res.Resources; import android.content.res.XResources; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; @@ -26,9 +26,9 @@ import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.InsetDrawable; import android.graphics.drawable.LayerDrawable; -import android.os.Build; import android.util.TypedValue; import android.view.View; +import android.view.ViewGroup; import android.widget.Button; import android.widget.FrameLayout; import android.widget.ImageView; @@ -36,7 +36,7 @@ import com.drdisagree.iconify.xposed.HookEntry; import com.drdisagree.iconify.xposed.ModPack; -import com.drdisagree.iconify.xposed.utils.SettingsLibUtils; +import com.drdisagree.iconify.xposed.utils.SystemUtil; import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.callbacks.XC_InitPackageResources; @@ -56,16 +56,17 @@ public class QSFluidTheme extends ModPack { private static boolean fluidQsThemeEnabled = false; private static boolean fluidNotifEnabled = false; private static boolean fluidPowerMenuEnabled = false; - private boolean wasDark = getIsDark(); + private boolean wasDark = SystemUtil.isDarkMode(); + private XC_MethodHook.MethodHookParam QSTileViewImplParam = null; final Integer[] colorAccent = {mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_300", "color", listenPackage), mContext.getTheme())}; final Integer[] colorActiveAlpha = {Color.argb((int) (ACTIVE_ALPHA * 255), Color.red(colorAccent[0]), Color.green(colorAccent[0]), Color.blue(colorAccent[0]))}; - final Integer[] colorInactiveAlpha = {wasDark ? Color.parseColor("#0FFFFFFF") : Color.parseColor("#59FFFFFF")}; + final Integer[] colorInactiveAlpha = {null}; public QSFluidTheme(Context context) { super(context); if (!listensTo(context.getPackageName())) return; - wasDark = getIsDark(); + wasDark = SystemUtil.isDarkMode(); } @Override @@ -86,6 +87,7 @@ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { Class QsPanelClass = findClass(SYSTEMUI_PACKAGE + ".qs.QSPanel", lpparam.classLoader); Class QSTileViewImplClass = findClass(SYSTEMUI_PACKAGE + ".qs.tileimpl.QSTileViewImpl", lpparam.classLoader); Class QSIconViewImplClass = findClass(SYSTEMUI_PACKAGE + ".qs.tileimpl.QSIconViewImpl", lpparam.classLoader); + Class CentralSurfacesImplClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.phone.CentralSurfacesImpl", lpparam.classLoader); Class FooterViewClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.notification.row.FooterView", lpparam.classLoader); Class BrightnessSliderViewClass = findClass(SYSTEMUI_PACKAGE + ".settings.brightness.BrightnessSliderView", lpparam.classLoader); Class BrightnessControllerClass = findClass(SYSTEMUI_PACKAGE + ".settings.brightness.BrightnessController", lpparam.classLoader); @@ -94,21 +96,37 @@ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { Class ActivatableNotificationViewClass = findClass(SYSTEMUI_PACKAGE + ".statusbar.notification.row.ActivatableNotificationView", lpparam.classLoader); // Initialize resources and colors - initResources(); - hookAllMethods(QSTileViewImplClass, "init", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) { + QSTileViewImplParam = param; + if (!fluidQsThemeEnabled) return; initResources(); } }); + hookAllConstructors(CentralSurfacesImplClass, new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) { + initResources(); + } + }); + + hookAllMethods(CentralSurfacesImplClass, "updateTheme", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) { + initResources(); + } + }); + // QS tile color hookAllMethods(QSTileViewImplClass, "getBackgroundColorForState", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) { + QSTileViewImplParam = param; + if (!fluidQsThemeEnabled) return; try { @@ -118,6 +136,8 @@ protected void beforeHookedMethod(MethodHookParam param) { Integer colorInactive = (Integer) param.getResult(); if (colorInactive != null) { + colorInactiveAlpha[0] = changeAlpha(colorInactive, INACTIVE_ALPHA); + if ((int) param.args[0] == STATE_INACTIVE) { param.setResult(changeAlpha(colorInactive, INACTIVE_ALPHA)); } else if ((int) param.args[0] == STATE_UNAVAILABLE) { @@ -177,6 +197,35 @@ protected void beforeHookedMethod(MethodHookParam param) { } }); + try { + Class QSContainerImplClass = findClass("com.android.systemui.qs.QSContainerImpl", lpparam.classLoader); + + hookAllMethods(QSContainerImplClass, "updateResources", new XC_MethodHook() { + @SuppressLint("DiscouragedApi") + @Override + protected void afterHookedMethod(MethodHookParam param) { + if (!fluidQsThemeEnabled) return; + + try { + Resources res = mContext.getResources(); + ViewGroup view = (ViewGroup) param.thisObject; + + View settings_button_container = view.findViewById(res.getIdentifier("settings_button_container", "id", mContext.getPackageName())); + settings_button_container.getBackground().setAlpha((int) (INACTIVE_ALPHA * 255)); + + View pm_button_container = view.findViewById(res.getIdentifier("pm_lite", "id", mContext.getPackageName())); + pm_button_container.getBackground().setTint(colorActiveAlpha[0]); + + ImageView pm_icon = pm_button_container.findViewById(res.getIdentifier("icon", "id", mContext.getPackageName())); + pm_icon.setImageTintList(ColorStateList.valueOf(colorAccent[0])); + } catch (Throwable throwable) { + log(TAG + throwable); + } + } + }); + } catch (Throwable ignored) { + } + // Brightness slider and auto brightness color hookAllMethods(BrightnessSliderViewClass, "onFinishInflate", new XC_MethodHook() { @Override @@ -284,6 +333,8 @@ protected void afterHookedMethod(MethodHookParam param) { hookAllMethods(QSTileViewImplClass, "getLabelColorForState", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) { + QSTileViewImplParam = param; + if (!fluidQsThemeEnabled) return; try { @@ -300,6 +351,8 @@ protected void beforeHookedMethod(MethodHookParam param) { hookAllMethods(QSTileViewImplClass, "getSecondaryLabelColorForState", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) { + QSTileViewImplParam = param; + if (!fluidQsThemeEnabled) return; try { @@ -316,6 +369,8 @@ protected void beforeHookedMethod(MethodHookParam param) { hookAllMethods(QSTileViewImplClass, "updateResources", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) { + QSTileViewImplParam = param; + if (!fluidQsThemeEnabled) return; initResources(); @@ -323,7 +378,7 @@ protected void beforeHookedMethod(MethodHookParam param) { try { setObjectField(param.thisObject, "colorActive", changeAlpha(colorAccent[0], ACTIVE_ALPHA)); setObjectField(param.thisObject, "colorInactive", changeAlpha((Integer) getObjectField(param.thisObject, "colorInactive"), INACTIVE_ALPHA)); - setObjectField(param.thisObject, "colorUnavailable", changeAlpha((Integer) getObjectField(param.thisObject, "colorUnavailable"), UNAVAILABLE_ALPHA)); + setObjectField(param.thisObject, "colorUnavailable", changeAlpha((Integer) getObjectField(param.thisObject, "colorInactive"), UNAVAILABLE_ALPHA)); setObjectField(param.thisObject, "colorLabelActive", colorAccent[0]); setObjectField(param.thisObject, "colorSecondaryLabelActive", colorAccent[0]); } catch (Throwable throwable) { @@ -366,18 +421,18 @@ protected void afterHookedMethod(MethodHookParam param) { }); } - private boolean getIsDark() { - return (mContext.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_YES) == Configuration.UI_MODE_NIGHT_YES; - } - private void initColors() { colorAccent[0] = mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_300", "color", listenPackage), mContext.getTheme()); colorActiveAlpha[0] = Color.argb((int) (ACTIVE_ALPHA * 255), Color.red(colorAccent[0]), Color.green(colorAccent[0]), Color.blue(colorAccent[0])); - colorInactiveAlpha[0] = wasDark ? Color.parseColor("#0FFFFFFF") : Color.parseColor("#59FFFFFF"); + if (QSTileViewImplParam != null) { + colorInactiveAlpha[0] = (Integer) getObjectField(QSTileViewImplParam.thisObject, "colorInactive"); + } else { + colorInactiveAlpha[0] = colorInactiveAlpha[0] == null ? (wasDark ? Color.parseColor("#0FFFFFFF") : Color.parseColor("#59FFFFFF")) : colorInactiveAlpha[0]; + } } private void initResources() { - boolean isDark = getIsDark(); + boolean isDark = SystemUtil.isDarkMode(); if (isDark != wasDark) { wasDark = isDark; @@ -404,34 +459,6 @@ public Drawable newDrawable(XResources res, int id) { } catch (Throwable ignored) { } - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_action_circle", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setShape(GradientDrawable.RECTANGLE); - gradientDrawable.setColor(colorInactiveAlpha[0]); - gradientDrawable.setCornerRadius(notifCornerRadius); - return new InsetDrawable(gradientDrawable, px2dp4, px2dp4, px2dp4, px2dp4); - } - }); - } catch (Throwable ignored) { - } - - try { - ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_action_circle_color", new XResources.DrawableLoader() { - @Override - public Drawable newDrawable(XResources res, int id) { - GradientDrawable gradientDrawable = new GradientDrawable(); - gradientDrawable.setShape(GradientDrawable.RECTANGLE); - gradientDrawable.setColor(colorActiveAlpha[0]); - gradientDrawable.setCornerRadius(notifCornerRadius); - return new InsetDrawable(gradientDrawable, px2dp4, px2dp4, px2dp4, px2dp4); - } - }); - } catch (Throwable ignored) { - } - try { ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "qs_footer_action_chip_background", new XResources.DrawableLoader() { @Override @@ -506,6 +533,6 @@ private int changeAlpha(int color, int alpha) { @Override public boolean listensTo(String packageName) { - return listenPackage.equals(packageName) && !HookEntry.isChildProcess && Build.VERSION.SDK_INT >= 33; + return listenPackage.equals(packageName) && !HookEntry.isChildProcess; } } \ No newline at end of file From 95bd595721925a122b684661fd8a3d54e2edb7f6 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 10 Aug 2023 16:45:29 +0600 Subject: [PATCH 047/215] Fluid QS Theme: Take care of InsetDrawable --- .../com/drdisagree/iconify/xposed/mods/QSFluidTheme.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java index 65caf48b2..b16c97e43 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java @@ -236,8 +236,13 @@ protected void afterHookedMethod(MethodHookParam param) { SeekBar mSlider = (SeekBar) getObjectField(param.thisObject, "mSlider"); LayerDrawable progress = (LayerDrawable) mSlider.getProgressDrawable(); - GradientDrawable backgroundSlider = (GradientDrawable) progress.findDrawableByLayerId(android.R.id.background); - backgroundSlider.setAlpha((int) (INACTIVE_ALPHA * 255)); + try { + GradientDrawable backgroundSlider = (GradientDrawable) progress.findDrawableByLayerId(android.R.id.background); + backgroundSlider.setAlpha((int) (INACTIVE_ALPHA * 255)); + } catch (Throwable ignored) { + InsetDrawable backgroundSlider = (InsetDrawable) progress.findDrawableByLayerId(android.R.id.background); + backgroundSlider.setAlpha((int) (INACTIVE_ALPHA * 255)); + } DrawableWrapper progressSlider = (DrawableWrapper) progress.findDrawableByLayerId(android.R.id.progress); LayerDrawable actualProgressSlider = (LayerDrawable) progressSlider.getDrawable(); From 29e88ec2a26d466b06f9c4c9bf248f8e0dde3891 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 10 Aug 2023 18:45:33 +0600 Subject: [PATCH 048/215] Fluid QS Theme: Fix power menu for pixel roms --- .../iconify/xposed/mods/QSFluidTheme.java | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java index b16c97e43..5776c3b45 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java @@ -124,7 +124,7 @@ protected void afterHookedMethod(MethodHookParam param) { // QS tile color hookAllMethods(QSTileViewImplClass, "getBackgroundColorForState", new XC_MethodHook() { @Override - protected void beforeHookedMethod(MethodHookParam param) { + protected void afterHookedMethod(MethodHookParam param) { QSTileViewImplParam = param; if (!fluidQsThemeEnabled) return; @@ -371,6 +371,25 @@ protected void beforeHookedMethod(MethodHookParam param) { }); // For LineageOS based roms + hookAllConstructors(QSTileViewImplClass, new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) { + QSTileViewImplParam = param; + + if (!fluidQsThemeEnabled) return; + + try { + setObjectField(param.thisObject, "colorActive", changeAlpha(colorAccent[0], ACTIVE_ALPHA)); + setObjectField(param.thisObject, "colorInactive", changeAlpha((Integer) getObjectField(param.thisObject, "colorInactive"), INACTIVE_ALPHA)); + setObjectField(param.thisObject, "colorUnavailable", changeAlpha((Integer) getObjectField(param.thisObject, "colorInactive"), UNAVAILABLE_ALPHA)); + setObjectField(param.thisObject, "colorLabelActive", colorAccent[0]); + setObjectField(param.thisObject, "colorSecondaryLabelActive", colorAccent[0]); + } catch (Throwable throwable) { + log(TAG + throwable); + } + } + }); + hookAllMethods(QSTileViewImplClass, "updateResources", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) { @@ -427,7 +446,7 @@ protected void afterHookedMethod(MethodHookParam param) { } private void initColors() { - colorAccent[0] = mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_300", "color", listenPackage), mContext.getTheme()); + colorAccent[0] = mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_300", "color", mContext.getPackageName()), mContext.getTheme()); colorActiveAlpha[0] = Color.argb((int) (ACTIVE_ALPHA * 255), Color.red(colorAccent[0]), Color.green(colorAccent[0]), Color.blue(colorAccent[0])); if (QSTileViewImplParam != null) { colorInactiveAlpha[0] = (Integer) getObjectField(QSTileViewImplParam.thisObject, "colorInactive"); @@ -494,12 +513,13 @@ public Drawable newDrawable(XResources res, int id) { if (fluidPowerMenuEnabled) { try { + int color = mContext.getResources().getColor(mContext.getResources().getIdentifier("global_actions_lite_background", "color", mContext.getPackageName()), mContext.getTheme()); ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "global_actions_lite_background", new XResources.DrawableLoader() { @Override public Drawable newDrawable(XResources res, int id) { GradientDrawable gradientDrawable = new GradientDrawable(); gradientDrawable.setShape(GradientDrawable.RECTANGLE); - gradientDrawable.setColor(colorInactiveAlpha[0]); + gradientDrawable.setColor(changeAlpha(color, INACTIVE_ALPHA)); gradientDrawable.setCornerRadius(notifCornerRadius); return gradientDrawable; } @@ -508,12 +528,13 @@ public Drawable newDrawable(XResources res, int id) { } try { + int color = mContext.getResources().getColor(mContext.getResources().getIdentifier("global_actions_lite_button_background", "color", mContext.getPackageName()), mContext.getTheme()); ourResparam.res.setReplacement(mContext.getPackageName(), "drawable", "global_actions_lite_button", new XResources.DrawableLoader() { @Override public Drawable newDrawable(XResources res, int id) { GradientDrawable gradientDrawable = new GradientDrawable(); gradientDrawable.setShape(GradientDrawable.OVAL); - gradientDrawable.setColor(colorInactiveAlpha[0]); + gradientDrawable.setColor(changeAlpha(color, INACTIVE_ALPHA)); return gradientDrawable; } }); From b732fc0fbb3229e64801e0da4cfaf135efdcfcbf Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 10 Aug 2023 19:50:11 +0600 Subject: [PATCH 049/215] Xposed performance improvement --- .../drdisagree/iconify/xposed/EntryList.java | 48 +++++++++++++------ .../drdisagree/iconify/xposed/HookEntry.java | 2 +- .../iconify/xposed/mods/QSLightTheme.java | 3 +- .../iconify/xposed/mods/QSLightThemeA12.java | 3 +- 4 files changed, 37 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.java b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.java index f0d29d339..c8b90e7ea 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.java @@ -17,6 +17,11 @@ * along with this program. If not, see [http://www.gnu.org/licenses/]. */ +import static com.drdisagree.iconify.common.Const.PIXEL_LAUNCHER_PACKAGE; +import static com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE; + +import android.os.Build; + import com.drdisagree.iconify.xposed.mods.BackgroundChip; import com.drdisagree.iconify.xposed.mods.BatteryStyleManager; import com.drdisagree.iconify.xposed.mods.HeaderClock; @@ -36,23 +41,38 @@ public class EntryList { - public static ArrayList> getEntries() { + public static ArrayList> getEntries(String packageName) { ArrayList> modPacks = new ArrayList<>(); modPacks.add(SettingsLibUtils.class); - modPacks.add(BackgroundChip.class); - modPacks.add(HeaderClock.class); - modPacks.add(HeaderImage.class); - modPacks.add(IconUpdater.class); - modPacks.add(LockscreenClock.class); - modPacks.add(Miscellaneous.class); - modPacks.add(QSTransparency.class); - modPacks.add(QuickSettings.class); - modPacks.add(QSLightTheme.class); - modPacks.add(QSLightThemeA12.class); - modPacks.add(QSBlackTheme.class); - modPacks.add(QSFluidTheme.class); - modPacks.add(BatteryStyleManager.class); + + switch (packageName) { + case SYSTEMUI_PACKAGE: + if (!HookEntry.isChildProcess) { + modPacks.add(BackgroundChip.class); + modPacks.add(HeaderClock.class); + modPacks.add(HeaderImage.class); + modPacks.add(LockscreenClock.class); + modPacks.add(Miscellaneous.class); + modPacks.add(QSBlackTheme.class); + modPacks.add(QSFluidTheme.class); + modPacks.add(QSTransparency.class); + modPacks.add(QuickSettings.class); + modPacks.add(BatteryStyleManager.class); + } + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + modPacks.add(QSLightTheme.class); + } + + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { + modPacks.add(QSLightThemeA12.class); + } + break; + case PIXEL_LAUNCHER_PACKAGE: + modPacks.add(IconUpdater.class); + break; + } return modPacks; } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.java b/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.java index 8a5141f7b..68cb99cb5 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.java @@ -64,7 +64,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { XPrefs.loadEverything(mContext.getPackageName()); } - for (Class mod : EntryList.getEntries()) { + for (Class mod : EntryList.getEntries(lpparam.packageName)) { try { ModPack instance = ((ModPack) mod.getConstructor(Context.class).newInstance(mContext)); if (!instance.listensTo(lpparam.packageName)) continue; diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightTheme.java index 265a77d26..c9dea3a9a 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightTheme.java @@ -39,7 +39,6 @@ import android.content.res.ColorStateList; import android.content.res.Resources; import android.graphics.Color; -import android.os.Build; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; @@ -576,6 +575,6 @@ private void setHeaderComponentsColor(View mView, Object iconManager, Object bat @Override public boolean listensTo(String packageName) { - return listenPackage.equals(packageName) && !HookEntry.isChildProcess && Build.VERSION.SDK_INT >= 33; + return listenPackage.equals(packageName) && !HookEntry.isChildProcess; } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightThemeA12.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightThemeA12.java index 5f3c0f21a..2cff9d815 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightThemeA12.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSLightThemeA12.java @@ -40,7 +40,6 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Color; -import android.os.Build; import androidx.core.graphics.ColorUtils; @@ -315,6 +314,6 @@ private boolean getIsDark() { @Override public boolean listensTo(String packageName) { - return listenPackage.equals(packageName) && !HookEntry.isChildProcess && Build.VERSION.SDK_INT < 33; + return listenPackage.equals(packageName) && !HookEntry.isChildProcess; } } \ No newline at end of file From 542291d93151fa61f5bad4d403fdf1baed14cd59 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 10 Aug 2023 19:58:38 +0600 Subject: [PATCH 050/215] QS Fluid Theme: Bring back old brightness bar --- .../iconify/xposed/mods/QSFluidTheme.java | 87 ++++++++++++++--- .../utils/RoundedCornerProgressDrawable.kt | 94 +++++++++++++++++++ 2 files changed, 166 insertions(+), 15 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/utils/RoundedCornerProgressDrawable.kt diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java index 5776c3b45..3d4f987ec 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java @@ -5,7 +5,9 @@ import static com.drdisagree.iconify.common.Preferences.FLUID_POWERMENU_TRANSPARENCY; import static com.drdisagree.iconify.common.Preferences.FLUID_QSPANEL; import static com.drdisagree.iconify.config.XPrefs.Xprefs; +import static com.drdisagree.iconify.xposed.HookRes.modRes; import static com.drdisagree.iconify.xposed.HookRes.resparams; +import static com.drdisagree.iconify.xposed.utils.SettingsLibUtils.getColorAttr; import static de.robv.android.xposed.XposedBridge.hookAllConstructors; import static de.robv.android.xposed.XposedBridge.hookAllMethods; import static de.robv.android.xposed.XposedBridge.log; @@ -26,7 +28,10 @@ import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.InsetDrawable; import android.graphics.drawable.LayerDrawable; +import android.graphics.drawable.ShapeDrawable; +import android.graphics.drawable.shapes.RoundRectShape; import android.util.TypedValue; +import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.Button; @@ -34,8 +39,13 @@ import android.widget.ImageView; import android.widget.SeekBar; +import androidx.appcompat.content.res.AppCompatResources; +import androidx.core.content.res.ResourcesCompat; + +import com.drdisagree.iconify.R; import com.drdisagree.iconify.xposed.HookEntry; import com.drdisagree.iconify.xposed.ModPack; +import com.drdisagree.iconify.xposed.utils.RoundedCornerProgressDrawable; import com.drdisagree.iconify.xposed.utils.SystemUtil; import de.robv.android.xposed.XC_MethodHook; @@ -234,25 +244,16 @@ protected void afterHookedMethod(MethodHookParam param) { try { SeekBar mSlider = (SeekBar) getObjectField(param.thisObject, "mSlider"); - LayerDrawable progress = (LayerDrawable) mSlider.getProgressDrawable(); - - try { - GradientDrawable backgroundSlider = (GradientDrawable) progress.findDrawableByLayerId(android.R.id.background); - backgroundSlider.setAlpha((int) (INACTIVE_ALPHA * 255)); - } catch (Throwable ignored) { - InsetDrawable backgroundSlider = (InsetDrawable) progress.findDrawableByLayerId(android.R.id.background); - backgroundSlider.setAlpha((int) (INACTIVE_ALPHA * 255)); - } + mSlider.setProgressDrawable(createBrightnessBackgroundDrawable(mContext)); + LayerDrawable progress = (LayerDrawable) mSlider.getProgressDrawable(); DrawableWrapper progressSlider = (DrawableWrapper) progress.findDrawableByLayerId(android.R.id.progress); - LayerDrawable actualProgressSlider = (LayerDrawable) progressSlider.getDrawable(); - actualProgressSlider.setTintList(ColorStateList.valueOf(colorAccent[0])); - actualProgressSlider.setAlpha((int) (ACTIVE_ALPHA * 255)); try { + LayerDrawable actualProgressSlider = (LayerDrawable) progressSlider.getDrawable(); Drawable mBrightnessIcon = actualProgressSlider.findDrawableByLayerId(mContext.getResources().getIdentifier("slider_icon", "id", mContext.getPackageName())); - mBrightnessIcon.setTintList(ColorStateList.valueOf(colorAccent[0])); - mBrightnessIcon.setAlpha(255); + mBrightnessIcon.setTintList(ColorStateList.valueOf(Color.TRANSPARENT)); + mBrightnessIcon.setAlpha(0); } catch (Throwable ignored) { } } catch (Throwable throwable) { @@ -449,7 +450,7 @@ private void initColors() { colorAccent[0] = mContext.getResources().getColor(mContext.getResources().getIdentifier("android:color/system_accent1_300", "color", mContext.getPackageName()), mContext.getTheme()); colorActiveAlpha[0] = Color.argb((int) (ACTIVE_ALPHA * 255), Color.red(colorAccent[0]), Color.green(colorAccent[0]), Color.blue(colorAccent[0])); if (QSTileViewImplParam != null) { - colorInactiveAlpha[0] = (Integer) getObjectField(QSTileViewImplParam.thisObject, "colorInactive"); + colorInactiveAlpha[0] = changeAlpha((Integer) getObjectField(QSTileViewImplParam.thisObject, "colorInactive"), INACTIVE_ALPHA); } else { colorInactiveAlpha[0] = colorInactiveAlpha[0] == null ? (wasDark ? Color.parseColor("#0FFFFFFF") : Color.parseColor("#59FFFFFF")) : colorInactiveAlpha[0]; } @@ -557,6 +558,62 @@ private int changeAlpha(int color, int alpha) { return Color.argb(alpha, red, green, blue); } + @SuppressWarnings("SameParameterValue") + private static float dpToPx(Context context, int dp) { + return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics()); + } + + private LayerDrawable createBrightnessBackgroundDrawable(Context context) { + Resources res = context.getResources(); + int cornerRadius = context.getResources().getDimensionPixelSize(res.getIdentifier("rounded_slider_corner_radius", "dimen", context.getPackageName())); + int height = context.getResources().getDimensionPixelSize(res.getIdentifier("rounded_slider_height", "dimen", context.getPackageName())); + int startPadding = (int) dpToPx(context, 15); + int endPadding = (int) dpToPx(context, 15); + + // Create the background shape + float[] radiusF = new float[8]; + for (int i = 0; i < 8; i++) { + radiusF[i] = cornerRadius; + } + ShapeDrawable backgroundShape = new ShapeDrawable(new RoundRectShape(radiusF, null, null)); + backgroundShape.setIntrinsicHeight(height); + + @SuppressLint("DiscouragedApi") ColorStateList states = getColorAttr(mContext.getResources().getIdentifier("attr/offStateColor", "attr", mContext.getPackageName()), mContext); + if (states != null) { + backgroundShape.getPaint().setColor(states.getDefaultColor()); + } else { + backgroundShape.getPaint().setColor(colorInactiveAlpha[0]); + } + + // Create the progress drawable + RoundedCornerProgressDrawable progressDrawable = null; + try { + progressDrawable = new RoundedCornerProgressDrawable(AppCompatResources.getDrawable(context, res.getIdentifier("brightness_progress_full_drawable", "drawable", context.getPackageName()))); + progressDrawable.setAlpha((int) (ACTIVE_ALPHA * 255)); + } catch (Throwable ignored) { + } + + // Create the start and end drawables + Drawable startDrawable = ResourcesCompat.getDrawable(modRes, R.drawable.ic_brightness_low, context.getTheme()); + Drawable endDrawable = ResourcesCompat.getDrawable(modRes, R.drawable.ic_brightness_full, context.getTheme()); + if (startDrawable != null && endDrawable != null) { + startDrawable.setTint(colorAccent[0]); + endDrawable.setTint(colorAccent[0]); + } + + // Create the layer drawable + Drawable[] layers = {backgroundShape, progressDrawable, startDrawable, endDrawable}; + LayerDrawable layerDrawable = new LayerDrawable(layers); + layerDrawable.setId(0, android.R.id.background); + layerDrawable.setId(1, android.R.id.progress); + layerDrawable.setLayerGravity(2, Gravity.START | Gravity.CENTER_VERTICAL); + layerDrawable.setLayerGravity(3, Gravity.END | Gravity.CENTER_VERTICAL); + layerDrawable.setLayerInsetStart(2, startPadding); + layerDrawable.setLayerInsetEnd(3, endPadding); + + return layerDrawable; + } + @Override public boolean listensTo(String packageName) { return listenPackage.equals(packageName) && !HookEntry.isChildProcess; diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/RoundedCornerProgressDrawable.kt b/app/src/main/java/com/drdisagree/iconify/xposed/utils/RoundedCornerProgressDrawable.kt new file mode 100644 index 000000000..01bbed766 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/utils/RoundedCornerProgressDrawable.kt @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.drdisagree.iconify.xposed.utils + +import android.content.pm.ActivityInfo +import android.content.res.Resources +import android.graphics.Rect +import android.graphics.drawable.Drawable +import android.graphics.drawable.DrawableWrapper +import android.graphics.drawable.InsetDrawable + +/** + * [DrawableWrapper] to use in the progress of a slider. + * + * This drawable is used to change the bounds of the enclosed drawable depending on the level to + * simulate a sliding progress, instead of using clipping or scaling. That way, the shape of the + * edges is maintained. + * + * Meant to be used with a rounded ends background, it will also prevent deformation when the slider + * is meant to be smaller than the rounded corner. The background should have rounded corners that + * are half of the height. + */ +class RoundedCornerProgressDrawable @JvmOverloads constructor( + drawable: Drawable? = null +) : InsetDrawable(drawable, 0) { + + companion object { + private const val MAX_LEVEL = 10000 // Taken from Drawable + } + + override fun onLayoutDirectionChanged(layoutDirection: Int): Boolean { + onLevelChange(level) + return super.onLayoutDirectionChanged(layoutDirection) + } + + override fun onBoundsChange(bounds: Rect) { + super.onBoundsChange(bounds) + onLevelChange(level) + } + + override fun onLevelChange(level: Int): Boolean { + val db = drawable?.bounds!! + // On 0, the width is bounds.height (a circle), and on MAX_LEVEL, the width is bounds.width + val width = bounds.height() + (bounds.width() - bounds.height()) * level / MAX_LEVEL + drawable?.setBounds(bounds.left, db.top, bounds.left + width, db.bottom) + return super.onLevelChange(level) + } + + override fun getConstantState(): ConstantState { + // This should not be null as it was created with a state in the constructor. + return RoundedCornerState(super.getConstantState()!!) + } + + override fun getChangingConfigurations(): Int { + return super.getChangingConfigurations() or ActivityInfo.CONFIG_DENSITY + } + + override fun canApplyTheme(): Boolean { + return (drawable?.canApplyTheme() ?: false) || super.canApplyTheme() + } + + private class RoundedCornerState(private val wrappedState: ConstantState) : ConstantState() { + override fun newDrawable(): Drawable { + return newDrawable(null, null) + } + + override fun newDrawable(res: Resources?, theme: Resources.Theme?): Drawable { + val wrapper = wrappedState.newDrawable(res, theme) as DrawableWrapper + return RoundedCornerProgressDrawable(wrapper.drawable) + } + + override fun getChangingConfigurations(): Int { + return wrappedState.changingConfigurations + } + + override fun canApplyTheme(): Boolean { + return true + } + } +} \ No newline at end of file From 1342a2d0b71f280e5157f6d1080e885cf762f973 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 11 Aug 2023 01:20:51 +0600 Subject: [PATCH 051/215] Battery Style Manager: Improve null battery initialization --- .../xposed/mods/BatteryStyleManager.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java index 5b9223475..1a597829e 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/BatteryStyleManager.java @@ -186,7 +186,9 @@ public void updatePrefs(String... Key) { if (Xprefs == null) return; int batteryStyle = Xprefs.getInt(CUSTOM_BATTERY_STYLE, 0); - customBatteryEnabled = batteryStyle != BATTERY_STYLE_DEFAULT && batteryStyle != BATTERY_STYLE_DEFAULT_LANDSCAPE && batteryStyle != BATTERY_STYLE_DEFAULT_RLANDSCAPE; + customBatteryEnabled = batteryStyle != BATTERY_STYLE_DEFAULT + && batteryStyle != BATTERY_STYLE_DEFAULT_LANDSCAPE + && batteryStyle != BATTERY_STYLE_DEFAULT_RLANDSCAPE; customBatteryWidth = Xprefs.getInt(CUSTOM_BATTERY_WIDTH, 20); customBatteryHeight = Xprefs.getInt(CUSTOM_BATTERY_HEIGHT, 20); customBatteryMargin = Xprefs.getInt(CUSTOM_BATTERY_MARGIN, 6); @@ -290,7 +292,9 @@ protected void afterHookedMethod(MethodHookParam param) { @Override protected void afterHookedMethod(MethodHookParam param) { int level = getIntField(param.thisObject, "mLevel"); - boolean charging = getBooleanField(param.thisObject, "mPluggedIn") || getBooleanField(param.thisObject, "mCharging") || getBooleanField(param.thisObject, "mWirelessCharging"); + boolean charging = getBooleanField(param.thisObject, "mPluggedIn") + || getBooleanField(param.thisObject, "mCharging") + || getBooleanField(param.thisObject, "mWirelessCharging"); boolean powerSave = getBooleanField(param.thisObject, "mPowerSave"); if (!customBatteryEnabled) return; @@ -345,9 +349,7 @@ public void onViewDetachedFromWindow(@NonNull View v) { protected void afterHookedMethod(MethodHookParam param) { ((View) param.thisObject).addOnAttachStateChangeListener(listener); - ImageView mBatteryIconView = (ImageView) getObjectField(param.thisObject, "mBatteryIconView"); - initBatteryIfNull(param, mBatteryIconView); - mBatteryIconView = (ImageView) getObjectField(param.thisObject, "mBatteryIconView"); + ImageView mBatteryIconView = initBatteryIfNull(param, (ImageView) getObjectField(param.thisObject, "mBatteryIconView")); if (customBatteryEnabled || BatteryStyle == BATTERY_STYLE_DEFAULT_LANDSCAPE || BatteryStyle == BATTERY_STYLE_DEFAULT_RLANDSCAPE) { mBatteryIconView.setRotation(batteryRotation); @@ -356,6 +358,7 @@ protected void afterHookedMethod(MethodHookParam param) { if (!customBatteryEnabled) return; BatteryDrawable mBatteryDrawable = getNewDrawable(mContext); + if (mBatteryDrawable != null) { setAdditionalInstanceField(param.thisObject, "mBatteryDrawable", mBatteryDrawable); mBatteryIconView.setImageDrawable(mBatteryDrawable); @@ -479,9 +482,10 @@ private void updateBatteryResources(Context context, XC_MethodHook.MethodHookPar } @SuppressLint("DiscouragedApi") - private void initBatteryIfNull(XC_MethodHook.MethodHookParam param, ImageView mBatteryIconView) { + private ImageView initBatteryIfNull(XC_MethodHook.MethodHookParam param, ImageView mBatteryIconView) { if (mBatteryIconView == null) { mBatteryIconView = new ImageView(mContext); + try { mBatteryIconView.setImageDrawable((Drawable) getObjectField(param.thisObject, "mAccessorizedDrawable")); } catch (Throwable throwable) { @@ -491,15 +495,19 @@ private void initBatteryIfNull(XC_MethodHook.MethodHookParam param, ImageView mB mBatteryIconView.setImageDrawable((Drawable) getObjectField(param.thisObject, "mDrawable")); } } + final ViewGroup.MarginLayoutParams mlp = new ViewGroup.MarginLayoutParams(mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("status_bar_battery_icon_width", "dimen", mContext.getPackageName())), mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("status_bar_battery_icon_height", "dimen", mContext.getPackageName()))); mlp.setMargins(0, 0, 0, mContext.getResources().getDimensionPixelOffset(mContext.getResources().getIdentifier("battery_margin_bottom", "dimen", mContext.getPackageName()))); setObjectField(param.thisObject, "mBatteryIconView", mBatteryIconView); callMethod(param.thisObject, "addView", mBatteryIconView, mlp); } + + return mBatteryIconView; } private BatteryDrawable getNewDrawable(Context context) { BatteryDrawable mBatteryDrawable = null; + switch (BatteryStyle) { case BATTERY_STYLE_DEFAULT: case BATTERY_STYLE_DEFAULT_RLANDSCAPE: From 7a9019bec56527f0700962a330bc0827b0073aa0 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 11 Aug 2023 01:37:55 +0600 Subject: [PATCH 052/215] Header Clock: Update style 8 size --- .../iconify/ui/views/HeaderClockStyles.java | 10 +++++----- .../drdisagree/iconify/xposed/mods/HeaderClock.java | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/views/HeaderClockStyles.java b/app/src/main/java/com/drdisagree/iconify/ui/views/HeaderClockStyles.java index 393887696..961ccee12 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/views/HeaderClockStyles.java +++ b/app/src/main/java/com/drdisagree/iconify/ui/views/HeaderClockStyles.java @@ -414,8 +414,8 @@ public static LinearLayout initHeaderClockStyle(Context mContext, int style) { case 8: final TextClock clock8 = new TextClock(mContext); clock8.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); - clock8.setFormat12Hour("hh:mm"); - clock8.setFormat24Hour("HH:mm"); + clock8.setFormat12Hour("h:mm"); + clock8.setFormat24Hour("H:mm"); clock8.setTextColor(forceWhiteText ? mContext.getResources().getColor(android.R.color.white, mContext.getTheme()) : SystemUtil.getColorResCompat(mContext, android.R.attr.textColorPrimary)); clock8.setTextSize(TypedValue.COMPLEX_UNIT_SP, 44 * textScaling); clock8.setTypeface(clock8.getTypeface(), Typeface.BOLD); @@ -424,8 +424,8 @@ public static LinearLayout initHeaderClockStyle(Context mContext, int style) { final TextClock clockOverlay8 = new TextClock(mContext); clockOverlay8.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); - clockOverlay8.setFormat12Hour("hh"); - clockOverlay8.setFormat24Hour("HH"); + clockOverlay8.setFormat12Hour("h"); + clockOverlay8.setFormat24Hour("H"); clockOverlay8.setTextColor(mContext.getResources().getColor(android.R.color.holo_blue_light, mContext.getTheme())); clockOverlay8.setTextSize(TypedValue.COMPLEX_UNIT_SP, 44 * textScaling); clockOverlay8.setTypeface(clockOverlay8.getTypeface(), Typeface.BOLD); @@ -445,7 +445,7 @@ public static LinearLayout initHeaderClockStyle(Context mContext, int style) { dayDate8.setLetterSpacing(0.2f); dayDate8.setAllCaps(true); dayDate8.setTextColor(forceWhiteText ? mContext.getResources().getColor(android.R.color.white, mContext.getTheme()) : SystemUtil.getColorResCompat(mContext, android.R.attr.textColorPrimary)); - dayDate8.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16 * textScaling); + dayDate8.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14 * textScaling); dayDate8.setTypeface(clockOverlay8.getTypeface(), Typeface.NORMAL); dayDate8.setIncludeFontPadding(false); ((LinearLayout.LayoutParams) dayDate8.getLayoutParams()).setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), 0, 0, 0); diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/HeaderClock.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/HeaderClock.java index 31f38e394..2f5a83d7d 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/HeaderClock.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/HeaderClock.java @@ -697,8 +697,8 @@ private ViewGroup getClock() { case 8: final TextClock clock8 = new TextClock(mContext); clock8.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); - clock8.setFormat12Hour("hh:mm"); - clock8.setFormat24Hour("HH:mm"); + clock8.setFormat12Hour("h:mm"); + clock8.setFormat24Hour("H:mm"); clock8.setTextColor(forceWhiteText ? mContext.getResources().getColor(android.R.color.white, mContext.getTheme()) : (customColorEnabled ? customColorCode : SystemUtil.getColorResCompat(mContext, android.R.attr.textColorPrimary))); clock8.setTextSize(TypedValue.COMPLEX_UNIT_SP, 44 * textScaling); clock8.setTypeface(typeface != null ? typeface : clock8.getTypeface(), Typeface.BOLD); @@ -707,8 +707,8 @@ private ViewGroup getClock() { final TextClock clockOverlay8 = new TextClock(mContext); clockOverlay8.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); - clockOverlay8.setFormat12Hour("hh"); - clockOverlay8.setFormat24Hour("HH"); + clockOverlay8.setFormat12Hour("h"); + clockOverlay8.setFormat24Hour("H"); clockOverlay8.setTextColor(mContext.getResources().getColor(android.R.color.holo_blue_light, mContext.getTheme())); clockOverlay8.setTextSize(TypedValue.COMPLEX_UNIT_SP, 44 * textScaling); clockOverlay8.setTypeface(typeface != null ? typeface : clockOverlay8.getTypeface(), Typeface.BOLD); @@ -728,10 +728,10 @@ private ViewGroup getClock() { dayDate8.setLetterSpacing(0.2f); dayDate8.setAllCaps(true); dayDate8.setTextColor(forceWhiteText ? mContext.getResources().getColor(android.R.color.white, mContext.getTheme()) : (customColorEnabled ? customColorCode : SystemUtil.getColorResCompat(mContext, android.R.attr.textColorPrimary))); - dayDate8.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16 * textScaling); + dayDate8.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14 * textScaling); dayDate8.setTypeface(clockOverlay8.getTypeface(), Typeface.NORMAL); dayDate8.setIncludeFontPadding(false); - ((LinearLayout.LayoutParams) dayDate8.getLayoutParams()).setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), 0, 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 3, mContext.getResources().getDisplayMetrics())); + ((LinearLayout.LayoutParams) dayDate8.getLayoutParams()).setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), 0, 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics())); final LinearLayout container8 = new LinearLayout(mContext); container8.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); From a1bca94182336dee9631646e84478b254f185027 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 11 Aug 2023 15:40:33 +0600 Subject: [PATCH 053/215] Fluid QS Theme: Make all QS footer components semi transparent --- .../iconify/xposed/mods/QSFluidTheme.java | 41 +++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java index 3d4f987ec..14e3f9fc8 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java @@ -220,14 +220,10 @@ protected void afterHookedMethod(MethodHookParam param) { Resources res = mContext.getResources(); ViewGroup view = (ViewGroup) param.thisObject; - View settings_button_container = view.findViewById(res.getIdentifier("settings_button_container", "id", mContext.getPackageName())); - settings_button_container.getBackground().setAlpha((int) (INACTIVE_ALPHA * 255)); + setAlphaForBackgroundDrawables(view, INACTIVE_ALPHA); View pm_button_container = view.findViewById(res.getIdentifier("pm_lite", "id", mContext.getPackageName())); - pm_button_container.getBackground().setTint(colorActiveAlpha[0]); - - ImageView pm_icon = pm_button_container.findViewById(res.getIdentifier("icon", "id", mContext.getPackageName())); - pm_icon.setImageTintList(ColorStateList.valueOf(colorAccent[0])); + pm_button_container.getBackground().setAlpha((int) (ACTIVE_ALPHA * 255)); } catch (Throwable throwable) { log(TAG + throwable); } @@ -580,7 +576,7 @@ private LayerDrawable createBrightnessBackgroundDrawable(Context context) { @SuppressLint("DiscouragedApi") ColorStateList states = getColorAttr(mContext.getResources().getIdentifier("attr/offStateColor", "attr", mContext.getPackageName()), mContext); if (states != null) { - backgroundShape.getPaint().setColor(states.getDefaultColor()); + backgroundShape.getPaint().setColor(changeAlpha(states.getDefaultColor(), INACTIVE_ALPHA)); } else { backgroundShape.getPaint().setColor(colorInactiveAlpha[0]); } @@ -614,6 +610,37 @@ private LayerDrawable createBrightnessBackgroundDrawable(Context context) { return layerDrawable; } + private void setAlphaForBackgroundDrawables(View view, float alpha) { + setAlphaForBackgroundDrawables(view, (int) (alpha * 255)); + } + + private void setAlphaForBackgroundDrawables(View view, int alpha) { + if (view instanceof ViewGroup) { + ViewGroup viewGroup = (ViewGroup) view; + int childCount = viewGroup.getChildCount(); + for (int i = 0; i < childCount; i++) { + View child = viewGroup.getChildAt(i); + setAlphaForBackgroundDrawablesRecursive(child, alpha); + } + } + } + + private void setAlphaForBackgroundDrawablesRecursive(View view, int alpha) { + Drawable backgroundDrawable = view.getBackground(); + if (backgroundDrawable != null) { + backgroundDrawable.setAlpha(alpha); + } + + if (view instanceof ViewGroup) { + ViewGroup viewGroup = (ViewGroup) view; + int childCount = viewGroup.getChildCount(); + for (int i = 0; i < childCount; i++) { + View child = viewGroup.getChildAt(i); + setAlphaForBackgroundDrawablesRecursive(child, alpha); + } + } + } + @Override public boolean listensTo(String packageName) { return listenPackage.equals(packageName) && !HookEntry.isChildProcess; From 8662d425d31eb0b39d452f0f331ae174a1f14973 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 11 Aug 2023 15:53:49 +0600 Subject: [PATCH 054/215] Xposed Import Export: Check with Objects.requireNonNull() --- .../java/com/drdisagree/iconify/ui/fragments/XposedMenu.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.java b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.java index 96ee132bc..9832ff48b 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.java +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.java @@ -61,7 +61,7 @@ public class XposedMenu extends BaseFragment { if (data == null) return; try { - ImportExport.exportSettings(RPrefs.prefs, requireContext().getContentResolver().openOutputStream(data.getData())); + ImportExport.exportSettings(RPrefs.prefs, Objects.requireNonNull(requireContext().getContentResolver().openOutputStream(Objects.requireNonNull(data.getData())))); Toast.makeText(requireContext(), requireContext().getResources().getString(R.string.toast_export_settings_successfull), Toast.LENGTH_SHORT).show(); } catch (Exception exception) { Toast.makeText(requireContext(), requireContext().getResources().getString(R.string.toast_error), Toast.LENGTH_SHORT).show(); @@ -84,7 +84,7 @@ public class XposedMenu extends BaseFragment { dialog.dismiss(); new Handler(Looper.getMainLooper()).post(() -> { try { - boolean success = ImportExport.importSettings(RPrefs.prefs, requireContext().getContentResolver().openInputStream(data.getData()), false); + boolean success = ImportExport.importSettings(RPrefs.prefs, Objects.requireNonNull(requireContext().getContentResolver().openInputStream(Objects.requireNonNull(data.getData()))), false); if (success) { Toast.makeText(requireContext(), requireContext().getResources().getString(R.string.toast_import_settings_successfull), Toast.LENGTH_SHORT).show(); SystemUtil.restartSystemUI(); From 62fcac4095d68ffc2b02eca2fbd185a5fa0acd7a Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 11 Aug 2023 15:55:32 +0600 Subject: [PATCH 055/215] Xprefs: Fix import/export/reset rebooting device --- app/src/main/java/com/drdisagree/iconify/config/XPrefs.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/config/XPrefs.java b/app/src/main/java/com/drdisagree/iconify/config/XPrefs.java index 780cbcc42..1f37e075a 100644 --- a/app/src/main/java/com/drdisagree/iconify/config/XPrefs.java +++ b/app/src/main/java/com/drdisagree/iconify/config/XPrefs.java @@ -44,7 +44,7 @@ public static void init(Context context) { } public static void loadEverything(String... key) { - if (key.length > 0 && Const.PREF_UPDATE_EXCLUSIONS.stream().anyMatch(exclusion -> key[0].startsWith(exclusion))) + if (key.length > 0 && (key[0] == null || Const.PREF_UPDATE_EXCLUSIONS.stream().anyMatch(exclusion -> key[0].startsWith(exclusion)))) return; for (ModPack thisMod : HookEntry.runningMods) { From c20c9d3394525a5333fc1ff62ab55b50ec491e10 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 11 Aug 2023 19:45:57 +0600 Subject: [PATCH 056/215] Fluid QS Theme: Fix security footer transparency --- .../java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java index 14e3f9fc8..1103c81f9 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java +++ b/app/src/main/java/com/drdisagree/iconify/xposed/mods/QSFluidTheme.java @@ -500,7 +500,7 @@ public Drawable newDrawable(XResources res, int id) { public Drawable newDrawable(XResources res, int id) { GradientDrawable gradientDrawable = new GradientDrawable(); gradientDrawable.setShape(GradientDrawable.RECTANGLE); - gradientDrawable.setColor(colorInactiveAlpha[0]); + gradientDrawable.setColor(changeAlpha(colorInactiveAlpha[0], 1f)); gradientDrawable.setCornerRadius(notifCornerRadius); return new InsetDrawable(gradientDrawable, 0, px2dp4, 0, px2dp4); } From 4b07822ac93ef630bf1b2ffeb194f0a72903ba65 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sun, 13 Aug 2023 15:34:10 +0600 Subject: [PATCH 057/215] Rename color resources --- .../drawable/progress_horizontal_material.xml | 2 +- ...ress_indeterminate_horizontal_material.xml | 2 +- .../drawable/seekbar_thumb_material_anim.xml | 4 +- .../res/drawable/seekbar_track_material.xml | 2 +- .../drawable/progress_horizontal_material.xml | 2 +- ...ress_indeterminate_horizontal_material.xml | 2 +- .../res/drawable/seekbar_track_material.xml | 2 +- .../seekbar_track_material_iconify.xml | 2 +- .../drawable/progress_horizontal_material.xml | 2 +- ...ress_indeterminate_horizontal_material.xml | 2 +- .../seekbar_track_material_iconify.xml | 2 +- .../drawable/progress_horizontal_material.xml | 2 +- ...ress_indeterminate_horizontal_material.xml | 2 +- .../drawable/seekbar_thumb_material_anim.xml | 4 +- .../drawable/progress_horizontal_material.xml | 2 +- ...ress_indeterminate_horizontal_material.xml | 2 +- .../drawable/seekbar_thumb_material_anim.xml | 4 +- .../res/drawable/seekbar_track_material.xml | 2 +- .../drawable/progress_horizontal_material.xml | 2 +- ...ress_indeterminate_horizontal_material.xml | 2 +- .../drawable/seekbar_thumb_material_anim.xml | 4 +- .../res/drawable/seekbar_track_material.xml | 2 +- .../drawable/progress_horizontal_material.xml | 2 +- ...ress_indeterminate_horizontal_material.xml | 2 +- .../drawable/seekbar_thumb_material_anim.xml | 4 +- .../res/drawable/seekbar_track_material.xml | 2 +- .../drawable/progress_horizontal_material.xml | 2 +- ...ress_indeterminate_horizontal_material.xml | 2 +- .../drawable/seekbar_thumb_material_anim.xml | 4 +- .../res/drawable/seekbar_track_material.xml | 2 +- .../drawable/progress_horizontal_material.xml | 2 +- ...ress_indeterminate_horizontal_material.xml | 2 +- .../res/drawable/seekbar_track_material.xml | 2 +- .../drawable/progress_horizontal_material.xml | 2 +- ...ress_indeterminate_horizontal_material.xml | 2 +- .../res/drawable/seekbar_track_material.xml | 2 +- .../drawable/progress_horizontal_material.xml | 2 +- ...ress_indeterminate_horizontal_material.xml | 2 +- .../res/drawable/seekbar_track_material.xml | 2 +- ...ght_alpha.xml => holo_blue_dark_alpha.xml} | 2 +- ...ght_alpha.xml => holo_blue_dark_alpha.xml} | 2 +- .../TSTFRM11/res/drawable/toast_frame.xml | 2 +- .../res/drawable/toast_frame_material.xml | 2 +- .../TSTFRM2/res/drawable/toast_frame.xml | 2 +- .../res/drawable/toast_frame_material.xml | 2 +- .../TSTFRM3/res/drawable/toast_frame.xml | 2 +- .../res/drawable/toast_frame_material.xml | 2 +- .../TSTFRM4/res/drawable/toast_frame.xml | 2 +- .../res/drawable/toast_frame_material.xml | 2 +- .../TSTFRM6/res/drawable/toast_frame.xml | 4 +- .../res/drawable/toast_frame_material.xml | 4 +- .../res/drawable-night/toast_frame.xml | 2 +- .../drawable-night/toast_frame_material.xml | 2 +- .../TSTFRM7/res/drawable/toast_frame.xml | 2 +- .../res/drawable/toast_frame_material.xml | 2 +- .../res/drawable-night/toast_frame.xml | 2 +- .../drawable-night/toast_frame_material.xml | 2 +- .../TSTFRM8/res/drawable/toast_frame.xml | 2 +- .../res/drawable/toast_frame_material.xml | 2 +- .../TSTFRM9/res/drawable/toast_frame.xml | 2 +- .../res/drawable/toast_frame_material.xml | 2 +- .../SIP1/res/values/Iconify.xml | 4 +- .../SIP2/res/values/Iconify.xml | 4 +- .../SIP3/res/values/Iconify.xml | 4 +- .../SIP4/res/values/Iconify.xml | 4 +- .../drawable/settingslib_thumb_disabled.xml | 3 +- .../drawable/settingslib_thumb_disabled.xml | 3 +- .../drawable-night/settingslib_thumb_on.xml | 2 +- .../res/drawable/settingslib_thumb_on.xml | 2 +- .../drawable/settingslib_thumb_disabled.xml | 3 +- .../res/drawable/settingslib_switch_thumb.xml | 4 +- ...ght_alpha.xml => holo_blue_dark_alpha.xml} | 0 .../settingslib_track_on_background.xml | 2 +- .../SWITCH1/res/values-night/config.xml | 4 +- .../drawable/settingslib_thumb_disabled.xml | 3 +- .../SWITCH10/res/values-night/config.xml | 4 +- .../drawable/settingslib_thumb_disabled.xml | 3 +- .../SWITCH2/res/values-night/colors.xml | 4 +- .../SWITCH3/res/values-night/config.xml | 4 +- .../SWITCH5/res/values-night/colors.xml | 4 +- .../drawable-night/settingslib_thumb_on.xml | 2 +- .../res/drawable/settingslib_thumb_on.xml | 2 +- .../drawable/settingslib_thumb_disabled.xml | 3 +- .../SWITCH7/res/values-night/config.xml | 4 +- .../res/drawable/settingslib_switch_thumb.xml | 4 +- .../drawable/settingslib_thumb_selector.xml | 4 +- .../SWITCH8/res/values-night/colors.xml | 4 +- ...ght_alpha.xml => holo_blue_dark_alpha.xml} | 0 .../settingslib_track_on_background.xml | 2 +- .../SWITCH9/res/values-night/config.xml | 4 +- .../SIP1/res/values/Iconify.xml | 4 +- .../SIP2/res/values/Iconify.xml | 4 +- .../SIP3/res/values/Iconify.xml | 4 +- .../SIP4/res/values/Iconify.xml | 4 +- .../SIP1/res/values/Iconify.xml | 4 +- .../SIP2/res/values/Iconify.xml | 4 +- .../SIP3/res/values/Iconify.xml | 4 +- .../SIP4/res/values/Iconify.xml | 4 +- .../android/AMAC/res/values/colors.xml | 4 +- .../android/AMGC/res/values-night/colors.xml | 4 +- .../android/AMGC/res/values/colors.xml | 4 +- .../drawable/progress_horizontal_material.xml | 2 +- .../drawable/seekbar_thumb_material_anim.xml | 4 +- .../res/drawable/seekbar_track_material.xml | 2 +- .../android/QSDT/res/values-night/styles.xml | 3 +- .../QSLT/res/drawable/ic_arrow_back.xml | 13 ++- .../res/drawable/settingslib_switch_track.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN1/res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_drawable.xml | 2 +- .../brightness_progress_drawable_custom.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN1/res/drawable/brightness_bg.xml | 2 +- .../drawable/brightness_progress_drawable.xml | 2 +- .../brightness_progress_drawable_custom.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 6 +- ...ightness_progress_full_drawable_custom.xml | 6 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN10/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 6 +- ...ightness_progress_full_drawable_custom.xml | 6 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 4 +- ...ightness_progress_full_drawable_custom.xml | 4 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN11/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 4 +- ...ightness_progress_full_drawable_custom.xml | 4 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../drawable-night/ic_iconify_bb_thumb.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN12/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/ic_iconify_bb_thumb.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN13/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN14/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 4 +- ...ightness_progress_full_drawable_custom.xml | 4 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN15/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 4 +- ...ightness_progress_full_drawable_custom.xml | 4 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN16/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../drawable-night/holo_blue_dark_alpha.xml} | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN17/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/holo_blue_dark_alpha.xml} | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN18/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_off.xml | 2 +- .../bg_qs_brightness_auto_off_custom.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_drawable.xml | 2 +- .../brightness_progress_drawable_custom.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../drawable/bg_qs_brightness_auto_off.xml | 2 +- .../bg_qs_brightness_auto_off_custom.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN19/res/drawable/brightness_bg.xml | 2 +- .../drawable/brightness_progress_drawable.xml | 2 +- .../brightness_progress_drawable_custom.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN2/res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN2/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- ...ght_alpha.xml => holo_blue_dark_alpha.xml} | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN20/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- ...ght_alpha.xml => holo_blue_dark_alpha.xml} | 2 +- .../auto_brightness_icon_bg.xml | 4 +- .../bg_qs_brightness_auto_on.xml | 4 +- .../bg_qs_brightness_auto_on_custom.xml | 4 +- .../BBN3/res/drawable-night/brightness_bg.xml | 4 +- .../brightness_progress_full_drawable.xml | 4 +- ...ightness_progress_full_drawable_custom.xml | 4 +- .../res/drawable/auto_brightness_icon_bg.xml | 4 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 4 +- .../bg_qs_brightness_auto_on_custom.xml | 4 +- .../BBN3/res/drawable/brightness_bg.xml | 4 +- .../brightness_progress_full_drawable.xml | 4 +- ...ightness_progress_full_drawable_custom.xml | 4 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN4/res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN4/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN5/res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN5/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN6/res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN6/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 4 +- .../bg_qs_brightness_auto_on.xml | 4 +- .../bg_qs_brightness_auto_on_custom.xml | 4 +- .../BBN7/res/drawable-night/brightness_bg.xml | 4 +- .../brightness_progress_full_drawable.xml | 4 +- ...ightness_progress_full_drawable_custom.xml | 4 +- .../res/drawable/auto_brightness_icon_bg.xml | 4 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 4 +- .../bg_qs_brightness_auto_on_custom.xml | 4 +- .../BBN7/res/drawable/brightness_bg.xml | 4 +- .../brightness_progress_full_drawable.xml | 4 +- ...ightness_progress_full_drawable_custom.xml | 4 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN8/res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN8/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN9/res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBN9/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP1/res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_drawable.xml | 2 +- .../brightness_progress_drawable_custom.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP1/res/drawable/brightness_bg.xml | 2 +- .../drawable/brightness_progress_drawable.xml | 2 +- .../brightness_progress_drawable_custom.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 6 +- ...ightness_progress_full_drawable_custom.xml | 6 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP10/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 6 +- ...ightness_progress_full_drawable_custom.xml | 6 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP11/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP12/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP13/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP14/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 4 +- ...ightness_progress_full_drawable_custom.xml | 4 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP15/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 4 +- ...ightness_progress_full_drawable_custom.xml | 4 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP16/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- ...ght_alpha.xml => holo_blue_dark_alpha.xml} | 0 .../drawable-night/holo_blue_light_alpha.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP17/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- ...ght_alpha.xml => holo_blue_dark_alpha.xml} | 0 .../res/drawable/holo_blue_light_alpha.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP18/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_off.xml | 2 +- .../bg_qs_brightness_auto_off_custom.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_drawable.xml | 2 +- .../brightness_progress_drawable_custom.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../drawable/bg_qs_brightness_auto_off.xml | 2 +- .../bg_qs_brightness_auto_off_custom.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP19/res/drawable/brightness_bg.xml | 2 +- .../drawable/brightness_progress_drawable.xml | 2 +- .../brightness_progress_drawable_custom.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP2/res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP2/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- ...ght_alpha.xml => holo_blue_dark_alpha.xml} | 0 .../drawable-night/holo_blue_light_alpha.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP20/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- ...ght_alpha.xml => holo_blue_dark_alpha.xml} | 0 .../res/drawable/holo_blue_light_alpha.xml | 2 +- .../auto_brightness_icon_bg.xml | 4 +- .../bg_qs_brightness_auto_on.xml | 4 +- .../bg_qs_brightness_auto_on_custom.xml | 4 +- .../BBP3/res/drawable-night/brightness_bg.xml | 4 +- .../brightness_progress_full_drawable.xml | 4 +- ...ightness_progress_full_drawable_custom.xml | 4 +- .../res/drawable/auto_brightness_icon_bg.xml | 4 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 4 +- .../bg_qs_brightness_auto_on_custom.xml | 4 +- .../BBP3/res/drawable/brightness_bg.xml | 4 +- .../brightness_progress_full_drawable.xml | 4 +- ...ightness_progress_full_drawable_custom.xml | 4 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP4/res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP4/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP5/res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP5/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP6/res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP6/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 4 +- .../bg_qs_brightness_auto_on.xml | 4 +- .../bg_qs_brightness_auto_on_custom.xml | 4 +- .../BBP7/res/drawable-night/brightness_bg.xml | 4 +- .../brightness_progress_full_drawable.xml | 4 +- ...ightness_progress_full_drawable_custom.xml | 4 +- .../res/drawable/auto_brightness_icon_bg.xml | 4 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 4 +- .../bg_qs_brightness_auto_on_custom.xml | 4 +- .../BBP7/res/drawable/brightness_bg.xml | 4 +- .../brightness_progress_full_drawable.xml | 4 +- ...ightness_progress_full_drawable_custom.xml | 4 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP8/res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP8/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../auto_brightness_icon_bg.xml | 2 +- .../bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP9/res/drawable-night/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../res/drawable/auto_brightness_icon_bg.xml | 2 +- .../res/drawable/bg_qs_brightness_auto_on.xml | 2 +- .../bg_qs_brightness_auto_on_custom.xml | 2 +- .../BBP9/res/drawable/brightness_bg.xml | 2 +- .../brightness_progress_full_drawable.xml | 2 +- ...ightness_progress_full_drawable_custom.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 4 +- .../notification_material_bg.xml | 4 +- .../notification_material_bg_monet.xml | 4 +- .../global_actions_lite_background.xml | 4 +- .../res/drawable/notification_material_bg.xml | 4 +- .../notification_material_bg_monet.xml | 4 +- .../global_actions_lite_background.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 4 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 4 +- .../notification_material_bg_monet.xml | 4 +- .../global_actions_lite_background.xml | 4 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 4 +- .../notification_material_bg_monet.xml | 4 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 4 +- .../global_actions_lite_button.xml | 2 +- .../notification_material_bg.xml | 4 +- .../notification_material_bg_monet.xml | 4 +- .../global_actions_lite_background.xml | 4 +- .../drawable/global_actions_lite_button.xml | 2 +- .../res/drawable/notification_material_bg.xml | 4 +- .../notification_material_bg_monet.xml | 4 +- .../global_actions_lite_background.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 4 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 4 +- .../notification_material_bg_monet.xml | 4 +- .../global_actions_lite_background.xml | 4 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 4 +- .../notification_material_bg_monet.xml | 4 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../global_actions_lite_button.xml | 2 +- .../notif_footer_btn_background.xml | 2 +- .../notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../global_actions_lite_background.xml | 2 +- .../drawable/global_actions_lite_button.xml | 2 +- .../drawable/notif_footer_btn_background.xml | 2 +- .../res/drawable/notification_material_bg.xml | 2 +- .../notification_material_bg_monet.xml | 2 +- .../PCBG/res/values/iconify.xml | 4 +- .../settingslib_progress_horizontal.xml | 2 +- .../QSC/res/drawable/qs_dialog_btn_filled.xml | 2 +- .../settingslib_btn_colored_material.xml | 2 +- .../settingslib_progress_horizontal.xml | 2 +- .../drawable/settingslib_switch_bar_bg_on.xml | 4 +- .../QSNT1/res/values-night/iconify.xml | 2 +- .../QSNT1/res/values/iconify.xml | 2 +- .../QSNT2/res/values-night/iconify.xml | 2 +- .../QSNT2/res/values/iconify.xml | 2 +- .../QSNT3/res/values-night/iconify.xml | 2 +- .../QSNT3/res/values/iconify.xml | 2 +- .../QSNT4/res/values-night/iconify.xml | 2 +- .../QSNT4/res/values/iconify.xml | 2 +- .../QSPT1/res/values-night/iconify.xml | 2 +- .../QSPT1/res/values/iconify.xml | 2 +- .../QSPT2/res/values-night/iconify.xml | 4 +- .../QSPT2/res/values/iconify.xml | 4 +- .../QSPT3/res/values-night/iconify.xml | 2 +- .../QSPT3/res/values/iconify.xml | 2 +- .../QSPT4/res/values-night/iconify.xml | 4 +- .../QSPT4/res/values/iconify.xml | 4 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSN1/res/values-night/iconify.xml | 2 +- .../QSSN1/res/values/iconify.xml | 2 +- .../ic_qstile_reflect_iconify.xml | 4 +- .../qs_footer_action_circle_color.xml | 2 +- .../drawable/ic_qstile_reflect_iconify.xml | 4 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSN10/res/values-night/iconify.xml | 2 +- .../QSSN10/res/values/iconify.xml | 2 +- .../ic_qstile_reflect_iconify.xml | 4 +- .../qs_footer_action_circle_color.xml | 2 +- .../drawable/ic_qstile_reflect_iconify.xml | 4 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSN11/res/values-night/iconify.xml | 2 +- .../QSSN11/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSN12/res/values-night/iconify.xml | 2 +- .../QSSN12/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSN13/res/values-night/iconify.xml | 2 +- .../QSSN13/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSN14/res/values-night/iconify.xml | 2 +- .../QSSN14/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_tile_background_shape.xml | 4 +- .../qs_footer_action_circle_color.xml | 2 +- .../res/drawable/qs_tile_background_shape.xml | 4 +- .../QSSN15/res/values-night/iconify.xml | 2 +- .../QSSN15/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_tile_background_shape.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../res/drawable/qs_tile_background_shape.xml | 2 +- .../QSSN16/res/values-night/iconify.xml | 2 +- .../QSSN16/res/values/iconify.xml | 2 +- .../drawable-night/holo_blue_dark_alpha.xml} | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_tile_background_shape.xml | 2 +- .../res/drawable/holo_blue_dark_alpha.xml} | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../res/drawable/qs_tile_background_shape.xml | 2 +- .../QSSN17/res/values-night/iconify.xml | 2 +- .../QSSN17/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSN18/res/values-night/iconify.xml | 2 +- .../QSSN18/res/values/iconify.xml | 2 +- .../qs_footer_action_circle.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../res/drawable/qs_footer_action_circle.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSN19/res/values-night/iconify.xml | 2 +- .../QSSN19/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 4 +- .../qs_footer_action_circle_color.xml | 4 +- .../QSSN2/res/values-night/iconify.xml | 2 +- .../QSSN2/res/values/iconify.xml | 2 +- .../drawable-night/holo_blue_dark_alpha.xml | 6 ++ .../drawable-night/holo_green_light_alpha.xml | 6 -- .../qs_footer_action_circle_color.xml | 2 +- .../qs_tile_background_shape.xml | 2 +- .../res/drawable/holo_blue_dark_alpha.xml | 6 ++ .../res/drawable/holo_green_light_alpha.xml | 6 -- .../qs_footer_action_circle_color.xml | 2 +- .../res/drawable/qs_tile_background_shape.xml | 2 +- .../QSSN20/res/values-night/iconify.xml | 2 +- .../QSSN20/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSN3/res/values-night/iconify.xml | 2 +- .../QSSN3/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSN4/res/values-night/iconify.xml | 2 +- .../QSSN4/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSN5/res/values-night/iconify.xml | 2 +- .../QSSN5/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 4 +- .../qs_footer_action_circle_color.xml | 4 +- .../QSSN6/res/values-night/iconify.xml | 2 +- .../QSSN6/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSN7/res/values-night/iconify.xml | 2 +- .../QSSN7/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSN8/res/values-night/iconify.xml | 2 +- .../QSSN8/res/values/iconify.xml | 2 +- .../QSSN9/res/values-night/iconify.xml | 2 +- .../QSSN9/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSP1/res/values-night/iconify.xml | 2 +- .../QSSP1/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSP10/res/values-night/iconify.xml | 2 +- .../QSSP10/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSP11/res/values-night/iconify.xml | 2 +- .../QSSP11/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSP12/res/values-night/iconify.xml | 2 +- .../QSSP12/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSP13/res/values-night/iconify.xml | 2 +- .../QSSP13/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSP14/res/values-night/iconify.xml | 2 +- .../QSSP14/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_tile_background_shape.xml | 4 +- .../qs_footer_action_circle_color.xml | 2 +- .../res/drawable/qs_tile_background_shape.xml | 4 +- .../QSSP15/res/values-night/iconify.xml | 2 +- .../QSSP15/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_tile_background_shape.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../res/drawable/qs_tile_background_shape.xml | 2 +- .../QSSP16/res/values-night/iconify.xml | 2 +- .../QSSP16/res/values/iconify.xml | 2 +- ...ght_alpha.xml => holo_blue_dark_alpha.xml} | 0 .../drawable-night/holo_blue_light_alpha.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_tile_background_shape.xml | 2 +- ...ght_alpha.xml => holo_blue_dark_alpha.xml} | 0 .../res/drawable/holo_blue_light_alpha.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../res/drawable/qs_tile_background_shape.xml | 2 +- .../QSSP17/res/values-night/iconify.xml | 2 +- .../QSSP17/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSP18/res/values-night/iconify.xml | 2 +- .../QSSP18/res/values/iconify.xml | 2 +- .../qs_footer_action_circle.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../res/drawable/qs_footer_action_circle.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSP19/res/values-night/iconify.xml | 2 +- .../QSSP19/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 4 +- .../qs_footer_action_circle_color.xml | 4 +- .../QSSP2/res/values-night/iconify.xml | 2 +- .../QSSP2/res/values/iconify.xml | 2 +- ...ght_alpha.xml => holo_blue_dark_alpha.xml} | 0 .../drawable-night/holo_blue_light_alpha.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_tile_background_shape.xml | 2 +- ...ght_alpha.xml => holo_blue_dark_alpha.xml} | 0 .../res/drawable/holo_blue_light_alpha.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../res/drawable/qs_tile_background_shape.xml | 2 +- .../QSSP20/res/values-night/iconify.xml | 2 +- .../QSSP20/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSP3/res/values-night/iconify.xml | 2 +- .../QSSP3/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSP4/res/values-night/iconify.xml | 2 +- .../QSSP4/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSP5/res/values-night/iconify.xml | 2 +- .../QSSP5/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 4 +- .../qs_footer_action_circle_color.xml | 4 +- .../QSSP6/res/values-night/iconify.xml | 2 +- .../QSSP6/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSP7/res/values-night/iconify.xml | 2 +- .../QSSP7/res/values/iconify.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../qs_footer_action_circle_color.xml | 2 +- .../QSSP8/res/values-night/iconify.xml | 2 +- .../QSSP8/res/values/iconify.xml | 2 +- .../QSSP9/res/values-night/iconify.xml | 2 +- .../QSSP9/res/values/iconify.xml | 2 +- .../res/drawable/settingslib_switch_track.xml | 4 +- .../volume_drawer_selection_bg.xml | 4 +- .../volume_row_seekbar_progress.xml | 4 +- .../volume_drawer_selection_bg.xml | 2 +- .../volume_row_seekbar_progress.xml | 2 +- .../volume_drawer_selection_bg.xml | 4 +- .../volume_row_seekbar_progress.xml | 4 +- .../volume_drawer_selection_bg.xml | 2 +- .../volume_row_seekbar_progress.xml | 4 +- .../volume_drawer_selection_bg.xml | 2 +- .../volume_row_seekbar_progress.xml | 4 +- .../volume_drawer_selection_bg.xml | 2 +- .../volume_row_seekbar_progress.xml | 2 +- .../com/drdisagree/iconify/config/XPrefs.java | 3 +- .../overlaymanager/MonetEngineManager.java | 8 +- .../SettingsIconResourceManager.java | 10 +- .../iconify/ui/activities/BasicColors.java | 10 +- .../iconify/ui/activities/MonetEngine.java | 98 +++++++++---------- .../iconify/ui/activities/Onboarding.java | 26 ++--- .../iconify/ui/activities/QsIconLabel.java | 2 +- .../iconify/ui/fragments/Settings.java | 2 +- .../iconify/ui/fragments/Styles.java | 6 +- .../iconify/ui/fragments/Tweaks.java | 2 - .../iconify/ui/fragments/XposedMenu.java | 2 +- .../iconify/ui/views/HeaderClockStyles.java | 6 +- .../drdisagree/iconify/utils/ModuleUtil.java | 4 +- .../iconify/utils/helpers/ImportExport.java | 4 +- .../iconify/xposed/mods/HeaderClock.java | 6 +- .../iconify/xposed/mods/QSFluidTheme.java | 14 +-- .../xposed/utils/SettingsLibUtils.java | 8 +- .../iconify/xposed/utils/SystemUtil.java | 8 +- ...ght_alpha.xml => holo_blue_dark_alpha.xml} | 0 .../preview_seekbar_oldschool_thumb.xml | 2 +- .../preview_seekbar_oldschool_thumb.xml | 2 +- .../qs_shape_bookmark_enabled.xml | 4 +- .../qs_shape_bookmark_enabled_pixel.xml | 4 +- .../qs_shape_divided_enabled.xml | 2 +- .../qs_shape_divided_enabled_pixel.xml | 2 +- .../res/drawable-night-v24/auto_bb_lighty.xml | 2 +- .../auto_bb_lighty_pixel.xml | 2 +- .../auto_bb_translucent_outline.xml | 2 +- .../auto_bb_translucent_outline_pixel.xml | 2 +- .../main/res/drawable-night-v24/bb_lighty.xml | 2 +- .../bb_minimal_thumb_pixel.xml | 2 +- .../drawable-night-v24/bb_oldschool_thumb.xml | 2 +- .../bb_oldschool_thumb_pixel.xml | 2 +- .../res/drawable-night-v24/bb_purfect.xml | 4 +- .../bb_translucent_outline.xml | 2 +- .../res/drawable-night-v24/notif_lighty.xml | 2 +- .../preview_seekbar_gradient_thumb.xml | 4 +- .../preview_seekbar_lighty.xml | 2 +- .../preview_seekbar_oldschool_thumb.xml | 2 +- .../qs_shape_lighty_enabled.xml | 2 +- .../qs_shape_purfect_disabled.xml | 2 +- .../qs_shape_purfect_enabled.xml | 2 +- .../qs_shape_translucent_outline_enabled.xml | 2 +- .../toast_frame_style_2.xml | 2 +- .../toast_frame_style_3.xml | 2 +- .../toast_frame_style_4.xml | 2 +- .../toast_frame_style_6.xml | 4 +- .../toast_frame_style_7.xml | 2 +- .../toast_frame_style_8.xml | 2 +- .../toast_frame_style_9.xml | 2 +- .../res/drawable-night-v24/volume_outline.xml | 4 +- .../volume_outline_ringer.xml | 2 +- .../res/drawable-v24/auto_bb_blocky_thumb.xml | 2 +- .../auto_bb_blocky_thumb_pixel.xml | 2 +- .../res/drawable-v24/auto_bb_comet_thumb.xml | 2 +- .../auto_bb_comet_thumb_pixel.xml | 2 +- .../res/drawable-v24/auto_bb_double_layer.xml | 4 +- .../auto_bb_double_layer_pixel.xml | 4 +- .../drawable-v24/auto_bb_gradient_thumb.xml | 2 +- .../auto_bb_gradient_thumb_pixel.xml | 2 +- .../drawable-v24/auto_bb_leafy_outline.xml | 2 +- .../auto_bb_leafy_outline_pixel.xml | 2 +- .../main/res/drawable-v24/auto_bb_lighty.xml | 2 +- .../res/drawable-v24/auto_bb_lighty_pixel.xml | 2 +- .../drawable-v24/auto_bb_minimal_thumb.xml | 2 +- .../auto_bb_minimal_thumb_pixel.xml | 2 +- .../res/drawable-v24/auto_bb_neumorph.xml | 4 +- .../drawable-v24/auto_bb_neumorph_outline.xml | 2 +- .../auto_bb_neumorph_outline_pixel.xml | 2 +- .../drawable-v24/auto_bb_neumorph_pixel.xml | 4 +- .../drawable-v24/auto_bb_neumorph_thumb.xml | 2 +- .../auto_bb_neumorph_thumb_pixel.xml | 2 +- .../drawable-v24/auto_bb_oldschool_thumb.xml | 2 +- .../auto_bb_oldschool_thumb_pixel.xml | 2 +- .../main/res/drawable-v24/auto_bb_outline.xml | 2 +- .../drawable-v24/auto_bb_outline_pixel.xml | 2 +- .../main/res/drawable-v24/auto_bb_purfect.xml | 2 +- .../drawable-v24/auto_bb_purfect_pixel.xml | 2 +- .../main/res/drawable-v24/auto_bb_rounded.xml | 2 +- .../drawable-v24/auto_bb_rounded_pixel.xml | 2 +- .../res/drawable-v24/auto_bb_roundedclip.xml | 2 +- .../auto_bb_roundedclip_pixel.xml | 2 +- .../drawable-v24/auto_bb_semi_transparent.xml | 2 +- .../auto_bb_semi_transparent_pixel.xml | 2 +- .../res/drawable-v24/auto_bb_shaded_layer.xml | 2 +- .../auto_bb_shaded_layer_pixel.xml | 2 +- .../res/drawable-v24/auto_bb_thin_outline.xml | 2 +- .../auto_bb_thin_outline_pixel.xml | 2 +- .../auto_bb_translucent_outline.xml | 2 +- .../auto_bb_translucent_outline_pixel.xml | 2 +- .../main/res/drawable-v24/bb_blocky_thumb.xml | 4 +- .../drawable-v24/bb_blocky_thumb_pixel.xml | 4 +- .../main/res/drawable-v24/bb_comet_thumb.xml | 4 +- .../res/drawable-v24/bb_comet_thumb_pixel.xml | 4 +- .../main/res/drawable-v24/bb_double_layer.xml | 4 +- .../drawable-v24/bb_double_layer_pixel.xml | 4 +- .../res/drawable-v24/bb_gradient_thumb.xml | 4 +- .../drawable-v24/bb_gradient_thumb_pixel.xml | 4 +- app/src/main/res/drawable-v24/bb_inline.xml | 2 +- .../main/res/drawable-v24/bb_inline_pixel.xml | 2 +- .../res/drawable-v24/bb_leafy_outline.xml | 2 +- .../drawable-v24/bb_leafy_outline_pixel.xml | 2 +- app/src/main/res/drawable-v24/bb_lighty.xml | 2 +- .../main/res/drawable-v24/bb_lighty_pixel.xml | 2 +- .../res/drawable-v24/bb_minimal_thumb.xml | 2 +- .../drawable-v24/bb_minimal_thumb_pixel.xml | 2 +- app/src/main/res/drawable-v24/bb_neumorph.xml | 4 +- .../res/drawable-v24/bb_neumorph_outline.xml | 2 +- .../bb_neumorph_outline_pixel.xml | 2 +- .../res/drawable-v24/bb_neumorph_pixel.xml | 4 +- .../res/drawable-v24/bb_neumorph_thumb.xml | 6 +- .../drawable-v24/bb_neumorph_thumb_pixel.xml | 6 +- .../res/drawable-v24/bb_oldschool_thumb.xml | 2 +- .../drawable-v24/bb_oldschool_thumb_pixel.xml | 2 +- app/src/main/res/drawable-v24/bb_outline.xml | 2 +- .../res/drawable-v24/bb_outline_pixel.xml | 2 +- app/src/main/res/drawable-v24/bb_purfect.xml | 4 +- .../res/drawable-v24/bb_purfect_pixel.xml | 4 +- app/src/main/res/drawable-v24/bb_rounded.xml | 2 +- .../res/drawable-v24/bb_rounded_pixel.xml | 2 +- .../main/res/drawable-v24/bb_roundedclip.xml | 2 +- .../res/drawable-v24/bb_roundedclip_pixel.xml | 2 +- .../res/drawable-v24/bb_semi_transparent.xml | 2 +- .../bb_semi_transparent_pixel.xml | 2 +- .../main/res/drawable-v24/bb_shaded_layer.xml | 2 +- .../drawable-v24/bb_shaded_layer_pixel.xml | 2 +- .../main/res/drawable-v24/bb_thin_outline.xml | 2 +- .../drawable-v24/bb_thin_outline_pixel.xml | 2 +- .../drawable-v24/bb_translucent_outline.xml | 2 +- .../bb_translucent_outline_pixel.xml | 2 +- .../res/drawable-v24/chip_status_bar_1.xml | 2 +- .../res/drawable-v24/chip_status_bar_2.xml | 2 +- .../res/drawable-v24/chip_status_bar_3.xml | 4 +- .../res/drawable-v24/chip_status_bar_4.xml | 4 +- .../res/drawable-v24/chip_status_bar_5.xml | 2 +- .../res/drawable-v24/chip_status_bar_6.xml | 2 +- .../res/drawable-v24/chip_status_bar_7.xml | 2 +- .../res/drawable-v24/chip_status_icons_1.xml | 2 +- .../res/drawable-v24/chip_status_icons_2.xml | 2 +- .../res/drawable-v24/chip_status_icons_3.xml | 4 +- .../res/drawable-v24/chip_status_icons_4.xml | 4 +- .../res/drawable-v24/chip_status_icons_6.xml | 2 +- .../res/drawable-v24/ic_qs_top_margin.xml | 47 ++++++--- .../ic_switch_outline_thumb_power_on.xml | 4 +- .../res/drawable-v24/ic_tile_monet_engine.xml | 36 +++---- .../drawable-v24/ic_tile_notch_bar_killer.xml | 24 ++--- .../res/drawable-v24/ic_tile_pitch_black.xml | 36 +++---- .../drawable-v24/ic_tile_restart_systemui.xml | 36 +++---- .../res/drawable-v24/notif_bottom_outline.xml | 2 +- .../main/res/drawable-v24/notif_cyberponk.xml | 4 +- .../res/drawable-v24/notif_cyberponk_v2.xml | 2 +- .../main/res/drawable-v24/notif_dumbbell.xml | 2 +- .../main/res/drawable-v24/notif_duoline.xml | 2 +- .../res/drawable-v24/notif_leafy_outline.xml | 2 +- .../main/res/drawable-v24/notif_lighty.xml | 2 +- .../drawable-v24/notif_neumorph_outline.xml | 2 +- .../main/res/drawable-v24/notif_outline.xml | 2 +- .../res/drawable-v24/notif_side_stack.xml | 2 +- app/src/main/res/drawable-v24/notif_stack.xml | 4 +- .../res/drawable-v24/notif_thin_outline.xml | 2 +- .../res/drawable-v24/notif_thread_line.xml | 2 +- .../preview_color_picker_large.xml | 2 +- .../preview_color_picker_secondary.xml | 2 +- .../preview_seekbar_blocky_thumb.xml | 4 +- .../drawable-v24/preview_seekbar_default.xml | 4 +- .../drawable-v24/preview_seekbar_divided.xml | 2 +- .../preview_seekbar_gradient_thumb.xml | 4 +- .../drawable-v24/preview_seekbar_inline.xml | 2 +- .../drawable-v24/preview_seekbar_lighty.xml | 2 +- .../preview_seekbar_minimal_thumb.xml | 4 +- .../drawable-v24/preview_seekbar_no_thumb.xml | 2 +- .../preview_seekbar_oldschool_thumb.xml | 2 +- .../preview_seekbar_outline_thumb.xml | 4 +- .../preview_seekbar_thin_track.xml | 2 +- .../qs_shape_bookmark_arrow_enabled_bg.xml | 2 +- ..._shape_bookmark_arrow_enabled_bg_pixel.xml | 2 +- .../qs_shape_bookmark_enabled.xml | 4 +- .../qs_shape_bookmark_enabled_pixel.xml | 4 +- .../qs_shape_bottom_outline_enabled.xml | 2 +- .../qs_shape_bottom_outline_enabled_pixel.xml | 2 +- .../qs_shape_cyberponk_enabled.xml | 4 +- .../qs_shape_cyberponk_enabled_pixel.xml | 4 +- .../qs_shape_cyberponk_v2_enabled.xml | 2 +- .../qs_shape_cyberponk_v2_enabled_pixel.xml | 2 +- .../drawable-v24/qs_shape_default_enabled.xml | 2 +- .../qs_shape_default_enabled_pixel.xml | 2 +- .../drawable-v24/qs_shape_divided_enabled.xml | 2 +- .../qs_shape_divided_enabled_pixel.xml | 2 +- .../qs_shape_doublelayer_enabled.xml | 4 +- .../qs_shape_doublelayer_enabled_pixel.xml | 4 +- .../qs_shape_leafy_outline_enabled.xml | 2 +- .../qs_shape_leafy_outline_enabled_pixel.xml | 2 +- .../drawable-v24/qs_shape_lighty_enabled.xml | 2 +- .../qs_shape_lighty_enabled_pixel.xml | 2 +- .../qs_shape_neumorph_enabled.xml | 4 +- .../qs_shape_neumorph_enabled_pixel.xml | 4 +- .../qs_shape_neumorph_outline_enabled.xml | 2 +- ...s_shape_neumorph_outline_enabled_pixel.xml | 2 +- .../drawable-v24/qs_shape_outline_enabled.xml | 2 +- .../qs_shape_outline_enabled_pixel.xml | 2 +- .../drawable-v24/qs_shape_preview_enabled.xml | 2 +- .../qs_shape_purfect_disabled.xml | 2 +- .../qs_shape_purfect_disabled_pixel.xml | 2 +- .../drawable-v24/qs_shape_purfect_enabled.xml | 2 +- .../qs_shape_purfect_enabled_pixel.xml | 2 +- .../qs_shape_reflected_enabled.xml | 2 +- .../qs_shape_reflected_enabled_pixel.xml | 2 +- .../qs_shape_reflected_fill_enabled.xml | 2 +- .../qs_shape_reflected_fill_enabled_pixel.xml | 2 +- .../qs_shape_semi_transparent_enabled.xml | 2 +- ...s_shape_semi_transparent_enabled_pixel.xml | 2 +- .../qs_shape_shadedlayer_enabled.xml | 2 +- .../qs_shape_shadedlayer_enabled_pixel.xml | 2 +- .../qs_shape_surround_enabled.xml | 4 +- .../qs_shape_surround_enabled_pixel.xml | 4 +- .../qs_shape_thin_outline_enabled.xml | 2 +- .../qs_shape_thin_outline_enabled_pixel.xml | 2 +- .../qs_shape_translucent_outline_enabled.xml | 2 +- ...hape_translucent_outline_enabled_pixel.xml | 2 +- .../res/drawable-v24/toast_frame_style_11.xml | 2 +- .../res/drawable-v24/toast_frame_style_2.xml | 2 +- .../res/drawable-v24/toast_frame_style_3.xml | 2 +- .../res/drawable-v24/toast_frame_style_4.xml | 2 +- .../res/drawable-v24/toast_frame_style_6.xml | 4 +- .../res/drawable-v24/toast_frame_style_7.xml | 2 +- .../res/drawable-v24/toast_frame_style_8.xml | 2 +- .../res/drawable-v24/toast_frame_style_9.xml | 2 +- .../res/drawable-v24/volume_double_layer.xml | 4 +- .../main/res/drawable-v24/volume_gradient.xml | 2 +- .../main/res/drawable-v24/volume_neumorph.xml | 4 +- .../drawable-v24/volume_neumorph_outline.xml | 4 +- .../volume_neumorph_outline_ringer.xml | 2 +- .../main/res/drawable-v24/volume_outline.xml | 4 +- .../drawable-v24/volume_outline_ringer.xml | 2 +- .../res/drawable-v24/volume_shaded_layer.xml | 2 +- app/src/main/res/values-night/colors.xml | 2 +- app/src/main/res/values/colors.xml | 9 +- 1325 files changed, 1735 insertions(+), 1720 deletions(-) rename app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable-night/{holo_green_light_alpha.xml => holo_blue_dark_alpha.xml} (72%) rename app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable/{holo_green_light_alpha.xml => holo_blue_dark_alpha.xml} (72%) rename app/src/main/assets/CompileOnDemand/com.android.settings/SWITCH9/res/color/{holo_green_light_alpha.xml => holo_blue_dark_alpha.xml} (100%) rename app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH9/res/color/{holo_green_light_alpha.xml => holo_blue_dark_alpha.xml} (100%) rename app/src/main/assets/Overlays/com.android.systemui/{QSSN17/res/drawable-night/holo_green_light_alpha.xml => BBN17/res/drawable-night/holo_blue_dark_alpha.xml} (72%) rename app/src/main/assets/Overlays/com.android.systemui/{QSSN17/res/drawable/holo_green_light_alpha.xml => BBN17/res/drawable/holo_blue_dark_alpha.xml} (72%) rename app/src/main/assets/Overlays/com.android.systemui/BBN20/res/drawable-night/{holo_green_light_alpha.xml => holo_blue_dark_alpha.xml} (72%) rename app/src/main/assets/Overlays/com.android.systemui/BBN20/res/drawable/{holo_green_light_alpha.xml => holo_blue_dark_alpha.xml} (72%) rename app/src/main/assets/Overlays/com.android.systemui/BBP17/res/drawable-night/{holo_green_light_alpha.xml => holo_blue_dark_alpha.xml} (100%) rename app/src/main/assets/Overlays/com.android.systemui/BBP17/res/drawable/{holo_green_light_alpha.xml => holo_blue_dark_alpha.xml} (100%) rename app/src/main/assets/Overlays/com.android.systemui/BBP20/res/drawable-night/{holo_green_light_alpha.xml => holo_blue_dark_alpha.xml} (100%) rename app/src/main/assets/Overlays/com.android.systemui/BBP20/res/drawable/{holo_green_light_alpha.xml => holo_blue_dark_alpha.xml} (100%) rename app/src/main/assets/Overlays/com.android.systemui/{BBN17/res/drawable-night/holo_green_light_alpha.xml => QSSN17/res/drawable-night/holo_blue_dark_alpha.xml} (72%) rename app/src/main/assets/Overlays/com.android.systemui/{BBN17/res/drawable/holo_green_light_alpha.xml => QSSN17/res/drawable/holo_blue_dark_alpha.xml} (72%) create mode 100644 app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/holo_blue_dark_alpha.xml delete mode 100644 app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/holo_green_light_alpha.xml create mode 100644 app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/holo_blue_dark_alpha.xml delete mode 100644 app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/holo_green_light_alpha.xml rename app/src/main/assets/Overlays/com.android.systemui/QSSP17/res/drawable-night/{holo_green_light_alpha.xml => holo_blue_dark_alpha.xml} (100%) rename app/src/main/assets/Overlays/com.android.systemui/QSSP17/res/drawable/{holo_green_light_alpha.xml => holo_blue_dark_alpha.xml} (100%) rename app/src/main/assets/Overlays/com.android.systemui/QSSP20/res/drawable-night/{holo_green_light_alpha.xml => holo_blue_dark_alpha.xml} (100%) rename app/src/main/assets/Overlays/com.android.systemui/QSSP20/res/drawable/{holo_green_light_alpha.xml => holo_blue_dark_alpha.xml} (100%) rename app/src/main/res/color/{holo_green_light_alpha.xml => holo_blue_dark_alpha.xml} (100%) diff --git a/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/progress_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/progress_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/progress_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/progress_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/progress_indeterminate_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/progress_indeterminate_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/progress_indeterminate_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/progress_indeterminate_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/seekbar_thumb_material_anim.xml b/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/seekbar_thumb_material_anim.xml index ab10fbf2d..e644a28be 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/seekbar_thumb_material_anim.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/seekbar_thumb_material_anim.xml @@ -11,7 +11,7 @@ - + @@ -20,7 +20,7 @@ - + diff --git a/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/seekbar_track_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/seekbar_track_material.xml index 6e5315a54..f78f7c193 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/seekbar_track_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB1/res/drawable/seekbar_track_material.xml @@ -44,7 +44,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB10/res/drawable/progress_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB10/res/drawable/progress_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB10/res/drawable/progress_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB10/res/drawable/progress_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB10/res/drawable/progress_indeterminate_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB10/res/drawable/progress_indeterminate_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB10/res/drawable/progress_indeterminate_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB10/res/drawable/progress_indeterminate_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB10/res/drawable/seekbar_track_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB10/res/drawable/seekbar_track_material.xml index 06363a5f6..f4cc8c0bb 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB10/res/drawable/seekbar_track_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB10/res/drawable/seekbar_track_material.xml @@ -46,7 +46,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable-night/seekbar_track_material_iconify.xml b/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable-night/seekbar_track_material_iconify.xml index af9bf3a58..843ae24b3 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable-night/seekbar_track_material_iconify.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable-night/seekbar_track_material_iconify.xml @@ -5,7 +5,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable/progress_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable/progress_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable/progress_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable/progress_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable/progress_indeterminate_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable/progress_indeterminate_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable/progress_indeterminate_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable/progress_indeterminate_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable/seekbar_track_material_iconify.xml b/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable/seekbar_track_material_iconify.xml index 22c783cf9..06fe6d384 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable/seekbar_track_material_iconify.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB11/res/drawable/seekbar_track_material_iconify.xml @@ -5,7 +5,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB2/res/drawable/progress_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB2/res/drawable/progress_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB2/res/drawable/progress_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB2/res/drawable/progress_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB2/res/drawable/progress_indeterminate_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB2/res/drawable/progress_indeterminate_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB2/res/drawable/progress_indeterminate_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB2/res/drawable/progress_indeterminate_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB2/res/drawable/seekbar_thumb_material_anim.xml b/app/src/main/assets/CompileOnDemand/android/PGB2/res/drawable/seekbar_thumb_material_anim.xml index ab10fbf2d..e644a28be 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB2/res/drawable/seekbar_thumb_material_anim.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB2/res/drawable/seekbar_thumb_material_anim.xml @@ -11,7 +11,7 @@ - + @@ -20,7 +20,7 @@ - + diff --git a/app/src/main/assets/CompileOnDemand/android/PGB3/res/drawable/progress_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB3/res/drawable/progress_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB3/res/drawable/progress_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB3/res/drawable/progress_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB3/res/drawable/progress_indeterminate_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB3/res/drawable/progress_indeterminate_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB3/res/drawable/progress_indeterminate_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB3/res/drawable/progress_indeterminate_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB3/res/drawable/seekbar_thumb_material_anim.xml b/app/src/main/assets/CompileOnDemand/android/PGB3/res/drawable/seekbar_thumb_material_anim.xml index 8187d7325..95117708d 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB3/res/drawable/seekbar_thumb_material_anim.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB3/res/drawable/seekbar_thumb_material_anim.xml @@ -16,7 +16,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB4/res/drawable/progress_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB4/res/drawable/progress_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB4/res/drawable/progress_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB4/res/drawable/progress_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB4/res/drawable/progress_indeterminate_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB4/res/drawable/progress_indeterminate_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB4/res/drawable/progress_indeterminate_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB4/res/drawable/progress_indeterminate_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB4/res/drawable/seekbar_thumb_material_anim.xml b/app/src/main/assets/CompileOnDemand/android/PGB4/res/drawable/seekbar_thumb_material_anim.xml index 146bbe486..f12ed92cf 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB4/res/drawable/seekbar_thumb_material_anim.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB4/res/drawable/seekbar_thumb_material_anim.xml @@ -41,7 +41,7 @@ + android:tint="@*android:color/holo_blue_dark"> + android:tint="@*android:color/holo_blue_dark"> diff --git a/app/src/main/assets/CompileOnDemand/android/PGB5/res/drawable/progress_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB5/res/drawable/progress_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB5/res/drawable/progress_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB5/res/drawable/progress_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB5/res/drawable/progress_indeterminate_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB5/res/drawable/progress_indeterminate_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB5/res/drawable/progress_indeterminate_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB5/res/drawable/progress_indeterminate_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB5/res/drawable/seekbar_thumb_material_anim.xml b/app/src/main/assets/CompileOnDemand/android/PGB5/res/drawable/seekbar_thumb_material_anim.xml index b785a27bd..8a8fce3a5 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB5/res/drawable/seekbar_thumb_material_anim.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB5/res/drawable/seekbar_thumb_material_anim.xml @@ -41,7 +41,7 @@ + android:tint="@*android:color/holo_blue_dark"> + android:tint="@*android:color/holo_blue_dark"> diff --git a/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/progress_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/progress_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/progress_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/progress_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/progress_indeterminate_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/progress_indeterminate_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/progress_indeterminate_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/progress_indeterminate_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/seekbar_thumb_material_anim.xml b/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/seekbar_thumb_material_anim.xml index 9c61da025..b003982fa 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/seekbar_thumb_material_anim.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/seekbar_thumb_material_anim.xml @@ -21,7 +21,7 @@ + android:color="@*android:color/holo_blue_dark" /> @@ -33,7 +33,7 @@ + android:color="@*android:color/holo_blue_dark" /> diff --git a/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/seekbar_track_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/seekbar_track_material.xml index 6e5315a54..f78f7c193 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/seekbar_track_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB6/res/drawable/seekbar_track_material.xml @@ -44,7 +44,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB7/res/drawable/progress_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB7/res/drawable/progress_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB7/res/drawable/progress_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB7/res/drawable/progress_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB7/res/drawable/progress_indeterminate_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB7/res/drawable/progress_indeterminate_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB7/res/drawable/progress_indeterminate_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB7/res/drawable/progress_indeterminate_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB7/res/drawable/seekbar_track_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB7/res/drawable/seekbar_track_material.xml index 6e5315a54..f78f7c193 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB7/res/drawable/seekbar_track_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB7/res/drawable/seekbar_track_material.xml @@ -44,7 +44,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB8/res/drawable/progress_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB8/res/drawable/progress_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB8/res/drawable/progress_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB8/res/drawable/progress_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB8/res/drawable/progress_indeterminate_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB8/res/drawable/progress_indeterminate_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB8/res/drawable/progress_indeterminate_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB8/res/drawable/progress_indeterminate_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB8/res/drawable/seekbar_track_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB8/res/drawable/seekbar_track_material.xml index 32b44893c..0e56f1fc1 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB8/res/drawable/seekbar_track_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB8/res/drawable/seekbar_track_material.xml @@ -44,7 +44,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB9/res/drawable/progress_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB9/res/drawable/progress_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB9/res/drawable/progress_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB9/res/drawable/progress_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB9/res/drawable/progress_indeterminate_horizontal_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB9/res/drawable/progress_indeterminate_horizontal_material.xml index cf730dd60..566364b7e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB9/res/drawable/progress_indeterminate_horizontal_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB9/res/drawable/progress_indeterminate_horizontal_material.xml @@ -48,7 +48,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/PGB9/res/drawable/seekbar_track_material.xml b/app/src/main/assets/CompileOnDemand/android/PGB9/res/drawable/seekbar_track_material.xml index 3431d0bde..5bbe1e35e 100644 --- a/app/src/main/assets/CompileOnDemand/android/PGB9/res/drawable/seekbar_track_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/PGB9/res/drawable/seekbar_track_material.xml @@ -44,7 +44,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable-night/holo_green_light_alpha.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable-night/holo_blue_dark_alpha.xml similarity index 72% rename from app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable-night/holo_green_light_alpha.xml rename to app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable-night/holo_blue_dark_alpha.xml index 273fd8a48..9549a8e79 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable-night/holo_green_light_alpha.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable-night/holo_blue_dark_alpha.xml @@ -2,5 +2,5 @@ + android:color="@*android:color/holo_blue_dark" /> \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable/holo_green_light_alpha.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable/holo_blue_dark_alpha.xml similarity index 72% rename from app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable/holo_green_light_alpha.xml rename to app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable/holo_blue_dark_alpha.xml index 273fd8a48..9549a8e79 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable/holo_green_light_alpha.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable/holo_blue_dark_alpha.xml @@ -2,5 +2,5 @@ + android:color="@*android:color/holo_blue_dark" /> \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable/toast_frame.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable/toast_frame.xml index 68c1dedd0..d1fa7c6b2 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable/toast_frame.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable/toast_frame.xml @@ -6,7 +6,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable/toast_frame_material.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable/toast_frame_material.xml index 68c1dedd0..d1fa7c6b2 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable/toast_frame_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM11/res/drawable/toast_frame_material.xml @@ -6,7 +6,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM2/res/drawable/toast_frame.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM2/res/drawable/toast_frame.xml index 0d95c0202..a27a4713b 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM2/res/drawable/toast_frame.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM2/res/drawable/toast_frame.xml @@ -4,7 +4,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM2/res/drawable/toast_frame_material.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM2/res/drawable/toast_frame_material.xml index 0d95c0202..a27a4713b 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM2/res/drawable/toast_frame_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM2/res/drawable/toast_frame_material.xml @@ -4,7 +4,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM3/res/drawable/toast_frame.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM3/res/drawable/toast_frame.xml index cddb056b9..27e788a5d 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM3/res/drawable/toast_frame.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM3/res/drawable/toast_frame.xml @@ -4,7 +4,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM3/res/drawable/toast_frame_material.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM3/res/drawable/toast_frame_material.xml index cddb056b9..27e788a5d 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM3/res/drawable/toast_frame_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM3/res/drawable/toast_frame_material.xml @@ -4,7 +4,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM4/res/drawable/toast_frame.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM4/res/drawable/toast_frame.xml index d950ad8b5..269cbd0e1 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM4/res/drawable/toast_frame.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM4/res/drawable/toast_frame.xml @@ -4,7 +4,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM4/res/drawable/toast_frame_material.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM4/res/drawable/toast_frame_material.xml index d950ad8b5..269cbd0e1 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM4/res/drawable/toast_frame_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM4/res/drawable/toast_frame_material.xml @@ -4,7 +4,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM6/res/drawable/toast_frame.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM6/res/drawable/toast_frame.xml index 124aea687..a50d66600 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM6/res/drawable/toast_frame.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM6/res/drawable/toast_frame.xml @@ -6,7 +6,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM7/res/drawable-night/toast_frame_material.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM7/res/drawable-night/toast_frame_material.xml index b4b95335c..8778712ca 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM7/res/drawable-night/toast_frame_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM7/res/drawable-night/toast_frame_material.xml @@ -4,7 +4,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM7/res/drawable/toast_frame.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM7/res/drawable/toast_frame.xml index b493f87ac..057e2d5f9 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM7/res/drawable/toast_frame.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM7/res/drawable/toast_frame.xml @@ -4,7 +4,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM7/res/drawable/toast_frame_material.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM7/res/drawable/toast_frame_material.xml index b493f87ac..057e2d5f9 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM7/res/drawable/toast_frame_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM7/res/drawable/toast_frame_material.xml @@ -4,7 +4,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable-night/toast_frame.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable-night/toast_frame.xml index 1d8f30e70..4392f5d7c 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable-night/toast_frame.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable-night/toast_frame.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable-night/toast_frame_material.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable-night/toast_frame_material.xml index 1d8f30e70..4392f5d7c 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable-night/toast_frame_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable-night/toast_frame_material.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable/toast_frame.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable/toast_frame.xml index 74bf3a027..235f03eb2 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable/toast_frame.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable/toast_frame.xml @@ -7,7 +7,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable/toast_frame_material.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable/toast_frame_material.xml index 74bf3a027..235f03eb2 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable/toast_frame_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM8/res/drawable/toast_frame_material.xml @@ -7,7 +7,7 @@ diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM9/res/drawable/toast_frame.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM9/res/drawable/toast_frame.xml index f5e4a1d5d..801c1ca8d 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM9/res/drawable/toast_frame.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM9/res/drawable/toast_frame.xml @@ -8,7 +8,7 @@ - + diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM9/res/drawable/toast_frame_material.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM9/res/drawable/toast_frame_material.xml index f5e4a1d5d..801c1ca8d 100644 --- a/app/src/main/assets/CompileOnDemand/android/TSTFRM9/res/drawable/toast_frame_material.xml +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM9/res/drawable/toast_frame_material.xml @@ -8,7 +8,7 @@ - + diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/values/Iconify.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/values/Iconify.xml index d38ebed48..bbb3e49f1 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/values/Iconify.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP1/res/values/Iconify.xml @@ -1,9 +1,9 @@ - @color/holo_green_light + @color/holo_blue_dark @color/holo_blue_light @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark ?android:textColorPrimary #00000000 #00000000 diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/values/Iconify.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/values/Iconify.xml index d38ebed48..bbb3e49f1 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/values/Iconify.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP2/res/values/Iconify.xml @@ -1,9 +1,9 @@ - @color/holo_green_light + @color/holo_blue_dark @color/holo_blue_light @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark ?android:textColorPrimary #00000000 #00000000 diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/values/Iconify.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/values/Iconify.xml index d38ebed48..bbb3e49f1 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/values/Iconify.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP3/res/values/Iconify.xml @@ -1,9 +1,9 @@ - @color/holo_green_light + @color/holo_blue_dark @color/holo_blue_light @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark ?android:textColorPrimary #00000000 #00000000 diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/values/Iconify.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/values/Iconify.xml index d38ebed48..bbb3e49f1 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/values/Iconify.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SIP4/res/values/Iconify.xml @@ -1,9 +1,9 @@ - @color/holo_green_light + @color/holo_blue_dark @color/holo_blue_light @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark ?android:textColorPrimary #00000000 #00000000 diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SWITCH10/res/drawable/settingslib_thumb_disabled.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SWITCH10/res/drawable/settingslib_thumb_disabled.xml index 1b6a99ac5..13d4d9103 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.settings/SWITCH10/res/drawable/settingslib_thumb_disabled.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SWITCH10/res/drawable/settingslib_thumb_disabled.xml @@ -1,7 +1,6 @@ - + - + - + @@ -50,8 +50,8 @@ diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SWITCH9/res/color/holo_green_light_alpha.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SWITCH9/res/color/holo_blue_dark_alpha.xml similarity index 100% rename from app/src/main/assets/CompileOnDemand/com.android.settings/SWITCH9/res/color/holo_green_light_alpha.xml rename to app/src/main/assets/CompileOnDemand/com.android.settings/SWITCH9/res/color/holo_blue_dark_alpha.xml diff --git a/app/src/main/assets/CompileOnDemand/com.android.settings/SWITCH9/res/drawable/settingslib_track_on_background.xml b/app/src/main/assets/CompileOnDemand/com.android.settings/SWITCH9/res/drawable/settingslib_track_on_background.xml index 34337da7d..fed296c6f 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.settings/SWITCH9/res/drawable/settingslib_track_on_background.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.settings/SWITCH9/res/drawable/settingslib_track_on_background.xml @@ -7,7 +7,7 @@ android:right="6dp" /> diff --git a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH1/res/values-night/config.xml b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH1/res/values-night/config.xml index 398ec9e41..4630c421c 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH1/res/values-night/config.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH1/res/values-night/config.xml @@ -2,7 +2,7 @@ @*android:color/system_neutral1_900 @*android:color/system_neutral1_50 - @*android:color/system_accent1_100 - @*android:color/system_accent3_100 + @*android:color/system_accent1_300 + @*android:color/system_accent3_300 @*android:color/system_neutral1_50 diff --git a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH10/res/drawable/settingslib_thumb_disabled.xml b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH10/res/drawable/settingslib_thumb_disabled.xml index 1b6a99ac5..13d4d9103 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH10/res/drawable/settingslib_thumb_disabled.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH10/res/drawable/settingslib_thumb_disabled.xml @@ -1,7 +1,6 @@ - + - @*android:color/system_accent1_100 - @*android:color/system_accent3_100 + @*android:color/system_accent1_300 + @*android:color/system_accent3_300 @*android:color/system_neutral1_50 diff --git a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH11/res/drawable/settingslib_thumb_disabled.xml b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH11/res/drawable/settingslib_thumb_disabled.xml index 744ac079c..2ff62a448 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH11/res/drawable/settingslib_thumb_disabled.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH11/res/drawable/settingslib_thumb_disabled.xml @@ -1,7 +1,6 @@ - + @*android:color/system_neutral1_900 @*android:color/system_neutral2_400 @*android:color/system_neutral2_700 - @*android:color/system_accent1_100 - @*android:color/system_accent3_100 + @*android:color/system_accent1_300 + @*android:color/system_accent3_300 \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH3/res/values-night/config.xml b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH3/res/values-night/config.xml index ee11b88e9..392c8c636 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH3/res/values-night/config.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH3/res/values-night/config.xml @@ -2,6 +2,6 @@ @*android:color/system_neutral1_50 @*android:color/system_neutral1_900 - @*android:color/system_accent1_100 - @*android:color/system_accent3_100 + @*android:color/system_accent1_300 + @*android:color/system_accent3_300 diff --git a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH5/res/values-night/colors.xml b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH5/res/values-night/colors.xml index 4182a58dc..5421a7d30 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH5/res/values-night/colors.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH5/res/values-night/colors.xml @@ -1,6 +1,6 @@ @*android:color/system_neutral1_900 - @*android:color/system_accent1_100 - @*android:color/system_accent3_100 + @*android:color/system_accent1_300 + @*android:color/system_accent3_300 \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH6/res/drawable-night/settingslib_thumb_on.xml b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH6/res/drawable-night/settingslib_thumb_on.xml index f58c3ebc8..03ddaa18e 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH6/res/drawable-night/settingslib_thumb_on.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH6/res/drawable-night/settingslib_thumb_on.xml @@ -8,7 +8,7 @@ - + - @*android:color/system_accent1_100 - @*android:color/system_accent3_100 + @*android:color/system_accent1_300 + @*android:color/system_accent3_300 @*android:color/system_neutral1_50 diff --git a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH8/res/drawable/settingslib_switch_thumb.xml b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH8/res/drawable/settingslib_switch_thumb.xml index 7ee37ba84..8786b6487 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH8/res/drawable/settingslib_switch_thumb.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH8/res/drawable/settingslib_switch_thumb.xml @@ -19,8 +19,8 @@ @@ -50,8 +50,8 @@ diff --git a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH8/res/drawable/settingslib_thumb_selector.xml b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH8/res/drawable/settingslib_thumb_selector.xml index 7ee37ba84..8786b6487 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH8/res/drawable/settingslib_thumb_selector.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH8/res/drawable/settingslib_thumb_selector.xml @@ -19,8 +19,8 @@ @@ -50,8 +50,8 @@ diff --git a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH8/res/values-night/colors.xml b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH8/res/values-night/colors.xml index 5b3d5efd4..a2fefd2c3 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH8/res/values-night/colors.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH8/res/values-night/colors.xml @@ -2,6 +2,6 @@ @*android:color/system_neutral1_50 @*android:color/system_neutral1_900 - @*android:color/system_accent1_100 - @*android:color/system_accent3_100 + @*android:color/system_accent1_300 + @*android:color/system_accent3_300 \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH9/res/color/holo_green_light_alpha.xml b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH9/res/color/holo_blue_dark_alpha.xml similarity index 100% rename from app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH9/res/color/holo_green_light_alpha.xml rename to app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH9/res/color/holo_blue_dark_alpha.xml diff --git a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH9/res/drawable/settingslib_track_on_background.xml b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH9/res/drawable/settingslib_track_on_background.xml index 34337da7d..fed296c6f 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH9/res/drawable/settingslib_track_on_background.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH9/res/drawable/settingslib_track_on_background.xml @@ -7,7 +7,7 @@ android:right="6dp" /> diff --git a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH9/res/values-night/config.xml b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH9/res/values-night/config.xml index f84f2aa89..d9d9dd7c6 100644 --- a/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH9/res/values-night/config.xml +++ b/app/src/main/assets/CompileOnDemand/com.android.systemui/SWITCH9/res/values-night/config.xml @@ -1,7 +1,7 @@ @*android:color/system_neutral1_50 - @*android:color/system_accent1_100 - @*android:color/system_accent3_100 + @*android:color/system_accent1_300 + @*android:color/system_accent3_300 @*android:color/system_neutral1_50 diff --git a/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP1/res/values/Iconify.xml b/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP1/res/values/Iconify.xml index d38ebed48..bbb3e49f1 100644 --- a/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP1/res/values/Iconify.xml +++ b/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP1/res/values/Iconify.xml @@ -1,9 +1,9 @@ - @color/holo_green_light + @color/holo_blue_dark @color/holo_blue_light @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark ?android:textColorPrimary #00000000 #00000000 diff --git a/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP2/res/values/Iconify.xml b/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP2/res/values/Iconify.xml index d38ebed48..bbb3e49f1 100644 --- a/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP2/res/values/Iconify.xml +++ b/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP2/res/values/Iconify.xml @@ -1,9 +1,9 @@ - @color/holo_green_light + @color/holo_blue_dark @color/holo_blue_light @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark ?android:textColorPrimary #00000000 #00000000 diff --git a/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP3/res/values/Iconify.xml b/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP3/res/values/Iconify.xml index d38ebed48..bbb3e49f1 100644 --- a/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP3/res/values/Iconify.xml +++ b/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP3/res/values/Iconify.xml @@ -1,9 +1,9 @@ - @color/holo_green_light + @color/holo_blue_dark @color/holo_blue_light @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark ?android:textColorPrimary #00000000 #00000000 diff --git a/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP4/res/values/Iconify.xml b/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP4/res/values/Iconify.xml index d38ebed48..bbb3e49f1 100644 --- a/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP4/res/values/Iconify.xml +++ b/app/src/main/assets/CompileOnDemand/com.google.android.apps.wellbeing/SIP4/res/values/Iconify.xml @@ -1,9 +1,9 @@ - @color/holo_green_light + @color/holo_blue_dark @color/holo_blue_light @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark ?android:textColorPrimary #00000000 #00000000 diff --git a/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP1/res/values/Iconify.xml b/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP1/res/values/Iconify.xml index d38ebed48..bbb3e49f1 100644 --- a/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP1/res/values/Iconify.xml +++ b/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP1/res/values/Iconify.xml @@ -1,9 +1,9 @@ - @color/holo_green_light + @color/holo_blue_dark @color/holo_blue_light @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark ?android:textColorPrimary #00000000 #00000000 diff --git a/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP2/res/values/Iconify.xml b/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP2/res/values/Iconify.xml index d38ebed48..bbb3e49f1 100644 --- a/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP2/res/values/Iconify.xml +++ b/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP2/res/values/Iconify.xml @@ -1,9 +1,9 @@ - @color/holo_green_light + @color/holo_blue_dark @color/holo_blue_light @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark ?android:textColorPrimary #00000000 #00000000 diff --git a/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP3/res/values/Iconify.xml b/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP3/res/values/Iconify.xml index d38ebed48..bbb3e49f1 100644 --- a/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP3/res/values/Iconify.xml +++ b/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP3/res/values/Iconify.xml @@ -1,9 +1,9 @@ - @color/holo_green_light + @color/holo_blue_dark @color/holo_blue_light @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark ?android:textColorPrimary #00000000 #00000000 diff --git a/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP4/res/values/Iconify.xml b/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP4/res/values/Iconify.xml index d38ebed48..bbb3e49f1 100644 --- a/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP4/res/values/Iconify.xml +++ b/app/src/main/assets/CompileOnDemand/com.google.android.gms/SIP4/res/values/Iconify.xml @@ -1,9 +1,9 @@ - @color/holo_green_light + @color/holo_blue_dark @color/holo_blue_light @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark ?android:textColorPrimary #00000000 #00000000 diff --git a/app/src/main/assets/Overlays/android/AMAC/res/values/colors.xml b/app/src/main/assets/Overlays/android/AMAC/res/values/colors.xml index bab151e50..f37deb2e2 100644 --- a/app/src/main/assets/Overlays/android/AMAC/res/values/colors.xml +++ b/app/src/main/assets/Overlays/android/AMAC/res/values/colors.xml @@ -7,7 +7,7 @@ @*android:color/holo_blue_light @*android:color/holo_blue_light @*android:color/system_accent1_600 - @*android:color/system_accent1_100 - @*android:color/system_accent1_600 + @*android:color/system_accent1_600 + @*android:color/system_accent1_100 @*android:color/system_accent1_100 \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/AMGC/res/values-night/colors.xml b/app/src/main/assets/Overlays/android/AMGC/res/values-night/colors.xml index 630380359..e2910b56a 100644 --- a/app/src/main/assets/Overlays/android/AMGC/res/values-night/colors.xml +++ b/app/src/main/assets/Overlays/android/AMGC/res/values-night/colors.xml @@ -7,7 +7,7 @@ @*android:color/holo_blue_light @*android:color/holo_blue_light @*android:color/system_accent1_100 - @*android:color/system_accent1_100 - @*android:color/system_accent3_100 + @*android:color/system_accent3_100 + @*android:color/system_accent1_100 @*android:color/system_accent3_100 \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/AMGC/res/values/colors.xml b/app/src/main/assets/Overlays/android/AMGC/res/values/colors.xml index 51d14b95b..ca9e9510f 100644 --- a/app/src/main/assets/Overlays/android/AMGC/res/values/colors.xml +++ b/app/src/main/assets/Overlays/android/AMGC/res/values/colors.xml @@ -7,7 +7,7 @@ @*android:color/holo_blue_light @*android:color/holo_blue_light @*android:color/system_accent1_600 - @*android:color/system_accent1_100 - @*android:color/system_accent3_600 + @*android:color/system_accent3_600 + @*android:color/system_accent1_100 @*android:color/system_accent3_100 \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/PGB/res/drawable/progress_horizontal_material.xml b/app/src/main/assets/Overlays/android/PGB/res/drawable/progress_horizontal_material.xml index 8a71b6ebd..ec62c0a68 100644 --- a/app/src/main/assets/Overlays/android/PGB/res/drawable/progress_horizontal_material.xml +++ b/app/src/main/assets/Overlays/android/PGB/res/drawable/progress_horizontal_material.xml @@ -44,7 +44,7 @@ diff --git a/app/src/main/assets/Overlays/android/PGB/res/drawable/seekbar_thumb_material_anim.xml b/app/src/main/assets/Overlays/android/PGB/res/drawable/seekbar_thumb_material_anim.xml index ab10fbf2d..e644a28be 100644 --- a/app/src/main/assets/Overlays/android/PGB/res/drawable/seekbar_thumb_material_anim.xml +++ b/app/src/main/assets/Overlays/android/PGB/res/drawable/seekbar_thumb_material_anim.xml @@ -11,7 +11,7 @@ - + @@ -20,7 +20,7 @@ - + diff --git a/app/src/main/assets/Overlays/android/PGB/res/drawable/seekbar_track_material.xml b/app/src/main/assets/Overlays/android/PGB/res/drawable/seekbar_track_material.xml index 6e5315a54..f78f7c193 100644 --- a/app/src/main/assets/Overlays/android/PGB/res/drawable/seekbar_track_material.xml +++ b/app/src/main/assets/Overlays/android/PGB/res/drawable/seekbar_track_material.xml @@ -44,7 +44,7 @@ diff --git a/app/src/main/assets/Overlays/android/QSDT/res/values-night/styles.xml b/app/src/main/assets/Overlays/android/QSDT/res/values-night/styles.xml index 34793ddf6..66ab31fac 100644 --- a/app/src/main/assets/Overlays/android/QSDT/res/values-night/styles.xml +++ b/app/src/main/assets/Overlays/android/QSDT/res/values-night/styles.xml @@ -1,7 +1,8 @@ \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSNT1/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSNT1/res/values/iconify.xml index 8a465f499..6b009cfa5 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSNT1/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSNT1/res/values/iconify.xml @@ -7,7 +7,7 @@ true @*android:color/holo_blue_light #FFFFFFFF - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSNT2/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSNT2/res/values-night/iconify.xml index b78341d8f..7501347e9 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSNT2/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSNT2/res/values-night/iconify.xml @@ -7,7 +7,7 @@ true @*android:color/holo_blue_light #FFFFFFFF - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSNT2/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSNT2/res/values/iconify.xml index b78341d8f..7501347e9 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSNT2/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSNT2/res/values/iconify.xml @@ -7,7 +7,7 @@ true @*android:color/holo_blue_light #FFFFFFFF - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSNT3/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSNT3/res/values-night/iconify.xml index 8a465f499..6b009cfa5 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSNT3/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSNT3/res/values-night/iconify.xml @@ -7,7 +7,7 @@ true @*android:color/holo_blue_light #FFFFFFFF - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSNT3/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSNT3/res/values/iconify.xml index 51a86dcb7..863838db4 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSNT3/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSNT3/res/values/iconify.xml @@ -7,7 +7,7 @@ true @*android:color/holo_blue_light #FFFFFFFF - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSNT4/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSNT4/res/values-night/iconify.xml index b78341d8f..7501347e9 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSNT4/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSNT4/res/values-night/iconify.xml @@ -7,7 +7,7 @@ true @*android:color/holo_blue_light #FFFFFFFF - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSNT4/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSNT4/res/values/iconify.xml index a32ede8e3..a166a7d1e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSNT4/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSNT4/res/values/iconify.xml @@ -7,7 +7,7 @@ true @*android:color/holo_blue_light #FFFFFFFF - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values-night/iconify.xml index 765ecae70..60525e214 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values-night/iconify.xml @@ -5,7 +5,7 @@ #FFFFFFFF #BFFFFFFF true - @*android:color/holo_blue_dark + @*android:color/holo_green_light #FFFFFFFF @*android:color/holo_green_dark #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values/iconify.xml index 765ecae70..60525e214 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSPT1/res/values/iconify.xml @@ -5,7 +5,7 @@ #FFFFFFFF #BFFFFFFF true - @*android:color/holo_blue_dark + @*android:color/holo_green_light #FFFFFFFF @*android:color/holo_green_dark #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSPT2/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSPT2/res/values-night/iconify.xml index bbbdce8d5..32eb6081e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSPT2/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSPT2/res/values-night/iconify.xml @@ -3,9 +3,9 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN1/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN1/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN1/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN1/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/drawable-night/ic_qstile_reflect_iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/drawable-night/ic_qstile_reflect_iconify.xml index 4bbf1f05f..0ceba4794 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/drawable-night/ic_qstile_reflect_iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/drawable-night/ic_qstile_reflect_iconify.xml @@ -1,11 +1,11 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/drawable/ic_qstile_reflect_iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/drawable/ic_qstile_reflect_iconify.xml index 4bbf1f05f..0ceba4794 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/drawable/ic_qstile_reflect_iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/drawable/ic_qstile_reflect_iconify.xml @@ -1,11 +1,11 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/values-night/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN10/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/drawable-night/ic_qstile_reflect_iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/drawable-night/ic_qstile_reflect_iconify.xml index 4bbf1f05f..0ceba4794 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/drawable-night/ic_qstile_reflect_iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/drawable-night/ic_qstile_reflect_iconify.xml @@ -1,11 +1,11 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/drawable/ic_qstile_reflect_iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/drawable/ic_qstile_reflect_iconify.xml index 4bbf1f05f..0ceba4794 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/drawable/ic_qstile_reflect_iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/drawable/ic_qstile_reflect_iconify.xml @@ -1,11 +1,11 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/values-night/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN11/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/drawable-night/qs_footer_action_circle_color.xml index 4d28af6b1..07f1cc56e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/drawable-night/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/drawable/qs_footer_action_circle_color.xml index 7f0dc7f42..416bcc4f9 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/drawable/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/values-night/iconify.xml index bd3514bf0..a8d8b172f 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/values/iconify.xml index bd3514bf0..a8d8b172f 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN12/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/drawable-night/qs_footer_action_circle_color.xml index 8668b2df3..a75a44f9a 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/drawable-night/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/drawable/qs_footer_action_circle_color.xml index 08f2a8a46..ab697fda4 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/drawable/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/values-night/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN13/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/drawable-night/qs_footer_action_circle_color.xml index eee574ed7..57a5dd8fd 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/drawable-night/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/drawable/qs_footer_action_circle_color.xml index b591b91a5..4016cafc0 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/drawable/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/values-night/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN14/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/drawable-night/qs_footer_action_circle_color.xml index eee574ed7..57a5dd8fd 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/drawable-night/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/drawable-night/qs_tile_background_shape.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/drawable-night/qs_tile_background_shape.xml index fccb0fc1e..d0494ceeb 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/drawable-night/qs_tile_background_shape.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/drawable-night/qs_tile_background_shape.xml @@ -104,7 +104,7 @@ - + - + diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/drawable/qs_tile_background_shape.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/drawable/qs_tile_background_shape.xml index 50cdc5ea0..74902c914 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/drawable/qs_tile_background_shape.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/drawable/qs_tile_background_shape.xml @@ -104,7 +104,7 @@ - + - + ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN15/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable-night/qs_footer_action_circle_color.xml index eee574ed7..57a5dd8fd 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable-night/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable-night/qs_tile_background_shape.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable-night/qs_tile_background_shape.xml index d9e6d0f56..f9cbb9ef8 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable-night/qs_tile_background_shape.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable-night/qs_tile_background_shape.xml @@ -50,7 +50,7 @@ android:tintMode="multiply"> diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable/qs_footer_action_circle_color.xml index eee574ed7..57a5dd8fd 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable/qs_tile_background_shape.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable/qs_tile_background_shape.xml index 4c4f59960..1d10e6957 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable/qs_tile_background_shape.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/drawable/qs_tile_background_shape.xml @@ -50,7 +50,7 @@ android:tintMode="multiply"> diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/values-night/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN16/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/BBN17/res/drawable-night/holo_green_light_alpha.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable-night/holo_blue_dark_alpha.xml similarity index 72% rename from app/src/main/assets/Overlays/com.android.systemui/BBN17/res/drawable-night/holo_green_light_alpha.xml rename to app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable-night/holo_blue_dark_alpha.xml index 3c716f139..2e957e447 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/BBN17/res/drawable-night/holo_green_light_alpha.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable-night/holo_blue_dark_alpha.xml @@ -2,5 +2,5 @@ + android:color="@*android:color/holo_blue_dark" /> \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable-night/qs_footer_action_circle_color.xml index 4c537bbf0..41d8d4ce4 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable-night/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable-night/qs_tile_background_shape.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable-night/qs_tile_background_shape.xml index 4b756dcd8..2f3f113ad 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable-night/qs_tile_background_shape.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable-night/qs_tile_background_shape.xml @@ -18,7 +18,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/BBN17/res/drawable/holo_green_light_alpha.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable/holo_blue_dark_alpha.xml similarity index 72% rename from app/src/main/assets/Overlays/com.android.systemui/BBN17/res/drawable/holo_green_light_alpha.xml rename to app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable/holo_blue_dark_alpha.xml index 3c716f139..2e957e447 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/BBN17/res/drawable/holo_green_light_alpha.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable/holo_blue_dark_alpha.xml @@ -2,5 +2,5 @@ + android:color="@*android:color/holo_blue_dark" /> \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable/qs_footer_action_circle_color.xml index b20498dd0..2b8f14e42 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable/qs_tile_background_shape.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable/qs_tile_background_shape.xml index 4b756dcd8..2f3f113ad 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable/qs_tile_background_shape.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/drawable/qs_tile_background_shape.xml @@ -18,7 +18,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/values-night/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN17/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/drawable-night/qs_footer_action_circle_color.xml index 83add0166..afe228f1e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/drawable-night/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/drawable/qs_footer_action_circle_color.xml index 83add0166..afe228f1e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/drawable/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/values-night/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN18/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable-night/qs_footer_action_circle.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable-night/qs_footer_action_circle.xml index 8668b2df3..a75a44f9a 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable-night/qs_footer_action_circle.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable-night/qs_footer_action_circle.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable-night/qs_footer_action_circle_color.xml index f8e38c663..655aef899 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable-night/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable/qs_footer_action_circle.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable/qs_footer_action_circle.xml index 08f2a8a46..ab697fda4 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable/qs_footer_action_circle.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable/qs_footer_action_circle.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable/qs_footer_action_circle_color.xml index f8e38c663..655aef899 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/drawable/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/values-night/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN19/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/drawable-night/qs_footer_action_circle_color.xml index 762e84203..cf934661d 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/drawable-night/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ @@ -32,7 +32,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/drawable/qs_footer_action_circle_color.xml index 762e84203..cf934661d 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/drawable/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ @@ -32,7 +32,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/values-night/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN2/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/holo_blue_dark_alpha.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/holo_blue_dark_alpha.xml new file mode 100644 index 000000000..9549a8e79 --- /dev/null +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/holo_blue_dark_alpha.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/holo_green_light_alpha.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/holo_green_light_alpha.xml deleted file mode 100644 index 273fd8a48..000000000 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/holo_green_light_alpha.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/qs_footer_action_circle_color.xml index 614a96de5..7eded7c18 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/qs_tile_background_shape.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/qs_tile_background_shape.xml index f9d2f4b07..21ffac4be 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/qs_tile_background_shape.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable-night/qs_tile_background_shape.xml @@ -35,7 +35,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/holo_blue_dark_alpha.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/holo_blue_dark_alpha.xml new file mode 100644 index 000000000..9549a8e79 --- /dev/null +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/holo_blue_dark_alpha.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/holo_green_light_alpha.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/holo_green_light_alpha.xml deleted file mode 100644 index 273fd8a48..000000000 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/holo_green_light_alpha.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/qs_footer_action_circle_color.xml index e8888be8a..85341a979 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/qs_tile_background_shape.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/qs_tile_background_shape.xml index fbd66e120..81cf56fb3 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/qs_tile_background_shape.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/drawable/qs_tile_background_shape.xml @@ -29,7 +29,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/values-night/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN20/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/drawable-night/qs_footer_action_circle_color.xml index c04ecc102..4facfbf52 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/drawable-night/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/drawable/qs_footer_action_circle_color.xml index c04ecc102..4facfbf52 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/drawable/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/values-night/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN3/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/drawable-night/qs_footer_action_circle_color.xml index 126b5a350..104624e4b 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/drawable-night/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/drawable/qs_footer_action_circle_color.xml index 126b5a350..104624e4b 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/drawable/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/values-night/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN4/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/drawable-night/qs_footer_action_circle_color.xml index 1c96ab10e..9d573b54a 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/drawable-night/qs_footer_action_circle_color.xml @@ -21,7 +21,7 @@ android:topRightRadius="14.0dp" /> diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/drawable/qs_footer_action_circle_color.xml index 1c96ab10e..9d573b54a 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/drawable/qs_footer_action_circle_color.xml @@ -21,7 +21,7 @@ android:topRightRadius="14.0dp" /> diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/values-night/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN5/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/drawable-night/qs_footer_action_circle_color.xml index 7ac8c130b..fed5b4e58 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/drawable-night/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ @@ -26,7 +26,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/drawable/qs_footer_action_circle_color.xml index 7ac8c130b..fed5b4e58 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/drawable/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ @@ -26,7 +26,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/values-night/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN6/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/drawable-night/qs_footer_action_circle_color.xml index b591b91a5..4016cafc0 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/drawable-night/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/drawable/qs_footer_action_circle_color.xml index b591b91a5..4016cafc0 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/drawable/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/values-night/iconify.xml index 74fdb5cfc..e49bae110 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/values/iconify.xml index 74fdb5cfc..e49bae110 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN7/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/drawable-night/qs_footer_action_circle_color.xml index b591b91a5..4016cafc0 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/drawable-night/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/drawable/qs_footer_action_circle_color.xml index b591b91a5..4016cafc0 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/drawable/qs_footer_action_circle_color.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/values-night/iconify.xml index 9fa29fd33..9a1896306 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/values/iconify.xml index 9fa29fd33..9a1896306 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN8/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN9/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN9/res/values-night/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN9/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN9/res/values-night/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSN9/res/values/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSN9/res/values/iconify.xml index f2c0d794f..7fc757a4e 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSN9/res/values/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSN9/res/values/iconify.xml @@ -4,7 +4,7 @@ ?android:colorBackground true @*android:color/holo_blue_light - @*android:color/holo_green_light + @*android:color/holo_blue_dark #FFFFFFFF #FFFFFFFF diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSP1/res/drawable-night/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSP1/res/drawable-night/qs_footer_action_circle_color.xml index e16c7af63..65cff50ed 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSP1/res/drawable-night/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSP1/res/drawable-night/qs_footer_action_circle_color.xml @@ -14,7 +14,7 @@ + android:startColor="@*android:color/holo_green_light" /> diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSP1/res/drawable/qs_footer_action_circle_color.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSP1/res/drawable/qs_footer_action_circle_color.xml index e16c7af63..65cff50ed 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSP1/res/drawable/qs_footer_action_circle_color.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSP1/res/drawable/qs_footer_action_circle_color.xml @@ -14,7 +14,7 @@ + android:startColor="@*android:color/holo_green_light" /> diff --git a/app/src/main/assets/Overlays/com.android.systemui/QSSP1/res/values-night/iconify.xml b/app/src/main/assets/Overlays/com.android.systemui/QSSP1/res/values-night/iconify.xml index 71078d81d..dbf8ec987 100644 --- a/app/src/main/assets/Overlays/com.android.systemui/QSSP1/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/com.android.systemui/QSSP1/res/values-night/iconify.xml @@ -3,7 +3,7 @@ - - + + + + + + + + + + - - + + + + diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index c56685e60..2ddc6560d 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -25,13 +25,10 @@ true - @font/normal - @font/normal - 1.5 - @color/textColorPrimary - @color/textColorSecondary - @color/textColorPrimary - @color/textColorPrimary + @color/text_color_primary + @color/text_color_secondary + @color/text_color_primary + @color/text_color_primary @color/colorAccent ?android:selectableItemBackground ?android:selectableItemBackground @@ -42,50 +39,7 @@ @color/colorContainer @color/colorContainer @color/red - - - @color/colorPrimaryDark - @color/colorPrimaryContainerLight - @color/colorOnPrimaryContainerLight - @color/colorSecondaryContainerLight - @color/colorOnSecondaryContainerLight - @color/colorTertiaryLight - @color/colorOnTertiaryLight - @color/colorTertiaryContainerLight - @color/colorOnTertiaryContainerLight - @color/colorSurfaceVariantLight - @color/colorOnSurfaceVariantLight - @color/colorSurfaceDark - @color/colorOnSurfaceDark - @color/colorOutlineLight - @color/colorErrorContainerLight - @color/colorOnErrorContainerLight - @style/TextAppearance.Material3.DisplayLarge - @style/TextAppearance.Material3.DisplayMedium - - @style/TextAppearance.Material3.DisplaySmall - @style/TextAppearance.Material3.HeadlineLarge - - @style/TextAppearance.Material3.HeadlineMedium - - @style/TextAppearance.Material3.HeadlineSmall - - @style/TextAppearance.Material3.TitleLarge - @style/TextAppearance.Material3.TitleMedium - @style/TextAppearance.Material3.TitleSmall - @style/TextAppearance.Material3.BodyLarge - @style/TextAppearance.Material3.BodyMedium - @style/TextAppearance.Material3.BodySmall - @style/TextAppearance.Material3.LabelLarge - @style/TextAppearance.Material3.LabelMedium - @style/TextAppearance.Material3.LabelSmall - @style/ShapeAppearance.Material3.SmallComponent - - - @style/ShapeAppearance.Material3.MediumComponent - - @style/ShapeAppearance.Material3.LargeComponent - + 1.4 diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index de4fe0292..a50f75695 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -205,7 +205,7 @@ Desligado Bluetooth Ligado - Personalizar a IU Android + Personalizar a IU Android Créditos Contribuidores Pré-visualização do leitor multimédia @@ -264,7 +264,7 @@ Descarregar Agenda de atualizações Quando verificar por atualizações - Nova atualização disponível! + Nova atualização disponível! Ver registo de alterações Ocultar registo de alterações Já se encontra com a atualização mais recente. @@ -512,7 +512,7 @@ Tema das DR translúcido de duplo tom\\nNão utilizar formas personalizadas Desativar o sistema Monet Ajuda a manter as cores personalizadas - Estilos + Estilos \"Tweaks\" Definições Fechar diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 35fb97d6d..55d689e66 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -144,7 +144,7 @@ Код версии: Имя версия: Логотип Iconify - Улучшить скучный интерфейс Андроид + Улучшить скучный интерфейс Андроид Iconify только что обновился! Aurora Gradicon @@ -208,7 +208,7 @@ Цвет Monet в строке навигации Необходим перезапуск System UI Нет - Доступно обновление + Доступно обновление Не удалось подключится к серверу!\nЭто может быть вызвано проблемами с интернетом или доступностью серверов. Пожалуйста, попытайтесь снова позже. Не доступно Превью уведомления.\nНажмите, чтобы применить этот стиль. @@ -480,7 +480,7 @@ Системный Системный (инвертированный) Monet / акцент - Стили + Стили Твики Настройки Закрыть diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 2ef533420..8b537f612 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -96,7 +96,7 @@ Kapalı Bluetooth Açık - Sıkıcı Android Arayüzünü Özelleştir + Sıkıcı Android Arayüzünü Özelleştir Katkıda Bulunanlar Geliştiriciler Medya Oynatıcı Ön İzleme @@ -210,7 +210,7 @@ İndir Güncellemeyi Zamanla Güncelleme kontrolü yapılacak zamanı ayarla - Yeni güncelleme mevcut! + Yeni güncelleme mevcut! Değişim Günlüğünü Görüntüle Değişim Günlüğünü Gizle Zaten güncel sürümü kullanıyorsunuz. diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 05ec2bd44..526582f2f 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -112,7 +112,7 @@ Tắt Bluetooth TRÊN - Tùy chỉnh giao diện người dùng Android nhàm chán + Tùy chỉnh giao diện người dùng Android nhàm chán Tín dụng người đóng góp Xem trước trình phát đa phương tiện @@ -223,7 +223,7 @@ Tải xuống Cập nhật lịch biểu Khi nào cần kiểm tra cập nhật - Cập nhật mới có sẵn! + Cập nhật mới có sẵn! Xem nhật ký thay đổi Ẩn nhật ký thay đổi Bạn đã được cập nhật. @@ -473,7 +473,7 @@ Theo hệ thống Nghịch đảo hệ thống Monet / Điểm nhấn - Phong cách + Phong cách Tinh chỉnh Cài đặt Đóng diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 6a718a192..78d870871 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -119,7 +119,7 @@ 禁用 蓝牙 开启 - 自定义无趣的 Android UI + 自定义无趣的 Android UI 鸣谢 贡献者 媒体播放器预览 @@ -233,7 +233,7 @@ 下载 计划更新 何时检查更新 - 新的更新可用! + 新的更新可用! 查看更新日志 隐藏更新日志 你已经是最新版本了。 @@ -516,7 +516,7 @@ 跟随系统 系统反转 Monet / 强调色 - 样式 + 样式 调整 设置 禁用 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bed68c7b4..555117f1d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -119,8 +119,9 @@ Off Bluetooth On - Customize Boring Android UI + Customize Boring Android UI Credits + Special Thanks Contributors Media Player Preview Accent Background @@ -233,7 +234,7 @@ Download Update Schedule When to check for update - New update available! + Update available! View Changelog Hide Changelog You are already up to date. @@ -245,6 +246,7 @@ You will loose your current setup and settings. Yes No + Understood Imported settings successfully Saved settings successfully Every Time @@ -520,7 +522,7 @@ Follow System System Inverse Monet / Accent - Styles + Home Tweaks Settings Close @@ -629,4 +631,7 @@ Monet Style Module Not Activated System service not running + Current version: %s + Tap on preview to select + Don\'t show again diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 6c71af9a7..a3fc71887 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -142,6 +142,8 @@ 0dp 0dp @null + @color/textColorPrimaryInverse + textStart @@ -178,19 +181,24 @@ center_vertical - + + + + + From 21ba5a7412d6831a8441638f5ca0b2f770e4f142 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sun, 3 Sep 2023 20:59:07 +0600 Subject: [PATCH 109/215] Improve homepage card view --- .../drdisagree/iconify/ui/fragments/Home.java | 9 ++- .../iconify/ui/fragments/Settings.java | 8 ++- .../drawable-night-v24/img_home_card_bg.png | Bin 0 -> 571899 bytes app/src/main/res/drawable-v24/ic_card.xml | 18 ++++++ .../res/drawable-v24/img_home_card_bg.png | Bin 0 -> 598171 bytes app/src/main/res/layout/fragment_home.xml | 2 + app/src/main/res/layout/view_home_card.xml | 17 +++++- .../main/res/layout/view_settings_misc.xml | 56 ++++++++++++++++++ 8 files changed, 107 insertions(+), 3 deletions(-) create mode 100644 app/src/main/res/drawable-night-v24/img_home_card_bg.png create mode 100644 app/src/main/res/drawable-v24/ic_card.xml create mode 100644 app/src/main/res/drawable-v24/img_home_card_bg.png diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Home.java b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Home.java index 1f6e12e6d..86640214b 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Home.java +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Home.java @@ -59,6 +59,7 @@ import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; +import java.util.Objects; public class Home extends BaseFragment { @@ -160,6 +161,12 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, * */ + binding.homeCard.container.setVisibility(Prefs.getBoolean(SHOW_HOME_CARD, true) ? View.VISIBLE : View.GONE); + binding.homeCard.button.setOnClickListener(view1 -> binding.homeCard.container.animate().translationX(binding.homeCard.container.getWidth() * 2f).alpha(0f).withEndAction(() -> { + binding.homeCard.container.setVisibility(View.GONE); + Prefs.putBoolean(SHOW_HOME_CARD, false); + }).start()); + return view; } @@ -270,7 +277,7 @@ protected void onPostExecute(String jsonStr) { if (Integer.parseInt(latestVersion.getString(VER_CODE)) > BuildConfig.VERSION_CODE) { NotificationManager notificationManager = (NotificationManager) requireActivity().getSystemService(Context.NOTIFICATION_SERVICE); createChannel(notificationManager); - NotificationManager manager = (NotificationManager) Iconify.getAppContext().getSystemService(Context.NOTIFICATION_SERVICE); + NotificationManager manager = (NotificationManager) Objects.requireNonNull(Iconify.getAppContext()).getSystemService(Context.NOTIFICATION_SERVICE); NotificationChannel channel = manager.getNotificationChannel(getResources().getString(R.string.update_notification_channel_name)); if (ContextCompat.checkSelfPermission(requireActivity(), Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED && channel.getImportance() != NotificationManager.IMPORTANCE_NONE) { showUpdateNotification(); diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.java b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.java index 80a5868bd..b2e3f7f7f 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.java +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.java @@ -9,6 +9,7 @@ import static com.drdisagree.iconify.common.Preferences.FIRST_INSTALL; import static com.drdisagree.iconify.common.Preferences.ON_HOME_PAGE; import static com.drdisagree.iconify.common.Preferences.RESTART_SYSUI_AFTER_BOOT; +import static com.drdisagree.iconify.common.Preferences.SHOW_HOME_CARD; import static com.drdisagree.iconify.common.Preferences.SHOW_XPOSED_WARN; import static com.drdisagree.iconify.common.Resources.MODULE_DIR; import static com.drdisagree.iconify.utils.AppUtil.restartApplication; @@ -201,7 +202,12 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, if (isChecked) SystemUtil.enableRestartSystemuiAfterBoot(); else SystemUtil.disableRestartSystemuiAfterBoot(); }); - ((View) binding.settingsMisc.restartSysuiAfterBoot.getParent()).setOnClickListener(v -> binding.settingsMisc.restartSysuiAfterBoot.toggle()); + binding.settingsMisc.restartSysuiAfterBootContainer.setOnClickListener(v -> binding.settingsMisc.restartSysuiAfterBoot.toggle()); + + // Home page card + binding.settingsMisc.homePageCard.setChecked(Prefs.getBoolean(SHOW_HOME_CARD, true)); + binding.settingsMisc.homePageCard.setOnCheckedChangeListener((buttonView, isChecked) -> Prefs.putBoolean(SHOW_HOME_CARD, isChecked)); + binding.settingsMisc.homePageCardContainer.setOnClickListener(v -> binding.settingsMisc.homePageCard.toggle()); // Clear App Cache binding.settingsMisc.clearCache.setOnClickListener(v -> { diff --git a/app/src/main/res/drawable-night-v24/img_home_card_bg.png b/app/src/main/res/drawable-night-v24/img_home_card_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..7d531ffc9e89691fcfcf31488aa95ba4433af130 GIT binary patch literal 571899 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