RoomViewModelの更新
Stateに関するコードの追加
1 parent 83e7537 commit 467abd4e08b1676d90ba5d0f8e05d40462bc67a1
s-michishita authored on 4 Oct 2022
Showing 2 changed files
View
28
app/src/main/AndroidManifest.xml
android:exported="false" />
<activity
android:name=".MainActivity"
android:exported="true"
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
 
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
android:screenOrientation="landscape" />
<activity
android:name=".EnterRoomActivity"
android:exported="true"
android:screenOrientation="landscape" />
android:screenOrientation="landscape" />
<activity
android:name=".MemberRoomActivity"
android:exported="true"
android:screenOrientation="landscape" />
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
 
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
 
<activity
android:name=".OwnerRoomActivity"
android:exported="true"
View
38
app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java
//フィールド
private String rid;
final private MutableLiveData<List<Member>> membersLiveData;
final private MutableLiveData<Settings> settingsMutableLiveData;
final private MutableLiveData<Integer> stateLiveData;
final private Retrofit retrofit;
 
//更新比較用フィールド
private List<Member> membersPreData;
//コンストラクタ
public RoomViewModel() {
this.membersLiveData = new MutableLiveData<>();
this.settingsMutableLiveData = new MutableLiveData<>();
this.stateLiveData = new MutableLiveData<>();
this.retrofit = new Retrofit.Builder()
.baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/iris/")
.addConverterFactory(JacksonConverterFactory.create())
.build();
}
public LiveData<Settings> getSettingsLiveData() {
return this.settingsMutableLiveData;
}
public LiveData<Integer> getStateLiveData() {
return this.stateLiveData;
}
 
//-----------------------------------------------------------------------------
// updates
@Override
public void update(){
updateMembers(rid);
updateSettings(rid);
updateState(rid);
}
 
//部屋の情報の更新(RoomJson)
//部屋の情報の更新(List<Members>)
public void updateMembers(String rid) {
 
final RoomsRest roomsRest = retrofit.create(RoomsRest.class);
Call<List<Member>> call = roomsRest.getRoomMember(rid);
public void onFailure(Call<Settings> call, Throwable t) {
}
});
}
 
//部屋の状態情報の更新(Integer)
public void updateState(String rid) {
final RoomsRest roomsRest = retrofit.create(RoomsRest.class);
Call<Integer> call = roomsRest.getState(rid);
 
call.enqueue(new Callback<Integer>() {
@Override
public void onResponse(Call<Integer> call, Response<Integer> response) {
if (response.isSuccessful()){
 
stateLiveData.setValue(response.body());
 
/*
if(response.body().equals(settingsPreData)){
//値が一緒なら書き換えない
}else{
//値が異なるときのみライブデータを上書き
settingsMutableLiveData.setValue(response.body());
settingsPreData = response.body();
}*/
 
}
}
 
@Override
public void onFailure(Call<Integer> call, Throwable t) {
}
});
}
}