diff --git a/source-code/app/src/main/AndroidManifest.xml b/source-code/app/src/main/AndroidManifest.xml index df2917d1..bb84f340 100755 --- a/source-code/app/src/main/AndroidManifest.xml +++ b/source-code/app/src/main/AndroidManifest.xml @@ -17,7 +17,8 @@ android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" - android:theme="@style/AppTheme"> + android:theme="@style/AppTheme" + android:windowSoftInputMode="adjustResize|adjustPan"> + android:windowSoftInputMode="adjustPan|adjustResize"> diff --git a/source-code/app/src/main/java/org/buildmlearn/toolkit/activity/FirstRunActivity.java b/source-code/app/src/main/java/org/buildmlearn/toolkit/activity/FirstRunActivity.java index b2d07bdc..f34e3d57 100644 --- a/source-code/app/src/main/java/org/buildmlearn/toolkit/activity/FirstRunActivity.java +++ b/source-code/app/src/main/java/org/buildmlearn/toolkit/activity/FirstRunActivity.java @@ -9,6 +9,7 @@ import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; +import android.widget.Button; import android.widget.EditText; import com.crashlytics.android.Crashlytics; @@ -27,6 +28,7 @@ public class FirstRunActivity extends AppCompatActivity { private static final String FIRST_RUN = "first_run"; private EditText name; + private Button proceed; private SharedPreferences prefs; /** @@ -45,8 +47,9 @@ protected void onCreate(Bundle savedInstanceState) { findViewById(R.id.focus_thief).clearFocus(); - Animation anim_bounceinup=AnimationUtils.loadAnimation(getBaseContext(),R.anim.bounceinup); + Animation anim_bounceinup = AnimationUtils.loadAnimation(getBaseContext(), R.anim.bounceinup); name = (EditText) findViewById(R.id.first_name); + assert name != null; name.startAnimation(anim_bounceinup); name.setOnKeyListener(new View.OnKeyListener() { @Override @@ -56,27 +59,7 @@ public boolean onKey(View v, int keyCode, KeyEvent event) { case KeyEvent.KEYCODE_DPAD_CENTER: case KeyEvent.KEYCODE_ENTER: - if (name.getText().toString().equals("")) { - name.setError(getApplicationContext().getResources().getString(R.string.enter_name)); - return false; - } - else if(!Character.isLetterOrDigit(name.getText().toString().charAt(0))) - { - name.setError(getApplicationContext().getResources().getString(R.string.valid_msg)); - return false; - } - - - SharedPreferences.Editor editor = prefs.edit(); - - editor.putString(getString(R.string.key_user_name), name.getText().toString()); - editor.putBoolean(FIRST_RUN, true); - editor.apply(); - Intent intent = new Intent(getApplicationContext(), TutorialActivity.class); - intent.putExtra(Constants.START_ACTIVITY, true); - startActivity(intent); - finish(); - return true; + return validateUser(); default: break; } @@ -84,6 +67,37 @@ else if(!Character.isLetterOrDigit(name.getText().toString().charAt(0))) return false; } }); + + proceed = (Button) findViewById(R.id.proceed); + + proceed.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + validateUser(); + } + }); + } + + boolean validateUser() { + if (name.getText().toString().equals("")) { + name.setError(getApplicationContext().getResources().getString(R.string.enter_name)); + return false; + } else if (!Character.isLetterOrDigit(name.getText().toString().charAt(0))) { + name.setError(getApplicationContext().getResources().getString(R.string.valid_msg)); + return false; + } + + + SharedPreferences.Editor editor = prefs.edit(); + + editor.putString(getString(R.string.key_user_name), name.getText().toString()); + editor.putBoolean(FIRST_RUN, true); + editor.apply(); + Intent intent = new Intent(getApplicationContext(), TutorialActivity.class); + intent.putExtra(Constants.START_ACTIVITY, true); + startActivity(intent); + finish(); + return true; } } diff --git a/source-code/app/src/main/java/org/buildmlearn/toolkit/templates/ComprehensionTemplate.java b/source-code/app/src/main/java/org/buildmlearn/toolkit/templates/ComprehensionTemplate.java index 7deff8d2..3bf5970e 100644 --- a/source-code/app/src/main/java/org/buildmlearn/toolkit/templates/ComprehensionTemplate.java +++ b/source-code/app/src/main/java/org/buildmlearn/toolkit/templates/ComprehensionTemplate.java @@ -8,6 +8,7 @@ import android.support.v7.app.AlertDialog; import android.view.LayoutInflater; import android.view.View; +import android.view.WindowManager; import android.widget.BaseAdapter; import android.widget.EditText; import android.widget.RadioButton; @@ -49,7 +50,7 @@ public ComprehensionTemplate() { metaData = new ArrayList<>(); } - private static boolean validated( Context context, EditText title, EditText passage, EditText timer) { + private static boolean validated(Context context, EditText title, EditText passage, EditText timer) { if (title == null || passage == null || timer == null) { return false; } @@ -64,10 +65,10 @@ private static boolean validated( Context context, EditText title, EditText pass } else if ("".equals(passageText)) { passage.setError(context.getString(R.string.comprehension_template_passage_hint)); return false; - }else if (timerText.length() > 9) { + } else if (timerText.length() > 9) { timer.setError(context.getString(R.string.comprehension_template_timer_correct_hint)); return false; - }else if ("0".equals(timerText)) { + } else if ("0".equals(timerText)) { timer.setError((context.getString(R.string.time_zero_error))); return false; } else if ("".equals(timerText)) { @@ -177,6 +178,7 @@ public void addItem(final Activity activity) { .setNegativeButton(R.string.quiz_cancel, null) .create(); dialog.show(); + dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); final EditText question = (EditText) dialogView.findViewById(R.id.quiz_question); final ArrayList buttons = new ArrayList<>(); @@ -212,28 +214,28 @@ public void onClick(View v) { return; } - if(options.get(0).getText().toString().trim().equals("")){ + if (options.get(0).getText().toString().trim().equals("")) { options.get(0).setError(activity.getString(R.string.cannot_be_empty)); isValidated = false; return; } - if(options.get(1).getText().toString().trim().equals("")){ + if (options.get(1).getText().toString().trim().equals("")) { options.get(1).setError(activity.getString(R.string.cannot_be_empty)); isValidated = false; return; } - if(options.get(2).getText().toString().trim().equals("") && !options.get(3).getText().toString().trim().equals("")){ + if (options.get(2).getText().toString().trim().equals("") && !options.get(3).getText().toString().trim().equals("")) { options.get(2).hasFocus(); options.get(2).setError(activity.getString(R.string.comprehension_select_option_3_first)); isValidated = false; return; } - for(int i=0;i buttons = new ArrayList<>(); @@ -237,6 +239,7 @@ public void editItem(final Activity activity, final int position) { .setNegativeButton(R.string.quiz_cancel, null) .create(); dialog.show(); + dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); final EditText question = (EditText) dialogView.findViewById(R.id.quiz_question); final ArrayList buttons = new ArrayList<>(); diff --git a/source-code/app/src/main/java/org/buildmlearn/toolkit/templates/VideoCollectionTemplate.java b/source-code/app/src/main/java/org/buildmlearn/toolkit/templates/VideoCollectionTemplate.java index 04f1c87e..27975b36 100644 --- a/source-code/app/src/main/java/org/buildmlearn/toolkit/templates/VideoCollectionTemplate.java +++ b/source-code/app/src/main/java/org/buildmlearn/toolkit/templates/VideoCollectionTemplate.java @@ -11,6 +11,7 @@ import android.util.Patterns; import android.view.LayoutInflater; import android.view.View; +import android.view.WindowManager; import android.widget.BaseAdapter; import android.widget.EditText; import android.widget.ImageView; @@ -212,6 +213,7 @@ public void addItem(final Activity activity) { .setNegativeButton(R.string.info_template_cancel, null) .create(); dialog.show(); + dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); final EditText link = (EditText) dialogView.findViewById(R.id.video_link); @@ -260,6 +262,7 @@ public void editItem(final Activity activity, final int position) { .setNegativeButton(R.string.info_template_cancel, null) .create(); dialog.show(); + dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); final VideoModel data = videoData.get(position); diff --git a/source-code/app/src/main/res/layout/activity_first_run.xml b/source-code/app/src/main/res/layout/activity_first_run.xml index 884e9564..bce6e5fb 100644 --- a/source-code/app/src/main/res/layout/activity_first_run.xml +++ b/source-code/app/src/main/res/layout/activity_first_run.xml @@ -1,72 +1,86 @@ - + android:fillViewport="true" + android:scrollbars="vertical"> - - - + android:layout_height="match_parent"> - - + android:layout_height="match_parent" + android:contentDescription="@string/buildmlearn_backdrop_image" + android:src="@drawable/first_run_bg" /> - + android:layout_centerInParent="true" + android:gravity="center" + android:orientation="vertical"> - + - + + + + + + + + + +