Skip to content

About

?? Android Material 3 app for customizable, auto-updating desktop widgets with transparent background, custom corner radius, and adaptive scaling.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

🔥 FlameWidget MD3 — Android-приложение для адаптивных виджетов рабочего стола

Современное Android-приложение на Jetpack Compose в стиле Material Design 3 (Material You), позволяющее создавать красивые, динамически обновляемые и идеально подогнанные по размерам виджеты рабочего стола из любой ссылки на изображение.


🎯 Адаптивность и подгонка по размерам

На рабочем столе Android виджеты привязаны к сетке рабочего стола лаунчера (2x2, 3x2, 4x2, 4x4). В FlameWidget реализована плавная и качественная обработка пропорций:

  1. Режимы масштабирования (Scale Modes):

    • По размеру (Fit): Сохраняет оригинальные пропорции изображения (например, 1:1), центрирует без растяжения и обрезки.
    • Размытый фон (Ambient Blur): Если поставить квадратную картинку в широкий виджет 4x2, по центру отображается четкое изображение, а по бокам — стильное мягкое размытие в цвет самого изображения.
    • Заполнение (Crop): Заполняет виджет целиком до краев с красивым скруглением.
    • Растянуть (FitXY): Растягивает на всю площадь ячейки.
  2. Прозрачная подложка по умолчанию:

    • Фон виджета прозрачный, благодаря чему изображение органично смотрится на любых обоях без лишних рамок. Также доступны темы фона MD3, AMOLED и светлая.
  3. Адаптивные скругления (MD3 / Android 12+):

    • На Android 12+ (API 31+) виджет автоматически использует системный радиус скругления домашнего экрана.
    • Настраиваемый ползунок радиуса: от 0 до 36 dp (по умолчанию 24 dp в стиле Material 3).
  4. Настраиваемый внутренний отступ (Padding):

    • Регулировка от 0 до 20 dp, чтобы изображение не прилипало вплотную к краям сетки лаунчера.
  5. Интерактивное изменение размера на рабочем столе:

    • Поддержка resizeMode="horizontal|vertical".
    • Зажмите виджет пальцем на 1 секунду — появятся маркеры изменения размера, потяните их в любую сторону. Виджет мгновенно перерисуется в высоком качестве с антиалиасингом (BitmapProcessor).

✨ Возможности приложения

  • 🎨 Material Design 3: Динамические цвета (Dynamic Color / Material You), адаптация под темную и светлую тему, выразительные карточки и плавная типографика.
  • 👁 Живой предпросмотр (Live Preview): В реальном времени показывает, как будет выглядеть виджет в разных пропорциях сетки (2x2, 4x2, 3x2, 4x4) на фоне обоев.
  • 📌 Добавление в 1 клик: Кнопка «Добавить на рабочий стол» прямо из приложения через AppWidgetManager.requestPinAppWidget.
  • 🔄 Автообновление и WorkManager:
    • Настраиваемый период автообновления в фоне (каждые 15 мин, 30 мин, 1 час, 3 часа, 12 часов или раз в день).
    • Работает после перезагрузки телефона благодаря BootReceiver.
    • Автоматический обход кэша (_ts=timestamp), чтобы всегда отображалась актуальная картинка.
  • ⚡ Мгновенное обновление по нажатию:
    • Кнопка перезагрузки прямо в углу виджета на рабочем столе.
    • Нажатие на виджет: обновление, открытие редактора, открытие ссылки в браузере или полноэкранный просмотр.
  • 📝 Редактирование созданных виджетов:
    • Любой существующий виджет можно изменить в любой момент (поменять ссылку, отступы, скругление или режим фона).

🛠 Технологический стек

  • Язык: Kotlin 1.9.22
  • UI: Jetpack Compose + Material 3 (BOM 2024.02.01)
  • Виджеты: AppWidgetProvider + RemoteViews + Bitmap Canvas Rendering
  • Фоновая работа: AndroidX WorkManager (PeriodicWorkRequest)
  • Загрузка и кэширование: OkHttp3 + Coil Compose
  • Архитектура: MVVM, StateFlow, Coroutines
  • Оптимизация: R8 / ProGuard Full Mode (размер release APK всего ~1.6 МБ)

🚀 Сборка проекта

В Android Studio

  1. Запустите Android Studio.
  2. Выберите File -> Open... и откройте папку проекта.
  3. Дождитесь автоматической синхронизации Gradle.
  4. Нажмите Run (Shift + F10).

Через командную строку

# Сборка оптимизированного релизного APK
.\gradlew.bat assembleRelease

Готовый установочный APK появится по пути: app/build/outputs/apk/release/app-release.apk


Создано для https://t.me/flameintgbot

About

?? Android Material 3 app for customizable, auto-updating desktop widgets with transparent background, custom corner radius, and adaptive scaling.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages