diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a1c1f74..24ff984 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -56,7 +56,8 @@ android:label="@string/title_activity_room_input_key" android:screenOrientation="landscape" /> - + + \ No newline at end of file diff --git a/app/src/main/java/com/example/sprout/refactor/activity/RoomInputKeyActivity.java b/app/src/main/java/com/example/sprout/refactor/activity/RoomInputKeyActivity.java new file mode 100644 index 0000000..2e14d5f --- /dev/null +++ b/app/src/main/java/com/example/sprout/refactor/activity/RoomInputKeyActivity.java @@ -0,0 +1,58 @@ +package com.example.sprout.refactor.activity; + +import android.content.Intent; +import android.databinding.DataBindingUtil; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.widget.Toast; + +import com.example.sprout.R; +import com.example.sprout.Sprout; +import com.example.sprout.databinding.RfActivityRoomInputKeyBinding; +import com.example.sprout.refactor.common.ActivityEvent; +import com.example.sprout.refactor.contract.ViewContract; +import com.example.sprout.refactor.viewmodel.RoomInputKeyViewModel; + +/** + * ルーム入室(key)のActivity + * + * @author matsumoto_k + */ +public class RoomInputKeyActivity extends AppCompatActivity implements ViewContract { + + private RfActivityRoomInputKeyBinding binding = null; + private RoomInputKeyViewModel roomInputKeyViewModel = null; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + binding = DataBindingUtil.setContentView(this, R.layout.rf_activity_room_input_key); + roomInputKeyViewModel = new RoomInputKeyViewModel(Sprout.get().getRoomRepository(), (ViewContract) this); + binding.setViewModel(roomInputKeyViewModel); + getLifecycle().addObserver(roomInputKeyViewModel); + } + + @Override + public void startActivity(ActivityEvent event) { + switch (event) { + case ROOM_MAIN: + startActivity(new Intent(RoomInputKeyActivity.this, RoomMainActivity.class)); + break; + } + } + + @Override + public void finishActivity() { + finish(); + } + + @Override + public void showShortToast(String message) { + Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); + } + + @Override + public void showLongToast(String message) { + Toast.makeText(this, message, Toast.LENGTH_LONG).show(); + } +} diff --git a/app/src/main/java/com/example/sprout/refactor/activity/RoomListActivity.java b/app/src/main/java/com/example/sprout/refactor/activity/RoomListActivity.java index 16e4764..c60d73a 100644 --- a/app/src/main/java/com/example/sprout/refactor/activity/RoomListActivity.java +++ b/app/src/main/java/com/example/sprout/refactor/activity/RoomListActivity.java @@ -39,6 +39,9 @@ case ROOM_MAIN: startActivity(new Intent(RoomListActivity.this, RoomMainActivity.class)); break; + case INPUT_KEY: + startActivity(new Intent(RoomListActivity.this, RoomInputKeyActivity.class)); + break; } } diff --git a/app/src/main/java/com/example/sprout/refactor/common/ActivityEvent.java b/app/src/main/java/com/example/sprout/refactor/common/ActivityEvent.java index d114149..6558af8 100644 --- a/app/src/main/java/com/example/sprout/refactor/common/ActivityEvent.java +++ b/app/src/main/java/com/example/sprout/refactor/common/ActivityEvent.java @@ -8,5 +8,6 @@ public enum ActivityEvent { ROOM_LIST, // ルームリストを開く CREATE_ROOM, // ルームを作る - ROOM_MAIN // メインルームを開く + ROOM_MAIN, // メインルームを開く + INPUT_KEY // 入室(pass有) } diff --git a/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomInputKeyViewModel.java b/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomInputKeyViewModel.java new file mode 100644 index 0000000..7b61bd4 --- /dev/null +++ b/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomInputKeyViewModel.java @@ -0,0 +1,20 @@ +package com.example.sprout.refactor.viewmodel; + +import com.example.sprout.refactor.contract.ViewContract; +import com.example.sprout.refactor.repository.RoomRepository; + +/** + * ルーム入室(key)のViewModel + * + * @author matsumoto_k + */ +public class RoomInputKeyViewModel extends BaseViewModel { + + private RoomRepository roomRepository = null; + private ViewContract viewContract = null; + + public RoomInputKeyViewModel(RoomRepository roomRepository, ViewContract viewContract) { + this.roomRepository = roomRepository; + this.viewContract = viewContract; + } +} diff --git a/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomListViewModel.java b/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomListViewModel.java index 8b67b42..6184f4f 100644 --- a/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomListViewModel.java +++ b/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomListViewModel.java @@ -39,7 +39,8 @@ this.listener = room -> { if (room.hasKey()) { - // TODO input key + PreferenceUtil.getInstance().saveInt(PreferenceUtil.Key.ROOM_ID, room.getRoomId()); + viewContract.startActivity(ActivityEvent.INPUT_KEY); } else { roomRepository.enterRoom(room.getRoomId(), PreferenceUtil.getInstance().getInt(PreferenceUtil.Key.USER_ID)); } diff --git a/app/src/main/res/layout/rf_activity_room_input_key.xml b/app/src/main/res/layout/rf_activity_room_input_key.xml new file mode 100644 index 0000000..03d4d89 --- /dev/null +++ b/app/src/main/res/layout/rf_activity_room_input_key.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 30e36cd..6f6a652 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -16,7 +16,7 @@ 戻る 更新 ルーム作成 - + 準備完了 準備未完了 作成