diff --git a/lib/services/manager_api.dart b/lib/services/manager_api.dart index 17072b04..437abf35 100644 --- a/lib/services/manager_api.dart +++ b/lib/services/manager_api.dart @@ -41,11 +41,11 @@ class ManagerAPI { String defaultKeystorePassword = 's3cur3p@ssw0rd'; String defaultApiUrl = 'https://api.revanced.app/'; String defaultRepoUrl = 'https://api.github.com'; - String defaultPatcherRepo = 'revanced/revanced-patcher'; - String defaultPatchesRepo = 'revanced/revanced-patches'; - String defaultIntegrationsRepo = 'revanced/revanced-integrations'; - String defaultCliRepo = 'revanced/revanced-cli'; - String defaultManagerRepo = 'revanced/revanced-manager'; + String defaultPatcherRepo = 'ReVanced/revanced-patcher'; + String defaultPatchesRepo = 'ReVanced/revanced-patches'; + String defaultIntegrationsRepo = 'ReVanced/revanced-integrations'; + String defaultCliRepo = 'ReVanced/revanced-cli'; + String defaultManagerRepo = 'ReVanced/revanced-manager'; String? patchesVersion = ''; String? integrationsVersion = ''; diff --git a/lib/ui/views/settings/settingsFragment/settings_manage_api_url.dart b/lib/ui/views/settings/settingsFragment/settings_manage_api_url.dart index 5669a073..899f49bc 100644 --- a/lib/ui/views/settings/settingsFragment/settings_manage_api_url.dart +++ b/lib/ui/views/settings/settingsFragment/settings_manage_api_url.dart @@ -5,7 +5,6 @@ import 'package:flutter_i18n/flutter_i18n.dart'; import 'package:revanced_manager/app/app.locator.dart'; import 'package:revanced_manager/services/manager_api.dart'; import 'package:revanced_manager/services/toast.dart'; -import 'package:revanced_manager/ui/widgets/settingsView/custom_text_field.dart'; import 'package:revanced_manager/ui/widgets/settingsView/settings_tile_dialog.dart'; import 'package:stacked/stacked.dart'; @@ -35,15 +34,19 @@ class SManageApiUrl extends BaseViewModel { content: SingleChildScrollView( child: Column( children: [ - CustomTextField( - leadingIcon: Icon( - Icons.api_outlined, - color: Theme.of(context).colorScheme.secondary, - ), - inputController: _apiUrlController, - label: I18nText('settingsView.selectApiURL'), - hint: apiUrl, + TextField( + controller: _apiUrlController, + autocorrect: false, onChanged: (value) => notifyListeners(), + decoration: InputDecoration( + icon: Icon( + Icons.api_outlined, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + border: const OutlineInputBorder(), + labelText: I18nText('settingsView.selectApiURL').toString(), + hintText: apiUrl, + ), ), ], ), diff --git a/lib/ui/views/settings/settingsFragment/settings_manage_keystore_password.dart b/lib/ui/views/settings/settingsFragment/settings_manage_keystore_password.dart index fb717f64..6a704238 100644 --- a/lib/ui/views/settings/settingsFragment/settings_manage_keystore_password.dart +++ b/lib/ui/views/settings/settingsFragment/settings_manage_keystore_password.dart @@ -4,7 +4,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_i18n/flutter_i18n.dart'; import 'package:revanced_manager/app/app.locator.dart'; import 'package:revanced_manager/services/manager_api.dart'; -import 'package:revanced_manager/ui/widgets/settingsView/custom_text_field.dart'; import 'package:revanced_manager/ui/widgets/settingsView/settings_tile_dialog.dart'; import 'package:stacked/stacked.dart'; @@ -35,11 +34,17 @@ class SManageKeystorePassword extends BaseViewModel { content: SingleChildScrollView( child: Column( children: [ - CustomTextField( - inputController: _keystorePasswordController, - label: I18nText('settingsView.selectKeystorePassword'), - hint: '', + TextField( + controller: _keystorePasswordController, + autocorrect: false, + obscureText: true, onChanged: (value) => notifyListeners(), + decoration: InputDecoration( + border: const OutlineInputBorder(), + labelText: I18nText( + 'settingsView.selectKeystorePassword', + ).toString(), + ), ), ], ), diff --git a/lib/ui/views/settings/settingsFragment/settings_manage_sources.dart b/lib/ui/views/settings/settingsFragment/settings_manage_sources.dart index 52c30ff0..9cf33bbc 100644 --- a/lib/ui/views/settings/settingsFragment/settings_manage_sources.dart +++ b/lib/ui/views/settings/settingsFragment/settings_manage_sources.dart @@ -5,7 +5,6 @@ import 'package:flutter_i18n/flutter_i18n.dart'; import 'package:revanced_manager/app/app.locator.dart'; import 'package:revanced_manager/services/manager_api.dart'; import 'package:revanced_manager/services/toast.dart'; -import 'package:revanced_manager/ui/widgets/settingsView/custom_text_field.dart'; import 'package:revanced_manager/ui/widgets/settingsView/settings_tile_dialog.dart'; import 'package:stacked/stacked.dart'; @@ -45,59 +44,97 @@ class SManageSources extends BaseViewModel { content: SingleChildScrollView( child: Column( children: [ - CustomTextField( - leadingIcon: const Icon( - Icons.extension_outlined, - color: Colors.transparent, - ), - inputController: _hostSourceController, - label: I18nText('settingsView.hostRepositoryLabel'), - hint: hostRepository, + /* + API for accessing the specified repositories + If default is used, will use the ReVanced API + */ + TextField( + controller: _hostSourceController, + autocorrect: false, onChanged: (value) => notifyListeners(), - ), - const SizedBox(height: 20), - CustomTextField( - leadingIcon: Icon( - Icons.extension_outlined, - color: Theme.of(context).colorScheme.secondary, + decoration: InputDecoration( + icon: Icon( + Icons.rocket_launch_outlined, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + border: const OutlineInputBorder(), + labelText: I18nText( + 'settingsView.hostRepositoryLabel', + ).toString(), + hintText: hostRepository, ), - inputController: _orgPatSourceController, - label: I18nText('settingsView.orgPatchesLabel'), - hint: patchesRepo.split('/')[0], - onChanged: (value) => notifyListeners(), ), const SizedBox(height: 8), - CustomTextField( - leadingIcon: const Icon( - Icons.extension_outlined, - color: Colors.transparent, - ), - inputController: _patSourceController, - label: I18nText('settingsView.sourcesPatchesLabel'), - hint: patchesRepo.split('/')[1], + // Patches owner's name + TextField( + controller: _orgPatSourceController, + autocorrect: false, onChanged: (value) => notifyListeners(), - ), - const SizedBox(height: 20), - CustomTextField( - leadingIcon: Icon( - Icons.merge_outlined, - color: Theme.of(context).colorScheme.secondary, + decoration: InputDecoration( + icon: Icon( + Icons.extension_outlined, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + border: const OutlineInputBorder(), + labelText: I18nText( + 'settingsView.orgPatchesLabel', + ).toString(), + hintText: patchesRepo.split('/')[0], ), - inputController: _orgIntSourceController, - label: I18nText('settingsView.orgIntegrationsLabel'), - hint: integrationsRepo.split('/')[0], - onChanged: (value) => notifyListeners(), ), const SizedBox(height: 8), - CustomTextField( - leadingIcon: const Icon( - Icons.merge_outlined, - color: Colors.transparent, - ), - inputController: _intSourceController, - label: I18nText('settingsView.sourcesIntegrationsLabel'), - hint: integrationsRepo.split('/')[1], + // Patches repository's name + TextField( + controller: _patSourceController, + autocorrect: false, onChanged: (value) => notifyListeners(), + decoration: InputDecoration( + icon: const Icon( + Icons.extension_outlined, + color: Colors.transparent, + ), + border: const OutlineInputBorder(), + labelText: I18nText( + 'settingsView.sourcesPatchesLabel', + ).toString(), + hintText: patchesRepo.split('/')[1], + ), + ), + const SizedBox(height: 8), + // Integrations owner's name + TextField( + controller: _orgIntSourceController, + autocorrect: false, + onChanged: (value) => notifyListeners(), + decoration: InputDecoration( + icon: Icon( + Icons.merge_outlined, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + border: const OutlineInputBorder(), + labelText: I18nText( + 'settingsView.orgIntegrationsLabel', + ).toString(), + hintText: integrationsRepo.split('/')[0], + ), + ), + const SizedBox(height: 8), + // Integrations repository's name + TextField( + controller: _intSourceController, + autocorrect: false, + onChanged: (value) => notifyListeners(), + decoration: InputDecoration( + icon: const Icon( + Icons.merge_outlined, + color: Colors.transparent, + ), + border: const OutlineInputBorder(), + labelText: I18nText( + 'settingsView.sourcesIntegrationsLabel', + ).toString(), + hintText: integrationsRepo.split('/')[1], + ), ), const SizedBox(height: 20), I18nText('settingsView.sourcesUpdateNote'), diff --git a/lib/ui/widgets/settingsView/custom_switch.dart b/lib/ui/widgets/settingsView/custom_switch.dart deleted file mode 100644 index 75229bb0..00000000 --- a/lib/ui/widgets/settingsView/custom_switch.dart +++ /dev/null @@ -1,63 +0,0 @@ -import 'package:flutter/material.dart'; - -class CustomSwitch extends StatelessWidget { - const CustomSwitch({ - super.key, - required this.onChanged, - required this.value, - }); - final ValueChanged onChanged; - final bool value; - - @override - Widget build(BuildContext context) { - return GestureDetector( - onTap: () => onChanged(!value), - child: SizedBox( - height: 25, - width: 50, - child: Stack( - children: [ - AnimatedContainer( - height: 25, - width: 50, - curve: Curves.ease, - duration: const Duration(milliseconds: 400), - decoration: BoxDecoration( - borderRadius: const BorderRadius.all( - Radius.circular(25.0), - ), - color: value - ? Theme.of(context).colorScheme.primary - : Theme.of(context).colorScheme.secondary, - ), - ), - AnimatedAlign( - curve: Curves.ease, - duration: const Duration(milliseconds: 400), - alignment: !value ? Alignment.centerLeft : Alignment.centerRight, - child: Container( - height: 20, - width: 20, - margin: const EdgeInsets.symmetric(horizontal: 3), - decoration: BoxDecoration( - shape: BoxShape.circle, - color: value - ? Theme.of(context).colorScheme.primaryContainer - : Theme.of(context).colorScheme.surface, - boxShadow: [ - BoxShadow( - color: Colors.black12.withOpacity(0.1), - spreadRadius: 0.5, - blurRadius: 1, - ), - ], - ), - ), - ), - ], - ), - ), - ); - } -} diff --git a/lib/ui/widgets/settingsView/custom_switch_tile.dart b/lib/ui/widgets/settingsView/custom_switch_tile.dart deleted file mode 100644 index 3bf563a5..00000000 --- a/lib/ui/widgets/settingsView/custom_switch_tile.dart +++ /dev/null @@ -1,32 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:revanced_manager/ui/widgets/settingsView/custom_switch.dart'; - -class CustomSwitchTile extends StatelessWidget { - const CustomSwitchTile({ - super.key, - required this.title, - required this.subtitle, - required this.value, - required this.onTap, - this.padding, - }); - final Widget title; - final Widget subtitle; - final bool value; - final Function(bool) onTap; - final EdgeInsetsGeometry? padding; - - @override - Widget build(BuildContext context) { - return ListTile( - contentPadding: padding ?? EdgeInsets.zero, - title: title, - subtitle: subtitle, - onTap: () => onTap(!value), - trailing: CustomSwitch( - value: value, - onChanged: onTap, - ), - ); - } -} diff --git a/lib/ui/widgets/settingsView/custom_text_field.dart b/lib/ui/widgets/settingsView/custom_text_field.dart deleted file mode 100644 index 986b2ac6..00000000 --- a/lib/ui/widgets/settingsView/custom_text_field.dart +++ /dev/null @@ -1,73 +0,0 @@ -import 'package:flutter/material.dart'; - -class CustomTextField extends StatelessWidget { - const CustomTextField({ - super.key, - required this.inputController, - required this.label, - required this.hint, - this.leadingIcon, - required this.onChanged, - }); - final TextEditingController inputController; - final Widget label; - final String hint; - final Widget? leadingIcon; - final Function(String)? onChanged; - - @override - Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.only(top: 4.0), - child: TextField( - controller: inputController, - onChanged: onChanged, - keyboardType: TextInputType.text, - decoration: InputDecoration( - icon: leadingIcon, - label: label, - filled: true, - fillColor: Theme.of(context).colorScheme.secondaryContainer, - hintText: hint, - hintStyle: TextStyle( - color: Theme.of(context).colorScheme.secondary, - ), - floatingLabelStyle: MaterialStateTextStyle.resolveWith( - (states) => states.contains(MaterialState.focused) - ? TextStyle(color: Theme.of(context).colorScheme.primary) - : TextStyle(color: Theme.of(context).colorScheme.secondary), - ), - contentPadding: const EdgeInsets.symmetric( - vertical: 8.0, - horizontal: 16.0, - ), - border: OutlineInputBorder( - borderSide: BorderSide( - color: Theme.of(context).colorScheme.primary, - ), - borderRadius: BorderRadius.circular(10), - ), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Theme.of(context).colorScheme.primary, - width: 2.0, - ), - borderRadius: BorderRadius.circular(10), - ), - errorBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Theme.of(context).colorScheme.error, - ), - borderRadius: BorderRadius.circular(10), - ), - enabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Theme.of(context).colorScheme.primary, - ), - borderRadius: BorderRadius.circular(10), - ), - ), - ), - ); - } -}