Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
A
AllApiDemo
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
steve
AllApiDemo
Commits
383461a4
Commit
383461a4
authored
Feb 16, 2022
by
steve
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成-取得卡多宝装置资料与sim卡资料
parent
d5c13807
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
237 additions
and
26 deletions
+237
-26
Constants.kt
app/src/main/java/com/example/simboxapi/Constants.kt
+4
-0
ViewModelFactory.kt
.../main/java/com/example/simboxapi/data/ViewModelFactory.kt
+2
-1
ViewModelRepository.kt
...in/java/com/example/simboxapi/data/ViewModelRepository.kt
+29
-5
ApiService.kt
...rc/main/java/com/example/simboxapi/data/api/ApiService.kt
+11
-2
DeviceDataBean.kt
...java/com/example/simboxapi/data/entirys/DeviceDataBean.kt
+13
-0
SimCardDataBean.kt
...ava/com/example/simboxapi/data/entirys/SimCardDataBean.kt
+62
-0
MainActivity.kt
app/src/main/java/com/example/simboxapi/ui/MainActivity.kt
+6
-0
ChangeSimActivity.kt
...a/com/example/simboxapi/ui/changeSim/ChangeSimActivity.kt
+6
-8
QueryCountryInfoActivity.kt
...simboxapi/ui/queryCountryInfo/QueryCountryInfoActivity.kt
+2
-5
QueryCountryInfoViewModel.kt
...imboxapi/ui/queryCountryInfo/QueryCountryInfoViewModel.kt
+4
-1
QueryDeviceListActivity.kt
...e/simboxapi/ui/queryDeviceList/QueryDeviceListActivity.kt
+67
-3
QueryDeviceListViewModel.kt
.../simboxapi/ui/queryDeviceList/QueryDeviceListViewModel.kt
+11
-0
activity_change_sim.xml
app/src/main/res/layout/activity_change_sim.xml
+2
-0
activity_login.xml
app/src/main/res/layout/activity_login.xml
+1
-1
activity_query_country_info.xml
app/src/main/res/layout/activity_query_country_info.xml
+2
-0
activity_query_device_list.xml
app/src/main/res/layout/activity_query_device_list.xml
+15
-0
No files found.
app/src/main/java/com/example/simboxapi/Constants.kt
View file @
383461a4
...
...
@@ -2,4 +2,7 @@ package com.example.simboxapi
object
Constants
{
var
BASE_URL
:
String
=
"https://voip-tsm.ucloudlink.com/"
val
CONTENT_TYPE
=
"application/json"
}
\ No newline at end of file
app/src/main/java/com/example/simboxapi/data/ViewModelFactory.kt
View file @
383461a4
...
...
@@ -4,6 +4,7 @@ import androidx.lifecycle.ViewModel
import
androidx.lifecycle.ViewModelProvider
import
com.example.simboxapi.ui.changeSim.ChangeSimViewModel
import
com.example.simboxapi.ui.queryCountryInfo.QueryCountryInfoViewModel
import
com.example.simboxapi.ui.queryDeviceList.QueryDeviceListViewModel
import
java.lang.IllegalArgumentException
class
ViewModelFactory
(
private
val
viewModelRepository
:
ViewModelRepository
)
:
ViewModelProvider
.
Factory
{
...
...
@@ -18,7 +19,7 @@ class ViewModelFactory(private val viewModelRepository: ViewModelRepository) : V
return
when
{
modelClass
.
isAssignableFrom
(
QueryCountryInfoViewModel
::
class
.
java
)
->
QueryCountryInfoViewModel
(
viewModelRepository
)
as
T
modelClass
.
isAssignableFrom
(
ChangeSimViewModel
::
class
.
java
)
->
ChangeSimViewModel
(
viewModelRepository
)
as
T
modelClass
.
isAssignableFrom
(
Query
CountryInfoViewModel
::
class
.
java
)
->
QueryCountryInfo
ViewModel
(
viewModelRepository
)
as
T
modelClass
.
isAssignableFrom
(
Query
DeviceListViewModel
::
class
.
java
)
->
QueryDeviceList
ViewModel
(
viewModelRepository
)
as
T
else
->
throw
IllegalArgumentException
(
"unKnow class name"
)
}
...
...
app/src/main/java/com/example/simboxapi/data/ViewModelRepository.kt
View file @
383461a4
...
...
@@ -2,15 +2,20 @@ package com.example.simboxapi.data
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.data.api.ApiService
import
com.example.simboxapi.data.entirys.CountryDataBean
import
com.example.simboxapi.data.entirys.DeviceDataBean
import
com.example.simboxapi.data.entirys.OnOffImisDataBean
import
kotlinx.coroutines.Dispatchers
import
okhttp3.MediaType.Companion.toMediaTypeOrNull
import
okhttp3.RequestBody.Companion.toRequestBody
import
org.json.JSONArray
import
org.json.JSONObject
import
retrofit2.http.Body
import
retrofit2.http.Header
import
java.lang.Exception
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
()
jsonObject
.
put
(
"langType"
,
langType
)
jsonObject
.
put
(
"loginCustomerId"
,
loginCustomerId
)
jsonObject
.
put
(
"partnerCode"
,
partnerCode
)
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
)
}
}
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
()
jsonObject
.
put
(
"imei"
,
imei
)
jsonObject
.
put
(
"loginCustomerId"
,
loginCustomerId
)
...
...
@@ -50,8 +61,20 @@ class ViewModelRepository(private val apiService: ApiService) {
jsonObject
.
put
(
"onImsiList"
,
JSONArray
(
onImsiList
))
jsonObject
.
put
(
"partnerCode"
,
partnerCode
)
jsonObject
.
put
(
"streamNo"
,
streamNo
)
val
body
=
jsonObject
.
toString
().
toRequestBody
(
"application/json"
.
toMediaTypeOrNull
())
return
execute
{
apiService
.
apiOnOffImsi
(
body
,
cookie
,
voipId
,
userLabel
)
}
val
body
=
jsonObject
.
toString
().
toRequestBody
(
Constants
.
CONTENT_TYPE
.
toMediaTypeOrNull
())
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
app/src/main/java/com/example/simboxapi/data/api/ApiService.kt
View file @
383461a4
...
...
@@ -2,6 +2,7 @@ package com.example.simboxapi.data.api
import
com.example.simboxapi.base.BaseResponse
import
com.example.simboxapi.data.entirys.CountryDataBean
import
com.example.simboxapi.data.entirys.DeviceDataBean
import
com.example.simboxapi.data.entirys.OnOffImisDataBean
import
okhttp3.RequestBody
import
retrofit2.http.Body
...
...
@@ -32,7 +33,14 @@ interface ApiService {
@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 apiQueryDeviceList(@Body body: RequestBody,@)
@Headers
(
"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
app/src/main/java/com/example/simboxapi/data/entirys/DeviceDataBean.kt
View file @
383461a4
...
...
@@ -13,4 +13,16 @@ data class DeviceDataBean(
@SerializedName
(
"deviceVersion"
)
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
app/src/main/java/com/example/simboxapi/data/entirys/SimCardDataBean.kt
0 → 100644
View file @
383461a4
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
app/src/main/java/com/example/simboxapi/ui/MainActivity.kt
View file @
383461a4
...
...
@@ -7,6 +7,7 @@ import com.example.simboxapi.databinding.ActivityMainBinding
import
com.example.simboxapi.ui.changeSim.ChangeSimActivity
import
com.example.simboxapi.ui.login.LoginActivity
import
com.example.simboxapi.ui.queryCountryInfo.QueryCountryInfoActivity
import
com.example.simboxapi.ui.queryDeviceList.QueryDeviceListActivity
class
MainActivity
:
BaseActivity
(),
View
.
OnClickListener
{
...
...
@@ -29,6 +30,9 @@ class MainActivity : BaseActivity(), View.OnClickListener {
mVB
.
btnMainChangeSim
->
{
ChangeSimActivity
.
intentToChangeSimActivity
(
this
)
}
mVB
.
btnMainQueryDevicesList
->
{
QueryDeviceListActivity
.
intentToQueryDeviceListActivity
(
this
)
}
}
}
...
...
@@ -36,5 +40,6 @@ class MainActivity : BaseActivity(), View.OnClickListener {
mVB
.
btnMainQueryCountry
.
setOnClickListener
(
this
)
mVB
.
btnMainLogin
.
setOnClickListener
(
this
)
mVB
.
btnMainChangeSim
.
setOnClickListener
(
this
)
mVB
.
btnMainQueryDevicesList
.
setOnClickListener
(
this
)
}
}
\ No newline at end of file
app/src/main/java/com/example/simboxapi/ui/changeSim/ChangeSimActivity.kt
View file @
383461a4
...
...
@@ -7,18 +7,13 @@ import android.os.Bundle
import
android.text.method.ScrollingMovementMethod
import
android.view.View
import
androidx.lifecycle.ViewModelProvider
import
cn.hutool.json.JSON
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.ActivityChangeSimBinding
import
com.example.simboxapi.utils.DatePattern
import
com.example.simboxapi.utils.StreamNoUtil
import
com.google.gson.GsonBuilder
import
org.json.JSONObject
import
java.text.SimpleDateFormat
import
java.util.*
import
kotlin.collections.ArrayList
class
ChangeSimActivity
:
AppCompatActivity
(),
View
.
OnClickListener
{
...
...
@@ -36,7 +31,7 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener {
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
setContentView
(
mVB
.
root
)
se
tViewModel
()
ini
tViewModel
()
initView
()
}
...
...
@@ -61,7 +56,7 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener {
}
}
private
fun
se
tViewModel
()
{
private
fun
ini
tViewModel
()
{
val
viewModelRepository
:
ViewModelRepository
=
ViewModelRepository
.
getInstance
(
ApiClient
.
getInstance
(
this
).
apiService
)
mChangeSimViewModel
=
ViewModelProvider
(
this
,
ViewModelFactory
.
getInstance
(
viewModelRepository
))[
ChangeSimViewModel
::
class
.
java
]
}
...
...
@@ -71,7 +66,10 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener {
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
)
{
when
(
it
.
status
)
{
Status
.
SUCCESS
->
{
...
...
app/src/main/java/com/example/simboxapi/ui/queryCountryInfo/QueryCountryInfoActivity.kt
View file @
383461a4
...
...
@@ -12,11 +12,8 @@ import com.example.simboxapi.data.ViewModelFactory
import
com.example.simboxapi.data.ViewModelRepository
import
com.example.simboxapi.data.api.ApiClient
import
com.example.simboxapi.databinding.ActivityQueryCountryInfoBinding
import
com.example.simboxapi.utils.DatePattern
import
com.example.simboxapi.utils.StreamNoUtil
import
com.google.gson.GsonBuilder
import
java.text.SimpleDateFormat
import
java.util.*
class
QueryCountryInfoActivity
:
BaseActivity
(),
View
.
OnClickListener
{
...
...
@@ -33,7 +30,7 @@ class QueryCountryInfoActivity : BaseActivity(), View.OnClickListener {
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
setContentView
(
mVB
.
root
)
se
tViewModel
()
ini
tViewModel
()
initView
()
}
...
...
@@ -55,7 +52,7 @@ class QueryCountryInfoActivity : BaseActivity(), View.OnClickListener {
}
}
private
fun
se
tViewModel
()
{
private
fun
ini
tViewModel
()
{
val
viewModelRepository
:
ViewModelRepository
=
ViewModelRepository
.
getInstance
(
ApiClient
.
getInstance
(
this
).
apiService
)
mQueryCountryInfo
=
ViewModelProvider
(
this
,
ViewModelFactory
.
getInstance
(
viewModelRepository
))[
QueryCountryInfoViewModel
::
class
.
java
]
}
...
...
app/src/main/java/com/example/simboxapi/ui/queryCountryInfo/QueryCountryInfoViewModel.kt
View file @
383461a4
...
...
@@ -9,7 +9,10 @@ import com.example.simboxapi.data.entirys.CountryDataBean
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
)
}
...
...
app/src/main/java/com/example/simboxapi/ui/queryDeviceList/QueryDeviceListActivity.kt
View file @
383461a4
package
com.example.simboxapi.ui.queryDeviceList
import
android.content.Context
import
android.content.Intent
import
androidx.appcompat.app.AppCompatActivity
import
android.os.Bundle
import
android.text.method.ScrollingMovementMethod
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.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
?)
{
super
.
onCreate
(
savedInstanceState
)
setContentView
(
mVB
.
root
)
initViewModel
()
initView
()
}
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
app/src/main/java/com/example/simboxapi/ui/queryDeviceList/QueryDeviceListViewModel.kt
View file @
383461a4
package
com.example.simboxapi.ui.queryDeviceList
import
androidx.lifecycle.LiveData
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.entirys.DeviceDataBean
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
app/src/main/res/layout/activity_change_sim.xml
View file @
383461a4
...
...
@@ -19,6 +19,8 @@
<TextView
android:id=
"@+id/tvChangSimContent"
android:layout_width=
"0dp"
android:layout_marginStart=
"@dimen/dp_10"
android:layout_marginEnd=
"@dimen/dp_10"
android:layout_height=
"0dp"
android:layout_marginTop=
"@dimen/dp_20"
android:scrollbars=
"vertical"
...
...
app/src/main/res/layout/activity_login.xml
View file @
383461a4
...
...
@@ -7,7 +7,7 @@
tools:context=
".ui.login.LoginActivity"
>
<TextView
android:text=
"
login
"
android:text=
"
暂时中止
"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
...
...
app/src/main/res/layout/activity_query_country_info.xml
View file @
383461a4
...
...
@@ -20,6 +20,8 @@
android:id=
"@+id/tvQueryCountryResponse"
android:layout_width=
"0dp"
android:layout_height=
"0dp"
android:layout_marginStart=
"@dimen/dp_10"
android:layout_marginBottom=
"@dimen/dp_10"
android:layout_marginTop=
"@dimen/dp_10"
app:layout_constraintBottom_toBottomOf=
"parent"
android:scrollbars =
"vertical"
...
...
app/src/main/res/layout/activity_query_device_list.xml
View file @
383461a4
...
...
@@ -7,6 +7,7 @@
tools:context=
".ui.queryDeviceList.QueryDeviceListActivity"
>
<Button
android:id=
"@+id/btnQueryDevicePostApi"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_20"
...
...
@@ -15,4 +16,17 @@
app:layout_constraintStart_toStartOf=
"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>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment