From 24d4d5a1a8c8ac1a245f6d7d6332dfe9770e03dd Mon Sep 17 00:00:00 2001 From: "Lucas B. Cunha" <lbc16@inf.ufpr.br> Date: Mon, 25 Sep 2017 10:10:17 -0300 Subject: [PATCH 1/2] Issue AGILE#155: Initial layout done & bug/layout fix Signed-off-by: Lucas B. Cunha <lbc16@inf.ufpr.br> --- app/src/main/AndroidManifest.xml | 8 +- .../agendador/agendador/AccountActivity.java | 29 +++- .../c3sl/agendador/agendador/CepActivity.java | 3 + .../agendador/CepNotFoundActivity.java | 2 +- ...Activity.java => CitizenListActivity.java} | 5 +- .../agendador/DependentUpdateActivity.java | 32 +++-- .../agendador/ForgotPasswordActivity.java | 52 -------- .../agendador/agendador/HomeActivity.java | 15 +-- .../agendador/agendador/LoginActivity.java | 13 +- .../agendador/NewDependentActivity.java | 31 ++++- .../agendador/PasswordRetrievalActivity.java | 125 ++++++++++++++++++ .../agendador/RetrievalFailureActivity.java | 24 ++++ .../agendador/RetrievalSuccessActivity.java | 22 +++ .../agendador/agendador/SignUpActivity.java | 11 +- .../agendador/agendador/helpers/Mask.java | 82 +++++++++--- .../presenters/CitizensPresenter.java | 5 +- .../presenters/ForgotPasswordPresenter.java | 22 ++- .../agendador/presenters/LoginPresenter.java | 6 +- .../agendador/views/AccountView.java | 1 - .../agendador/views/ForgotPasswordView.java | 7 + .../res/drawable-hdpi/ic_back_arrow_black.png | Bin 0 -> 298 bytes .../res/drawable-mdpi/ic_back_arrow_black.png | Bin 0 -> 200 bytes .../drawable-xhdpi/ic_back_arrow_black.png | Bin 0 -> 300 bytes .../drawable-xxhdpi/ic_back_arrow_black.png | Bin 0 -> 518 bytes .../res/drawable/disabled_container_shape.xml | 14 ++ .../main/res/layout/activity_account_view.xml | 1 + app/src/main/res/layout/activity_citizen.xml | 2 +- .../main/res/layout/activity_dependents.xml | 1 + .../res/layout/activity_dependents_list.xml | 2 +- ...rd.xml => activity_password_retrieval.xml} | 61 ++++++--- .../res/layout/activity_retrieval_failure.xml | 39 ++++++ .../res/layout/activity_retrieval_success.xml | 52 ++++++++ app/src/main/res/layout/activity_signup.xml | 5 +- app/src/main/res/values/integer.xml | 6 + app/src/main/res/values/strings.xml | 7 +- 35 files changed, 546 insertions(+), 139 deletions(-) rename app/src/main/java/br/ufpr/c3sl/agendador/agendador/{CitizenActivity.java => CitizenListActivity.java} (95%) delete mode 100644 app/src/main/java/br/ufpr/c3sl/agendador/agendador/ForgotPasswordActivity.java create mode 100644 app/src/main/java/br/ufpr/c3sl/agendador/agendador/PasswordRetrievalActivity.java create mode 100644 app/src/main/java/br/ufpr/c3sl/agendador/agendador/RetrievalFailureActivity.java create mode 100644 app/src/main/java/br/ufpr/c3sl/agendador/agendador/RetrievalSuccessActivity.java create mode 100644 app/src/main/res/drawable-hdpi/ic_back_arrow_black.png create mode 100644 app/src/main/res/drawable-mdpi/ic_back_arrow_black.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_back_arrow_black.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_back_arrow_black.png create mode 100644 app/src/main/res/drawable/disabled_container_shape.xml rename app/src/main/res/layout/{activity_forgot_password.xml => activity_password_retrieval.xml} (61%) create mode 100644 app/src/main/res/layout/activity_retrieval_failure.xml create mode 100644 app/src/main/res/layout/activity_retrieval_success.xml create mode 100644 app/src/main/res/values/integer.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 878700b..a2f111e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -35,7 +35,7 @@ <activity android:name=".CepNotFoundActivity" /> <activity android:name=".SignUpActivity" /> <activity android:name=".AccountActivity" /> - <activity android:name=".ForgotPasswordActivity" /> + <activity android:name=".PasswordRetrievalActivity" /> <activity android:name=".DependentsListActivity" /> <service @@ -52,10 +52,12 @@ android:name=".SchedulingActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:screenOrientation="portrait" /> - <activity android:name=".CitizenActivity" /> + <activity android:name=".CitizenListActivity" /> <activity android:name=".ScheduleConfirmationActivity" /> <activity android:name=".DependentUpdateActivity" /> - <activity android:name=".NewDependentActivity"/> + <activity android:name=".NewDependentActivity" /> + <activity android:name=".RetrievalFailureActivity" /> + <activity android:name=".RetrievalSuccessActivity"></activity> </application> </manifest> \ No newline at end of file diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/AccountActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/AccountActivity.java index 733c741..7ef5cba 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/AccountActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/AccountActivity.java @@ -24,11 +24,13 @@ import android.support.v4.widget.NestedScrollView; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.text.Editable; +import android.text.InputFilter; import android.text.TextWatcher; import android.text.method.PasswordTransformationMethod; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; @@ -182,10 +184,19 @@ public class AccountActivity extends AppCompatActivity implements AccountView { userImgHelper = new UserImgHelper(getBaseContext()); et_cep.addTextChangedListener(Mask.insert("#####-###", et_cep)); - et_phone.addTextChangedListener(Mask.insert("(##)####-####", et_phone)); - et_phone2.addTextChangedListener(Mask.insert("(##)####-####", et_phone2)); + et_cep.setFilters(new InputFilter[]{new InputFilter.LengthFilter("#####-###".length())}); + + et_phone.addTextChangedListener(Mask.insert("(##)#####-####", et_phone)); + et_phone.setFilters(new InputFilter[]{new InputFilter.LengthFilter("(##)#####-####".length())}); + + et_phone2.addTextChangedListener(Mask.insert("(##)#####-####", et_phone2)); + et_phone2.setFilters(new InputFilter[]{new InputFilter.LengthFilter("(##)#####-####".length())}); + et_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf)); + et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter("###.###.###-##".length())}); + et_birthdate.addTextChangedListener(Mask.insert("##/##/####", et_birthdate)); + et_birthdate.setFilters(new InputFilter[]{new InputFilter.LengthFilter("##/##/####".length())}); loadData(); @@ -408,15 +419,25 @@ public class AccountActivity extends AppCompatActivity implements AccountView { public void scrollUp() { AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.appbar_account); CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams(); - NestedScrollView nestedScrollView = (NestedScrollView) findViewById(R.id.nestedscrollview_account); - nestedScrollView.fullScroll(View.FOCUS_UP); + + + //close keyboard if open + View view = this.getCurrentFocus(); + // Check if no view has focus: + if (view != null) { + InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); + view.clearFocus(); + imm.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior(); CoordinatorLayout coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorlayout_account); if (behavior != null) { behavior.setTopAndBottomOffset(0); behavior.onNestedPreScroll(coordinatorLayout, appBarLayout, null, 0, 1, new int[2]); + } nestedScrollView.fullScroll(View.FOCUS_UP); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CepActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CepActivity.java index 5ceb5a9..3164509 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CepActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CepActivity.java @@ -3,6 +3,7 @@ package br.ufpr.c3sl.agendador.agendador; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.Editable; +import android.text.InputFilter; import android.text.TextWatcher; import android.view.View; import android.widget.EditText; @@ -47,6 +48,8 @@ public class CepActivity extends AppCompatActivity implements CepView { et_cep = (EditText) findViewById(R.id.et_cepact_cep); et_cep.addTextChangedListener(Mask.insert("#####-###", et_cep)); + et_cep.setFilters(new InputFilter[]{new InputFilter.LengthFilter("#####-###".length())}); + et_cep.addTextChangedListener(new CepChangeListener()); tv_invalid_cep = (TextView) findViewById(R.id.tv_cepact_invalid_cep); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CepNotFoundActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CepNotFoundActivity.java index f9e955c..48005da 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CepNotFoundActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CepNotFoundActivity.java @@ -47,7 +47,7 @@ public class CepNotFoundActivity extends AppCompatActivity implements CepNotFoun String state_name = intent.getStringExtra("statename_su"); if (city_name.equals("null")) { - error_message.setText("Cep inválido"); + error_message.setText(getResources().getString(R.string.invalid_cep)); } else { error_message.setText(String.format(getString(R.string.cep_not_found_message), city_name, state_name)); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CitizenActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CitizenListActivity.java similarity index 95% rename from app/src/main/java/br/ufpr/c3sl/agendador/agendador/CitizenActivity.java rename to app/src/main/java/br/ufpr/c3sl/agendador/agendador/CitizenListActivity.java index 30a03a3..047e85f 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CitizenActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CitizenListActivity.java @@ -20,7 +20,6 @@ import br.ufpr.c3sl.agendador.agendador.helpers.Utils; import br.ufpr.c3sl.agendador.agendador.helpers.adapters.CitizensArrayAdapter; import br.ufpr.c3sl.agendador.agendador.helpers.listeners.RecyclerViewItemListener; import br.ufpr.c3sl.agendador.agendador.models.CitizenCompact; -import br.ufpr.c3sl.agendador.agendador.models.UserOutput; import br.ufpr.c3sl.agendador.agendador.presenters.CitizensPresenter; import br.ufpr.c3sl.agendador.agendador.presenters.PresenterManager; import br.ufpr.c3sl.agendador.agendador.views.CitizenView; @@ -31,7 +30,7 @@ import br.ufpr.c3sl.agendador.agendador.views.CitizenView; */ -public class CitizenActivity extends AppCompatActivity implements CitizenView{ +public class CitizenListActivity extends AppCompatActivity implements CitizenView{ private RecyclerView rv_citizens; @@ -73,7 +72,7 @@ public class CitizenActivity extends AppCompatActivity implements CitizenView{ rv_citizens.addOnItemTouchListener(new RecyclerViewItemListener(getApplicationContext(), rv_citizens, new RecyclerViewItemListener.RecyclerTouchListener() { public void onClickItem(View v, int position) { - Intent intent = new Intent(CitizenActivity.this, TermActivity.class); + Intent intent = new Intent(CitizenListActivity.this, TermActivity.class); Bundle bundle = new Bundle(); bundle.putParcelable(Utils.CITIZEN, citizens.get(position)); intent.putExtra(Utils.CITIZEN_BUNDLE, bundle); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/DependentUpdateActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/DependentUpdateActivity.java index b91be80..4b62b0b 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/DependentUpdateActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/DependentUpdateActivity.java @@ -4,6 +4,7 @@ import android.Manifest; import android.annotation.TargetApi; import android.app.FragmentManager; import android.content.ComponentName; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; @@ -19,11 +20,13 @@ import android.support.v4.widget.NestedScrollView; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.text.Editable; +import android.text.InputFilter; import android.text.TextWatcher; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; @@ -86,12 +89,6 @@ public class DependentUpdateActivity extends AppCompatActivity implements Depend private final int LOAD_IMAGE_INTENT = 1; - // TODO: 18/09/17 Cep error dialog shows twice on error - - - //problema da atualização da foto está na dependent activity. - - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -160,11 +157,22 @@ public class DependentUpdateActivity extends AppCompatActivity implements Depend isChangingPhoto = false; userImgHelper = new UserImgHelper(getBaseContext()); et_disability.setEnabled(false); + et_cep.addTextChangedListener(Mask.insert("#####-###", et_cep)); - et_phone.addTextChangedListener(Mask.insert("(##)####-####", et_phone)); - et_phone2.addTextChangedListener(Mask.insert("(##)####-####", et_phone2)); + et_cep.setFilters(new InputFilter[]{new InputFilter.LengthFilter("#####-###".length())}); + + et_phone.addTextChangedListener(Mask.insert("(##)#####-####", et_phone)); + et_phone.setFilters(new InputFilter[]{new InputFilter.LengthFilter("(##)#####-####".length())}); + + et_phone2.addTextChangedListener(Mask.insert("(##)#####-####", et_phone2)); + et_phone2.setFilters(new InputFilter[]{new InputFilter.LengthFilter("(##)#####-####".length())}); + et_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf)); + et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter("###.###.###-##".length())}); + + et_birthdate.addTextChangedListener(Mask.insert("##/##/####", et_birthdate)); + et_birthdate.setFilters(new InputFilter[]{new InputFilter.LengthFilter("##/##/####".length())}); try{ getSupportActionBar().setDisplayHomeAsUpEnabled(true); @@ -385,6 +393,14 @@ public class DependentUpdateActivity extends AppCompatActivity implements Depend CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams(); NestedScrollView nestedScrollView = (NestedScrollView) findViewById(R.id.nestedscrollview_dependents); + //close keyboard if open + View view = this.getCurrentFocus(); + // Check if no view has focus: + if (view != null) { + InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); + view.clearFocus(); + imm.hideSoftInputFromWindow(view.getWindowToken(), 0); + } AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior(); CoordinatorLayout coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorlayout_dependents); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/ForgotPasswordActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/ForgotPasswordActivity.java deleted file mode 100644 index af96586..0000000 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/ForgotPasswordActivity.java +++ /dev/null @@ -1,52 +0,0 @@ -package br.ufpr.c3sl.agendador.agendador; - -import android.os.Bundle; -import android.os.PersistableBundle; -import android.support.v7.app.AppCompatActivity; -import android.widget.Button; -import android.widget.EditText; -import android.widget.ProgressBar; -import android.widget.TextView; - -import br.ufpr.c3sl.agendador.agendador.presenters.ForgotPasswordPresenter; -import br.ufpr.c3sl.agendador.agendador.presenters.PresenterManager; -import br.ufpr.c3sl.agendador.agendador.views.ForgotPasswordView; - -/** - * Created by Horstmann on 23/02/17. - */ - - - -public class ForgotPasswordActivity extends AppCompatActivity implements ForgotPasswordView { - private ForgotPasswordPresenter presenter; - - private Button btn_send; - private EditText et_cpf; - private TextView tv_cpf, tv_cpf_warning; - private ProgressBar pb_waiting; - - @Override - public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) { - super.onCreate(savedInstanceState); - if (savedInstanceState == null) { - presenter = new ForgotPasswordPresenter(this); - } else { - presenter = PresenterManager.getInstance().restorePresenter(savedInstanceState); - if(presenter == null) - presenter = new ForgotPasswordPresenter(this); - } - - setContentView(R.layout.activity_login); - - tv_cpf = (TextView) findViewById(R.id.tv_forgot_password_cpf); - tv_cpf_warning = (TextView) findViewById(R.id.tv_forgot_password_invalid_cpf); - - } - - - @Override - public void setProgressBar(boolean enabled) { - - } -} diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/HomeActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/HomeActivity.java index 9b12dac..aa344e0 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/HomeActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/HomeActivity.java @@ -7,11 +7,11 @@ import android.app.DialogFragment; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; -import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.design.widget.NavigationView; import android.support.design.widget.Snackbar; +import android.support.v4.content.res.ResourcesCompat; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AppCompatActivity; @@ -137,7 +137,7 @@ public class HomeActivity extends AppCompatActivity implements HomeView, btn_schedule.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Intent intent = new Intent(HomeActivity.this, CitizenActivity.class); + Intent intent = new Intent(HomeActivity.this, CitizenListActivity.class); startActivity(intent); } }); @@ -157,15 +157,10 @@ public class HomeActivity extends AppCompatActivity implements HomeView, private void changeTextColor(){ //Changing text style SpannableString text = new SpannableString(getString(R.string.schedules_more_information)); - if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){ - text.setSpan(new ForegroundColorSpan(getColor(R.color.colorGreen)), 123, 143, 0); - text.setSpan(new ForegroundColorSpan(getColor(R.color.colorGreen)), 88, 108, 0); - } else{ - text.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.colorGreen)), 123, 143, 0); + text.setSpan(new ForegroundColorSpan(ResourcesCompat.getColor(getResources(), R.color.colorGreen, null)), 123, 143, 0); - text.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.colorGreen)), 88, 108, 0); - } + text.setSpan(new ForegroundColorSpan(ResourcesCompat.getColor(getResources(), R.color.colorGreen, null)), 88, 108, 0); tv_presentation.setText(text, TextView.BufferType.SPANNABLE); } @@ -234,7 +229,7 @@ public class HomeActivity extends AppCompatActivity implements HomeView, startActivity(intent); break; case R.id.nav_schedule: - intent = new Intent(this, CitizenActivity.class); + intent = new Intent(this, CitizenListActivity.class); startActivity(intent); break; case R.id.nav_dependants: diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/LoginActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/LoginActivity.java index e871966..bf28686 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/LoginActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/LoginActivity.java @@ -7,11 +7,11 @@ import android.os.Bundle; import android.support.v4.content.res.ResourcesCompat; import android.support.v7.app.AppCompatActivity; import android.text.Editable; +import android.text.InputFilter; import android.text.Spannable; import android.text.SpannableString; import android.text.TextWatcher; import android.text.style.StyleSpan; -import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; @@ -66,7 +66,10 @@ public class LoginActivity extends AppCompatActivity implements LoginView { pb_waiting = (ProgressBar) findViewById(R.id.pb_loginact); et_cpf = (EditText) findViewById(R.id.et_loginact_cpf); + et_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf)); + et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter("###.###.###-##".length())}); + et_cpf.addTextChangedListener(new LoginChangeListener()); et_password = (EditText) findViewById(R.id.et_loginact_password); @@ -78,7 +81,8 @@ public class LoginActivity extends AppCompatActivity implements LoginView { tv_forgot_password.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - presenter.onForgotPasswordClicked(); + Intent intent = new Intent(getBaseContext(), PasswordRetrievalActivity.class); + startActivity(intent); } }); @@ -151,16 +155,15 @@ public class LoginActivity extends AppCompatActivity implements LoginView { @Override public void setProgressBar(boolean enabled) { - ProgressBar pb_login = (ProgressBar) findViewById(R.id.pb_loginact); EditText et_cpf = (EditText) findViewById(R.id.et_loginact_cpf); EditText et_password = (EditText) findViewById(R.id.et_loginact_password); if (enabled) { - pb_login.setVisibility(View.VISIBLE); + pb_waiting.setVisibility(View.VISIBLE); et_cpf.setEnabled(false); et_password.setEnabled(false); } else { - pb_login.setVisibility(View.INVISIBLE); + pb_waiting.setVisibility(View.INVISIBLE); et_cpf.setEnabled(true); et_password.setEnabled(true); } diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/NewDependentActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/NewDependentActivity.java index 4a3445a..9202316 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/NewDependentActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/NewDependentActivity.java @@ -5,6 +5,7 @@ import android.annotation.TargetApi; import android.app.Activity; import android.app.FragmentManager; import android.content.ComponentName; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; @@ -20,10 +21,12 @@ import android.support.v4.widget.NestedScrollView; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.text.Editable; +import android.text.InputFilter; import android.text.TextWatcher; import android.util.Log; import android.view.MenuItem; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; @@ -144,11 +147,24 @@ public class NewDependentActivity extends AppCompatActivity implements NewDepen isChangingPhoto = false; userImgHelper = new UserImgHelper(getBaseContext()); et_disability.setEnabled(false); + et_cep.addTextChangedListener(Mask.insert("#####-###", et_cep)); - et_phone.addTextChangedListener(Mask.insert("(##)####-####", et_phone)); - et_phone2.addTextChangedListener(Mask.insert("(##)####-####", et_phone2)); + et_cep.setFilters(new InputFilter[]{new InputFilter.LengthFilter("#####-###".length())}); + + et_phone.addTextChangedListener(Mask.insert("(##)#####-####", et_phone)); + et_phone.setFilters(new InputFilter[]{new InputFilter.LengthFilter("(##)#####-####".length())}); + + et_phone2.addTextChangedListener(Mask.insert("(##)#####-####", et_phone2)); + et_phone2.setFilters(new InputFilter[]{new InputFilter.LengthFilter("(##)#####-####".length())}); + + et_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf)); + et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter("###.###.###-##".length())}); + + et_birthdate.addTextChangedListener(Mask.insert("##/##/####", et_birthdate)); + et_birthdate.setFilters(new InputFilter[]{new InputFilter.LengthFilter("##/##/####".length())}); + try{ getSupportActionBar().setDisplayShowTitleEnabled(false); getSupportActionBar().setDisplayHomeAsUpEnabled(true); @@ -490,7 +506,16 @@ public class NewDependentActivity extends AppCompatActivity implements NewDepen CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams(); NestedScrollView nestedScrollView = (NestedScrollView) findViewById(R.id.nestedscrollview_dependents); - nestedScrollView.fullScroll(View.FOCUS_UP); + + //close keyboard if open + View view = this.getCurrentFocus(); + // Check if no view has focus: + if (view != null) { + InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); + view.clearFocus(); + imm.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior(); CoordinatorLayout coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorlayout_dependents); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/PasswordRetrievalActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/PasswordRetrievalActivity.java new file mode 100644 index 0000000..16ceb75 --- /dev/null +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/PasswordRetrievalActivity.java @@ -0,0 +1,125 @@ +package br.ufpr.c3sl.agendador.agendador; + +import android.content.Intent; +import android.os.Bundle; +import android.support.v4.content.res.ResourcesCompat; +import android.support.v7.app.AppCompatActivity; +import android.text.InputFilter; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ProgressBar; +import android.widget.TextView; + +import br.ufpr.c3sl.agendador.agendador.helpers.Mask; +import br.ufpr.c3sl.agendador.agendador.presenters.ForgotPasswordPresenter; +import br.ufpr.c3sl.agendador.agendador.presenters.PresenterManager; +import br.ufpr.c3sl.agendador.agendador.views.ForgotPasswordView; + +/** + * Created by Horstmann on 23/02/17. + */ + + + +public class PasswordRetrievalActivity extends AppCompatActivity implements ForgotPasswordView { + private ForgotPasswordPresenter presenter; + + private Button bt_send; + private EditText et_cpf; + private TextView tv_cpf_warning; + private ProgressBar pb_waiting; + + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (savedInstanceState == null) { + presenter = new ForgotPasswordPresenter(this); + } else { + presenter = PresenterManager.getInstance().restorePresenter(savedInstanceState); + if(presenter == null) + presenter = new ForgotPasswordPresenter(this); + } + + setContentView(R.layout.activity_password_retrieval); + + tv_cpf_warning = (TextView) findViewById(R.id.tv_passwd_retriev_invalid_cpf); + + et_cpf = (EditText) findViewById(R.id.et_passwd_retriev_cpf); + + et_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf)); + et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter("###.###.###-##".length())}); + + pb_waiting = (ProgressBar) findViewById(R.id.pb_passwd_retriev_act); + + bt_send = (Button) findViewById(R.id.bt_passwd_retriev_send); + Button bt_back = (Button) findViewById(R.id.bt_passwd_retriev_back); + + + bt_send.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + tv_cpf_warning.setVisibility(View.INVISIBLE); + + onRequestSuccess(); + onRequestFailure(); + /*if(!et_cpf.getText().toString().replaceAll("\\s+", "").isEmpty() && !DateValidator.isValidCPF(et_cpf.getText().toString().replaceAll("\\.", "").replace("-",""))) { + setProgressBar(true); + presenter.requestNewPassword(); + } + else{ + tv_cpf_warning.setVisibility(View.VISIBLE); + }*/ + } + }); + + bt_back.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + onBackPressed(); + } + }); + + + } + + @Override + public void onBackPressed() { + //-> if request is on the way, cancel + + //-> back to prior activity. finish(); + super.onBackPressed(); + } + + @Override + public void setProgressBar(boolean enabled) { + if(enabled){ + pb_waiting.setVisibility(View.VISIBLE); + bt_send.setBackground(ResourcesCompat.getDrawable(getResources(), R.drawable.disabled_container_shape, null)); + + }else{ + pb_waiting.setVisibility(View.INVISIBLE); + bt_send.setBackground(ResourcesCompat.getDrawable(getResources(), R.drawable.green_button_shape, null)); + } + et_cpf.setEnabled(!enabled); + bt_send.setEnabled(!enabled); + } + + + + public void onRequestFailure(){ + Intent intent = new Intent(PasswordRetrievalActivity.this, RetrievalFailureActivity.class); + startActivity(intent); + } + + public void onRequestSuccess(){ + Intent intent = new Intent(PasswordRetrievalActivity.this, RetrievalSuccessActivity.class); + startActivity(intent); + } + + @Override + public String getCpf() { + return et_cpf.getText().toString().replaceAll("\\.", "").replace("-",""); + } +} diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/RetrievalFailureActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/RetrievalFailureActivity.java new file mode 100644 index 0000000..08b5e00 --- /dev/null +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/RetrievalFailureActivity.java @@ -0,0 +1,24 @@ +package br.ufpr.c3sl.agendador.agendador; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.view.View; +import android.widget.ImageView; + +public class RetrievalFailureActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_retrieval_failure); + + ImageView back = (ImageView) findViewById(R.id.bt_retriev_fail_back); + back.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + + } +} diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/RetrievalSuccessActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/RetrievalSuccessActivity.java new file mode 100644 index 0000000..a6f66ca --- /dev/null +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/RetrievalSuccessActivity.java @@ -0,0 +1,22 @@ +package br.ufpr.c3sl.agendador.agendador; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.View; +import android.widget.ImageView; + +public class RetrievalSuccessActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_retrieval_success); + ImageView back = (ImageView) findViewById(R.id.bt_retrieval_succ_back); + back.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } +} diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/SignUpActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/SignUpActivity.java index 2ecf99e..5ac2275 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/SignUpActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/SignUpActivity.java @@ -8,6 +8,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; +import android.text.InputFilter; import android.view.View; import android.widget.Button; import android.widget.EditText; @@ -85,12 +86,20 @@ public class SignUpActivity extends AppCompatActivity implements SignupView { btn_signup = (Button) findViewById(R.id.btn_signup_signup); et_cep.addTextChangedListener(Mask.insert("#####-###", et_cep)); + et_cep.setFilters(new InputFilter[]{new InputFilter.LengthFilter("#####-###".length())}); + loadCepData(); - et_phone.addTextChangedListener(Mask.insert("(##)####-####", et_phone)); + et_phone.addTextChangedListener(Mask.insert("(##)#####-####", et_phone)); + et_phone.setFilters(new InputFilter[]{new InputFilter.LengthFilter("(##)#####-####".length())}); + et_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf)); + et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter("###.###.###-##".length())}); + et_birthday.addTextChangedListener(Mask.insert("##/##/####", et_birthday)); + et_birthday.setFilters(new InputFilter[]{new InputFilter.LengthFilter("##/##/####".length())}); + btn_back.setOnClickListener(new View.OnClickListener() { @Override diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/helpers/Mask.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/helpers/Mask.java index f2fa728..ebcb0a9 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/helpers/Mask.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/helpers/Mask.java @@ -9,38 +9,80 @@ import android.text.TextWatcher; import android.widget.EditText; public abstract class Mask { + + /** + * Remove all symbols from masked string + */ public static String unmask(String s) { - /** - * Remove all symbols - */ return s.replaceAll("[.]", "").replaceAll("[-]", "") .replaceAll("[/]", "").replaceAll("[(]", "") .replaceAll("[)]", ""); } + + + private static boolean isMaskSymbol(char c){ + return c == '.' || c == '-' || c == '/' || c == '(' || c == ')'; + } + + /** * Create the mask * REF: https://nuvemandroid.wordpress.com/2013/12/13/aplicacao-de-mascaras-em-formularios/ */ public static TextWatcher insert(final String mask, final EditText ediTxt) { return new TextWatcher() { - boolean isUpdating; + boolean isUpdating = false; + boolean isDeleting = false; + boolean reMask = false; + int pos = 0; String old = ""; + public void onTextChanged(CharSequence s, int start, int before,int count) { - String str = Mask.unmask(s.toString()); - String mask2 = ""; + if(!isUpdating && (count < before) || (start + count) < s.length()){ + isDeleting = true; + pos = start + count; + + } + + } + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + if(count == 1 && after == 0 && isMaskSymbol(s.charAt(start))){ + reMask = true; + } + + } + public void afterTextChanged(Editable s) { + StringBuilder str = new StringBuilder(Mask.unmask(s.toString())); + StringBuilder checkMaskLastPos; + + if (isUpdating) { - old = str; + old = str.toString(); isUpdating = false; return; } + StringBuilder mask2 = new StringBuilder(""); + + //if last position is a character mask related, remove it. + if(reMask && s.toString().length() > 0) { + checkMaskLastPos = new StringBuilder(s.toString()); + if (isMaskSymbol(checkMaskLastPos.charAt(checkMaskLastPos.length() - 1))) { + checkMaskLastPos.deleteCharAt(checkMaskLastPos.length() - 1); + str = new StringBuilder(unmask(checkMaskLastPos.toString())); + + } + } + int i = 0; - if( str.length() > old.length()){ + if( reMask || str.length() > old.length()){ for (char m : mask.toCharArray()) { if (m != '#') { - mask2 += m; + mask2.append(m); }else{ + mask2.append(str.charAt(i)); try { - mask2 += str.charAt(i); + //stop putting the mask when user string ends + str.charAt(i+1); } catch (Exception e) { break; } @@ -48,14 +90,24 @@ public abstract class Mask { } } }else{ - mask2 = s.toString(); + + mask2.append(s.toString()); } + + //has to be set before setting text to prevent infinite recursion. isUpdating = true; - ediTxt.setText(mask2); - ediTxt.setSelection(mask2.length()); + ediTxt.setText(mask2.toString()); + + if(!isDeleting) { + ediTxt.setSelection(mask2.length()); + } + else { + ediTxt.setSelection(pos); + } + + reMask = false; + isDeleting = false; } - public void beforeTextChanged(CharSequence s, int start, int count, int after) {} - public void afterTextChanged(Editable s) {} }; } } \ No newline at end of file diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/CitizensPresenter.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/CitizensPresenter.java index a47630e..8f5f2b0 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/CitizensPresenter.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/CitizensPresenter.java @@ -7,11 +7,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import br.ufpr.c3sl.agendador.agendador.CitizenActivity; +import br.ufpr.c3sl.agendador.agendador.CitizenListActivity; import br.ufpr.c3sl.agendador.agendador.helpers.ObscuredSharedPreferences; import br.ufpr.c3sl.agendador.agendador.helpers.Utils; import br.ufpr.c3sl.agendador.agendador.models.CitizenCompact; -import br.ufpr.c3sl.agendador.agendador.models.UserOutput; import br.ufpr.c3sl.agendador.agendador.network.ApiEndpoints; import br.ufpr.c3sl.agendador.agendador.network.ApiUtils; import okhttp3.Headers; @@ -23,7 +22,7 @@ import retrofit2.Response; * Created by Lucas B. Cunha on 27/06/17. */ -public class CitizensPresenter extends BasePresenter<CitizenActivity> { +public class CitizensPresenter extends BasePresenter<CitizenListActivity> { private CitizensPresenter citizensPresenter; diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/ForgotPasswordPresenter.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/ForgotPasswordPresenter.java index 998b464..9e4a0f4 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/ForgotPasswordPresenter.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/ForgotPasswordPresenter.java @@ -2,17 +2,35 @@ package br.ufpr.c3sl.agendador.agendador.presenters; import android.content.Context; -import br.ufpr.c3sl.agendador.agendador.views.HomeView; +import java.util.HashMap; +import java.util.Map; + +import br.ufpr.c3sl.agendador.agendador.PasswordRetrievalActivity; +import br.ufpr.c3sl.agendador.agendador.network.ApiEndpoints; +import br.ufpr.c3sl.agendador.agendador.network.ApiUtils; /** * Created by Horstmann on 23/02/17. */ -public class ForgotPasswordPresenter extends BasePresenter<HomeView> { +public class ForgotPasswordPresenter extends BasePresenter<PasswordRetrievalActivity> { + private ForgotPasswordPresenter presenter; public ForgotPasswordPresenter(Context context) { this.context = context; + presenter = this; + } + + + public void requestNewPassword(){ + Map<String, String> header = new HashMap<>(); + header.put("Content-Type", "application/json"); + final ApiEndpoints service = ApiUtils.request(header); + + String cpf = presenter.view().getCpf(); + // TODO: 21/09/17 request new password... + } @Override diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/LoginPresenter.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/LoginPresenter.java index fa36144..6302e15 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/LoginPresenter.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/LoginPresenter.java @@ -27,7 +27,6 @@ import java.util.Map; import java.util.TimeZone; import br.ufpr.c3sl.agendador.agendador.CepActivity; -import br.ufpr.c3sl.agendador.agendador.ForgotPasswordActivity; import br.ufpr.c3sl.agendador.agendador.helpers.ObscuredSharedPreferences; import br.ufpr.c3sl.agendador.agendador.helpers.Utils; import br.ufpr.c3sl.agendador.agendador.models.Account; @@ -77,10 +76,7 @@ public class LoginPresenter extends BasePresenter<LoginView> { Intent intent = new Intent(context, CepActivity.class); context.startActivity(intent); } - public void onForgotPasswordClicked(){ - Intent intent = new Intent(context, ForgotPasswordActivity.class); - context.startActivity(intent); - } + public void onLoginClicked(String cpf, String password) { Map<String, String> header = new HashMap<>(); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/views/AccountView.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/views/AccountView.java index c9cf14a..57fc19c 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/views/AccountView.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/views/AccountView.java @@ -26,7 +26,6 @@ public interface AccountView { void setNoConnection(boolean enabled); - void enableButtonEdit(boolean enable); void enableAllFields(boolean enable); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/views/ForgotPasswordView.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/views/ForgotPasswordView.java index 717f4cb..b77b7dc 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/views/ForgotPasswordView.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/views/ForgotPasswordView.java @@ -7,4 +7,11 @@ package br.ufpr.c3sl.agendador.agendador.views; public interface ForgotPasswordView { void setProgressBar(boolean enabled); + + void onRequestFailure(); + + void onRequestSuccess(); + + String getCpf(); + } diff --git a/app/src/main/res/drawable-hdpi/ic_back_arrow_black.png b/app/src/main/res/drawable-hdpi/ic_back_arrow_black.png new file mode 100644 index 0000000000000000000000000000000000000000..1477de7947a53b97391082047f38cfc1f2528171 GIT binary patch literal 298 zcmV+_0oDGAP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm0002-Nkl<Zc-rll zO$x#=6ok`-dJIv5F1l*|j-W0IdM~L`5n6BSO9>*9x@l8=FatwN7LS?qYoHYZf*=Tj z5=kjlk`ElSXCZtWT>3R`JKq{(9^RqEo@MyptF?B`2Aj|D&bbxaoo5{$*Z><~18jiJ zS8TM_HC?xPp3hU5=Fd{@yf4s@ZwY-KT%s@h6b>Z@7077N@fYF8D$tdnA*Vis=z33O znqQ6e9&{xl1!_7zH&V()Dvx>+#c-l0b18~q$>virh7-#Y5u7SkC4duf0#3jQI8BC= wzo)gGV5ApLEPw94;}pWPRVE+^f}nra6Hg~@W!%%HmjD0&07*qoM6N<$f{kT%MgRZ+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_back_arrow_black.png b/app/src/main/res/drawable-mdpi/ic_back_arrow_black.png new file mode 100644 index 0000000000000000000000000000000000000000..016dd51e24599a3be73967329801f65714cc816f GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJeoq(2kcwN$2@<S}6Ev8EgM(GM zxw%^zH{ZE&qe4l*pJ5~Wks@K?$ukvrQrh`uJauz(yXcU3Ebz3uuKd4g%!SMs7#$Ro zm5VmaoH<iTby{#w<Flm#Zy6ROJ!LFq;Bz;b5yar|Y~mcg4Hin1@;VEy2rllE2<l^) wHo>tZf6_r2#zR0#(K_jXjy&t)hA0MxNTxNXjLs^*1v-tv)78&qol`;+0K$1f^#A|> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_back_arrow_black.png b/app/src/main/res/drawable-xhdpi/ic_back_arrow_black.png new file mode 100644 index 0000000000000000000000000000000000000000..87ab4a516ea285f8726ae7b37984840d2389fed3 GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=pFLe1Ln>~)o#n{Y<RId(RLpgH zM*`mj<Hgz6b#GNRFItrPVA0g$CvJb^W#(KWc5}&p+aJ=R4{cLj47-5385rvPrll4q zpYd6{XY00tbFo)kD^69vU!B%fH9PF*@hi98<QIDHGmYN*X_J`DXPfy-{WhOYC?g1a zm&%*vlPx`3VpnuNu8@3H`%hoZbJEtRpZAzftlc_ca{N^`iJ+EyOf^CaBU#QD-O;?V zBy-oRubv<DnqnGjBd1LctbeG=B-r7=q9oAB;i3Rx*1WGiq$Xt@D;V-e<*KOT)IZrQ kQ$M}s$a=~Mbg+U!d9mTl|L-n7n*(ycr>mdKI;Vst04?Z!>i_@% literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_back_arrow_black.png b/app/src/main/res/drawable-xxhdpi/ic_back_arrow_black.png new file mode 100644 index 0000000000000000000000000000000000000000..b1743b4b5dabb9853e5ea92ed730abe2f1aa7aef GIT binary patch literal 518 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>U_9&T;uunK>+KzHZ>B(*w!-d3 zn@(@DYk1%!u!rZ_IoH(+IhUtvG)1{~JKWl)5moYY+gxThrHPt`>1y@-e`YeeOWgZ@ z=CH=%sUS<hV8+2N4k1IS-mu+w-xW?vbuWxpvRwa1qHg)+O5V>x-U6Qc9`YyuNc=6Q z{%-s2x58ehJgp}`^q(dWzj(3C7Gv3eC7kP8WVU<`=5%y#S32!zeczYk|Eh}_Z#?wW z-};>0`awA3x$&Q<wc8ZUZY`9(!1uPHEQ5WEv-JYmTa0gkToiQfx-if7y>a>W>;4(} zZN7PDoyZHp8I@awxhuFn2Rz#O`up$b)GO!q&nV=)8kFhI*tvCagT0=@oCBFV+UtWI zl-QaN-r6)Rpo2+mUCZWF?S&q!I!hK8{3*U+H?8#0&->y}%}NwyTa)uQ=~#2fANzL7 z;%imy_MijzmCh_(T<|7!M(KTJl`9u_w5+;u>7Hz?Mq}TL4kFMCan(8P-*de5CiXo_ zp0qY>we}_!t54gfa+W^nj~0HFA@lFTDgOn^w>;MXagA!kPguyGdBU7<Z(^>`l&O&* NAx~F7mvv4FO#q~%@FD;J literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/disabled_container_shape.xml b/app/src/main/res/drawable/disabled_container_shape.xml new file mode 100644 index 0000000..4f560f6 --- /dev/null +++ b/app/src/main/res/drawable/disabled_container_shape.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape + xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle" > + + <solid + android:color="@color/colorDisabled" > + </solid> + + <corners + android:radius="4dp" > + </corners> + +</shape> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_account_view.xml b/app/src/main/res/layout/activity_account_view.xml index c4e8b20..4096d34 100644 --- a/app/src/main/res/layout/activity_account_view.xml +++ b/app/src/main/res/layout/activity_account_view.xml @@ -95,6 +95,7 @@ android:layout_marginLeft="12dp" android:layout_marginRight="12dp" android:text="@string/form_required_name" + android:maxLength="@integer/max_length_name" android:textColor="@color/colorBlack" android:textSize="16sp" /> diff --git a/app/src/main/res/layout/activity_citizen.xml b/app/src/main/res/layout/activity_citizen.xml index ae5c90a..e395bad 100644 --- a/app/src/main/res/layout/activity_citizen.xml +++ b/app/src/main/res/layout/activity_citizen.xml @@ -23,7 +23,7 @@ android:id="@+id/rv_citizens_citizens" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context="br.ufpr.c3sl.agendador.agendador.CitizenActivity" + tools:context="br.ufpr.c3sl.agendador.agendador.CitizenListActivity" android:layout_below="@+id/dependents_description" android:layout_alignParentStart="true" /> diff --git a/app/src/main/res/layout/activity_dependents.xml b/app/src/main/res/layout/activity_dependents.xml index 1747d99..1e36864 100644 --- a/app/src/main/res/layout/activity_dependents.xml +++ b/app/src/main/res/layout/activity_dependents.xml @@ -95,6 +95,7 @@ android:layout_marginLeft="12dp" android:layout_marginRight="12dp" android:text="@string/form_required_name" + android:maxLength="@integer/max_length_name" android:textColor="@color/colorBlack" android:textSize="16sp" /> diff --git a/app/src/main/res/layout/activity_dependents_list.xml b/app/src/main/res/layout/activity_dependents_list.xml index 454baa2..408641f 100644 --- a/app/src/main/res/layout/activity_dependents_list.xml +++ b/app/src/main/res/layout/activity_dependents_list.xml @@ -38,7 +38,7 @@ android:id="@+id/rv_dependents" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context="br.ufpr.c3sl.agendador.agendador.CitizenActivity" + tools:context="br.ufpr.c3sl.agendador.agendador.CitizenListActivity" android:layout_below="@+id/dependents_description" android:layout_alignParentStart="true" android:layout_marginTop="27dp" /> diff --git a/app/src/main/res/layout/activity_forgot_password.xml b/app/src/main/res/layout/activity_password_retrieval.xml similarity index 61% rename from app/src/main/res/layout/activity_forgot_password.xml rename to app/src/main/res/layout/activity_password_retrieval.xml index e242d90..8fd0cc2 100644 --- a/app/src/main/res/layout/activity_forgot_password.xml +++ b/app/src/main/res/layout/activity_password_retrieval.xml @@ -21,9 +21,12 @@ android:textColor="@color/colorGreen" android:textSize="16sp" android:layout_marginTop="56dp" + android:layout_marginEnd="10dp" + android:layout_marginStart="10dp" android:layout_gravity="center" android:text="Esqueceu Sua Senha?"/> <TextView + android:id="@+id/tv_passwd_retrieval_description" android:layout_width="280dp" android:layout_height="wrap_content" android:textColor="@color/colorBlack" @@ -33,27 +36,31 @@ android:text="Insira seu CPF e enviaremos um email com as instruções de recuperação" /> <TextView + android:id="@+id/tv_passwd_retriev_invalid_cpf" android:text="@string/invalid_cpf" android:layout_width="290dp" android:layout_height="wrap_content" - android:id="@+id/tv_forgot_password_invalid_cpf" - android:layout_gravity="center" android:textAlignment="center" android:textSize="15sp" android:textColor="@color/colorRed" android:layout_marginTop="18dp" + android:layout_marginEnd="10dp" + android:layout_marginStart="10dp" + android:layout_gravity="center" android:visibility="invisible"/> <LinearLayout - android:id="@+id/ll_forgot_password_cpf" + android:id="@+id/ll_passwd_retriev_cpf" android:layout_width="290dp" android:layout_height="45dp" android:layout_marginTop="10dp" - android:layout_marginStart="50dp" + android:layout_marginEnd="10dp" + android:layout_marginStart="10dp" + android:layout_gravity="center" android:background="@drawable/white_container_shape"> <TextView - android:id="@+id/tv_forgot_password_cpf" + android:id="@+id/tv_passwd_retriev_cpf" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/CPF" @@ -65,24 +72,46 @@ <EditText - android:id="@+id/et_forgot_password_cpf" + android:id="@+id/et_passwd_retriev_cpf" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" + android:inputType="number" android:textSize="16sp"/> </LinearLayout> - <Button - android:layout_width="100dp" + + <RelativeLayout + android:id="@+id/ll_passwd_retriev_bts" + android:layout_width="290dp" android:layout_height="50dp" - android:id="@+id/btn_forgot_passwordact_send" - android:layout_marginTop="30dp" - android:textColor="@color/colorBlack" - android:background="@drawable/green_button_shape" - android:text="@string/send" - android:layout_gravity="center_horizontal"/> + android:layout_marginEnd="10dp" + android:layout_marginStart="10dp" + android:layout_gravity="center" + android:layout_marginTop="50dp"> + + <Button + android:id="@+id/bt_passwd_retriev_back" + android:layout_width="100dp" + android:layout_height="50dp" + android:background="@drawable/green_button_shape" + android:gravity="center" + android:text="@string/back" + android:textColor="@color/colorBlack" /> + + <Button + android:id="@+id/bt_passwd_retriev_send" + android:layout_width="100dp" + android:layout_height="50dp" + android:background="@drawable/green_button_shape" + android:gravity="center" + android:text="@string/send" + android:textColor="@color/colorBlack" + android:layout_alignParentTop="true" + android:layout_alignParentEnd="true" /> + </RelativeLayout> </LinearLayout> @@ -90,11 +119,9 @@ <ProgressBar android:layout_width="80dp" android:layout_height="80dp" - android:id="@+id/pb_forgot_paswordact" + android:id="@+id/pb_passwd_retriev_act" android:layout_centerHorizontal="true" android:indeterminate="true" - android:indeterminateTintMode="src_atop" - android:indeterminateTint="@color/colorGreen" android:layout_centerVertical="true" android:visibility="invisible" /> diff --git a/app/src/main/res/layout/activity_retrieval_failure.xml b/app/src/main/res/layout/activity_retrieval_failure.xml new file mode 100644 index 0000000..c3d3322 --- /dev/null +++ b/app/src/main/res/layout/activity_retrieval_failure.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/activity_main" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/colorGreen" + tools:context="br.ufpr.c3sl.agendador.agendador.MainActivity"> + + <ImageView + android:id="@+id/bt_retriev_fail_back" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/ic_back_arrow" + android:layout_marginTop="15dp" + android:layout_marginStart="15dp"/> + + <ImageView + android:id="@+id/img_retrieval_fail" + android:layout_width="151.5dp" + android:layout_height="141.5dp" + android:src="@drawable/img_mainact_logo" + android:layout_marginTop="87.5dp" + android:layout_centerHorizontal="true"/> + + <TextView + android:id="@+id/tv_retrieval_fail_error" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="35dp" + android:layout_gravity="center" + android:layout_marginEnd="65dp" + android:layout_marginStart="65dp" + android:text="@string/email_not_found" + android:textAlignment="center" + android:textSize="16sp" + android:textColor="@color/colorWhite" + android:layout_below="@+id/img_retrieval_fail"/> +</RelativeLayout> diff --git a/app/src/main/res/layout/activity_retrieval_success.xml b/app/src/main/res/layout/activity_retrieval_success.xml new file mode 100644 index 0000000..c657baa --- /dev/null +++ b/app/src/main/res/layout/activity_retrieval_success.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/colorGray"> + + + <ImageView + android:id="@+id/bt_retrieval_succ_back" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/ic_back_arrow_black" + android:layout_marginTop="15dp" + android:layout_marginStart="15dp"/> + + <LinearLayout + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_alignParentStart="true" + android:layout_alignParentTop="true"> + + <ImageView + android:layout_width="120.5dp" + android:layout_height="112.5sp" + android:layout_gravity="center" + android:layout_marginTop="40dp" + android:src="@drawable/img_signupact_logo" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textColor="@color/colorGreen" + android:textSize="16sp" + android:layout_marginTop="70dp" + android:layout_gravity="center" + android:text="@string/password_retrieval_description"/> + + <TextView + android:layout_width="280dp" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:text="@string/password_retrieval_success" + android:textAlignment="center" + android:textColor="@color/colorBlack" + android:textSize="14sp" /> + + + </LinearLayout> + + +</RelativeLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_signup.xml b/app/src/main/res/layout/activity_signup.xml index 77050eb..05f7e4b 100644 --- a/app/src/main/res/layout/activity_signup.xml +++ b/app/src/main/res/layout/activity_signup.xml @@ -55,6 +55,7 @@ android:text="@string/signup_name" android:textColor="@color/colorGreen" android:textSize="16sp" + android:maxLength="@integer/max_length_name" android:layout_gravity="center_vertical" android:layout_marginRight="12dp" android:layout_marginLeft="12dp"/> @@ -581,8 +582,8 @@ android:background="@drawable/green_button_shape" android:layout_alignBaseline="@+id/btn_signup_back" android:layout_alignBottom="@+id/btn_signup_back" - android:layout_alignParentRight="true" - android:layout_marginRight="40dp" + android:layout_alignParentEnd="true" + android:layout_marginEnd="40dp" android:layout_marginBottom="23dp"/> </RelativeLayout> diff --git a/app/src/main/res/values/integer.xml b/app/src/main/res/values/integer.xml new file mode 100644 index 0000000..d0c1abf --- /dev/null +++ b/app/src/main/res/values/integer.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <integer name="max_length_name">150</integer> + +</resources> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a924522..8824cb9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -14,7 +14,7 @@ <string name="cep">CEP</string> <string name="form_required_email">E-mail*</string> <string name="form_email">E-mail</string> - <string name="signup_password">Senha*</string> + <string name="signup_password">Senha</string> <string name="signup_confirmPassword">Confirmar Senha</string> <string name="signup">Cadastrar</string> <string name="back">Voltar</string> @@ -150,7 +150,7 @@ <string name="scheduling_type_hint">Selecione o tipo</string> <string name="scheduling_location_hint">Selecione o local</string> <string name="list_item_absences">Limite de faltas: </string> - <string name="dialog_term_error">Ocorreu um erro ao carregar, por favor:\n* Verifique sua conexão com a internet;\n* Ou ente novamente mais tarde.</string> + <string name="dialog_term_error">Ocorreu um erro ao carregar, por favor:\n* Verifique sua conexão com a internet;\n* Ou tente novamente mais tarde.</string> <string name="citizen_description">Selecione quem será atendido:</string> <string name="no_available_hint">Nenhum DisponÃvel</string> <string name="schedule_time_dialog">Selecione o horário do atendimento:</string> @@ -173,4 +173,7 @@ <string name="dependents_description">Selecione o dependente:</string> <string name="save">Salvar</string> <string name="blocked">bloqueado</string> + <string name="email_not_found">Não encontramos seu e-mail, por favor vá até um posto de atendimento para recuperar sua senha</string> + <string name="password_retrieval_description">E-mail enviado com sucesso:</string> + <string name="password_retrieval_success">Um e-mail foi enviado com instruções para recuperação da sua senha, aguarde alguns minutos. Caso não encontre o e-mail verifique sua caixa de spam.</string> </resources> -- GitLab From ee6baa5c99ea1f3c68096b9987224d0a8d38ef0d Mon Sep 17 00:00:00 2001 From: "Lucas B. Cunha" <lbc16@inf.ufpr.br> Date: Mon, 25 Sep 2017 10:24:43 -0300 Subject: [PATCH 2/2] Issue AGILE#155: Changed mask string to constant Signed-off-by: Lucas B. Cunha <lbc16@inf.ufpr.br> --- .../agendador/agendador/AccountActivity.java | 22 ++++++++-------- .../c3sl/agendador/agendador/CepActivity.java | 5 ++-- .../agendador/DependentUpdateActivity.java | 24 ++++++++---------- .../agendador/agendador/LoginActivity.java | 4 +-- .../agendador/NewDependentActivity.java | 25 ++++++++----------- .../agendador/PasswordRetrievalActivity.java | 5 ++-- .../agendador/agendador/SignUpActivity.java | 18 ++++++------- .../agendador/agendador/helpers/Utils.java | 6 ++++- .../agendador/models/DependentCreation.java | 2 +- .../agendador/agendador/models/UserData.java | 2 +- .../agendador/models/UserOutput.java | 4 +-- .../agendador/presenters/SignUpPresenter.java | 2 +- 12 files changed, 60 insertions(+), 59 deletions(-) diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/AccountActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/AccountActivity.java index 7ef5cba..3d16d8d 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/AccountActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/AccountActivity.java @@ -183,20 +183,20 @@ public class AccountActivity extends AppCompatActivity implements AccountView { userImgHelper = new UserImgHelper(getBaseContext()); - et_cep.addTextChangedListener(Mask.insert("#####-###", et_cep)); - et_cep.setFilters(new InputFilter[]{new InputFilter.LengthFilter("#####-###".length())}); + et_cep.addTextChangedListener(Mask.insert(Utils.CEP_MASK, et_cep)); + et_cep.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.CEP_MASK.length())}); - et_phone.addTextChangedListener(Mask.insert("(##)#####-####", et_phone)); - et_phone.setFilters(new InputFilter[]{new InputFilter.LengthFilter("(##)#####-####".length())}); + et_phone.addTextChangedListener(Mask.insert(Utils.PHONE_MASK, et_phone)); + et_phone.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.PHONE_MASK.length())}); - et_phone2.addTextChangedListener(Mask.insert("(##)#####-####", et_phone2)); - et_phone2.setFilters(new InputFilter[]{new InputFilter.LengthFilter("(##)#####-####".length())}); + et_phone2.addTextChangedListener(Mask.insert(Utils.PHONE_MASK, et_phone2)); + et_phone2.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.PHONE_MASK.length())}); - et_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf)); - et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter("###.###.###-##".length())}); + et_cpf.addTextChangedListener(Mask.insert(Utils.CPF_MASK, et_cpf)); + et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.CPF_MASK.length())}); - et_birthdate.addTextChangedListener(Mask.insert("##/##/####", et_birthdate)); - et_birthdate.setFilters(new InputFilter[]{new InputFilter.LengthFilter("##/##/####".length())}); + et_birthdate.addTextChangedListener(Mask.insert(Utils.BIRTH_DAY_MASK, et_birthdate)); + et_birthdate.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.BIRTH_DAY_MASK.length())}); loadData(); @@ -869,7 +869,7 @@ public class AccountActivity extends AppCompatActivity implements AccountView { values.put(Utils.NAME, et_name.getText().toString()); values.put(Utils.RG, et_rg.getText().toString()); - values.put(Utils.BIRTH_DATE, DateValidator.stringToDate(et_birthdate.getText().toString(), false)); + values.put(Utils.BIRTH_DAY, DateValidator.stringToDate(et_birthdate.getText().toString(), false)); if (rb_no.isChecked()) { values.put(Utils.PCD, null); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CepActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CepActivity.java index 3164509..58064b7 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CepActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/CepActivity.java @@ -13,6 +13,7 @@ import android.widget.TextView; import br.ufpr.c3sl.agendador.agendador.helpers.Mask; import br.ufpr.c3sl.agendador.agendador.helpers.ConnectionErrorDialog; +import br.ufpr.c3sl.agendador.agendador.helpers.Utils; import br.ufpr.c3sl.agendador.agendador.presenters.CepPresenter; import br.ufpr.c3sl.agendador.agendador.presenters.PresenterManager; import br.ufpr.c3sl.agendador.agendador.views.CepView; @@ -47,8 +48,8 @@ public class CepActivity extends AppCompatActivity implements CepView { pb_waiting = (ProgressBar) findViewById(R.id.pb_cepact); et_cep = (EditText) findViewById(R.id.et_cepact_cep); - et_cep.addTextChangedListener(Mask.insert("#####-###", et_cep)); - et_cep.setFilters(new InputFilter[]{new InputFilter.LengthFilter("#####-###".length())}); + et_cep.addTextChangedListener(Mask.insert(Utils.CEP_MASK, et_cep)); + et_cep.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.CPF_MASK.length())}); et_cep.addTextChangedListener(new CepChangeListener()); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/DependentUpdateActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/DependentUpdateActivity.java index 4b62b0b..f04eaf2 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/DependentUpdateActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/DependentUpdateActivity.java @@ -22,7 +22,6 @@ import android.support.v7.widget.Toolbar; import android.text.Editable; import android.text.InputFilter; import android.text.TextWatcher; -import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -158,21 +157,20 @@ public class DependentUpdateActivity extends AppCompatActivity implements Depend userImgHelper = new UserImgHelper(getBaseContext()); et_disability.setEnabled(false); - et_cep.addTextChangedListener(Mask.insert("#####-###", et_cep)); - et_cep.setFilters(new InputFilter[]{new InputFilter.LengthFilter("#####-###".length())}); + et_cep.addTextChangedListener(Mask.insert(Utils.CEP_MASK, et_cep)); + et_cep.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.CEP_MASK.length())}); - et_phone.addTextChangedListener(Mask.insert("(##)#####-####", et_phone)); - et_phone.setFilters(new InputFilter[]{new InputFilter.LengthFilter("(##)#####-####".length())}); + et_phone.addTextChangedListener(Mask.insert(Utils.PHONE_MASK, et_phone)); + et_phone.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.PHONE_MASK.length())}); - et_phone2.addTextChangedListener(Mask.insert("(##)#####-####", et_phone2)); - et_phone2.setFilters(new InputFilter[]{new InputFilter.LengthFilter("(##)#####-####".length())}); + et_phone2.addTextChangedListener(Mask.insert(Utils.PHONE_MASK, et_phone2)); + et_phone2.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.PHONE_MASK.length())}); - et_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf)); - et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter("###.###.###-##".length())}); + et_cpf.addTextChangedListener(Mask.insert(Utils.CPF_MASK, et_cpf)); + et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.CPF_MASK.length())}); - - et_birthdate.addTextChangedListener(Mask.insert("##/##/####", et_birthdate)); - et_birthdate.setFilters(new InputFilter[]{new InputFilter.LengthFilter("##/##/####".length())}); + et_birthdate.addTextChangedListener(Mask.insert(Utils.BIRTH_DAY_MASK, et_birthdate)); + et_birthdate.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.BIRTH_DAY_MASK.length())}); try{ getSupportActionBar().setDisplayHomeAsUpEnabled(true); @@ -544,7 +542,7 @@ public class DependentUpdateActivity extends AppCompatActivity implements Depend values.put(Utils.RG, et_rg.getText().toString().trim()); - values.put(Utils.BIRTH_DATE, DateValidator.stringToDate(et_birthdate.getText().toString(), false)); + values.put(Utils.BIRTH_DAY, DateValidator.stringToDate(et_birthdate.getText().toString(), false)); values.put(Utils.CEP, Mask.unmask(et_cep.getText().toString())); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/LoginActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/LoginActivity.java index bf28686..1842ca2 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/LoginActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/LoginActivity.java @@ -67,8 +67,8 @@ public class LoginActivity extends AppCompatActivity implements LoginView { et_cpf = (EditText) findViewById(R.id.et_loginact_cpf); - et_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf)); - et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter("###.###.###-##".length())}); + et_cpf.addTextChangedListener(Mask.insert(Utils.CPF_MASK, et_cpf)); + et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.CPF_MASK.length())}); et_cpf.addTextChangedListener(new LoginChangeListener()); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/NewDependentActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/NewDependentActivity.java index 9202316..065a2f1 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/NewDependentActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/NewDependentActivity.java @@ -23,7 +23,6 @@ import android.support.v7.widget.Toolbar; import android.text.Editable; import android.text.InputFilter; import android.text.TextWatcher; -import android.util.Log; import android.view.MenuItem; import android.view.View; import android.view.inputmethod.InputMethodManager; @@ -49,7 +48,6 @@ import br.ufpr.c3sl.agendador.agendador.helpers.UserImgHelper; import br.ufpr.c3sl.agendador.agendador.helpers.Utils; import br.ufpr.c3sl.agendador.agendador.helpers.adapters.PhotoSelectionAdapter; import br.ufpr.c3sl.agendador.agendador.models.FullDependent; -import br.ufpr.c3sl.agendador.agendador.models.UserOutput; import br.ufpr.c3sl.agendador.agendador.presenters.NewDependentPresenter; import br.ufpr.c3sl.agendador.agendador.presenters.PresenterManager; import br.ufpr.c3sl.agendador.agendador.views.NewDependentsView; @@ -148,22 +146,21 @@ public class NewDependentActivity extends AppCompatActivity implements NewDepen userImgHelper = new UserImgHelper(getBaseContext()); et_disability.setEnabled(false); - et_cep.addTextChangedListener(Mask.insert("#####-###", et_cep)); - et_cep.setFilters(new InputFilter[]{new InputFilter.LengthFilter("#####-###".length())}); - et_phone.addTextChangedListener(Mask.insert("(##)#####-####", et_phone)); - et_phone.setFilters(new InputFilter[]{new InputFilter.LengthFilter("(##)#####-####".length())}); + et_cep.addTextChangedListener(Mask.insert(Utils.CEP_MASK, et_cep)); + et_cep.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.CEP_MASK.length())}); - et_phone2.addTextChangedListener(Mask.insert("(##)#####-####", et_phone2)); - et_phone2.setFilters(new InputFilter[]{new InputFilter.LengthFilter("(##)#####-####".length())}); + et_phone.addTextChangedListener(Mask.insert(Utils.PHONE_MASK, et_phone)); + et_phone.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.PHONE_MASK.length())}); + et_phone2.addTextChangedListener(Mask.insert(Utils.PHONE_MASK, et_phone2)); + et_phone2.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.PHONE_MASK.length())}); - et_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf)); - et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter("###.###.###-##".length())}); + et_cpf.addTextChangedListener(Mask.insert(Utils.CPF_MASK, et_cpf)); + et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.CPF_MASK.length())}); - - et_birthdate.addTextChangedListener(Mask.insert("##/##/####", et_birthdate)); - et_birthdate.setFilters(new InputFilter[]{new InputFilter.LengthFilter("##/##/####".length())}); + et_birthdate.addTextChangedListener(Mask.insert(Utils.BIRTH_DAY_MASK, et_birthdate)); + et_birthdate.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.BIRTH_DAY_MASK.length())}); try{ getSupportActionBar().setDisplayShowTitleEnabled(false); @@ -457,7 +454,7 @@ public class NewDependentActivity extends AppCompatActivity implements NewDepen if(!et_rg.getText().toString().isEmpty()) values.put(Utils.RG, et_rg.getText().toString().trim()); - values.put(Utils.BIRTH_DATE, DateValidator.stringToDate(et_birthdate.getText().toString(), false)); + values.put(Utils.BIRTH_DAY, DateValidator.stringToDate(et_birthdate.getText().toString(), false)); if (rb_no.isChecked()) { values.put(Utils.PCD, null); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/PasswordRetrievalActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/PasswordRetrievalActivity.java index 16ceb75..2488fd8 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/PasswordRetrievalActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/PasswordRetrievalActivity.java @@ -12,6 +12,7 @@ import android.widget.ProgressBar; import android.widget.TextView; import br.ufpr.c3sl.agendador.agendador.helpers.Mask; +import br.ufpr.c3sl.agendador.agendador.helpers.Utils; import br.ufpr.c3sl.agendador.agendador.presenters.ForgotPasswordPresenter; import br.ufpr.c3sl.agendador.agendador.presenters.PresenterManager; import br.ufpr.c3sl.agendador.agendador.views.ForgotPasswordView; @@ -48,8 +49,8 @@ public class PasswordRetrievalActivity extends AppCompatActivity implements Forg et_cpf = (EditText) findViewById(R.id.et_passwd_retriev_cpf); - et_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf)); - et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter("###.###.###-##".length())}); + et_cpf.addTextChangedListener(Mask.insert(Utils.CPF_MASK, et_cpf)); + et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.CPF_MASK.length())}); pb_waiting = (ProgressBar) findViewById(R.id.pb_passwd_retriev_act); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/SignUpActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/SignUpActivity.java index 5ac2275..c2220f5 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/SignUpActivity.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/SignUpActivity.java @@ -85,20 +85,20 @@ public class SignUpActivity extends AppCompatActivity implements SignupView { btn_back = (Button) findViewById(R.id.btn_signup_back); btn_signup = (Button) findViewById(R.id.btn_signup_signup); - et_cep.addTextChangedListener(Mask.insert("#####-###", et_cep)); - et_cep.setFilters(new InputFilter[]{new InputFilter.LengthFilter("#####-###".length())}); + et_cep.addTextChangedListener(Mask.insert(Utils.CEP_MASK, et_cep)); + et_cep.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.CEP_MASK.length())}); loadCepData(); - et_phone.addTextChangedListener(Mask.insert("(##)#####-####", et_phone)); - et_phone.setFilters(new InputFilter[]{new InputFilter.LengthFilter("(##)#####-####".length())}); + et_phone.addTextChangedListener(Mask.insert(Utils.PHONE_MASK, et_phone)); + et_phone.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.PHONE_MASK.length())}); - et_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf)); - et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter("###.###.###-##".length())}); + et_cpf.addTextChangedListener(Mask.insert(Utils.CPF_MASK, et_cpf)); + et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.CPF_MASK.length())}); - et_birthday.addTextChangedListener(Mask.insert("##/##/####", et_birthday)); - et_birthday.setFilters(new InputFilter[]{new InputFilter.LengthFilter("##/##/####".length())}); + et_birthday.addTextChangedListener(Mask.insert(Utils.BIRTH_DAY_MASK, et_birthday)); + et_birthday.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.BIRTH_DAY_MASK.length())}); btn_back.setOnClickListener(new View.OnClickListener() { @@ -308,7 +308,7 @@ public class SignUpActivity extends AppCompatActivity implements SignupView { HashMap<String,String> values = new HashMap<String,String>(); values.put(Utils.CPF,Mask.unmask(et_cpf.getText().toString())); - values.put(Utils.BIRTH_DATE, DateValidator.stringToDate(et_birthday.getText().toString(),false)); + values.put(Utils.BIRTH_DAY, DateValidator.stringToDate(et_birthday.getText().toString(),false)); values.put(Utils.NAME,et_name.getText().toString()); values.put(Utils.CEP,Mask.unmask(et_cep.getText().toString())); values.put(Utils.PASSWORD_CONFIRMATION,et_password_confirm.getText().toString()); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/helpers/Utils.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/helpers/Utils.java index 2c172ad..3eaaae5 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/helpers/Utils.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/helpers/Utils.java @@ -74,7 +74,7 @@ public class Utils { public static final String ADDRESS_COMPLEMENT = "address.complement"; public static final String CREATED_AT = "created_at"; public static final String CPF = "cpf"; - public static final String BIRTH_DATE = "birth_date"; + public static final String BIRTH_DAY = "birth_date"; public static final String CITY_NAME = "city.name"; public static final String STATE_NAME = "state.name"; public static final String STATE_ABBREVIATION = "state.abbreviation"; @@ -91,6 +91,10 @@ public class Utils { public static final String PASSWORD_CONFIRMATION = "password_confirmation"; public static final String CURRENT_PASSWORD = "current_password"; public static final int NO_ID = 0; + public static final String CEP_MASK = "#####-###"; + public static final String PHONE_MASK = "(##)#####-####"; + public static final String CPF_MASK = "###.###.###-##"; + public static final String BIRTH_DAY_MASK = "##/##/####"; public static int getPixelValue(int dp, Context context) { Resources resources = context.getResources(); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/models/DependentCreation.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/models/DependentCreation.java index 071c148..4161cb2 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/models/DependentCreation.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/models/DependentCreation.java @@ -77,7 +77,7 @@ public class DependentCreation { this.phone1 = values.get(Utils.PHONE_1); this.phone2 = values.get(Utils.PHONE_2); this.name = values.get(Utils.NAME); - this.birthDate = values.get(Utils.BIRTH_DATE); + this.birthDate = values.get(Utils.BIRTH_DAY); this.cep = values.get(Utils.CEP); this.addressComplement = values.get(Utils.ADDRESS_COMPLEMENT); this.active = values.get(Utils.ACTIVE).equals("true"); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/models/UserData.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/models/UserData.java index b671ea6..bfc9d7c 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/models/UserData.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/models/UserData.java @@ -56,7 +56,7 @@ public class UserData { this.mPhone1 = values.get(Utils.PHONE_1); this.mPhone2 = values.get(Utils.PHONE_2); this.mName = values.get(Utils.NAME); - this.mBirth_Date = values.get(Utils.BIRTH_DATE); + this.mBirth_Date = values.get(Utils.BIRTH_DAY); this.mCep = values.get(Utils.CEP); this.mAddressComplement = values.get(Utils.ADDRESS_COMPLEMENT); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/models/UserOutput.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/models/UserOutput.java index dfab797..65ac748 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/models/UserOutput.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/models/UserOutput.java @@ -100,7 +100,7 @@ public class UserOutput implements Parcelable { this.mPhone1 = values.get(Utils.PHONE_1); this.mPhone2 = values.get(Utils.PHONE_2); this.mName = values.get(Utils.NAME); - this.mBirth_Date = values.get(Utils.BIRTH_DATE); + this.mBirth_Date = values.get(Utils.BIRTH_DAY); this.mCep = values.get(Utils.CEP); this.mAddressComplement = values.get(Utils.ADDRESS_COMPLEMENT); @@ -204,7 +204,7 @@ public class UserOutput implements Parcelable { osb.edit().putString(Utils.ADDRESS_COMPLEMENT, this.mAddress.getComplement()).apply(); osb.edit().putString(Utils.CREATED_AT, this.mCreated_At).apply(); osb.edit().putString(Utils.CPF, this.mCpf).apply(); - osb.edit().putString(Utils.BIRTH_DATE, this.mBirth_Date).apply(); + osb.edit().putString(Utils.BIRTH_DAY, this.mBirth_Date).apply(); osb.edit().putString(Utils.CITY_NAME, this.mCity.mName).apply(); osb.edit().putString(Utils.STATE_NAME, this.mState.mName).apply(); osb.edit().putString(Utils.STATE_ABBREVIATION, this.mState.mAbbreviation).apply(); diff --git a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/SignUpPresenter.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/SignUpPresenter.java index 5c545e9..ccdc64b 100644 --- a/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/SignUpPresenter.java +++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/SignUpPresenter.java @@ -49,7 +49,7 @@ public class SignUpPresenter extends BasePresenter<SignupView> { ApiEndpoints service = ApiUtils.request(header); Map<String, String> body; body = signUpPresenter.view().getValues(); - User user = new User(body.get(Utils.CPF), body.get(Utils.BIRTH_DATE), body.get(Utils.PASSWORD), + User user = new User(body.get(Utils.CPF), body.get(Utils.BIRTH_DAY), body.get(Utils.PASSWORD), body.get(Utils.PASSWORD_CONFIRMATION), body.get(Utils.NAME), body.get(Utils.PHONE_1), body.get(Utils.RG), body.get(Utils.CEP),body.get(Utils.EMAIL)); Call<AccountOutput> listCall = service.signUp(user); -- GitLab