Skip to content

Feature MWC Demo#49

Draft
dsilhavy wants to merge 7 commits intodevelopmentfrom
feature/commercialUi
Draft

Feature MWC Demo#49
dsilhavy wants to merge 7 commits intodevelopmentfrom
feature/commercialUi

Conversation

@dsilhavy
Copy link
Contributor

@dsilhavy dsilhavy commented Feb 25, 2026

This is a new UI for demonstration of 5GMS at MWC. It is mainly AI generated and the functionality is not yet fully tested. I am adding this as a draft PR for now while checking together with @jordijoangimenez if we can use this for MWC.

The core functionality of the 5GMS Aware application is untouched. It requires an additional metadata.json file with information about the content and the corresponding poster images. The mapping between entries from the m8.json and the metadata.json is currently being done via the name.

The input file to bootstrap the application is now a JSON configuration file that is bundled with the application:

{
  "sources": [
    {
      "name": "Docker",
      "m8Url": "http://192.168.178.56/m8.json",
      "metadataUrl": "http://192.168.178.56/metadata.json"
    }
  ]
}

However it is also possible to load a JSON configuration file from webserver via the settings

Screenshot 2026-02-25 at 13 40 13 Screenshot 2026-02-25 at 13 40 27 Screenshot 2026-02-25 at 13 40 33 Screenshot 2026-02-25 at 13 40 46

@dsilhavy dsilhavy changed the title Feature/commercial UI Feature MWC Demo Feb 25, 2026
@dsilhavy
Copy link
Contributor Author

Adjusted description as I added JSON import and some additional UI changes

@jordijoangimenez
Copy link
Contributor

jordijoangimenez commented Feb 28, 2026

I've just realized when willing to change the source of m8.json, the following code is executed as if configUrl were empty. Debugging you see that configUrl is the URL introduced in the form. but config is empty.

In the following piece of code config.sources is always empty, ending up in the else and showing settings_load_empty

From SettingsActivity.kt - lines around 220

 configProvider.loadFromEndpoint(configUrl, iConfigApi) { config ->
                    runOnUiThread {
                        showLoading(false)
                        loadButton.isEnabled = true
                        appConfig = config
                        receivedSourceName = ""
                        if (config.sources.isNotEmpty()) {
                            populateSourceSpinner()
                            showStatus(
                                getString(R.string.settings_load_success, config.sources.size),
                                isError = false
                            )
                            Toast.makeText(
                                this,
                                getString(R.string.settings_load_success, config.sources.size),
                                Toast.LENGTH_SHORT
                            ).show()
                        } else {
                            populateSourceSpinner()
                            showStatus(getString(R.string.settings_load_empty), isError = true)
                        }

@dsilhavy
Copy link
Contributor Author

dsilhavy commented Mar 1, 2026

I've just realized when willing to change the source of m8.json, the following code is executed as if configUrl were empty. Debugging you see that configUrl is the URL introduced in the form. but config is empty.

In the following piece of code config.sources is always empty, ending up in the else and showing settings_load_empty

From SettingsActivity.kt - lines around 220

 configProvider.loadFromEndpoint(configUrl, iConfigApi) { config ->
                    runOnUiThread {
                        showLoading(false)
                        loadButton.isEnabled = true
                        appConfig = config
                        receivedSourceName = ""
                        if (config.sources.isNotEmpty()) {
                            populateSourceSpinner()
                            showStatus(
                                getString(R.string.settings_load_success, config.sources.size),
                                isError = false
                            )
                            Toast.makeText(
                                this,
                                getString(R.string.settings_load_success, config.sources.size),
                                Toast.LENGTH_SHORT
                            ).show()
                        } else {
                            populateSourceSpinner()
                            showStatus(getString(R.string.settings_load_empty), isError = true)
                        }

@jordijoangimenez Thanks, not quite sure what you mean here. I tried loading an app_config.json via the settings menu and the option Configuration Source. That worked for me and the new Content Source items were appearing on the menu below. I also see the message "Loaded 2 source(s)" in the UI.

Screenshot 2026-03-01 at 10 48 23

Switching between the content sources also updated the entries in the landing page for me.

@jordijoangimenez
Copy link
Contributor

Question. Is this intended to be the m8json or the app metadata? I was trying to get m8

@jordijoangimenez
Copy link
Contributor

If that URL is metadataUrl than I was mixing up with m8Url

@dsilhavy
Copy link
Contributor Author

dsilhavy commented Mar 1, 2026

The Configuration Source input is for loading another app_config.json with the following format:

{
  "sources": [
    {
      "name": "Hosted",
      "m8Url": "http://192.168.178.56:8000/m8_hosted.json",
      "metadataUrl": "http://192.168.178.56:8000/metadata_hosted.json"
    },
    {
      "name": "Hosted 2",
      "m8Url": "http://192.168.178.56:8000/m8_hosted_2.json",
      "metadataUrl": "http://192.168.178.56:8000/metadata_hosted_2.json"
    }
  ]
}
Screenshot 2026-03-01 at 11 02 21

The Content Source dropdown below then lets you select one of the defined m8Url endpoints. The entries defined in m8Url are then mapped to the entries in metadataUrl via the name

@jordijoangimenez
Copy link
Contributor

Got it! My bad.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants