· 6 years ago · Jul 03, 2019, 02:58 AM
1public class ScheduleActivity extends Activity implements AdapterView.OnItemClickListener,
2 View.OnClickListener {
3
4 public static final String ALARM_SETTINGS_KEY = "alarm_settings";
5
6 private Toolbar mToolbar;
7 private List<BodyAlarmSettings> mListBodyAlarmSettings;
8 private ScheduleAdapter mAdapter;
9 private ListView mLvForSchedules;
10
11 private LinearLayout mLlAddAction;
12 private CheckBox mCheckbox;
13 private TextView mTimeSchedule;
14 private TextView mTaskSchedule;
15
16 private MainDB mDataBase;
17 private Map<String, BodyAlarmSettings> mBodyAlarmSettings;
18
19 private String mIdToken;
20 private RetrofitService mService;
21 private int mAlarmTimeInMinutes;
22
23 @Override
24 protected void onCreate(@Nullable Bundle savedInstanceState) {
25 super.onCreate(savedInstanceState);
26 setContentView(R.layout.activity_schedule_list);
27
28 getToolbar();
29 detachClock();
30
31 mService = StartApp.get(this).getRetrofitClient();
32 mDataBase = StartApp.get(this).loadMainDatabase();
33 mIdToken = mDataBase.loadIdTokenFromDB();
34 sendRequestIdTokenForAlarm();
35 mAlarmTimeInMinutes = mDataBase.loadChangedAlarmTime();
36
37 mLlAddAction = findViewById(R.id.llAddAction);
38 mLlAddAction.setOnClickListener(this);
39
40 mTimeSchedule = findViewById(R.id.tvTimeSchedule);
41 mTaskSchedule = findViewById(R.id.tvTaskSchedule);
42
43 mLvForSchedules = findViewById(R.id.lvForScheduleList);
44 mLvForSchedules.setOnItemClickListener(this);
45
46 mListBodyAlarmSettings = mDataBase.loadAlarmSettings();
47 mAdapter = new ScheduleAdapter(this, mListBodyAlarmSettings);
48 mLvForSchedules.setAdapter(mAdapter);
49 }
50
51 @Override
52 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
53 Intent intent = new Intent(this, SettingsListScheduleActivity.class);
54 intent.putExtra(ALARM_SETTINGS_KEY, mListBodyAlarmSettings.get(position));
55 intent.putExtra("position", id);
56 startActivity(intent);
57 }
58
59public class SettingsListScheduleActivity extends BaseActivity implements View.OnClickListener {
60
61 @Override
62 protected void onCreate(@Nullable Bundle savedInstanceState) {
63 super.onCreate(savedInstanceState);
64 setContentView(R.layout.activity_settings_list_schedule);
65
66 getToolbar();
67 detachClock();
68
69 Intent intent = getIntent();
70 mBodyAlarmSettings = (BodyAlarmSettings) intent.getSerializableExtra(ScheduleActivity.ALARM_SETTINGS_KEY);
71 mId = mBodyAlarmSettings.getId();
72
73 public void showTimePicker() {
74 final Calendar calendar = Calendar.getInstance();
75 final int hour = calendar.get(Calendar.HOUR_OF_DAY);
76 int minute = calendar.get(Calendar.MINUTE);
77
78 TimePickerDialog.OnTimeSetListener onTimeSetListener =
79 new TimePickerDialog.OnTimeSetListener() {
80 @SuppressLint({"SetTextI18n", "NewApi"})
81 @Override
82 public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
83 if (view.isShown()) {
84 calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
85 calendar.set(Calendar.MINUTE, minute);
86
87 mGetHour = hourOfDay;
88 mGetMinute = minute;
89 mAlarmTimeInMinutes = mGetHour * 60 + mGetMinute;
90 time = mAlarmTimeInMinutes;
91 action = "update";
92 // id = mDataBase.loadAlarmId();
93
94 postAlarmSettings();
95
96 /* BodyAlarmSettings body = new BodyAlarmSettings();
97 body.setId(mId);
98 body.setTime(mAlarmTimeInMinutes);
99 mDataBase.saveTimeForListSchedule(body);
100 Log.d("Id", "" + mId); */
101 mBodyAlarmSettings.setTime(mAlarmTimeInMinutes);
102 mDataBase.updateTimeAlarm(mBodyAlarmSettings);
103
104 if (mGetMinute < 10) {
105 mSelectedTime.setText(String.valueOf(mGetHour) + ":0" + String.valueOf(mGetMinute));
106 } else {
107 mSelectedTime.setText(String.valueOf(mGetHour) + ":" + String.valueOf(mGetMinute));
108 }
109
110 mAlarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
111 mIntent = new Intent(getApplicationContext(), AlarmReceiver.class);
112
113 myThread.start();
114 }
115 }
116 };
117
118 TimePickerDialog timePickerDialog =
119 new TimePickerDialog(SettingsListScheduleActivity.this,
120 android.R.style.Theme_Holo_Light_Dialog_NoActionBar,
121 onTimeSetListener,
122 hour,
123 minute,
124 true);
125 timePickerDialog.setTitle("Choice your time: ");
126 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
127 Objects.requireNonNull(timePickerDialog
128 .getWindow())
129 .setBackgroundDrawableResource(android.R.color.transparent);
130 }
131 timePickerDialog.show();
132 }
133
134public class MainDB extends SQLiteOpenHelper {
135
136 private static final String DB_NAME = "BabyGymDB";
137 private static final int DB_VERSION = 2;
138 private static final String _id = "_id";
139
140private static final String ID_ALARM = "Id";
141 private static final String TIME_ALARM = "Time";
142 private static final String ID_BLOCK_ALARM = "Id_Block";
143 private static final String TITLE_BLOCK_ALARM = "Block_Title";
144 private static final String WORKWEEK = "Workweek";
145 private static final String ACTIVE_CHECKBOX = "Active";
146 private static final String ID_SOUND = "Id_Sound";
147 private static final String DURATION_BLOCK = "Duration_Block";
148
149private final String CREATE_ALARM_TABLE = "CREATE TABLE IF NOT EXISTS " +
150 ALARM_TABLE + "(" +
151 _id + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
152 ID_ALARM + " TEXT, " +
153 TIME_ALARM + " INTEGER, " +
154 ID_BLOCK_ALARM + " INTEGER, " +
155 TITLE_BLOCK_ALARM + " TEXT, " +
156 WORKWEEK + " TEXT, " +
157 ACTIVE_CHECKBOX + " INTEGER, " +
158 ID_SOUND + " INTEGER, " +
159 DURATION_BLOCK + " INTEGER" + ");";
160
161public void updateTimeAlarm(BodyAlarmSettings model) {
162 SQLiteDatabase db = this.getWritableDatabase();
163 ContentValues cv = new ContentValues();
164 db.delete(ALARM_TABLE, null, null);
165
166 cv.put(ID_ALARM, model.getId());
167 cv.put(TIME_ALARM, model.getTime());
168 cv.put(ID_BLOCK_ALARM, model.getIdBlock());
169 cv.put(TITLE_BLOCK_ALARM, model.getBlockTitle());
170 cv.put(WORKWEEK, model.getWorkweek());
171 cv.put(ACTIVE_CHECKBOX, model.getActive());
172 cv.put(ID_SOUND, model.getIdSound());
173 cv.put(DURATION_BLOCK, model.getDurationBlock());
174
175 db.update(ALARM_TABLE, cv, "Id = ?", new String[]{String.valueOf(ID_ALARM)});
176 db.close();
177 }