It is useful to display the currently applied overridden configuration in your app. We suggest you display this on your app's home screen.
You can add the APLConfigurationLabel
to your view controller in a viewDidLoad
like this:
override func viewDidLoad() {
let label = APLConfigurationLabel(frame: .zero)
label.center = CGPoint(x: 7, y: self.navigationController!.view.bounds.size.height / 2)
self.navigationController!.view.addSubview(label)
}
You can add the APLConfigurationLabel
to your view controller in a viewDidLoad
like this:
- (void) viewDidLoad {
APLConfigurationLabel* label = [[APLConfigurationLabel alloc] initWithFrame: CGRectZero];
label.center = CGPointMake(7, self.navigationController.view.bounds.size.height / 2);
[self.navigationController.view addSubview: label];
}
Embed your original layout inside a FrameLayout
. The ConfigurationLabel
must come after the original layout for it to appear on top.
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<original-layout-here/>
<nz.co.electricbolt.appfiguratelibrary.ConfigurationLabel
android:id="@+id/configuration_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"/>
</FrameLayout>
Make the body
of your page a APLConfiguationLabel
, and set it's child
to the original body
:
...
@override
Widget build(BuildContext context) {
var media = MediaQuery.of(context);
var padding = media.padding.left == 0.0 ? 8.0 : media.padding.left;
return Scaffold(
appBar: AppBar(
title: Text('Example'),
),
body: APLConfigurationLabel(child:
ListView(
...
Swift APLAddConfigurationUpdatedListener
example
extension MyLogonController: APLConfigurationUpdated {
override func viewDidLoad() {
APLAddConfigurationUpdatedListener(self)
}
func configurationUpdated(_ notification: Notification?) {
label.text = APLConfiguration.shared().modifications
}
...
Objective-C APLAddConfigurationUpdatedListener
example
@interface MyLogonController () <APLConfigurationUpdated>
@end
@implementation MyLogonController
- (void) viewDidLoad {
APLAddConfigurationUpdatedListener(self);
}
- (void) configurationUpdated: (NSNotification*) notification {
label.text = [[APLConfiguration sharedConfiguration] modifications];
}
...
Kotlin addConfigurationUpdatedListener
example
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Appfigurate.addConfigurationUpdatedListener { action: String? ->
label.text = Configuration.sharedConfiguration().modifications()
}
...
Java addConfigurationUpdatedListener
example
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Appfigurate.addConfigurationUpdatedListener((String action) -> {
label.text = Configuration.sharedConfiguration().modifications();
});
...
Dart APLAddConfigurationUpdatedListener
example
class _MyLabelState extends State<MyLabel> {
@override
void initState() {
super.initState();
APLAddConfigurationUpdatedListener(configurationUpdated);
}
@override
void dispose() {
APLRemoveConfigurationUpdatedListener(configurationUpdated);
super.dispose();
}
void configurationUpdated(String? action) {
setState(() {});
}
@override
Widget build(BuildContext context) {
return Text('${APLNativeConfiguration.sharedConfiguration().modifications()}');
}
...