Uses fragments instead of activities
This commit is contained in:
parent
33532fe75a
commit
7954ea4a4f
44 changed files with 619 additions and 576 deletions
|
|
@ -17,41 +17,19 @@
|
|||
tools:targetApi="35">
|
||||
|
||||
<activity
|
||||
android:name=".views.main.MainActivity"
|
||||
android:name=".views.activities.MainActivity"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTask">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<action android:name="android.intent.action.APPLICATION_PREFERENCES" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".views.settings.SettingsActivity"
|
||||
android:exported="false"
|
||||
android:label="@string/settings_label"
|
||||
android:launchMode="singleTask">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.APPLICATION_PREFERENCES" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".views.all.AllTasksActivity"
|
||||
android:exported="false"
|
||||
android:label="@string/all_tasks_label"
|
||||
android:launchMode="singleTask" />
|
||||
<activity
|
||||
android:name=".views.about.AboutActivity"
|
||||
android:exported="false"
|
||||
android:label="@string/about_label"
|
||||
android:launchMode="singleTask" />
|
||||
<activity
|
||||
android:name=".views.welcome.WelcomeActivity"
|
||||
android:exported="false"
|
||||
android:label="@string/welcome_label"
|
||||
android:launchMode="singleTask" />
|
||||
<activity
|
||||
android:name=".views.crash.CrashActivity"
|
||||
android:name=".views.activities.CrashActivity"
|
||||
android:exported="false" />
|
||||
</application>
|
||||
|
||||
|
|
|
|||
|
|
@ -3,11 +3,8 @@ package cn.super12138.todo
|
|||
import android.annotation.SuppressLint
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import cn.super12138.todo.constant.GlobalValues
|
||||
import cn.super12138.todo.logic.dao.ToDoRoomDB
|
||||
import cn.super12138.todo.views.crash.CrashHandler
|
||||
import cn.super12138.todo.views.welcome.WelcomeActivity
|
||||
import cn.super12138.todo.views.activities.CrashHandler
|
||||
import com.google.android.material.color.DynamicColors
|
||||
|
||||
class ToDoApp : Application() {
|
||||
|
|
@ -28,12 +25,5 @@ class ToDoApp : Application() {
|
|||
Thread.setDefaultUncaughtExceptionHandler(crashHandler)
|
||||
|
||||
db = database
|
||||
|
||||
if (!GlobalValues.welcomePage) {
|
||||
val intent = Intent(this, WelcomeActivity::class.java).apply {
|
||||
flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
}
|
||||
startActivity(intent)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -5,7 +5,6 @@ import android.os.Bundle
|
|||
import android.view.WindowManager
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.core.view.WindowCompat
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import cn.super12138.todo.constant.GlobalValues
|
||||
|
||||
|
|
@ -19,7 +18,7 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
|
|||
super.onCreate(savedInstanceState)
|
||||
|
||||
// 确保 Navigation Bar 区域会被显示
|
||||
WindowCompat.setDecorFitsSystemWindows(window, false)
|
||||
// WindowCompat.setDecorFitsSystemWindows(window, false)
|
||||
|
||||
binding = getViewBinding()
|
||||
setContentView(binding.root)
|
||||
|
|
|
|||
|
|
@ -1,12 +1,18 @@
|
|||
package cn.super12138.todo.views.welcome.pages
|
||||
package cn.super12138.todo.views
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import com.google.android.material.color.MaterialColors
|
||||
import com.google.android.material.transition.MaterialSharedAxis
|
||||
|
||||
open class BasePage : Fragment() {
|
||||
abstract class BaseFragment<T : ViewBinding> : Fragment() {
|
||||
private var _binding: T? = null
|
||||
protected val binding get() = _binding!!
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
enterTransition = MaterialSharedAxis(MaterialSharedAxis.X, /* forward= */ true)
|
||||
|
|
@ -15,10 +21,30 @@ open class BasePage : Fragment() {
|
|||
reenterTransition = MaterialSharedAxis(MaterialSharedAxis.X, /* forward= */ false)
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
_binding = getViewBinding(inflater, container, false)
|
||||
return binding.root
|
||||
}
|
||||
|
||||
// https://github.com/material-components/material-components-android/issues/1984#issuecomment-1089710991
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
// Overlap colors.
|
||||
view.setBackgroundColor(MaterialColors.getColor(view, android.R.attr.colorBackground))
|
||||
}
|
||||
|
||||
abstract fun getViewBinding(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
attachToRoot: Boolean
|
||||
): T
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cn.super12138.todo.views.crash
|
||||
package cn.super12138.todo.views.activities
|
||||
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cn.super12138.todo.views.crash
|
||||
package cn.super12138.todo.views.activities
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package cn.super12138.todo.views.activities
|
||||
// 2023.11.18立项
|
||||
import android.app.ComponentCaller
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.view.WindowManager
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.commit
|
||||
import cn.super12138.todo.R
|
||||
import cn.super12138.todo.constant.GlobalValues
|
||||
import cn.super12138.todo.databinding.ActivityMainBinding
|
||||
import cn.super12138.todo.views.BaseActivity
|
||||
import cn.super12138.todo.views.fragments.SettingsParentFragment
|
||||
import cn.super12138.todo.views.fragments.welcome.WelcomeFragment
|
||||
|
||||
class MainActivity : BaseActivity<ActivityMainBinding>() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
if (!GlobalValues.welcomePage) {
|
||||
startFragment(WelcomeFragment())
|
||||
}
|
||||
|
||||
when (GlobalValues.secureMode) {
|
||||
true -> window.setFlags(
|
||||
WindowManager.LayoutParams.FLAG_SECURE,
|
||||
WindowManager.LayoutParams.FLAG_SECURE
|
||||
)
|
||||
|
||||
false -> window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
|
||||
}
|
||||
handleIntent(intent)
|
||||
}
|
||||
|
||||
override fun onNewIntent(intent: Intent, caller: ComponentCaller) {
|
||||
super.onNewIntent(intent, caller)
|
||||
handleIntent(intent)
|
||||
}
|
||||
|
||||
override fun getViewBinding(): ActivityMainBinding {
|
||||
return ActivityMainBinding.inflate(layoutInflater)
|
||||
}
|
||||
|
||||
fun startFragment(fragment: Fragment, args: (Bundle.() -> Unit)? = null) {
|
||||
supportFragmentManager.commit {
|
||||
addToBackStack(System.currentTimeMillis().toString())
|
||||
hide(supportFragmentManager.fragments.last())
|
||||
add(
|
||||
R.id.app_container,
|
||||
fragment.apply { args?.let { arguments = Bundle().apply(it) } }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleIntent(intent: Intent) {
|
||||
when (intent.action) {
|
||||
Intent.ACTION_APPLICATION_PREFERENCES -> startFragment(SettingsParentFragment())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cn.super12138.todo.views.all
|
||||
package cn.super12138.todo.views.adapters
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
|
|
@ -15,7 +15,7 @@ import cn.super12138.todo.constant.Constants.DEFAULT_VIEW_TYPE
|
|||
import cn.super12138.todo.constant.Constants.EMPTY_VIEW_TYPE
|
||||
import cn.super12138.todo.logic.model.ToDo
|
||||
import cn.super12138.todo.utils.VibrationUtils
|
||||
import cn.super12138.todo.views.todo.ToDoAdapter.DefaultViewHolder
|
||||
import cn.super12138.todo.views.fragments.InfoBottomSheet
|
||||
|
||||
class AllTasksAdapter(
|
||||
private val todoList: MutableList<ToDo>,
|
||||
|
|
@ -61,6 +61,8 @@ class AllTasksAdapter(
|
|||
if (todo.state == 1) {
|
||||
holder.itemBackground.background =
|
||||
ContextCompat.getDrawable(ToDoApp.context, R.drawable.bg_item_complete)
|
||||
} else {
|
||||
holder.itemBackground.background = null
|
||||
}
|
||||
|
||||
holder.itemView.setOnClickListener {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cn.super12138.todo.views.todo
|
||||
package cn.super12138.todo.views.adapters
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
|
|
@ -16,8 +16,9 @@ import cn.super12138.todo.constant.GlobalValues
|
|||
import cn.super12138.todo.logic.model.ToDo
|
||||
import cn.super12138.todo.utils.VibrationUtils
|
||||
import cn.super12138.todo.utils.showToast
|
||||
import cn.super12138.todo.views.bottomsheet.ToDoBottomSheet
|
||||
import cn.super12138.todo.views.progress.ProgressViewModel
|
||||
import cn.super12138.todo.views.fragments.ToDoBottomSheet
|
||||
import cn.super12138.todo.views.viewmodels.ProgressViewModel
|
||||
import cn.super12138.todo.views.viewmodels.ToDoViewModel
|
||||
|
||||
class ToDoAdapter(
|
||||
private val todoList: MutableList<ToDo>,
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
package cn.super12138.todo.views.all
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.WindowManager
|
||||
import androidx.activity.viewModels
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import cn.super12138.todo.ToDoApp
|
||||
import cn.super12138.todo.constant.GlobalValues
|
||||
import cn.super12138.todo.databinding.ActivityAllTasksBinding
|
||||
import cn.super12138.todo.utils.VibrationUtils
|
||||
import cn.super12138.todo.views.BaseActivity
|
||||
import me.zhanghai.android.fastscroll.FastScrollerBuilder
|
||||
|
||||
class AllTasksActivity : BaseActivity<ActivityAllTasksBinding>() {
|
||||
private val viewModel by viewModels<AllTasksViewModel>()
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
when (GlobalValues.secureMode) {
|
||||
true -> window.setFlags(
|
||||
WindowManager.LayoutParams.FLAG_SECURE,
|
||||
WindowManager.LayoutParams.FLAG_SECURE
|
||||
)
|
||||
|
||||
false -> window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
|
||||
}
|
||||
|
||||
val todoListAll = viewModel.todoListAll
|
||||
val layoutManager = LinearLayoutManager(ToDoApp.context)
|
||||
binding.allTasksList.layoutManager = layoutManager
|
||||
val adapter = AllTasksAdapter(todoListAll, supportFragmentManager)
|
||||
binding.allTasksList.adapter = adapter
|
||||
|
||||
FastScrollerBuilder(binding.allTasksList).apply {
|
||||
useMd2Style()
|
||||
build()
|
||||
}
|
||||
|
||||
binding.toolBar.setNavigationOnClickListener {
|
||||
VibrationUtils.performHapticFeedback(it)
|
||||
|
||||
finish()
|
||||
}
|
||||
|
||||
viewModel.refreshData.observe(this, Observer {
|
||||
binding.allTasksList.adapter?.notifyItemRangeChanged(0, todoListAll.size + 1)
|
||||
})
|
||||
}
|
||||
|
||||
override fun getViewBinding(): ActivityAllTasksBinding {
|
||||
return ActivityAllTasksBinding.inflate(layoutInflater)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,27 +1,30 @@
|
|||
package cn.super12138.todo.views.about
|
||||
package cn.super12138.todo.views.fragments
|
||||
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import cn.super12138.todo.constant.Constants
|
||||
import cn.super12138.todo.databinding.ActivityAboutBinding
|
||||
import cn.super12138.todo.databinding.FragmentAboutBinding
|
||||
import cn.super12138.todo.utils.VersionUtils
|
||||
import cn.super12138.todo.utils.VibrationUtils
|
||||
import cn.super12138.todo.utils.showToast
|
||||
import cn.super12138.todo.views.BaseActivity
|
||||
import cn.super12138.todo.views.BaseFragment
|
||||
|
||||
class AboutActivity : BaseActivity<ActivityAboutBinding>() {
|
||||
class AboutFragment : BaseFragment<FragmentAboutBinding>() {
|
||||
private var clickCount = 0
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
binding.appVersion.text = VersionUtils.getAppVersion(this)
|
||||
binding.appVersion.text = VersionUtils.getAppVersion(requireActivity())
|
||||
|
||||
binding.toolBar.setNavigationOnClickListener {
|
||||
VibrationUtils.performHapticFeedback(it)
|
||||
|
||||
finish()
|
||||
requireActivity().supportFragmentManager.popBackStack()
|
||||
}
|
||||
|
||||
binding.checkUpdate.setOnClickListener {
|
||||
|
|
@ -58,7 +61,7 @@ class AboutActivity : BaseActivity<ActivityAboutBinding>() {
|
|||
5 -> {
|
||||
clickCount = 0
|
||||
// GlobalValues.springFestivalTheme = !GlobalValues.springFestivalTheme
|
||||
"\uD83C\uDF68".showToast()
|
||||
"🍂".showToast()
|
||||
/*when (java.util.Calendar.getInstance(Locale.getDefault())
|
||||
.get(java.util.Calendar.MONTH) + 1) {
|
||||
3, 4, 5 ->
|
||||
|
|
@ -72,7 +75,11 @@ class AboutActivity : BaseActivity<ActivityAboutBinding>() {
|
|||
}
|
||||
}
|
||||
|
||||
override fun getViewBinding(): ActivityAboutBinding {
|
||||
return ActivityAboutBinding.inflate(layoutInflater)
|
||||
override fun getViewBinding(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
attachToRoot: Boolean
|
||||
): FragmentAboutBinding {
|
||||
return FragmentAboutBinding.inflate(inflater, container, attachToRoot)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
package cn.super12138.todo.views.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import cn.super12138.todo.ToDoApp
|
||||
import cn.super12138.todo.databinding.FragmentAllTasksBinding
|
||||
import cn.super12138.todo.utils.VibrationUtils
|
||||
import cn.super12138.todo.views.BaseFragment
|
||||
import cn.super12138.todo.views.adapters.AllTasksAdapter
|
||||
import cn.super12138.todo.views.viewmodels.AllTasksViewModel
|
||||
import me.zhanghai.android.fastscroll.FastScrollerBuilder
|
||||
|
||||
class AllTasksFragment : BaseFragment<FragmentAllTasksBinding>() {
|
||||
private val viewModel by viewModels<AllTasksViewModel>()
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
val todoListAll = viewModel.todoListAll
|
||||
val layoutManager = LinearLayoutManager(ToDoApp.context)
|
||||
binding.allTasksList.layoutManager = layoutManager
|
||||
val adapter = AllTasksAdapter(todoListAll, childFragmentManager)
|
||||
binding.allTasksList.adapter = adapter
|
||||
|
||||
FastScrollerBuilder(binding.allTasksList).apply {
|
||||
useMd2Style()
|
||||
build()
|
||||
}
|
||||
|
||||
binding.toolBar.setNavigationOnClickListener {
|
||||
VibrationUtils.performHapticFeedback(it)
|
||||
|
||||
requireActivity().supportFragmentManager.popBackStack()
|
||||
}
|
||||
|
||||
viewModel.refreshData.observe(viewLifecycleOwner, Observer {
|
||||
binding.allTasksList.adapter?.notifyItemRangeChanged(0, todoListAll.size + 1)
|
||||
})
|
||||
}
|
||||
|
||||
override fun getViewBinding(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
attachToRoot: Boolean
|
||||
): FragmentAllTasksBinding {
|
||||
return FragmentAllTasksBinding.inflate(inflater, container, attachToRoot)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cn.super12138.todo.views.all
|
||||
package cn.super12138.todo.views.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
package cn.super12138.todo.views.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import cn.super12138.todo.R
|
||||
import cn.super12138.todo.databinding.FragmentMainBinding
|
||||
import cn.super12138.todo.utils.VibrationUtils
|
||||
import cn.super12138.todo.views.BaseFragment
|
||||
import cn.super12138.todo.views.activities.MainActivity
|
||||
|
||||
class MainFragment : BaseFragment<FragmentMainBinding>() {
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
binding.toolBar.setOnMenuItemClickListener { menuItem ->
|
||||
when (menuItem.itemId) {
|
||||
R.id.item_settings -> {
|
||||
(requireActivity() as MainActivity).startFragment(SettingsParentFragment())
|
||||
|
||||
VibrationUtils.performHapticFeedback(binding.toolBar)
|
||||
|
||||
true
|
||||
}
|
||||
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
// setSupportActionBar(binding.toolbar)
|
||||
}
|
||||
|
||||
override fun getViewBinding(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
attachToRoot: Boolean
|
||||
): FragmentMainBinding {
|
||||
return FragmentMainBinding.inflate(inflater, container, attachToRoot)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,29 +1,19 @@
|
|||
package cn.super12138.todo.views.progress
|
||||
package cn.super12138.todo.views.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.lifecycle.Observer
|
||||
import cn.super12138.todo.R
|
||||
import cn.super12138.todo.databinding.FragmentProgressBinding
|
||||
import cn.super12138.todo.views.BaseFragment
|
||||
import cn.super12138.todo.views.viewmodels.ProgressViewModel
|
||||
|
||||
|
||||
class ProgressFragment : Fragment() {
|
||||
class ProgressFragment : BaseFragment<FragmentProgressBinding>() {
|
||||
private val viewModel: ProgressViewModel by viewModels({ requireActivity() })
|
||||
private lateinit var binding: FragmentProgressBinding
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
binding = FragmentProgressBinding.inflate(inflater, container, false)
|
||||
|
||||
return binding.root
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
|
@ -51,4 +41,12 @@ class ProgressFragment : Fragment() {
|
|||
|
||||
viewModel.updateProgress()
|
||||
}
|
||||
|
||||
override fun getViewBinding(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
attachToRoot: Boolean
|
||||
): FragmentProgressBinding {
|
||||
return FragmentProgressBinding.inflate(inflater, container, attachToRoot)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cn.super12138.todo.views.settings
|
||||
package cn.super12138.todo.views.fragments
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
|
|
@ -21,10 +21,8 @@ import cn.super12138.todo.databinding.DialogRestoreBinding
|
|||
import cn.super12138.todo.logic.Repository
|
||||
import cn.super12138.todo.logic.dao.ToDoRoom
|
||||
import cn.super12138.todo.utils.VibrationUtils
|
||||
import cn.super12138.todo.views.about.AboutActivity
|
||||
import cn.super12138.todo.views.all.AllTasksActivity
|
||||
import cn.super12138.todo.views.main.MainActivity
|
||||
import cn.super12138.todo.views.welcome.WelcomeActivity
|
||||
import cn.super12138.todo.views.activities.MainActivity
|
||||
import cn.super12138.todo.views.fragments.welcome.WelcomeFragment
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.google.gson.Gson
|
||||
|
|
@ -39,6 +37,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.preferences, rootKey)
|
||||
val mainActivity = requireActivity() as MainActivity
|
||||
val gson = Gson()
|
||||
|
||||
findPreference<ListPreference>(Constants.PREF_DARK_MODE)?.apply {
|
||||
|
|
@ -173,15 +172,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||
|
||||
findPreference<Preference>(Constants.PREF_ALL_TASKS)?.apply {
|
||||
setOnPreferenceClickListener {
|
||||
startActivity(Intent(context, AllTasksActivity::class.java))
|
||||
VibrationUtils.performHapticFeedback(view)
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
findPreference<Preference>(Constants.PREF_ABOUT)?.apply {
|
||||
setOnPreferenceClickListener {
|
||||
startActivity(Intent(context, AboutActivity::class.java))
|
||||
mainActivity.startFragment(AllTasksFragment())
|
||||
VibrationUtils.performHapticFeedback(view)
|
||||
true
|
||||
}
|
||||
|
|
@ -189,10 +180,15 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||
|
||||
findPreference<Preference>(Constants.PREF_REENTER_WELCOME_ACTIVITY)?.apply {
|
||||
setOnPreferenceClickListener {
|
||||
val intent = Intent(context, WelcomeActivity::class.java).apply {
|
||||
flags = Intent.FLAG_ACTIVITY_CLEAR_TOP
|
||||
}
|
||||
startActivity(intent)
|
||||
mainActivity.startFragment(WelcomeFragment())
|
||||
VibrationUtils.performHapticFeedback(view)
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
findPreference<Preference>(Constants.PREF_ABOUT)?.apply {
|
||||
setOnPreferenceClickListener {
|
||||
mainActivity.startFragment(AboutFragment())
|
||||
VibrationUtils.performHapticFeedback(view)
|
||||
true
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package cn.super12138.todo.views.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import cn.super12138.todo.databinding.FragmentSettingsBinding
|
||||
import cn.super12138.todo.utils.VibrationUtils
|
||||
import cn.super12138.todo.views.BaseFragment
|
||||
|
||||
class SettingsParentFragment : BaseFragment<FragmentSettingsBinding>() {
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
binding.toolBar.setNavigationOnClickListener {
|
||||
VibrationUtils.performHapticFeedback(it)
|
||||
|
||||
requireActivity().supportFragmentManager.popBackStack()
|
||||
}
|
||||
}
|
||||
|
||||
override fun getViewBinding(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
attachToRoot: Boolean
|
||||
): FragmentSettingsBinding {
|
||||
return FragmentSettingsBinding.inflate(inflater, container, attachToRoot)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cn.super12138.todo.views.bottomsheet
|
||||
package cn.super12138.todo.views.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
|
|
@ -15,8 +15,8 @@ import cn.super12138.todo.utils.TextUtils
|
|||
import cn.super12138.todo.utils.VibrationUtils
|
||||
import cn.super12138.todo.utils.showToast
|
||||
import cn.super12138.todo.utils.toEditable
|
||||
import cn.super12138.todo.views.progress.ProgressViewModel
|
||||
import cn.super12138.todo.views.todo.ToDoViewModel
|
||||
import cn.super12138.todo.views.viewmodels.ProgressViewModel
|
||||
import cn.super12138.todo.views.viewmodels.ToDoViewModel
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cn.super12138.todo.views.todo
|
||||
package cn.super12138.todo.views.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
|
|
@ -18,8 +18,9 @@ import cn.super12138.todo.ToDoApp
|
|||
import cn.super12138.todo.databinding.FragmentTodoBinding
|
||||
import cn.super12138.todo.logic.Repository
|
||||
import cn.super12138.todo.utils.VibrationUtils
|
||||
import cn.super12138.todo.views.bottomsheet.ToDoBottomSheet
|
||||
import cn.super12138.todo.views.progress.ProgressViewModel
|
||||
import cn.super12138.todo.views.adapters.ToDoAdapter
|
||||
import cn.super12138.todo.views.viewmodels.ProgressViewModel
|
||||
import cn.super12138.todo.views.viewmodels.ToDoViewModel
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import kotlinx.coroutines.launch
|
||||
import me.zhanghai.android.fastscroll.FastScrollerBuilder
|
||||
|
|
@ -1,33 +1,37 @@
|
|||
package cn.super12138.todo.views.welcome
|
||||
package cn.super12138.todo.views.fragments.welcome
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.activity.viewModels
|
||||
import androidx.appcompat.content.res.AppCompatResources
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.commit
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import cn.super12138.todo.R
|
||||
import cn.super12138.todo.constant.GlobalValues
|
||||
import cn.super12138.todo.databinding.ActivityWelcomeBinding
|
||||
import cn.super12138.todo.databinding.FragmentWelcomeBinding
|
||||
import cn.super12138.todo.utils.VibrationUtils
|
||||
import cn.super12138.todo.utils.setOnIntervalClickListener
|
||||
import cn.super12138.todo.views.BaseActivity
|
||||
import cn.super12138.todo.views.main.MainActivity
|
||||
import cn.super12138.todo.views.welcome.pages.IntroPage
|
||||
import cn.super12138.todo.views.welcome.pages.ProgressPage
|
||||
import cn.super12138.todo.views.welcome.pages.ToDoBtnPage
|
||||
import cn.super12138.todo.views.welcome.pages.ToDoItemPage
|
||||
import cn.super12138.todo.views.BaseFragment
|
||||
import cn.super12138.todo.views.activities.MainActivity
|
||||
import cn.super12138.todo.views.fragments.MainFragment
|
||||
import cn.super12138.todo.views.fragments.welcome.pages.IntroPage
|
||||
import cn.super12138.todo.views.fragments.welcome.pages.ProgressPage
|
||||
import cn.super12138.todo.views.fragments.welcome.pages.ToDoBtnPage
|
||||
import cn.super12138.todo.views.fragments.welcome.pages.ToDoItemPage
|
||||
import cn.super12138.todo.views.viewmodels.WelcomeViewModel
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
|
||||
class WelcomeFragment : BaseFragment<FragmentWelcomeBinding>() {
|
||||
private val viewModel by viewModels<WelcomeViewModel>()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
val previousBtn = binding.previousBtn
|
||||
val nextBtn = binding.nextBtn
|
||||
|
|
@ -35,6 +39,19 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
|
|||
|
||||
val currentPage = viewModel.currentPage // 0: Intro 1: Progress 2: ToDo Btn 3: ToDo Item
|
||||
|
||||
// 返回回调
|
||||
val callback = object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
if (currentPage.value == 0) {
|
||||
requireActivity().finishAffinity()
|
||||
} else {
|
||||
childFragmentManager.popBackStack()
|
||||
viewModel.decreasePage()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
centerBtn.setOnIntervalClickListener {
|
||||
VibrationUtils.performHapticFeedback(it)
|
||||
|
||||
|
|
@ -44,9 +61,7 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
|
|||
|
||||
if (currentPage.value == 3) {
|
||||
GlobalValues.welcomePage = true
|
||||
finish()
|
||||
val intent = Intent(this, MainActivity::class.java)
|
||||
startActivity(intent)
|
||||
(requireActivity() as MainActivity).startFragment(MainFragment())
|
||||
} else {
|
||||
viewModel.setCurrentPage(1)
|
||||
nextPage(1)
|
||||
|
|
@ -56,7 +71,7 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
|
|||
previousBtn.setOnIntervalClickListener {
|
||||
VibrationUtils.performHapticFeedback(it)
|
||||
|
||||
supportFragmentManager.popBackStack()
|
||||
childFragmentManager.popBackStack()
|
||||
|
||||
viewModel.decreasePage()
|
||||
}
|
||||
|
|
@ -66,6 +81,7 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
|
|||
|
||||
nextPage(currentPage.value + 1)
|
||||
|
||||
callback.isEnabled = false
|
||||
viewModel.increasePage()
|
||||
}
|
||||
|
||||
|
|
@ -77,7 +93,7 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
|
|||
centerBtn.apply {
|
||||
text = getString(R.string.start)
|
||||
icon = AppCompatResources.getDrawable(
|
||||
this@WelcomeActivity,
|
||||
requireContext(),
|
||||
R.drawable.ic_arrow_forward
|
||||
)
|
||||
show()
|
||||
|
|
@ -96,7 +112,7 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
|
|||
centerBtn.apply {
|
||||
text = getString(R.string.enter_app)
|
||||
icon = AppCompatResources.getDrawable(
|
||||
this@WelcomeActivity,
|
||||
requireContext(),
|
||||
R.drawable.ic_focus
|
||||
)
|
||||
show()
|
||||
|
|
@ -114,21 +130,7 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
if (currentPage.value == 0) {
|
||||
finish()
|
||||
} else {
|
||||
supportFragmentManager.popBackStack()
|
||||
viewModel.decreasePage()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun getViewBinding(): ActivityWelcomeBinding {
|
||||
return ActivityWelcomeBinding.inflate(layoutInflater)
|
||||
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback)
|
||||
}
|
||||
|
||||
private fun getCurrentPage(pageIndex: Int): Fragment {
|
||||
|
|
@ -142,10 +144,18 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
|
|||
}
|
||||
|
||||
private fun nextPage(page: Int) {
|
||||
supportFragmentManager.commit {
|
||||
childFragmentManager.commit {
|
||||
addToBackStack(System.currentTimeMillis().toString())
|
||||
hide(supportFragmentManager.fragments.last())
|
||||
hide(childFragmentManager.fragments.last())
|
||||
add(R.id.welcome_page_container, getCurrentPage(page))
|
||||
}
|
||||
}
|
||||
|
||||
override fun getViewBinding(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
attachToRoot: Boolean
|
||||
): FragmentWelcomeBinding {
|
||||
return FragmentWelcomeBinding.inflate(inflater, container, attachToRoot)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package cn.super12138.todo.views.fragments.welcome.pages
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import cn.super12138.todo.databinding.FragmentWelcomeIntroBinding
|
||||
import cn.super12138.todo.views.BaseFragment
|
||||
|
||||
class IntroPage : BaseFragment<FragmentWelcomeIntroBinding>() {
|
||||
override fun getViewBinding(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
attachToRoot: Boolean
|
||||
): FragmentWelcomeIntroBinding {
|
||||
return FragmentWelcomeIntroBinding.inflate(inflater, container, attachToRoot)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package cn.super12138.todo.views.fragments.welcome.pages
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import cn.super12138.todo.databinding.FragmentWelcomeProgressBinding
|
||||
import cn.super12138.todo.views.BaseFragment
|
||||
|
||||
class ProgressPage : BaseFragment<FragmentWelcomeProgressBinding>() {
|
||||
override fun getViewBinding(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
attachToRoot: Boolean
|
||||
): FragmentWelcomeProgressBinding {
|
||||
return FragmentWelcomeProgressBinding.inflate(inflater, container, attachToRoot)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cn.super12138.todo.views.welcome.pages
|
||||
package cn.super12138.todo.views.fragments.welcome.pages
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
|
|
@ -6,18 +6,15 @@ import android.view.View
|
|||
import android.view.ViewGroup
|
||||
import cn.super12138.todo.databinding.FragmentWelcomeTodoBtnBinding
|
||||
import cn.super12138.todo.utils.VibrationUtils
|
||||
import cn.super12138.todo.views.BaseFragment
|
||||
|
||||
class ToDoBtnPage : BasePage() {
|
||||
private lateinit var binding: FragmentWelcomeTodoBtnBinding
|
||||
|
||||
override fun onCreateView(
|
||||
class ToDoBtnPage : BaseFragment<FragmentWelcomeTodoBtnBinding>() {
|
||||
override fun getViewBinding(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
binding = FragmentWelcomeTodoBtnBinding.inflate(inflater, container, false)
|
||||
|
||||
return binding.root
|
||||
attachToRoot: Boolean
|
||||
): FragmentWelcomeTodoBtnBinding {
|
||||
return FragmentWelcomeTodoBtnBinding.inflate(inflater, container, attachToRoot)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cn.super12138.todo.views.welcome.pages
|
||||
package cn.super12138.todo.views.fragments.welcome.pages
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
|
|
@ -6,18 +6,15 @@ import android.view.View
|
|||
import android.view.ViewGroup
|
||||
import cn.super12138.todo.databinding.FragmentWelcomeTodoItemBinding
|
||||
import cn.super12138.todo.utils.VibrationUtils
|
||||
import cn.super12138.todo.views.BaseFragment
|
||||
|
||||
class ToDoItemPage : BasePage() {
|
||||
private lateinit var binding: FragmentWelcomeTodoItemBinding
|
||||
|
||||
override fun onCreateView(
|
||||
class ToDoItemPage : BaseFragment<FragmentWelcomeTodoItemBinding>() {
|
||||
override fun getViewBinding(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
binding = FragmentWelcomeTodoItemBinding.inflate(inflater, container, false)
|
||||
|
||||
return binding.root
|
||||
attachToRoot: Boolean
|
||||
): FragmentWelcomeTodoItemBinding {
|
||||
return FragmentWelcomeTodoItemBinding.inflate(inflater, container, attachToRoot)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
package cn.super12138.todo.views.main
|
||||
// 2023.11.18立项
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.view.WindowManager
|
||||
import cn.super12138.todo.R
|
||||
import cn.super12138.todo.constant.GlobalValues
|
||||
import cn.super12138.todo.databinding.ActivityMainBinding
|
||||
import cn.super12138.todo.utils.VibrationUtils
|
||||
import cn.super12138.todo.views.BaseActivity
|
||||
import cn.super12138.todo.views.settings.SettingsActivity
|
||||
import cn.super12138.todo.views.welcome.WelcomeActivity
|
||||
|
||||
class MainActivity : BaseActivity<ActivityMainBinding>() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
if(!GlobalValues.welcomePage) finish()
|
||||
|
||||
binding.toolBar.setOnMenuItemClickListener { menuItem ->
|
||||
when (menuItem.itemId) {
|
||||
R.id.item_settings -> {
|
||||
val intent = Intent(this@MainActivity, SettingsActivity::class.java)
|
||||
startActivity(intent)
|
||||
|
||||
VibrationUtils.performHapticFeedback(binding.toolBar)
|
||||
|
||||
true
|
||||
}
|
||||
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
// setSupportActionBar(binding.toolbar)
|
||||
when (GlobalValues.secureMode) {
|
||||
true -> window.setFlags(
|
||||
WindowManager.LayoutParams.FLAG_SECURE,
|
||||
WindowManager.LayoutParams.FLAG_SECURE
|
||||
)
|
||||
|
||||
false -> window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
|
||||
}
|
||||
if (!GlobalValues.welcomePage) {
|
||||
val intent = Intent(this, WelcomeActivity::class.java)
|
||||
startActivity(intent)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getViewBinding(): ActivityMainBinding {
|
||||
return ActivityMainBinding.inflate(layoutInflater)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
package cn.super12138.todo.views.settings
|
||||
|
||||
import android.os.Bundle
|
||||
import cn.super12138.todo.R
|
||||
import cn.super12138.todo.databinding.ActivitySettingsBinding
|
||||
import cn.super12138.todo.utils.VibrationUtils
|
||||
import cn.super12138.todo.views.BaseActivity
|
||||
|
||||
class SettingsActivity : BaseActivity<ActivitySettingsBinding>() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
supportFragmentManager
|
||||
.beginTransaction()
|
||||
.replace(R.id.settings_frame, SettingsFragment())
|
||||
.commit()
|
||||
}
|
||||
supportActionBar?.setDisplayHomeAsUpEnabled(true)
|
||||
|
||||
binding.toolBar.setNavigationOnClickListener {
|
||||
VibrationUtils.performHapticFeedback(it)
|
||||
|
||||
finish()
|
||||
}
|
||||
}
|
||||
|
||||
override fun getViewBinding(): ActivitySettingsBinding {
|
||||
return ActivitySettingsBinding.inflate(layoutInflater)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cn.super12138.todo.views.all
|
||||
package cn.super12138.todo.views.viewmodels
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cn.super12138.todo.views.progress
|
||||
package cn.super12138.todo.views.viewmodels
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cn.super12138.todo.views.todo
|
||||
package cn.super12138.todo.views.viewmodels
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cn.super12138.todo.views.welcome
|
||||
package cn.super12138.todo.views.viewmodels
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
package cn.super12138.todo.views.welcome.pages
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import cn.super12138.todo.databinding.FragmentWelcomeIntroBinding
|
||||
|
||||
class IntroPage : BasePage() {
|
||||
private lateinit var binding: FragmentWelcomeIntroBinding
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
binding = FragmentWelcomeIntroBinding.inflate(inflater, container, false)
|
||||
|
||||
return binding.root
|
||||
}
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
package cn.super12138.todo.views.welcome.pages
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import cn.super12138.todo.databinding.FragmentWelcomeProgressBinding
|
||||
|
||||
class ProgressPage : BasePage() {
|
||||
private lateinit var binding: FragmentWelcomeProgressBinding
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
binding = FragmentWelcomeProgressBinding.inflate(inflater, container, false)
|
||||
|
||||
return binding.root
|
||||
}
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context=".views.main.MainActivity">
|
||||
tools:context=".views.activities.MainActivity">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
|
|
@ -19,6 +19,7 @@
|
|||
android:layout_height="?attr/actionBarSize"
|
||||
app:menu="@menu/main"
|
||||
app:title="@string/app_name" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<LinearLayout
|
||||
|
|
@ -30,16 +31,15 @@
|
|||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/progress_frag"
|
||||
android:name="cn.super12138.todo.views.progress.ProgressFragment"
|
||||
android:name="cn.super12138.todo.views.fragments.ProgressFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="3"
|
||||
android:minHeight="160dp"
|
||||
tools:layout="@layout/fragment_progress" />
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/todo_frag"
|
||||
android:name="cn.super12138.todo.views.todo.ToDoFragment"
|
||||
android:name="cn.super12138.todo.views.fragments.ToDoFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="2"
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context=".views.main.MainActivity">
|
||||
tools:context=".views.activities.MainActivity">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
|
|
@ -35,14 +35,14 @@
|
|||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/progress_frag"
|
||||
android:name="cn.super12138.todo.views.progress.ProgressFragment"
|
||||
android:name="cn.super12138.todo.views.fragments.ProgressFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="180dp"
|
||||
android:layout_height="270dp"
|
||||
tools:layout="@layout/fragment_progress" />
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/todo_frag"
|
||||
android:name="cn.super12138.todo.views.todo.ToDoFragment"
|
||||
android:name="cn.super12138.todo.views.fragments.ToDoFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:layout="@layout/fragment_todo" />
|
||||
|
|
@ -1,177 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout 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"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context=".views.about.AboutActivity">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:fitsSystemWindows="true"
|
||||
app:liftOnScroll="true">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/tool_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:navigationIcon="@drawable/ic_arrow_back"
|
||||
app:title="@string/about_label" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fillViewport="true"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
style="?attr/materialCardViewElevatedStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="20dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/app_info"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
style="@style/Widget.Material3.CardView.Elevated"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:cardCornerRadius="128dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:contentDescription="@string/app_name"
|
||||
android:src="@mipmap/ic_launcher" />
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/app_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/app_name"
|
||||
android:textAlignment="center"
|
||||
android:textColor="?attr/colorOnSurface"
|
||||
android:textSize="20sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/app_version"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="7dp"
|
||||
android:textAlignment="center"
|
||||
android:textSize="11sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/check_update"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/check_update_icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:contentDescription="@string/check_update"
|
||||
app:srcCompat="@drawable/ic_update" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/check_update_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:text="@string/check_update"
|
||||
android:textColor="?attr/colorOnSurface"
|
||||
android:textSize="15sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/open_source"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/github_icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:contentDescription="@string/view_source"
|
||||
app:srcCompat="@drawable/ic_github" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/open_source_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:text="@string/view_source"
|
||||
android:textColor="?attr/colorOnSurface"
|
||||
android:textSize="15sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/developer_info"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:gravity="center_horizontal|center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/developer_icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:contentDescription="@string/author"
|
||||
app:srcCompat="@drawable/ic_person" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/developer_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:text="@string/author"
|
||||
android:textColor="?attr/colorOnSurface"
|
||||
android:textSize="15sp" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
</LinearLayout>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context=".views.crash.CrashActivity">
|
||||
tools:context=".views.activities.CrashActivity">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
|||
|
|
@ -1,48 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout 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"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context=".views.main.MainActivity">
|
||||
tools:context=".views.activities.MainActivity">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:fitsSystemWindows="true"
|
||||
app:liftOnScrollTargetViewId="@id/progress_frag">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/tool_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:menu="@menu/main"
|
||||
app:title="@string/app_name" />
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<LinearLayout
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/app_container"
|
||||
android:name="cn.super12138.todo.views.fragments.MainFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fillViewport="true"
|
||||
android:orientation="vertical"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
android:fitsSystemWindows="true"
|
||||
tools:layout="@layout/fragment_main" />
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/progress_frag"
|
||||
android:name="cn.super12138.todo.views.progress.ProgressFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="2"
|
||||
android:minHeight="160dp"
|
||||
tools:layout="@layout/fragment_progress" />
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/todo_frag"
|
||||
android:name="cn.super12138.todo.views.todo.ToDoFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="3"
|
||||
tools:layout="@layout/fragment_todo" />
|
||||
</LinearLayout>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
170
app/src/main/res/layout/fragment_about.xml
Normal file
170
app/src/main/res/layout/fragment_about.xml
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout 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"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context=".views.fragments.AboutFragment">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:fitsSystemWindows="true"
|
||||
app:liftOnScroll="true">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/tool_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:navigationIcon="@drawable/ic_arrow_back"
|
||||
app:title="@string/about_label" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
style="?attr/materialCardViewElevatedStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="20dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/app_info"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
style="@style/Widget.Material3.CardView.Elevated"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:cardCornerRadius="128dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:contentDescription="@string/app_name"
|
||||
android:src="@mipmap/ic_launcher" />
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/app_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/app_name"
|
||||
android:textAlignment="center"
|
||||
android:textColor="?attr/colorOnSurface"
|
||||
android:textSize="20sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/app_version"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="7dp"
|
||||
android:textAlignment="center"
|
||||
android:textSize="11sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/check_update"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/check_update_icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:contentDescription="@string/check_update"
|
||||
app:srcCompat="@drawable/ic_update" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/check_update_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:text="@string/check_update"
|
||||
android:textColor="?attr/colorOnSurface"
|
||||
android:textSize="15sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/open_source"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/github_icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:contentDescription="@string/view_source"
|
||||
app:srcCompat="@drawable/ic_github" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/open_source_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:text="@string/view_source"
|
||||
android:textColor="?attr/colorOnSurface"
|
||||
android:textSize="15sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/developer_info"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:gravity="center_horizontal|center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/developer_icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:contentDescription="@string/author"
|
||||
app:srcCompat="@drawable/ic_person" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/developer_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:text="@string/author"
|
||||
android:textColor="?attr/colorOnSurface"
|
||||
android:textSize="15sp" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
|
@ -5,13 +5,12 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context=".views.about.AboutActivity">
|
||||
tools:context=".views.fragments.AboutFragment">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:fitsSystemWindows="true"
|
||||
app:liftOnScroll="true"
|
||||
app:liftOnScrollTargetViewId="@+id/all_tasks_list">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
50
app/src/main/res/layout/fragment_main.xml
Normal file
50
app/src/main/res/layout/fragment_main.xml
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout 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"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context=".views.activities.MainActivity">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:fitsSystemWindows="true"
|
||||
app:liftOnScroll="false"
|
||||
app:liftOnScrollTargetViewId="@id/progress_frag">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/tool_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:menu="@menu/main"
|
||||
app:title="@string/app_name" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fillViewport="true"
|
||||
android:orientation="vertical"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/progress_frag"
|
||||
android:name="cn.super12138.todo.views.fragments.ProgressFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="2"
|
||||
android:minHeight="160dp"
|
||||
tools:layout="@layout/fragment_progress" />
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/todo_frag"
|
||||
android:name="cn.super12138.todo.views.fragments.ToDoFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="3"
|
||||
tools:layout="@layout/fragment_todo" />
|
||||
</LinearLayout>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="280dp"
|
||||
android:layout_height="270dp"
|
||||
android:animateLayoutChanges="true">
|
||||
|
||||
<com.google.android.material.progressindicator.CircularProgressIndicator
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context=".views.settings.SettingsActivity">
|
||||
tools:context=".views.fragments.SettingsParentFragment">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
|
|
@ -27,15 +27,10 @@
|
|||
android:fillViewport="true"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<LinearLayout
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/settings_container"
|
||||
android:name="cn.super12138.todo.views.fragments.SettingsFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/settings_frame"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</LinearLayout>
|
||||
android:layout_height="match_parent" />
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/welcome_page_container"
|
||||
android:name="cn.super12138.todo.views.welcome.pages.IntroPage"
|
||||
android:name="cn.super12138.todo.views.fragments.welcome.pages.IntroPage"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toTopOf="@+id/control_area"
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/welcome_progress"
|
||||
android:name="cn.super12138.todo.views.progress.ProgressFragment"
|
||||
android:name="cn.super12138.todo.views.fragments.ProgressFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
tools:layout="@layout/fragment_progress" />
|
||||
|
|
|
|||
Loading…
Reference in a new issue