guru_sdk/guru_ui/example/lib/pages/settings/settings_view.dart

117 lines
4.7 KiB
Dart
Raw Normal View History

import 'dart:io';
import 'package:example/data/settings/ui_settings.dart';
import 'package:example/theme/example_theme.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:guru_utils/app_ownership/app_ownership_utils.dart';
import 'package:guru_utils/audio/audio_effector.dart';
import 'package:guru_widgets/pages/settings/guru_settings_page.dart';
import 'package:guru_widgets/button/single_tap_widget.dart';
import 'package:guru_widgets/common/flexible_container.dart';
import 'package:auto_size_text/auto_size_text.dart';
import 'package:guru_widgets/common/spacer.dart';
import 'package:guru_widgets/theme/guru_theme.dart';
import 'package:guru_widgets/banner/purchase_banner.dart';
import 'package:guru_utils/router/router.dart';
import '../../route/router.dart';
import 'remove_ads/remove_ads_card.dart';
import 'settings_controller.dart';
class SettingsPage extends GetWidget<SettingsController> {
final GlobalKey tipsKey = GlobalKey();
SettingsPage({ Key? key}) : super(key: key);
InseparableSettingItem _buildSound() {
return SwitchSetting(
enabledTitle: "Sound Effects",
leading: "assets/images/ic_sound.png",
settingData: UiSettings.instance.checkedTileBol,
onChanged: ((value) {
UiSettings.instance.checkedTileBol.set(value);
controller.changeValue(value);
})
);
}
InseparableSettingItem _buildVibration() {
return SwitchSetting(
enabledTitle: "Vibration",
leading: "assets/images/ic_zhendong.png",
settingData: UiSettings.instance.checkedTileBol,
onChanged: ((value) {
UiSettings.instance.checkedTileBol.set(value);
})
);
}
InseparableSettingItem _buildTheme() {
return EntranceSetting(title: "Theme", leading: "assets/images/ic_theme.png");
}
@override
Widget build(BuildContext context) {
final controller = Get.find<SettingsController>();
final model = Get.find<SettingsController>().model;
final guruTheme = ExampleThemes.defaultGuruTheme;
return GuruSettingsPage(
items: [
// CustomSetting(builder: (context, snapshot) {
// return snapshot.data == true ? Container(
// width: MediaQuery.of(context).size.width,
// padding: Platform.isAndroid ? controller.designModel.androidRemoveAdsMargin : controller.designModel.iosRemoveAdsMargin,
// color: Platform.isAndroid ? Colors.transparent : guruTheme.listTileTheme.backgroundColor ?? guruTheme.colorScheme.containerColor ?? Colors.white,
// child: RemoveAdsCard(
// cardSpec: controller.designModel.removeAdsSpec
// ),
// ) : Container();
// }, stream: controller.valueStream),
WidgetSetting(hasDivider: false, widget: StreamBuilder<bool>(
stream: controller.valueStream,
builder: (context, snapshot) {
return snapshot.data == true ? Container(
padding: Platform.isAndroid ? controller.designModel.androidRemoveAdsMargin : controller.designModel.iosRemoveAdsMargin,
color: Platform.isAndroid ? Colors.transparent : guruTheme.listTileTheme.backgroundColor ?? guruTheme.colorScheme.containerColor ?? Colors.white,
child: PurchaseBanner(summary: 'Remove Banner ', price: '2.2', tips: 'All banner ads and pop-up ads will be removed permanently, except for rewarded video ads.'),
) : Container();
},
)),
...(Platform.isIOS ? [
EntranceSetting(title: "Restore Purchases", leading: "assets/images/ic_restore.png"),
GroupSetting(title: "PREFERENCE", items: [
_buildSound(),
_buildVibration(),
_buildTheme()
])
] : []),
...(Platform.isAndroid ? [
_buildSound(),
_buildVibration(),
_buildTheme()
] : []),
// _buildSound(),
// _buildVibration(),
// _buildTheme(),
GroupSetting(
title: "INFORMATION",
items: [
EntranceSetting(title: "Share App", leading: "assets/images/ic_share.png"),
EntranceSetting(title: "Contact Us", leading: "assets/images/ic_message.png"),
EntranceSetting(title: "Contribute to Translate", leading: "assets/images/ic_volunteer.png"),
EntranceSetting(title: "Become a Volunteer Translator (Two lines)", leading: "assets/images/ic_volunteer.png")
]
)
],
policyUrl: Uri.parse("https://www.baidu.com"),
termsOfServiceUrl: Uri.parse("https://www.baidu.com"),
appOwnerinfo: const AppOwnerInfo('assets/images/ic_share.png'),
// onPolicyTap: () {
// RouteCenter.instance.openPath(Routes.webview.path());
// },
);
}
}