Skip to content

Commit 14a01d6

Browse files
committed
update UnPeekLiveData and SharedViewModel write
1 parent a2f6895 commit 14a01d6

File tree

8 files changed

+41
-13
lines changed

8 files changed

+41
-13
lines changed

jetpack_java/src/main/java/com/kunminx/jetpack_java/sample_05_navigation/ui/NavigationEditorFragment.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c
6262
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
6363
super.onViewCreated(view, savedInstanceState);
6464

65-
mSharedViewModel.location.observe(getViewLifecycleOwner(), s -> {
65+
mSharedViewModel.getLocation().observeInFragment(this, s -> {
6666
mEditorViewModel.location.set(s);
6767
});
6868
}
@@ -92,7 +92,7 @@ public boolean onMenuItemClick(MenuItem item) {
9292
moment.setLocation(mEditorViewModel.location.get());
9393
moment.setImgUrl(mEditorViewModel.imgUrl.get());
9494
moment.setContent(mEditorViewModel.content.get());
95-
mSharedViewModel.moment.setValue(moment);
95+
mSharedViewModel.requestAddMoment(moment);
9696
nav().navigateUp();
9797
}
9898
return true;

jetpack_java/src/main/java/com/kunminx/jetpack_java/sample_05_navigation/ui/NavigationListFragment.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
7171
mListViewModel.list.setValue(moments);
7272
});
7373

74-
mSharedViewModel.moment.observe(getViewLifecycleOwner(), moment -> {
74+
mSharedViewModel.getMoment().observeInFragment(this, moment -> {
7575
mListViewModel.list.getValue().add(0, moment);
7676
mListViewModel.list.setValue(mListViewModel.list.getValue());
7777
});
@@ -85,7 +85,7 @@ public void fabClick() {
8585
}
8686

8787
public void back() {
88-
mSharedViewModel.closeActivity.setValue(true);
88+
mSharedViewModel.requestCloseActivity();
8989
}
9090
}
9191
}

jetpack_java/src/main/java/com/kunminx/jetpack_java/sample_05_navigation/ui/NavigationLocationFragment.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c
5454

5555
DataBindingLocationAdapter adapter = new DataBindingLocationAdapter(mActivity.getApplicationContext());
5656
adapter.setOnItemClickListener(((item, position) -> {
57-
mSharedViewModel.location.setValue(item.getLocationName());
57+
mSharedViewModel.requestAddLocation(item.getLocationName());
5858
nav().navigateUp();
5959
}));
6060
binding.setAdapter(adapter);

jetpack_java/src/main/java/com/kunminx/jetpack_java/sample_05_navigation/ui/NavigationMainActivity.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ protected void onCreate(Bundle savedInstanceState) {
3636

3737
DataBindingUtil.setContentView(this, R.layout.activity_main_navigation);
3838

39-
mSharedViewModel.closeActivity.observe(this, aBoolean -> {
39+
mSharedViewModel.getCloseActivity().observeInActivity(this, aBoolean -> {
4040
finish();
4141
});
4242
}

jetpack_java/src/main/java/com/kunminx/jetpack_java/sample_05_navigation/ui/callback/SharedViewModel.java

+30-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import androidx.lifecycle.ViewModel;
66

7+
import com.kunminx.architecture.ui.callback.ProtectedUnPeekLiveData;
78
import com.kunminx.architecture.ui.callback.UnPeekLiveData;
89
import com.kunminx.jetpack_java.common_data.bean.Moment;
910

@@ -22,8 +23,34 @@
2223
*/
2324
public class SharedViewModel extends ViewModel {
2425

25-
public final UnPeekLiveData<String> location = new UnPeekLiveData<>();
26-
public final UnPeekLiveData<Moment> moment = new UnPeekLiveData<>();
27-
public final UnPeekLiveData<Boolean> closeActivity = new UnPeekLiveData<>();
26+
private UnPeekLiveData<String> location;
27+
private UnPeekLiveData<Moment> moment;
28+
private UnPeekLiveData<Boolean> closeActivity;
2829

30+
public ProtectedUnPeekLiveData<String> getLocation() {
31+
if (location == null) location = new UnPeekLiveData<>();
32+
return location;
33+
}
34+
35+
public ProtectedUnPeekLiveData<Moment> getMoment() {
36+
if (moment == null) moment = new UnPeekLiveData<>();
37+
return moment;
38+
}
39+
40+
public ProtectedUnPeekLiveData<Boolean> getCloseActivity() {
41+
if (closeActivity == null) closeActivity = new UnPeekLiveData<>();
42+
return closeActivity;
43+
}
44+
45+
public void requestAddMoment(Moment moment) {
46+
this.moment.setValue(moment);
47+
}
48+
49+
public void requestCloseActivity() {
50+
this.closeActivity.setValue(true);
51+
}
52+
53+
public void requestAddLocation(String locationName) {
54+
this.location.setValue(locationName);
55+
}
2956
}

jetpack_kotlin/src/main/java/com/flywith24/jetpack_kotlin/common_data/bean/Moment.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ import kotlinx.android.parcel.Parcelize
1111
*/
1212
@Parcelize
1313
data class Moment(
14-
val uuid: String,
14+
var uuid: String,
1515
val content: String?,
1616
val location: String?,
1717
val imgUrl: String,
18-
val username: String,
19-
val userAvatar: String
18+
var username: String,
19+
var userAvatar: String
2020
) : Parcelable

jetpack_kotlin/src/main/java/com/flywith24/jetpack_kotlin/sample_04_databinding/ui/DataBindingLocationActivity.kt

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import androidx.databinding.DataBindingUtil
88

99
import com.flywith24.jetpack_kotlin.R
1010
import com.flywith24.jetpack_kotlin.common_data.Configs
11+
import com.flywith24.jetpack_kotlin.common_data.bean.Moment
1112
import com.flywith24.jetpack_kotlin.databinding.KotlinActivityLocationDatabindingBinding
1213
import com.flywith24.jetpack_kotlin.sample_02_livedata.domain.LiveDataLocationManager
1314
import com.flywith24.jetpack_kotlin.sample_04_databinding.ui.adapter.DataBindingLocationAdapter

version_config/src/main/java/com/flywith24/version_config/dependencies/ThirdParty.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ object ThirdParty {
2020
}
2121

2222
object Archi {
23-
const val unPeekLiveData = "com.kunminx.archi:unpeek-livedata:3.2.3-beta10"
23+
const val unPeekLiveData = "com.kunminx.archi:unpeek-livedata:4.4.1-beta1"
2424
}
2525

2626
const val roundedImageView = "com.makeramen:roundedimageview:2.3.0"

0 commit comments

Comments
 (0)