RustAssistant/app/src/main/java/com/coldmint/rust/pro/TemplateMakerActivity.kt

104 lines
4.0 KiB
Kotlin
Raw Normal View History

2022-04-04 14:03:10 +00:00
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.*
2022-08-26 13:51:15 +00:00
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.get
import com.coldmint.dialog.CoreDialog
2022-08-14 02:43:53 +00:00
import com.coldmint.rust.core.LocalTemplatePackage
2022-04-04 14:03:10 +00:00
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
2022-08-26 13:51:15 +00:00
import com.coldmint.rust.pro.adapters.TemplateActionAdapter
2022-04-04 14:03:10 +00:00
import com.coldmint.rust.pro.adapters.TemplateMakerAdapter
import com.coldmint.rust.pro.adapters.TemplateMakerPagerAdapter
2022-08-26 13:51:15 +00:00
import com.coldmint.rust.pro.databean.CodeData
2022-04-04 14:03:10 +00:00
import com.coldmint.rust.pro.databinding.ActivityTemplateMakerBinding
import com.coldmint.rust.pro.databinding.AttachFilesBinding
2022-08-26 13:51:15 +00:00
import com.coldmint.rust.pro.fragments.EditTurretInfoFragment
import com.coldmint.rust.pro.fragments.SaveTemplateFragment
2022-04-04 14:03:10 +00:00
import com.coldmint.rust.pro.tool.AppSettings
2023-02-21 11:33:06 +00:00
import com.coldmint.rust.pro.ui.StableLinearLayoutManager
2022-08-26 13:51:15 +00:00
import com.coldmint.rust.pro.viewmodel.TemplateMakerViewModel
import com.google.gson.Gson
2022-04-04 14:03:10 +00:00
import org.json.JSONArray
import java.io.File
import java.util.*
import kotlin.collections.ArrayList
//模板制作器
class TemplateMakerActivity : BaseActivity<ActivityTemplateMakerBinding>() {
2022-08-26 13:51:15 +00:00
lateinit var templateMakerAdapter: TemplateMakerAdapter
val viewModel: TemplateMakerViewModel by lazy {
ViewModelProvider(this).get(TemplateMakerViewModel::class.java)
2022-04-04 14:03:10 +00:00
}
2022-08-26 13:51:15 +00:00
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
2022-04-04 14:03:10 +00:00
}
2022-08-26 13:51:15 +00:00
viewModel.setName(name)
val local = intent.getBooleanExtra("local", true)
val path = intent.getStringExtra("path")
if (path == null) {
showError("请输入path")
return
2022-04-04 14:03:10 +00:00
}
2022-08-26 13:51:15 +00:00
viewModel.isLocal(local)
viewModel.setPath(path)
2023-02-21 11:33:06 +00:00
viewBinding.recyclerView.layoutManager = StableLinearLayoutManager(this)
2022-08-26 13:51:15 +00:00
viewModel.getCodeData { jsonArray, list ->
templateMakerAdapter = TemplateMakerAdapter(this, list)
if (jsonArray != null) {
templateMakerAdapter.setActionArray(jsonArray)
2022-04-04 14:03:10 +00:00
}
2022-08-26 13:51:15 +00:00
viewBinding.recyclerView.adapter = templateMakerAdapter
2022-04-04 14:03:10 +00:00
}
}
}
2022-08-26 13:51:15 +00:00
2022-04-04 14:03:10 +00:00
override fun onCreateOptionsMenu(menu: Menu): Boolean {
2022-08-26 13:51:15 +00:00
menuInflater.inflate(R.menu.menu_create_template, menu)
2022-04-04 14:03:10 +00:00
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
2022-08-26 13:51:15 +00:00
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
2022-04-04 14:03:10 +00:00
}
return super.onOptionsItemSelected(item)
}
2022-08-14 02:43:53 +00:00
override fun getViewBindingObject(layoutInflater: LayoutInflater): ActivityTemplateMakerBinding {
2022-04-04 14:03:10 +00:00
return ActivityTemplateMakerBinding.inflate(layoutInflater)
}
}