1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-07-01 14:13:29 +00:00

11 Commits
1.1.5 ... 1.1.7

13 changed files with 81 additions and 36 deletions

View File

@ -131,6 +131,7 @@
"Confirm your password": "Confirmer le mot de passe",
"Congratulations! Your password has now been successfully changed!": "Félicitations ! Votre mot de passe a bien été changé !",
"Connected users": "Utilisateurs connectés",
"Contact us": "Contactez-nous",
"Conversation color (optional)": "Couleur de conversation (optionnel)",
"Conversation logo": "Logo de la conversation",
"Conversation members": "Membres de la conversation",

8
build_all_forez.sh Executable file
View File

@ -0,0 +1,8 @@
#!/bin/sh
DEST="/home/pierre/Desktop"
make forez_release_split_per_abi && \
mv build/app/outputs/flutter-apk/app-armeabi-v7a-forez-release.apk "$DEST" && \
mv build/app/outputs/flutter-apk/app-arm64-v8a-forez-release.apk "$DEST" && \
mv build/app/outputs/flutter-apk/app-x86_64-forez-release.apk "$DEST" && \
mv build/app/outputs/mapping/forez/release/mapping.txt "$DEST"

View File

@ -1,17 +1,18 @@
import 'package:comunic/forez/init.dart';
import 'package:comunic/main.dart';
import 'package:comunic/models/config.dart';
/// Forez online configuration
///
/// @author Pierre Hubert
void main() {
ForezConfig(
Config.set(ForezConfig(
apiServerName: "api.communiquons.org",
apiServerUri: "/",
apiServerSecure: true,
clientName: "ForezMobile",
);
));
subMain();
}

View File

@ -28,6 +28,7 @@ class ServerConfigurationHelper {
Version.parse(response["min_supported_mobile_version"]),
termsURL: response["terms_url"],
privacyPolicyURL: response["privacy_policy_url"],
contactEmail: response["contact_email"],
playStoreURL: response["play_store_url"],
androidDirectDownloadURL: response["android_direct_download_url"],
notificationsPolicy: NotificationsPolicy(

View File

@ -136,6 +136,7 @@ class ServerConfig {
final Version minSupportedMobileVersion;
final String termsURL;
final String privacyPolicyURL;
final String contactEmail;
final String playStoreURL;
final String androidDirectDownloadURL;
final NotificationsPolicy notificationsPolicy;
@ -148,6 +149,7 @@ class ServerConfig {
@required this.minSupportedMobileVersion,
@required this.termsURL,
@required this.privacyPolicyURL,
@required this.contactEmail,
@required this.playStoreURL,
@required this.androidDirectDownloadURL,
@required this.notificationsPolicy,
@ -158,6 +160,7 @@ class ServerConfig {
}) : assert(minSupportedMobileVersion != null),
assert(termsURL != null),
assert(privacyPolicyURL != null),
assert(contactEmail != null),
assert(playStoreURL != null),
assert(androidDirectDownloadURL != null),
assert(notificationsPolicy != null),

View File

@ -0,0 +1,45 @@
import 'package:comunic/helpers/server_config_helper.dart';
import 'package:comunic/ui/widgets/copy_icon.dart';
import 'package:comunic/utils/flutter_utils.dart';
import 'package:comunic/utils/intl_utils.dart';
import 'package:comunic/utils/ui_utils.dart';
import 'package:flutter/material.dart';
import 'package:settings_ui/settings_ui.dart';
import 'package:url_launcher/url_launcher.dart';
/// About application settings
///
/// @author Pierre Hubert
class AboutApplicationSettings extends StatelessWidget {
@override
Widget build(BuildContext context) => SettingsList(
sections: [
_buildGeneralSection(context),
],
);
/// General section
SettingsSection _buildGeneralSection(BuildContext context) => SettingsSection(
tiles: [
SettingsTile(
title: tr("Privacy policy"),
onPressed: (c) => launch(srvConfig.privacyPolicyURL),
),
SettingsTile(
title: tr("Terms of Use"),
onPressed: (c) => launch(srvConfig.termsURL),
),
SettingsTile(
title: tr("Contact us"),
subtitle: srvConfig.contactEmail,
trailing: CopyIcon(srvConfig.contactEmail),
),
SettingsTile(
title: tr("About this application"),
subtitle: isIOS ? null : tr("Learn more about us"),
onPressed: (_) => showAboutAppDialog(context),
)
],
);
}

View File

@ -1,3 +1,4 @@
import 'package:comunic/ui/routes/settings/about_settings.dart';
import 'package:comunic/ui/routes/settings/account_image_settings.dart';
import 'package:comunic/ui/routes/settings/account_privacy_settings.dart';
import 'package:comunic/ui/routes/settings/account_security_settings.dart';
@ -132,13 +133,21 @@ class __AccountSettingsBodyState extends State<_AccountSettingsBody> {
onBuild: () => AccountPrivacySettings(),
),
// Privacy settings
// Application settings
_SettingsSection(
title: tr("Application settings"),
subtitle: tr("Manage local application settings"),
icon: Icons.smartphone,
onBuild: () => ApplicationSettings(),
),
// About settings
_SettingsSection(
title: tr("About this application"),
subtitle: tr("Learn more about us"),
icon: Icons.info,
onBuild: () => AboutApplicationSettings(),
),
];
@override

View File

@ -1,5 +1,4 @@
import 'package:comunic/helpers/preferences_helper.dart';
import 'package:comunic/helpers/server_config_helper.dart';
import 'package:comunic/ui/widgets/async_screen_widget.dart';
import 'package:comunic/ui/widgets/settings/header_spacer_section.dart';
import 'package:comunic/utils/flutter_utils.dart';
@ -7,7 +6,6 @@ import 'package:comunic/utils/intl_utils.dart';
import 'package:comunic/utils/ui_utils.dart';
import 'package:flutter/material.dart';
import 'package:settings_ui/settings_ui.dart';
import 'package:url_launcher/url_launcher.dart';
/// Application settings
///
@ -36,7 +34,6 @@ class _ApplicationSettingsState extends State<ApplicationSettings> {
sections: [
HeadSpacerSection(),
_buildAppearanceSection(),
_buildGeneralSection(),
_buildDebugSection()
],
);
@ -56,26 +53,6 @@ class _ApplicationSettingsState extends State<ApplicationSettings> {
],
);
/// General section
SettingsSection _buildGeneralSection() => SettingsSection(
title: tr("General"),
tiles: [
SettingsTile(
title: tr("Privacy policy"),
onPressed: (c) => launch(srvConfig.privacyPolicyURL),
),
SettingsTile(
title: tr("Terms of Use"),
onPressed: (c) => launch(srvConfig.termsURL),
),
SettingsTile(
title: tr("About this application"),
subtitle: isIOS ? null : tr("Learn more about us"),
onPressed: (_) => showAboutAppDialog(context),
)
],
);
/// Debug section
SettingsSection _buildDebugSection() => SettingsSection(
title: tr("Debug features"),

View File

@ -61,6 +61,7 @@ class TourRouteState extends State<TourRoute> {
try {
await PushNotificationsHelper.configure(
context, PushNotificationsStatus.FIREBASE);
areNotificationsConfigured = true;
} catch (e, s) {
logError(e, s);
}

View File

@ -80,7 +80,7 @@ class _AuthorizedGroupPageScreenState
// Add group conversations
..insertAll(
2,
(_group.isForezGroup ? 2 : 1),
_group.conversations
.map((e) => _GroupPageTab(
widget: (c) => GroupConversationSection(conv: e),

View File

@ -589,9 +589,7 @@ class _ConversationScreenState extends SafeState<ConversationScreen> {
},
icon: Icon(
Icons.face,
color: _showEmojiPicker
? (_conversation.color ?? Colors.blue)
: null,
color: _showEmojiPicker ? _senderColor : null,
),
),
],
@ -617,8 +615,8 @@ class _ConversationScreenState extends SafeState<ConversationScreen> {
);
Widget _buildEmojiContainer() => EmojiPicker(
bgColor: _conversation.color ?? Colors.blue.shade900,
indicatorColor: _conversation.color ?? Colors.blue.shade900,
bgColor: _senderColor,
indicatorColor: _senderColor,
rows: 3,
columns: 7,
onEmojiSelected: (emoji, category) {

View File

@ -1,6 +1,6 @@
import 'package:comunic/helpers/preferences_helper.dart';
import 'package:comunic/main.dart';
import 'package:comunic/models/config.dart';
import 'package:comunic/ui/routes/full_screen_image.dart';
import 'package:comunic/ui/widgets/dialogs/auto_sized_dialog_content_widget.dart';
import 'package:comunic/ui/widgets/dialogs/cancel_dialog_button.dart';
@ -268,9 +268,10 @@ bool isTablet(BuildContext context) =>
void showAboutAppDialog(BuildContext context) {
showAboutDialog(
context: context,
applicationName: "Comunic",
applicationName: config().appName,
children: <Widget>[
Text(
tr(config().appQuickDescription) ??
tr("Comunic is a free and OpenSource social network that respect your privacy."),
textAlign: TextAlign.center,
),

View File

@ -11,7 +11,7 @@ description: Comunic client
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.1.5+9
version: 1.1.7+11
environment:
sdk: ">=2.7.0 <3.0.0"