diff --git a/app/build.gradle b/app/build.gradle index ff8facf..1234dff 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -106,6 +106,7 @@ dependencies { implementation 'com.github.getActivity:MultiLanguages:8.0' // 权限请求框架:https://github.com/getActivity/XXPermissions implementation 'com.github.getActivity:XXPermissions:20.0' + implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9' implementation "androidx.room:room-runtime:2.4.0" //注释处理器加上Room diff --git a/app/src/main/java/com/coldmint/rust/pro/MainActivity.kt b/app/src/main/java/com/coldmint/rust/pro/MainActivity.kt index 7698cbe..9102fcf 100644 --- a/app/src/main/java/com/coldmint/rust/pro/MainActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/MainActivity.kt @@ -69,7 +69,7 @@ class MainActivity : BaseActivity() { */ private fun initNav() { appBarConfiguration = AppBarConfiguration( - setOf(R.id.mod_item, R.id.database_item, R.id.template_item), + setOf(R.id.mod_item), viewBinding.drawerlayout ) val navController = findNavController(R.id.baseFragment) @@ -237,18 +237,12 @@ class MainActivity : BaseActivity() { */ private fun initNavigationMenu(isActive: Boolean = GlobalMethod.isActive) { val menu = viewBinding.navaiagtion.menu - val dataBase = menu.findItem(R.id.database_item) - val template = menu.findItem(R.id.template_item) val codeTable = menu.findItem(R.id.code_table) val gitHub = menu.findItem(R.id.github) gitHub.setOnMenuItemClickListener { AppOperator.useBrowserAccessWebPage(this, "https://github.com/Cold-Mint/RustAssistant") false } - //管理可见性 - dataBase.isVisible = isActive - template.isVisible = isActive -// help.isVisible = isActive codeTable.isVisible = isActive if (isActive) { //数据库 diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/ApplicationListAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/ApplicationListAdapter.kt index 687a230..533737e 100644 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/ApplicationListAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/adapters/ApplicationListAdapter.kt @@ -2,36 +2,29 @@ package com.coldmint.rust.pro.adapters import android.content.Context import android.content.pm.PackageInfo -import androidx.recyclerview.widget.RecyclerView -import android.view.ViewGroup -import android.view.LayoutInflater -import com.coldmint.rust.pro.R -import android.content.pm.PackageManager -import android.os.Build import android.os.Handler -import android.os.Looper -import android.view.View -import android.widget.ImageView +import android.view.LayoutInflater +import android.view.ViewGroup import android.widget.PopupMenu -import com.bumptech.glide.Glide -import com.coldmint.rust.pro.tool.AppSettings -import com.coldmint.rust.pro.tool.GlobalMethod -import android.widget.TextView -import android.widget.Toast import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.WhichButton import com.afollestad.materialdialogs.actions.setActionButtonEnabled -import com.coldmint.rust.core.CompressionManager +import com.bumptech.glide.Glide import com.coldmint.rust.core.GameSynchronizer import com.coldmint.rust.core.interfaces.GameSynchronizerListener -import com.coldmint.rust.core.interfaces.UnzipListener import com.coldmint.rust.core.tool.AppOperator +import com.coldmint.rust.pro.R import com.coldmint.rust.pro.base.BaseAdapter import com.coldmint.rust.pro.databinding.ApplicationItemBinding +import com.coldmint.rust.pro.tool.AppSettings +import com.coldmint.rust.pro.tool.GlobalMethod import com.google.android.material.snackbar.Snackbar +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers.IO +import kotlinx.coroutines.Dispatchers.Main +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import java.io.File -import java.util.zip.ZipEntry -import kotlin.concurrent.thread /** * 应用适配器 @@ -42,15 +35,10 @@ class ApplicationListAdapter( context: Context, dataList: MutableList ) : BaseAdapter(context, dataList) { - val handler: Handler by lazy { - Handler(Looper.getMainLooper()) - } - - val materialDialog: MaterialDialog by lazy { + private val materialDialog: MaterialDialog by lazy { MaterialDialog(context) } - override fun getViewBindingObject( layoutInflater: LayoutInflater, parent: ViewGroup, @@ -116,40 +104,37 @@ class ApplicationListAdapter( } else if (title == context.getString(R.string.application_information)) { context.startActivity(AppOperator.openSettings(data.packageName)) } else if (title == context.getString(R.string.exportApk)) { - Thread { + CoroutineScope(IO).launch { val gameSynchronizer = GameSynchronizer(context, data) val folder = AppSettings.dataRootDirectory + "/apk" val apkFolder = File(folder) if (!apkFolder.exists()) { apkFolder.mkdirs() } - handler.post { + withContext(Main) { try { materialDialog.show { - title(R.string.export_apk_title).message( - R.string.export_apk_load - ).positiveButton(R.string.dialog_close).cancelable(false) + title(R.string.export_apk_title) + message(R.string.export_apk_load) + positiveButton(R.string.dialog_close) + cancelable(false) } } catch (e: Exception) { e.printStackTrace() } } + val path = folder + "/" + appName + "_" + data.versionName + ".apk" - val result = - gameSynchronizer.exportApk(path) - if (result) { - handler.post { + val result = gameSynchronizer.exportApk(path) + withContext(Main) { + if (result) { materialDialog.message( - text = - String.format( - context.getString( - R.string.export_apk_path - ), path + text = String.format( + context.getString(R.string.export_apk_path), + path ) ) - } - } else { - handler.post { + } else { try { materialDialog.dismiss() Snackbar.make( @@ -162,7 +147,7 @@ class ApplicationListAdapter( } } } - }.start() + } } else if (title == context.getString(R.string.synchronous)) { val materialDialog = MaterialDialog(context).show { title(text = appName).message(R.string.synchronous_ing) diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/BookmarkAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/BookmarkAdapter.kt index 7ee27bf..aa4096a 100644 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/BookmarkAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/adapters/BookmarkAdapter.kt @@ -36,14 +36,5 @@ class BookmarkAdapter( context: Context, dataList: MutableList) : ) { viewBinding.fileName.text = data.name viewBinding.filePath.text = data.path -// holder.del.setOnClickListener { -// if (bookmarkListener != null) { -// if (bookmarkListener!!.onClickRemoveButton(holder.del, bookmark)) { -// arrayList.remove(bookmark) -// notifyItemRemoved(position) -// bookmarkListener!!.afterRemoveItem(arrayList.size) -// } -// } -// } } } \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/MyWebTemplateAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/MyWebTemplateAdapter.kt deleted file mode 100644 index 1a2be1c..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/MyWebTemplateAdapter.kt +++ /dev/null @@ -1,32 +0,0 @@ -package com.coldmint.rust.pro.adapters - -import android.content.Context -import android.view.LayoutInflater -import android.view.ViewGroup -import com.coldmint.rust.core.dataBean.WebTemplatePackageListData -import com.coldmint.rust.pro.base.BaseAdapter -import com.coldmint.rust.pro.databinding.ItemMyWebTemplateBinding - -class MyWebTemplateAdapter( - context: Context, - dataList: MutableList -) : BaseAdapter(context, dataList) { - override fun getViewBindingObject( - layoutInflater: LayoutInflater, - parent: ViewGroup, - viewType: Int - ): ItemMyWebTemplateBinding { - return ItemMyWebTemplateBinding.inflate(layoutInflater, parent, false) - } - - override fun onBingView( - data: WebTemplatePackageListData.Data, - viewBinding: ItemMyWebTemplateBinding, - viewHolder: ViewHolder, - position: Int - ) { - viewBinding.timeView.text = data.modificationTime - viewBinding.titleView.text = data.getName() - viewBinding.subTitleView.text = data.describe - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/ReportAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/ReportAdapter.kt deleted file mode 100644 index ad22895..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/ReportAdapter.kt +++ /dev/null @@ -1,65 +0,0 @@ -package com.coldmint.rust.pro.adapters - -import android.content.Context -import android.content.Intent -import android.os.Bundle -import android.view.LayoutInflater -import android.view.ViewGroup -import com.bumptech.glide.Glide -import com.coldmint.rust.core.dataBean.report.ReportItemDataBean -import com.coldmint.rust.core.web.ServerConfiguration -import com.coldmint.rust.pro.R -import com.coldmint.rust.pro.base.BaseAdapter -import com.coldmint.rust.pro.databinding.ItemReportBinding -import com.coldmint.rust.pro.tool.GlobalMethod - -/** - * @author Cold Mint - * @date 2022/1/9 11:03 - */ -class ReportAdapter( - context: Context, - dataList: MutableList -) : - BaseAdapter(context, dataList) { - override fun getViewBindingObject( - layoutInflater: LayoutInflater, - parent: ViewGroup, - viewType: Int - ): ItemReportBinding { - return ItemReportBinding.inflate(layoutInflater, parent, false) - } - - override fun onBingView( - data: ReportItemDataBean.Data, - viewBinding: ItemReportBinding, - viewHolder: ViewHolder, - position: Int - ) { - val headIcon = data.headIcon - if (headIcon != null) { - Glide.with(context).load(ServerConfiguration.getRealLink(headIcon)) - .apply(GlobalMethod.getRequestOptions(true)) - .into(viewBinding.headIconView) - } - viewBinding.timeView.text = data.time - viewBinding.nameView.text = data.userName - viewBinding.openView.text = - context.getString(R.string.view_the_report_object) - when (data.type) { - "mod" -> { - viewBinding.typeView.setText(R.string.report_mod) - viewBinding.actionView.setText(R.string.sold_out_mod) - viewBinding.openView.setOnClickListener { - - } - } - "user" -> { - viewBinding.typeView.setText(R.string.report_user) - } - } - viewBinding.textview.text = data.why - viewBinding.describeView.text = data.describe - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/ScreenshotAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/ScreenshotAdapter.kt deleted file mode 100644 index e8f7b4a..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/ScreenshotAdapter.kt +++ /dev/null @@ -1,56 +0,0 @@ -package com.coldmint.rust.pro.adapters - -import android.content.Context -import android.view.LayoutInflater -import android.view.ViewGroup -import androidx.recyclerview.widget.RecyclerView -import com.afollestad.materialdialogs.MaterialDialog -import com.bumptech.glide.Glide -import com.bumptech.glide.request.RequestOptions -import com.coldmint.rust.pro.R -import com.coldmint.rust.pro.base.BaseAdapter -import com.coldmint.rust.pro.databinding.ScreenshotItemBinding -import com.coldmint.rust.pro.tool.GlobalMethod - -/** - * @author Cold Mint - * @date 2021/11/20 18:38 - */ -class ScreenshotAdapter( context: Context, dataList: ArrayList) : - BaseAdapter(context, dataList) { - - - override fun getViewBindingObject( - layoutInflater: LayoutInflater, - parent: ViewGroup, - viewType: Int - ): ScreenshotItemBinding { - return ScreenshotItemBinding.inflate(layoutInflater, parent, false) - } - - override fun onBingView( - data: String, - viewBinding: ScreenshotItemBinding, - viewHolder: ViewHolder, - position: Int - ) { - Glide.with(context).load(data).apply(GlobalMethod.getRequestOptions()) - .into(viewBinding.imageView) - viewBinding.imageView.setOnLongClickListener { - MaterialDialog(context).show { - title(R.string.remove).message( - text = String.format( - it.context.getString(R.string.remove_image_item), - data - ) - ).positiveButton(R.string.dialog_ok) { - removeItem(viewHolder.adapterPosition) - }.negativeButton(R.string.dialog_cancel).cancelable(false) - } - - return@setOnLongClickListener true - } - } - - -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/TemplateMakerAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/TemplateMakerAdapter.kt index cdd3945..764eda7 100644 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/TemplateMakerAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/adapters/TemplateMakerAdapter.kt @@ -1,32 +1,29 @@ package com.coldmint.rust.pro.adapters -import android.annotation.SuppressLint import android.content.Context import android.os.Build import android.text.Editable import android.text.Html import android.text.TextWatcher -import androidx.recyclerview.widget.RecyclerView -import org.json.JSONArray -import android.view.ViewGroup import android.view.LayoutInflater import android.view.View +import android.view.ViewGroup import android.view.inputmethod.InputMethodManager -import android.widget.* +import android.widget.AdapterView +import android.widget.ArrayAdapter +import android.widget.EditText import androidx.appcompat.app.AppCompatActivity import androidx.core.view.isVisible -import androidx.viewbinding.ViewBinding -import com.coldmint.rust.pro.R import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.customview.customView import com.coldmint.rust.core.tool.LineParser +import com.coldmint.rust.pro.R import com.coldmint.rust.pro.base.BaseAdapter import com.coldmint.rust.pro.databean.CodeData import com.coldmint.rust.pro.databinding.AddActionDialogBinding import com.coldmint.rust.pro.databinding.MarkItemBinding -import com.google.gson.JsonObject +import org.json.JSONArray import org.json.JSONObject -import java.util.ArrayList //模板制作适配器 diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/TemplateMakerPagerAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/TemplateMakerPagerAdapter.kt deleted file mode 100644 index 2175789..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/TemplateMakerPagerAdapter.kt +++ /dev/null @@ -1,33 +0,0 @@ -package com.coldmint.rust.pro.adapters - -import android.content.Context -import android.view.View -import androidx.viewpager.widget.PagerAdapter -import android.view.ViewGroup - -class TemplateMakerPagerAdapter( - private val context: Context, - private val titleId: IntArray, - private val views: Array -) : PagerAdapter() { - override fun instantiateItem(container: ViewGroup, position: Int): Any { - container.addView(views[position]) - return views[position] - } - - override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) { - container.removeView(views[position]) - } - - override fun getCount(): Int { - return views.size - } - - override fun isViewFromObject(view: View, `object`: Any): Boolean { - return view === `object` - } - - override fun getPageTitle(position: Int): CharSequence { - return context.getText(titleId[position]) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/TemplatePageAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/TemplatePageAdapter.kt deleted file mode 100644 index 81dd37c..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/TemplatePageAdapter.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.coldmint.rust.pro.adapters - -import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentActivity -import androidx.viewpager2.adapter.FragmentStateAdapter -import com.coldmint.rust.pro.fragments.LocalTemplateFragment -import com.coldmint.rust.pro.fragments.NetworkTemplateFragment -import com.coldmint.rust.pro.fragments.NullFragment - -/** - * 模板页面适配器 - * @constructor - */ -class TemplatePageAdapter(fragmentActivity: FragmentActivity) : - FragmentStateAdapter(fragmentActivity) { - override fun getItemCount(): Int { - return 2 - } - - override fun createFragment(position: Int): Fragment { - return if (position == 0){ - LocalTemplateFragment() - }else{ - NetworkTemplateFragment() - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/TemplateSelectAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/TemplateSelectAdapter.kt index 0a304a4..4fa3539 100644 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/TemplateSelectAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/adapters/TemplateSelectAdapter.kt @@ -12,7 +12,7 @@ import com.google.android.material.checkbox.MaterialCheckBox class TemplateSelectAdapter(context: Context, dataList: MutableList) : BaseAdapter(context, dataList) { private val selectedTemplateList: ArrayList by lazy { - ArrayList() + ArrayList() } private var change: ((Int) -> Unit)? = null diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/UnitAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/UnitAdapter.kt index 24852f8..4ef8e64 100644 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/UnitAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/adapters/UnitAdapter.kt @@ -1,22 +1,19 @@ package com.coldmint.rust.pro.adapters -import com.coldmint.rust.core.SourceFile -import android.view.ViewGroup -import android.view.LayoutInflater -import com.coldmint.rust.pro.R import android.content.Context import android.content.res.ColorStateList -import com.coldmint.rust.pro.tool.AppSettings +import android.view.LayoutInflater +import android.view.ViewGroup import com.bumptech.glide.Glide -import com.bumptech.glide.request.RequestOptions -import com.bumptech.glide.load.engine.DiskCacheStrategy +import com.coldmint.rust.core.SourceFile +import com.coldmint.rust.pro.R import com.coldmint.rust.pro.base.BaseAdapter import com.coldmint.rust.pro.databinding.UnitItemBinding +import com.coldmint.rust.pro.tool.AppSettings import com.coldmint.rust.pro.tool.GlobalMethod import me.zhanghai.android.fastscroll.PopupTextProvider import java.text.SimpleDateFormat -import java.util.* -import kotlin.Exception +import java.util.Locale class UnitAdapter( context: Context, @@ -32,7 +29,7 @@ class UnitAdapter( ) } - private val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") + private val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()) init { dataList.sortBy { @@ -73,12 +70,15 @@ class UnitAdapter( val imageView = viewBinding.iconView val path = sourceFile.getIcon() if (path != null) { - Glide.with(context).load(path).apply(GlobalMethod.getRequestOptions()).into(imageView) + Glide.with(context).load(path).apply(GlobalMethod.getRequestOptions()) + .into(imageView) } else { - Glide.with(context).load( GlobalMethod.tintDrawable( - context.getDrawable(R.drawable.image), - ColorStateList.valueOf(GlobalMethod.getColorPrimary(context)) - )).apply(GlobalMethod.getRequestOptions().override(200)).into(imageView) + Glide.with(context).load( + GlobalMethod.tintDrawable( + context.getDrawable(R.drawable.image), + ColorStateList.valueOf(GlobalMethod.getColorPrimary(context)) + ) + ).apply(GlobalMethod.getRequestOptions().override(200)).into(imageView) } } catch (e: Exception) { viewBinding.unitDescribeView.text = e.toString() diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/UserHeadAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/UserHeadAdapter.kt deleted file mode 100644 index 3ca3040..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/UserHeadAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.coldmint.rust.pro.adapters - -import android.content.Context -import android.view.LayoutInflater -import android.view.ViewGroup -import com.bumptech.glide.Glide -import com.bumptech.glide.request.RequestOptions -import com.coldmint.rust.core.dataBean.follow.FollowUserListData -import com.coldmint.rust.core.web.ServerConfiguration -import com.coldmint.rust.pro.R -import com.coldmint.rust.pro.base.BaseAdapter -import com.coldmint.rust.pro.databinding.ItemUserHeadBinding -import com.coldmint.rust.pro.tool.GlobalMethod - -/** - * @author Cold Mint - * @date 2021/12/28 10:59 - */ -class UserHeadAdapter( context: Context, list: MutableList) : - BaseAdapter(context, list) { - override fun getViewBindingObject( - layoutInflater: LayoutInflater, - parent: ViewGroup, - viewType: Int - ): ItemUserHeadBinding { - return ItemUserHeadBinding.inflate(layoutInflater, parent, false) - } - - override fun onBingView( - data: FollowUserListData.Data, - viewBinding: ItemUserHeadBinding, - viewHolder: ViewHolder, - position: Int - ) { - val account = data.account - if (account.isBlank()) { - viewBinding.headIconView.setImageResource(R.drawable.all_dynamic) - } else { - val headIcon = data.headIcon - if (headIcon != null) { - Glide.with(context).load(ServerConfiguration.getRealLink(headIcon)) - .into(viewBinding.headIconView) - } - } - viewBinding.nameView.text = data.userName - } - - -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/ValueAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/ValueAdapter.kt index 516c295..5447c81 100644 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/ValueAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/adapters/ValueAdapter.kt @@ -25,17 +25,17 @@ class ValueAdapter(context: Context, dataList: ArrayList) : } override fun onBingView( - typeDataBean: ValueTypeDataBean, + data: ValueTypeDataBean, viewBinding: ValueItemBinding, viewHolder: ViewHolder, position: Int ) { val title = StringBuilder() - title.append(typeDataBean.name) + title.append(data.name) title.append('(') - title.append(typeDataBean.type) + title.append(data.type) title.append(')') - val scope = typeDataBean.scope + val scope = data.scope val context = viewBinding.scopeView.context var showData: String? = null var scopeTitle: String? = null @@ -67,7 +67,7 @@ class ValueAdapter(context: Context, dataList: ArrayList) : .setPositiveButton(R.string.dialog_ok, null).show() } viewBinding.titleView.text = title.toString() - viewBinding.descriptionView.text = typeDataBean.describe + viewBinding.descriptionView.text = data.describe } diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/WarehouseAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/WarehouseAdapter.kt index 136e9fd..3e947f0 100644 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/WarehouseAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/adapters/WarehouseAdapter.kt @@ -1,9 +1,10 @@ package com.coldmint.rust.pro.adapters -import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import androidx.viewpager2.adapter.FragmentStateAdapter -import com.coldmint.rust.pro.fragments.* +import com.coldmint.rust.pro.fragments.MapFragment +import com.coldmint.rust.pro.fragments.ModFragment +import com.coldmint.rust.pro.fragments.NullFragment /** * @author Cold Mint diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/WebModAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/WebModAdapter.kt deleted file mode 100644 index 2529461..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/WebModAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.coldmint.rust.pro.adapters - -import android.content.Context -import android.view.LayoutInflater -import android.view.ViewGroup -import com.bumptech.glide.Glide -import com.coldmint.rust.core.dataBean.mod.WebModListData -import com.coldmint.rust.core.web.ServerConfiguration -import com.coldmint.rust.core.web.WebMod -import com.coldmint.rust.pro.R -import com.coldmint.rust.pro.base.BaseAdapter -import com.coldmint.rust.pro.databinding.WebModItemBinding -import com.coldmint.rust.pro.tool.GlobalMethod -import me.zhanghai.android.fastscroll.PopupTextProvider - -class WebModAdapter( context: Context, dataList: MutableList) : - BaseAdapter(context, dataList) , PopupTextProvider { - - override fun getViewBindingObject( - layoutInflater: LayoutInflater, - parent: ViewGroup, - viewType: Int - ): WebModItemBinding { - return WebModItemBinding.inflate(layoutInflater, parent, false) - } - - override fun onBingView( - data: WebModListData.Data, - viewBinding: WebModItemBinding, - viewHolder: BaseAdapter.ViewHolder, - position: Int - ) { - viewBinding.modNameView.text = data.name - viewBinding.modIntroductionView.text = data.describe - viewBinding.modInfo.text = String.format( - context.getString(R.string.web_mod_info), - data.updateTime, - data.downloadNumber - ) - - val icon = data.icon - if (icon != null && icon.isNotBlank()) { - val path: String = ServerConfiguration.getRealLink(icon) - Glide.with(context).load(path).apply(GlobalMethod.getRequestOptions()) - .into(viewBinding.modIcon) - }else{ - viewBinding.modIcon.setImageResource(R.drawable.image) - } - } - - override fun getPopupText(position: Int): String { - return dataList[position].downloadNumber.toString() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/WebTemplateAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/WebTemplateAdapter.kt deleted file mode 100644 index 0622f00..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/WebTemplateAdapter.kt +++ /dev/null @@ -1,46 +0,0 @@ -package com.coldmint.rust.pro.adapters - -import android.content.Context -import android.view.LayoutInflater -import android.view.ViewGroup -import com.coldmint.rust.core.dataBean.WebTemplatePackageListData -import com.coldmint.rust.pro.R -import com.coldmint.rust.pro.base.BaseAdapter -import com.coldmint.rust.pro.databinding.ItemWebTemplateBinding -import me.zhanghai.android.fastscroll.PopupTextProvider - -/** - * 网络模板适配器 - * @constructor - */ -class WebTemplateAdapter(context: Context, dataList: MutableList) : - BaseAdapter(context, dataList), - PopupTextProvider { - override fun getViewBindingObject( - layoutInflater: LayoutInflater, - parent: ViewGroup, - viewType: Int - ): ItemWebTemplateBinding { - return ItemWebTemplateBinding.inflate(layoutInflater, parent, false) - } - - override fun onBingView( - data: WebTemplatePackageListData.Data, - viewBinding: ItemWebTemplateBinding, - viewHolder: ViewHolder, - position: Int - ) { - viewBinding.titleView.text = data.getName() - viewBinding.describeView.text = data.describe - viewBinding.infoView.text = data.modificationTime - if (data.subscribe){ - viewBinding.button.setText(R.string.de_subscription) - }else{ - viewBinding.button.setText(R.string.subscription) - } - } - - override fun getPopupText(position: Int): String { - return getInitial(dataList[position].getName()).toString() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/databean/CommunityServiceInfo.kt b/app/src/main/java/com/coldmint/rust/pro/databean/CommunityServiceInfo.kt deleted file mode 100644 index f6d1bd2..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/databean/CommunityServiceInfo.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.coldmint.rust.pro.databean - -/** - * @author Cold Mint - * @date 2021/11/29 22:36 - */ -data class CommunityServiceInfo( - val titleRes: Int, - val iconRes: Int -) { -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/databean/ErrorInfo.kt b/app/src/main/java/com/coldmint/rust/pro/databean/ErrorInfo.kt index 8a221e5..5e63683 100644 --- a/app/src/main/java/com/coldmint/rust/pro/databean/ErrorInfo.kt +++ b/app/src/main/java/com/coldmint/rust/pro/databean/ErrorInfo.kt @@ -31,12 +31,11 @@ data class ErrorInfo( * @return String */ fun getLogFile(): File { - if (logFile == null) - { + if (logFile == null) { val filePath = StringBuilder() filePath.append(AppSettings.dataRootDirectory) filePath.append("/carsh/") - val folderFormatter = SimpleDateFormat("yyyy-MM-dd") + val folderFormatter = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()) val folderName = folderFormatter.format(nowTime) filePath.append(folderName) val folder = File(filePath.toString()) @@ -44,7 +43,7 @@ data class ErrorInfo( folder.mkdirs() } filePath.append("/") - val dateFormat = SimpleDateFormat("HH-mm-ss") + val dateFormat = SimpleDateFormat("HH-mm-ss", Locale.getDefault()) val fileName = dateFormat.format(nowTime) filePath.append(fileName) filePath.append(".log") diff --git a/app/src/main/java/com/coldmint/rust/pro/databean/FunctionInfo.kt b/app/src/main/java/com/coldmint/rust/pro/databean/FunctionInfo.kt deleted file mode 100644 index 033ad68..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/databean/FunctionInfo.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.coldmint.rust.pro.databean - -data class FunctionInfo(val name: String, val describe: String? = null, val iconRes: Int? = null) \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/databean/LocaTion.kt b/app/src/main/java/com/coldmint/rust/pro/databean/LocaTion.kt deleted file mode 100644 index 3215d64..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/databean/LocaTion.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.coldmint.rust.pro.databean -data class LocaTion(var i: Int, var p: Int, - var text: List){ - lateinit var listInt : List - - -} - - diff --git a/app/src/main/java/com/coldmint/rust/pro/databean/ThemeInfo.kt b/app/src/main/java/com/coldmint/rust/pro/databean/ThemeInfo.kt deleted file mode 100644 index b0a330f..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/databean/ThemeInfo.kt +++ /dev/null @@ -1,31 +0,0 @@ -package com.coldmint.rust.pro.databean - -class ThemeInfo -/** - * 封装主题信息类 - * - * @param name 名称 - * @param id 主题id - * @param mainColor 主要颜色 - */(val name: String, val id: Int, val mainColor: String) { - private var mDisplaysName: String? = null - /** - * 获取显示名称,若未设置显示名称则返回名称。 - * - * @return - */ - /** - * 设置显示名称 - * - * @param displaysName - */ - var displaysName: String? - get() = if (mDisplaysName == null) { - name - } else { - mDisplaysName - } - set(displaysName) { - mDisplaysName = displaysName - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/databean/UserGroupData.kt b/app/src/main/java/com/coldmint/rust/pro/databean/UserGroupData.kt deleted file mode 100644 index ba4e1d0..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/databean/UserGroupData.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.coldmint.rust.pro.databean - -data class UserGroupData(val iconRes: Int, val titleRes: Int) diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/NetworkTemplateFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/NetworkTemplateFragment.kt deleted file mode 100644 index aaea13c..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/NetworkTemplateFragment.kt +++ /dev/null @@ -1,66 +0,0 @@ -package com.coldmint.rust.pro.fragments - -import android.content.Intent -import android.os.Bundle -import android.view.LayoutInflater -import androidx.recyclerview.widget.LinearLayoutManager -import com.coldmint.rust.core.dataBean.WebTemplatePackageListData -import com.coldmint.rust.core.interfaces.ApiCallBack -import com.coldmint.rust.core.web.TemplatePhp -import com.coldmint.rust.pro.NetworkTemplatePackageDetailsActivity -import com.coldmint.rust.pro.adapters.MyWebTemplateAdapter -import com.coldmint.rust.pro.base.BaseFragment -import com.coldmint.rust.pro.databinding.FragmentNetworkTemplateBinding -import com.coldmint.rust.pro.tool.AppSettings -import com.coldmint.rust.pro.ui.StableLinearLayoutManager - -/** - * 网络模板管理器 - */ -class NetworkTemplateFragment : BaseFragment() { - override fun whenViewCreated(inflater: LayoutInflater, savedInstanceState: Bundle?) { - viewBinding.recyclerView.layoutManager = StableLinearLayoutManager(requireContext()) - loadList() - viewBinding.swipeRefreshLayout.setOnRefreshListener { - loadList() - viewBinding.swipeRefreshLayout.isRefreshing = false - } - } - - fun loadList() { - val token = "" - TemplatePhp.instance.getTemplatePackageList(token, - object : ApiCallBack { - override fun onResponse(t: WebTemplatePackageListData) { - if (t.data != null) { - val adapter = - MyWebTemplateAdapter(requireContext(), t.data) - adapter.setItemEvent { i, itemMyWebTemplateBinding, viewHolder, data -> - itemMyWebTemplateBinding.root.setOnClickListener { - val intent = Intent( - requireContext(), - NetworkTemplatePackageDetailsActivity::class.java - ) - intent.putExtra("id", data.id) - startActivity(intent) - } - } - viewBinding.recyclerView.adapter = adapter - } - } - - override fun onFailure(e: Exception) { - } - - }) - } - - override fun onResume() { - super.onResume() - loadList() - } - - override fun getViewBindingObject(layoutInflater: LayoutInflater): FragmentNetworkTemplateBinding { - return FragmentNetworkTemplateBinding.inflate(layoutInflater) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/TemplateCommunityFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/TemplateCommunityFragment.kt deleted file mode 100644 index b94cd69..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/TemplateCommunityFragment.kt +++ /dev/null @@ -1,159 +0,0 @@ -package com.coldmint.rust.pro.fragments - -import android.content.Intent -import android.os.Bundle -import android.view.LayoutInflater -import android.widget.Toast -import androidx.core.view.isVisible -import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager -import com.coldmint.dialog.CoreDialog -import com.coldmint.rust.core.dataBean.ApiResponse -import com.coldmint.rust.core.dataBean.WebTemplatePackageListData -import com.coldmint.rust.core.interfaces.ApiCallBack -import com.coldmint.rust.core.web.ServerConfiguration -import com.coldmint.rust.core.web.TemplatePhp -import com.coldmint.rust.pro.NetworkTemplatePackageDetailsActivity -import com.coldmint.rust.pro.R -import com.coldmint.rust.pro.adapters.WebTemplateAdapter -import com.coldmint.rust.pro.base.BaseFragment -import com.coldmint.rust.pro.databinding.FragmentTemplateCommunityBinding -import com.coldmint.rust.pro.tool.AppSettings -import com.coldmint.rust.pro.ui.StableLinearLayoutManager -import com.google.android.material.divider.MaterialDividerItemDecoration -import me.zhanghai.android.fastscroll.FastScrollerBuilder - -/** - * 模板社区 - */ -class TemplateCommunityFragment : BaseFragment() { - val token = "" - - override fun whenViewCreated(inflater: LayoutInflater, savedInstanceState: Bundle?) { - val divider = MaterialDividerItemDecoration( - requireContext(), - MaterialDividerItemDecoration.VERTICAL - ) - viewBinding.recyclerView.addItemDecoration( - divider - ) - - viewBinding.recyclerView.layoutManager = StableLinearLayoutManager(requireContext()) - loadData() - viewBinding.swipeRefreshLayout.setOnRefreshListener { - loadData() - viewBinding.swipeRefreshLayout.isRefreshing = false - } - } - - - fun loadData() { - TemplatePhp.instance.getPublicTemplatePackageList(token, object : - ApiCallBack { - override fun onResponse(t: WebTemplatePackageListData) { - if (!isAdded){ - return - } - viewBinding.swipeRefreshLayout.isVisible = true - viewBinding.loadView.isVisible = false - viewBinding.errorLayout.isVisible = false - if (t.data != null) { - val adapter = WebTemplateAdapter(requireContext(), t.data!!) - adapter.setItemEvent { i, itemWebTemplateBinding, viewHolder, data -> - itemWebTemplateBinding.root.setOnClickListener { - val intent = Intent( - requireContext(), - NetworkTemplatePackageDetailsActivity::class.java - ) - intent.putExtra("id", data.id) - intent.putExtra("createDirectory", data.id) - startActivity(intent) - } - itemWebTemplateBinding.button.setOnClickListener { - var subscribe = data.subscribe - if (subscribe) { - CoreDialog(requireContext()).setTitle(R.string.de_subscription) - .setMessage( - String.format( - getString(R.string.de_subscription_msg), - data.getName() - ) - ).setPositiveButton(R.string.dialog_ok) { -//退订 - TemplatePhp.instance.deleteSubscription(token, data.id, - object : ApiCallBack { - override fun onResponse(t: ApiResponse) { - if (t.code == ServerConfiguration.Success_Code) { - itemWebTemplateBinding.button.setText(R.string.subscription) - data.subscribe = false - } else { - Toast.makeText( - requireContext(), - t.message, - Toast.LENGTH_SHORT - ).show() - } - } - - override fun onFailure(e: Exception) { - e.printStackTrace() - Toast.makeText( - requireContext(), - R.string.network_error, - Toast.LENGTH_SHORT - ).show() - } - - }) - }.setNegativeButton(R.string.dialog_cancel) { - - }.setCancelable(false).show() - } else { - TemplatePhp.instance.subscription(token, data.id, - object : ApiCallBack { - override fun onResponse(t: ApiResponse) { - if (t.code == ServerConfiguration.Success_Code) { - itemWebTemplateBinding.button.setText(R.string.de_subscription) - data.subscribe = true - } else { - Toast.makeText( - requireContext(), - t.message, - Toast.LENGTH_SHORT - ).show() - } - } - - override fun onFailure(e: Exception) { - e.printStackTrace() - Toast.makeText( - requireContext(), - R.string.network_error, - Toast.LENGTH_SHORT - ).show() - } - - }) - } - } - } - viewBinding.recyclerView.adapter = adapter - FastScrollerBuilder(viewBinding.recyclerView).useMd2Style() - .setPopupTextProvider(adapter).build() - } - } - - override fun onFailure(e: Exception) { - e.printStackTrace() - viewBinding.loadView.isVisible = false - viewBinding.errorLayout.isVisible = true - viewBinding.swipeRefreshLayout.isVisible = false - } - - }) - } - - override fun getViewBindingObject(layoutInflater: LayoutInflater): FragmentTemplateCommunityBinding { - return FragmentTemplateCommunityBinding.inflate(layoutInflater) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/TemplateFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/TemplateFragment.kt deleted file mode 100644 index 4e2912e..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/TemplateFragment.kt +++ /dev/null @@ -1,53 +0,0 @@ -package com.coldmint.rust.pro.fragments - -import android.content.Intent -import android.os.Bundle -import android.view.LayoutInflater -import com.coldmint.rust.pro.CreationWizardActivity -import com.coldmint.rust.pro.R -import com.coldmint.rust.pro.adapters.TemplatePageAdapter -import com.coldmint.rust.pro.base.BaseFragment -import com.coldmint.rust.pro.databinding.FragmentTemplateBinding -import com.google.android.material.tabs.TabLayoutMediator - -class TemplateFragment : BaseFragment() { - private val adapter: TemplatePageAdapter by lazy { - TemplatePageAdapter(requireActivity()) - } - - override fun whenViewCreated(inflater: LayoutInflater, savedInstanceState: Bundle?) { - viewBinding.viewPager2.adapter = adapter - viewBinding.viewPager2.isSaveEnabled = false - loadTab() - } - - private fun loadTab() { -// val mainActivity = requireActivity() as MainActivity - - TabLayoutMediator(viewBinding.tabLayout, viewBinding.viewPager2) - { tab, position -> - when (position) { - 0 -> { - tab.text = getText(R.string.local) - } - - else -> { - tab.text = getText(R.string.network) - } - } - }.attach() - - viewBinding.mainButton.setOnClickListener { - val intent = Intent(context, CreationWizardActivity::class.java) - intent.putExtra("type", "template") - startActivity(intent) - } - /* } else { - viewBinding.viewPager2.postDelayed({ loadTab() }, MainActivity.linkInterval) - }*/ - } - - override fun getViewBindingObject(layoutInflater: LayoutInflater): FragmentTemplateBinding { - return FragmentTemplateBinding.inflate(layoutInflater) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/interfaces/ThemeItemListener.kt b/app/src/main/java/com/coldmint/rust/pro/interfaces/ThemeItemListener.kt deleted file mode 100644 index 4bb319f..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/interfaces/ThemeItemListener.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.coldmint.rust.pro.interfaces - -import com.coldmint.rust.pro.databean.ThemeInfo - - -interface ThemeItemListener { - /** - * 当选中主题更改 - * - * @param info 主题信息 - */ - fun whenUseTheme(info: ThemeInfo) -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/tool/AppSettings.kt b/app/src/main/java/com/coldmint/rust/pro/tool/AppSettings.kt index 1b21336..03b9642 100644 --- a/app/src/main/java/com/coldmint/rust/pro/tool/AppSettings.kt +++ b/app/src/main/java/com/coldmint/rust/pro/tool/AppSettings.kt @@ -25,8 +25,8 @@ object AppSettings { @JvmField val dataRootDirectory = - Environment.getExternalStorageDirectory().absolutePath + "/rustAssistant" - val Locale_Russia = Locale("RU", "ru", "") + Environment.getExternalStorageDirectory().absolutePath + "/rustAssistantLite" + private val Locale_Russia = Locale("RU", "ru", "") private val mFileName: String by lazy { mApplication.packageName + "_preferences" diff --git a/app/src/main/res/drawable/database.xml b/app/src/main/res/drawable/database.xml deleted file mode 100644 index e178d1e..0000000 --- a/app/src/main/res/drawable/database.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/layout/fragment_network_template.xml b/app/src/main/res/layout/fragment_network_template.xml deleted file mode 100644 index f2144f3..0000000 --- a/app/src/main/res/layout/fragment_network_template.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_template.xml b/app/src/main/res/layout/fragment_template.xml deleted file mode 100644 index bd1d940..0000000 --- a/app/src/main/res/layout/fragment_template.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_template_community.xml b/app/src/main/res/layout/fragment_template_community.xml deleted file mode 100644 index 3d2047f..0000000 --- a/app/src/main/res/layout/fragment_template_community.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_report.xml b/app/src/main/res/layout/item_report.xml deleted file mode 100644 index f928b84..0000000 --- a/app/src/main/res/layout/item_report.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -