Skip to content

Commit a41ab80

Browse files
committed
QuickPass 2.0 beta 3
- Settings update -- Auto asking permission for writing to storage -- New icons for export/import -- New back button -- Tips for export/import now always available - Translation updated - All new main screen -- Smooth panel for all passwords -- Statistic copied to main screen - Optimization for some constructions - Fixes - Libraries updated (10/10/20)
1 parent b549f0f commit a41ab80

File tree

7 files changed

+76
-33
lines changed

7 files changed

+76
-33
lines changed

app/src/main/java/com/mikhailgrigorev/quickpass/SettingsActivity.kt

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import android.view.View
1616
import android.widget.Toast
1717
import androidx.appcompat.app.AppCompatActivity
1818
import androidx.appcompat.app.AppCompatDelegate
19+
import androidx.core.app.ActivityCompat
1920
import androidx.core.content.ContextCompat
2021
import kotlinx.android.synthetic.main.activity_settings.*
2122
import java.io.*
@@ -735,6 +736,13 @@ class SettingsActivity : AppCompatActivity() {
735736

736737
importDB.setOnClickListener {
737738
try {
739+
if (ContextCompat.checkSelfPermission(this@SettingsActivity,
740+
android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
741+
!= PackageManager.PERMISSION_GRANTED) {
742+
ActivityCompat.requestPermissions(this,
743+
arrayOf(android.Manifest.permission.WRITE_EXTERNAL_STORAGE),
744+
PackageManager.PERMISSION_GRANTED)
745+
}
738746
val filename = "/MyBackUp.csv"
739747
val sdCardDir =
740748
Environment.getExternalStorageDirectory()
@@ -799,17 +807,31 @@ class SettingsActivity : AppCompatActivity() {
799807
toast(getString(R.string.imported))
800808
}
801809
catch (ex: Exception) {
802-
if (passDataBase.isOpen) {
803-
passDataBase.close()
804-
toast(ex.message.toString())
805-
warn_Card.visibility = View.VISIBLE
806-
}
807810
}
808811

809812
}
810813

814+
back.setOnClickListener {
815+
val intent = Intent(this, AccountActivity::class.java)
816+
intent.putExtra("login", login)
817+
intent.putExtra("passName", passName)
818+
intent.putExtra("activity", account)
819+
startActivity(intent)
820+
this.overridePendingTransition(
821+
R.anim.right_in,
822+
R.anim.right_out
823+
)
824+
finish() }
825+
811826
export.setOnClickListener {
812827
try {
828+
if (ContextCompat.checkSelfPermission(this@SettingsActivity,
829+
android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
830+
!= PackageManager.PERMISSION_GRANTED) {
831+
ActivityCompat.requestPermissions(this,
832+
arrayOf(android.Manifest.permission.WRITE_EXTERNAL_STORAGE),
833+
PackageManager.PERMISSION_GRANTED)
834+
}
813835
val c = passDataBase.rawQuery("select * from $login", null)
814836
val rowcount: Int
815837
val colcount: Int
@@ -849,11 +871,6 @@ class SettingsActivity : AppCompatActivity() {
849871
toast(getString(R.string.exported))
850872
}
851873
} catch (ex: Exception) {
852-
if (passDataBase.isOpen) {
853-
passDataBase.close()
854-
toast(ex.message.toString())
855-
warn_Card.visibility = View.VISIBLE
856-
}
857874
}
858875
}
859876
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<!-- drawable/arrow_left.xml -->
2+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:height="24dp"
4+
android:width="24dp"
5+
android:viewportWidth="24"
6+
android:viewportHeight="24">
7+
<path android:fillColor="#000" android:pathData="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z" />
8+
</vector>
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
<!-- drawable/download.xml -->
1+
<!-- drawable/cloud_upload_outline.xml -->
22
<vector xmlns:android="http://schemas.android.com/apk/res/android"
33
android:height="24dp"
44
android:width="24dp"
55
android:viewportWidth="24"
66
android:viewportHeight="24">
7-
<path android:fillColor="#000" android:pathData="M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z" />
7+
<path android:fillColor="#000" android:pathData="M19.35,10.04C18.67,6.59 15.64,4 12,4C9.11,4 6.6,5.64 5.35,8.04C2.34,8.36 0,10.91 0,14A6,6 0 0,0 6,20H19A5,5 0 0,0 24,15C24,12.36 21.95,10.22 19.35,10.04M19,18H6A4,4 0 0,1 2,14C2,11.95 3.53,10.24 5.56,10.03L6.63,9.92L7.13,8.97C8.08,7.14 9.94,6 12,6C14.62,6 16.88,7.86 17.39,10.43L17.69,11.93L19.22,12.04C20.78,12.14 22,13.45 22,15A3,3 0 0,1 19,18M8,13H10.55V16H13.45V13H16L12,9L8,13Z" />
88
</vector>

app/src/main/res/drawable/upload.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
<!-- drawable/upload.xml -->
1+
<!-- drawable/content_save.xml -->
22
<vector xmlns:android="http://schemas.android.com/apk/res/android"
33
android:height="24dp"
44
android:width="24dp"
55
android:viewportWidth="24"
66
android:viewportHeight="24">
7-
<path android:fillColor="#000" android:pathData="M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z" />
7+
<path android:fillColor="#000" android:pathData="M15,9H5V5H15M12,19A3,3 0 0,1 9,16A3,3 0 0,1 12,13A3,3 0 0,1 15,16A3,3 0 0,1 12,19M17,3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V7L17,3Z" />
88
</vector>

app/src/main/res/layout/activity_settings.xml

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@
155155
android:text="@string/settings"
156156
android:textColor="@color/textDark"
157157
android:textSize="24sp"
158-
app:layout_constraintStart_toStartOf="parent"
158+
app:layout_constraintStart_toEndOf="@+id/back"
159159
app:layout_constraintTop_toTopOf="parent" />
160160

161161
<androidx.cardview.widget.CardView
@@ -402,7 +402,7 @@
402402
android:layout_marginStart="20dp"
403403
android:layout_marginTop="10dp"
404404
android:layout_marginEnd="20dp"
405-
android:visibility="gone"
405+
android:visibility="visible"
406406
app:cardBackgroundColor="?attr/colorPrimary"
407407
app:cardCornerRadius="10dp"
408408
app:cardElevation="20dp"
@@ -496,7 +496,7 @@
496496
android:layout_height="wrap_content"
497497
android:layout_margin="10dp"
498498
android:background="@android:color/transparent"
499-
android:contentDescription="@string/settings"
499+
android:contentDescription="@string/export"
500500
android:paddingStart="20dp"
501501
android:paddingEnd="20dp"
502502
android:src="@drawable/upload"
@@ -508,14 +508,26 @@
508508
android:layout_height="wrap_content"
509509
android:layout_margin="10dp"
510510
android:background="@android:color/transparent"
511-
android:contentDescription="@string/about_app"
511+
android:contentDescription="@string/importFile"
512512
android:paddingStart="20dp"
513513
android:paddingEnd="20dp"
514514
android:src="@drawable/download"
515515
android:tint="@color/black" />
516516
</LinearLayout>
517517

518518
</androidx.cardview.widget.CardView>
519+
520+
<ImageView
521+
android:id="@+id/back"
522+
android:layout_width="wrap_content"
523+
android:layout_height="wrap_content"
524+
android:layout_marginStart="20dp"
525+
android:contentDescription="@string/back"
526+
app:layout_constraintBottom_toBottomOf="@+id/helloTextId"
527+
app:layout_constraintStart_toStartOf="parent"
528+
app:layout_constraintTop_toTopOf="@+id/helloTextId"
529+
app:srcCompat="@drawable/arrow_left"
530+
app:tint="@color/black" />
519531
</androidx.constraintlayout.widget.ConstraintLayout>
520532
</androidx.core.widget.NestedScrollView>
521533

app/src/main/res/values-ru/strings.xml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,17 +121,20 @@
121121
<string name="exported">Успешно экспортировано.</string>
122122
<string name="imported">Успешно импортировано.</string>
123123
<string name="inOut">Информация по экспорту/импорту</string>
124-
<string name="InOutMessage">"В целях доверия к нашему приложению, мы не запрашиваем разрешения на запись файлов. Поэтому вам следует самостоятельно предоставить его в настройках приложения. "</string>
125-
<string name="InOutMessage2">Резервная копия создаётся в начальном каталоге внутренней памяти. Для экспорта данных просим также разместить корректный csv - файл в каталог.</string>
126-
<string name="InOutMessage3">Вы можете самостоятельно создать csv в формате: (_id,name,password,2fa,useTimeNotifications,time,tags,groups,login(or e-mail), description). Id, time - будут заполнены автоматически, 2fa, usetime принимают 1 или 0 в зависимости от использования. Groups инициализирован \"#favorite\", если пароль в избранном.</string>
124+
<string name="InOutMessage">Для экспорта/импорта данных необходимо предоставить разрешение на доступ к файловой системе</string>
125+
<string name="InOutMessage2">Резервная копия создаётся в начальном каталоге внутренней памяти. Для экспорта данных просим также разместить корректный "MyBackUp.csv" в каталог</string>
126+
<string name="InOutMessage3">Вы можете самостоятельно создать csv в формате: (_id,name,password,2fa,useTimeNotifications,time,tags,groups,login(or e-mail), description). Id, time - будут заполнены автоматически, 2fa, usetime принимают 1 или 0 в зависимости от использования. Groups инициализирован \"#favorite\", если пароль в избранном</string>
127127
<string name="warning">Предупреждение!</string>
128128

129129
<string name="newPassRule">Правила создания паролей</string>
130-
<string name="newPassRule1">1. Надёжный пароль должен содержать более 12 символов, а также содержать три набора символов: БОЛЬШИЕ и маленькие буквы, цифры, специальные символы.</string>
131-
<string name="newPassRule2">2. Не используйте общедоступную информацию: части фио, номера телефонов, важные для вас даты</string>
132-
<string name="newPassRule3">3. Для разных сайтов — разные пароли! Если какой-либо сай взломают, первое что сделают — проверят, подходит ли пароль к вашей электронной почте, затем попробуют получить доступ к аккаунту в социальной сети и средствам онлайн-оплаты.</string>
130+
<string name="newPassRule1">1. Надёжный пароль должен содержать более 12 символов, а также три набора символов: БОЛЬШИЕ и маленькие буквы, цифры (1,2,3…), специальные символы (./-…)</string>
131+
<string name="newPassRule2">2. Не используйте общедоступную информацию: части ФИО, номера телефонов, важные для вас даты</string>
132+
<string name="newPassRule3">3. Используйте разные пароли. Если какой-либо пароль окажется общедоступен, злоумышленники смогут получить доступ к другим вашим аккаунтам.</string>
133133

134134
<string name="latest_updates_on_my_github_page">Свежие обновления на моей странице GitHub</string>
135135
<string name="about_desc">Мощный менеджер паролей с дружественным пользовательским интерфейсом, защищенной системой, классным генератором паролей и собственной платформой автозаполнения</string>
136136
<string name="smile">Smile</string>
137+
<string name="back">Back</string>
138+
<string name="export">Export</string>
139+
<string name="importFile">Import</string>
137140
</resources>

app/src/main/res/values/strings.xml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,13 @@
7474
<string name="deletePassword">Delete this password</string>
7575
<string name="passwordDeleteConfirm">Are you really want to this password?</string>
7676
<string name="passwordDeleted">You password has been deleted</string>
77-
<string name="accountDeleteConfirm">Are you really want to this account?</string>
77+
<string name="accountDeleteConfirm">Are you really want to delete this account?</string>
7878
<string name="accountDelete">Delete this account</string>
7979
<string name="accountDeleted">You account has been deleted</string>
8080
<string name="low">low</string>
8181
<string name="high">high</string>
8282
<string name="medium">medium</string>
83-
<string name="no_password">You have no passwords yet. Add your first password.</string>
83+
<string name="no_password">You have no passwords yet. Tap to add your first password.</string>
8484
<string name="you_decided_to_change_some_settings">You decided to change some settings</string>
8585
<string name="bio_usage">Biometric usage</string>
8686
<string name="fingerUnlock">Do you want to use fingerprint unlock?</string>
@@ -137,17 +137,20 @@
137137
<string name="exported">Exported successfully to sdcard.</string>
138138
<string name="imported">Imported successfully from sdcard.</string>
139139
<string name="inOut">Export/Import info</string>
140-
<string name="InOutMessage">In order to trust our application, we do not request permission to write files. Therefore, you should provide it yourself in the application settings.</string>
141-
<string name="InOutMessage2">A backup is created in the initial directory of the internal memory. To export data, we also ask you to place the correct csv file in the directory.</string>
142-
<string name="InOutMessage3">You can create csv yourself in the format: (_id, name, password, 2fa, useTimeNotifications, time, tags, groups, login (or e-mail), description). Id, time - will be filled automatically, 2fa, usetime take 1 or 0 depending on usage. Groups initialized to \"#favorite\" if the password is in the favorites.</string>
140+
<string name="InOutMessage">To export / import data, you should grant permission to access the file system</string>
141+
<string name="InOutMessage2">A backup is created in the initial directory of the internal memory. To export data, we also ask you to place the correct "MyBackUp.csv" in the directory</string>
142+
<string name="InOutMessage3">You can create csv yourself in the format: (_id, name, password, 2fa, useTimeNotifications, time, tags, groups, login (or e-mail), description). Id, time - will be filled automatically, 2fa, usetime take 1 or 0 depending on usage. Groups initialized to \"#favorite\" if the password is in the favorites</string>
143143
<string name="warning">Warning!</string>
144144
<string name="latest_updates_on_my_github_page">Latest updates on my GitHub page</string>
145-
<string name="about_desc">Powerful password manager with friendly UI, secured system, cool password generateor and it\'s own autofill framework</string>
145+
<string name="about_desc">Powerful password manager with friendly UI, secured system, cool password generator and it\'s own auto-fill framework</string>
146146
<string name="up" translatable="false">Up</string>
147-
<string name="newPassRule">Password rules</string>
148-
<string name="newPassRule1">1. A strong password must be more than 12 characters long and contain three sets of characters: LARGE and small letters, numbers, special characters.</string>
147+
<string name="newPassRule">Password creation rules</string>
148+
<string name="newPassRule1">1. A strong password must be more than 12 characters long and contain three sets of characters: LARGE and small letters, numbers (1,2,3…), special characters (./-…)</string>
149149
<string name="newPassRule2">2. Do not use publicly available information: parts of the name, phone numbers, dates important to you</string>
150-
<string name="newPassRule3">3. Different passwords for different sites! If a site gets hacked, the first thing they do is check if it fit password to your email, then try to access your social media account and online payment options.</string>
150+
<string name="newPassRule3">3. Use different passwords. If any password is publicly available, hackers can gain access to your other accounts.</string>
151151
<string name="smile">Smile</string>
152+
<string name="back">Back</string>
153+
<string name="export">Export</string>
154+
<string name="importFile">Import</string>
152155

153156
</resources>

0 commit comments

Comments
 (0)