Skip to content

Commit 95fce30

Browse files
committed
Added:
- Indonesian, Korean and Ukrainian languages - Link to Crowdin for translations Updated: - Hindi, Greek and Czech languages Fixed: - Broken position with really long website links or usernames
1 parent b46be11 commit 95fce30

File tree

7 files changed

+344
-53
lines changed

7 files changed

+344
-53
lines changed

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ android {
1010
applicationId "com.rabbitcompany.passky"
1111
minSdkVersion 28
1212
targetSdkVersion 32
13-
versionCode 10
14-
versionName '6.0.1'
13+
versionCode 11
14+
versionName '6.0.2'
1515
}
1616

1717
buildTypes {

app/src/main/assets/css/tailwind.min.css

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
! tailwindcss v3.0.22 | MIT License | https://tailwindcss.com
2+
! tailwindcss v3.0.23 | MIT License | https://tailwindcss.com
33
*/
44

55
/*
@@ -733,6 +733,14 @@ Ensure the default browser behavior of the `hidden` attribute.
733733
max-width: 32rem;
734734
}
735735

736+
.max-w-xs {
737+
max-width: 20rem;
738+
}
739+
740+
.max-w-\[16rem\] {
741+
max-width: 16rem;
742+
}
743+
736744
.flex-1 {
737745
flex: 1 1 0%;
738746
}
@@ -872,6 +880,10 @@ Ensure the default browser behavior of the `hidden` attribute.
872880
white-space: nowrap;
873881
}
874882

883+
.text-ellipsis {
884+
text-overflow: ellipsis;
885+
}
886+
875887
.whitespace-nowrap {
876888
white-space: nowrap;
877889
}
@@ -1342,6 +1354,10 @@ Ensure the default browser behavior of the `hidden` attribute.
13421354
max-width: 24rem;
13431355
}
13441356

1357+
.sm\:max-w-\[21rem\] {
1358+
max-width: 21rem;
1359+
}
1360+
13451361
.sm\:grid-cols-2 {
13461362
grid-template-columns: repeat(2, minmax(0, 1fr));
13471363
}
@@ -1408,6 +1424,10 @@ Ensure the default browser behavior of the `hidden` attribute.
14081424
display: block;
14091425
}
14101426

1427+
.md\:max-w-\[27rem\] {
1428+
max-width: 27rem;
1429+
}
1430+
14111431
.md\:grid-cols-3 {
14121432
grid-template-columns: repeat(3, minmax(0, 1fr));
14131433
}
@@ -1430,6 +1450,10 @@ Ensure the default browser behavior of the `hidden` attribute.
14301450
display: none;
14311451
}
14321452

1453+
.lg\:max-w-\[35rem\] {
1454+
max-width: 35rem;
1455+
}
1456+
14331457
.lg\:grid-cols-4 {
14341458
grid-template-columns: repeat(4, minmax(0, 1fr));
14351459
}
@@ -1453,4 +1477,16 @@ Ensure the default browser behavior of the `hidden` attribute.
14531477
padding-left: 0px;
14541478
padding-right: 0px;
14551479
}
1480+
}
1481+
1482+
@media (min-width: 1280px) {
1483+
.xl\:max-w-\[45rem\] {
1484+
max-width: 45rem;
1485+
}
1486+
}
1487+
1488+
@media (min-width: 1536px) {
1489+
.\32xl\:max-w-\[45rem\] {
1490+
max-width: 45rem;
1491+
}
14561492
}

app/src/main/assets/js/lang.js

Lines changed: 288 additions & 41 deletions
Large diffs are not rendered by default.

app/src/main/assets/js/passwords.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ initStorageCache.then(() => {
2626
const website = CryptoJS.AES.decrypt(passwords[i].website, decryptPassword(readData('password'))).toString(CryptoJS.enc.Utf8);
2727
const username = CryptoJS.AES.decrypt(passwords[i].username, decryptPassword(readData('password'))).toString(CryptoJS.enc.Utf8);
2828

29-
html_passwords += "<tr class='passwordsBorderColor'><td class='px-8 py-4 whitespace-nowrap'><div class='flex items-center'><div class='flex-shrink-0 h-10 w-10'>";
29+
html_passwords += "<tr class='passwordsBorderColor'><td class='px-8 py-4 max-w-xs whitespace-nowrap overflow-hidden'><div class='flex items-center'><div class='flex-shrink-0 h-10 w-10'>";
3030
//Icon
3131
html_passwords += "<img class='h-10 w-10 rounded-full' loading='lazy' src='https://www.google.com/s2/favicons?domain=" + website + "' alt=''>";
32-
html_passwords += "</div><div class='ml-4'><div class='tertiaryColor text-sm font-medium'>";
32+
html_passwords += "</div><div class='ml-4'><div class='tertiaryColor text-sm font-medium max-w-[16rem] sm:max-w-[21rem] md:max-w-[27rem] lg:max-w-[35rem] xl:max-w-[45rem] 2xl:max-w-[45rem] overflow-hidden text-ellipsis'>";
3333
//Url
3434
html_passwords += website;
35-
html_passwords += "</div><div class='secondaryColor text-sm'>";
35+
html_passwords += "</div><div class='secondaryColor text-sm max-w-[16rem] sm:max-w-[21rem] md:max-w-[27rem] lg:max-w-[35rem] xl:max-w-[45rem] 2xl:max-w-[45rem] overflow-hidden text-ellipsis'>";
3636
//Username
3737
html_passwords += username;
3838
html_passwords += "</div></div></div></td><td class='px-1 py-4 whitespace-nowrap'>";
@@ -304,7 +304,7 @@ function changeDialog(style, text) {
304304

305305
document.getElementById('dialog-title').innerText = lang[readData('lang')]["add_password"];
306306

307-
document.getElementById('dialog-text').innerHTML = "<div class='rounded-md shadow-sm -space-y-px'><div><label for='website' class='sr-only'>Website </label><input id='website' name='website' type='text' autocomplete='website' required class='appearance-none rounded-none relative block w-full px-3 py-2 border rounded-t-md focus:outline-none focus:z-10 sm:text-sm' placeholder='" + lang[readData('lang')]['website'] + "'></div><div><label for='username' class='sr-only'>Username </label><input id='username' name='username' type='text' autocomplete='username' required class='appearance-none rounded-none relative block w-full px-3 py-2 border focus:outline-none sm:text-sm' placeholder='" + lang[readData('lang')]['username'] + "'></div><div><div class='flex rounded-md shadow-sm'><div class='relative flex items-stretch flex-grow focus-within:z-10'><input id='password' name='password' type='password' autocomplete='current-password' required class='appearance-none rounded-none relative block w-full px-3 py-2 border rounded-bl-md focus:outline-none sm:text-sm' placeholder='" + lang[readData('lang')]['password'] + "'></div><button id='btn-password-generator' class='secondaryColor tertiaryBackgroundColor primaryBorderColor -ml-px relative inline-flex items-center space-x-2 px-4 py-2 border text-sm font-medium rounded-br-md focus:outline-none'><svg xmlns='http://www.w3.org/2000/svg' class='primaryStrokeColor' width='24' height='24' viewBox='0 0 24 24' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'><path stroke='none' d='M0 0h24v24H0z' fill='none'/><rect x='3' y='3' width='6' height='6' rx='1' /><rect x='15' y='15' width='6' height='6' rx='1' /><path d='M21 11v-3a2 2 0 0 0 -2 -2h-6l3 3m0 -6l-3 3' /><path d='M3 13v3a2 2 0 0 0 2 2h6l-3 -3m0 6l3 -3' /></svg></button></div></div><h3 id='optionalNote' class='tertiaryColor text-lg leading-6 font-medium py-2'>Optional note</h3><textarea id='message' name='message' rows='3' class='max-w-lg p-2 shadow-sm block w-full sm:text-sm rounded-md focus:outline-none focus:z-10'></textarea>";
307+
document.getElementById('dialog-text').innerHTML = "<div class='rounded-md shadow-sm -space-y-px'><div><label for='website' class='sr-only'>Website </label><input id='website' name='website' type='text' autocomplete='website' required class='appearance-none rounded-none relative block w-full px-3 py-2 border rounded-t-md focus:outline-none focus:z-10 sm:text-sm' placeholder=\"" + lang[readData('lang')]['website'] + "\"></div><div><label for='username' class='sr-only'>Username </label><input id='username' name='username' type='text' autocomplete='username' required class='appearance-none rounded-none relative block w-full px-3 py-2 border focus:outline-none sm:text-sm' placeholder=\"" + lang[readData('lang')]['username'] + "\"></div><div><div class='flex rounded-md shadow-sm'><div class='relative flex items-stretch flex-grow focus-within:z-10'><input id='password' name='password' type='password' autocomplete='current-password' required class='appearance-none rounded-none relative block w-full px-3 py-2 border rounded-bl-md focus:outline-none sm:text-sm' placeholder=\"" + lang[readData('lang')]['password'] + "\"></div><button id='btn-password-generator' class='secondaryColor tertiaryBackgroundColor primaryBorderColor -ml-px relative inline-flex items-center space-x-2 px-4 py-2 border text-sm font-medium rounded-br-md focus:outline-none'><svg xmlns='http://www.w3.org/2000/svg' class='primaryStrokeColor' width='24' height='24' viewBox='0 0 24 24' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'><path stroke='none' d='M0 0h24v24H0z' fill='none'/><rect x='3' y='3' width='6' height='6' rx='1' /><rect x='15' y='15' width='6' height='6' rx='1' /><path d='M21 11v-3a2 2 0 0 0 -2 -2h-6l3 3m0 -6l-3 3' /><path d='M3 13v3a2 2 0 0 0 2 2h6l-3 -3m0 6l3 -3' /></svg></button></div></div><h3 id='optionalNote' class='tertiaryColor text-lg leading-6 font-medium py-2'>Optional note</h3><textarea id='message' name='message' rows='3' class='max-w-lg p-2 shadow-sm block w-full sm:text-sm rounded-md focus:outline-none focus:z-10'></textarea>";
308308

309309
document.getElementById('optionalNote').innerText = lang[readData('lang')]["optional_note"];
310310

app/src/main/assets/passwords.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
</div>
100100
<div class="px-4 py-5 secondaryBackgroundColor shadow overflow-hidden sm:p-6">
101101
<dt class="text-sm font-medium secondaryColor truncate">Client Version</dt>
102-
<dd class="mt-1 text-3xl font-semibold tertiaryColor">6.0.1</dd>
102+
<dd class="mt-1 text-3xl font-semibold tertiaryColor">6.0.2</dd>
103103
</div>
104104
</dl>
105105
</div>

app/src/main/assets/settings.html

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,13 @@
8787
<option value="en">English</option>
8888
<option value="zh-CN">Chinese (Simplified)</option>
8989
<option value="hi">Hindi</option>
90-
<option value="tr">Turkish</option>
91-
<option value="fr">French</option>
9290
<option value="ar">Arabic</option>
91+
<option value="fr">French</option>
9392
<option value="ru">Russian</option>
93+
<option value="id">Indonesian</option>
9494
<option value="de">German</option>
95+
<option value="tr">Turkish</option>
96+
<option value="ko">Korean</option>
9597
<option value="it">Italian</option>
9698
<option value="pl">Polish</option>
9799
<option value="el">Greek</option>
@@ -102,9 +104,12 @@
102104
<option value="sl">Slovenian</option>
103105
<option value="bs">Bosnian</option>
104106
<option value="ro">Romanian</option>
105-
<option value="id">Bahasa Indonesia</option>
107+
<option value="uk">Ukrainian</option>
106108
</select>
107109
</div>
110+
<label class="secondaryColor block text-sm font-medium sm:mt-px sm:pt-2">
111+
Missing language? Translate it on <a class="primaryColor" href="https://crowdin.com/project/passky" target="_blank">Crowdin</a>.
112+
</label>
108113
</div>
109114
</li>
110115
<!-- Themes -->
@@ -153,6 +158,9 @@
153158
Enable
154159
</button>
155160
</div>
161+
<label class="secondaryColor block text-sm font-medium sm:mt-px sm:pt-2">
162+
Only available in the browser extension.
163+
</label>
156164
</div>
157165
</li>
158166
<!-- 2FA -->

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ buildscript {
44
mavenCentral()
55
}
66
dependencies {
7-
classpath 'com.android.tools.build:gradle:7.1.1'
7+
classpath 'com.android.tools.build:gradle:7.1.2'
88
}
99
}
1010

0 commit comments

Comments
 (0)