Skip to content

Commit

Permalink
fixed some errors
Browse files Browse the repository at this point in the history
  • Loading branch information
MuhammedEdrees committed Sep 16, 2023
1 parent 3acebf1 commit b213cb6
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 17 deletions.
11 changes: 2 additions & 9 deletions app/src/main/java/com/edrees/newsapp/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.edrees.newsapp

import android.annotation.SuppressLint
import android.os.Build
import android.os.Bundle
import android.util.TypedValue
import android.view.Menu
Expand Down Expand Up @@ -98,13 +99,5 @@ class MainActivity : AppCompatActivity(){
val navController = findNavController(R.id.nav_host_fragment_content_main)
return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp()
}
@SuppressLint("DetachAndAttachSameFragment")
fun refreshFragment(fragment: Fragment) {
fragment.parentFragmentManager
.beginTransaction()
.detach(fragment)
.attach(fragment)
.addToBackStack(null)
.commit()
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import com.edrees.newsapp.ui.home.DetailsCallback
import com.edrees.newsapp.ui.home.HomeAdapter
import com.edrees.newsapp.ui.home.HomeFragmentDirections
import com.edrees.newsapp.util.ConnectionUtils
import com.edrees.newsapp.util.ConnectionUtils.recreateFragment

class CategorizedNewsFragment : Fragment(), DetailsCallback {
private lateinit var recyclerView: RecyclerView
Expand Down Expand Up @@ -55,8 +56,8 @@ class CategorizedNewsFragment : Fragment(), DetailsCallback {
adapter.setData(it)
}
viewModel.getCategorizedArticles(resources.getString(args.category.nameRes).lowercase())
setFragmentTitle(String.format(resources.getString(R.string.news_category_title), resources.getString(args.category.nameRes)))
}
setFragmentTitle(String.format(resources.getString(R.string.news_category_title), resources.getString(args.category.nameRes)))
}

private fun hideNoInternetConnectionLayout() {
Expand All @@ -68,7 +69,7 @@ class CategorizedNewsFragment : Fragment(), DetailsCallback {
binding.noInternetLayout.visibility = View.VISIBLE
binding.contentMain.visibility = View.GONE
binding.retryButton.setOnClickListener{
(activity as MainActivity).refreshFragment(this)
this.recreateFragment()
}
}

Expand Down
3 changes: 2 additions & 1 deletion app/src/main/java/com/edrees/newsapp/ui/home/HomeFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import com.edrees.newsapp.repo.ArticleRepositoryImpl
import com.edrees.newsapp.ui.ViewModelFactory
import com.edrees.newsapp.ui.search.SecondaryAdapter
import com.edrees.newsapp.util.ConnectionUtils.checkInternetConnection
import com.edrees.newsapp.util.ConnectionUtils.recreateFragment
import com.edrees.newsapp.util.Constants
import com.google.android.material.textfield.TextInputEditText

Expand Down Expand Up @@ -70,7 +71,7 @@ class HomeFragment : Fragment(), DetailsCallback {
binding.noInternetLayout.visibility = View.VISIBLE
binding.contentMain.visibility = View.GONE
binding.retryButton.setOnClickListener{
(activity as MainActivity).refreshFragment(this)
this.recreateFragment()
}
}
private fun prepareViewModel() {
Expand Down
14 changes: 10 additions & 4 deletions app/src/main/java/com/edrees/newsapp/ui/search/SearchFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import com.edrees.newsapp.repo.ArticleRepositoryImpl
import com.edrees.newsapp.ui.ViewModelFactory
import com.edrees.newsapp.ui.home.DetailsCallback
import com.edrees.newsapp.util.ConnectionUtils.checkInternetConnection
import com.edrees.newsapp.util.ConnectionUtils.recreateFragment
import com.google.android.material.textfield.TextInputEditText

class SearchFragment : Fragment(), DetailsCallback {
Expand All @@ -34,6 +35,7 @@ class SearchFragment : Fragment(), DetailsCallback {
private lateinit var layoutManager: LinearLayoutManager
private lateinit var searchEditText: TextInputEditText
private lateinit var adapter: SecondaryAdapter
private var connected = false

override fun onCreateView(
inflater: LayoutInflater,
Expand All @@ -46,11 +48,13 @@ class SearchFragment : Fragment(), DetailsCallback {

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
if(!checkInternetConnection(activity)) {
connected = checkInternetConnection(activity)
if(!connected) {
showNoInternetConnectionLayout()
} else {
prepareViewModel()
hideNoInternetConnectionLayout()
adapter = SecondaryAdapter(this)
searchEditText = binding.searchTextInputLayout.editText as TextInputEditText
viewModel.listOfArticles.observe(viewLifecycleOwner){articles ->
if(searchEditText.text.isNullOrBlank()){
Expand All @@ -62,7 +66,7 @@ class SearchFragment : Fragment(), DetailsCallback {
}
recyclerView = binding.searchRecyclerView
layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
adapter = SecondaryAdapter(this)

recyclerView.layoutManager = layoutManager
recyclerView.adapter = adapter
searchEditText.addTextChangedListener(object: TextWatcher{
Expand Down Expand Up @@ -93,7 +97,7 @@ class SearchFragment : Fragment(), DetailsCallback {
binding.noInternetLayout.visibility = View.VISIBLE
binding.contentMain.visibility = View.GONE
binding.retryButton.setOnClickListener{
(activity as MainActivity).refreshFragment(this)
this.recreateFragment()
}
}

Expand All @@ -115,7 +119,9 @@ class SearchFragment : Fragment(), DetailsCallback {
}

override fun onDestroyView() {
adapter.setData(listOf())
if(connected){
adapter.setData(listOf())
}
super.onDestroyView()
_binding = null
}
Expand Down
6 changes: 5 additions & 1 deletion app/src/main/java/com/edrees/newsapp/util/ConnectionUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,9 @@ object ConnectionUtils {
val networkCapabilities = connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)
return networkCapabilities?.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) == true
}

fun Fragment.recreateFragment() {
val fragment = this
parentFragmentManager.beginTransaction().detach(fragment).commitNow()
parentFragmentManager.beginTransaction().attach(fragment).commitNow()
}
}

0 comments on commit b213cb6

Please sign in to comment.