fix change password activity for magic created accounts

This commit is contained in:
Daniel Gultsch 2018-03-04 20:37:42 +01:00
parent 1ae6042ca8
commit 194b8d419b
3 changed files with 49 additions and 42 deletions

View File

@ -1859,18 +1859,15 @@ public class XmppConnectionService extends Service {
public void updateAccountPasswordOnServer(final Account account, final String newPassword, final OnAccountPasswordChanged callback) { public void updateAccountPasswordOnServer(final Account account, final String newPassword, final OnAccountPasswordChanged callback) {
final IqPacket iq = getIqGenerator().generateSetPassword(account, newPassword); final IqPacket iq = getIqGenerator().generateSetPassword(account, newPassword);
sendIqPacket(account, iq, new OnIqPacketReceived() { sendIqPacket(account, iq, (a, packet) -> {
@Override
public void onIqPacketReceived(final Account account, final IqPacket packet) {
if (packet.getType() == IqPacket.TYPE.RESULT) { if (packet.getType() == IqPacket.TYPE.RESULT) {
account.setPassword(newPassword); a.setPassword(newPassword);
account.setOption(Account.OPTION_MAGIC_CREATE, false); a.setOption(Account.OPTION_MAGIC_CREATE, false);
databaseBackend.updateAccount(account); databaseBackend.updateAccount(a);
callback.onPasswordChangeSucceeded(); callback.onPasswordChangeSucceeded();
} else { } else {
callback.onPasswordChangeFailed(); callback.onPasswordChangeFailed();
} }
}
}); });
} }

View File

@ -50,7 +50,7 @@ public class ChangePasswordActivity extends XmppActivity implements XmppConnecti
void onBackendConnected() { void onBackendConnected() {
this.mAccount = extractAccount(getIntent()); this.mAccount = extractAccount(getIntent());
if (this.mAccount != null && this.mAccount.isOptionSet(Account.OPTION_MAGIC_CREATE)) { if (this.mAccount != null && this.mAccount.isOptionSet(Account.OPTION_MAGIC_CREATE)) {
this.mCurrentPassword.setVisibility(View.GONE); this.mCurrentPasswordLayout.setVisibility(View.GONE);
} else { } else {
this.mCurrentPassword.setVisibility(View.VISIBLE); this.mCurrentPassword.setVisibility(View.VISIBLE);
} }

View File

@ -152,9 +152,15 @@
android:layout_marginTop="@dimen/activity_vertical_margin" android:layout_marginTop="@dimen/activity_vertical_margin"
android:visibility="gone"> android:visibility="gone">
<RelativeLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/card_padding_regular"> android:padding="@dimen/card_padding_regular">
<TextView <TextView
@ -168,25 +174,29 @@
android:id="@+id/os_optimization_body" android:id="@+id/os_optimization_body"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/os_optimization_headline"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:text="@string/battery_optimizations_enabled_explained" android:text="@string/battery_optimizations_enabled_explained"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"/> android:textAppearance="@style/TextAppearance.AppCompat.Body1"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="right">
<Button <Button
android:id="@+id/os_optimization_disable" android:id="@+id/os_optimization_disable"
style="?android:attr/borderlessButtonStyle" style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true" android:minWidth="0dp"
android:layout_alignParentEnd="true" android:paddingLeft="16dp"
android:layout_alignParentRight="true" android:paddingRight="16dp"
android:layout_below="@+id/os_optimization_body"
android:layout_marginRight="-8dp"
android:text="@string/disable" android:text="@string/disable"
android:textColor="@color/accent"/> android:textColor="@color/accent"/>
</RelativeLayout> </LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView> </android.support.v7.widget.CardView>
@ -565,9 +575,9 @@
android:id="@+id/other_device_keys_title" android:id="@+id/other_device_keys_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/list_padding"
android:text="@string/other_devices" android:text="@string/other_devices"
android:textAppearance="@style/TextAppearance.AppCompat.Title" android:textAppearance="@style/TextAppearance.AppCompat.Title"/>
android:layout_margin="@dimen/list_padding"/>
<LinearLayout <LinearLayout
android:id="@+id/other_device_keys" android:id="@+id/other_device_keys"