Refine code
This commit is contained in:
parent
24e6813bd7
commit
552a9fc09e
8 changed files with 81 additions and 65 deletions
|
|
@ -4,6 +4,10 @@ import android.content.Context
|
|||
import android.os.Build
|
||||
|
||||
object VersionUtils {
|
||||
/**
|
||||
* 获取应用版本号
|
||||
* @return 版本名称(版本代码)
|
||||
*/
|
||||
fun getAppVersion(context: Context): String {
|
||||
val pkgInfo = context.packageManager.getPackageInfo(context.packageName, 0)
|
||||
val verName = pkgInfo.versionName
|
||||
|
|
|
|||
|
|
@ -3,19 +3,22 @@ package cn.super12138.todo.views
|
|||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.WindowManager
|
||||
import androidx.activity.SystemBarStyle
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import cn.super12138.todo.constant.GlobalValues
|
||||
|
||||
open class BaseActivity : AppCompatActivity() {
|
||||
abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
|
||||
lateinit var binding: T
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
/*if (GlobalValues.springFestivalTheme) {
|
||||
setTheme(R.style.Theme_SpringFestival)
|
||||
}*/
|
||||
enableEdgeToEdge()
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = getViewBinding()
|
||||
setContentView(binding.root)
|
||||
|
||||
// 深色模式
|
||||
when (GlobalValues.darkMode) {
|
||||
|
|
@ -34,4 +37,6 @@ open class BaseActivity : AppCompatActivity() {
|
|||
}
|
||||
window.attributes = lp
|
||||
}
|
||||
|
||||
abstract fun getViewBinding(): T
|
||||
}
|
||||
|
|
@ -2,7 +2,6 @@ package cn.super12138.todo.views.about
|
|||
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import cn.super12138.todo.constant.Constants
|
||||
import cn.super12138.todo.databinding.ActivityAboutBinding
|
||||
|
|
@ -10,16 +9,12 @@ import cn.super12138.todo.utils.VersionUtils
|
|||
import cn.super12138.todo.utils.showToast
|
||||
import cn.super12138.todo.views.BaseActivity
|
||||
|
||||
class AboutActivity : BaseActivity() {
|
||||
private lateinit var binding: ActivityAboutBinding
|
||||
class AboutActivity : BaseActivity<ActivityAboutBinding>() {
|
||||
private var clickCount = 0
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
binding = ActivityAboutBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
binding.appVersion.text = VersionUtils.getAppVersion(this)
|
||||
|
||||
binding.toolBar.setNavigationOnClickListener {
|
||||
|
|
@ -54,9 +49,21 @@ class AboutActivity : BaseActivity() {
|
|||
5 -> {
|
||||
clickCount = 0
|
||||
// GlobalValues.springFestivalTheme = !GlobalValues.springFestivalTheme
|
||||
"\uD83C\uDF3C".showToast()
|
||||
"\uD83C\uDF68".showToast()
|
||||
/*when (java.util.Calendar.getInstance(Locale.getDefault())
|
||||
.get(java.util.Calendar.MONTH) + 1) {
|
||||
3, 4, 5 ->
|
||||
6, 7, 8 -> SUMMER
|
||||
9, 10, 11 -> AUTUMN
|
||||
12, 1, 2 -> WINTER
|
||||
else -> -12
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun getViewBinding(): ActivityAboutBinding {
|
||||
return ActivityAboutBinding.inflate(layoutInflater)
|
||||
}
|
||||
}
|
||||
|
|
@ -12,9 +12,8 @@ import cn.super12138.todo.databinding.ActivityAllTasksBinding
|
|||
import cn.super12138.todo.views.BaseActivity
|
||||
import me.zhanghai.android.fastscroll.FastScrollerBuilder
|
||||
|
||||
class AllTasksActivity : BaseActivity() {
|
||||
class AllTasksActivity : BaseActivity<ActivityAllTasksBinding>() {
|
||||
private val viewModel by viewModels<AllTasksViewModel>()
|
||||
private lateinit var binding: ActivityAllTasksBinding
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
|
|
@ -27,9 +26,6 @@ class AllTasksActivity : BaseActivity() {
|
|||
false -> window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
|
||||
}
|
||||
|
||||
binding = ActivityAllTasksBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
val layoutManager = LinearLayoutManager(ToDoApp.context)
|
||||
binding.allTasksList.layoutManager = layoutManager
|
||||
val adapter = AllTasksAdapter(viewModel.todoListAll, supportFragmentManager)
|
||||
|
|
@ -64,4 +60,8 @@ class AllTasksActivity : BaseActivity() {
|
|||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun getViewBinding(): ActivityAllTasksBinding {
|
||||
return ActivityAllTasksBinding.inflate(layoutInflater)
|
||||
}
|
||||
}
|
||||
|
|
@ -14,16 +14,11 @@ import java.text.SimpleDateFormat
|
|||
import java.util.Calendar
|
||||
import java.util.Locale
|
||||
|
||||
class CrashActivity : BaseActivity() {
|
||||
private lateinit var binding: ActivityCrashBinding
|
||||
|
||||
class CrashActivity : BaseActivity<ActivityCrashBinding>() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
enableEdgeToEdge()
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
binding = ActivityCrashBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
ViewCompat.setOnApplyWindowInsetsListener(binding.exitApp) { view, windowInsets ->
|
||||
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
|
||||
view.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
||||
|
|
@ -44,7 +39,8 @@ class CrashActivity : BaseActivity() {
|
|||
val formattedDateTime = formatter.format(currentDateTime)
|
||||
|
||||
val deviceInfo = StringBuilder().apply {
|
||||
append("ToDo version: ").append(VersionUtils.getAppVersion(this@CrashActivity)).append('\n')
|
||||
append("ToDo version: ").append(VersionUtils.getAppVersion(this@CrashActivity))
|
||||
.append('\n')
|
||||
append("Brand: ").append("").append(deviceBrand).append('\n')
|
||||
append("Model: ").append(deviceModel).append('\n')
|
||||
append("Device SDK: ").append(sdkLevel).append('\n').append('\n')
|
||||
|
|
@ -61,4 +57,8 @@ class CrashActivity : BaseActivity() {
|
|||
this.finishAffinity()
|
||||
}
|
||||
}
|
||||
|
||||
override fun getViewBinding(): ActivityCrashBinding {
|
||||
return ActivityCrashBinding.inflate(layoutInflater)
|
||||
}
|
||||
}
|
||||
|
|
@ -10,15 +10,9 @@ import cn.super12138.todo.databinding.ActivityMainBinding
|
|||
import cn.super12138.todo.views.BaseActivity
|
||||
import cn.super12138.todo.views.settings.SettingsActivity
|
||||
|
||||
class MainActivity : BaseActivity() {
|
||||
private lateinit var binding: ActivityMainBinding
|
||||
|
||||
class MainActivity : BaseActivity<ActivityMainBinding>() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
binding = ActivityMainBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
binding.toolBar.setOnMenuItemClickListener { menuItem ->
|
||||
when (menuItem.itemId) {
|
||||
R.id.item_settings -> {
|
||||
|
|
@ -32,20 +26,6 @@ class MainActivity : BaseActivity() {
|
|||
}
|
||||
|
||||
// setSupportActionBar(binding.toolbar)
|
||||
/*val pref = getSharedPreferences("data", Context.MODE_PRIVATE)
|
||||
val isFirstUse = pref.getBoolean("first_use", false)
|
||||
|
||||
if (!isFirstUse) {
|
||||
MaterialAlertDialogBuilder(this)
|
||||
.setTitle("欢迎使用待办")
|
||||
.setMessage("本应用不需要任何权限")
|
||||
.setPositiveButton("确定") { dialog, which ->
|
||||
val editor = getSharedPreferences("data", Context.MODE_PRIVATE).edit()
|
||||
editor.putBoolean("first_use", true)
|
||||
editor.apply()
|
||||
}
|
||||
.show()
|
||||
}*/
|
||||
when (GlobalValues.secureMode) {
|
||||
true -> window.setFlags(
|
||||
WindowManager.LayoutParams.FLAG_SECURE,
|
||||
|
|
@ -55,4 +35,8 @@ class MainActivity : BaseActivity() {
|
|||
false -> window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getViewBinding(): ActivityMainBinding {
|
||||
return ActivityMainBinding.inflate(layoutInflater)
|
||||
}
|
||||
}
|
||||
|
|
@ -31,15 +31,10 @@ import com.google.gson.reflect.TypeToken
|
|||
import kotlinx.coroutines.launch
|
||||
import kotlin.system.exitProcess
|
||||
|
||||
class SettingsActivity : BaseActivity() {
|
||||
private lateinit var binding: ActivitySettingsBinding
|
||||
|
||||
class SettingsActivity : BaseActivity<ActivitySettingsBinding>() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
binding = ActivitySettingsBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
supportFragmentManager
|
||||
.beginTransaction()
|
||||
|
|
@ -53,6 +48,10 @@ class SettingsActivity : BaseActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
override fun getViewBinding(): ActivitySettingsBinding {
|
||||
return ActivitySettingsBinding.inflate(layoutInflater)
|
||||
}
|
||||
|
||||
class SettingsFragment : PreferenceFragmentCompat() {
|
||||
private lateinit var backupBinding: DialogBackupBinding
|
||||
private lateinit var restoreBinding: DialogRestoreBinding
|
||||
|
|
|
|||
|
|
@ -4,27 +4,45 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context=".views.crash.CrashActivity">
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="wrap_content"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<com.google.android.material.appbar.CollapsingToolbarLayout
|
||||
android:id="@+id/tool_bar"
|
||||
style="?attr/collapsingToolbarLayoutLargeStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/collapsingToolbarLayoutLargeSize"
|
||||
app:collapsedTitleTextAppearance="?textAppearanceTitleLarge"
|
||||
app:expandedTitleTextAppearance="?textAppearanceHeadlineLarge"
|
||||
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
|
||||
app:titleCollapseMode="scale">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/top_app_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:elevation="0dp"
|
||||
app:layout_collapseMode="pin"
|
||||
app:title="@string/error_title" />
|
||||
|
||||
</com.google.android.material.appbar.CollapsingToolbarLayout>
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<me.zhanghai.android.fastscroll.FastScrollNestedScrollView
|
||||
android:id="@+id/nested_scroll_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="16dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginTop="40dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:text="@string/error_title"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="35sp" />
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
|
|
@ -46,7 +64,7 @@
|
|||
android:textIsSelectable="true"
|
||||
android:textSize="13sp" />
|
||||
</LinearLayout>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
</me.zhanghai.android.fastscroll.FastScrollNestedScrollView>
|
||||
|
||||
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
|
||||
android:id="@+id/exit_app"
|
||||
|
|
@ -56,5 +74,4 @@
|
|||
android:layout_margin="16dp"
|
||||
android:text="@string/exit_app"
|
||||
app:icon="@drawable/ic_exit" />
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
Loading…
Reference in a new issue