Commit d5c13807 authored by steve's avatar steve

新增-queryDeviceListActivity, 修改-api回传将字串格式化为json来进行显示

parent 3a3a064b
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
<entry key="..\:/Users/natur/Documents/androidWork/simBoxApi/app/src/main/res/layout/activity_login.xml" value="0.3802083333333333" /> <entry key="..\:/Users/natur/Documents/androidWork/simBoxApi/app/src/main/res/layout/activity_login.xml" value="0.3802083333333333" />
<entry key="..\:/Users/natur/Documents/androidWork/simBoxApi/app/src/main/res/layout/activity_main.xml" value="0.25905797101449274" /> <entry key="..\:/Users/natur/Documents/androidWork/simBoxApi/app/src/main/res/layout/activity_main.xml" value="0.25905797101449274" />
<entry key="..\:/Users/natur/Documents/androidWork/simBoxApi/app/src/main/res/layout/activity_query_country_info.xml" value="0.3802083333333333" /> <entry key="..\:/Users/natur/Documents/androidWork/simBoxApi/app/src/main/res/layout/activity_query_country_info.xml" value="0.3802083333333333" />
<entry key="..\:/Users/natur/Documents/androidWork/simBoxApi/app/src/main/res/layout/activity_query_device_list.xml" value="0.3802083333333333" />
</map> </map>
</option> </option>
</component> </component>
......
...@@ -14,6 +14,9 @@ ...@@ -14,6 +14,9 @@
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.SimBoxApi" android:theme="@style/Theme.SimBoxApi"
tool:ignore="LockedOrientationActivity"> tool:ignore="LockedOrientationActivity">
<activity
android:name=".ui.queryDeviceList.QueryDeviceListActivity"
android:exported="false" />
<activity <activity
android:name=".ui.changeSim.ChangeSimActivity" android:name=".ui.changeSim.ChangeSimActivity"
android:exported="false" android:exported="false"
......
...@@ -6,18 +6,19 @@ import com.example.simboxapi.ui.changeSim.ChangeSimViewModel ...@@ -6,18 +6,19 @@ import com.example.simboxapi.ui.changeSim.ChangeSimViewModel
import com.example.simboxapi.ui.queryCountryInfo.QueryCountryInfoViewModel import com.example.simboxapi.ui.queryCountryInfo.QueryCountryInfoViewModel
import java.lang.IllegalArgumentException import java.lang.IllegalArgumentException
class ViewModelFactory(private val viewModelRepository: ViewModelRepository):ViewModelProvider.Factory { class ViewModelFactory(private val viewModelRepository: ViewModelRepository) : ViewModelProvider.Factory {
companion object{ companion object {
fun getInstance(viewModelRepository: ViewModelRepository):ViewModelFactory{ fun getInstance(viewModelRepository: ViewModelRepository): ViewModelFactory {
return ViewModelFactory(viewModelRepository) return ViewModelFactory(viewModelRepository)
} }
} }
override fun <T : ViewModel> create(modelClass: Class<T>): T { override fun <T : ViewModel> create(modelClass: Class<T>): T {
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
else -> throw IllegalArgumentException("unKnow class name") else -> throw IllegalArgumentException("unKnow class name")
} }
......
package com.example.simboxapi.data.api
object ApiPath {
const val QUERY_COVER_COUNTY_INFO = "bss/app/noauth/QueryCoverCountyInfo"
const val ON_OFF_IMSI = "bss/dsds/card/OnOffImsi"
const val QUERY_DEVICE_LIST = "bss/dsds/device/QueryDeviceList"
}
\ No newline at end of file
...@@ -18,7 +18,7 @@ interface ApiService { ...@@ -18,7 +18,7 @@ interface ApiService {
"langType:zh-CN", "langType:zh-CN",
"App-Version:1.9.03" "App-Version:1.9.03"
) )
@POST("bss/app/noauth/QueryCoverCountyInfo") @POST(ApiPath.QUERY_COVER_COUNTY_INFO)
suspend fun apiQueryCountryInfo(@Body body: RequestBody, @Header("Cookie") cookie: String, @Header("voipId") voipId: String): BaseResponse<ArrayList<CountryDataBean>> suspend fun apiQueryCountryInfo(@Body body: RequestBody, @Header("Cookie") cookie: String, @Header("voipId") voipId: String): BaseResponse<ArrayList<CountryDataBean>>
...@@ -29,6 +29,10 @@ interface ApiService { ...@@ -29,6 +29,10 @@ interface ApiService {
"langType:zh-CN", "langType:zh-CN",
"app-Version:1.9.03" "app-Version:1.9.03"
) )
@POST("bss/dsds/card/OnOffImsi") @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>>
// suspend fun apiQueryDeviceList(@Body body: RequestBody,@)
} }
\ No newline at end of file
package com.example.simboxapi.data.entirys
import com.google.gson.annotations.SerializedName
data class DeviceDataBean(
@SerializedName("imei")
private val imei:String,
@SerializedName("deviceName")
private val deviceName:String,
@SerializedName("deviceVersion")
val deviceVersion:String,
)
\ No newline at end of file
...@@ -4,14 +4,19 @@ import android.content.Context ...@@ -4,14 +4,19 @@ import android.content.Context
import android.content.Intent 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 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.DatePattern
import com.example.simboxapi.utils.StreamNoUtil
import com.google.gson.GsonBuilder
import org.json.JSONObject
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
...@@ -36,8 +41,8 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener { ...@@ -36,8 +41,8 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener {
} }
override fun onClick(view: View?) { override fun onClick(view: View?) {
when(view){ when (view) {
mVB.btnChangeSimPostApi->{ mVB.btnChangeSimPostApi -> {
mVB.tvChangSimContent.text = "" mVB.tvChangSimContent.text = ""
val imei = "864055040488792" val imei = "864055040488792"
...@@ -45,13 +50,13 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener { ...@@ -45,13 +50,13 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener {
val offImsiList = arrayListOf("460015466225468") val offImsiList = arrayListOf("460015466225468")
val onImsiList = arrayListOf<String>() val onImsiList = arrayListOf<String>()
val partnerCode = "GCGROUP" val partnerCode = "GCGROUP"
val streamNo = "SIMBOX${getData()}${((Math.random() * 9.toDouble() + 1.toDouble()) * 100000.toDouble()).toInt()}" val streamNo = "SIMBOX${StreamNoUtil.getData()}${((Math.random() * 9.toDouble() + 1.toDouble()) * 100000.toDouble()).toInt()}"
val cookie = "access_token=TGT-2398391-2usdACdYsxPGbfXXnenVOIYRu6fZKFdZHpEAHczU0Sc4BfUZZR" val cookie = "access_token=TGT-2398391-2usdACdYsxPGbfXXnenVOIYRu6fZKFdZHpEAHczU0Sc4BfUZZR"
val voidId = "80000076419" val voidId = "80000076419"
val userLabel = "businessUser" val userLabel = "businessUser"
apiPostOnOffImsi(imei,loginCustomId,offImsiList,onImsiList,partnerCode,streamNo,cookie,voidId,userLabel) apiPostOnOffImsi(imei, loginCustomId, offImsiList, onImsiList, partnerCode, streamNo, cookie, voidId, userLabel)
} }
} }
} }
...@@ -62,21 +67,20 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener { ...@@ -62,21 +67,20 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener {
} }
private fun initView() { private fun initView() {
mVB.tvChangSimContent.movementMethod = ScrollingMovementMethod()
mVB.btnChangeSimPostApi.setOnClickListener(this) mVB.btnChangeSimPostApi.setOnClickListener(this)
} }
private fun getData(): String { private fun apiPostOnOffImsi(imei: String, loginCustomId: String, offImsiList: ArrayList<String>, onImsiList: ArrayList<String>, partnerCode: String, streamNo: String, cookie: String, voipId: String, userLabel: String) {
val instance = Calendar.getInstance() mChangeSimViewModel.apiPostOnOffImsi(imei, loginCustomId, offImsiList, onImsiList, partnerCode, streamNo, cookie, voipId, userLabel).observe(this) {
val simpleDateFormat = SimpleDateFormat(DatePattern.PURE_DATETIME_MS_PATTERN, Locale.ENGLISH)
simpleDateFormat.timeZone = TimeZone.getTimeZone("UTC")
return simpleDateFormat.format(instance.time)
}
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) { when (it.status) {
Status.SUCCESS -> { Status.SUCCESS -> {
mVB.tvChangSimContent.text = it.data.toString() if (it.data?.resultCode == "00000000") {
val data = GsonBuilder().setPrettyPrinting().create().toJson(it.data)
mVB.tvChangSimContent.text = data
return@observe
}
mVB.tvChangSimContent.text = it.data?.resultDesc ?: ""
} }
Status.ERROR -> { Status.ERROR -> {
mVB.tvChangSimContent.text = it.e?.message.toString() mVB.tvChangSimContent.text = it.e?.message.toString()
...@@ -88,5 +92,4 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener { ...@@ -88,5 +92,4 @@ class ChangeSimActivity : AppCompatActivity(), View.OnClickListener {
} }
} }
} }
...@@ -3,6 +3,7 @@ package com.example.simboxapi.ui.queryCountryInfo ...@@ -3,6 +3,7 @@ package com.example.simboxapi.ui.queryCountryInfo
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
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 androidx.lifecycle.ViewModelProvider
import com.example.simboxapi.base.BaseActivity import com.example.simboxapi.base.BaseActivity
...@@ -12,6 +13,8 @@ import com.example.simboxapi.data.ViewModelRepository ...@@ -12,6 +13,8 @@ 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.DatePattern
import com.example.simboxapi.utils.StreamNoUtil
import com.google.gson.GsonBuilder
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
...@@ -42,12 +45,12 @@ class QueryCountryInfoActivity : BaseActivity(), View.OnClickListener { ...@@ -42,12 +45,12 @@ class QueryCountryInfoActivity : BaseActivity(), View.OnClickListener {
val langType = "zh-CN" val langType = "zh-CN"
val loginCustomerId = "" val loginCustomerId = ""
val partnerCode = "GCGROUP" val partnerCode = "GCGROUP"
val streamNo = "SIMBOX${getData()}${((Math.random() * 9.toDouble() + 1.toDouble()) * 100000.toDouble()).toInt()}" val streamNo = "SIMBOX${StreamNoUtil.getData()}${((Math.random() * 9.toDouble() + 1.toDouble()) * 100000.toDouble()).toInt()}"
val cookie = "access_token=" val cookie = "access_token="
val voipId = "" val voipId = ""
apiPostQueryCountry(langType,loginCustomerId,partnerCode, streamNo,cookie,voipId) apiPostQueryCountry(langType, loginCustomerId, partnerCode, streamNo, cookie, voipId)
} }
} }
} }
...@@ -58,21 +61,20 @@ class QueryCountryInfoActivity : BaseActivity(), View.OnClickListener { ...@@ -58,21 +61,20 @@ class QueryCountryInfoActivity : BaseActivity(), View.OnClickListener {
} }
private fun initView() { private fun initView() {
mVB.tvQueryCountryResponse.movementMethod = ScrollingMovementMethod()
mVB.btnQueryCountryPostApi.setOnClickListener(this) mVB.btnQueryCountryPostApi.setOnClickListener(this)
} }
private fun getData(): String { private fun apiPostQueryCountry(langType: String, loginCustomerId: String, partnerCode: String, streamNo: String, cookie: String, voipId: String) {
val instance = Calendar.getInstance() mQueryCountryInfo.apiPostQueryCountryInfo(langType, loginCustomerId, partnerCode, streamNo, cookie, voipId).observe(this) {
val simpleDateFormat = SimpleDateFormat(DatePattern.PURE_DATETIME_MS_PATTERN, Locale.ENGLISH)
simpleDateFormat.timeZone = TimeZone.getTimeZone("UTC")
return simpleDateFormat.format(instance.time)
}
private fun apiPostQueryCountry(langType:String,loginCustomerId:String,partnerCode:String,streamNo:String,cookie:String,voipId:String){
mQueryCountryInfo.apiPostQueryCountryInfo(langType, loginCustomerId, partnerCode, streamNo,cookie,voipId).observe(this) {
when (it.status) { when (it.status) {
Status.SUCCESS -> { Status.SUCCESS -> {
mVB.tvQueryCountryResponse.text = it.data.toString() if (it.data?.resultCode == "00000000") {
val data = GsonBuilder().setPrettyPrinting().create().toJson(it.data)
mVB.tvQueryCountryResponse.text = data
return@observe
}
mVB.tvQueryCountryResponse.text = it.data?.resultDesc ?: ""
} }
Status.ERROR -> { Status.ERROR -> {
mVB.tvQueryCountryResponse.text = it.e?.message.toString() mVB.tvQueryCountryResponse.text = it.e?.message.toString()
......
package com.example.simboxapi.ui.queryDeviceList
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import com.example.simboxapi.databinding.ActivityQueryDeviceListBinding
class QueryDeviceListActivity : AppCompatActivity(),View.OnClickListener{
private val mVB by lazy { ActivityQueryDeviceListBinding.inflate(layoutInflater) }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(mVB.root)
}
override fun onClick(view: View?) {
when(view){
}
}
}
\ No newline at end of file
package com.example.simboxapi.ui.queryDeviceList
import androidx.lifecycle.ViewModel
import com.example.simboxapi.data.ViewModelRepository
class QueryDeviceListViewModel(private val viewModelRepository: ViewModelRepository) : ViewModel() {
}
\ No newline at end of file
package com.example.simboxapi.utils
import java.text.SimpleDateFormat
import java.util.*
object StreamNoUtil {
fun getData():String{
val instance = Calendar.getInstance()
val simpleDateFormat = SimpleDateFormat(DatePattern.PURE_DATETIME_MS_PATTERN, Locale.ENGLISH)
simpleDateFormat.timeZone = TimeZone.getTimeZone("UTC")
return simpleDateFormat.format(instance.time)
}
}
\ No newline at end of file
...@@ -8,22 +8,23 @@ ...@@ -8,22 +8,23 @@
<Button <Button
android:id="@+id/btnChangeSimPostApi" android:id="@+id/btnChangeSimPostApi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20" android:layout_marginTop="@dimen/dp_20"
android:text="@string/activity_change_sim_post_api"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
android:text="@string/activity_change_sim_post_api" app:layout_constraintTop_toTopOf="parent" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView <TextView
android:id="@+id/tvChangSimContent" android:id="@+id/tvChangSimContent"
app:layout_constraintBottom_toBottomOf="parent" android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="@dimen/dp_20" android:layout_marginTop="@dimen/dp_20"
android:scrollbars="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btnChangeSimPostApi"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
android:layout_width="0dp" app:layout_constraintTop_toBottomOf="@+id/btnChangeSimPostApi" />
android:layout_height="0dp"/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -26,6 +26,16 @@ ...@@ -26,6 +26,16 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnMainQueryCountry" /> app:layout_constraintTop_toBottomOf="@id/btnMainQueryCountry" />
<Button
android:id="@+id/btnMainQueryDevicesList"
android:layout_marginTop="@dimen/dp_20"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:text="@string/activity_main_query_device_list"
app:layout_constraintTop_toBottomOf="@+id/btnMainLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button <Button
android:id="@+id/btnMainChangeSim" android:id="@+id/btnMainChangeSim"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -34,6 +44,6 @@ ...@@ -34,6 +44,6 @@
android:text="@string/activity_main_change_sim" android:text="@string/activity_main_change_sim"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btnMainLogin" /> app:layout_constraintTop_toBottomOf="@+id/btnMainQueryDevicesList" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
android:layout_height="0dp" android:layout_height="0dp"
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"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.queryDeviceList.QueryDeviceListActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:text="@string/activity_query_device_list"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
<!--activity_main--> <!--activity_main-->
<string name="activity_main_query_country">取得国家资讯</string> <string name="activity_main_query_country">取得国家资讯</string>
<string name="activity_main_login">登入</string> <string name="activity_main_login">登入</string>
<string name="activity_main_query_device_list">取得装置资料</string>
<string name="activity_main_change_sim">更换sim</string> <string name="activity_main_change_sim">更换sim</string>
<!--activity_query_country--> <!--activity_query_country-->
...@@ -13,6 +14,9 @@ ...@@ -13,6 +14,9 @@
<!--activity_login--> <!--activity_login-->
<!--activity_query_device_list-->
<string name="activity_query_device_list">Post Api Query Device List</string>
<!--activity_change_sim--> <!--activity_change_sim-->
<string name="activity_change_sim_post_api">Post Api Change Sim</string> <string name="activity_change_sim_post_api">Post Api Change Sim</string>
......
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