HomeFragment view binding

This commit is contained in:
HaliksaR 2020-11-15 04:48:47 +07:00
parent 4d14ddf1c6
commit cdd5228447
2 changed files with 71 additions and 89 deletions

View File

@ -22,37 +22,43 @@ import com.vanced.manager.R
import com.vanced.manager.adapter.AppListAdapter import com.vanced.manager.adapter.AppListAdapter
import com.vanced.manager.adapter.LinkAdapter import com.vanced.manager.adapter.LinkAdapter
import com.vanced.manager.adapter.SponsorAdapter import com.vanced.manager.adapter.SponsorAdapter
import com.vanced.manager.databinding.FragmentGrantRootBinding
import com.vanced.manager.databinding.FragmentHomeBinding import com.vanced.manager.databinding.FragmentHomeBinding
import com.vanced.manager.ui.core.BindingFragment
import com.vanced.manager.ui.dialogs.DialogContainer.installAlertBuilder import com.vanced.manager.ui.dialogs.DialogContainer.installAlertBuilder
import com.vanced.manager.ui.viewmodels.HomeViewModel import com.vanced.manager.ui.viewmodels.HomeViewModel
import com.vanced.manager.ui.viewmodels.HomeViewModelFactory import com.vanced.manager.ui.viewmodels.HomeViewModelFactory
open class HomeFragment : Fragment() { open class HomeFragment : BindingFragment<FragmentHomeBinding>() {
companion object {
const val INSTALL_FAILED = "install_failed"
const val REFRESH_HOME = "refresh_home"
}
private lateinit var binding: FragmentHomeBinding
private val viewModel: HomeViewModel by viewModels { private val viewModel: HomeViewModel by viewModels {
HomeViewModelFactory(requireActivity()) HomeViewModelFactory(requireActivity())
} }
private val localBroadcastManager by lazy { LocalBroadcastManager.getInstance(requireActivity()) } private val localBroadcastManager by lazy { LocalBroadcastManager.getInstance(requireActivity()) }
private val prefs by lazy { PreferenceManager.getDefaultSharedPreferences(requireActivity()) } private val prefs by lazy { PreferenceManager.getDefaultSharedPreferences(requireActivity()) }
private lateinit var tooltip: ViewTooltip private lateinit var tooltip: ViewTooltip
override fun onCreateView( override fun binding(
inflater: LayoutInflater, container: ViewGroup?, inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle? savedInstanceState: Bundle?
): View? { ) = FragmentHomeBinding.inflate(inflater, container, false)
requireActivity().title = getString(R.string.title_home)
setHasOptionsMenu(true) override fun otherSetups() {
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_home, container, false) bindData()
return binding.root
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { private fun bindData() {
super.onViewCreated(view, savedInstanceState) requireActivity().title = getString(R.string.title_home)
setHasOptionsMenu(true)
with(binding) { with(binding) {
viewModel = this@HomeFragment.viewModel homeRefresh.setOnRefreshListener { viewModel.fetchData() }
tooltip = ViewTooltip tooltip = ViewTooltip
.on(recyclerAppList) .on(recyclerAppList)
.position(ViewTooltip.Position.TOP) .position(ViewTooltip.Position.TOP)
@ -91,7 +97,11 @@ open class HomeFragment : Fragment() {
adapter = LinkAdapter(requireActivity(), this@HomeFragment.viewModel) adapter = LinkAdapter(requireActivity(), this@HomeFragment.viewModel)
} }
} }
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflateWithCrowdin(R.menu.toolbar_menu, menu, resources)
super.onCreateOptionsMenu(menu, inflater)
} }
override fun onPause() { override fun onPause() {
@ -122,15 +132,5 @@ open class HomeFragment : Fragment() {
intentFilter.addAction(REFRESH_HOME) intentFilter.addAction(REFRESH_HOME)
localBroadcastManager.registerReceiver(broadcastReceiver, intentFilter) localBroadcastManager.registerReceiver(broadcastReceiver, intentFilter)
} }
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflateWithCrowdin(R.menu.toolbar_menu, menu, resources)
super.onCreateOptionsMenu(menu, inflater)
}
companion object {
const val INSTALL_FAILED = "install_failed"
const val REFRESH_HOME = "refresh_home"
}
} }

View File

@ -1,23 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:bind="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="android.view.View" />
<variable
name="viewModel"
type="com.vanced.manager.ui.viewmodels.HomeViewModel" />
</data>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/home_refresh" android:id="@+id/home_refresh"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
bind:onRefreshListener="@{()-> viewModel.fetchData()}">
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
@ -34,24 +21,24 @@
android:id="@+id/recycler_app_list" android:id="@+id/recycler_app_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:nestedScrollingEnabled="false" android:nestedScrollingEnabled="false"
tools:itemCount="3" tools:itemCount="3"
tools:listitem="@layout/view_app"/> tools:listitem="@layout/view_app"/>
<TextView <TextView
style="@style/CardTextHeader"
android:layout_marginHorizontal="24dp" android:layout_marginHorizontal="24dp"
android:layout_marginTop="12dp" android:layout_marginTop="12dp"
android:text="@string/useful_links" /> android:text="@string/useful_links"
style="@style/CardTextHeader"/>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_sponsors" android:id="@+id/recycler_sponsors"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:nestedScrollingEnabled="false" android:nestedScrollingEnabled="false"
tools:itemCount="2" tools:itemCount="2"
tools:listitem="@layout/view_sponsor"/> tools:listitem="@layout/view_sponsor"/>
@ -65,11 +52,6 @@
android:paddingBottom="8dp" android:paddingBottom="8dp"
tools:itemCount="6" tools:itemCount="6"
tools:listitem="@layout/view_social_link"/> tools:listitem="@layout/view_social_link"/>
</LinearLayout> </LinearLayout>
</androidx.core.widget.NestedScrollView> </androidx.core.widget.NestedScrollView>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</layout>