diff --git a/libdino/src/service/registration.vala b/libdino/src/service/registration.vala
index 4255f322..c75531b4 100644
--- a/libdino/src/service/registration.vala
+++ b/libdino/src/service/registration.vala
@@ -71,6 +71,12 @@ public class Register : StreamInteractionModule, Object{
return ret;
}
+ public async string? change_password(Account account, string new_pw){
+ XmppStream stream = stream_interactor.get_stream(account);
+ if (stream == null) return "Connection unavailable";
+ return yield stream.get_module(Xep.InBandRegistration.Module.IDENTITY).change_password(stream, account.full_jid, new_pw);
+ }
+
public class ServerAvailabilityReturn {
public bool available { get; set; }
public TlsCertificateFlags? error_flags { get; set; }
@@ -229,3 +235,4 @@ public class Register : StreamInteractionModule, Object{
}
}
+
diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt
index b27944d0..0f660898 100644
--- a/main/CMakeLists.txt
+++ b/main/CMakeLists.txt
@@ -78,6 +78,7 @@ set(RESOURCE_LIST
conversation_content_view/view.ui
manage_accounts/account_row.ui
manage_accounts/add_account_dialog.ui
+ manage_accounts/change_password_dialog.ui
manage_accounts/dialog.ui
menu_add.ui
menu_app.ui
@@ -218,6 +219,7 @@ SOURCES
src/ui/manage_accounts/account_row.vala
src/ui/manage_accounts/add_account_dialog.vala
+ src/ui/manage_accounts/change_password_dialog.vala
src/ui/manage_accounts/dialog.vala
src/ui/occupant_menu/list.vala
diff --git a/main/data/gresource.xml b/main/data/gresource.xml
index 282838e0..a2e3f047 100644
--- a/main/data/gresource.xml
+++ b/main/data/gresource.xml
@@ -58,6 +58,7 @@
manage_accounts/account_row.ui
manage_accounts/add_account_dialog.ui
manage_accounts/dialog.ui
+ manage_accounts/change_password_dialog.ui
menu_add.ui
menu_app.ui
menu_conversation.ui
diff --git a/main/data/manage_accounts/change_password_dialog.ui b/main/data/manage_accounts/change_password_dialog.ui
new file mode 100644
index 00000000..67e1ce6a
--- /dev/null
+++ b/main/data/manage_accounts/change_password_dialog.ui
@@ -0,0 +1,158 @@
+
+
+
+
+ Change password
+ center
+ True
+
+
+
+
+ cancel_button
+ change_password_button
+
+
+
diff --git a/main/data/manage_accounts/dialog.ui b/main/data/manage_accounts/dialog.ui
index 4931507c..0a76c361 100644
--- a/main/data/manage_accounts/dialog.ui
+++ b/main/data/manage_accounts/dialog.ui
@@ -165,7 +165,17 @@
1
2
- 2
+ 1
+
+
+
+
+
+ ⚙️
+
+ 2
+ 2
+ 1
diff --git a/main/meson.build b/main/meson.build
index e9b37878..69069f64 100644
--- a/main/meson.build
+++ b/main/meson.build
@@ -72,6 +72,7 @@ sources = files(
'src/ui/main_window_controller.vala',
'src/ui/manage_accounts/account_row.vala',
'src/ui/manage_accounts/add_account_dialog.vala',
+ 'src/ui/manage_accounts/change_password_dialog.vala',
'src/ui/manage_accounts/dialog.vala',
'src/ui/notifier_freedesktop.vala',
'src/ui/notifier_gnotifications.vala',
diff --git a/main/po/ar.po b/main/po/ar.po
index 5ea8c2f3..45a0248a 100644
--- a/main/po/ar.po
+++ b/main/po/ar.po
@@ -1176,6 +1176,24 @@ msgstr "لقد أعددت كل شيء!"
msgid "Finish"
msgstr "أنهي"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "اضغط هنا لبداية المحادثة أو للإنضمام إلى قناة."
diff --git a/main/po/ca.po b/main/po/ca.po
index 8075b8b9..6ce1dc26 100644
--- a/main/po/ca.po
+++ b/main/po/ca.po
@@ -1163,6 +1163,24 @@ msgstr "Tot llest!"
msgid "Finish"
msgstr "Finalitza"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Feu clic aquí per a començar una conversa o unir-vos a un canal."
diff --git a/main/po/cs.po b/main/po/cs.po
index 09cc262f..4d9f1116 100644
--- a/main/po/cs.po
+++ b/main/po/cs.po
@@ -1166,5 +1166,22 @@ msgstr "Vše připraveno!"
msgid "Finish"
msgstr "Dokončit"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Kliknutím sem zahájíte konverzaci nebo se připojíte ke kanálu."
diff --git a/main/po/da.po b/main/po/da.po
index bd134027..8891ccc2 100644
--- a/main/po/da.po
+++ b/main/po/da.po
@@ -1153,3 +1153,20 @@ msgstr ""
#: main/data/manage_accounts/add_account_dialog.ui:506
msgid "Finish"
msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
diff --git a/main/po/de.po b/main/po/de.po
index 4dc48850..d8f5dbda 100644
--- a/main/po/de.po
+++ b/main/po/de.po
@@ -1161,6 +1161,23 @@ msgstr "Fertig!"
msgid "Finish"
msgstr "Fertig"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr ""
#~ "Klicke hier, um eine Unterhaltung zu starten oder einem Kanal beizutreten."
diff --git a/main/po/dino.pot b/main/po/dino.pot
index 7d85975f..173f601b 100644
--- a/main/po/dino.pot
+++ b/main/po/dino.pot
@@ -1154,3 +1154,20 @@ msgstr ""
#: main/data/manage_accounts/add_account_dialog.ui:506
msgid "Finish"
msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
diff --git a/main/po/el.po b/main/po/el.po
index b363d32b..9ca055ca 100644
--- a/main/po/el.po
+++ b/main/po/el.po
@@ -1169,6 +1169,23 @@ msgstr "Όλα έτοιμα!"
msgid "Finish"
msgstr "Ολοκλήρωση"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr ""
#~ "Κάντε κλικ εδώ για να ξεκινήσετε μια συνομιλία ή να εισέλθετε σε ένα "
diff --git a/main/po/en.po b/main/po/en.po
index 96bdf526..7fb7fc6f 100644
--- a/main/po/en.po
+++ b/main/po/en.po
@@ -1144,3 +1144,20 @@ msgstr ""
#: main/data/manage_accounts/add_account_dialog.ui:506
msgid "Finish"
msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
diff --git a/main/po/eo.po b/main/po/eo.po
index bb1006fe..4f3e8046 100644
--- a/main/po/eo.po
+++ b/main/po/eo.po
@@ -1162,6 +1162,24 @@ msgstr "Ĉio pretas!"
msgid "Finish"
msgstr "Fini"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Alklaku ĉi tie por komenci konversacion aŭ aliĝi al kanalo."
diff --git a/main/po/es.po b/main/po/es.po
index 65f76f50..aac068e1 100644
--- a/main/po/es.po
+++ b/main/po/es.po
@@ -1166,6 +1166,23 @@ msgstr "¡Todo listo!"
msgid "Finish"
msgstr "Finalizado"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr ""
#~ "Pulsar aquí para iniciar una conversación o unirse a un conversación en "
diff --git a/main/po/eu.po b/main/po/eu.po
index 29f22e04..6395950d 100644
--- a/main/po/eu.po
+++ b/main/po/eu.po
@@ -1165,6 +1165,23 @@ msgstr "Guztia ezarri da!"
msgid "Finish"
msgstr "Amaitu"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr ""
#~ "Klikatu hemen elkarrizketa berri bat hasi edo kanal batean sartzeko."
diff --git a/main/po/fa.po b/main/po/fa.po
index d5b0db08..4fff8de3 100644
--- a/main/po/fa.po
+++ b/main/po/fa.po
@@ -1161,6 +1161,23 @@ msgstr "همه تنظیم شده!"
msgid "Finish"
msgstr "اتمام"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "برای شروع گفتگو یا پیوستن به کانال اینجا کلیک کنید."
diff --git a/main/po/fi.po b/main/po/fi.po
index e5e15c6e..30079480 100644
--- a/main/po/fi.po
+++ b/main/po/fi.po
@@ -1164,6 +1164,23 @@ msgstr ""
msgid "Finish"
msgstr ""
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "No active conversations"
#~ msgstr "Ei aktiivisia keskusteluja"
diff --git a/main/po/fr.po b/main/po/fr.po
index a38bced7..603a76a4 100644
--- a/main/po/fr.po
+++ b/main/po/fr.po
@@ -1166,6 +1166,23 @@ msgstr "Tout est prêt !"
msgid "Finish"
msgstr "Terminer"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Cliquez ici pour commencer une discussion ou rejoindre un salon."
diff --git a/main/po/gl.po b/main/po/gl.po
index ac79cdf4..6d8c4786 100644
--- a/main/po/gl.po
+++ b/main/po/gl.po
@@ -1166,6 +1166,23 @@ msgstr "Todo feito!"
msgid "Finish"
msgstr "Rematar"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Preme aquí para iniciar unha conversa ou unirte a unha canle."
diff --git a/main/po/hu.po b/main/po/hu.po
index dc432bcc..c9dad0bb 100644
--- a/main/po/hu.po
+++ b/main/po/hu.po
@@ -1169,6 +1169,23 @@ msgstr "Minden készen áll!"
msgid "Finish"
msgstr "Befejezés"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr ""
#~ "Kattintson ide egy beszélgetés indításához vagy egy csatornához való "
diff --git a/main/po/id.po b/main/po/id.po
index 67ec4776..c8081964 100644
--- a/main/po/id.po
+++ b/main/po/id.po
@@ -1157,5 +1157,22 @@ msgstr "Selesai!"
msgid "Finish"
msgstr "Selesai"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Klik untuk memulai percakapan atau bergabung dengan channel."
diff --git a/main/po/ie.po b/main/po/ie.po
index a865fd12..2b822334 100644
--- a/main/po/ie.po
+++ b/main/po/ie.po
@@ -1161,6 +1161,23 @@ msgstr "Omni es pret!"
msgid "Finish"
msgstr "Finir"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr ""
#~ "Fa un clic ti-ci por iniciar un conversation o adherer a un channel."
diff --git a/main/po/is.po b/main/po/is.po
index 229a38f1..e19c40df 100644
--- a/main/po/is.po
+++ b/main/po/is.po
@@ -1161,5 +1161,22 @@ msgstr "Allt klárt!"
msgid "Finish"
msgstr "Loka"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Smelltu hér til að hefja samtal eða taka þátt í rás."
diff --git a/main/po/it.po b/main/po/it.po
index 08865a7e..7ea3cef8 100644
--- a/main/po/it.po
+++ b/main/po/it.po
@@ -1165,6 +1165,23 @@ msgstr "Tutto pronto!"
msgid "Finish"
msgstr "Fine"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr ""
#~ "Fai clic qui per iniziare una conversazione o per entrare in un canale."
diff --git a/main/po/ja.po b/main/po/ja.po
index f246346f..58b3a272 100644
--- a/main/po/ja.po
+++ b/main/po/ja.po
@@ -1158,6 +1158,23 @@ msgstr "すべてのセットアップが完了しました!"
msgid "Finish"
msgstr "完了"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr ""
#~ "トークを始めたりトークルームに参加したりするには、ここをクリックしてくださ"
diff --git a/main/po/kab.po b/main/po/kab.po
index 40fd2977..8d0349b1 100644
--- a/main/po/kab.po
+++ b/main/po/kab.po
@@ -1153,3 +1153,20 @@ msgstr ""
#: main/data/manage_accounts/add_account_dialog.ui:506
msgid "Finish"
msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
diff --git a/main/po/ko.po b/main/po/ko.po
index 9b3e6a8b..4466fb6d 100644
--- a/main/po/ko.po
+++ b/main/po/ko.po
@@ -1166,5 +1166,22 @@ msgstr "모든 설정이 끝났습니다!"
msgid "Finish"
msgstr "완료"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "대화를 시작하거나 채널에 들어가려면 여기를 누르세요."
diff --git a/main/po/lb.po b/main/po/lb.po
index 416fa5aa..8377432d 100644
--- a/main/po/lb.po
+++ b/main/po/lb.po
@@ -1157,6 +1157,23 @@ msgstr "Alles ageriicht!"
msgid "Finish"
msgstr "Ofschléissen"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr ""
#~ "Klick hei fir eng Konversatioun ze starten oder engem Channel "
diff --git a/main/po/lt.po b/main/po/lt.po
index 20c270a3..9035256f 100644
--- a/main/po/lt.po
+++ b/main/po/lt.po
@@ -1169,6 +1169,23 @@ msgstr "Viskas nustatyta!"
msgid "Finish"
msgstr "Užbaigti"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr ""
#~ "Spustelėkite čia norėdami pradėti pokalbį ar prisijungti prie kanalo."
diff --git a/main/po/lv.po b/main/po/lv.po
index fdee4199..af924a59 100644
--- a/main/po/lv.po
+++ b/main/po/lv.po
@@ -1154,3 +1154,20 @@ msgstr ""
#: main/data/manage_accounts/add_account_dialog.ui:506
msgid "Finish"
msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
diff --git a/main/po/nb.po b/main/po/nb.po
index 4f5b2e50..511e1ea3 100644
--- a/main/po/nb.po
+++ b/main/po/nb.po
@@ -1167,6 +1167,23 @@ msgstr "Ferdig oppsatt."
msgid "Finish"
msgstr "Fullfør"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Klikk her for å starte en samtale, eller ta del i en kanal."
diff --git a/main/po/nl.po b/main/po/nl.po
index 8d152e74..11b6bafb 100644
--- a/main/po/nl.po
+++ b/main/po/nl.po
@@ -1163,6 +1163,23 @@ msgstr "Klaar!"
msgid "Finish"
msgstr "Voltooien"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr ""
#~ "Klik hier om een gesprek te starten of deel te nemen aan een kanaal."
diff --git a/main/po/oc.po b/main/po/oc.po
index f9bee16c..d310d343 100644
--- a/main/po/oc.po
+++ b/main/po/oc.po
@@ -1165,6 +1165,23 @@ msgstr "Tot es prèst !"
msgid "Finish"
msgstr "Terminar"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Clicatz aquí per començar una conversacion o jónher una sala."
diff --git a/main/po/pl.po b/main/po/pl.po
index 76f1e624..174b6d28 100644
--- a/main/po/pl.po
+++ b/main/po/pl.po
@@ -1169,6 +1169,23 @@ msgstr "Wszystko gotowe!"
msgid "Finish"
msgstr "Zakończ"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Kliknij tutaj, aby rozpocząć rozmowę albo dołączyć do kanału."
diff --git a/main/po/pt.po b/main/po/pt.po
index fab43cb0..c4859523 100644
--- a/main/po/pt.po
+++ b/main/po/pt.po
@@ -1163,5 +1163,22 @@ msgstr "Tudo configurado!"
msgid "Finish"
msgstr "Finalizado"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Clique aqui para iniciar uma conversa or entrar num canal."
diff --git a/main/po/pt_BR.po b/main/po/pt_BR.po
index 1160283a..4be1f263 100644
--- a/main/po/pt_BR.po
+++ b/main/po/pt_BR.po
@@ -1164,6 +1164,23 @@ msgstr "Tudo configurado!"
msgid "Finish"
msgstr "Finalizado"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Clique aqui para inicial uma conversa ou entrar em um canal."
diff --git a/main/po/ro.po b/main/po/ro.po
index 8f4388e9..eea63000 100644
--- a/main/po/ro.po
+++ b/main/po/ro.po
@@ -1170,6 +1170,23 @@ msgstr "Gata!"
msgid "Finish"
msgstr "Finalizare"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr ""
#~ "Apăsați aici pentru a porni o conversație sau a vă alătura unui canal."
diff --git a/main/po/ru.po b/main/po/ru.po
index c9fcefad..5483b5da 100644
--- a/main/po/ru.po
+++ b/main/po/ru.po
@@ -1167,6 +1167,23 @@ msgstr "Всё готово!"
msgid "Finish"
msgstr "Закончить"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr "Изменить пароль"
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr "Текущий пароль"
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr "Новый пароль"
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr "Подтверждение пароля"
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Нажмите здесь, чтобы начать беседу или присоединиться к каналу."
diff --git a/main/po/sq.po b/main/po/sq.po
index 88f472da..6aeee5b0 100644
--- a/main/po/sq.po
+++ b/main/po/sq.po
@@ -1163,5 +1163,22 @@ msgstr "Gjithçka e ujdisur!"
msgid "Finish"
msgstr "Përfundoje"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Klikoni këtu që të nisni një bisedë ose të hyni në një kanal."
diff --git a/main/po/sv.po b/main/po/sv.po
index 270f106a..1fa821a6 100644
--- a/main/po/sv.po
+++ b/main/po/sv.po
@@ -1163,6 +1163,23 @@ msgstr "Färdigt!"
msgid "Finish"
msgstr "Slutför"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Klicka här för att starta en konversation eller gå med i en kanal."
diff --git a/main/po/ta.po b/main/po/ta.po
index e930c0cf..15d310e4 100644
--- a/main/po/ta.po
+++ b/main/po/ta.po
@@ -1153,3 +1153,20 @@ msgstr ""
#: main/data/manage_accounts/add_account_dialog.ui:506
msgid "Finish"
msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
diff --git a/main/po/tr.po b/main/po/tr.po
index ad8e50cf..b37c77aa 100644
--- a/main/po/tr.po
+++ b/main/po/tr.po
@@ -1162,6 +1162,23 @@ msgstr "Hepsi tamam!"
msgid "Finish"
msgstr "Bitir"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "Bir sohbet başlatmak ya da kanala katılmak için buraya tıkla."
diff --git a/main/po/uk.po b/main/po/uk.po
index fa80ba42..f1d47853 100644
--- a/main/po/uk.po
+++ b/main/po/uk.po
@@ -1158,3 +1158,20 @@ msgstr ""
#: main/data/manage_accounts/add_account_dialog.ui:506
msgid "Finish"
msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
diff --git a/main/po/zh_CN.po b/main/po/zh_CN.po
index 5a0b8021..2f960b70 100644
--- a/main/po/zh_CN.po
+++ b/main/po/zh_CN.po
@@ -1155,6 +1155,23 @@ msgstr "都准备好了!"
msgid "Finish"
msgstr "完成"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "点击此处以开始对话或加入频道。"
diff --git a/main/po/zh_TW.po b/main/po/zh_TW.po
index 7d526477..da5b446d 100644
--- a/main/po/zh_TW.po
+++ b/main/po/zh_TW.po
@@ -1154,6 +1154,23 @@ msgstr "全部設定好了!"
msgid "Finish"
msgstr "完成"
+#: main/src/ui/manage_accounts/change_password_dialog.vala :5
+#: main/src/ui/manage_accounts/change_password_dialog.vala :103
+msgid "Change password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :21
+msgid "Current password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :43
+msgid "New password"
+msgstr ""
+
+#: main/src/ui/manage_accounts/change_password_dialog.vala :65
+msgid "Confirm new password"
+msgstr ""
+
#~ msgid "Click here to start a conversation or join a channel."
#~ msgstr "點擊此處開始對話或加入聊天室。"
diff --git a/main/src/ui/manage_accounts/change_password_dialog.vala b/main/src/ui/manage_accounts/change_password_dialog.vala
new file mode 100644
index 00000000..12b5f826
--- /dev/null
+++ b/main/src/ui/manage_accounts/change_password_dialog.vala
@@ -0,0 +1,100 @@
+using Gee;
+using Gtk;
+//using Pango;
+
+using Dino.Entities;
+using Xmpp;
+
+namespace Dino.Ui{
+
+[GtkTemplate (ui = "/im/dino/Dino/manage_accounts/change_password_dialog.ui")]
+ public class ChangePasswordDialog : Gtk.Dialog {
+
+ [GtkChild] private unowned Button change_password_button;
+ [GtkChild] private unowned Stack change_password_stack;
+ [GtkChild] private unowned Button cancel_button;
+ [GtkChild] private unowned Entry current_passwd_entry;
+ [GtkChild] private unowned Entry new_passwd_entry;
+ [GtkChild] private unowned Entry confirm_new_passwd_entry;
+ [GtkChild] private unowned Label change_password_error_label;
+
+ private bool are_forms_empty;
+ private Account account;
+ private StreamInteractor stream_interactor;
+
+ public ChangePasswordDialog(Account a, StreamInteractor s){
+ Object(use_header_bar : 1);
+ this.stream_interactor = s;
+ this.account = a;
+ Util.force_error_color(change_password_error_label);
+ cancel_button.clicked.connect(() => { close(); });
+ current_passwd_entry.changed.connect(on_current_passwd_entry_changed);
+ new_passwd_entry.changed.connect(on_new_passwd_entry_changed);
+ confirm_new_passwd_entry.changed.connect(on_confirm_new_passwd_entry_changed);
+ change_password_button.clicked.connect(on_change_password_button_clicked);
+ }
+
+ private void are_psswd_nonempty(){
+ EntryBuffer newpsswd = new_passwd_entry.get_buffer();
+ EntryBuffer confirm_newpsswd = confirm_new_passwd_entry.get_buffer();
+
+ if (current_passwd_entry.get_text_length() > 0
+ && new_passwd_entry.get_text_length() > 0
+ && confirm_new_passwd_entry.get_text_length() > 0
+ && newpsswd.get_text() == confirm_newpsswd.get_text()){
+ are_forms_empty = false;
+ change_password_button.sensitive = true;
+ } else {
+ are_forms_empty = true;
+ change_password_button.sensitive = false;
+ }
+ }
+
+ private void check_new_passwd(){
+ EntryBuffer newpsswd = new_passwd_entry.get_buffer();
+ EntryBuffer confirm_newpsswd = confirm_new_passwd_entry.get_buffer();
+
+ if (newpsswd.get_text() != confirm_newpsswd.get_text()){
+ new_passwd_entry.add_css_class("error");
+ confirm_new_passwd_entry.add_css_class("error");
+ } else {
+ new_passwd_entry.remove_css_class("error");
+ confirm_new_passwd_entry.remove_css_class("error");
+ }
+ }
+
+ private void on_current_passwd_entry_changed(){
+ are_psswd_nonempty();
+ }
+
+ private void on_new_passwd_entry_changed(){
+ are_psswd_nonempty();
+ check_new_passwd();
+ }
+
+ private void on_confirm_new_passwd_entry_changed(){
+ are_psswd_nonempty();
+ check_new_passwd();
+ }
+
+ private async void on_change_password_button_clicked(){
+ string? pw_input = current_passwd_entry.get_buffer().get_text();
+ string? new_pw_input = new_passwd_entry.get_buffer().get_text();
+
+ if (pw_input != null && account.password == pw_input){
+ change_password_button.sensitive = false;
+ change_password_stack.visible_child_name = "spinner";
+ string ret = yield stream_interactor.get_module(Register.IDENTITY).change_password(account, new_pw_input);
+ change_password_button.sensitive = true;
+ change_password_stack.visible_child_name = "label";
+ if (ret == null)
+ close();
+
+ change_password_error_label.label = ret;
+
+ } else {
+ change_password_error_label.label = _("Wrong password");
+ }
+ }
+ }
+}
diff --git a/main/src/ui/manage_accounts/dialog.vala b/main/src/ui/manage_accounts/dialog.vala
index a326aeff..365d4c3c 100644
--- a/main/src/ui/manage_accounts/dialog.vala
+++ b/main/src/ui/manage_accounts/dialog.vala
@@ -25,6 +25,7 @@ public class Dialog : Gtk.Dialog {
[GtkChild] public unowned Label state_label;
[GtkChild] public unowned Switch active_switch;
[GtkChild] public unowned Util.EntryLabelHybrid password_hybrid;
+ [GtkChild] public unowned Button password_change_btn;
[GtkChild] public unowned Util.EntryLabelHybrid alias_hybrid;
[GtkChild] public unowned Grid settings_list;
@@ -44,10 +45,12 @@ public class Dialog : Gtk.Dialog {
image_button.clicked.connect(show_select_avatar);
alias_hybrid.entry.changed.connect(() => { selected_account.alias = alias_hybrid.text; });
password_hybrid.entry.changed.connect(() => { selected_account.password = password_hybrid.text; });
+ password_change_btn.clicked.connect(show_change_psswd_dialog);
Util.LabelHybridGroup label_hybrid_group = new Util.LabelHybridGroup();
label_hybrid_group.add(alias_hybrid);
label_hybrid_group.add(password_hybrid);
+ password_change_btn.sensitive = false;
main_stack.set_visible_child_name("no_accounts");
@@ -109,6 +112,12 @@ public class Dialog : Gtk.Dialog {
add_account_dialog.present();
}
+ private void show_change_psswd_dialog() {
+ ChangePasswordDialog change_psswd_dialog = new ChangePasswordDialog(selected_account, stream_interactor);
+ change_psswd_dialog.set_transient_for(this);
+ change_psswd_dialog.present();
+ }
+//
private void remove_account(AccountRow account_item) {
Gtk.MessageDialog msg = new Gtk.MessageDialog (
this, Gtk.DialogFlags.DESTROY_WITH_PARENT | Gtk.DialogFlags.MODAL,
@@ -215,8 +224,10 @@ public class Dialog : Gtk.Dialog {
case ConnectionManager.ConnectionState.CONNECTING:
state_label.label = _("Connecting…"); break;
case ConnectionManager.ConnectionState.CONNECTED:
+ password_change_btn.sensitive = true;
state_label.label = _("Connected"); break;
case ConnectionManager.ConnectionState.DISCONNECTED:
+ password_change_btn.sensitive = false;
state_label.label = _("Disconnected"); break;
}
state_label.remove_css_class("is_error");
@@ -224,6 +235,7 @@ public class Dialog : Gtk.Dialog {
}
private string get_connection_error_description(ConnectionManager.ConnectionError error) {
+ password_change_btn.sensitive = false;
switch (error.source) {
case ConnectionManager.ConnectionError.Source.SASL:
return _("Wrong password");
diff --git a/xmpp-vala/src/module/xep/0077_in_band_registration.vala b/xmpp-vala/src/module/xep/0077_in_band_registration.vala
index baaa4ee0..ecb25334 100644
--- a/xmpp-vala/src/module/xep/0077_in_band_registration.vala
+++ b/xmpp-vala/src/module/xep/0077_in_band_registration.vala
@@ -29,6 +29,25 @@ public class Module : XmppStreamNegotiationModule {
return null;
}
+
+ public async string? change_password(XmppStream stream, Jid jid, string new_pw) {
+ StanzaNode pw_change_node = new StanzaNode.build("query", NS_URI).add_self_xmlns();
+ StanzaNode username_node = new StanzaNode.build("username", NS_URI);
+ StanzaNode pw_node = new StanzaNode.build("password", NS_URI);
+ username_node.put_node(new StanzaNode.text(jid.localpart));
+ pw_node.put_node(new StanzaNode.text(new_pw));
+ pw_change_node.put_node(username_node);
+ pw_change_node.put_node(pw_node);
+ Iq.Stanza set_password_iq = new Iq.Stanza.set(pw_change_node, "change1") { to=jid.bare_jid.domain_jid };
+
+ Iq.Stanza chpw_result = yield stream.get_module(Iq.Module.IDENTITY).send_iq_async(stream, set_password_iq);
+ if (chpw_result.is_error()) {
+ ErrorStanza? error_stanza = chpw_result.get_error();
+ return error_stanza.text ?? "Error";
+ }
+
+ return null;
+ }
public override bool mandatory_outstanding(XmppStream stream) { return false; }