ScaleActivity.java 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. package com.jyc.threegames.activity;
  2. import androidx.annotation.NonNull;
  3. import androidx.appcompat.app.AppCompatActivity;
  4. import android.app.Activity;
  5. import android.app.Dialog;
  6. import android.app.ProgressDialog;
  7. import android.app.TimePickerDialog;
  8. import android.content.Intent;
  9. import android.os.Bundle;
  10. import android.text.TextUtils;
  11. import android.widget.TextView;
  12. import android.widget.TimePicker;
  13. import android.widget.Toast;
  14. import com.jyc.threegames.App;
  15. import com.jyc.threegames.R;
  16. import com.jyc.threegames.activity.base.BaseActivity;
  17. import com.jyc.threegames.bean.EventMessage;
  18. import com.jyc.threegames.bean.result.ResGameInfo;
  19. import com.jyc.threegames.controller.GameController;
  20. import com.jyc.threegames.controller.LoginController;
  21. import com.jyc.threegames.net.SimpleRequest;
  22. import com.jyc.threegames.utils.ToastUtil;
  23. import org.greenrobot.eventbus.EventBus;
  24. import java.text.SimpleDateFormat;
  25. import java.util.Calendar;
  26. import java.util.Date;
  27. import java.util.Locale;
  28. import butterknife.BindView;
  29. import butterknife.OnClick;
  30. public class ScaleActivity extends BaseActivity {
  31. private static final String PARAM_PLAY_GAME_ID = "playGameId";
  32. private static final String PARAM_EVENT_DATE = "eventDate";
  33. private long mPlayGameId = -1;
  34. private String mEventDate = "";
  35. private String mGetUp = "";
  36. private String mContact = "";
  37. private String mWork = "";
  38. private String mDinner = "";
  39. private String mSleep = "";
  40. @BindView(R.id.get_up)
  41. TextView mTVGetUp;
  42. @BindView(R.id.contact)
  43. TextView mTVContact;
  44. @BindView(R.id.work)
  45. TextView mTVWork;
  46. @BindView(R.id.dinner)
  47. TextView mTVDinner;
  48. @BindView(R.id.sleep)
  49. TextView mTVSleep;
  50. @BindView(R.id.date)
  51. TextView mTVDate;
  52. private long mCurrentDate = System.currentTimeMillis();
  53. @Override
  54. protected void init(Bundle instance) {
  55. super.init(instance);
  56. App.CAN_PLAY_GAME = false;
  57. if (instance != null){
  58. mPlayGameId = instance.getLong(PARAM_PLAY_GAME_ID);
  59. mEventDate = instance.getString(PARAM_EVENT_DATE);
  60. }else{
  61. mPlayGameId = getIntent().getLongExtra(PARAM_PLAY_GAME_ID, -1);
  62. mEventDate = getIntent().getStringExtra(PARAM_EVENT_DATE);
  63. }
  64. if (!LoginController.getInstance().isCurrentUserAdmin() && (mPlayGameId == -1 || TextUtils.isEmpty(mEventDate))) {
  65. finish();
  66. }
  67. if (!LoginController.getInstance().isCurrentUserAdmin()){
  68. new SimpleRequest<>().request(this, GameController.getInstance().enterScale(mPlayGameId));
  69. }
  70. if (!TextUtils.isEmpty(mEventDate))
  71. mTVDate.setText(mEventDate.split(" ")[0]);
  72. mNeedToWatch = true;
  73. }
  74. @Override
  75. protected String getPageTitle() {
  76. return "填寫量表";
  77. }
  78. @Override
  79. protected void onSaveInstanceState(@NonNull Bundle outState) {
  80. super.onSaveInstanceState(outState);
  81. outState.putLong(PARAM_PLAY_GAME_ID, mPlayGameId);
  82. outState.putString(PARAM_EVENT_DATE, mEventDate);
  83. }
  84. @Override
  85. protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
  86. super.onRestoreInstanceState(savedInstanceState);
  87. mPlayGameId = savedInstanceState.getLong(PARAM_PLAY_GAME_ID);
  88. mEventDate = savedInstanceState.getString(PARAM_EVENT_DATE);
  89. }
  90. @Override
  91. protected int getRootLayout() {
  92. return R.layout.activity_scale;
  93. }
  94. @Override
  95. protected void onDestroy() {
  96. super.onDestroy();
  97. App.CAN_PLAY_GAME = true;
  98. }
  99. @Override
  100. protected String getAlertText() {
  101. return "您好,\n閒置超時,\n請繼續操作!";
  102. }
  103. @OnClick(R.id.get_up)
  104. public void clickGetUp(){
  105. Dialog dialog = getTimeDialog(new TimePickerDialog.OnTimeSetListener() {
  106. @Override
  107. public void onTimeSet(TimePicker timePicker, int hour, int min) {
  108. mGetUp = hour + ":" + min;
  109. mTVGetUp.setText(mGetUp);
  110. }
  111. });
  112. dialog.show();
  113. }
  114. @OnClick(R.id.get_up_none)
  115. public void clickGetUpNone(){
  116. mGetUp = "沒做";
  117. mTVGetUp.setText("沒做");
  118. }
  119. @OnClick(R.id.contact)
  120. public void clickContact(){
  121. Dialog dialog = getTimeDialog(new TimePickerDialog.OnTimeSetListener() {
  122. @Override
  123. public void onTimeSet(TimePicker timePicker, int hour, int min) {
  124. mContact = hour + ":" + min;
  125. mTVContact.setText(mContact);
  126. }
  127. });
  128. dialog.show();
  129. }
  130. @OnClick(R.id.contact_none)
  131. public void clickContactNone(){
  132. mContact = "沒做";
  133. mTVContact.setText("沒做");
  134. }
  135. @OnClick(R.id.work)
  136. public void clickWork(){
  137. Dialog dialog = getTimeDialog(new TimePickerDialog.OnTimeSetListener() {
  138. @Override
  139. public void onTimeSet(TimePicker timePicker, int hour, int min) {
  140. mWork = hour + ":" + min;
  141. mTVWork.setText(mWork);
  142. }
  143. });
  144. dialog.show();
  145. }
  146. @OnClick(R.id.work_none)
  147. public void clickWorkNone(){
  148. mWork = "沒做";
  149. mTVWork.setText("沒做");
  150. }
  151. @OnClick(R.id.dinner)
  152. public void clickDinner(){
  153. Dialog dialog = getTimeDialog(new TimePickerDialog.OnTimeSetListener() {
  154. @Override
  155. public void onTimeSet(TimePicker timePicker, int hour, int min) {
  156. mDinner = hour + ":" + min;
  157. mTVDinner.setText(mDinner);
  158. }
  159. });
  160. dialog.show();
  161. }
  162. @OnClick(R.id.dinner_none)
  163. public void clickDinnerNone(){
  164. mDinner = "沒做";
  165. mTVDinner.setText("沒做");
  166. }
  167. @OnClick(R.id.sleep)
  168. public void clickSleep(){
  169. Dialog dialog = getTimeDialog(new TimePickerDialog.OnTimeSetListener() {
  170. @Override
  171. public void onTimeSet(TimePicker timePicker, int hour, int min) {
  172. mSleep = hour + ":" + min;
  173. mTVSleep.setText(mSleep);
  174. }
  175. });
  176. dialog.show();
  177. }
  178. @OnClick(R.id.sleep_none)
  179. public void clickSleepNone(){
  180. mSleep = "沒做";
  181. mTVSleep.setText("沒做");
  182. }
  183. @OnClick(R.id.sure)
  184. public void save(){
  185. if (mGetUp.equals("")){
  186. ToastUtil.showToast(this, "請選擇下床時間");
  187. return;
  188. }
  189. if (mContact.equals("")){
  190. ToastUtil.showToast(this, "請選擇第一次與人接觸時間");
  191. return;
  192. }
  193. if (mWork.equals("")){
  194. ToastUtil.showToast(this, "請選擇開始工作,上學,家務,義工活動,照顧家庭或小孩的時間");
  195. return;
  196. }
  197. if (mDinner.equals("")){
  198. ToastUtil.showToast(this, "請選擇吃晚餐的時間");
  199. return;
  200. }
  201. if (mSleep.equals("")){
  202. ToastUtil.showToast(this, "請選擇睡覺的時間");
  203. return;
  204. }
  205. if (LoginController.getInstance().isCurrentUserAdmin()){
  206. ToastUtil.showToast(this, "提交量表成功");
  207. finish();
  208. return;
  209. }
  210. Dialog dialog = new ProgressDialog(this);
  211. dialog.setTitle("正在提交量表");
  212. dialog.show();
  213. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
  214. Calendar calendar = Calendar.getInstance();
  215. String endDate = simpleDateFormat.format(calendar.getTime());
  216. calendar.setTime(new Date(mCurrentDate));
  217. String startDate = simpleDateFormat.format(calendar.getTime());
  218. new SimpleRequest<>().request(this, GameController.getInstance().addScale(
  219. mPlayGameId, startDate, endDate, mEventDate, mContact, mDinner, mGetUp, mSleep, mWork
  220. ), "提交量表失敗!請檢查網絡狀態", dialog, new SimpleRequest.Executor<Object>() {
  221. @Override
  222. public void execute(Object obj) {
  223. EventBus.getDefault().post(new EventMessage());
  224. ToastUtil.showToast(ScaleActivity.this, "提交量表成功");
  225. finish();
  226. }
  227. });
  228. }
  229. private Dialog getTimeDialog(TimePickerDialog.OnTimeSetListener listener){
  230. return new TimePickerDialog(this, listener, 0, 0, true);
  231. }
  232. public static void LAUNCH(Activity context, long playGameId, String eventDate){
  233. Intent intent = new Intent(context, ScaleActivity.class);
  234. intent.putExtra(PARAM_PLAY_GAME_ID, playGameId);
  235. intent.putExtra(PARAM_EVENT_DATE, eventDate);
  236. context.startActivity(intent);
  237. }
  238. }