104 lines
4.0 KiB
Kotlin
104 lines
4.0 KiB
Kotlin
package com.coldmint.rust.pro
|
|
|
|
|
|
import com.coldmint.rust.pro.base.BaseActivity
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
import org.json.JSONObject
|
|
import android.os.Bundle
|
|
import android.content.Intent
|
|
import org.json.JSONException
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
import com.google.android.material.snackbar.Snackbar
|
|
import android.graphics.BitmapFactory
|
|
import android.os.Handler
|
|
import android.os.Looper
|
|
import android.view.*
|
|
import androidx.lifecycle.ViewModelProvider
|
|
import androidx.lifecycle.get
|
|
import com.coldmint.dialog.CoreDialog
|
|
import com.coldmint.rust.core.LocalTemplatePackage
|
|
import com.coldmint.rust.core.interfaces.LineParserEvent
|
|
import com.coldmint.rust.core.tool.FileOperator
|
|
import com.coldmint.rust.core.tool.LineParser
|
|
import com.coldmint.rust.pro.adapters.AttachFileAdapter
|
|
import com.coldmint.rust.pro.adapters.TemplateActionAdapter
|
|
import com.coldmint.rust.pro.adapters.TemplateMakerAdapter
|
|
import com.coldmint.rust.pro.adapters.TemplateMakerPagerAdapter
|
|
import com.coldmint.rust.pro.databean.CodeData
|
|
|
|
import com.coldmint.rust.pro.databinding.ActivityTemplateMakerBinding
|
|
import com.coldmint.rust.pro.databinding.AttachFilesBinding
|
|
import com.coldmint.rust.pro.fragments.EditTurretInfoFragment
|
|
import com.coldmint.rust.pro.fragments.SaveTemplateFragment
|
|
import com.coldmint.rust.pro.tool.AppSettings
|
|
import com.coldmint.rust.pro.ui.StableLinearLayoutManager
|
|
import com.coldmint.rust.pro.viewmodel.TemplateMakerViewModel
|
|
import com.google.gson.Gson
|
|
import org.json.JSONArray
|
|
import java.io.File
|
|
import java.util.*
|
|
import kotlin.collections.ArrayList
|
|
|
|
//模板制作器
|
|
class TemplateMakerActivity : BaseActivity<ActivityTemplateMakerBinding>() {
|
|
lateinit var templateMakerAdapter: TemplateMakerAdapter
|
|
val viewModel: TemplateMakerViewModel by lazy {
|
|
ViewModelProvider(this).get(TemplateMakerViewModel::class.java)
|
|
}
|
|
|
|
override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) {
|
|
if (canUseView) {
|
|
title = getString(R.string.template_maker)
|
|
setReturnButton()
|
|
val name = intent.getStringExtra("name")
|
|
if (name == null) {
|
|
showToast("请输入名称")
|
|
finish()
|
|
return
|
|
}
|
|
viewModel.setName(name)
|
|
val local = intent.getBooleanExtra("local", true)
|
|
val path = intent.getStringExtra("path")
|
|
if (path == null) {
|
|
showError("请输入path")
|
|
return
|
|
}
|
|
viewModel.isLocal(local)
|
|
viewModel.setPath(path)
|
|
viewBinding.recyclerView.layoutManager = StableLinearLayoutManager(this)
|
|
viewModel.getCodeData { jsonArray, list ->
|
|
templateMakerAdapter = TemplateMakerAdapter(this, list)
|
|
if (jsonArray != null) {
|
|
templateMakerAdapter.setActionArray(jsonArray)
|
|
}
|
|
viewBinding.recyclerView.adapter = templateMakerAdapter
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
|
menuInflater.inflate(R.menu.menu_create_template, menu)
|
|
return true
|
|
}
|
|
|
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
|
if (item.itemId == R.id.save_action) {
|
|
val action = templateMakerAdapter.getActionArray()
|
|
val json = viewModel.getJsonData()
|
|
json.put("action", action)
|
|
json.put("name", viewModel.getName())
|
|
// CoreDialog(this).setTitle(R.string.template_maker).setMessage(json.toString(4)).show()
|
|
val saveTemplateFragment = SaveTemplateFragment(viewModel.getName(), json)
|
|
saveTemplateFragment.show(supportFragmentManager, "Save")
|
|
return true
|
|
}
|
|
return super.onOptionsItemSelected(item)
|
|
}
|
|
|
|
override fun getViewBindingObject(layoutInflater: LayoutInflater): ActivityTemplateMakerBinding {
|
|
return ActivityTemplateMakerBinding.inflate(layoutInflater)
|
|
}
|
|
|
|
} |