Force Checking of libCwtch.so Loading Status in Tests
continuous-integration/drone/pr Build is failing
Details
continuous-integration/drone/pr Build is failing
Details
This commit is contained in:
parent
a98068749e
commit
f50242d664
|
@ -156,4 +156,6 @@ abstract class Cwtch {
|
||||||
void DeleteServerInfo(String profile, String handle);
|
void DeleteServerInfo(String profile, String handle);
|
||||||
void PublishServerUpdate(String onion);
|
void PublishServerUpdate(String onion);
|
||||||
Future<void> ConfigureConnections(String onion, bool listen, bool peers, bool servers);
|
Future<void> ConfigureConnections(String onion, bool listen, bool peers, bool servers);
|
||||||
|
|
||||||
|
bool IsLoaded();
|
||||||
}
|
}
|
||||||
|
|
|
@ -268,6 +268,8 @@ class CwtchFfi implements Cwtch {
|
||||||
// Called on object being disposed to (presumably on app close) to close the isolate that's listening to libcwtch-go events
|
// Called on object being disposed to (presumably on app close) to close the isolate that's listening to libcwtch-go events
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
|
EnvironmentConfig.debugLog("tearing down cwtch FFI isolate");
|
||||||
|
library.close();
|
||||||
cwtchIsolate.kill(priority: Isolate.immediate);
|
cwtchIsolate.kill(priority: Isolate.immediate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1121,4 +1123,11 @@ class CwtchFfi implements Cwtch {
|
||||||
PublishServerUpdate(utf8profile, utf8profile.length);
|
PublishServerUpdate(utf8profile, utf8profile.length);
|
||||||
malloc.free(utf8profile);
|
malloc.free(utf8profile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool IsLoaded() {
|
||||||
|
bool check = library.providesSymbol("c_UpdateSettings");
|
||||||
|
EnvironmentConfig.debugLog("Checking that the FFI Interface is Correctly Loaded... $check");
|
||||||
|
return check;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -469,4 +469,9 @@ class CwtchGomobile implements Cwtch {
|
||||||
void PublishServerUpdate(String profile) {
|
void PublishServerUpdate(String profile) {
|
||||||
cwtchPlatform.invokeMethod("PublishServerUpdate", {"ProfileOnion": profile});
|
cwtchPlatform.invokeMethod("PublishServerUpdate", {"ProfileOnion": profile});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool IsLoaded() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -173,6 +173,10 @@ class FlwtchState extends State<Flwtch> with WindowListener {
|
||||||
getServerListStateProvider(),
|
getServerListStateProvider(),
|
||||||
],
|
],
|
||||||
builder: (context, widget) {
|
builder: (context, widget) {
|
||||||
|
// in test mode...rebuild everything every second...if cwtch isn't loaded...
|
||||||
|
if (EnvironmentConfig.TEST_MODE && cwtch.IsLoaded() == false) {
|
||||||
|
Timer t = new Timer.periodic(Duration(seconds: 1), (Timer t) => setState(() {}));
|
||||||
|
}
|
||||||
return Consumer2<Settings, AppState>(
|
return Consumer2<Settings, AppState>(
|
||||||
builder: (context, settings, appState, child) => MaterialApp(
|
builder: (context, settings, appState, child) => MaterialApp(
|
||||||
key: Key('app'),
|
key: Key('app'),
|
||||||
|
@ -190,7 +194,7 @@ class FlwtchState extends State<Flwtch> with WindowListener {
|
||||||
title: 'Cwtch',
|
title: 'Cwtch',
|
||||||
showSemanticsDebugger: settings.useSemanticDebugger,
|
showSemanticsDebugger: settings.useSemanticDebugger,
|
||||||
theme: mkThemeData(settings),
|
theme: mkThemeData(settings),
|
||||||
home: (!appState.cwtchInit || appState.modalState != ModalState.none) ? SplashView() : ProfileMgrView(),
|
home: (!appState.cwtchInit || appState.modalState != ModalState.none) || !cwtch.IsLoaded() ? SplashView() : ProfileMgrView(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
|
@ -83,7 +83,7 @@ class _GlobalSettingsViewState extends State<GlobalSettingsView> {
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildSettingsList() {
|
Widget _buildSettingsList() {
|
||||||
return Consumer<Settings>(builder: (context, settings, child) {
|
return Consumer<Settings>(builder: (ccontext, settings, child) {
|
||||||
return LayoutBuilder(builder: (BuildContext context, BoxConstraints viewportConstraints) {
|
return LayoutBuilder(builder: (BuildContext context, BoxConstraints viewportConstraints) {
|
||||||
var appIcon = Icon(Icons.info, color: settings.current().mainTextColor);
|
var appIcon = Icon(Icons.info, color: settings.current().mainTextColor);
|
||||||
return Scrollbar(
|
return Scrollbar(
|
||||||
|
|
Loading…
Reference in New Issue