-
Notifications
You must be signed in to change notification settings - Fork 87
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
191 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
14 changes: 14 additions & 0 deletions
14
android/app/src/main/kotlin/com/github/jing332/alistflutter/BootReceiver.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package com.github.jing332.alistflutter | ||
|
||
import android.content.BroadcastReceiver | ||
import android.content.Context | ||
import android.content.Intent | ||
import com.github.jing332.alistflutter.config.AppConfig | ||
|
||
class BootReceiver : BroadcastReceiver() { | ||
override fun onReceive(context: Context, intent: Intent) { | ||
if (intent.action == Intent.ACTION_BOOT_COMPLETED && AppConfig.isStartAtBootEnabled) { | ||
context.startService(Intent(context, AListService::class.java)) | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
import 'package:flutter/material.dart'; | ||
|
||
class DividerPreference extends StatelessWidget { | ||
const DividerPreference({super.key, required this.title}); | ||
|
||
final String title; | ||
|
||
@override | ||
Widget build(BuildContext context) { | ||
return Column(children: [ | ||
const Divider( | ||
height: 1, | ||
), | ||
Container( | ||
alignment: Alignment.center, | ||
padding: const EdgeInsets.fromLTRB(16, 8, 16, 8), | ||
child: Text( | ||
title, | ||
style: Theme.of(context).textTheme.titleMedium?.copyWith(color: Theme.of(context).primaryColor), | ||
), | ||
), | ||
]); | ||
} | ||
} | ||
|
||
class BasicPreference extends StatelessWidget { | ||
final String title; | ||
final String subtitle; | ||
final Widget? leading; | ||
final Widget? trailing; | ||
final GestureTapCallback? onTap; | ||
|
||
const BasicPreference({ | ||
super.key, | ||
required this.title, | ||
required this.subtitle, | ||
this.onTap, | ||
this.leading, | ||
this.trailing, | ||
}); | ||
|
||
@override | ||
Widget build(BuildContext context) { | ||
return ListTile( | ||
title: Text(title), | ||
subtitle: Text(subtitle), | ||
leading: leading, | ||
trailing: trailing, | ||
onTap: onTap, | ||
); | ||
} | ||
} | ||
|
||
class SwitchPreference extends StatelessWidget { | ||
const SwitchPreference({ | ||
super.key, | ||
required this.title, | ||
required this.subtitle, | ||
this.icon, | ||
required this.value, | ||
required this.onChanged, | ||
}); | ||
|
||
final String title; | ||
final String subtitle; | ||
final Widget? icon; | ||
final bool value; | ||
final ValueChanged<bool> onChanged; | ||
|
||
@override | ||
Widget build(BuildContext context) { | ||
return BasicPreference( | ||
title: title, | ||
subtitle: subtitle, | ||
leading: icon, | ||
trailing: Switch(value: value, onChanged: onChanged), | ||
onTap: () { | ||
onChanged(!value); | ||
}, | ||
); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
import 'package:alist_flutter/generated_api.dart'; | ||
import 'package:alist_flutter/pages/settings/preference_widgets.dart'; | ||
import 'package:flutter/material.dart'; | ||
import 'package:get/get.dart'; | ||
|
||
class SettingsScreen extends StatelessWidget { | ||
const SettingsScreen({Key? key}) : super(key: key); | ||
|
||
@override | ||
Widget build(BuildContext context) { | ||
final controller = Get.put(SettingsController()); | ||
return Scaffold( | ||
body: Obx( | ||
() => ListView( | ||
children: [ | ||
// SizedBox(height: MediaQuery.of(context).padding.top), | ||
|
||
const DividerPreference(title: '通用'), | ||
|
||
SwitchPreference( | ||
title: '自动检查更新', | ||
subtitle: '打开主界面时自动从Github检查更新。', | ||
icon: const Icon(Icons.system_update), | ||
value: controller.autoUpdate, | ||
onChanged: (value) { | ||
controller.autoUpdate = value; | ||
}, | ||
), | ||
SwitchPreference( | ||
title: '唤醒锁', | ||
subtitle: '开启防止锁屏后CPU休眠,保持进程在后台运行。(部分系统可能导致杀后台)', | ||
icon: const Icon(Icons.screen_lock_portrait), | ||
value: controller.wakeLock, | ||
onChanged: (value) { | ||
controller.wakeLock = value; | ||
}, | ||
), | ||
SwitchPreference( | ||
title: '开机自启动服务', | ||
subtitle: '在开机后自动启动AList服务。(请确保授予自启动权限)', | ||
icon: const Icon(Icons.power_settings_new), | ||
value: controller.startAtBoot, | ||
onChanged: (value) { | ||
controller.startAtBoot = value; | ||
}, | ||
), | ||
], | ||
), | ||
)); | ||
} | ||
} | ||
|
||
class SettingsController extends GetxController { | ||
final _autoUpdate = true.obs; | ||
|
||
set autoUpdate(value) => | ||
{_autoUpdate.value = value, AppConfig().setAutoCheckUpdateEnabled(value)}; | ||
|
||
get autoUpdate => _autoUpdate.value; | ||
|
||
final _wakeLock = true.obs; | ||
|
||
set wakeLock(value) => | ||
{_wakeLock.value = value, AppConfig().setWakeLockEnabled(value)}; | ||
|
||
get wakeLock => _wakeLock.value; | ||
|
||
final _autoStart = true.obs; | ||
|
||
set startAtBoot(value) => | ||
{_autoStart.value = value, AppConfig().setStartAtBootEnabled(value)}; | ||
|
||
get startAtBoot => _autoStart.value; | ||
|
||
@override | ||
void onInit() { | ||
final cfg = AppConfig(); | ||
cfg.isAutoCheckUpdateEnabled().then((value) => autoUpdate = value); | ||
cfg.isWakeLockEnabled().then((value) => wakeLock = value); | ||
cfg.isStartAtBootEnabled().then((value) => startAtBoot = value); | ||
|
||
super.onInit(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters