fixed some smaller issues
Some checks are pending
Flutter analyze & test / flutter_analyze_and_test (push) Waiting to run

This commit is contained in:
otsmr 2025-12-21 17:19:40 +01:00
parent 049507cd25
commit c91c53dd8b
9 changed files with 138 additions and 92 deletions

View file

@ -207,13 +207,15 @@
"proFeature1": "✓ Unbegrenzte Medien-Datei-Uploads",
"proFeature2": "✓ 1 zusätzlicher Plus Benutzer",
"proFeature3": "✓ Flammen wiederherstellen",
"proFeature4": "✓ Cloud-Backup verschlüsselt (coming-soon)",
"proFeature4": "✓ twonly unterstützen",
"year": "Jahr",
"month": "Monat",
"yearly": "Jährlich",
"monthly": "Monatlich",
"familyFeature1": "✓ Alles von Pro",
"familyFeature1": "✓ Unbegrenzte Medien-Datei-Uploads",
"familyFeature2": "✓ 4 zusätzliche Plus Benutzer",
"familyFeature3": "✓ Flammen wiederherstellen",
"familyFeature4": "✓ twonly unterstützen",
"redeemUserInviteCode": "Oder löse einen twonly-Code ein.",
"freeFeature1": "✓ 10 Medien-Datei-Uploads pro Tag",
"plusFeature1": "✓ Unbegrenzte Medien-Datei-Uploads",

View file

@ -240,10 +240,12 @@
"monthly": "Monthly",
"proFeature1": "✓ Unlimited media file uploads",
"proFeature2": "✓ 1 additional Plus user",
"proFeature3": "✓ Cloud-Backup encrypted (coming-soon)",
"proFeature4": "Additional features (coming-soon)",
"familyFeature1": "✓ All from Pro",
"familyFeature2": "✓ 4 additional Plus users",
"proFeature3": "✓ Restore flames",
"proFeature4": "✓ Support twonly",
"familyFeature1": "✓ Unlimited media file uploads",
"familyFeature2": "✓ 4 additional Plus user",
"familyFeature3": "✓ Restore flames",
"familyFeature4": "✓ Support twonly",
"redeemUserInviteCode": "Or redeem a twonly-Code.",
"redeemUserInviteCodeTitle": "Redeem twonly-Code",
"redeemUserInviteCodeSuccess": "Your plan has been successfully adjusted.",

View file

