Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.teachme.activities.Managers.TeacherViews.TeachersTasks;
- import android.content.Intent;
- import android.os.Build;
- import android.support.annotation.NonNull;
- import android.support.annotation.RequiresApi;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.text.Editable;
- import android.text.TextWatcher;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.LinearLayout;
- import android.widget.Toast;
- import com.teachme.DB.Pattern;
- import com.teachme.DB.RestClient;
- import com.teachme.R;
- import com.teachme.global.Global_config;
- import org.json.JSONArray;
- import org.json.JSONException;
- import org.json.JSONObject;
- import java.util.ArrayList;
- import java.util.Collections;
- import retrofit2.Call;
- import retrofit2.Callback;
- import retrofit2.Response;
- public class TaskCompareWordsActivity extends AppCompatActivity implements View.OnClickListener{
- RestClient restService;
- private String _Pattern_Id, _Lesson_Id, lesson_title, pattern_title;
- private static int block_serial_number=-1;
- private EditText editTextName;
- private Button btnInsertBlock, btnSave;
- private ArrayList<EditText> editTexts_list;
- private ArrayList<Blocks> list_of_blocks;
- private LinearLayout layout_blocks;
- private void printPatterInfo(Pattern pattern) {
- System.out.println("getId:" + pattern.getId());
- System.out.println("getLessonId:" + pattern.getLessonId());
- System.out.println("getName:" + pattern.getName());
- System.out.println("getCreatedAt:" + pattern.getCreatedAt());
- System.out.println("getUpdatedAt:" + pattern.getUpdatedAt());
- System.out.println("getVersion:" + pattern.getVersion());
- System.out.println("getJsonText:" + pattern.getJsonText());
- System.out.println("isDeleted:" + pattern.isDeleted());
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- restService = new RestClient();
- setContentView(R.layout.activity_task_compare_words);
- Global_config.returnBack=0;
- _Pattern_Id = "";
- Intent intent = getIntent();
- pattern_title = intent.getStringExtra("pattern_title");
- lesson_title = intent.getStringExtra("lesson_title");
- _Lesson_Id = intent.getStringExtra("lesson_Id");
- _Pattern_Id = intent.getStringExtra("pattern_Id");
- editTexts_list = new ArrayList<>();
- list_of_blocks = new ArrayList<>();
- editTextName = findViewById(R.id.title);
- layout_blocks = findViewById(R.id.layout_blocks);
- btnInsertBlock = findViewById(R.id.btnInsertBlock);
- btnInsertBlock.setOnClickListener(this);
- btnSave = findViewById(R.id.btnSave4);
- btnSave.setOnClickListener(this);
- //TODO: Шаблон существует, запрашиваем его на сервере
- if (_Pattern_Id != null && !_Pattern_Id.isEmpty()) {
- Call<Pattern> call = restService.getService().getPatternById(_Pattern_Id);
- call.enqueue(new Callback<Pattern>() {
- @Override
- public void onResponse(@NonNull Call<Pattern> call, @NonNull Response<Pattern> response) {
- Pattern pattern = response.body();
- printPatterInfo(pattern);
- _Lesson_Id = pattern.getLessonId();
- pattern_title = pattern.getName();
- editTextName.setText(pattern_title);
- ArrayList<String> list = new ArrayList<>();
- ArrayList<String> col1Normal = new ArrayList<>();
- ArrayList<String> col2Normal = new ArrayList<>();
- try {
- JSONObject jsonObject = new JSONObject(pattern.getJsonText());
- JSONArray jsonArray = jsonObject.getJSONArray("Words");
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject explrObject = jsonArray.getJSONObject(i);
- String str = explrObject.getString("textMessage");
- list.add(str);
- }
- } catch (JSONException e) {
- e.printStackTrace();
- }
- for (int k = 0; k < list.size(); k++) {
- if (k % 2 == 0)
- col1Normal.add(list.get(k));
- else
- col2Normal.add(list.get(k));
- }
- System.out.println("col1::" + col1Normal.toString());
- System.out.println("col2::" + col2Normal.toString());
- System.out.println("list_of_blocks.size() = " + list_of_blocks.size());
- // Вставить LinearLayout в котором два EditText'a
- for (int i = 0; i < list.size()/2; i++) {
- LinearLayout linearLayout = new LinearLayout(TaskCompareWordsActivity.this);
- linearLayout.setOrientation(LinearLayout.HORIZONTAL);
- final EditText editText1 = new EditText(TaskCompareWordsActivity.this);
- final EditText editText2 = new EditText(TaskCompareWordsActivity.this);
- final Blocks block1 = new Blocks("");
- list_of_blocks.add(block1);
- final Blocks block2 = new Blocks("");
- list_of_blocks.add(block2);
- for (int k = 0, k2=i; k<col1Normal.size(); k++, k2++) {
- editText1.setEms(8);
- editText1.setText(col1Normal.get(i));
- editText1.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {}
- @Override
- public void afterTextChanged(Editable s) {
- int index = list_of_blocks.indexOf(block1);
- list_of_blocks.get(index).text = editText1.getText().toString();
- }
- });
- editText2.setEms(8);
- editText2.setText(col2Normal.get(i));
- editText2.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {}
- @Override
- public void afterTextChanged(Editable s) {
- int index = list_of_blocks.indexOf(block2);
- list_of_blocks.get(index).text = editText2.getText().toString();
- }
- });
- }
- editTexts_list.add(editText1);
- editTexts_list.add(editText2);
- linearLayout.addView(editText1);
- linearLayout.addView(editText2);
- layout_blocks.addView(linearLayout);
- }
- }
- @Override
- public void onFailure(@NonNull Call<Pattern> call, @NonNull Throwable t) {
- Toast.makeText(TaskCompareWordsActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
- }
- });
- }
- //TODO: Шаблон не существует, заполняем его title & text автоматически
- else {
- editTextName.setText(pattern_title);
- }
- //TODO: Функционал шаблона Compare words
- editTextName.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {}
- @Override
- public void afterTextChanged(Editable s) {
- pattern_title = String.valueOf(editTextName.getText());
- }
- });
- }
- class Blocks{
- private String text;
- Blocks(String t){
- text = t;
- block_serial_number++;
- }
- }
- @RequiresApi(api = Build.VERSION_CODES.KITKAT)
- @Override
- public void onClick(View v) {
- switch (v.getId()){
- case R.id.btnSave4:
- //TODO: save pattern in DB
- final JSONArray array = new JSONArray();
- for (int i=0; i<list_of_blocks.size(); i++) {
- JSONObject jsonObject = null;
- try {
- jsonObject = new JSONObject();
- jsonObject.put("textMessage", list_of_blocks.get(i).text);
- array.put(jsonObject);
- } catch (JSONException e) {
- e.printStackTrace();
- }
- }
- System.out.println("JSON ARRAY to string:" + array.toString());
- final JSONObject mainObj = new JSONObject();
- try {
- mainObj.put("Words", array);
- } catch (JSONException e) {
- e.printStackTrace();
- }
- System.out.println("mainObj to string:" + mainObj.toString());
- if (_Pattern_Id == null || _Pattern_Id.isEmpty()) {
- //TODO No Id -> new pattern
- Pattern pattern = new Pattern();
- pattern.setJsonText(array.toString());
- pattern.setName(editTextName.getText().toString());
- pattern.setLessonId(_Lesson_Id);
- pattern.setType("compare words");
- restService.getService().addPattern(pattern).enqueue(new Callback<Pattern>() {
- @Override
- public void onResponse(@NonNull Call<Pattern> call, @NonNull Response<Pattern> response) {
- if (response.code() == 201) {
- Toast.makeText(TaskCompareWordsActivity.this, "New Pattern Added.", Toast.LENGTH_SHORT).show();
- Global_config.returnBack=1;
- finish();
- } else {
- Toast.makeText(TaskCompareWordsActivity.this, "Not Created:" + response.errorBody(), Toast.LENGTH_SHORT).show();
- }
- }
- @Override
- public void onFailure(@NonNull Call<Pattern> call, @NonNull Throwable t) {
- Toast.makeText(TaskCompareWordsActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
- }
- });
- } else {
- //TODO Update existing pattern
- Call<Pattern> call = restService.getService().getPatternById(_Pattern_Id);
- call.enqueue(new Callback<Pattern>() {
- @Override
- public void onResponse(@NonNull Call<Pattern> call, @NonNull Response<Pattern> response) {
- Pattern existingPattern = response.body();
- existingPattern.setJsonText(mainObj.toString());
- existingPattern.setName(editTextName.getText().toString());
- existingPattern.setLessonId(_Lesson_Id);
- existingPattern.setType("compare words");
- // Use Backend API to update pattern
- restService.getService().updatePatternById(_Pattern_Id, existingPattern).enqueue(new Callback<Pattern>() {
- @Override
- public void onResponse(@NonNull Call<Pattern> call, @NonNull Response<Pattern> response) {
- Toast.makeText(TaskCompareWordsActivity.this, response.body().getName() + " updated.", Toast.LENGTH_SHORT).show();
- Global_config.returnBack=1;
- finish();
- }
- @Override
- public void onFailure(@NonNull Call<Pattern> call, @NonNull Throwable t) {
- Toast.makeText(TaskCompareWordsActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
- }
- });
- }
- @Override
- public void onFailure(@NonNull Call<Pattern> call, @NonNull Throwable t) {
- Toast.makeText(TaskCompareWordsActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
- }
- });
- }
- break;
- case R.id.btnInsertBlock:
- // Вставить LinearLayout в котором два EditText'a
- LinearLayout linearLayout = new LinearLayout(this);
- linearLayout.setOrientation(LinearLayout.HORIZONTAL);
- final EditText editText1 = new EditText(this);
- final Blocks block1 = new Blocks("");
- list_of_blocks.add(block1);
- editText1.setEms(8);
- editText1.setHint("Часть 1");
- editText1.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {}
- @Override
- public void afterTextChanged(Editable s) {
- int index = list_of_blocks.indexOf(block1);
- list_of_blocks.get(index).text = editText1.getText().toString();
- }
- });
- final EditText editText2 = new EditText(this);
- final Blocks block2 = new Blocks("");
- list_of_blocks.add(block2);
- editText2.setEms(8);
- editText2.setHint("Часть 2");
- editText2.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {}
- @Override
- public void afterTextChanged(Editable s) {
- int index = list_of_blocks.indexOf(block2);
- list_of_blocks.get(index).text = editText2.getText().toString();
- }
- });
- editTexts_list.add(editText1);
- editTexts_list.add(editText2);
- System.out.println("size of EditTexts_list = " + editTexts_list.size());
- linearLayout.addView(editText1);
- linearLayout.addView(editText2);
- layout_blocks.addView(linearLayout);
- break;
- }
- }
- }
Add Comment
Please, Sign In to add comment