losion.liu@sikey.com.cn 3 months ago
parent
commit
f07c03a1d9

+ 1 - 1
app/src/main/AndroidManifest.xml

@@ -229,7 +229,7 @@
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:launchMode="singleInstance" />
         <activity
-            android:name=".Activity.BlackDoorPasswordActivity"
+            android:name=".Activity.BlackDoorActivity"
             android:exported="true"
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:launchMode="singleInstance" />

+ 1 - 4
app/src/main/java/com/xplora/xpsettings/Activity/AboutActivity.java

@@ -9,7 +9,6 @@ import android.os.Environment;
 import android.os.StatFs;
 import android.os.SystemProperties;
 import android.text.format.Formatter;
-import android.util.Log;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ListView;
@@ -25,8 +24,6 @@ import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
 
 
 public class AboutActivity extends BaseActivity {
@@ -130,7 +127,7 @@ public class AboutActivity extends BaseActivity {
     }
 
     private void showBlackdoorPassword() {
-        Intent intent = new Intent(this, BlackDoorPasswordActivity.class);
+        Intent intent = new Intent(this, BlackDoorActivity.class);
         intent.putExtra("from", 0);
         startActivity(intent);
     }

+ 1 - 2
app/src/main/java/com/xplora/xpsettings/Activity/AlertActivity.java

@@ -2,7 +2,6 @@ package com.xplora.xpsettings.Activity;
 
 import android.content.Intent;
 import android.os.Bundle;
-import android.view.View;
 import android.view.WindowManager;
 import android.widget.Button;
 
@@ -18,7 +17,7 @@ public class AlertActivity extends BaseActivity {
         Button btnNext = (Button) findViewById(R.id.btn_next);
         btnNext.setOnClickListener(view -> {
             finish();
-            Intent i = new Intent(AlertActivity.this, BlackDoorPasswordActivity.class);
+            Intent i = new Intent(AlertActivity.this, BlackDoorActivity.class);
             startActivity(i);
         });
 

+ 106 - 0
app/src/main/java/com/xplora/xpsettings/Activity/BasePasswordActivity.java

@@ -0,0 +1,106 @@
+package com.xplora.xpsettings.Activity;
+
+import android.os.SystemProperties;
+import android.provider.Settings;
+
+public class BasePasswordActivity extends BaseActivity {
+    protected static final String BD_PW_TEST = "011235";
+    protected static final String BD_PW_LOG = "023445";
+    protected static final int BD_TIMEOUT = 3600;
+
+    protected void resetAfterTimeout(boolean isForce) {
+        long time = getLeftTime();
+        if (isForce || time <= 0) {
+            setErrorCount(0);
+            setLockTime(0);
+        }
+    }
+
+    protected long getLeftTime() {
+        long curTime = getCurrentTime();
+        long lockTime = getLockTime();
+        long leftTime = curTime - lockTime;
+        return leftTime >= BD_TIMEOUT ? 0 : leftTime;
+    }
+
+    protected boolean isLock() {
+        long leftTime = getLeftTime();
+        int count = getErrorCount();
+        return leftTime > 0 && count >= 3;
+    }
+
+    protected boolean checkTestPassword(String value) {
+        boolean isDefault = (getImei().length() < 15 && value.equals(BD_PW_TEST));
+        boolean isOK = value.equals(getPwd(0));
+        return isDefault || isOK;
+    }
+
+    protected boolean checkLogPassword(String value) {
+        boolean isDefault = (getImei().length() < 15 && value.equals(BD_PW_LOG));
+        boolean isOK = value.equals(getPwd(1));
+        return isDefault || isOK;
+    }
+
+    // type 0: test tool; type 1: log tool
+    protected String getPwd(int type) {
+        String imei = getImei();
+        if (imei.length() < 15) {
+            return type == 0 ? BD_PW_TEST : BD_PW_LOG;
+        } else {
+            imei = new StringBuilder(imei).reverse().toString();
+            int start = imei.charAt(0) - '0';
+            if (type == 0) {
+                StringBuilder sb = new StringBuilder();
+                sb.append(imei.charAt(start));
+                sb.append(imei.charAt(start + 1));
+                sb.append(imei.charAt(start + 1));
+                sb.append(imei.charAt(start + 2));
+                sb.append(imei.charAt(start + 3));
+                sb.append(imei.charAt(start + 5));
+                return sb.toString();
+            } else {
+                StringBuilder sb = new StringBuilder();
+                sb.append(imei.charAt(start));
+                sb.append(imei.charAt(start + 2));
+                sb.append(imei.charAt(start + 3));
+                sb.append(imei.charAt(start + 4));
+                sb.append(imei.charAt(start + 4));
+                sb.append(imei.charAt(start + 5));
+                return sb.toString();
+            }
+        }
+    }
+
+    public void addError() {
+        int count = getErrorCount();
+        setErrorCount(count + 1);
+        if (getLeftTime() <= 0) {
+            setLockTime(getCurrentTime());
+        }
+    }
+
+    public String getImei() {
+        //return "351851370085380";
+        return SystemProperties.get("persist.zs.imei.number", "");
+    }
+
+    public int getErrorCount() {
+        return Settings.Global.getInt(getContentResolver(), "bd_error_count", 0);
+    }
+
+    public void setErrorCount(int count) {
+        Settings.Global.putInt(getContentResolver(), "bd_error_count", count);
+    }
+
+    public long getLockTime() {
+        return Settings.Global.getLong(getContentResolver(), "bd_lock_time", 0);
+    }
+
+    public void setLockTime(long time) {
+        Settings.Global.putLong(getContentResolver(), "bd_lock_time", time);
+    }
+
+    public long getCurrentTime() {
+        return System.currentTimeMillis() / 1000;
+    }
+}

+ 55 - 72
app/src/main/java/com/xplora/xpsettings/Activity/BlackDoorPasswordActivity.java → app/src/main/java/com/xplora/xpsettings/Activity/BlackDoorActivity.java

@@ -4,48 +4,55 @@ import android.content.ComponentName;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.SystemProperties;
+import android.provider.Settings;
 import android.view.View;
 import android.view.WindowManager;
 import android.widget.Button;
 import android.widget.ImageButton;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
 import android.widget.TextView;
 import android.widget.Toast;
 
 import com.xplora.xpsettings.R;
 
-public class BlackDoorPasswordActivity extends BaseActivity {
-    public String mInput = "";
+public class BlackDoorActivity extends BasePasswordActivity {
+    private RelativeLayout mLockLayout = null;
     private TextView mTextView1 = null;
-    private TextView mTextView2 = null;
-    private TextView mTextView3 = null;
-    private TextView mTextView4 = null;
-    View.OnClickListener mOnClickListener = v -> {
-        int tag = Integer.parseInt((String) v.getTag());
-        if (tag == 100) {
-            actionBack();
-        } else if (tag == 101) {
-            actionOK();
-        } else {
-            if (mInput.length() >= 4)
-                return;
-            mInput += tag;
-            showPinCode();
-        }
-    };
-    private final int subID = 0;
-    private final String mSavePin = "";
-    private final int mPinOrPuk = 1;  //1:pin 2:puk
+    public String mInput = "";
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_blackdoor_password);
         getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
-        mTextView1 = findViewById(R.id.text1);
-        mTextView2 = findViewById(R.id.text2);
-        mTextView3 = findViewById(R.id.text3);
-        mTextView4 = findViewById(R.id.text4);
 
+        resetAfterTimeout(false);
+        initInputView();
+        refreshLockView();
+    }
+
+    private void refreshLockView() {
+        if (!isLock())
+            return;
+        long minutes = getLeftTime() / 60;
+        long second = getLeftTime() % 60;
+        long time = minutes + (second > 0 ? 1 : 0);
+        String content = getString(R.string.bd_3_content, time);
+
+        mLockLayout = findViewById(R.id.lockLayout);
+        TextView errorContent = findViewById(R.id.mErrorContent);
+        Button button = findViewById(R.id.mErrorBtn);
+
+        mLockLayout.setVisibility(View.VISIBLE);
+        errorContent.setText(content);
+        button.setOnClickListener((e)-> {
+            finish();
+        });
+    }
+
+    private void initInputView() {
+        mTextView1 = findViewById(R.id.text1);
         Button button1 = findViewById(R.id.button1);
         Button button2 = findViewById(R.id.button2);
         Button button3 = findViewById(R.id.button3);
@@ -58,7 +65,6 @@ public class BlackDoorPasswordActivity extends BaseActivity {
         Button button0 = findViewById(R.id.button0);
         ImageButton buttonOK = findViewById(R.id.buttonOK);
         ImageButton buttonBack = findViewById(R.id.buttonBack);
-
         button1.setOnClickListener(mOnClickListener);
         button2.setOnClickListener(mOnClickListener);
         button3.setOnClickListener(mOnClickListener);
@@ -73,11 +79,22 @@ public class BlackDoorPasswordActivity extends BaseActivity {
         buttonBack.setOnClickListener(mOnClickListener);
     }
 
+    View.OnClickListener mOnClickListener = v -> {
+        int tag = Integer.parseInt((String) v.getTag());
+        if (tag == 100) {
+            actionBack();
+        } else if (tag == 101) {
+            actionOK();
+        } else {
+//            if (mInput.length() >= 6)
+//                return;
+            mInput += tag;
+            showPinCode();
+        }
+    };
+
     private void showPinCode() {
-        mTextView1.setText(mInput.length() >= 1 ? String.valueOf(mInput.charAt(0)) : "");
-        mTextView2.setText(mInput.length() >= 2 ? String.valueOf(mInput.charAt(1)) : "");
-        mTextView3.setText(mInput.length() >= 3 ? String.valueOf(mInput.charAt(2)) : "");
-        mTextView4.setText(mInput.length() >= 4 ? String.valueOf(mInput.charAt(3)) : "");
+        mTextView1.setText(mInput);
     }
 
     private void actionBack() {
@@ -87,52 +104,15 @@ public class BlackDoorPasswordActivity extends BaseActivity {
         showPinCode();
     }
 
-    private static final String DICTIONARY = "5127940836";
-    // type 0: test tool
-    // type 1: log tool
-    private String getPwd(int type) {
-        String imei = SystemProperties.get("persist.zs.imei.number", "");
-        if (imei.isEmpty()) {
-            if (type == 0)
-                return "1123";
-            else
-                return "2234";
-        }
-        StringBuilder sb = new StringBuilder();
-        String imei_sub;
-        if (type == 0) {
-            imei_sub = imei.substring(4, 12);
-        } else {
-            imei_sub = imei.substring(6, 14);
-        }
-        for (int i = 0; i < imei.length(); i = i + 2) {
-            int index = Integer.parseInt(String.valueOf(imei_sub.charAt(i)));
-            sb.append(DICTIONARY.charAt(index));
-            if (sb.length() == 4) break;
-        }
-        return sb.toString();
-    }
-
-    private String getBackBackDoor() {
-        String imei = SystemProperties.get("persist.zs.imei.number", "");
-        if (imei.isEmpty()) {
-            return "1123";
-        }
-        String sub = imei.substring(imei.length() - 4);
-        StringBuilder sb = new StringBuilder(sub).reverse();
-        return sb.toString();
-    }
-
     private void actionOK() {
         int entry = getIntent().getIntExtra("from", 1);
-        String pwdTestTool = getPwd(0);
-        String pwdLogTool = getPwd(1);
-        String pwdBackBackDoor = getBackBackDoor();
-        if ((mInput.equals(pwdTestTool) && entry == 0) || mInput.equals(pwdBackBackDoor)) {
-            Intent intent = new Intent(BlackDoorPasswordActivity.this, TestToolsActivity.class);
+        if (entry == 0 && checkTestPassword (mInput)) {
+            resetAfterTimeout(true);
+            Intent intent = new Intent(BlackDoorActivity.this, TestToolsActivity.class);
             startActivity(intent);
             finish();
-        } else if (mInput.equals(pwdLogTool) && entry == 1) {
+        } else if (entry == 1 && checkLogPassword(mInput)) {
+            resetAfterTimeout(true);
             Intent intent = new Intent();
             intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             intent.setComponent(new ComponentName(
@@ -142,6 +122,9 @@ public class BlackDoorPasswordActivity extends BaseActivity {
             startActivity(intent);
             finish();
         } else {
+            mInput = "";
+            showPinCode();
+            addError();
             Toast toast = Toast.makeText(this, getString(R.string.blackdoor_password_error), Toast.LENGTH_SHORT);
             toast.show();
         }

+ 10 - 0
app/src/main/res/drawable-xhdpi/view_shape_input.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shape
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <!-- 填充的颜色 -->
+    <solid android:color="#262626" />
+
+    <!-- 圆角的半径 -->
+    <corners android:radius="8dp" />
+</shape>

+ 60 - 44
app/src/main/res/layout/activity_blackdoor_password.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:background="@color/black"
@@ -16,58 +16,25 @@
         android:orientation="vertical">
 
         <LinearLayout
-            android:id="@+id/mEditLayout"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
+            android:layout_height="60dp"
             android:layout_weight="1"
             android:orientation="horizontal">
-
             <TextView
                 android:id="@+id/text1"
                 android:layout_width="38dp"
-                android:layout_height="wrap_content"
+                android:layout_height="match_parent"
                 android:layout_weight="1"
-                android:background="@drawable/pwd_bg"
+                android:paddingStart="5dp"
+                android:paddingEnd="5dp"
+                android:background="@drawable/view_shape_input"
                 android:gravity="center"
+                android:maxLines="1"
+                android:ellipsize="middle"
                 android:textColor="@color/white"
                 android:textFontWeight="600"
-                android:textSize="24sp" />
-
-            <TextView
-                android:id="@+id/text2"
-                android:layout_width="38dp"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="2dp"
-                android:layout_weight="1"
-                android:background="@drawable/pwd_bg"
-                android:gravity="center"
-                android:textColor="@color/white"
-                android:textFontWeight="600"
-                android:textSize="24sp" />
-
-            <TextView
-                android:id="@+id/text3"
-                android:layout_width="38dp"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="2dp"
-                android:layout_weight="1"
-                android:background="@drawable/pwd_bg"
-                android:gravity="center"
-                android:textColor="@color/white"
-                android:textFontWeight="600"
-                android:textSize="24sp" />
-
-            <TextView
-                android:id="@+id/text4"
-                android:layout_width="38dp"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="2dp"
-                android:layout_weight="1"
-                android:background="@drawable/pwd_bg"
-                android:gravity="center"
-                android:textColor="@color/white"
-                android:textFontWeight="600"
-                android:textSize="24sp" />
+                android:textSize="24sp"
+                />
         </LinearLayout>
 
         <LinearLayout
@@ -243,5 +210,54 @@
                 android:src="@drawable/pin_ok"
                 android:tag="101" />
         </LinearLayout>
+
     </LinearLayout>
-</FrameLayout>
+
+    <RelativeLayout
+        android:id="@+id/lockLayout"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/black"
+        android:visibility="invisible"
+        >
+        <TextView
+            android:id="@+id/mErrorTitle"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="35dp"
+            android:textColor="@color/white"
+            android:textSize="15sp"
+            android:textFontWeight="700"
+            android:gravity="center"
+            android:text="@string/bd_3_title"
+            />
+        <TextView
+            android:id="@+id/mErrorContent"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/mErrorTitle"
+            android:layout_marginTop="15dp"
+            android:layout_marginStart="7dp"
+            android:layout_marginEnd="7dp"
+            android:textColor="@color/white"
+            android:textSize="11sp"
+            android:textFontWeight="400"
+            android:gravity="center"
+            android:text="@string/bd_3_content"
+            />
+        <Button
+            android:id="@+id/mErrorBtn"
+            style="@style/xp_style_button_all"
+            android:layout_width="match_parent"
+            android:layout_height="28dp"
+            android:layout_marginStart="15dp"
+            android:layout_marginEnd="15dp"
+            android:layout_marginBottom="15dp"
+            android:layout_alignParentBottom="true"
+            android:backgroundTint="@color/xp_green"
+            android:text="@string/ok"
+            android:textFontWeight="700"
+            android:textSize="12sp" />
+    </RelativeLayout>
+
+</RelativeLayout>

+ 2 - 0
app/src/main/res/values-b+sr+Latn/strings.xml

@@ -139,5 +139,7 @@
 
     <string name="timeformat_title_array_0">12-satni format</string>
     <string name="timeformat_title_array_1">24-satni format</string>
+    <string name="bd_3_title">"Грешка лозинке "</string>
+    <string name="bd_3_content">Грешка лозинке догодила се 3 пута, покушајте поново за д минута.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-da/strings.xml

@@ -139,5 +139,7 @@
 
     <string name="timeformat_title_array_0">12 timers format</string>
     <string name="timeformat_title_array_1">24 timers format</string>
+    <string name="bd_3_title">Adgangskodefejl</string>
+    <string name="bd_3_content">Adgangskodefejl er opstået 3 gange, prøv igen i %d minutter.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-de/strings.xml

@@ -179,4 +179,6 @@
     <string name="apn_value_array_6">IPv4/IPv6</string>
     <string name="apn_value_array_7">IPv4/IPv6</string>
     <string name="apn_value_array_8">Nicht spezifiziert</string>
+    <string name="bd_3_title">Passwortfehler</string>
+    <string name="bd_3_content">Passwortfehler ist 3 mal aufgetreten, bitte versuchen Sie es in %d Minuten erneut.</string>
 </resources>

+ 2 - 0
app/src/main/res/values-es/strings.xml

@@ -139,5 +139,7 @@
 
     <string name="timeformat_title_array_0">12 horas</string>
     <string name="timeformat_title_array_1">24 horas</string>
+    <string name="bd_3_title">Error de contraseña</string>
+    <string name="bd_3_content">El error de contraseña ha ocurrido 3 veces, por favor vuelva a intentarlo en %d minutos.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-et/strings.xml

@@ -139,5 +139,7 @@
 
     <string name="timeformat_title_array_0">12-tunnine formaat</string>
     <string name="timeformat_title_array_1">24-tunnine formaat</string>
+    <string name="bd_3_title">Parooli viga</string>
+    <string name="bd_3_content">Parooli viga on esinenud 3 korda, palun proovige uuesti %d minuti pärast.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-fi/strings.xml

@@ -139,5 +139,7 @@
 
     <string name="timeformat_title_array_0">12 h kello</string>
     <string name="timeformat_title_array_1">24 h kello</string>
+    <string name="bd_3_title">Salasana virhe</string>
+    <string name="bd_3_content">Salasanavirhe on esiintynyt 3 kertaa, yritä uudelleen %d minuutissa.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-fr/strings.xml

@@ -139,5 +139,7 @@
 
     <string name="timeformat_title_array_0">Format 12 heures</string>
     <string name="timeformat_title_array_1">Format 24 heures</string>
+    <string name="bd_3_title">Erreur de mot de passe</string>
+    <string name="bd_3_content">Une erreur de mot de passe s\'est produite 3 fois, veuillez réessayer en %d minutes.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-hu/strings.xml

@@ -139,5 +139,7 @@
 
     <string name="timeformat_title_array_0">12-óra formátum</string>
     <string name="timeformat_title_array_1">24-óra formátum</string>
+    <string name="bd_3_title">Jelszóhiba</string>
+    <string name="bd_3_content">Jelszóhiba 3 alkalommal történt, kérjük próbálja meg újra %d perc alatt.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-is/strings.xml

@@ -139,5 +139,7 @@
 
     <string name="timeformat_title_array_0">12 tíma snið</string>
     <string name="timeformat_title_array_1">24 tíma snið</string>
+    <string name="bd_3_title">Lykilorðvilla</string>
+    <string name="bd_3_content">Lykilorðvillur hafa átt sér stað 3 sinnum, vinsamlegast reyndu aftur á %d mínútum.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-it/strings.xml

@@ -139,5 +139,7 @@
 
     <string name="timeformat_title_array_0">Formato 12 ore</string>
     <string name="timeformat_title_array_1">Formato 24 ore</string>
+    <string name="bd_3_title">Errore di password</string>
+    <string name="bd_3_content">Errore di password si è verificato 3 volte, si prega di riprovare in %d minuti.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-lt/strings.xml

@@ -138,5 +138,7 @@
 
     <string name="timeformat_title_array_0">12 val.</string>
     <string name="timeformat_title_array_1">24 val.</string>
+    <string name="bd_3_title">"Slaptažodžio klaida "</string>
+    <string name="bd_3_content">Slaptažodžio klaida įvyko 3 kartus, pabandykite dar kartą per %d minučių.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-lv/strings.xml

@@ -170,5 +170,7 @@
     <string name="software_wifi_error_array_1">Lūdzu, vispirms ieslēdziet Wi-Fi</string>
     <string name="timeformat_title_array_0">12 Stundas</string>
     <string name="timeformat_title_array_1">24 Stundas</string>
+    <string name="bd_3_title">Paroles kļūda</string>
+    <string name="bd_3_content">Paroles kļūda ir notikusi 3 reizes, lūdzu, mēģiniet vēlreiz %d minūšu laikā.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-nb/strings.xml

@@ -139,5 +139,7 @@
 
     <string name="timeformat_title_array_0">12-timersklokke</string>
     <string name="timeformat_title_array_1">24-timersklokke</string>
+    <string name="bd_3_title">Passordfeil</string>
+    <string name="bd_3_content">Passordfeil har oppstått tre ganger, vennligst prøv igjen om %d minutter.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-nl/strings.xml

@@ -139,5 +139,7 @@
 
     <string name="timeformat_title_array_0">12-uurs notatie</string>
     <string name="timeformat_title_array_1">24-uurs notatie</string>
+    <string name="bd_3_title">Wachtwoordfout</string>
+    <string name="bd_3_content">Wachtwoordfout is 3 keer voorgekomen, probeer het opnieuw in %d minuten.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-pl/strings.xml

@@ -138,5 +138,7 @@
 
     <string name="timeformat_title_array_0">12 godz.</string>
     <string name="timeformat_title_array_1">24 godz.</string>
+    <string name="bd_3_title">"Błąd hasła "</string>
+    <string name="bd_3_content">Błąd hasła wystąpił 3 razy, spróbuj ponownie za %d minut.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-pt/strings.xml

@@ -139,5 +139,7 @@
 
     <string name="timeformat_title_array_0">Formato de 12 horas</string>
     <string name="timeformat_title_array_1">Formato de 24 horas</string>
+    <string name="bd_3_title">Erro de senha</string>
+    <string name="bd_3_content">Erro de senha ocorreu 3 vezes, tente novamente em %d minutos.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-sl/strings.xml

@@ -139,5 +139,7 @@
 
     <string name="timeformat_title_array_0">12-urni format</string>
     <string name="timeformat_title_array_1">24-urni format</string>
+    <string name="bd_3_title">"Napaka z geslom "</string>
+    <string name="bd_3_content">Napaka z geslom se je pojavila 3-krat, poskusite znova v %d minutah.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values-sv/strings.xml

@@ -139,5 +139,7 @@
 
     <string name="timeformat_title_array_0">12 - timmars format</string>
     <string name="timeformat_title_array_1">24- timmars format</string>
+    <string name="bd_3_title">Lösenordsfel</string>
+    <string name="bd_3_content">Lösenordsfel har inträffat 3 gånger, försök igen om %d minuter.</string>
 
 </resources>

+ 2 - 0
app/src/main/res/values/strings.xml

@@ -179,4 +179,6 @@
     <string name="apn_value_array_6">IPv4/IPv6</string>
     <string name="apn_value_array_7">IPv4/IPv6</string>
     <string name="apn_value_array_8">Not specified</string>
+    <string name="bd_3_title">Password error</string>
+    <string name="bd_3_content">Password error has occurred 3 times, please try again in %d minutes.</string>
 </resources>