Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix most of the issues
  • Loading branch information
hellcp authored and NoahAndrews committed Apr 4, 2022
commit 49d4193caa5baa538ebf9c6c887c90f4632fa311
3 changes: 0 additions & 3 deletions lib/background/actions/calendar_action_handler.dart
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ class CalendarActionHandler implements ActionHandler {
}
}

@override
Future<TimelineActionResponse> _handleRemoveEventAction(
TimelinePin pin,
) async {
Expand All @@ -73,7 +72,6 @@ class CalendarActionHandler implements ActionHandler {
]);
}

@override
Future<TimelineActionResponse> _handleMuteCalendarAction(
TimelinePin pin,
) async {
Expand Down Expand Up @@ -102,7 +100,6 @@ class CalendarActionHandler implements ActionHandler {
]);
}

@override
Future<TimelineActionResponse> _handleAttendanceAction(TimelinePin pin,
int? actionId,) async {
final eventId = CalendarEventId.fromTimelinePin(pin);
Expand Down
6 changes: 1 addition & 5 deletions lib/background/actions/master_action_handler.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,7 @@ class MasterActionHandler {
) async {
final pin = await _dao.getPinById(Uuid.parse(trigger.itemId!));
if (pin == null) {
final notif = _notifDao.getActiveNotifByPinId(Uuid.parse(trigger.itemId!));
if (notif != null) {
return notificationManager.handleNotifAction(trigger);
}
return TimelineActionResponse(false);
return notificationManager.handleNotifAction(trigger);
}

final targetHandler = handlers[pin.parentId!];
Expand Down
2 changes: 1 addition & 1 deletion lib/background/main_background.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'actions/master_action_handler.dart';
import 'modules/calendar_background.dart';

void main_background() {
void mainBackground() {
WidgetsFlutterBinding.ensureInitialized();

BackgroundReceiver();
Expand Down
20 changes: 6 additions & 14 deletions lib/background/notification/notification_manager.dart
Original file line number Diff line number Diff line change
@@ -1,16 +1,11 @@

import 'dart:convert';
import 'dart:developer';
import 'dart:io';
import 'dart:typed_data';

import 'package:cobble/background/actions/master_action_handler.dart';
import 'package:cobble/domain/db/dao/active_notification_dao.dart';
import 'package:cobble/domain/db/models/active_notification.dart';
import 'package:cobble/domain/db/models/timeline_pin.dart';
import 'package:cobble/domain/db/models/timeline_pin_layout.dart';
import 'package:cobble/domain/db/models/timeline_pin_type.dart';
import 'package:cobble/domain/logging.dart';
import 'package:cobble/domain/notification/notification_action.dart';
import 'package:cobble/domain/notification/notification_category_android.dart';
import 'package:cobble/domain/notification/notification_message.dart';
Expand All @@ -22,9 +17,8 @@ import 'package:cobble/domain/timeline/timeline_icon.dart';
import 'package:cobble/domain/timeline/timeline_serializer.dart';
import 'package:cobble/infrastructure/datasources/preferences.dart';
import 'package:cobble/infrastructure/pigeons/pigeons.g.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/all.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:uuid_type/uuid_type.dart';

Expand Down Expand Up @@ -114,13 +108,11 @@ class NotificationManager {
List<String>? disabledActionPkgs = (await _preferencesFuture).getStringList(disabledActionPackagesKey);
if (disabledActionPkgs == null || !disabledActionPkgs.contains(notif.packageId)) {
List<Map<String, dynamic>> notifActions = new List<Map<String, dynamic>>.from(jsonDecode(notif.actionsJson!));
if (notifActions != null) {
for (int i=0; i<notifActions.length; i++) {
NotificationAction action = NotificationAction.fromJson(notifActions[i]);
actions.add(TimelineAction((MetaAction.values.length)+i, action.isResponse! ? actionTypeResponse : actionTypeGeneric, [
TimelineAttribute.title(action.title)
]));
}
for (int i=0; i<notifActions.length; i++) {
NotificationAction action = NotificationAction.fromJson(notifActions[i]);
actions.add(TimelineAction((MetaAction.values.length)+i, action.isResponse! ? actionTypeResponse : actionTypeGeneric, [
TimelineAttribute.title(action.title)
]));
}
}
attributes.add(content);
Expand Down
14 changes: 7 additions & 7 deletions lib/domain/apps/default_apps.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,39 +4,39 @@ import 'package:cobble/domain/db/models/next_sync_action.dart';
import 'package:cobble/localization/localization.dart';
import 'package:uuid_type/uuid_type.dart';

Future<void> populate_system_apps(AppDao dao) async {
await _add_system_app(
Future<void> populateSystemApps(AppDao dao) async {
await _addSystemApp(
dao,
"07e0d9cb-8957-4bf7-9d42-35bf47caadfe",
tr.systemApps.settings,
);

await _add_system_app(
await _addSystemApp(
dao,
"1f03293d-47af-4f28-b960-f2b02a6dd757",
tr.systemApps.music,
);

await _add_system_app(
await _addSystemApp(
dao,
"b2cae818-10f8-46df-ad2b-98ad2254a3c1",
tr.systemApps.notifications,
);

await _add_system_app(
await _addSystemApp(
dao,
"67a32d95-ef69-46d4-a0b9-854cc62f97f9",
tr.systemApps.alarms,
);

await _add_system_app(
await _addSystemApp(
dao,
"18e443ce-38fd-47c8-84d5-6d0c775fbe55",
tr.systemApps.watchfaces,
);
}

Future<void> _add_system_app(AppDao dao, String uuid, String name) async {
Future<void> _addSystemApp(AppDao dao, String uuid, String name) async {
final nextOrder = await dao.getNumberOfAllInstalledApps();

await dao.insertOrUpdatePackage(
Expand Down
2 changes: 1 addition & 1 deletion lib/domain/calendar/device_calendar_plugin_provider.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:cobble/infrastructure/pigeons/pigeons.g.dart';
import 'package:device_calendar/device_calendar.dart';
import 'package:hooks_riverpod/all.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

final deviceCalendarPluginProvider = Provider((ref) => DeviceCalendarPlugin());

Expand Down
2 changes: 1 addition & 1 deletion lib/domain/calendar/result_converter.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:device_calendar/device_calendar.dart';
import 'package:hooks_riverpod/all.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

extension ResultConverter<T> on Result<T> {
AsyncValue<T> toAsyncValue() {
Expand Down
1 change: 1 addition & 0 deletions lib/domain/connection/connection_state_provider.dart
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ class ConnectionCallbacksStateNotifier
}

void dispose() {
super.dispose();
ConnectionCallbacks.setup(null);
_connectionControl.cancelObservingConnectionChanges();
}
Expand Down
2 changes: 1 addition & 1 deletion lib/domain/connection/pair_provider.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'dart:async';

import 'package:cobble/infrastructure/pigeons/pigeons.g.dart' as pigeon;
import 'package:hooks_riverpod/all.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

class PairCallbacks implements pigeon.PairCallbacks {
final StreamController<int?> streamController;
Expand Down
2 changes: 1 addition & 1 deletion lib/domain/connection/scan_provider.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:cobble/domain/entities/pebble_scan_device.dart';
import 'package:cobble/infrastructure/pigeons/pigeons.g.dart' as pigeon;
import 'package:hooks_riverpod/all.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

/// Stores state of current scan operation. Devices can be empty array but
/// will never be null.
Expand Down
2 changes: 1 addition & 1 deletion lib/domain/date/date_providers.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:hooks_riverpod/all.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

typedef DateTimeProvider = DateTime Function();

Expand Down
6 changes: 3 additions & 3 deletions lib/domain/db/cobble_database.dart
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ Future<void> createAppsTable(Database db) async {

final appDao = AppDao(Future.value(db));

await populate_system_apps(appDao);
await populateSystemApps(appDao);
}

void _createDb(Database db) async {
Expand All @@ -87,7 +87,7 @@ void _upgradeDb(Database db, int oldVersion, int newVersion) async {
"ALTER TABLE $tableApps ADD COLUMN isSystem INTEGER NOT NULL DEFAULT 0;");

final appDao = AppDao(Future.value(db));
await populate_system_apps(appDao);
await populateSystemApps(appDao);
}

if (oldVersion < 5) {
Expand All @@ -102,7 +102,7 @@ void _upgradeDb(Database db, int oldVersion, int newVersion) async {

final AutoDisposeFutureProvider<Database> databaseProvider =
FutureProvider.autoDispose<Database>((key) async {
final dbFolder = await (getDatabasesPath() as FutureOr<String>);
final dbFolder = await getDatabasesPath();
final dbPath = join(dbFolder, "cobble.db");

final db = await openDatabase(dbPath,
Expand Down
4 changes: 2 additions & 2 deletions lib/domain/db/dao/active_notification_dao.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:cobble/domain/db/models/active_notification.dart';
import 'package:hooks_riverpod/all.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:sqflite/sqflite.dart';
import 'package:uuid_type/uuid_type.dart';

Expand Down Expand Up @@ -70,4 +70,4 @@ class ActiveNotificationDao {
final AutoDisposeProvider<ActiveNotificationDao>? activeNotifDaoProvider = Provider.autoDispose((ref) {
final dbFuture = ref.watch(databaseProvider.future);
return ActiveNotificationDao(dbFuture);
});
});
2 changes: 1 addition & 1 deletion lib/domain/db/dao/app_dao.dart
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ class AppDao {
.map((e) => App.fromMap(e))
.toList();

if (!list.isEmpty) {
if (list.isNotEmpty) {
return list.first;
} else {
return null;
Expand Down
2 changes: 1 addition & 1 deletion lib/domain/local_notifications.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:hooks_riverpod/all.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

final localNotificationsPluginProvider =
FutureProvider<FlutterLocalNotificationsPlugin>(
Expand Down
2 changes: 1 addition & 1 deletion lib/domain/permissions.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:cobble/infrastructure/pigeons/pigeons.g.dart';
import 'package:hooks_riverpod/all.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

final permissionControlProvider = Provider((ref) => PermissionControl());
final permissionCheckProvider = Provider((ref) => PermissionCheck());
2 changes: 1 addition & 1 deletion lib/domain/preferences.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:hooks_riverpod/all.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:shared_preferences/shared_preferences.dart';

final sharedPreferencesProvider =
Expand Down
1 change: 0 additions & 1 deletion lib/infrastructure/datasources/paired_storage.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import 'dart:convert';

import 'package:cobble/domain/entities/pebble_scan_device.dart';
import 'package:collection/collection.dart' show IterableExtension;
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:shared_preferences/shared_preferences.dart';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ extension PebbleDeviceSqlExtensions on PebbleScanDevice {
}

Map<String, dynamic> get _sqlSelf {
if (this == null) return {};
return {
"id": this.address,
"name": this.name,
Expand Down
2 changes: 0 additions & 2 deletions lib/infrastructure/datasources/sqlite/filters.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import 'package:flutter/widgets.dart';

/// ```dart
/// String attributeName; // The attribute name
/// List<String> attributes; // List of values attribute can be
Expand Down
36 changes: 10 additions & 26 deletions lib/infrastructure/datasources/sqlite/sqlite_data_source.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import 'package:cobble/domain/entities/pebble_scan_device.dart';
import 'package:cobble/infrastructure/datasources/sqlite/data_transfer_objects/baseobj_dto.dart';
import 'package:cobble/infrastructure/datasources/sqlite/filters.dart';
import 'package:cobble/infrastructure/datasources/sqlite/sqlite_tables.dart';
import 'package:flutter/widgets.dart';
import 'package:path/path.dart' as pathlib;
import 'package:sqflite/sqflite.dart';

Expand All @@ -24,7 +23,7 @@ class SQLiteDataSource {

Future<Database> initializeDatabase() async {
// Get the directory path for both Android and iOS to store database.
var databasesPath = await (getDatabasesPath() as FutureOr<String>);
var databasesPath = await getDatabasesPath();
String path = pathlib.join(databasesPath, 'demo.db');

// Open/close the database at a given path
Expand Down Expand Up @@ -73,7 +72,6 @@ class SQLiteDataSource {
print("SQL ERROR: Object Type Not Supported!!");
return [[]];
}
return [];
}

//////////////////////////////////
Expand Down Expand Up @@ -225,12 +223,8 @@ class SQLiteDataSource {
String _parseRelFilters(String sql, List<RelationalFilter>? relFilters) {
if (relFilters == null) return sql;
for (RelationalFilter filter in relFilters) {
if (filter.value != null &&
filter.attributeName != null &&
filter.attributeOperator != null) {
sql +=
"${filter.attributeName} ${ops[filter.attributeOperator]} ${filter.value}, ";
}
sql +=
"${filter.attributeName} ${ops[filter.attributeOperator]} ${filter.value}, ";
}
return (sql.length > 1) ? sql.substring(0, sql.length - 2) : sql;
}
Expand All @@ -245,12 +239,10 @@ class SQLiteDataSource {
// Loop thru each obj within a relation
for (Map<String, dynamic> singleMap in map[tableName]) {
if (tableName == "name_here_for_only_insert") {
try {
await _singleInsert(tableName, singleMap);
} on DatabaseException catch (exception) {}
await _singleInsert(tableName, singleMap);
} else if (tableName == "name_here_for_no_id_column")
await _singleInsertOrUpdate(tableName, singleMap);
else if (singleMap != null)
else
await _singleUpdateOrInsert(tableName, singleMap);
}
}
Expand All @@ -259,15 +251,9 @@ class SQLiteDataSource {
Future _singleUpdateOrInsert(
String tableName, Map<String, dynamic> obj) async {
int updateResult = 0;
try {
updateResult = await _singleUpdate(tableName, obj);
} on DatabaseException catch (exception) {
//if (exception.isUniqueConstraintError()) {}
}
updateResult = await _singleUpdate(tableName, obj);
if (updateResult == 0) {
try {
await _singleInsert(tableName, obj);
} on DatabaseException catch (exception) {}
await _singleInsert(tableName, obj);
}
}

Expand All @@ -277,20 +263,18 @@ class SQLiteDataSource {
await _singleInsert(tableName, obj);
} on DatabaseException catch (exception) {
if (exception.isUniqueConstraintError()) {
try {
await _singleUpdate(tableName, obj);
} on DatabaseException catch (exception) {}
await _singleUpdate(tableName, obj);
}
}
}

Future _singleInsert(String tableName, Map<String, dynamic> map) async {
if (map == null || map.length < 1) return false;
if (map.length < 1) return false;
return await (await this.database)!.insert(tableName, map);
}

Future<int> _singleUpdate(String tableName, Map map) async {
if (map == null || map.length < 1 || map["id"] == null) return -1;
if (map.length < 1 || map["id"] == null) return -1;
return await (await this.database)!
.update(tableName, map as Map<String, Object?>, where: "id = ?", whereArgs: [map["id"]]);
}
Expand Down
Loading