diff --git a/app/src/main/java/cy/agorise/crystalwallet/activities/PatternRequestActivity.java b/app/src/main/java/cy/agorise/crystalwallet/activities/PatternRequestActivity.java index ec51e2f..56ec8b1 100644 --- a/app/src/main/java/cy/agorise/crystalwallet/activities/PatternRequestActivity.java +++ b/app/src/main/java/cy/agorise/crystalwallet/activities/PatternRequestActivity.java @@ -36,6 +36,19 @@ public class PatternRequestActivity extends AppCompatActivity { @BindView(R.id.tvPatternText) TextView tvPatternText; + @BindView(R.id.txtBadtry) + TextView txtBadtry; + + /* + * Contains the bad tries + * */ + private int tries = 0; + + /* + * Seconds counter + * */ + private int seconds = 15; + @@ -111,10 +124,69 @@ public class PatternRequestActivity extends AppCompatActivity { private void incorrect(){ + /* + * One more bad try + * */ + ++tries; + + final Activity activity = this; + + /* + * User can not go more up to 5 bad tries + * */ + if(tries==4) { + tries = 0; + + patternLockView.setEnabled(false); + txtBadtry.setVisibility(View.VISIBLE); + txtBadtry.setText(txtBadtry.getText().toString().replace("%%",String.valueOf(seconds))); + + final Timer t = new Timer(); + //Set the schedule function and rate + t.scheduleAtFixedRate(new TimerTask() { + + @Override + public void run() { + + --seconds; + + if(seconds==0){ + t.cancel(); + + seconds = 15; + + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + patternLockView.setEnabled(true); + txtBadtry.setVisibility(View.INVISIBLE); + patternLockView.clearPattern(); + patternLockView.requestFocus(); + } + }); + } + else{ + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + txtBadtry.setText(activity.getResources().getString(R.string.wrong_pin_wait).replace("%%",String.valueOf(seconds))); + } + }); + } + } + + }, + //Set how long before to start calling the TimerTask (in milliseconds) + 1000, + //Set the amount of time between each execution (in milliseconds) + 1000); + + return; + } + /* * Show error * */ - final Activity activity = this; tvPatternText.setText(activity.getResources().getString(R.string.Incorrect_pattern)); tvPatternText.setTextColor(Color.RED); tvPatternText.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/cy/agorise/crystalwallet/fragments/PatternSecurityFragment.java b/app/src/main/java/cy/agorise/crystalwallet/fragments/PatternSecurityFragment.java index 070b1b8..e98d883 100644 --- a/app/src/main/java/cy/agorise/crystalwallet/fragments/PatternSecurityFragment.java +++ b/app/src/main/java/cy/agorise/crystalwallet/fragments/PatternSecurityFragment.java @@ -193,8 +193,8 @@ public class PatternSecurityFragment extends Fragment { * */ tvPatternText.setText(getActivity().getResources().getString(R.string.Pattern_set_correctly)); tvPatternText.setTextColor(Color.GREEN); - final Timer t = new Timer(); - t.scheduleAtFixedRate(new TimerTask() { + final Timer t_ = new Timer(); + t_.scheduleAtFixedRate(new TimerTask() { @Override public void run() { @@ -203,7 +203,7 @@ public class PatternSecurityFragment extends Fragment { @Override public void run() { - t.cancel(); + t_.cancel(); showNewPatternUI(); } }); diff --git a/app/src/main/res/layout/activity_pattern_request.xml b/app/src/main/res/layout/activity_pattern_request.xml index 1bd30ed..1f9e119 100644 --- a/app/src/main/res/layout/activity_pattern_request.xml +++ b/app/src/main/res/layout/activity_pattern_request.xml @@ -21,4 +21,15 @@ android:layout_centerInParent="true" android:background="@drawable/gradient"/> + + \ 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 fc1bd08..02263a8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -220,7 +220,7 @@ Fee OK - Wrong PIN you have to wait %% seconds ... + Wrong match you have to wait %% seconds ... Loading... Pay to