From 4abfd5b57d0766d0a747c8b8991c1bb2ab1b475d Mon Sep 17 00:00:00 2001 From: Savvas Dalkitsis Date: Sun, 12 Nov 2017 15:59:00 +0000 Subject: [PATCH] Warn the user when the wifi is off and option to enable (fixes #21) --- app/src/main/AndroidManifest.xml | 1 + app/src/main/assets/changelog.md | 1 + .../control/presenter/ControlPresenter.kt | 16 ++++++++-- .../feature/control/view/ControlFragment.kt | 12 ++++++-- .../feature/control/view/ControlView.kt | 2 ++ .../GameFrameCommandError.kt | 2 +- .../gameframe/usecase/GameFrameUseCase.kt | 25 +++++++++++++--- .../feature/ip/presenter/IpSetupPresenter.kt | 14 +++++++-- .../feature/ip/view/IpSetupActivity.kt | 6 ++++ .../gameframe/feature/ip/view/IpSetupView.kt | 2 ++ .../wifi/model/WifiNotEnabledException.kt | 19 ++++++++++++ .../feature/wifi/usecase/WifiUseCase.kt | 30 +++++++++++++++++++ .../workspace/presenter/WorkspacePresenter.kt | 11 +++++-- .../workspace/view/WorkspaceFragment.kt | 6 ++++ .../feature/workspace/view/WorkspaceView.kt | 1 + .../injector/presenter/PresenterInjector.kt | 8 +++-- .../injector/usecase/UseCaseInjector.kt | 7 +++-- app/src/main/res/values/strings.xml | 2 ++ 18 files changed, 147 insertions(+), 18 deletions(-) rename app/src/main/java/com/savvasdalkitsis/gameframe/feature/gameframe/{usecase => model}/GameFrameCommandError.kt (92%) create mode 100644 app/src/main/java/com/savvasdalkitsis/gameframe/feature/wifi/model/WifiNotEnabledException.kt create mode 100644 app/src/main/java/com/savvasdalkitsis/gameframe/feature/wifi/usecase/WifiUseCase.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 719d36a..8f70b7e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,6 +5,7 @@ + diff --git a/app/src/main/assets/changelog.md b/app/src/main/assets/changelog.md index 89d8862..0aff84a 100644 --- a/app/src/main/assets/changelog.md +++ b/app/src/main/assets/changelog.md @@ -15,6 +15,7 @@ body { * Moved to Firebase from fabric * Navigating to ip setup if missing when uploading to Game Frame * Changing the navigation bar color to the same color as the status bar on lollipop and later devices +* Warn the user when the wifi is off and option to enable #### v1.1.2 ##### 04 Nov 2017 diff --git a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/control/presenter/ControlPresenter.kt b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/control/presenter/ControlPresenter.kt index f5d8d8b..d2b75e3 100644 --- a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/control/presenter/ControlPresenter.kt +++ b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/control/presenter/ControlPresenter.kt @@ -24,11 +24,14 @@ import com.savvasdalkitsis.gameframe.feature.ip.repository.IpRepository import com.savvasdalkitsis.gameframe.feature.navigation.Navigator import com.savvasdalkitsis.gameframe.infra.rx.RxTransformers import com.savvasdalkitsis.gameframe.base.BasePresenter +import com.savvasdalkitsis.gameframe.feature.wifi.model.WifiNotEnabledException +import com.savvasdalkitsis.gameframe.feature.wifi.usecase.WifiUseCase import io.reactivex.Completable class ControlPresenter(private val gameFrameUseCase: GameFrameUseCase, private val ipRepository: IpRepository, - private val navigator: Navigator): BasePresenter() { + private val navigator: Navigator, + private val wifiUseCase: WifiUseCase): BasePresenter() { fun loadIpAddress() = stream { ipRepository.ipAddress @@ -59,10 +62,19 @@ class ControlPresenter(private val gameFrameUseCase: GameFrameUseCase, .compose(RxTransformers.schedulers()) private fun runCommandAndNotifyView(command: Completable) = stream { - runCommand(command).subscribe({ view?.operationSuccess() }, { e -> view?.operationFailure(e) }) + runCommand(command).subscribe({ view?.operationSuccess() }, { e -> + when (e) { + is WifiNotEnabledException -> view?.wifiNotEnabledError(e) + else -> view?.operationFailure(e) + } + }) } private fun runCommandAndIgnoreResult(command: Completable) = stream { runCommand(command).subscribe({ }, { }) } + + fun enableWifi() { + wifiUseCase.enableWifi() + } } \ No newline at end of file diff --git a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/control/view/ControlFragment.kt b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/control/view/ControlFragment.kt index e8b689a..ed23f5e 100644 --- a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/control/view/ControlFragment.kt +++ b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/control/view/ControlFragment.kt @@ -42,6 +42,7 @@ class ControlFragment : BaseFragment(), ControlVi override val presenter = PresenterInjector.controlPresenter() override val view = this private lateinit var fab: FloatingActionButton + private val coordinator: View get() = activity!!.findViewById(R.id.view_coordinator) override val layoutId: Int get() = R.layout.fragment_control @@ -120,11 +121,18 @@ class ControlFragment : BaseFragment(), ControlVi presenter.changeClockFace(ClockFace.from(position)) } - override fun operationSuccess() = Snackbars.success(activity!!.findViewById(R.id.view_coordinator), R.string.success) + override fun operationSuccess() = Snackbars.success(coordinator, R.string.success) override fun operationFailure(e: Throwable) { Log.e(ControlFragment::class.java.name, "Operation failure", e) - Snackbars.error(activity!!.findViewById(R.id.view_coordinator), R.string.operation_failed) + Snackbars.error(coordinator, R.string.operation_failed) + } + + override fun wifiNotEnabledError(e: Throwable) { + Log.e(ControlFragment::class.java.name, "Operation failure", e) + Snackbars.actionError(coordinator, R.string.wifi_not_enabled, R.string.enable) { + presenter.enableWifi() + } } override fun ipAddressLoaded(ipAddress: IpAddress) { diff --git a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/control/view/ControlView.kt b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/control/view/ControlView.kt index cd53ce6..7ce9b83 100644 --- a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/control/view/ControlView.kt +++ b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/control/view/ControlView.kt @@ -28,4 +28,6 @@ interface ControlView: BaseView { fun ipAddressLoaded(ipAddress: IpAddress) fun ipCouldNotBeFound(throwable: Throwable) + + fun wifiNotEnabledError(e: Throwable) } diff --git a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/gameframe/usecase/GameFrameCommandError.kt b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/gameframe/model/GameFrameCommandError.kt similarity index 92% rename from app/src/main/java/com/savvasdalkitsis/gameframe/feature/gameframe/usecase/GameFrameCommandError.kt rename to app/src/main/java/com/savvasdalkitsis/gameframe/feature/gameframe/model/GameFrameCommandError.kt index 1d54e05..986c74f 100644 --- a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/gameframe/usecase/GameFrameCommandError.kt +++ b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/gameframe/model/GameFrameCommandError.kt @@ -14,7 +14,7 @@ * * 'Game Frame' is a registered trademark of LEDSEQ */ -package com.savvasdalkitsis.gameframe.feature.gameframe.usecase +package com.savvasdalkitsis.gameframe.feature.gameframe.model import com.savvasdalkitsis.gameframe.feature.gameframe.api.CommandResponse diff --git a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/gameframe/usecase/GameFrameUseCase.kt b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/gameframe/usecase/GameFrameUseCase.kt index 8622548..4afa7fb 100644 --- a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/gameframe/usecase/GameFrameUseCase.kt +++ b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/gameframe/usecase/GameFrameUseCase.kt @@ -27,10 +27,12 @@ import com.savvasdalkitsis.gameframe.feature.ip.model.IpAddress import com.savvasdalkitsis.gameframe.feature.ip.model.IpNotFoundException import com.savvasdalkitsis.gameframe.feature.ip.usecase.IpDiscoveryUseCase import com.savvasdalkitsis.gameframe.feature.bmp.usecase.BmpUseCase +import com.savvasdalkitsis.gameframe.feature.gameframe.model.GameFrameCommandError import com.savvasdalkitsis.gameframe.feature.ip.repository.IpRepository import com.savvasdalkitsis.gameframe.feature.saves.usecase.FileUseCase +import com.savvasdalkitsis.gameframe.feature.wifi.model.WifiNotEnabledException +import com.savvasdalkitsis.gameframe.feature.wifi.usecase.WifiUseCase import com.savvasdalkitsis.gameframe.feature.workspace.element.grid.model.Grid -import com.savvasdalkitsis.gameframe.injector.feature.ip.repository.IpRepositoryInjector import io.reactivex.Completable import io.reactivex.Flowable import io.reactivex.Maybe @@ -47,7 +49,8 @@ class GameFrameUseCase(private val okHttpClient: OkHttpClient, private val ipDiscoveryUseCase: IpDiscoveryUseCase, private val fileUseCase: FileUseCase, private val bmpUseCase: BmpUseCase, - private val ipRepository: IpRepository) { + private val ipRepository: IpRepository, + private val wifiUseCase: WifiUseCase) { fun togglePower() = issueCommand("power") @@ -104,7 +107,13 @@ class GameFrameUseCase(private val okHttpClient: OkHttpClient, private fun uploadFile(file: File): Completable { val requestFile = RequestBody.create(MediaType.parse("image/bmp"), file) val filePart = MultipartBody.Part.createFormData("my_file[]", "0.bmp", requestFile) - return gameFrameApi.upload(filePart).to(mapResponse()) + return gameFrameApi.upload(filePart) + .to(mapResponse()) + .onErrorResumeNext { error -> wifiUseCase.isWifiEnabled() + .flatMapCompletable { enabled -> + if (!enabled) Completable.error(WifiNotEnabledException()) + else Completable.error(error) + } } } private fun play(name: String) = issueCommand("play", name) @@ -141,6 +150,14 @@ class GameFrameUseCase(private val okHttpClient: OkHttpClient, private fun issueCommand(key: String, value: String = ""): Completable = ipRepository.ipAddress .flatMapCompletable { gameFrameApi.command(param(key, value)).to(mapResponse()) } + .onErrorResumeNext(changeErrorToWifiIfNotEnabled()) + + private fun changeErrorToWifiIfNotEnabled(): (Throwable) -> Completable = { error -> + wifiUseCase.isWifiEnabled().flatMapCompletable { enabled -> + if (!enabled) Completable.error(WifiNotEnabledException()) + else Completable.error(error) + } + } private fun setParam(key: String): Completable = gameFrameApi.set(param(key)) @@ -148,4 +165,4 @@ class GameFrameUseCase(private val okHttpClient: OkHttpClient, GameFrameCommandError("Command was not successful. response: $response", response) private fun isSuccess(response: CommandResponse?) = "success" == response?.status -} +} \ No newline at end of file diff --git a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/ip/presenter/IpSetupPresenter.kt b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/ip/presenter/IpSetupPresenter.kt index 4fcc145..9683844 100644 --- a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/ip/presenter/IpSetupPresenter.kt +++ b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/ip/presenter/IpSetupPresenter.kt @@ -22,15 +22,21 @@ import com.savvasdalkitsis.gameframe.feature.ip.model.IpAddress import com.savvasdalkitsis.gameframe.feature.ip.repository.IpRepository import com.savvasdalkitsis.gameframe.feature.ip.usecase.IpDiscoveryUseCase import com.savvasdalkitsis.gameframe.feature.ip.view.IpSetupView +import com.savvasdalkitsis.gameframe.feature.wifi.usecase.WifiUseCase import com.savvasdalkitsis.gameframe.infra.rx.RxTransformers -import io.reactivex.disposables.CompositeDisposable class IpSetupPresenter(private val gameFrameUseCase: GameFrameUseCase, private val ipRepository: IpRepository, - private val ipDiscoveryUseCase: IpDiscoveryUseCase): BasePresenter() { + private val ipDiscoveryUseCase: IpDiscoveryUseCase, + private val wifiUseCase: WifiUseCase): BasePresenter() { fun start() { loadStoredIp() + stream { + wifiUseCase.isWifiEnabled() + .filter { !it } + .subscribe( { view?.displayWifiNotEnabled() } ) + } } fun setup(ipAddress: IpAddress) { @@ -74,4 +80,8 @@ class IpSetupPresenter(private val gameFrameUseCase: GameFrameUseCase, ) } } + + fun enableWifi() { + wifiUseCase.enableWifi() + } } diff --git a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/ip/view/IpSetupActivity.kt b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/ip/view/IpSetupActivity.kt index 0f0978d..954e03f 100644 --- a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/ip/view/IpSetupActivity.kt +++ b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/ip/view/IpSetupActivity.kt @@ -56,6 +56,12 @@ class IpSetupActivity : BaseActivity(), IpSetupVi presenter.start() } + override fun displayWifiNotEnabled() { + Snackbars.actionError(findViewById(R.id.view_setup_content), R.string.wifi_not_enabled, R.string.enable) { + presenter.enableWifi() + } + } + override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { android.R.id.home -> { diff --git a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/ip/view/IpSetupView.kt b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/ip/view/IpSetupView.kt index ec38686..20bb8d5 100644 --- a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/ip/view/IpSetupView.kt +++ b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/ip/view/IpSetupView.kt @@ -34,4 +34,6 @@ interface IpSetupView: BaseView { fun tryingAddress(ipAddress: IpAddress) fun displayIdleView() + + fun displayWifiNotEnabled() } diff --git a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/wifi/model/WifiNotEnabledException.kt b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/wifi/model/WifiNotEnabledException.kt new file mode 100644 index 0000000..368d152 --- /dev/null +++ b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/wifi/model/WifiNotEnabledException.kt @@ -0,0 +1,19 @@ +/** + * Copyright 2017 Savvas Dalkitsis + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * 'Game Frame' is a registered trademark of LEDSEQ + */ +package com.savvasdalkitsis.gameframe.feature.wifi.model + +class WifiNotEnabledException: Exception() \ No newline at end of file diff --git a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/wifi/usecase/WifiUseCase.kt b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/wifi/usecase/WifiUseCase.kt new file mode 100644 index 0000000..4c9a929 --- /dev/null +++ b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/wifi/usecase/WifiUseCase.kt @@ -0,0 +1,30 @@ +/** + * Copyright 2017 Savvas Dalkitsis + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * 'Game Frame' is a registered trademark of LEDSEQ + */ +package com.savvasdalkitsis.gameframe.feature.wifi.usecase + +import android.content.Context +import android.net.wifi.WifiManager +import io.reactivex.Single + +class WifiUseCase(val context: Context) { + + private val wifiManager = context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager + + fun isWifiEnabled(): Single = Single.just(wifiManager.isWifiEnabled) + + fun enableWifi() = wifiManager.setWifiEnabled(true) +} \ No newline at end of file diff --git a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/workspace/presenter/WorkspacePresenter.kt b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/workspace/presenter/WorkspacePresenter.kt index aa11c6e..e370460 100644 --- a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/workspace/presenter/WorkspacePresenter.kt +++ b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/workspace/presenter/WorkspacePresenter.kt @@ -25,9 +25,10 @@ import com.savvasdalkitsis.gameframe.feature.gameframe.usecase.GameFrameUseCase import com.savvasdalkitsis.gameframe.feature.history.model.MomentList import com.savvasdalkitsis.gameframe.feature.history.usecase.HistoryUseCase import com.savvasdalkitsis.gameframe.feature.ip.model.IpBaseHostMissingException -import com.savvasdalkitsis.gameframe.feature.ip.model.IpNotFoundException import com.savvasdalkitsis.gameframe.feature.message.MessageDisplay import com.savvasdalkitsis.gameframe.feature.navigation.Navigator +import com.savvasdalkitsis.gameframe.feature.wifi.model.WifiNotEnabledException +import com.savvasdalkitsis.gameframe.feature.wifi.usecase.WifiUseCase import com.savvasdalkitsis.gameframe.feature.workspace.element.grid.model.Grid import com.savvasdalkitsis.gameframe.feature.workspace.element.grid.model.GridDisplay import com.savvasdalkitsis.gameframe.feature.workspace.element.grid.view.GridTouchedListener @@ -52,7 +53,8 @@ class WorkspacePresenter(private val gameFrameUseCase: private val stringUseCase: StringUseCase, private val messageDisplay: MessageDisplay, private val navigator: Navigator, - private val bitmapFileUseCase: BitmapFileUseCase) : GridTouchedListener, BasePresenter>() { + private val bitmapFileUseCase: BitmapFileUseCase, + private val wifiUseCase: WifiUseCase) : GridTouchedListener, BasePresenter>() { private lateinit var gridDisplay: GridDisplay private var tempName: String? = null @@ -300,6 +302,7 @@ class WorkspacePresenter(private val gameFrameUseCase: view?.operationFailed(e) navigator.navigateToIpSetup() } + is WifiNotEnabledException -> view?.wifiNotEnabledError(e) else -> view?.operationFailed(e) } }) } @@ -339,4 +342,8 @@ class WorkspacePresenter(private val gameFrameUseCase: view?.displaySelectedPalette(stringUseCase.getString(R.string.palette_name, present.selectedPalette.title)) view?.rendered() } + + fun enableWifi() { + wifiUseCase.enableWifi() + } } diff --git a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/workspace/view/WorkspaceFragment.kt b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/workspace/view/WorkspaceFragment.kt index e672cfd..ce9eed2 100644 --- a/app/src/main/java/com/savvasdalkitsis/gameframe/feature/workspace/view/WorkspaceFragment.kt +++ b/app/src/main/java/com/savvasdalkitsis/gameframe/feature/workspace/view/WorkspaceFragment.kt @@ -113,6 +113,12 @@ class WorkspaceFragment : BaseFragment, WorkspacePresenter: BaseView { fun displaySelectedLayerName(layerName: String) fun displaySelectedPalette(paletteName: String) fun displayUnsupportedVersion() + fun wifiNotEnabledError(e: Throwable) } diff --git a/app/src/main/java/com/savvasdalkitsis/gameframe/injector/presenter/PresenterInjector.kt b/app/src/main/java/com/savvasdalkitsis/gameframe/injector/presenter/PresenterInjector.kt index b088dd3..3c91e39 100644 --- a/app/src/main/java/com/savvasdalkitsis/gameframe/injector/presenter/PresenterInjector.kt +++ b/app/src/main/java/com/savvasdalkitsis/gameframe/injector/presenter/PresenterInjector.kt @@ -32,20 +32,22 @@ import com.savvasdalkitsis.gameframe.injector.usecase.UseCaseInjector.changeLogU import com.savvasdalkitsis.gameframe.injector.usecase.UseCaseInjector.gameFrameUseCase import com.savvasdalkitsis.gameframe.injector.usecase.UseCaseInjector.ipDiscoveryUseCase import com.savvasdalkitsis.gameframe.injector.usecase.UseCaseInjector.stringUseCase +import com.savvasdalkitsis.gameframe.injector.usecase.UseCaseInjector.wifiUseCase import com.savvasdalkitsis.gameframe.injector.usecase.UseCaseInjector.workspaceUseCase object PresenterInjector { fun ipSetupPresenter() = - IpSetupPresenter(gameFrameUseCase(), ipRepository(), ipDiscoveryUseCase()) + IpSetupPresenter(gameFrameUseCase(), ipRepository(), ipDiscoveryUseCase(), wifiUseCase()) - fun controlPresenter() = ControlPresenter(gameFrameUseCase(), ipRepository(), navigator()) + fun controlPresenter() = ControlPresenter(gameFrameUseCase(), ipRepository(), navigator(), wifiUseCase()) fun widgetPresenter() = WidgetPresenter(gameFrameUseCase(), ipRepository(), navigator()) fun workspacePresenter() = WorkspacePresenter(gameFrameUseCase(), - blendUseCase(), workspaceUseCase(), stringUseCase(), messageDisplay(), navigator(), bitmapFileUseCase()) + blendUseCase(), workspaceUseCase(), stringUseCase(), messageDisplay(), navigator(), + bitmapFileUseCase(), wifiUseCase()) fun homePresenter() = HomePresenter(changeLogUseCase()) } diff --git a/app/src/main/java/com/savvasdalkitsis/gameframe/injector/usecase/UseCaseInjector.kt b/app/src/main/java/com/savvasdalkitsis/gameframe/injector/usecase/UseCaseInjector.kt index d7a45fb..c2ed12b 100644 --- a/app/src/main/java/com/savvasdalkitsis/gameframe/injector/usecase/UseCaseInjector.kt +++ b/app/src/main/java/com/savvasdalkitsis/gameframe/injector/usecase/UseCaseInjector.kt @@ -23,11 +23,11 @@ import com.savvasdalkitsis.gameframe.feature.ip.usecase.IpDiscoveryUseCase import com.savvasdalkitsis.gameframe.feature.bmp.usecase.BmpUseCase import com.savvasdalkitsis.gameframe.feature.changelog.usecase.ChangeLogUseCase import com.savvasdalkitsis.gameframe.feature.saves.usecase.FileUseCase +import com.savvasdalkitsis.gameframe.feature.wifi.usecase.WifiUseCase import com.savvasdalkitsis.gameframe.feature.workspace.usecase.WorkspaceUseCase import com.savvasdalkitsis.gameframe.infra.android.StringUseCase import com.savvasdalkitsis.gameframe.injector.ApplicationInjector.application import com.savvasdalkitsis.gameframe.injector.feature.gameframe.api.GameFrameApiInjector.gameFrameApi -import com.savvasdalkitsis.gameframe.injector.feature.ip.repository.IpRepositoryInjector import com.savvasdalkitsis.gameframe.injector.feature.ip.repository.IpRepositoryInjector.ipRepository import com.savvasdalkitsis.gameframe.injector.infra.android.AndroidInjector.wifiManager import com.savvasdalkitsis.gameframe.injector.infra.network.OkHttpClientInjector.okHttpClient @@ -45,7 +45,8 @@ object UseCaseInjector { ipDiscoveryUseCase(), fileUseCase(), bmpUseCase(), - ipRepository() + ipRepository(), + wifiUseCase() ) fun ipDiscoveryUseCase() = IP_DISCOVERY_USE_CASE @@ -63,4 +64,6 @@ object UseCaseInjector { fun bitmapFileUseCase() = AndroidViewBitmapFileUseCase(application()) fun changeLogUseCase() = ChangeLogUseCase(rxSharedPreferences()) + + fun wifiUseCase() = WifiUseCase(application()) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5c30bb8..59aa961 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -67,4 +67,6 @@ Cancel Export image Changelog + Wifi is not enabled + Enable