diff --git a/.gitignore b/.gitignore index 718becd..5f53158 100644 --- a/.gitignore +++ b/.gitignore @@ -34,9 +34,14 @@ captures/ # Intellij *.iml + +.idea/ .idea/workspace.xml .idea/tasks.xml .idea/libraries +.classpath +*.ipr +*.iws # Keystore files *.jks diff --git a/app/build.gradle b/app/build.gradle index 6999d34..a3c3bc6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -23,6 +23,6 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile project(path: ':form-master') - compile 'com.android.support:design:25.3.1' - compile 'com.android.support.constraint:constraint-layout:1.0.0' + compile 'com.android.support:design:25.4.0' + compile 'com.android.support.constraint:constraint-layout:1.1.3' } \ No newline at end of file diff --git a/app/src/main/java/me/riddhimanadib/fastformbuilder/FormListenerActivity.java b/app/src/main/java/me/riddhimanadib/fastformbuilder/FormListenerActivity.java index a11f8b4..6500d23 100644 --- a/app/src/main/java/me/riddhimanadib/fastformbuilder/FormListenerActivity.java +++ b/app/src/main/java/me/riddhimanadib/fastformbuilder/FormListenerActivity.java @@ -6,30 +6,19 @@ import android.support.v7.widget.RecyclerView; import android.view.MenuItem; import android.widget.Toast; +import me.riddhimanadib.fastformbuilder.model.Student; +import me.riddhimanadib.formmaster.FormBuilder; +import me.riddhimanadib.formmaster.listener.OnFormElementValueChangedListener; +import me.riddhimanadib.formmaster.model.*; import java.util.ArrayList; import java.util.List; -import me.riddhimanadib.formmaster.FormBuilder; -import me.riddhimanadib.formmaster.listener.OnFormElementValueChangedListener; -import me.riddhimanadib.formmaster.model.BaseFormElement; -import me.riddhimanadib.formmaster.model.FormElementPickerDate; -import me.riddhimanadib.formmaster.model.FormElementPickerMulti; -import me.riddhimanadib.formmaster.model.FormElementPickerSingle; -import me.riddhimanadib.formmaster.model.FormElementPickerTime; -import me.riddhimanadib.formmaster.model.FormElementSwitch; -import me.riddhimanadib.formmaster.model.FormElementTextEmail; -import me.riddhimanadib.formmaster.model.FormElementTextMultiLine; -import me.riddhimanadib.formmaster.model.FormElementTextNumber; -import me.riddhimanadib.formmaster.model.FormElementTextPassword; -import me.riddhimanadib.formmaster.model.FormElementTextPhone; -import me.riddhimanadib.formmaster.model.FormElementTextSingleLine; -import me.riddhimanadib.formmaster.model.FormHeader; - public class FormListenerActivity extends AppCompatActivity implements OnFormElementValueChangedListener { private RecyclerView mRecyclerView; private FormBuilder mFormBuilder; + List students = Student.generateSampleStudents(); @Override protected void onCreate(Bundle savedInstanceState) { @@ -88,9 +77,19 @@ private void setupForm() { fruits.add("Orange"); fruits.add("Mango"); fruits.add("Guava"); - FormElementPickerSingle element41 = FormElementPickerSingle.createInstance().setTitle("Single Item").setOptions(fruits).setPickerTitle("Pick any item"); - FormElementPickerMulti element42 = FormElementPickerMulti.createInstance().setTitle("Multi Items").setOptions(fruits).setPickerTitle("Pick one or more").setNegativeText("reset"); - FormElementSwitch element43 = FormElementSwitch.createInstance().setTitle("Frozen?").setSwitchTexts("Yes", "No"); + + FormElementPickerSingle element41 = FormElementPickerSingle.createInstance() + .setTitle("Single Item") + .setOptions(students) + .setPickerTitle("Pick any item"); + FormElementPickerMulti element42 = FormElementPickerMulti.createInstance() + .setTitle("Multi Items") + .setOptions(fruits) + .setPickerTitle("Pick one or more") + .setNegativeText("reset"); + FormElementSwitch element43 = FormElementSwitch.createInstance() + .setTitle("Frozen?") + .setSwitchTexts("Yes", "No"); List formItems = new ArrayList<>(); formItems.add(header1); @@ -114,6 +113,11 @@ private void setupForm() { @Override public void onValueChanged(BaseFormElement formElement) { - Toast.makeText(this, formElement.getValue(), Toast.LENGTH_SHORT).show(); + if (formElement instanceof FormElementPickerSingle) { + int selectedIndex = ((FormElementPickerSingle) formElement).getSelectedIndex(); + Toast.makeText(this, formElement.getValue() + ": " + students.get(selectedIndex).getUuid(), Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(this, formElement.getValue(), Toast.LENGTH_SHORT).show(); + } } } diff --git a/app/src/main/java/me/riddhimanadib/fastformbuilder/model/Student.java b/app/src/main/java/me/riddhimanadib/fastformbuilder/model/Student.java new file mode 100644 index 0000000..3da1893 --- /dev/null +++ b/app/src/main/java/me/riddhimanadib/fastformbuilder/model/Student.java @@ -0,0 +1,44 @@ +package me.riddhimanadib.fastformbuilder.model; + +import java.util.ArrayList; +import java.util.List; + +public class Student { + private String uuid; + private String name; + + public Student(String uuid, String name) { + this.uuid = uuid; + this.name = name; + } + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public static List generateSampleStudents(){ + List students = new ArrayList<>(); + students.add(new Student("abc","Kakama Victor")); + students.add(new Student("cde","Favor Atuheire")); + students.add(new Student("fgh","Ariella Atwiine")); + students.add(new Student("ijk","Onyx Kakama")); + return students; + } + + @Override + public String toString(){ + return name; + } +} diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerSingle.java b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerSingle.java index d592b45..f377715 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerSingle.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerSingle.java @@ -10,8 +10,9 @@ public class FormElementPickerSingle extends BaseFormElement { private String pickerTitle; // custom title for picker - private List mOptions; // list of options for single and multi picker - private List mOptionsSelected; // list of selected options for single and multi picker + private List mOptions; // list of options for single and multi picker + private List mOptionsSelected; // list of selected options for single and multi picker + private int selectedIndex; public FormElementPickerSingle() { } @@ -48,12 +49,12 @@ public FormElementPickerSingle setRequired(boolean required) { } // custom setters - public FormElementPickerSingle setOptions(List mOptions) { + public FormElementPickerSingle setOptions(List mOptions) { this.mOptions = mOptions; return this; } - public FormElementPickerSingle setOptionsSelected(List mOptionsSelected) { + public FormElementPickerSingle setOptionsSelected(List mOptionsSelected) { this.mOptionsSelected = mOptionsSelected; return this; } @@ -64,16 +65,23 @@ public FormElementPickerSingle setPickerTitle(String title) { } // custom getters - public List getOptions() { - return (this.mOptions == null) ? new ArrayList() : this.mOptions; + public List getOptions() { + return (this.mOptions == null) ? new ArrayList<>() : this.mOptions; } - public List getOptionsSelected() { - return (this.mOptionsSelected == null) ? new ArrayList() : this.mOptionsSelected; + public List getOptionsSelected() { + return (this.mOptionsSelected == null) ? new ArrayList<>() : this.mOptionsSelected; } public String getPickerTitle() { return this.pickerTitle; } + public int getSelectedIndex() { + return selectedIndex; + } + + public void setSelectedIndex(int selectedIndex) { + this.selectedIndex = selectedIndex; + } } diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/viewholder/FormElementPickerSingleViewHolder.java b/form-master/src/main/java/me/riddhimanadib/formmaster/viewholder/FormElementPickerSingleViewHolder.java index 21be938..4a0da1c 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/viewholder/FormElementPickerSingleViewHolder.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/viewholder/FormElementPickerSingleViewHolder.java @@ -46,7 +46,7 @@ public void bind(final int position, BaseFormElement formElement, final Context // reformat the options in format needed final CharSequence[] options = new CharSequence[mFormElementPickerSingle.getOptions().size()]; for (int i = 0; i < mFormElementPickerSingle.getOptions().size(); i++) { - options[i] = mFormElementPickerSingle.getOptions().get(i); + options[i] = mFormElementPickerSingle.getOptions().get(i).toString(); } final AlertDialog dialog = new AlertDialog.Builder(context) @@ -55,6 +55,7 @@ public void bind(final int position, BaseFormElement formElement, final Context public void onClick(DialogInterface dialog, int which) { mEditTextValue.setText(options[which]); mFormElementPickerSingle.setValue(options[which].toString()); + mFormElementPickerSingle.setSelectedIndex(which); mReloadListener.updateValue(position, options[which].toString()); } })