Skip to content

Commit

Permalink
Migrated from sqlite to realm
Browse files Browse the repository at this point in the history
  • Loading branch information
prijindal committed May 1, 2024
1 parent 299b462 commit 6d68de0
Show file tree
Hide file tree
Showing 37 changed files with 870 additions and 1,301 deletions.
3 changes: 0 additions & 3 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,6 @@ if (keystorePropertiesFile.exists()) {
}

apply plugin: 'com.android.application'
// START: FlutterFire Configuration
apply plugin: 'com.google.gms.google-services'
// END: FlutterFire Configuration
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

Expand Down
1 change: 1 addition & 0 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,5 @@
android:name="flutterEmbedding"
android:value="2" />
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</manifest>
3 changes: 0 additions & 3 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@ buildscript {

dependencies {
classpath 'com.android.tools.build:gradle:7.2.0'
// START: FlutterFire Configuration
classpath 'com.google.gms:google-services:4.3.10'
// END: FlutterFire Configuration
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
Expand Down
4 changes: 2 additions & 2 deletions lib/components/counter.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ class CounterSubPage extends StatefulWidget {
required this.entries,
required this.habbit,
});
final List<HabbitEntryData>? entries;
final HabbitData? habbit;
final List<HabbitEntry>? entries;
final Habbit? habbit;

@override
State<CounterSubPage> createState() => _CounterSubPageState();
Expand Down
23 changes: 9 additions & 14 deletions lib/components/deleteentrydialog.dart
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
import 'package:drift/drift.dart';
import 'package:flutter/material.dart';

import '../helpers/stats.dart';
import '../models/core.dart';
import '../models/drift.dart';
import '../models/database.dart';

class DeleteEntryDialog extends StatelessWidget {
const DeleteEntryDialog({
super.key,
required this.entry,
});

final HabbitEntryData entry;
final HabbitEntry entry;

@override
Widget build(BuildContext context) {
Expand All @@ -26,17 +25,13 @@ class DeleteEntryDialog extends StatelessWidget {
child: const Text("Cancel"),
),
TextButton(
onPressed: () {
(MyDatabase.instance.update(MyDatabase.instance.habbitEntry)
..where((tbl) => tbl.id.equals(entry.id)))
.write(
HabbitEntryCompanion(
deletionTime: Value(
DateTime.now(),
),
),
);
Navigator.of(context).pop<bool>(true);
onPressed: () async {
await MyDatabase.instance.writeAsync(() {
entry.deletionTime = DateTime.now();
});
if (context.mounted) {
Navigator.of(context).pop<bool>(true);
}
},
child: const Text("Yes"),
)
Expand Down
38 changes: 15 additions & 23 deletions lib/components/deletehabbitdialog.dart
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
import 'package:drift/drift.dart';
import 'package:flutter/material.dart';

import '../models/core.dart';
import '../models/drift.dart';
import '../models/database.dart';

class DeleteHabbitDialog extends StatelessWidget {
const DeleteHabbitDialog({
super.key,
required this.habbit,
});

final HabbitData habbit;
final Habbit habbit;

@override
Widget build(BuildContext context) {
Expand All @@ -25,26 +24,19 @@ class DeleteHabbitDialog extends StatelessWidget {
child: const Text("Cancel"),
),
TextButton(
onPressed: () {
(MyDatabase.instance.update(MyDatabase.instance.habbitEntry)
..where((tbl) => tbl.habbit.equals(habbit.id)))
.write(
HabbitEntryCompanion(
deletionTime: Value(
DateTime.now(),
),
),
);
(MyDatabase.instance.update(MyDatabase.instance.habbit)
..where((tbl) => tbl.id.equals(habbit.id)))
.write(
HabbitCompanion(
deletionTime: Value(
DateTime.now(),
),
),
);
Navigator.of(context).pop<bool>(true);
onPressed: () async {
final entries = MyDatabase.instance
.query<HabbitEntry>(r'habbit.id == $0', [habbit.id]);

await MyDatabase.instance.writeAsync(() {
for (var element in entries) {
element.deletionTime = DateTime.now();
}
habbit.deletionTime = DateTime.now();
});
if (context.mounted) {
Navigator.of(context).pop<bool>(true);
}
},
child: const Text("Yes"),
)
Expand Down
30 changes: 16 additions & 14 deletions lib/components/entryform.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import 'package:date_field/date_field.dart';
import 'package:drift/drift.dart' as drift;
import 'package:flutter/material.dart';
import 'package:realm/realm.dart';

import '../models/core.dart';
import '../models/drift.dart';
import '../models/database.dart';

class EntryDialogForm extends StatefulWidget {
const EntryDialogForm({
Expand All @@ -15,17 +15,17 @@ class EntryDialogForm extends StatefulWidget {

final DateTime? creationTime;
final String? description;
final String habbit;
final ObjectId? habbit;

@override
State<EntryDialogForm> createState() => _EntryDialogFormState();

static Future<void> editEntry({
required BuildContext context,
required String habbitId,
required HabbitEntryData entry,
required ObjectId? habbitId,
required HabbitEntry entry,
}) async {
final editedData = await showDialog<HabbitEntryCompanion>(
final editedData = await showDialog<HabbitEntry>(
context: context,
builder: (BuildContext context) {
return EntryDialogForm(
Expand All @@ -36,9 +36,10 @@ class EntryDialogForm extends StatefulWidget {
},
);
if (editedData != null) {
(MyDatabase.instance.update(MyDatabase.instance.habbitEntry)
..where((tbl) => tbl.id.equals(entry.id)))
.write(editedData);
editedData.id = entry.id;
await MyDatabase.instance.writeAsync(
() => MyDatabase.instance.add(editedData, update: true),
);
}
}
}
Expand Down Expand Up @@ -90,11 +91,12 @@ class _EntryDialogFormState extends State<EntryDialogForm> {
),
TextButton(
onPressed: () {
Navigator.of(context).pop<HabbitEntryCompanion>(
HabbitEntryCompanion(
creationTime: drift.Value(_selectedDate),
description: drift.Value(_descriptionFieldController.text),
habbit: drift.Value(widget.habbit),
Navigator.of(context).pop<HabbitEntry>(
HabbitEntry(
ObjectId(),
_selectedDate,
description: _descriptionFieldController.text,
habbit: MyDatabase.instance.find(widget.habbit),
),
);
},
Expand Down
41 changes: 22 additions & 19 deletions lib/components/habbitform.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import 'package:drift/drift.dart' as drift;
import 'package:flutter/material.dart';
import 'package:realm/realm.dart';

import '../models/config.dart';
import '../models/core.dart';
import '../models/drift.dart';
import '../models/database.dart';

class HabbitDialogForm extends StatefulWidget {
const HabbitDialogForm({
Expand All @@ -24,27 +24,28 @@ class HabbitDialogForm extends StatefulWidget {

static Future<void> editEntry({
required BuildContext context,
required String habbitId,
required HabbitData? habbit,
required Habbit? habbit,
}) async {
if (habbit == null) {
final _habbit = habbit;
if (_habbit == null) {
throw StateError("habbit should not be null");
}
final editedData = await showDialog<HabbitCompanion>(
final editedData = await showDialog<Habbit>(
context: context,
builder: (BuildContext context) {
return HabbitDialogForm(
name: habbit.name,
description: habbit.description,
config: habbit.config,
hidden: habbit.hidden,
name: _habbit.name,
description: _habbit.description,
config: _habbit.config,
hidden: _habbit.hidden,
);
},
);
if (editedData != null) {
(MyDatabase.instance.update(MyDatabase.instance.habbit)
..where((tbl) => tbl.id.equals(habbitId)))
.write(editedData);
editedData.id = _habbit.id;
MyDatabase.instance.writeAsync(() {
MyDatabase.instance.add<Habbit>(editedData, update: true);
});
}
}
}
Expand Down Expand Up @@ -123,12 +124,14 @@ class _HabbitDialogFormState extends State<HabbitDialogForm> {
),
TextButton(
onPressed: () {
Navigator.of(context).pop<HabbitCompanion>(
HabbitCompanion(
name: drift.Value(_nameFieldController.text),
description: drift.Value(_descriptionFieldController.text),
config: drift.Value(_habbitConfig.code),
hidden: drift.Value(_hidden),
Navigator.of(context).pop<Habbit>(
Habbit(
ObjectId(),
_nameFieldController.text,
DateTime.now(),
description: _descriptionFieldController.text,
config: _habbitConfig.code,
hidden: _hidden,
),
);
},
Expand Down
Loading

0 comments on commit 6d68de0

Please sign in to comment.