fix: revert main tab reference change

reverts 4add8f97da
pull/864/head
andrekir 2024-02-18 08:01:51 -03:00
rodzic 3713d371fa
commit 6e83870295
4 zmienionych plików z 40 dodań i 58 usunięć

Wyświetl plik

@ -39,6 +39,7 @@ import com.geeksville.mesh.model.toChannelSet
import com.geeksville.mesh.repository.radio.BluetoothInterface
import com.geeksville.mesh.service.*
import com.geeksville.mesh.ui.*
import com.geeksville.mesh.ui.map.MapFragment
import com.geeksville.mesh.util.Exceptions
import com.geeksville.mesh.util.LanguageUtils
import com.geeksville.mesh.util.getPackageInfoCompat
@ -140,9 +141,39 @@ class MainActivity : AppCompatActivity(), Logging {
}
}
data class TabInfo(val text: String, val icon: Int, val content: Fragment)
private val tabInfos = arrayOf(
TabInfo(
"Messages",
R.drawable.ic_twotone_message_24,
ContactsFragment()
),
TabInfo(
"Users",
R.drawable.ic_twotone_people_24,
UsersFragment()
),
TabInfo(
"Map",
R.drawable.ic_twotone_map_24,
MapFragment()
),
TabInfo(
"Channel",
R.drawable.ic_twotone_contactless_24,
ChannelFragment()
),
TabInfo(
"Settings",
R.drawable.ic_twotone_settings_applications_24,
SettingsFragment()
)
)
private val tabsAdapter = object : FragmentStateAdapter(supportFragmentManager, lifecycle) {
override fun getItemCount(): Int = MainTab.entries.size
override fun createFragment(position: Int): Fragment = MainTab.entries[position].content
override fun getItemCount(): Int = tabInfos.size
override fun createFragment(position: Int): Fragment = tabInfos[position].content
}
override fun onCreate(savedInstanceState: Bundle?) {
@ -178,12 +209,12 @@ class MainActivity : AppCompatActivity(), Logging {
// pager.offscreenPageLimit = 0 // Don't keep any offscreen pages around, because we want to make sure our bluetooth scanning stops
TabLayoutMediator(binding.tabLayout, binding.pager, false, false) { tab, position ->
// tab.text = tabInfos[position].text // I think it looks better with icons only
tab.icon = ContextCompat.getDrawable(this, MainTab.entries[position].icon)
tab.icon = ContextCompat.getDrawable(this, tabInfos[position].icon)
}.attach()
binding.tabLayout.addOnTabSelectedListener(object: TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab?) {
val mainTab = MainTab.entries[tab?.position ?: 0]
val mainTab = tab?.position ?: 0
model.setCurrentTab(mainTab)
}
override fun onTabUnselected(tab: TabLayout.Tab?) { }
@ -537,7 +568,7 @@ class MainActivity : AppCompatActivity(), Logging {
}
model.currentTab.observe(this) {
binding.tabLayout.getTabAt(it.ordinal)?.select()
binding.tabLayout.getTabAt(it)?.select()
}
try {

Wyświetl plik

@ -27,7 +27,6 @@ import com.geeksville.mesh.database.PacketRepository
import com.geeksville.mesh.repository.datastore.RadioConfigRepository
import com.geeksville.mesh.repository.radio.RadioInterfaceService
import com.geeksville.mesh.service.MeshService
import com.geeksville.mesh.ui.MainTab
import com.geeksville.mesh.util.positionToMeter
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.Dispatchers
@ -588,15 +587,15 @@ class UIViewModel @Inject constructor(
}
}
private val _currentTab = MutableLiveData(MainTab.MESSAGES)
val currentTab: LiveData<MainTab> get() = _currentTab
private val _currentTab = MutableLiveData(0)
val currentTab: LiveData<Int> get() = _currentTab
fun setCurrentTab(tab: MainTab) {
fun setCurrentTab(tab: Int) {
_currentTab.value = tab
}
fun focusUserNode(node: NodeInfo?) {
_currentTab.value = MainTab.USERS
_currentTab.value = 1
_focusedNode.value = node
}
}

Wyświetl plik

@ -1,41 +0,0 @@
package com.geeksville.mesh.ui
import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import androidx.fragment.app.Fragment
import com.geeksville.mesh.R
import com.geeksville.mesh.ui.map.MapFragment
enum class MainTab(
@StringRes
val text: Int,
@DrawableRes
val icon: Int,
val content: Fragment
) {
MESSAGES(
R.string.main_tab_lbl_messages,
R.drawable.ic_twotone_message_24,
ContactsFragment()
),
USERS(
R.string.main_tab_lbl_users,
R.drawable.ic_twotone_people_24,
UsersFragment()
),
MAP(
R.string.main_tab_lbl_map,
R.drawable.ic_twotone_map_24,
MapFragment()
),
CHANNEL(
R.string.main_tab_lbl_channel,
R.drawable.ic_twotone_contactless_24,
ChannelFragment()
),
SETTINGS(
R.string.main_tab_lbl_settings,
R.drawable.ic_twotone_settings_applications_24,
SettingsFragment()
);
}

Wyświetl plik

@ -11,13 +11,6 @@
<string name="sample_coords" translatable="false">55.332244 34.442211</string>
<string name="sample_message" translatable="false">hey I found the cache, it is over here next to the big tiger. I\'m kinda scared.</string>
<!-- Main Tabs -->
<string name="main_tab_lbl_messages" translatable="false">Messages</string>
<string name="main_tab_lbl_users" translatable="false">Users</string>
<string name="main_tab_lbl_map" translatable="false">Map</string>
<string name="main_tab_lbl_channel" translatable="false">Channel</string>
<string name="main_tab_lbl_settings" translatable="false">Settings</string>
<string name="channel_name">Channel Name</string>
<string name="channel_options">Channel options</string>
<string name="qr_code">QR code</string>