Skip to content

Quadrotez/WallpaperTimer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WallpaperTimer

Приложение для автоматической смены обоев по расписанию на Android.

Возможности

  • Расписания — создавайте неограниченное количество расписаний смены обоев
  • Точное время — обои меняются в заданный час и минуту
  • Гибкие дни повторения:
    • Каждый день
    • По будням (Пн–Пт)
    • Еженедельно (выбранный день недели)
    • Конкретные дни (любая комбинация дней)
  • Несколько фото — фотографии меняются поочерёдно при каждом срабатывании
  • Редактор обрезки — встроенный кроппер с сеткой, перетаскиванием углов и возможностью пропустить обрезку
  • Включение/выключение — каждое расписание можно отдельно включить или отключить без удаления
  • Работа после перезагрузки — расписания восстанавливаются автоматически

Требования

  • Android 7.0 (API 24) и выше
  • Разрешение на установку обоев
  • Разрешение на точные будильники (Android 12+, запрашивается при первом запуске)

Установка в Android Studio

  1. Распакуйте архив WallpaperScheduler_v2.zip в папку app/ вашего проекта
  2. В libs.versions.toml добавьте Gson (если не добавлен):
    [versions]
    gson = "2.10.1"
    
    [libraries]
    gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
  3. Убедитесь, что в build.gradle.kts (корневой) подключён только плагин AGP:
    plugins {
        alias(libs.plugins.android.application) apply false
    }
  4. Нажмите Sync Project with Gradle Files
  5. Запустите на устройстве или эмуляторе

Структура проекта

app/
├── src/main/
│   ├── java/com/example/wallpaperapp/
│   │   ├── MainActivity.kt          # Главный экран со списком расписаний
│   │   ├── AddScheduleActivity.kt   # Создание и редактирование расписания
│   │   ├── CropActivity.kt          # Экран обрезки фотографии
│   │   ├── CropImageView.kt         # Кастомный View-кроппер
│   │   ├── WallpaperSchedule.kt     # Модель данных расписания
│   │   ├── ScheduleRepository.kt    # Сохранение расписаний (SharedPreferences + Gson)
│   │   ├── ScheduleManager.kt       # Управление AlarmManager
│   │   ├── WallpaperReceiver.kt     # BroadcastReceiver — смена обоев
│   │   ├── BootReceiver.kt          # Восстановление после перезагрузки
│   │   ├── ScheduleAdapter.kt       # RecyclerView адаптер списка расписаний
│   │   └── PhotoAdapter.kt          # RecyclerView адаптер фотографий
│   ├── res/
│   │   ├── layout/
│   │   │   ├── activity_main.xml
│   │   │   ├── activity_add_schedule.xml
│   │   │   ├── activity_crop.xml
│   │   │   ├── item_schedule.xml
│   │   │   └── item_photo.xml
│   │   └── values/
│   │       ├── colors.xml
│   │       ├── strings.xml
│   │       └── themes.xml
│   └── AndroidManifest.xml
└── build.gradle

Как это работает

  1. Пользователь создаёт расписание: указывает название, время, дни недели и добавляет фотографии
  2. При сохранении ScheduleManager регистрирует точный будильник через AlarmManager
  3. В назначенное время срабатывает WallpaperReceiver, который:
    • Берёт текущее фото из списка по индексу
    • Устанавливает его как обои (рабочий стол + экран блокировки)
    • Увеличивает индекс для следующего срабатывания
    • Планирует следующий будильник
  4. BootReceiver восстанавливает все активные расписания после перезагрузки устройства

Разрешения

Разрешение Назначение
SET_WALLPAPER Установка обоев
READ_MEDIA_IMAGES / READ_EXTERNAL_STORAGE Доступ к галерее
RECEIVE_BOOT_COMPLETED Восстановление после перезагрузки
SCHEDULE_EXACT_ALARM / USE_EXACT_ALARM Точное срабатывание по времени
WAKE_LOCK Пробуждение устройства для смены обоев

Версии

Версия Изменения
2.0 Расписания, кроппер, несколько фото, дни недели
1.0 Базовая ручная смена обоев

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors