Skip to content

Commit 89a9789

Browse files
committed
Allow creating a clone repository
1 parent a5007d8 commit 89a9789

File tree

9 files changed

+388
-110
lines changed

9 files changed

+388
-110
lines changed

app/lib/bridge/api/settings.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,9 @@ class EncryptionKey {
106106
RustLib.instance.api.crateApiSettingsEncryptionKeySave(
107107
repositoryUuid: repositoryUuid, key: key);
108108

109+
static String? validate({required String key}) =>
110+
RustLib.instance.api.crateApiSettingsEncryptionKeyValidate(key: key);
111+
109112
@override
110113
int get hashCode => key.hashCode;
111114

app/lib/bridge/frb_generated.dart

Lines changed: 80 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ class RustLib extends BaseEntrypoint<RustLibApi, RustLibApiImpl, RustLibWire> {
8585
String get codegenVersion => '2.6.0';
8686

8787
@override
88-
int get rustContentHash => 1450886450;
88+
int get rustContentHash => -1476507616;
8989

9090
static const kDefaultExternalLibraryLoaderConfig =
9191
ExternalLibraryLoaderConfig(
@@ -197,6 +197,8 @@ abstract class RustLibApi extends BaseApi {
197197
Future<EncryptionKey> crateApiSettingsEncryptionKeySave(
198198
{required UuidValue repositoryUuid, required String key});
199199

200+
String? crateApiSettingsEncryptionKeyValidate({required String key});
201+
200202
Future<Filter> crateApiFilterFilterDefault();
201203

202204
Future<String> crateApiLoggingGetLogs();
@@ -844,7 +846,8 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
844846
codec: SseCodec(
845847
decodeSuccessData:
846848
sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTaskStorage,
847-
decodeErrorData: null,
849+
decodeErrorData:
850+
sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRustError,
848851
),
849852
constMeta: kCrateApiRepositoryGitTaskStorageLoadConstMeta,
850853
argValues: [uuid],
@@ -905,7 +908,8 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
905908
codec: SseCodec(
906909
decodeSuccessData:
907910
sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTaskStorage,
908-
decodeErrorData: null,
911+
decodeErrorData:
912+
sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRustError,
909913
),
910914
constMeta: kCrateApiRepositoryGitTaskStorageNewConstMeta,
911915
argValues: [repositoryUuid, path, settings],
@@ -1251,13 +1255,37 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
12511255
argNames: ['repositoryUuid', 'key'],
12521256
);
12531257

1258+
@override
1259+
String? crateApiSettingsEncryptionKeyValidate({required String key}) {
1260+
return handler.executeSync(SyncTask(
1261+
callFfi: () {
1262+
final serializer = SseSerializer(generalizedFrbRustBinding);
1263+
sse_encode_String(key, serializer);
1264+
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 50)!;
1265+
},
1266+
codec: SseCodec(
1267+
decodeSuccessData: sse_decode_opt_String,
1268+
decodeErrorData: null,
1269+
),
1270+
constMeta: kCrateApiSettingsEncryptionKeyValidateConstMeta,
1271+
argValues: [key],
1272+
apiImpl: this,
1273+
));
1274+
}
1275+
1276+
TaskConstMeta get kCrateApiSettingsEncryptionKeyValidateConstMeta =>
1277+
const TaskConstMeta(
1278+
debugName: 'encryption_key_validate',
1279+
argNames: ['key'],
1280+
);
1281+
12541282
@override
12551283
Future<Filter> crateApiFilterFilterDefault() {
12561284
return handler.executeNormal(NormalTask(
12571285
callFfi: (port_) {
12581286
final serializer = SseSerializer(generalizedFrbRustBinding);
12591287
pdeCallFfi(generalizedFrbRustBinding, serializer,
1260-
funcId: 50, port: port_);
1288+
funcId: 51, port: port_);
12611289
},
12621290
codec: SseCodec(
12631291
decodeSuccessData: sse_decode_filter,
@@ -1281,7 +1309,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
12811309
callFfi: (port_) {
12821310
final serializer = SseSerializer(generalizedFrbRustBinding);
12831311
pdeCallFfi(generalizedFrbRustBinding, serializer,
1284-
funcId: 51, port: port_);
1312+
funcId: 52, port: port_);
12851313
},
12861314
codec: SseCodec(
12871315
decodeSuccessData: sse_decode_String,
@@ -1304,7 +1332,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
13041332
callFfi: (port_) {
13051333
final serializer = SseSerializer(generalizedFrbRustBinding);
13061334
pdeCallFfi(generalizedFrbRustBinding, serializer,
1307-
funcId: 52, port: port_);
1335+
funcId: 53, port: port_);
13081336
},
13091337
codec: SseCodec(
13101338
decodeSuccessData: sse_decode_unit,
@@ -1328,7 +1356,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
13281356
callFfi: (port_) {
13291357
final serializer = SseSerializer(generalizedFrbRustBinding);
13301358
pdeCallFfi(generalizedFrbRustBinding, serializer,
1331-
funcId: 53, port: port_);
1359+
funcId: 54, port: port_);
13321360
},
13331361
codec: SseCodec(
13341362
decodeSuccessData: sse_decode_known_hosts,
@@ -1354,7 +1382,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
13541382
final serializer = SseSerializer(generalizedFrbRustBinding);
13551383
sse_encode_box_autoadd_known_hosts(this_, serializer);
13561384
pdeCallFfi(generalizedFrbRustBinding, serializer,
1357-
funcId: 54, port: port_);
1385+
funcId: 55, port: port_);
13581386
},
13591387
codec: SseCodec(
13601388
decodeSuccessData: sse_decode_unit,
@@ -1380,7 +1408,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
13801408
final serializer = SseSerializer(generalizedFrbRustBinding);
13811409
sse_encode_String(message, serializer);
13821410
pdeCallFfi(generalizedFrbRustBinding, serializer,
1383-
funcId: 55, port: port_);
1411+
funcId: 56, port: port_);
13841412
},
13851413
codec: SseCodec(
13861414
decodeSuccessData: sse_decode_unit,
@@ -1404,7 +1432,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
14041432
final serializer = SseSerializer(generalizedFrbRustBinding);
14051433
sse_encode_String(message, serializer);
14061434
pdeCallFfi(generalizedFrbRustBinding, serializer,
1407-
funcId: 56, port: port_);
1435+
funcId: 57, port: port_);
14081436
},
14091437
codec: SseCodec(
14101438
decodeSuccessData: sse_decode_unit,
@@ -1428,7 +1456,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
14281456
final serializer = SseSerializer(generalizedFrbRustBinding);
14291457
sse_encode_String(message, serializer);
14301458
pdeCallFfi(generalizedFrbRustBinding, serializer,
1431-
funcId: 57, port: port_);
1459+
funcId: 58, port: port_);
14321460
},
14331461
codec: SseCodec(
14341462
decodeSuccessData: sse_decode_unit,
@@ -1452,7 +1480,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
14521480
final serializer = SseSerializer(generalizedFrbRustBinding);
14531481
sse_encode_String(message, serializer);
14541482
pdeCallFfi(generalizedFrbRustBinding, serializer,
1455-
funcId: 58, port: port_);
1483+
funcId: 59, port: port_);
14561484
},
14571485
codec: SseCodec(
14581486
decodeSuccessData: sse_decode_unit,
@@ -1476,7 +1504,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
14761504
final serializer = SseSerializer(generalizedFrbRustBinding);
14771505
sse_encode_String(message, serializer);
14781506
pdeCallFfi(generalizedFrbRustBinding, serializer,
1479-
funcId: 59, port: port_);
1507+
funcId: 60, port: port_);
14801508
},
14811509
codec: SseCodec(
14821510
decodeSuccessData: sse_decode_unit,
@@ -1500,7 +1528,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
15001528
final serializer = SseSerializer(generalizedFrbRustBinding);
15011529
sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOid(
15021530
oid, serializer);
1503-
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 60)!;
1531+
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 61)!;
15041532
},
15051533
codec: SseCodec(
15061534
decodeSuccessData: sse_decode_String,
@@ -1524,7 +1552,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
15241552
callFfi: (port_) {
15251553
final serializer = SseSerializer(generalizedFrbRustBinding);
15261554
pdeCallFfi(generalizedFrbRustBinding, serializer,
1527-
funcId: 61, port: port_);
1555+
funcId: 62, port: port_);
15281556
},
15291557
codec: SseCodec(
15301558
decodeSuccessData: sse_decode_repository,
@@ -1550,7 +1578,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
15501578
final serializer = SseSerializer(generalizedFrbRustBinding);
15511579
sse_encode_StreamSink_settings_Sse(streamSink, serializer);
15521580
pdeCallFfi(generalizedFrbRustBinding, serializer,
1553-
funcId: 62, port: port_);
1581+
funcId: 63, port: port_);
15541582
},
15551583
codec: SseCodec(
15561584
decodeSuccessData: sse_decode_unit,
@@ -1575,7 +1603,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
15751603
callFfi: (port_) {
15761604
final serializer = SseSerializer(generalizedFrbRustBinding);
15771605
pdeCallFfi(generalizedFrbRustBinding, serializer,
1578-
funcId: 63, port: port_);
1606+
funcId: 64, port: port_);
15791607
},
15801608
codec: SseCodec(
15811609
decodeSuccessData: sse_decode_settings,
@@ -1599,7 +1627,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
15991627
callFfi: (port_) {
16001628
final serializer = SseSerializer(generalizedFrbRustBinding);
16011629
pdeCallFfi(generalizedFrbRustBinding, serializer,
1602-
funcId: 64, port: port_);
1630+
funcId: 65, port: port_);
16031631
},
16041632
codec: SseCodec(
16051633
decodeSuccessData: sse_decode_settings,
@@ -1625,7 +1653,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
16251653
final serializer = SseSerializer(generalizedFrbRustBinding);
16261654
sse_encode_box_autoadd_application_paths(paths, serializer);
16271655
pdeCallFfi(generalizedFrbRustBinding, serializer,
1628-
funcId: 65, port: port_);
1656+
funcId: 66, port: port_);
16291657
},
16301658
codec: SseCodec(
16311659
decodeSuccessData: sse_decode_settings,
@@ -1649,7 +1677,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
16491677
return handler.executeSync(SyncTask(
16501678
callFfi: () {
16511679
final serializer = SseSerializer(generalizedFrbRustBinding);
1652-
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 66)!;
1680+
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 67)!;
16531681
},
16541682
codec: SseCodec(
16551683
decodeSuccessData: sse_decode_settings,
@@ -1674,7 +1702,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
16741702
final serializer = SseSerializer(generalizedFrbRustBinding);
16751703
sse_encode_box_autoadd_settings(settings, serializer);
16761704
pdeCallFfi(generalizedFrbRustBinding, serializer,
1677-
funcId: 67, port: port_);
1705+
funcId: 68, port: port_);
16781706
},
16791707
codec: SseCodec(
16801708
decodeSuccessData: sse_decode_unit,
@@ -1699,7 +1727,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
16991727
callFfi: (port_) {
17001728
final serializer = SseSerializer(generalizedFrbRustBinding);
17011729
pdeCallFfi(generalizedFrbRustBinding, serializer,
1702-
funcId: 68, port: port_);
1730+
funcId: 69, port: port_);
17031731
},
17041732
codec: SseCodec(
17051733
decodeSuccessData:
@@ -1724,7 +1752,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
17241752
callFfi: () {
17251753
final serializer = SseSerializer(generalizedFrbRustBinding);
17261754
sse_encode_String(title, serializer);
1727-
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 69)!;
1755+
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 70)!;
17281756
},
17291757
codec: SseCodec(
17301758
decodeSuccessData: sse_decode_task,
@@ -1747,7 +1775,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
17471775
callFfi: () {
17481776
final serializer = SseSerializer(generalizedFrbRustBinding);
17491777
sse_encode_box_autoadd_task(that, serializer);
1750-
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 70)!;
1778+
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 71)!;
17511779
},
17521780
codec: SseCodec(
17531781
decodeSuccessData: sse_decode_f_32,
@@ -1773,7 +1801,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
17731801
sse_encode_Uuid(uuid, serializer);
17741802
sse_encode_String(title, serializer);
17751803
pdeCallFfi(generalizedFrbRustBinding, serializer,
1776-
funcId: 71, port: port_);
1804+
funcId: 72, port: port_);
17771805
},
17781806
codec: SseCodec(
17791807
decodeSuccessData: sse_decode_task,
@@ -2284,6 +2312,12 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
22842312
return const Logger();
22852313
}
22862314

