Skip to content

Commit ac52165

Browse files
authored
Merge pull request #3 from mechark/beta
Beta merge
2 parents 98acd1b + 668fceb commit ac52165

37 files changed

+462
-421
lines changed

voita_app/android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ android {
4545
applicationId "com.example.voita_app"
4646
// You can update the following values to match your application needs.
4747
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
48-
minSdkVersion 23
49-
targetSdkVersion flutter.targetSdkVersion
48+
minSdkVersion 29
49+
targetSdkVersion 34
5050
versionCode flutterVersionCode.toInteger()
5151
versionName flutterVersionName
5252
}

voita_app/android/app/src/main/AndroidManifest.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@
2525
<action android:name="android.intent.action.MAIN"/>
2626
<category android:name="android.intent.category.LAUNCHER"/>
2727
</intent-filter>
28+
<intent-filter>
29+
<action android:name="android.intent.action.VIEW" />
30+
<category android:name="android.intent.category.DEFAULT" />
31+
<category android:name="android.intent.category.BROWSABLE" />
32+
</intent-filter>
2833
</activity>
2934
<!-- Don't delete the meta-data below.
3035
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->

voita_app/devtools_options.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
extensions:

voita_app/lib/features/note-review/presentation/note_screen.dart

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import 'package:flutter/material.dart';
44
import 'package:flutter_bloc/flutter_bloc.dart';
55
import 'package:voita_app/constants/app_colors.dart';
66
import 'package:voita_app/features/note-review/bloc/review_bloc.dart';
7-
import 'package:voita_app/features/notes-overview/bloc/notes_bloc.dart';
87
import 'package:voita_app/features/notes-overview/models/note_model.dart';
98
import 'package:voita_app/shared-widgets/navbar/presentation/navbar.dart';
109
import 'package:voita_app/shared-widgets/note-appbar/note_appbar.dart';
@@ -13,8 +12,8 @@ import 'package:voita_app/utils/services/time_formatter.dart';
1312

1413
class NoteScreen extends StatefulWidget {
1514
final Note note;
16-
final NotesBloc notesBloc;
17-
NoteScreen({ Key? key, required this.note, required this.notesBloc }) : super(key: key);
15+
final Function(Note) onNoteUpdated;
16+
NoteScreen({ Key? key, required this.note, required this.onNoteUpdated }) : super(key: key);
1817

1918
@override
2019
_NoteScreenState createState() => _NoteScreenState(this.note);
@@ -23,8 +22,8 @@ class NoteScreen extends StatefulWidget {
2322
class _NoteScreenState extends State<NoteScreen> {
2423
final Note note;
2524
bool isEditable = false;
26-
late String curr_header = note.header;
27-
late String curr_text = note.text;
25+
late String currHeader = note.header;
26+
late String currText = note.text;
2827
late TextEditingController _headerController;
2928
late TextEditingController _textController;
3029
late ReviewBloc _bloc;
@@ -44,8 +43,11 @@ class _NoteScreenState extends State<NoteScreen> {
4443
header: _headerController.text,
4544
text: _textController.text,
4645
));
46+
47+
note.header = _headerController.text;
48+
note.text = _textController.text;
49+
widget.onNoteUpdated(note);
4750
}
48-
widget.notesBloc.add(const LoadNotes());
4951
super.deactivate();
5052
}
5153

