diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 878700bf1338aad2d98e8f26ddbacfa9e1d5b7a1..a2f111e99fed6452b065b2c53f3f6f73b8a5207c 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 733c741b38104ef8bc4576379fe3675b23188361..3d16d8d7f24f3974fa2106533e6141212fba7d9a 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;
@@ -181,11 +183,20 @@ 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_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf));
-        et_birthdate.addTextChangedListener(Mask.insert("##/##/####", et_birthdate));
+        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(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(Utils.CPF_MASK, et_cpf));
+        et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.CPF_MASK.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();
 
@@ -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);
@@ -848,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 5ceb5a9a835182628d241fb6793aac578332c1ee..58064b7db3167322edf13b725b74d4490d742f23 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;
@@ -12,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;
@@ -46,7 +48,9 @@ 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.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());
 
         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 f9e955c9e4f2e4e8fc3e708f7a01da573e75bb3b..48005dada8f70a84476595aa981256df939fc93f 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 30a03a34c19a7787e92e4a6672f936c75ce1332e..047e85f8ad51986ecb36dd13f3d2f5bd747b9d8b 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 b91be80904dccb1b3824ced1901b8b71731f6eb0..f04eaf22bc29cba7ecd2f1baf52d3ac46a18952a 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,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.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 +88,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 +156,21 @@ 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_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf));
-        et_birthdate.addTextChangedListener(Mask.insert("##/##/####", et_birthdate));
+
+        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(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(Utils.CPF_MASK, et_cpf));
+        et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.CPF_MASK.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);
@@ -385,6 +391,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);
@@ -528,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/ForgotPasswordActivity.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/ForgotPasswordActivity.java
deleted file mode 100644
index af965868cc4187eae3f7cd852101ab00752adfbf..0000000000000000000000000000000000000000
--- 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 9b12dacc08cab645808fdf8856f14c67ec7eaf38..aa344e070f1e6226588896d8534b43657418c454 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 e871966f34e9b875ff7b2cdda932d6295e048a86..1842ca22e6dc76562bdc4bde6491d6991dda9364 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.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());
 
         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 4a3445aae623659cad74b151bdf6fa3e8797f138..065a2f1c409a1d9012977beb6b46633d508e7b1e 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,11 @@ 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;
@@ -46,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;
@@ -144,11 +145,23 @@ 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_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf));
-        et_birthdate.addTextChangedListener(Mask.insert("##/##/####", et_birthdate));
+
+
+        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(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(Utils.CPF_MASK, et_cpf));
+        et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.CPF_MASK.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);
             getSupportActionBar().setDisplayHomeAsUpEnabled(true);
@@ -441,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);
@@ -490,7 +503,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 0000000000000000000000000000000000000000..2488fd8e1e84fe04a1d40865ec018a404f900725
--- /dev/null
+++ b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/PasswordRetrievalActivity.java
@@ -0,0 +1,126 @@
+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.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;
+
+/**
+ * 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(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);
+
+        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 0000000000000000000000000000000000000000..08b5e006dcbe5a6f0bc29638acc64f22f6d26be2
--- /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 0000000000000000000000000000000000000000..a6f66cac68e9ea8d2bf69d2ea87b1f79fa59f1b1
--- /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 2ecf99eefdc3af87c62e005a5008dc06264365b2..c2220f5ccd55472c50bf104704af84c7d3349f0a 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;
@@ -84,13 +85,21 @@ 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.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_cpf.addTextChangedListener(Mask.insert("###.###.###-##", et_cpf));
-        et_birthday.addTextChangedListener(Mask.insert("##/##/####", et_birthday));
+        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(Utils.CPF_MASK, et_cpf));
+        et_cpf.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Utils.CPF_MASK.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() {
             @Override
@@ -299,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/Mask.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/helpers/Mask.java
index f2fa728ad452ae94be332ed5a2e84d492ba64058..ebcb0a9a4bd6aeeb525a736b7c4af50dbc488476 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/helpers/Utils.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/helpers/Utils.java
index 2c172ade35f47d5bae3e1002816aef66a7afe9cc..3eaaae5ba8cda1ea737af0402a5f8951c044b0e9 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 071c1484ec4a334fd76a28fcb1ab576a1d581020..4161cb23a98d746c3e25bef6127e7ecc137959a0 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 b671ea653a435c0d4bd96a10ec1f8351959ca5b4..bfc9d7c096e3347284f163d0b077520994e109d0 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 dfab7973f411fb9c48c24b3ac83bf1b1e688f75b..65ac7482fda7b892f1627091f2b4f4f1d8b71f2c 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/CitizensPresenter.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/CitizensPresenter.java
index a47630ee38621e26d4b1dcbcc044677ddedc53bd..8f5f2b0f75c2eece3c04d79d4b317f3cc85bcc9a 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 998b4645af0373c726d37a230b1a50dfb746fdc1..9e4a0f4a79f4da58f6766d826b31e0a499a03c12 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 fa361447c65cf7bfb91a4bcde2e1f6c0a8fce774..6302e1527afda45862f0e70e715c0c3519384b47 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/presenters/SignUpPresenter.java b/app/src/main/java/br/ufpr/c3sl/agendador/agendador/presenters/SignUpPresenter.java
index 5c545e9cedd90eb8e4dd1af304759614e6cab31d..ccdc64b7572be2f5469bca63e98d04faeaf4e524 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);
 
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 c9cf14ac8527e8964554dc232ea3efe8df11d7cf..57fc19cb03568c9f4f8f6bb49346b1ceb113d9a0 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 717f4cbb62d880e1aa56089969048e7330a1648f..b77b7dca51e3cca940292cf1d9817c3a12548f7d 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
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_back_arrow_black.png differ
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
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_back_arrow_black.png differ
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
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_back_arrow_black.png differ
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
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_back_arrow_black.png differ
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 0000000000000000000000000000000000000000..4f560f6cdef97f0a6f9a1193464035b59537c306
--- /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 c4e8b2001a5cecb494765b3f574297a17c3c94dc..4096d3469e61499d1d019dc4d133349776064f42 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 ae5c90a8ca9545433e375aae45b55d13e8b0a11f..e395badf26132179b0cf295448374f1895c24d51 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 1747d999407fa77b039db817d926dd3bd295c09a..1e36864503759a2b479c184fd3a9c11957b3478a 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 454baa212f8c1093acf8c765c0747c43666ed319..408641f49dfadfd890ba23935ecdd2ff995ab45c 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 e242d90ac6eb46ae04e9df6923d2e60bf7d66f6f..8fd0cc246c7efdc8cc5d26f66bbbc095d359f830 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 0000000000000000000000000000000000000000..c3d332250950c122001379b951a4293b98bfce9c
--- /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 0000000000000000000000000000000000000000..c657baad993f1c1a2f0a14d132e80795c5575250
--- /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 77050eb19783bf1fb0cc25a1876fe76ed73a8612..05f7e4bad2b99d1fe879bd1636c4123c09f32136 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 0000000000000000000000000000000000000000..d0c1abf8782237c7cf7aa6490c3893d74ba1d2c4
--- /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 a9245226540b9a558f31b8eecd677210bd4c0f4b..8824cb9e52c8576f9cc40feb78867e9019c9361c 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>