Skip to content

Commit c2b66f0

Browse files
committed
feat: add updateBottomPadding method to GroupFragment and RouteFragment
1 parent 1f7efaa commit c2b66f0

3 files changed

Lines changed: 27 additions & 4 deletions

File tree

app/src/main/java/io/nekohasekai/sagernet/ui/GroupFragment.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ class GroupFragment : ToolbarFragment(R.layout.layout_group),
5151
toolbar.setOnMenuItemClickListener(this)
5252

5353
groupListView = view.findViewById(R.id.group_list)
54+
updateBottomPadding()
5455
layoutManager = FixedLinearLayoutManager(groupListView)
5556
groupListView.layoutManager = layoutManager
5657
groupAdapter = GroupAdapter()
@@ -107,6 +108,12 @@ class GroupFragment : ToolbarFragment(R.layout.layout_group),
107108

108109
}
109110

111+
fun updateBottomPadding() {
112+
if (!::groupListView.isInitialized) return
113+
groupListView.clipToPadding = false
114+
groupListView.updatePadding(bottom = dp2px(if (DataStore.showBottomBar) 48 else 4))
115+
}
116+
110117
override fun onMenuItemClick(item: MenuItem): Boolean {
111118
when (item.itemId) {
112119
R.id.action_new_group -> {

app/src/main/java/io/nekohasekai/sagernet/ui/MainActivity.kt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -516,10 +516,18 @@ class MainActivity : ThemedActivity(),
516516
override fun onPreferenceDataStoreChanged(store: PreferenceDataStore, key: String) {
517517
when (key) {
518518
Key.SERVICE_MODE -> onBinderDied()
519-
Key.SHOW_BOTTOM_BAR -> syncMainControls(
520-
showWhenConnected = DataStore.showBottomBar,
521-
animate = true,
522-
)
519+
Key.SHOW_BOTTOM_BAR -> {
520+
syncMainControls(
521+
showWhenConnected = DataStore.showBottomBar,
522+
animate = true,
523+
)
524+
when (val fragment = currentMainFragment
525+
?: supportFragmentManager.findFragmentById(R.id.fragment_holder)
526+
) {
527+
is GroupFragment -> fragment.updateBottomPadding()
528+
is RouteFragment -> fragment.updateBottomPadding()
529+
}
530+
}
523531
Key.PROXY_APPS, Key.BYPASS_MODE, Key.INDIVIDUAL -> {
524532
if (DataStore.serviceState.canStop) {
525533
snackbar(getString(R.string.need_reload)).setAction(R.string.apply) {

app/src/main/java/io/nekohasekai/sagernet/ui/RouteFragment.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import android.view.ViewGroup
88
import androidx.appcompat.widget.Toolbar
99
import androidx.core.content.ContextCompat
1010
import androidx.core.view.ViewCompat
11+
import androidx.core.view.updatePadding
1112
import androidx.recyclerview.widget.ItemTouchHelper
1213
import androidx.recyclerview.widget.RecyclerView
1314
import com.google.android.material.dialog.MaterialAlertDialogBuilder
@@ -40,6 +41,7 @@ class RouteFragment : ToolbarFragment(R.layout.layout_route), Toolbar.OnMenuItem
4041
toolbar.setOnMenuItemClickListener(this)
4142

4243
ruleListView = view.findViewById(R.id.route_list)
44+
updateBottomPadding()
4345
ruleListView.layoutManager = FixedLinearLayoutManager(ruleListView)
4446
ruleAdapter = RuleAdapter()
4547
ProfileManager.addListener(ruleAdapter)
@@ -94,6 +96,12 @@ class RouteFragment : ToolbarFragment(R.layout.layout_route), Toolbar.OnMenuItem
9496
}).attachToRecyclerView(ruleListView)
9597
}
9698

99+
fun updateBottomPadding() {
100+
if (!::ruleListView.isInitialized) return
101+
ruleListView.clipToPadding = false
102+
ruleListView.updatePadding(bottom = dp2px(if (DataStore.showBottomBar) 48 else 4))
103+
}
104+
97105
override fun onDestroy() {
98106
if (::ruleAdapter.isInitialized) {
99107
ProfileManager.removeListener(ruleAdapter)

0 commit comments

Comments
 (0)