Skip to content
This repository has been archived by the owner on Apr 28, 2022. It is now read-only.

Commit

Permalink
Use Check Box instead of Number in Boolean parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
Sea-n committed Sep 12, 2017
1 parent 306b086 commit 222bfc6
Show file tree
Hide file tree
Showing 4 changed files with 108 additions and 94 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ android {
applicationId "taipei.sean.telegram.botplayground"
minSdkVersion 21
targetSdkVersion 25
versionCode 40
versionName "1.6.0"
versionCode 41
versionName "1.6.1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
manifestPlaceholders = [onesignal_app_id : "07dbb755-8e15-4edb-9c2c-281efae2b677",
// Project number pulled from dashboard, local value is ignored.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
Expand Down Expand Up @@ -214,29 +213,13 @@ private void submit() {

final int inputCount = paramAdapter.getItemCount();
for (int i = 0; i < inputCount; i++) {
TextInputLayout textInputLayout = (TextInputLayout) paramAdapter.getViewByPos(i);
InstantComplete textInputEditText = (InstantComplete) textInputLayout.getEditText();
if (null == textInputEditText) {
Log.w("caller", "edit text null");
continue;
}
CharSequence hint = textInputLayout.getHint();
if (null == hint) {
Log.w("caller", "hint null");
continue;
}
String name = hint.toString();
CharSequence valueChar = textInputEditText.getText();
if (null == valueChar) {
Log.w("caller", "value char null");
continue;
}
String value = valueChar.toString();
String name = paramAdapter.getName(i);
String value = paramAdapter.getValue(i);

if (Objects.equals(value, "")) {
Log.w("caller", "value empty");
if (null == value)
continue;
if (Objects.equals(value, ""))
continue;
}

db.insertFav(name, value, method);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
Expand Down Expand Up @@ -204,29 +203,13 @@ private void submit() {

final int inputCount = paramAdapter.getItemCount();
for (int i = 0; i < inputCount; i++) {
TextInputLayout textInputLayout = (TextInputLayout) paramAdapter.getViewByPos(i);
InstantComplete textInputEditText = (InstantComplete) textInputLayout.getEditText();
if (null == textInputEditText) {
Log.w("telegraph", "edit text null");
continue;
}
CharSequence hint = textInputLayout.getHint();
if (null == hint) {
Log.w("telegraph", "hint null");
continue;
}
String name = hint.toString();
CharSequence valueChar = textInputEditText.getText();
if (null == valueChar) {
Log.w("telegraph", "value char null");
continue;
}
String value = valueChar.toString();
String name = paramAdapter.getName(i);
String value = paramAdapter.getValue(i);

if (Objects.equals(value, "")) {
Log.w("telegraph", "value empty");
if (null == value)
continue;
if (Objects.equals(value, ""))
continue;
}

db.insertFav(name, value, method);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,15 @@
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.EditText;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

import taipei.sean.telegram.botplayground.FavStructure;
import taipei.sean.telegram.botplayground.InstantComplete;
Expand Down Expand Up @@ -77,84 +80,105 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
maxChar = data.getInt("maxChar");
Log.d("ada", "add " + name);
} catch (JSONException e) {
Log.e("caller", "ada", e);
Log.e("ada", "ada", e);
}



TextInputLayout textInputLayout = (TextInputLayout) holder.itemView;
textInputLayout.setHint(name);
ViewGroup.LayoutParams layoutParams = textInputLayout.getLayoutParams();
layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
textInputLayout.setLayoutParams(layoutParams);

iListView.add(textInputLayout);


InstantComplete autoCompleteTextView = new InstantComplete(textInputLayout.getContext());

if (req)
autoCompleteTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, R.drawable.ic_star_border_black_24dp, 0);

switch (type) {
case "Boolean":
case "Bool":
type = "bool";
break;
case "Float number":
type = "float";
autoCompleteTextView.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
autoCompleteTextView.setSingleLine();
break;
case "Boolean":
case "Bool":
case "Integer":
case "int":
case "int128":
case "long":
type = "int";
autoCompleteTextView.setRawInputType(InputType.TYPE_CLASS_NUMBER);
autoCompleteTextView.setSingleLine();
break;
case "Integer or String":
case "string":
autoCompleteTextView.setSingleLine();
type = "str";
break;
}

if (maxChar > 0) {
autoCompleteTextView.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxChar)});
}

String text = db.getParam(name);
autoCompleteTextView.setText(text);

List<FavStructure> favs = db.getFavs(name);
ArrayList<String> favList = new ArrayList<>();
for (int i = 0; i < favs.size(); i++)
favList.add(favs.get(i).value);
SeanAdapter<String> favAdapter = new SeanAdapter<>(context, android.R.layout.simple_spinner_dropdown_item, favList);
autoCompleteTextView.setAdapter(favAdapter);

final String finalDesc = desc;
autoCompleteTextView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
Snackbar.make(view, finalDesc, Snackbar.LENGTH_LONG).show();
return false;
}
});

autoCompleteTextView.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}

@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}

@Override
public void afterTextChanged(Editable editable) {
String value = editable.toString();

db.updateParam(name, value);
if (Objects.equals(type, "bool")) {
CheckBox checkBox = new CheckBox(context);
checkBox.setText(name);

final String finalDesc = desc;
checkBox.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
Snackbar.make(view, finalDesc, Snackbar.LENGTH_LONG).show();
return false;
}
});

textInputLayout.addView(checkBox);
iListView.add(checkBox);
} else {
if (maxChar > 0) {
autoCompleteTextView.setFilters(new InputFilter[]{new InputFilter.LengthFilter(maxChar)});
}
});

textInputLayout.addView(autoCompleteTextView);
String text = db.getParam(name);
autoCompleteTextView.setText(text);

List<FavStructure> favs = db.getFavs(name);
ArrayList<String> favList = new ArrayList<>();
for (int i = 0; i < favs.size(); i++)
favList.add(favs.get(i).value);
SeanAdapter<String> favAdapter = new SeanAdapter<>(context, android.R.layout.simple_spinner_dropdown_item, favList);
autoCompleteTextView.setAdapter(favAdapter);

final String finalDesc = desc;
autoCompleteTextView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
Snackbar.make(view, finalDesc, Snackbar.LENGTH_LONG).show();
return false;
}
});

autoCompleteTextView.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}

@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}

@Override
public void afterTextChanged(Editable editable) {
String value = editable.toString();

db.updateParam(name, value);
}
});

textInputLayout.addView(autoCompleteTextView);
iListView.add(autoCompleteTextView);
}
}

@Override
Expand All @@ -181,8 +205,32 @@ public void fitView(RecyclerView recyclerView) {
recyclerView.setLayoutParams(inputLayoutParams); // Set Layout Parameter to original view
}

public View getViewByPos(int pos) {
return iListView.get(pos);
public String getName(int pos) {
return iListName.get(pos);
}

public String getValue(int pos) {
View view = iListView.get(pos);

if (view instanceof EditText) {
EditText editText = (EditText) view;
CharSequence valueChar = editText.getText();
if (null == valueChar) {
Log.w("ada", "value char null");
return "";
}
Log.d("aa", valueChar.toString());
return valueChar.toString();
} else if (view instanceof CheckBox) {
CheckBox checkBox = (CheckBox) view;
if (checkBox.isChecked())
return "1";
else
return null;
} else {
Log.e("ada", "Unknown view " + view.toString());
return null;
}
}

private class DummyViewHolder extends RecyclerView.ViewHolder {
Expand Down

0 comments on commit 222bfc6

Please sign in to comment.