From 6fb0477a284888c35ba0f3aab60e5367625b197d Mon Sep 17 00:00:00 2001 From: javavirys Date: Mon, 24 Oct 2022 13:08:31 +0300 Subject: [PATCH] ail-26 Add logic for getting GPU information --- .../lib/DeviceInformationFactory.kt | 5 +-- .../lib/command/entity/gpu/GPUIds.kt | 5 +++ .../entity/gpu/MutableGPUInformation.kt | 11 ++++++ .../lib/command/gpu/GetCloudGPUInformation.kt | 38 +++++++++++++++++++ .../command/gpu/GetGPUInformationCommand.kt | 17 +++++++++ .../androidinfo/lib/entity/GPUInformation.kt | 6 +-- .../sample/ui/main/MainFragment.kt | 4 ++ .../sample/ui/main/MainViewModel.kt | 5 +++ 8 files changed, 85 insertions(+), 6 deletions(-) create mode 100644 AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/entity/gpu/GPUIds.kt create mode 100644 AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/entity/gpu/MutableGPUInformation.kt create mode 100644 AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/gpu/GetCloudGPUInformation.kt create mode 100644 AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/gpu/GetGPUInformationCommand.kt diff --git a/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/DeviceInformationFactory.kt b/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/DeviceInformationFactory.kt index c5edec5..c2a9b2f 100644 --- a/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/DeviceInformationFactory.kt +++ b/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/DeviceInformationFactory.kt @@ -25,6 +25,7 @@ import com.udfsoft.androidinfo.lib.command.cpu.GetCpuInformationCommand import com.udfsoft.androidinfo.lib.command.design.GetNetworkDesignInformationCommand import com.udfsoft.androidinfo.lib.command.display.GetDisplayInformationCommand import com.udfsoft.androidinfo.lib.command.general.GetGeneralInformationCommand +import com.udfsoft.androidinfo.lib.command.gpu.GetGPUInformationCommand import com.udfsoft.androidinfo.lib.command.network.GetNetworkTechnologiesInformationCommand import com.udfsoft.androidinfo.lib.command.os.GetOSInformationCommand import com.udfsoft.androidinfo.lib.command.sim.GetSIMCardInformationCommand @@ -68,9 +69,7 @@ object DeviceInformationFactory : DeviceInformation { return getCpuInformationCommand(Unit) } - override fun getGPUInformation(): GPUInformation { - TODO("Not yet implemented") - } + override fun getGPUInformation() = GetGPUInformationCommand(api).invoke(Unit) override fun getRAMInformation(context: Context): RAMInformation { val getRAMInformationCommand = GetRAMInformationCommand(context) diff --git a/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/entity/gpu/GPUIds.kt b/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/entity/gpu/GPUIds.kt new file mode 100644 index 0000000..45b63c6 --- /dev/null +++ b/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/entity/gpu/GPUIds.kt @@ -0,0 +1,5 @@ +package com.udfsoft.androidinfo.lib.command.entity.gpu + +enum class GPUIds(val id: Int) { + GPUName(29280) +} \ No newline at end of file diff --git a/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/entity/gpu/MutableGPUInformation.kt b/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/entity/gpu/MutableGPUInformation.kt new file mode 100644 index 0000000..21bf819 --- /dev/null +++ b/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/entity/gpu/MutableGPUInformation.kt @@ -0,0 +1,11 @@ +package com.udfsoft.androidinfo.lib.command.entity.gpu + +import com.udfsoft.androidinfo.lib.command.entity.MutableEntity +import com.udfsoft.androidinfo.lib.entity.GPUInformation + +data class MutableGPUInformation( + var name: String? = null +) : MutableEntity { + + override fun build() = GPUInformation(name) +} diff --git a/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/gpu/GetCloudGPUInformation.kt b/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/gpu/GetCloudGPUInformation.kt new file mode 100644 index 0000000..6f5e0d1 --- /dev/null +++ b/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/gpu/GetCloudGPUInformation.kt @@ -0,0 +1,38 @@ +/* + * Copyright 2022 Javavirys + * + * 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. + */ + +package com.udfsoft.androidinfo.lib.command.gpu + +import com.udfsoft.androidinfo.lib.command.BaseGetCloudInformationCommand +import com.udfsoft.androidinfo.lib.command.entity.MenuIds +import com.udfsoft.androidinfo.lib.command.entity.gpu.GPUIds +import com.udfsoft.androidinfo.lib.command.entity.gpu.MutableGPUInformation +import com.udfsoft.androidinfo.lib.network.AndroidInfoApi +import com.udfsoft.androidinfo.lib.network.entity.DeviceInformationItemNetwork + +class GetCloudGPUInformation( + val api: AndroidInfoApi +) : BaseGetCloudInformationCommand(api, MenuIds.MENU_ID_GPU) { + + override fun processInfo( + item: DeviceInformationItemNetwork, + entity: MutableGPUInformation + ) { + when (item.id) { + GPUIds.GPUName.id -> entity.name = item.value + } + } +} \ No newline at end of file diff --git a/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/gpu/GetGPUInformationCommand.kt b/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/gpu/GetGPUInformationCommand.kt new file mode 100644 index 0000000..89b7a6e --- /dev/null +++ b/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/command/gpu/GetGPUInformationCommand.kt @@ -0,0 +1,17 @@ +package com.udfsoft.androidinfo.lib.command.gpu + +import com.udfsoft.androidinfo.lib.command.CommandInterface +import com.udfsoft.androidinfo.lib.command.entity.gpu.MutableGPUInformation +import com.udfsoft.androidinfo.lib.entity.GPUInformation +import com.udfsoft.androidinfo.lib.network.AndroidInfoApi + +class GetGPUInformationCommand( + val api: AndroidInfoApi +) : CommandInterface { + + override fun invoke(param: Unit): GPUInformation { + val mutableEntity = MutableGPUInformation() + GetCloudGPUInformation(api).invoke(mutableEntity) + return mutableEntity.build() + } +} \ No newline at end of file diff --git a/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/entity/GPUInformation.kt b/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/entity/GPUInformation.kt index 309c286..31bd91a 100644 --- a/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/entity/GPUInformation.kt +++ b/AndroidInfoLib/src/main/java/com/udfsoft/androidinfo/lib/entity/GPUInformation.kt @@ -1,5 +1,5 @@ package com.udfsoft.androidinfo.lib.entity -class GPUInformation { - -} +data class GPUInformation( + val name: String? +) diff --git a/sample/src/main/java/com/udfsoft/androidinfo/sample/ui/main/MainFragment.kt b/sample/src/main/java/com/udfsoft/androidinfo/sample/ui/main/MainFragment.kt index 87d94ef..ff8c0de 100644 --- a/sample/src/main/java/com/udfsoft/androidinfo/sample/ui/main/MainFragment.kt +++ b/sample/src/main/java/com/udfsoft/androidinfo/sample/ui/main/MainFragment.kt @@ -131,6 +131,10 @@ class MainFragment : Fragment(R.layout.fragment_main) { viewModel.getStorageInformationLiveData().observe(viewLifecycleOwner) { Log.d(TAG, it.toString()) } + + viewModel.getGPUInformationLiveData().observe(viewLifecycleOwner) { + Log.d(TAG, it.toString()) + } } companion object { diff --git a/sample/src/main/java/com/udfsoft/androidinfo/sample/ui/main/MainViewModel.kt b/sample/src/main/java/com/udfsoft/androidinfo/sample/ui/main/MainViewModel.kt index 5ab0940..fadcf46 100644 --- a/sample/src/main/java/com/udfsoft/androidinfo/sample/ui/main/MainViewModel.kt +++ b/sample/src/main/java/com/udfsoft/androidinfo/sample/ui/main/MainViewModel.kt @@ -49,6 +49,8 @@ class MainViewModel : ViewModel() { private val storageInformationLiveData = MutableLiveData() + private val gpuInformationLiveData = MutableLiveData() + @RequiresPermission( allOf = [Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_SMS, "android.permission.READ_PHONE_NUMBERS"] ) @@ -66,6 +68,7 @@ class MainViewModel : ViewModel() { ) designInformationLiveData.postValue(DeviceInformationFactory.getDesignInformation()) storageInformationLiveData.postValue(DeviceInformationFactory.getStorageInformation()) + gpuInformationLiveData.postValue(DeviceInformationFactory.getGPUInformation()) } fun getGeneralInformationLiveData() = generalInformationLiveData.toLiveData() @@ -86,4 +89,6 @@ class MainViewModel : ViewModel() { fun getDesignInformationLiveData() = designInformationLiveData.toLiveData() fun getStorageInformationLiveData() = storageInformationLiveData.toLiveData() + + fun getGPUInformationLiveData() = gpuInformationLiveData.toLiveData() } \ No newline at end of file