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

View file

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

View file

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

View file

@ -716,14 +716,20 @@ class AppLocalizationsDe extends AppLocalizations {
String get proFeature3 => '✓ Flammen wiederherstellen'; String get proFeature3 => '✓ Flammen wiederherstellen';
@override @override
String get proFeature4 => 'Cloud-Backup verschlüsselt (coming-soon)'; String get proFeature4 => 'twonly unterstützen';
@override @override
String get familyFeature1 => 'Alles von Pro'; String get familyFeature1 => 'Unbegrenzte Medien-Datei-Uploads';
@override @override
String get familyFeature2 => '✓ 4 zusätzliche Plus Benutzer'; String get familyFeature2 => '✓ 4 zusätzliche Plus Benutzer';
@override
String get familyFeature3 => '✓ Flammen wiederherstellen';
@override
String get familyFeature4 => '✓ twonly unterstützen';
@override @override
String get redeemUserInviteCode => 'Oder löse einen twonly-Code ein.'; 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'; String get proFeature2 => '✓ 1 additional Plus user';
@override @override
String get proFeature3 => 'Cloud-Backup encrypted (coming-soon)'; String get proFeature3 => 'Restore flames';
@override @override
String get proFeature4 => 'Additional features (coming-soon)'; String get proFeature4 => '✓ Support twonly';
@override @override
String get familyFeature1 => 'All from Pro'; String get familyFeature1 => 'Unlimited media file uploads';
@override @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 @override
String get redeemUserInviteCode => 'Or redeem a twonly-Code.'; String get redeemUserInviteCode => 'Or redeem a twonly-Code.';

View file

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

View file

@ -113,6 +113,7 @@ class _MessageInputState extends State<MessageInput> {
} }
setState(() { setState(() {
_recordingState = RecordingState.recording; _recordingState = RecordingState.recording;
_currentDuration = 0;
}); });
await HapticFeedback.heavyImpact(); await HapticFeedback.heavyImpact();
final audioTmpPath = final audioTmpPath =
@ -220,8 +221,43 @@ class _MessageInputState extends State<MessageInput> {
), ),
), ),
Expanded( Expanded(
child: (_recordingState == RecordingState.recording) child: Stack(
? Row( 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: [ children: [
const Padding( const Padding(
padding: EdgeInsets.only( padding: EdgeInsets.only(
@ -241,8 +277,10 @@ class _MessageInputState extends State<MessageInput> {
formatMsToMinSec( formatMsToMinSec(
_currentDuration, _currentDuration,
), ),
style: const TextStyle( style: TextStyle(
color: Colors.white, color: isDarkMode(context)
? Colors.white
: Colors.black,
fontSize: 12, fontSize: 12,
), ),
), ),
@ -269,32 +307,9 @@ class _MessageInputState extends State<MessageInput> {
const SizedBox(width: 20), 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 == '') if (_textFieldController.text == '')
@ -355,7 +370,9 @@ class _MessageInputState extends State<MessageInput> {
height: 60, height: 60,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(90), borderRadius: BorderRadius.circular(90),
color: Colors.black, color: isDarkMode(context)
? Colors.black
: Colors.white,
), ),
child: const Center( child: const Center(
child: Column( child: Column(

View file

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

View file

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