diff --git a/app/src/main/java/com/toolsboox/plugin/dashboard/nw/DashboardService.kt b/app/src/main/java/com/toolsboox/plugin/dashboard/nw/DashboardService.kt index 82bc4359..d463e982 100644 --- a/app/src/main/java/com/toolsboox/plugin/dashboard/nw/DashboardService.kt +++ b/app/src/main/java/com/toolsboox/plugin/dashboard/nw/DashboardService.kt @@ -15,15 +15,12 @@ interface DashboardService { /** - * Get a value of the parameter by key. + * Get a values of the parameters. * - * @param key the key - * @return the value of the parameter + * @return the value of the parameters */ - @GET(value = "dashboard/parameter/{key}") - fun parameterAsync( - @Path("key") key: String - ): Deferred> + @GET(value = "dashboard/parameters") + fun parametersAsync(): Deferred>> /** * Get the server API version. diff --git a/app/src/main/java/com/toolsboox/plugin/dashboard/ui/DashboardFragment.kt b/app/src/main/java/com/toolsboox/plugin/dashboard/ui/DashboardFragment.kt index 5e0ca144..12a1b111 100644 --- a/app/src/main/java/com/toolsboox/plugin/dashboard/ui/DashboardFragment.kt +++ b/app/src/main/java/com/toolsboox/plugin/dashboard/ui/DashboardFragment.kt @@ -165,11 +165,7 @@ class DashboardFragment @Inject constructor() : ScreenFragment() { binding.recyclerView.adapter = adapter adapter.notifyDataSetChanged() - presenter.parameter(this, "cloudPluginEnabled") - presenter.parameter(this, "cloudSubscriptionRequired") - presenter.parameter(this, "earlyAdopterDeviceIds") - presenter.parameter(this, "googleDriveAutoSyncEnabled") - presenter.parameter(this, "googleDrivePluginEnabled") + presenter.parameters(this) presenter.version(this) val inputManager = requireContext().getSystemService(Context.INPUT_SERVICE) as InputManager? @@ -293,17 +289,18 @@ class DashboardFragment @Inject constructor() : ScreenFragment() { /** * Render the result of 'parameter' service call. * - * @param key the key - * @param value the value + * @param parameters the parameters */ - fun parameterResult(key: String, value: String) { - if ("earlyAdopterDeviceIds" == key) { - sharedPreferences.getString("androidId", null)?.let { androidId -> - sharedPreferences.edit().putBoolean("earlyAdopter", value.contains(androidId)).apply() + fun parameterResult(parameters: Map) { + parameters.forEach { (key, value) -> + if ("earlyAdopterDeviceIds" == key) { + sharedPreferences.getString("androidId", null)?.let { androidId -> + sharedPreferences.edit().putBoolean("earlyAdopter", value.contains(androidId)).apply() + } } + Timber.i("Store parameter in shared preferences: $key - $value") + sharedPreferences.edit().putString(key, value).apply() } - Timber.i("Store parameter in shared preferences: $key - $value") - sharedPreferences.edit().putString(key, value).apply() } /** diff --git a/app/src/main/java/com/toolsboox/plugin/dashboard/ui/DashboardPresenter.kt b/app/src/main/java/com/toolsboox/plugin/dashboard/ui/DashboardPresenter.kt index b4be8abc..988a3a51 100644 --- a/app/src/main/java/com/toolsboox/plugin/dashboard/ui/DashboardPresenter.kt +++ b/app/src/main/java/com/toolsboox/plugin/dashboard/ui/DashboardPresenter.kt @@ -22,13 +22,12 @@ class DashboardPresenter @Inject constructor() : FragmentPresenter() { * Get a value of the parameter by key. * * @param fragment the fragment - * @param key the key - * @return the value of the parameter + * @return the value of the parameters */ - fun parameter(fragment: DashboardFragment, key: String) { + fun parameters(fragment: DashboardFragment) { coroutinesCallHelper( fragment, - { dashboardService.parameterAsync(key) }, + { dashboardService.parametersAsync() }, { response -> when (response.code()) { 200 -> { @@ -36,7 +35,7 @@ class DashboardPresenter @Inject constructor() : FragmentPresenter() { if (body == null) { fragment.somethingHappened(true) } else { - fragment.parameterResult(key, body) + fragment.parameterResult(body) } } diff --git a/build.gradle b/build.gradle index 1b6b4214..140ee016 100644 --- a/build.gradle +++ b/build.gradle @@ -19,8 +19,8 @@ plugins { ext { applicationName = 'toolboox' - parentVersionCode = 1_06_03_04 - parentVersionName = '1.06.03-04' + parentVersionCode = 1_06_03_05 + parentVersionName = '1.06.03-05' } allprojects {