@@ -2,18 +2,21 @@ package com.prateekcode.githubbrowser.fragment
2
2
3
3
import android.content.Intent
4
4
import android.os.Bundle
5
+ import android.provider.Settings
5
6
import android.view.*
6
7
import androidx.fragment.app.Fragment
7
8
import android.widget.Toast
8
9
import androidx.databinding.DataBindingUtil
9
10
import androidx.lifecycle.ViewModelProvider
10
11
import androidx.recyclerview.widget.LinearLayoutManager
12
+ import com.google.android.material.dialog.MaterialAlertDialogBuilder
11
13
import com.prateekcode.githubbrowser.R
12
14
import com.prateekcode.githubbrowser.adapter.RepoAdapter
13
15
import com.prateekcode.githubbrowser.databinding.FragmentHomeBinding
14
16
import com.prateekcode.githubbrowser.db.RepoDatabase
15
17
import com.prateekcode.githubbrowser.db.Repodao
16
18
import com.prateekcode.githubbrowser.db.Repotity
19
+ import com.prateekcode.githubbrowser.util.Utils
17
20
import com.prateekcode.githubbrowser.viewmodel.ApiViewModel
18
21
import com.prateekcode.githubbrowser.viewmodel.ApiViewModelFactory
19
22
@@ -32,44 +35,62 @@ class HomeFragment : Fragment(), RepoAdapter.OnItemClickListener {
32
35
): View ? {
33
36
binding = DataBindingUtil .inflate(inflater, R .layout.fragment_home, container, false )
34
37
35
- // Initializing the database
36
- repodao = RepoDatabase .getDatabase(context!! ).repoDao()
37
- val factory = ApiViewModelFactory (repodao)
38
- viewModel = ViewModelProvider (this , factory).get(ApiViewModel ::class .java)
39
38
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
+ }
48
59
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
+ }
53
64
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
67
88
}
68
- else -> false
69
89
}
90
+ }else {
91
+ Toast .makeText(context, " You're not connected with Internet" , Toast .LENGTH_SHORT ).show()
70
92
}
71
93
72
-
73
94
return binding.root
74
95
}
75
96
0 commit comments