@@ -75,7 +77,7 @@ class _NoteScreenState extends State<NoteScreen> {
7577
IgnorePointer(
7678
ignoring: !isEditable,
7779
child: TextField(
78-
onChanged: (value) => {curr_header = _headerController.text},
80+
onChanged: (value) => {currHeader = _headerController.text},
7981
controller: _headerController,
8082
style: const TextStyle(
8183
fontFamily: "Open Sans",
@@ -98,15 +100,15 @@ class _NoteScreenState extends State<NoteScreen> {
98100
mainAxisAlignment: MainAxisAlignment.spaceBetween,
99101
children: [
100102
Text(
101-
TimeFormatter.getDay(note.date),
103+
TimeFormatter.getDay(note.date) == TimeFormatter.getDay(DateTime.now()) ? "Сьогодні" : TimeFormatter.getDay(note.date),
102104
style: const TextStyle(
103105
fontFamily: "Open Sans",
104106
fontWeight: FontWeight.w600,
105107
fontSize: 20,
106108
)
107109
),
108110
Text(
109-
TimeFormatter.getMinutes(note.date, note.duration),
111+
TimeFormatter.getTimeRange(note.date, note.duration),
110112
style: const TextStyle(
111113
fontFamily: "Open Sans",
112114
fontWeight: FontWeight.w500,
@@ -133,7 +135,7 @@ class _NoteScreenState extends State<NoteScreen> {
133135
IgnorePointer(
134136
ignoring: !isEditable,
135137
child: TextField(
136-
onChanged: (value) => {curr_text = _textController.text},
138+
onChanged: (value) => {currText = _textController.text},
137139
controller: _textController,
138140
maxLines: null,
139141
keyboardType: TextInputType.multiline,
@@ -160,7 +162,7 @@ class _NoteScreenState extends State<NoteScreen> {
160162
extendBody: true,
161163
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
162164
floatingActionButton: const RecordIcon(color: AppColor.spaceGray),
163-
bottomNavigationBar: Navbar(),
165+
bottomNavigationBar: const Navbar(),
164166
);
165167
}
166168
));
Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import 'package:bloc/bloc.dart';
22
import 'package:equatable/equatable.dart';
3-
import 'package:http/http.dart';
4-
import 'package:voita_app/features/recording/services/model_service.dart';
53
import 'package:voita_app/utils/data/note_repository_impl.dart';
64
import 'package:voita_app/features/notes-overview/models/note_model.dart';
75

@@ -11,7 +9,7 @@ part 'notes_state.dart';
119
class NotesBloc extends Bloc<NotesEvent, NotesState> {
1210
late NoteRepositoryImpl _noteRepository;
1311

14-
NotesBloc() : super(NotesInitial()) {
12+
NotesBloc() : super(const NotesLoaded()) {
1513
on<LoadNotes>(_onLoadNotes);
1614
on<AddNote>(_onAddNote);
1715
on<EditNote>(_editNote);
@@ -21,11 +19,8 @@ class NotesBloc extends Bloc<NotesEvent, NotesState> {
2119
_noteRepository = NoteRepositoryImpl();
2220
}
2321

24-
void _onLoadNotes(LoadNotes event, Emitter<NotesState> emit) async {
25-
final notes = await _noteRepository.getAllNotes();
26-
final service = ModelService();
27-
28-
emit(NotesLoaded(notes: notes));
22+
void _onLoadNotes(LoadNotes event, Emitter<NotesState> emit) {
23+
emit(const NotesLoaded());
2924
}
3025

3126
void _failedToLoad(FailedToLoad event, Emitter<NotesState> emit) async {
@@ -34,15 +29,14 @@ class NotesBloc extends Bloc<NotesEvent, NotesState> {
3429

3530
void _onAddNote(AddNote event, Emitter<NotesState> emit) async {
3631
final notes = await _noteRepository.getAllNotes();
37-
emit(NotesLoaded(notes: notes));
32+
emit(const NotesLoaded());
3833
}
3934

4035
void _editNote(EditNote event, Emitter<NotesState> emit) async {
4136
}
4237

4338
void _deleteNote(DeleteNote event, Emitter<NotesState> emit) async {
4439
await _noteRepository.removeNote(event.id);
45-
final notes = await _noteRepository.getAllNotes();
46-
emit(NotesLoaded(notes: notes));
40+
emit(const NotesLoaded());
4741
}
4842
}

voita_app/lib/features/notes-overview/bloc/notes_event.dart

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,10 @@ sealed class NotesEvent extends Equatable {
88
}
99

1010
class LoadNotes extends NotesEvent {
11-
final List<Note> notes;
12-
13-
const LoadNotes({this.notes = const <Note>[]});
11+
const LoadNotes();
1412

1513
@override
16-
List<Object> get props => [notes];
14+
List<Object> get props => [];
1715
}
1816

1917
class FailedToLoad extends NotesEvent {
@@ -28,7 +26,7 @@ class FailedToLoad extends NotesEvent {
2826
class AddNote extends NotesEvent {
2927
final Note note;
3028

31-
AddNote({required this.note});
29+
const AddNote({required this.note});
3230

3331
@override
3432
List<Object> get props => [note];
@@ -37,7 +35,7 @@ class AddNote extends NotesEvent {
3735
class EditNote extends NotesEvent {
3836
final Note note;
3937

40-
EditNote({required this.note});
38+
const EditNote({required this.note});
4139

4240
@override
4341
List<Object> get props => [note];
@@ -46,7 +44,7 @@ class EditNote extends NotesEvent {
4644
class DeleteNote extends NotesEvent {
4745
final int id;
4846

49-
DeleteNote({required this.id});
47+
const DeleteNote({required this.id});
5048

5149
@override
5250
List<Object> get props => [id];

voita_app/lib/features/notes-overview/bloc/notes_state.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,10 @@ sealed class NotesState extends Equatable {
1010
final class NotesInitial extends NotesState {}
1111

1212
class NotesLoaded extends NotesState {
13-
final List<Note> notes;
14-
15-
const NotesLoaded({this.notes = const <Note>[]});
13+
const NotesLoaded();
1614

1715
@override
18-
List<Object> get props => [notes];
16+
List<Object> get props => [];
1917
}
2018

2119
class NotesFailedToLoad extends NotesState {
Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,30 @@
11
import 'package:freezed_annotation/freezed_annotation.dart';
22
import 'package:flutter/foundation.dart';
3-
43
part 'note_model.freezed.dart';
4+
part 'note_model.g.dart';
55

6-
@freezed
6+
@unfreezed
77
class Note with _$Note {
8-
const factory Note({
8+
factory Note({
99
required String header,
1010
required String text,
11-
required DateTime date,
12-
required int id,
13-
required int duration,
14-
required String audio_location
11+
required final DateTime date,
12+
required final int id,
13+
required final int duration,
14+
required final String audio_location
1515
}) = _Note;
1616

1717
factory Note.fromMap(Map<String, dynamic> map) {
1818
return Note(
1919
id: map['id'],
20-
header: map['header'],
20+
header: map['header'] ?? "Нотатка",
2121
text: map['text'],
22-
date: map['date'],
22+
date: DateTime.parse(map['date']),
2323
duration: map['duration'],
2424
audio_location: map['audio_location']
2525
);
2626
}
27+
28+
factory Note.fromJson(Map<String, Object?> json)
29+
=> _$NoteFromJson(json);
2730
}

voita_app/lib/features/notes-overview/models/note_model.freezed.dart

Lines changed: 28 additions & 26 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

voita_app/lib/features/notes-overview/models/note_model.g.dart

Lines changed: 26 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)