Improved MacOS support and organized screens and utils
This commit is contained in:
176
lib/screens/tos_screen.dart
Normal file
176
lib/screens/tos_screen.dart
Normal file
@@ -0,0 +1,176 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_markdown/flutter_markdown.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
class TosScreen extends StatelessWidget {
|
||||
const TosScreen({super.key});
|
||||
|
||||
|
||||
final String tosText = """
|
||||
### 1. Статус и отношения
|
||||
1.1. «Komet» (далее — «Приложение») — неофициальное стороннее приложение, не имеющее отношения к ООО «Коммуникационная платформа» (правообладатель сервиса «MAX»).
|
||||
|
||||
1.2. Разработчики Приложения не являются партнёрами, сотрудниками или аффилированными лицами ООО «Коммуникационная платформа».
|
||||
|
||||
1.3. Все упоминания торговых марок «MAX» и связанных сервисов принадлежат их правообладателям.
|
||||
|
||||
### 2. Условия использования
|
||||
2.1. Используя Приложение «Komet», вы:
|
||||
- Автоматически подтверждаете согласие с официальным Пользовательским соглашением «MAX» (https://legal.max.ru/ps)
|
||||
- Осознаёте, что использование неофициального клиента может привести к блокировке аккаунта со стороны ООО «Коммуникационная платформа»;
|
||||
- Принимаете на себя все риски, связанные с использованием Приложения.
|
||||
|
||||
2.2. Строго запрещено:
|
||||
- Использовать Приложение «Komet» для распространения запрещённого контента;
|
||||
- Осуществлять массовые рассылки (спам);
|
||||
- Нарушать законодательство РФ и международное право;
|
||||
- Предпринимать попытки взлома или нарушения работы оригинального сервиса «MAX».
|
||||
|
||||
2.3. Техническая реализация соответствует принципу добросовестного использования (fair use) и не нарушает исключительные права правообладателя в соответствии с статьёй 1273 ГК РФ.
|
||||
|
||||
2.4. Особенности технического взаимодействия:
|
||||
- Приложение «Komet» использует публично доступные методы взаимодействия с сервисом «MAX», аналогичные веб-версии (https://web.max.ru)
|
||||
- Все запросы выполняются в рамках добросовестного использования для обеспечения совместимости;
|
||||
- Разработчики не осуществляют обход технических средств защиты и не декомпилируют оригинальное ПО.
|
||||
|
||||
### 3. Технические аспекты
|
||||
3.1. Приложение «Komet» использует только публично доступные методы взаимодействия с сервисом «MAX» через официальные конечные точки.
|
||||
|
||||
3.2. Все запросы выполняются в рамках добросовестного использования (fair use) для обеспечения совместимости.
|
||||
|
||||
3.3. Разработчики не несут ответственности за:
|
||||
- Изменения в API оригинального сервиса;
|
||||
- Блокировку аккаунтов пользователей;
|
||||
- Функциональные ограничения, вызванные действиями ООО «Коммуникационная платформа».
|
||||
|
||||
### 4. Конфиденциальность
|
||||
4.1. Приложение «Komet» не хранит и не обрабатывает персональные данные пользователей.
|
||||
|
||||
4.2. Все данные авторизации передаются напрямую серверам ООО «Коммуникационная платформа».
|
||||
|
||||
4.3. Разработчики не имеют доступа к логинам, паролям, переписке и другим персональным данным пользователей.
|
||||
|
||||
### 5. Ответственность и ограничения
|
||||
5.1. Приложение «Komet» предоставляется «как есть» (as is) без гарантий работоспособности.
|
||||
|
||||
5.2. Разработчики вправе прекратить поддержку Приложения в любой момент без объяснения причин.
|
||||
|
||||
5.3. Пользователь обязуется не использовать Приложение «Komet» в коммерческих целях.
|
||||
|
||||
### 6. Правовые основания
|
||||
6.1. Разработка и распространение Приложения «Komet» осуществляются в соответствии с:
|
||||
- Статья 1280.1 ГК РФ — декомпилирование программы для обеспечения совместимости;
|
||||
- Статья 1229 ГК РФ — ограничения исключительного права в информационных целях;
|
||||
- Федеральный закон № 149-ФЗ «Об информации» — использование общедоступной информации;
|
||||
- Право на межоперабельность (Directive (EU) 2019/790) — обеспечение взаимодействия программ.
|
||||
|
||||
6.2. Взаимодействие с сервисом «MAX» осуществляется исключительно через:
|
||||
- Публичные API-интерфейсы, доступные через веб-версию сервиса;
|
||||
- Методы обратной разработки, разрешённые ст. 1280.1 ГК РФ для целей совместимости;
|
||||
- Открытые протоколы взаимодействия, не защищённые техническими средствами охраны.
|
||||
|
||||
6.3. Приложение «Komet» не обходит технические средства защиты и не нарушает нормальную работу оригинального сервиса, что соответствует требованиям статьи 1299 ГК РФ.
|
||||
|
||||
### 7. Заключительные положения
|
||||
7.1. Используя Приложение «Komet», вы соглашаетесь с тем, что:
|
||||
- Единственным правомочным способом использования сервиса «MAX» является применение официальных клиентов;
|
||||
- Все претензии по работе сервиса должны направляться в ООО «Коммуникационная платформа»;
|
||||
- Разработчики Приложения не несут ответственности за любые косвенные или прямые убытки.
|
||||
|
||||
7.2. Настоящее соглашение может быть изменено без предварительного уведомления пользователей.
|
||||
|
||||
### 8. Функции безопасности и конфиденциальности
|
||||
8.1. Приложение «Komet» включает инструменты защиты приватности:
|
||||
- Подмена данных сессии — для предотвращения отслеживания пользователя;
|
||||
- Система прокси-подключений — для обеспечения безопасности сетевого взаимодействия;
|
||||
- Ограничение телеметрии — для минимизации передачи диагностических данных.
|
||||
|
||||
8.2. Данные функции:
|
||||
- Направлены исключительно на защиту конфиденциальности пользователей;
|
||||
- Не используются для обхода систем безопасности оригинального сервиса;
|
||||
- Реализованы в рамках статьи 152.1 ГК РФ о защите частной жизни.
|
||||
|
||||
8.3. Разработчики не несут ответственности за:
|
||||
- Блокировки, связанные с использованием инструментов конфиденциальности;
|
||||
- Изменения в работе сервиса при активации данных функций.
|
||||
|
||||
### 8.4. Функции экспорта и импорта сессии
|
||||
8.4.1. Приложение «Komet» предоставляет возможность экспорта и импорта данных сессии для:
|
||||
- Обеспечения переносимости данных между устройствами пользователя
|
||||
- Резервного копирования учетных данных
|
||||
- Восстановления доступа при утере устройства
|
||||
|
||||
8.4.2. Особенности реализации:
|
||||
- Экспорт сессии осуществляется без привязки к номеру телефона
|
||||
- Данные сессии защищаются паролем и шифрованием по алгоритмам AES-256
|
||||
- Ключ шифрования известен только пользователю и не сохраняется в приложении
|
||||
|
||||
8.4.3. Техническая реализация экспорта сессии:
|
||||
- Экспорт сессии осуществляется через токен авторизации для идентификации в сервисе
|
||||
- Используется подмена параметров сессии для сохранения контекста аутентификации
|
||||
- Интеграция настроек прокси для обеспечения единой конфигурации подключения
|
||||
- Импортированная сессия маскирует источник подключения через указанные прокси-настройки
|
||||
- Серверы оригинального сервиса не получают данных о смене устройства пользователя
|
||||
- Шифрование применяется ко всему пакету данных (сессия + прокси-конфиг)
|
||||
|
||||
8.4.4. Правовые основания:
|
||||
- Статья 6 ФЗ-152 «О персональных данных» — обработка данных с согласия субъекта
|
||||
- Статья 434 ГК РФ — право на выбор формы сделки (электронная форма хранения учетных данных)
|
||||
- Принцип минимизации данных — сбор только необходимой для работы информации
|
||||
- Использование токена не является несанкционированным доступом (ст. 272 УК РФ не нарушается)
|
||||
- Подмена сессии — легитимный метод сохранения аутентификации (аналог браузерных cookies)
|
||||
- Маскировка IP-адреса — законный способ защиты персональных данных (ст. 6 ФЗ-152)
|
||||
|
||||
8.4.5. Ограничения ответственности:
|
||||
- Пользователь самостоятельно несет ответственность за сохранность пароля и резервных копий
|
||||
- Разработчики не имеют доступа к зашифрованным данным сессии
|
||||
- Восстановление утерянных паролей невозможно в целях безопасности
|
||||
- Ключи шифрования не хранятся в приложении и известны только пользователю
|
||||
""";
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final textTheme = Theme.of(context).textTheme;
|
||||
final markdownStyleSheet = MarkdownStyleSheet.fromTheme(Theme.of(context))
|
||||
.copyWith(
|
||||
h3: textTheme.titleMedium?.copyWith(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontFamily: GoogleFonts.manrope().fontFamily,
|
||||
height: 2.2,
|
||||
),
|
||||
p: textTheme.bodyMedium?.copyWith(
|
||||
fontFamily: GoogleFonts.manrope().fontFamily,
|
||||
height: 1.5,
|
||||
color: Theme.of(context).colorScheme.onSurfaceVariant,
|
||||
),
|
||||
listBullet: textTheme.bodyMedium?.copyWith(
|
||||
fontFamily: GoogleFonts.manrope().fontFamily,
|
||||
height: 1.6,
|
||||
),
|
||||
a: TextStyle(
|
||||
color: Theme.of(context).colorScheme.primary,
|
||||
decoration: TextDecoration.underline,
|
||||
decorationColor: Theme.of(context).colorScheme.primary,
|
||||
),
|
||||
);
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(title: const Text('Пользовательское соглашение')),
|
||||
body: Markdown(
|
||||
data: tosText,
|
||||
padding: const EdgeInsets.fromLTRB(16, 8, 16, 24),
|
||||
styleSheet: markdownStyleSheet,
|
||||
selectable: true,
|
||||
onTapLink: (text, href, title) async {
|
||||
if (href != null) {
|
||||
final uri = Uri.tryParse(href);
|
||||
if (uri != null && await canLaunchUrl(uri)) {
|
||||
await launchUrl(uri, mode: LaunchMode.externalApplication);
|
||||
}
|
||||
}
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user