Commit 383461a4 authored by steve's avatar steve

完成-取得卡多宝装置资料与sim卡资料

parent d5c13807
...@@ -2,4 +2,7 @@ package com.example.simboxapi ...@@ -2,4 +2,7 @@ package com.example.simboxapi
object Constants { object Constants {
var BASE_URL:String = "https://voip-tsm.ucloudlink.com/" var BASE_URL:String = "https://voip-tsm.ucloudlink.com/"
val CONTENT_TYPE = "application/json"
} }
\ No newline at end of file
...@@ -4,6 +4,7 @@ import androidx.lifecycle.ViewModel ...@@ -4,6 +4,7 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import com.example.simboxapi.ui.changeSim.ChangeSimViewModel import com.example.simboxapi.ui.changeSim.ChangeSimViewModel
import com.example.simboxapi.ui.queryCountryInfo.QueryCountryInfoViewModel import com.example.simboxapi.ui.queryCountryInfo.QueryCountryInfoViewModel
import com.example.simboxapi.ui.queryDeviceList.QueryDeviceListViewModel
import java.lang.IllegalArgumentException import java.lang.IllegalArgumentException
class ViewModelFactory(private val viewModelRepository: ViewModelRepository) : ViewModelProvider.Factory { class ViewModelFactory(private val viewModelRepository: ViewModelRepository) : ViewModelProvider.Factory {
...@@ -18,7 +19,7 @@ class ViewModelFactory(private val viewModelRepository: ViewModelRepository) : V ...@@ -18,7 +19,7 @@ class ViewModelFactory(private val viewModelRepository: ViewModelRepository) : V
return when { return when {
modelClass.isAssignableFrom(QueryCountryInfoViewModel::class.java) -> QueryCountryInfoViewModel(viewModelRepository) as T modelClass.isAssignableFrom(QueryCountryInfoViewModel::class.java) -> QueryCountryInfoViewModel(viewModelRepository) as T
modelClass.isAssignableFrom(ChangeSimViewModel::class.java) -> ChangeSimViewModel(viewModelRepository) as T modelClass.isAssignableFrom(ChangeSimViewModel::class.java) -> ChangeSimViewModel(viewModelRepository) as T
modelClass.isAssignableFrom(QueryCountryInfoViewModel::class.java) -> QueryCountryInfoViewModel(viewModelRepository) as T modelClass.isAssignableFrom(QueryDeviceListViewModel::class.java) -> QueryDeviceListViewModel(viewModelRepository) as T
else -> throw IllegalArgumentException("unKnow class name") else -> throw IllegalArgumentException("unKnow class name")
} }
......
...@@ -2,15 +2,20 @@ package com.example.simboxapi.data ...@@ -2,15 +2,20 @@ package com.example.simboxapi.data
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.liveData import androidx.lifecycle.liveData
import cn.hutool.http.body.RequestBody
import com.example.simboxapi.Constants
import com.example.simboxapi.base.BaseResponse import com.example.simboxapi.base.BaseResponse
import com.example.simboxapi.data.api.ApiService import com.example.simboxapi.data.api.ApiService
import com.example.simboxapi.data.entirys.CountryDataBean import com.example.simboxapi.data.entirys.CountryDataBean
import com.example.simboxapi.data.entirys.DeviceDataBean
import com.example.simboxapi.data.entirys.OnOffImisDataBean import com.example.simboxapi.data.entirys.OnOffImisDataBean
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.RequestBody.Companion.toRequestBody
import org.json.JSONArray import org.json.JSONArray
import org.json.JSONObject import org.json.JSONObject
import retrofit2.http.Body
import retrofit2.http.Header
import java.lang.Exception import java.lang.Exception
class ViewModelRepository(private val apiService: ApiService) { class ViewModelRepository(private val apiService: ApiService) {
...@@ -32,17 +37,23 @@ class ViewModelRepository(private val apiService: ApiService) { ...@@ -32,17 +37,23 @@ class ViewModelRepository(private val apiService: ApiService) {
} }
} }
fun apiPostQueryCountryInfo(langType: String, loginCustomerId: String, partnerCode: String, streamNo: String, cookie: String, voipId: String): LiveData<ResourceViewModel<BaseResponse<ArrayList<CountryDataBean>>>> { fun apiPostQueryCountryInfo(
langType: String, loginCustomerId: String, partnerCode: String, streamNo: String,
cookie: String, voipId: String
): LiveData<ResourceViewModel<BaseResponse<ArrayList<CountryDataBean>>>> {
val jsonObject = JSONObject() val jsonObject = JSONObject()
jsonObject.put("langType", langType) jsonObject.put("langType", langType)
jsonObject.put("loginCustomerId", loginCustomerId) jsonObject.put("loginCustomerId", loginCustomerId)
jsonObject.put("partnerCode", partnerCode) jsonObject.put("partnerCode", partnerCode)
jsonObject.put("streamNo", streamNo) jsonObject.put("streamNo", streamNo)
val body = jsonObject.toString().toRequestBody("application/json".toMediaTypeOrNull()) val body = jsonObject.toString().toRequestBody(Constants.CONTENT_TYPE.toMediaTypeOrNull())
return execute { apiService.apiQueryCountryInfo(body, cookie, voipId) } return execute { apiService.apiQueryCountryInfo(body, cookie, voipId) }
} }
fun apiPostOnOffImsi(imei: String, loginCustomerId: String, offImsiList: ArrayList<String>, onImsiList: ArrayList<String>, partnerCode: String, streamNo: String, cookie: String, voipId: String, userLabel: String): LiveData<ResourceViewModel<BaseResponse<ArrayList<OnOffImisDataBean>>>> { fun apiPostOnOffImsi(
imei: String, loginCustomerId: String, offImsiList: ArrayList<String>, onImsiList: ArrayList<String>, partnerCode: String, streamNo: String,
cookie: String, voipId: String, userLabel: String
): LiveData<ResourceViewModel<BaseResponse<ArrayList<OnOffImisDataBean>>>> {
val jsonObject = JSONObject() val jsonObject = JSONObject()
jsonObject.put("imei", imei) jsonObject.put("imei", imei)
jsonObject.put("loginCustomerId", loginCustomerId) jsonObject.put("loginCustomerId", loginCustomerId)
...@@ -50,8 +61,20 @@ class ViewModelRepository(private val apiService: ApiService) { ...@@ -50,8 +61,20 @@ class ViewModelRepository(private val apiService: ApiService) {
jsonObject.put("onImsiList", JSONArray(onImsiList)) jsonObject.put("onImsiList", JSONArray(onImsiList))
jsonObject.put("partnerCode", partnerCode) jsonObject.put("partnerCode", partnerCode)
jsonObject.put("streamNo", streamNo) jsonObject.put("streamNo", streamNo)
val body = jsonObject.toString().toRequestBody("application/json".toMediaTypeOrNull()) val body = jsonObject.toString().toRequestBody(Constants.CONTENT_TYPE.toMediaTypeOrNull())
return execute { apiService.apiOnOffImsi(body,cookie,voipId,userLabel) } return execute { apiService.apiOnOffImsi(body, cookie, voipId, userLabel) }
} }
fun apiPostQueryDeviceList(
deviceType: String, loginCustomerId: String, partnerCode: String, streamNo: String,
cookie: String, voipId: String, userLabel: String
): LiveData<ResourceViewModel<BaseResponse<ArrayList<DeviceDataBean>>>> {
val jsonObject = JSONObject()
jsonObject.put("deviceType", deviceType)
jsonObject.put("loginCustomerId", loginCustomerId)
jsonObject.put("partnerCode", partnerCode)
jsonObject.put("streamNo", streamNo)
val body = jsonObject.toString().toRequestBody(Constants.CONTENT_TYPE.toMediaTypeOrNull())
return execute { apiService.apiQueryDeviceList(body, cookie, voipId, userLabel) }
}
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.example.simboxapi.data.api ...@@ -2,6 +2,7 @@ package com.example.simboxapi.data.api
import com.example.simboxapi.base.BaseResponse import com.example.simboxapi.base.BaseResponse
import com.example.simboxapi.data.entirys.CountryDataBean import com.example.simboxapi.data.entirys.CountryDataBean
import com.example.simboxapi.data.entirys.DeviceDataBean
import com.example.simboxapi.data.entirys.OnOffImisDataBean import com.example.simboxapi.data.entirys.OnOffImisDataBean
import okhttp3.RequestBody import okhttp3.RequestBody
import retrofit2.http.Body import retrofit2.http.Body
...@@ -32,7 +33,14 @@ interface ApiService { ...@@ -32,7 +33,14 @@ interface ApiService {
@POST(ApiPath.ON_OFF_IMSI) @POST(ApiPath.ON_OFF_IMSI)
suspend fun apiOnOffImsi(@Body body: RequestBody, @Header("Cookie") cookie: String, @Header("voipId") voipId: String, @Header("userLabel") userLabel: String): BaseResponse<ArrayList<OnOffImisDataBean>> suspend fun apiOnOffImsi(@Body body: RequestBody, @Header("Cookie") cookie: String, @Header("voipId") voipId: String, @Header("userLabel") userLabel: String): BaseResponse<ArrayList<OnOffImisDataBean>>
@Headers(
// suspend fun apiQueryDeviceList(@Body body: RequestBody,@) "Content-Type:application/json",
"Partner-code:simbox",
"Accept-Language:zh-CN",
"langType:zh-CN",
"app-Version:1.9.03"
)
@POST(ApiPath.QUERY_DEVICE_LIST)
suspend fun apiQueryDeviceList(@Body body: RequestBody, @Header("Cookie") cookie: String, @Header("voipId") voipId: String, @Header("userLabel") userLabel: String): BaseResponse<ArrayList<DeviceDataBean>>
} }
\ No newline at end of file
...@@ -13,4 +13,16 @@ data class DeviceDataBean( ...@@ -13,4 +13,16 @@ data class DeviceDataBean(
@SerializedName("deviceVersion") @SerializedName("deviceVersion")
val deviceVersion:String, val deviceVersion:String,
@SerializedName("deviceType")
val deviceType:String,
@SerializedName("deviceSipState")
val deviceSipState:String,
@SerializedName("flowShare")
val flowShare:String,
@SerializedName("cardInfoList")
val cardInfoList:ArrayList<SimCardDataBean>
) )
\ No newline at end of file
package com.example.simboxapi.data.entirys
import com.google.gson.annotations.SerializedName
import javax.net.ssl.SSLEngineResult
data class SimCardDataBean(
@SerializedName("imsi")
val imis: String = "",
@SerializedName("cardName")
val cardName: String="",
@SerializedName("useDeviceName")
val useDeviceName: String="",
@SerializedName("imei")
val imei: String="",
@SerializedName("countryCode")
val countryCode: String="",
@SerializedName("networkStatus")
val networkStatus: String="",
@SerializedName("csImei")
val csImei: String="",
@SerializedName("csUserCode")
val csUserCode: String="",
@SerializedName("isMasterCard")
val isMasterCard: String="",
@SerializedName("phone")
val phone: String="",
/**
* 0表示没卡, 1表示有卡
*/
@SerializedName("slotNo")
val slotNo: String="",
@SerializedName("corporation")
val corporation: String="",
@SerializedName("pin")
val pin: String,
@SerializedName("trafficShare")
val trafficShare: String,
@SerializedName("flowShare")
val flowShare: String,
/**
* 0表示未启动, 1表示启动
*/
@SerializedName("usingStatus")
val usingSatus: String
)
\ No newline at end of file
...@@ -7,6 +7,7 @@ import com.example.simboxapi.databinding.ActivityMainBinding ...@@ -7,6 +7,7 @@ import com.example.simboxapi.databinding.ActivityMainBinding
import com.example.simboxapi.ui.changeSim.ChangeSimActivity import com.example.simboxapi.ui.changeSim.ChangeSimActivity
import com.example.simboxapi.ui.login.LoginActivity import com.example.simboxapi.ui.login.LoginActivity
import com.example.simboxapi.ui.queryCountryInfo.QueryCountryInfoActivity import com.example.simboxapi.ui.queryCountryInfo.QueryCountryInfoActivity
import com.example.simboxapi.ui.queryDeviceList.QueryDeviceListActivity
class MainActivity : BaseActivity(), View.OnClickListener { class MainActivity : BaseActivity(), View.OnClickListener {
...@@ -29,6 +30,9 @@ class MainActivity : BaseActivity(), View.OnClickListener { ...@@ -29,6 +30,9 @@ class MainActivity : BaseActivity(), View.OnClickListener {
mVB.btnMainChangeSim -> { mVB.btnMainChangeSim -> {
ChangeSimActivity.intentToChangeSimActivity(this) ChangeSimActivity.intentToChangeSimActivity(this)
} }
mVB.btnMainQueryDevicesList -> {
QueryDeviceListActivity.intentToQueryDeviceListActivity(this)
}
} }
} }
...@@ -36,5 +40,6 @@ class MainActivity : BaseActivity(), View.OnClickListener { ...@@ -36,5 +40,6 @@ class MainActivity : BaseActivity(), View.OnClickListener {
mVB.btnMainQueryCountry.setOnClickListener(this) mVB.btnMainQueryCountry.setOnClickListener(this)
mVB.btnMainLogin.setOnClickListener(this) mVB.btnMainLogin.setOnClickListener(this)
mVB.btnMainChangeSim.setOnClickListener(this) mVB.btnMainChangeSim.setOnClickListener(this)
mVB.btnMainQueryDevicesList.setOnClickListener(this)
} }
} }
\ No newline at end of file
...@@ -7,18 +7,13 @@ import android.os.Bundle ...@@ -7,18 +7,13 @@ import android.os.Bundle
import android.text.method.ScrollingMovementMethod import android.text.method.ScrollingMovementMethod
import android.view.View import android.view.View
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import cn.hutool.json.JSON
import com.example.simboxapi.data.Status import com.example.simboxapi.data.Status
import com.example.simboxapi.data.ViewModelFactory import com.example.simboxapi.data.ViewModelFactory
import com.example.simboxapi.data.ViewModelRepository import com.example.simboxapi.data.ViewModelRepository
import com.example.simboxapi.data.api.ApiClient import com.example.simboxapi.data.api.ApiClient
import com.example.simboxapi.databinding.ActivityChangeSimBinding import com.example.simboxapi.databinding.ActivityChangeSimBinding
import com.example.simboxapi.utils.DatePattern
import com.example.simboxapi.utils.StreamNoUtil import com.example.simboxapi.utils.StreamNoUtil
import com.google.gson.GsonBuilder import com.google.gson.GsonBuilder
import org.json.JSONObject
import java.text.SimpleDateFormat
import java.util.*
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
class ChangeSimActivity : AppCompatActivity(), View.OnClickListener { class ChangeSimActivity : AppCompatActivity(), View.OnClickListener {
...@@ -36,7 +31,7 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener { ...@@ -36,7 +31,7 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(mVB.root) setContentView(mVB.root)
setViewModel() initViewModel()
initView() initView()
} }
...@@ -61,7 +56,7 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener { ...@@ -61,7 +56,7 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener {
} }
} }
private fun setViewModel() { private fun initViewModel() {
val viewModelRepository: ViewModelRepository = ViewModelRepository.getInstance(ApiClient.getInstance(this).apiService) val viewModelRepository: ViewModelRepository = ViewModelRepository.getInstance(ApiClient.getInstance(this).apiService)
mChangeSimViewModel = ViewModelProvider(this, ViewModelFactory.getInstance(viewModelRepository))[ChangeSimViewModel::class.java] mChangeSimViewModel = ViewModelProvider(this, ViewModelFactory.getInstance(viewModelRepository))[ChangeSimViewModel::class.java]
} }
...@@ -71,7 +66,10 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener { ...@@ -71,7 +66,10 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener {
mVB.btnChangeSimPostApi.setOnClickListener(this) mVB.btnChangeSimPostApi.setOnClickListener(this)
} }
private fun apiPostOnOffImsi(imei: String, loginCustomId: String, offImsiList: ArrayList<String>, onImsiList: ArrayList<String>, partnerCode: String, streamNo: String, cookie: String, voipId: String, userLabel: String) { private fun apiPostOnOffImsi(
imei: String, loginCustomId: String, offImsiList: ArrayList<String>, onImsiList: ArrayList<String>, partnerCode: String, streamNo: String,
cookie: String, voipId: String, userLabel: String
) {
mChangeSimViewModel.apiPostOnOffImsi(imei, loginCustomId, offImsiList, onImsiList, partnerCode, streamNo, cookie, voipId, userLabel).observe(this) { mChangeSimViewModel.apiPostOnOffImsi(imei, loginCustomId, offImsiList, onImsiList, partnerCode, streamNo, cookie, voipId, userLabel).observe(this) {
when (it.status) { when (it.status) {
Status.SUCCESS -> { Status.SUCCESS -> {
......
...@@ -12,11 +12,8 @@ import com.example.simboxapi.data.ViewModelFactory ...@@ -12,11 +12,8 @@ import com.example.simboxapi.data.ViewModelFactory
import com.example.simboxapi.data.ViewModelRepository import com.example.simboxapi.data.ViewModelRepository
import com.example.simboxapi.data.api.ApiClient import com.example.simboxapi.data.api.ApiClient
import com.example.simboxapi.databinding.ActivityQueryCountryInfoBinding import com.example.simboxapi.databinding.ActivityQueryCountryInfoBinding
import com.example.simboxapi.utils.DatePattern
import com.example.simboxapi.utils.StreamNoUtil import com.example.simboxapi.utils.StreamNoUtil
import com.google.gson.GsonBuilder import com.google.gson.GsonBuilder
import java.text.SimpleDateFormat
import java.util.*
class QueryCountryInfoActivity : BaseActivity(), View.OnClickListener { class QueryCountryInfoActivity : BaseActivity(), View.OnClickListener {
...@@ -33,7 +30,7 @@ class QueryCountryInfoActivity : BaseActivity(), View.OnClickListener { ...@@ -33,7 +30,7 @@ class QueryCountryInfoActivity : BaseActivity(), View.OnClickListener {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(mVB.root) setContentView(mVB.root)
setViewModel() initViewModel()
initView() initView()
} }
...@@ -55,7 +52,7 @@ class QueryCountryInfoActivity : BaseActivity(), View.OnClickListener { ...@@ -55,7 +52,7 @@ class QueryCountryInfoActivity : BaseActivity(), View.OnClickListener {
} }
} }
private fun setViewModel() { private fun initViewModel() {
val viewModelRepository: ViewModelRepository = ViewModelRepository.getInstance(ApiClient.getInstance(this).apiService) val viewModelRepository: ViewModelRepository = ViewModelRepository.getInstance(ApiClient.getInstance(this).apiService)
mQueryCountryInfo = ViewModelProvider(this, ViewModelFactory.getInstance(viewModelRepository))[QueryCountryInfoViewModel::class.java] mQueryCountryInfo = ViewModelProvider(this, ViewModelFactory.getInstance(viewModelRepository))[QueryCountryInfoViewModel::class.java]
} }
......
...@@ -9,7 +9,10 @@ import com.example.simboxapi.data.entirys.CountryDataBean ...@@ -9,7 +9,10 @@ import com.example.simboxapi.data.entirys.CountryDataBean
class QueryCountryInfoViewModel(private val viewModelRepository: ViewModelRepository) : ViewModel() { class QueryCountryInfoViewModel(private val viewModelRepository: ViewModelRepository) : ViewModel() {
fun apiPostQueryCountryInfo(langType: String, loginCustomerId: String, partnerCode: String, streamNo: String, cookie: String, voipId: String): LiveData<ResourceViewModel<BaseResponse<ArrayList<CountryDataBean>>>> { fun apiPostQueryCountryInfo(
langType: String, loginCustomerId: String, partnerCode: String, streamNo: String,
cookie: String, voipId: String
): LiveData<ResourceViewModel<BaseResponse<ArrayList<CountryDataBean>>>> {
return viewModelRepository.apiPostQueryCountryInfo(langType, loginCustomerId, partnerCode, streamNo, cookie, voipId) return viewModelRepository.apiPostQueryCountryInfo(langType, loginCustomerId, partnerCode, streamNo, cookie, voipId)
} }
......
package com.example.simboxapi.ui.queryDeviceList package com.example.simboxapi.ui.queryDeviceList
import android.content.Context
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle import android.os.Bundle
import android.text.method.ScrollingMovementMethod
import android.view.View import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.example.simboxapi.data.Status
import com.example.simboxapi.data.ViewModelFactory
import com.example.simboxapi.data.ViewModelRepository
import com.example.simboxapi.data.api.ApiClient
import com.example.simboxapi.databinding.ActivityQueryDeviceListBinding import com.example.simboxapi.databinding.ActivityQueryDeviceListBinding
import com.example.simboxapi.utils.StreamNoUtil
import com.google.gson.GsonBuilder
class QueryDeviceListActivity : AppCompatActivity(),View.OnClickListener{ class QueryDeviceListActivity : AppCompatActivity(), View.OnClickListener {
private val mVB by lazy { ActivityQueryDeviceListBinding.inflate(layoutInflater) } companion object {
fun intentToQueryDeviceListActivity(context: Context) {
val intent = Intent(context, QueryDeviceListActivity::class.java)
context.startActivity(intent)
}
}
private val mVB by lazy { ActivityQueryDeviceListBinding.inflate(layoutInflater) }
private lateinit var mQueryDeviceListViewModel: QueryDeviceListViewModel
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(mVB.root) setContentView(mVB.root)
initViewModel()
initView()
} }
override fun onClick(view: View?) { override fun onClick(view: View?) {
when(view){ when (view) {
mVB.btnQueryDevicePostApi -> {
val deviceType = ""
val loginCustomerId = "6209e2ea1b7f0d319febe2b2"
val partnerCode = "GCGROUP"
val streamNo = "SIMBOX${StreamNoUtil.getData()}${((Math.random() * 9.toDouble() + 1.toDouble()) * 100000.toDouble()).toInt()}"
val cookie = "access_token=TGT-2398391-2usdACdYsxPGbfXXnenVOIYRu6fZKFdZHpEAHczU0Sc4BfUZZR"
val voidId = "80000076419"
val userLabel = "businessUser"
apiPostQueryDeviceList(deviceType, loginCustomerId, partnerCode, streamNo, cookie, voidId, userLabel)
}
}
}
private fun initViewModel() {
val viewModelRepository: ViewModelRepository = ViewModelRepository.getInstance(ApiClient.getInstance(this).apiService)
mQueryDeviceListViewModel = ViewModelProvider(this, ViewModelFactory.getInstance(viewModelRepository))[QueryDeviceListViewModel::class.java]
} }
private fun initView() {
mVB.tvQueryDevicePostApi.movementMethod = ScrollingMovementMethod()
mVB.btnQueryDevicePostApi.setOnClickListener(this)
} }
private fun apiPostQueryDeviceList(
deviceType: String, loginCustomerId: String, partnerCode: String, streamNo: String,
cookie: String, voipId: String, userLabel: String
) {
mQueryDeviceListViewModel.apiPostQueryDeviceList(deviceType, loginCustomerId, partnerCode, streamNo, cookie, voipId, userLabel).observe(this) {
when (it.status) {
Status.SUCCESS -> {
if (it.data?.resultCode == "00000000") {
val data = GsonBuilder().setPrettyPrinting().create().toJson(it.data)
mVB.tvQueryDevicePostApi.text = data
return@observe
}
mVB.tvQueryDevicePostApi.text = it.data?.resultDesc ?: ""
}
Status.ERROR -> {
mVB.tvQueryDevicePostApi.text = it.e?.message.toString()
}
Status.LOADING -> {
}
}
}
}
} }
\ No newline at end of file
package com.example.simboxapi.ui.queryDeviceList package com.example.simboxapi.ui.queryDeviceList
import androidx.lifecycle.LiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import com.example.simboxapi.base.BaseResponse
import com.example.simboxapi.data.ResourceViewModel
import com.example.simboxapi.data.ViewModelRepository import com.example.simboxapi.data.ViewModelRepository
import com.example.simboxapi.data.entirys.DeviceDataBean
class QueryDeviceListViewModel(private val viewModelRepository: ViewModelRepository) : ViewModel() { class QueryDeviceListViewModel(private val viewModelRepository: ViewModelRepository) : ViewModel() {
fun apiPostQueryDeviceList(
deviceType: String, loginCustomerId: String, partnerCode: String, streamNo: String,
cookie: String, voipId: String, userLabel: String
): LiveData<ResourceViewModel<BaseResponse<ArrayList<DeviceDataBean>>>> {
return viewModelRepository.apiPostQueryDeviceList(deviceType, loginCustomerId, partnerCode, streamNo, cookie, voipId, userLabel)
}
} }
\ No newline at end of file
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
<TextView <TextView
android:id="@+id/tvChangSimContent" android:id="@+id/tvChangSimContent"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_10"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="@dimen/dp_20" android:layout_marginTop="@dimen/dp_20"
android:scrollbars="vertical" android:scrollbars="vertical"
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
tools:context=".ui.login.LoginActivity"> tools:context=".ui.login.LoginActivity">
<TextView <TextView
android:text="login" android:text="暂时中止"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
......
...@@ -20,6 +20,8 @@ ...@@ -20,6 +20,8 @@
android:id="@+id/tvQueryCountryResponse" android:id="@+id/tvQueryCountryResponse"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
android:scrollbars = "vertical" android:scrollbars = "vertical"
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
tools:context=".ui.queryDeviceList.QueryDeviceListActivity"> tools:context=".ui.queryDeviceList.QueryDeviceListActivity">
<Button <Button
android:id="@+id/btnQueryDevicePostApi"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20" android:layout_marginTop="@dimen/dp_20"
...@@ -15,4 +16,17 @@ ...@@ -15,4 +16,17 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tvQueryDevicePostApi"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginEnd="@dimen/dp_10"
android:scrollbars="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnQueryDevicePostApi" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment