@@ -2,18 +2,21 @@ package com.prateekcode.githubbrowser.fragment
22
33import android.content.Intent
44import android.os.Bundle
5+ import android.provider.Settings
56import android.view.*
67import androidx.fragment.app.Fragment
78import android.widget.Toast
89import androidx.databinding.DataBindingUtil
910import androidx.lifecycle.ViewModelProvider
1011import androidx.recyclerview.widget.LinearLayoutManager
12+ import com.google.android.material.dialog.MaterialAlertDialogBuilder
1113import com.prateekcode.githubbrowser.R
1214import com.prateekcode.githubbrowser.adapter.RepoAdapter
1315import com.prateekcode.githubbrowser.databinding.FragmentHomeBinding
1416import com.prateekcode.githubbrowser.db.RepoDatabase
1517import com.prateekcode.githubbrowser.db.Repodao
1618import com.prateekcode.githubbrowser.db.Repotity
19+ import com.prateekcode.githubbrowser.util.Utils
1720import com.prateekcode.githubbrowser.viewmodel.ApiViewModel
1821import com.prateekcode.githubbrowser.viewmodel.ApiViewModelFactory
1922
@@ -32,44 +35,62 @@ class HomeFragment : Fragment(), RepoAdapter.OnItemClickListener {
3235 ): View ? {
3336 binding = DataBindingUtil .inflate(inflater, R .layout.fragment_home, container, false )
3437
35- // Initializing the database
36- repodao = RepoDatabase .getDatabase(context!! ).repoDao()
37- val factory = ApiViewModelFactory (repodao)
38- viewModel = ViewModelProvider (this , factory).get(ApiViewModel ::class .java)
3938
40- repoList = repodao.getAllRepo()
41- if (repoList.isEmpty()){
42- binding.trackRepoTv.visibility = View .VISIBLE
43- binding.addRepoButton.visibility = View .VISIBLE
44- }else {
45- binding.trackRepoTv.visibility = View .GONE
46- binding.addRepoButton.visibility = View .GONE
47- }
39+ if (Utils .isConnected(context!! )){
40+ // Initializing the database
41+ repodao = RepoDatabase .getDatabase(context!! ).repoDao()
42+ val factory = ApiViewModelFactory (repodao)
43+ viewModel = ViewModelProvider (this , factory).get(ApiViewModel ::class .java)
44+
45+ repoList = repodao.getAllRepo()
46+ if (repoList.isEmpty()){
47+ binding.trackRepoTv.visibility = View .VISIBLE
48+ binding.addRepoButton.visibility = View .VISIBLE
49+ }else {
50+ binding.trackRepoTv.visibility = View .GONE
51+ binding.addRepoButton.visibility = View .GONE
52+ repoAdapter.setData(repoList)
53+ val layoutManager = LinearLayoutManager (context!! )
54+ binding.repoRecyclerView.layoutManager = layoutManager
55+ binding.repoRecyclerView.adapter = repoAdapter
56+ layoutManager.stackFromEnd = true
57+ layoutManager.reverseLayout = true
58+ }
4859
49- binding.addRepoButton.setOnClickListener {
50- // Toast.makeText(context, "Hey Buddy!!!!!!", Toast.LENGTH_SHORT).show()
51- replaceFragment(AddRepoFragment ())
52- }
60+ binding.addRepoButton.setOnClickListener {
61+ // Toast.makeText(context, "Hey Buddy!!!!!!", Toast.LENGTH_SHORT).show()
62+ replaceFragment(AddRepoFragment ())
63+ }
5364
54- repoAdapter.setData(repoList)
55- val layoutManager = LinearLayoutManager (context!! )
56- binding.repoRecyclerView.layoutManager = layoutManager
57- binding.repoRecyclerView.adapter = repoAdapter
58- layoutManager.stackFromEnd = true
59- layoutManager.reverseLayout = true
60-
61- binding.homeMaterialToolbar.setOnMenuItemClickListener {
62- menuItem ->
63- when (menuItem.itemId) {
64- R .id.add_repo_menu_btn -> {
65- replaceFragment(AddRepoFragment ())
66- true
65+ binding.homeMaterialToolbar.setOnMenuItemClickListener {
66+ menuItem ->
67+ when (menuItem.itemId) {
68+ R .id.add_repo_menu_btn -> {
69+ replaceFragment(AddRepoFragment ())
70+ true
71+ }
72+ R .id.delete_all-> {
73+ MaterialAlertDialogBuilder (context!! )
74+ .setTitle(" Delete All Repo" )
75+ .setMessage(" Are you sure?" )
76+ .setNegativeButton(" Cancel" ) { dialog, _ ->
77+ dialog.dismiss()
78+ }
79+ .setPositiveButton(" Delete" ) { _, _ ->
80+ viewModel!! .deleteEntireDb()
81+ Toast .makeText(context, " Entire repo deleted" , Toast .LENGTH_SHORT )
82+ .show()
83+ }
84+ .show()
85+ true
86+ }
87+ else -> false
6788 }
68- else -> false
6989 }
90+ }else {
91+ Toast .makeText(context, " You're not connected with Internet" , Toast .LENGTH_SHORT ).show()
7092 }
7193
72-
7394 return binding.root
7495 }
7596
0 commit comments