2315+
@protected
2316+
String? dco_decode_opt_String(dynamic raw) {
2317+
// Codec=Dco (DartCObject based), see doc to use other codecs
2318+
return raw == null ? null : dco_decode_String(raw);
2319+
}
2320+
22872321
@protected
22882322
UuidValue? dco_decode_opt_Uuid(dynamic raw) {
22892323
// Codec=Dco (DartCObject based), see doc to use other codecs
@@ -2966,6 +3000,17 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
29663000
return const Logger();
29673001
}
29683002

3003+
@protected
3004+
String? sse_decode_opt_String(SseDeserializer deserializer) {
3005+
// Codec=Sse (Serialization based), see doc to use other codecs
3006+
3007+
if (sse_decode_bool(deserializer)) {
3008+
return sse_decode_String(deserializer);
3009+
} else {
3010+
return null;
3011+
}
3012+
}
3013+
29693014
@protected
29703015
UuidValue? sse_decode_opt_Uuid(SseDeserializer deserializer) {
29713016
// Codec=Sse (Serialization based), see doc to use other codecs
@@ -3680,6 +3725,16 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
36803725
// Codec=Sse (Serialization based), see doc to use other codecs
36813726
}
36823727

3728+
@protected
3729+
void sse_encode_opt_String(String? self, SseSerializer serializer) {
3730+
// Codec=Sse (Serialization based), see doc to use other codecs
3731+
3732+
sse_encode_bool(self != null, serializer);
3733+
if (self != null) {
3734+
sse_encode_String(self, serializer);
3735+
}
3736+
}
3737+
36833738
@protected
36843739
void sse_encode_opt_Uuid(UuidValue? self, SseSerializer serializer) {
36853740
// Codec=Sse (Serialization based), see doc to use other codecs

app/lib/bridge/frb_generated.io.dart

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
254254
@protected
255255
Logger dco_decode_logger(dynamic raw);
256256

257+
@protected
258+
String? dco_decode_opt_String(dynamic raw);
259+
257260
@protected
258261
UuidValue? dco_decode_opt_Uuid(dynamic raw);
259262

@@ -523,6 +526,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
523526
@protected
524527
Logger sse_decode_logger(SseDeserializer deserializer);
525528

529+
@protected
530+
String? sse_decode_opt_String(SseDeserializer deserializer);
531+
526532
@protected
527533
UuidValue? sse_decode_opt_Uuid(SseDeserializer deserializer);
528534

@@ -813,6 +819,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
813819
@protected
814820
void sse_encode_logger(Logger self, SseSerializer serializer);
815821

822+
@protected
823+
void sse_encode_opt_String(String? self, SseSerializer serializer);
824+
816825
@protected
817826
void sse_encode_opt_Uuid(UuidValue? self, SseSerializer serializer);
818827

app/lib/routes/initial_route.dart

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,15 @@ class InitialRoute extends StatelessWidget {
4040
width: 250,
4141
height: 50,
4242
child: ElevatedButton.icon(
43-
onPressed: () {},
43+
onPressed: () {
44+
Navigator.of(context).push<void>(
45+
MaterialPageRoute(
46+
builder: (context) => const RepositoryNewRoute(
47+
cloning: true,
48+
),
49+
),
50+
);
51+
},
4452
label: const Text('Clone Repository'),
4553
icon: const Icon(Icons.cloud),
4654
style: ElevatedButton.styleFrom(

0 commit comments

Comments
 (0)