@ -1361,27 +1361,39 @@ abstract class AppLocalizations {
/// No description provided for @proFeature3.
///
/// In en, this message translates to:
/// **'Cloud-Backup encrypted (coming-soon)'**
/// **'Restore flames'**
String get proFeature3;
/// No description provided for @proFeature4.
///
/// In en, this message translates to:
/// **'Additional features (coming-soon)'**
/// **'✓ Support twonly'**
String get proFeature4;
/// No description provided for @familyFeature1.
///
/// In en, this message translates to:
/// **'All from Pro'**
/// **'Unlimited media file uploads'**
String get familyFeature1;
/// No description provided for @familyFeature2.
///
/// In en, this message translates to:
/// **'✓ 4 additional Plus users'**
/// **'✓ 4 additional Plus user'**
String get familyFeature2;
/// No description provided for @familyFeature3.
///
/// In en, this message translates to:
/// **'✓ Restore flames'**
String get familyFeature3;
/// No description provided for @familyFeature4.
///
/// In en, this message translates to:
/// **'✓ Support twonly'**
String get familyFeature4;
/// No description provided for @redeemUserInviteCode.
///
/// In en, this message translates to:

View file

@ -716,14 +716,20 @@ class AppLocalizationsDe extends AppLocalizations {
String get proFeature3 => '✓ Flammen wiederherstellen';
@override
String get proFeature4 => 'Cloud-Backup verschlüsselt (coming-soon)';
String get proFeature4 => 'twonly unterstützen';
@override
String get familyFeature1 => 'Alles von Pro';
String get familyFeature1 => 'Unbegrenzte Medien-Datei-Uploads';
@override
String get familyFeature2 => '✓ 4 zusätzliche Plus Benutzer';
@override
String get familyFeature3 => '✓ Flammen wiederherstellen';
@override
String get familyFeature4 => '✓ twonly unterstützen';
@override
String get redeemUserInviteCode => 'Oder löse einen twonly-Code ein.';

View file

@ -707,16 +707,22 @@ class AppLocalizationsEn extends AppLocalizations {
String get proFeature2 => '✓ 1 additional Plus user';
@override
String get proFeature3 => 'Cloud-Backup encrypted (coming-soon)';
String get proFeature3 => 'Restore flames';
@override
String get proFeature4 => 'Additional features (coming-soon)';
String get proFeature4 => '✓ Support twonly';
@override
String get familyFeature1 => 'All from Pro';
String get familyFeature1 => 'Unlimited media file uploads';
@override
String get familyFeature2 => '✓ 4 additional Plus users';
String get familyFeature2 => '✓ 4 additional Plus user';
@override
String get familyFeature3 => '✓ Restore flames';
@override
String get familyFeature4 => '✓ Support twonly';
@override
String get redeemUserInviteCode => 'Or redeem a twonly-Code.';

View file

@ -159,7 +159,7 @@ class _UserListItem extends State<GroupListItem> {
}
Future<void> onTap() async {
if (_currentMessage == null) {
if (_currentMessage == null && widget.group.totalMediaCounter == 0) {
await Navigator.push(
context,
MaterialPageRoute(

View file

@ -113,6 +113,7 @@ class _MessageInputState extends State<MessageInput> {
}
setState(() {
_recordingState = RecordingState.recording;
_currentDuration = 0;
});
await HapticFeedback.heavyImpact();
final audioTmpPath =
@ -220,8 +221,43 @@ class _MessageInputState extends State<MessageInput> {
),
),
Expanded(
child: (_recordingState == RecordingState.recording)
? Row(
child: Stack(
children: [
TextField(
controller: _textFieldController,
focusNode: widget.textFieldFocus,
keyboardType: TextInputType.multiline,
showCursor:
_recordingState != RecordingState.recording,
maxLines: 4,
minLines: 1,
onChanged: (value) async {
setState(() {});
await twonlyDB.groupsDao.updateGroup(
widget.group.groupId,
GroupsCompanion(
draftMessage:
Value(_textFieldController.text),
),
);
},
onSubmitted: (_) {
_sendMessage();
},
style: const TextStyle(fontSize: 17),
decoration: InputDecoration(
hintText: context.lang.chatListDetailInput,
contentPadding: EdgeInsets.zero,
border: InputBorder.none,
),
),
if (_recordingState == RecordingState.recording)
Container(
decoration: BoxDecoration(
color: context.color.surfaceContainer,
borderRadius: BorderRadius.circular(20),
),
child: Row(
children: [
const Padding(
padding: EdgeInsets.only(
@ -241,8 +277,10 @@ class _MessageInputState extends State<MessageInput> {
formatMsToMinSec(
_currentDuration,
),
style: const TextStyle(
color: Colors.white,
style: TextStyle(
color: isDarkMode(context)
? Colors.white
: Colors.black,
fontSize: 12,
),
),
@ -269,32 +307,9 @@ class _MessageInputState extends State<MessageInput> {
const SizedBox(width: 20),
],
],
)
: TextField(
controller: _textFieldController,
focusNode: widget.textFieldFocus,
keyboardType: TextInputType.multiline,
maxLines: 4,
minLines: 1,
onChanged: (value) async {
setState(() {});
await twonlyDB.groupsDao.updateGroup(
widget.group.groupId,
GroupsCompanion(
draftMessage:
Value(_textFieldController.text),
),
);
},
onSubmitted: (_) {
_sendMessage();
},
style: const TextStyle(fontSize: 17),
decoration: InputDecoration(
hintText: context.lang.chatListDetailInput,
contentPadding: EdgeInsets.zero,
border: InputBorder.none,
),
],
),
),
if (_textFieldController.text == '')
@ -355,7 +370,9 @@ class _MessageInputState extends State<MessageInput> {
height: 60,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(90),
color: Colors.black,
color: isDarkMode(context)
? Colors.black
: Colors.white,
),
child: const Center(
child: Column(

View file

@ -227,14 +227,15 @@ class _PlanCardState extends State<PlanCard> {
context.lang.proFeature1,
context.lang.proFeature2,
context.lang.proFeature3,
context.lang.proFeature4,
// context.lang.proFeature4,
];
case 'Family':
features = [
context.lang.proFeature1,
context.lang.familyFeature1,
context.lang.familyFeature2,
context.lang.proFeature3,
// context.lang.proFeature4,
context.lang.familyFeature3,
context.lang.familyFeature4,
];
default:
}

View file

@ -3,7 +3,7 @@ description: "twonly, a privacy-friendly way to connect with friends through sec
publish_to: 'none'
version: 0.0.77+77
version: 0.0.78+78
environment:
sdk: ^3.6.0