Skip to content

Commit e41fca1

Browse files
committed
files: Cleanup repo and update deps
1 parent b0753cb commit e41fca1

File tree

8 files changed

+149
-218
lines changed

8 files changed

+149
-218
lines changed

lib/assets/icons/file.png

-2.26 KB
Binary file not shown.

lib/assets/icons/folder.png

-2.82 KB
Binary file not shown.

lib/assets/locales/en-US/strings.xml

Lines changed: 0 additions & 16 deletions
This file was deleted.

lib/backend/database/model.g.dart

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/backend/providers.dart

Lines changed: 22 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -4,83 +4,34 @@ import 'package:files/backend/database/helper.dart';
44
import 'package:files/backend/database/model.dart';
55
import 'package:files/backend/folder_provider.dart';
66
import 'package:files/backend/stat_cache_proxy.dart';
7-
import 'package:flutter/material.dart';
87
import 'package:path/path.dart' as p;
98
import 'package:path_provider/path_provider.dart';
9+
import 'package:ubuntu_service/ubuntu_service.dart';
1010

11-
class _ProvidersSingleton {
12-
_ProvidersSingleton._();
13-
14-
bool _inited = false;
15-
16-
late Isar? _isar;
17-
late FolderProvider? _folderProvider;
18-
late EntityStatCacheHelper? _helper;
19-
late StatCacheProxy? _cacheProxy;
20-
21-
Isar get isar {
22-
_checkForAvailability();
23-
return _isar!;
24-
}
25-
26-
FolderProvider get folderProvider {
27-
_checkForAvailability();
28-
return _folderProvider!;
29-
}
30-
31-
EntityStatCacheHelper get helper {
32-
_checkForAvailability();
33-
return _helper!;
34-
}
35-
36-
StatCacheProxy get cacheProxy {
37-
_checkForAvailability();
38-
return _cacheProxy!;
39-
}
40-
41-
void _checkForAvailability() {
42-
if (!_inited) throw Exception("Providers not inited or disposed");
43-
}
44-
45-
static final _ProvidersSingleton instance = _ProvidersSingleton._();
46-
47-
Future<void> _init() async {
48-
if (_inited) return;
49-
WidgetsFlutterBinding.ensureInitialized();
50-
final dir = await getApplicationDocumentsDirectory();
51-
_isar = await Isar.open(
52-
[EntityStatSchema],
53-
directory: isarPath(dir),
54-
);
55-
_folderProvider = await FolderProvider.init();
56-
_helper = EntityStatCacheHelper();
57-
_cacheProxy = StatCacheProxy();
58-
_inited = true;
59-
}
60-
61-
Future<void> _dispose() async {
62-
await isar.close();
63-
_folderProvider = null;
64-
_helper = null;
65-
_cacheProxy = null;
66-
_inited = false;
67-
}
68-
69-
String isarPath(Directory dir) {
70-
final String path = p.join(dir.path, 'isar');
71-
if (!Directory(path).existsSync()) Directory(path).create();
72-
return path;
73-
}
11+
String _isarPath(Directory dir) {
12+
final String path = p.join(dir.path, 'isar');
13+
if (!Directory(path).existsSync()) Directory(path).create();
14+
return path;
7415
}
7516

76-
Future<void> initProviders() async => _ProvidersSingleton.instance._init();
77-
78-
Future<void> disposeProviders() async => _ProvidersSingleton.instance._dispose();
17+
Future<void> initProviders() async {
18+
final dir = await getApplicationDocumentsDirectory();
19+
final isar = await Isar.open(
20+
[EntityStatSchema],
21+
directory: _isarPath(dir),
22+
);
23+
final folderProvider = await FolderProvider.init();
24+
25+
registerServiceInstance<Isar>(isar);
26+
registerServiceInstance<FolderProvider>(folderProvider);
27+
registerService<EntityStatCacheHelper>(EntityStatCacheHelper.new);
28+
registerService<StatCacheProxy>(StatCacheProxy.new);
29+
}
7930

80-
Isar get isar => _ProvidersSingleton.instance.isar;
31+
Isar get isar => getService<Isar>();
8132

82-
FolderProvider get folderProvider => _ProvidersSingleton.instance.folderProvider;
33+
FolderProvider get folderProvider => getService<FolderProvider>();
8334

84-
EntityStatCacheHelper get helper => _ProvidersSingleton.instance.helper;
35+
EntityStatCacheHelper get helper => getService<EntityStatCacheHelper>();
8536

86-
StatCacheProxy get cacheProxy => _ProvidersSingleton.instance.cacheProxy;
37+
StatCacheProxy get cacheProxy => getService<StatCacheProxy>();

lib/main.dart

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,6 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
//credits: @HrX03 for basic UI https://github.com/HrX03/Flux
18-
19-
import 'dart:async';
20-
2117
import 'package:animations/animations.dart';
2218
import 'package:files/backend/providers.dart';
2319
import 'package:files/backend/utils.dart';
@@ -27,18 +23,13 @@ import 'package:files/widgets/tab_strip.dart';
2723
import 'package:files/widgets/workspace.dart';
2824
import 'package:flutter/material.dart';
2925

30-
// ignore: avoid_void_async
31-
void main() async {
26+
Future<void> main() async {
3227
WidgetsFlutterBinding.ensureInitialized();
33-
await init();
28+
await initProviders();
3429

3530
runApp(const Files());
3631
}
3732

38-
Future<void> init() async {
39-
await initProviders();
40-
}
41-
4233
class Files extends StatelessWidget {
4334
const Files({super.key});
4435

0 commit comments

Comments
 (0)