Skip to content

Commit 63afd6a

Browse files
committed
Fix: After updating a blog post, ViewBlogFragment and BlogFragment must reflect the changes.
1 parent dc10b38 commit 63afd6a

File tree

5 files changed

+40
-10
lines changed

5 files changed

+40
-10
lines changed

app/src/main/java/com/codingwithmitch/openapi/repository/main/BlogRepositoryImpl.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,11 @@ constructor(
242242
data = BlogViewState(
243243
viewBlogFields = ViewBlogFields(
244244
blogPost = updatedBlogPost
245+
),
246+
updatedBlogFields = UpdatedBlogFields(
247+
updatedBlogTitle = updatedBlogPost.title,
248+
updatedBlogBody = updatedBlogPost.body,
249+
updatedImageUri = null
245250
)
246251
),
247252
stateEvent = stateEvent

app/src/main/java/com/codingwithmitch/openapi/ui/main/account/ChangePasswordFragment.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@ constructor(
6464
viewModel.stateMessage.observe(viewLifecycleOwner, Observer { stateMessage ->
6565

6666
stateMessage?.let {
67+
68+
if(stateMessage.response.message.equals(RESPONSE_PASSWORD_UPDATE_SUCCESS)){
69+
uiCommunicationListener.hideSoftKeyboard()
70+
findNavController().popBackStack()
71+
}
72+
6773
uiCommunicationListener.onResponseReceived(
6874
response = it.response,
6975
stateMessageCallback = object: StateMessageCallback {

app/src/main/java/com/codingwithmitch/openapi/ui/main/blog/UpdateBlogFragment.kt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,15 @@ import androidx.lifecycle.lifecycleScope
1313
import androidx.navigation.fragment.findNavController
1414
import com.bumptech.glide.RequestManager
1515
import com.codingwithmitch.openapi.R
16+
import com.codingwithmitch.openapi.models.BlogPost
1617
import com.codingwithmitch.openapi.ui.main.blog.state.BLOG_VIEW_STATE_BUNDLE_KEY
1718
import com.codingwithmitch.openapi.ui.main.blog.state.BlogStateEvent
1819
import com.codingwithmitch.openapi.ui.main.blog.state.BlogViewState
1920
import com.codingwithmitch.openapi.ui.main.blog.viewmodel.*
2021
import com.codingwithmitch.openapi.util.*
2122
import com.codingwithmitch.openapi.util.Constants.Companion.GALLERY_REQUEST_CODE
2223
import com.codingwithmitch.openapi.util.ErrorHandling.Companion.SOMETHING_WRONG_WITH_IMAGE
24+
import com.codingwithmitch.openapi.util.SuccessHandling.Companion.SUCCESS_BLOG_UPDATED
2325
import com.theartofdev.edmodo.cropper.CropImage
2426
import com.theartofdev.edmodo.cropper.CropImageView
2527
import kotlinx.android.synthetic.main.fragment_update_blog.*
@@ -164,6 +166,11 @@ constructor(
164166
viewModel.stateMessage.observe(viewLifecycleOwner, Observer { stateMessage ->
165167

166168
stateMessage?.let {
169+
170+
if(stateMessage.response.message.equals(SUCCESS_BLOG_UPDATED)){
171+
viewModel.updateListItem()
172+
}
173+
167174
uiCommunicationListener.onResponseReceived(
168175
response = it.response,
169176
stateMessageCallback = object: StateMessageCallback {
@@ -177,9 +184,11 @@ constructor(
177184
}
178185

179186
fun setBlogProperties(title: String?, body: String?, image: Uri?){
180-
requestManager
181-
.load(image)
182-
.into(blog_image)
187+
image?.let {
188+
requestManager
189+
.load(it)
190+
.into(blog_image)
191+
}
183192
blog_title.setText(title)
184193
blog_body.setText(body)
185194
}

app/src/main/java/com/codingwithmitch/openapi/ui/main/blog/viewmodel/Setters.kt

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,11 @@ fun BlogViewModel.removeDeletedBlogPost(){
103103

104104
@FlowPreview
105105
@UseExperimental(ExperimentalCoroutinesApi::class)
106-
fun BlogViewModel.updateListItem(newBlogPost: BlogPost){
106+
fun BlogViewModel.updateListItem(){
107107
val update = getCurrentViewStateOrNew()
108108
val list = update.blogFields.blogList?.toMutableList()
109109
if(list != null){
110+
val newBlogPost = getBlogPost()
110111
for(i in 0..(list.size - 1)){
111112
if(list[i].pk == newBlogPost.pk){
112113
list[i] = newBlogPost
@@ -118,12 +119,20 @@ fun BlogViewModel.updateListItem(newBlogPost: BlogPost){
118119
}
119120
}
120121

121-
@FlowPreview
122-
@UseExperimental(ExperimentalCoroutinesApi::class)
123-
fun BlogViewModel.onBlogPostUpdateSuccess(blogPost: BlogPost){
124-
setBlogPost(blogPost) // update ViewBlogFragment
125-
updateListItem(blogPost) // update BlogFragment
126-
}
122+
//@FlowPreview
123+
//@UseExperimental(ExperimentalCoroutinesApi::class)
124+
//fun BlogViewModel.onBlogPostUpdateSuccess(
125+
// title: String,
126+
// body: String,
127+
// image: String
128+
//){
129+
// val currentBlogPost = getBlogPost()
130+
// currentBlogPost.title = title
131+
// currentBlogPost.body = body
132+
// currentBlogPost.image = image
133+
// setBlogPost(currentBlogPost) // update ViewBlogFragment
134+
// updateListItem(currentBlogPost) // update BlogFragment
135+
//}
127136

128137

129138
@FlowPreview

app/src/main/java/com/codingwithmitch/openapi/util/SuccessHandling.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class SuccessHandling {
1111
const val RESPONSE_HAS_PERMISSION_TO_EDIT = "You have permission to edit that."
1212
const val SUCCESS_BLOG_CREATED = "created"
1313
const val SUCCESS_BLOG_DELETED = "deleted"
14+
const val SUCCESS_BLOG_UPDATED = "updated"
1415

1516
}
1617
}

0 commit comments

Comments
 (0)