fix change password activity for magic created accounts

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/services/XmppConnectionService.java | 19 
src/main/java/eu/siacs/conversations/ui/ChangePasswordActivity.java      |  2 
src/main/res/layout/activity_edit_account.xml                            | 70 
3 files changed, 49 insertions(+), 42 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/services/XmppConnectionService.java 🔗

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

src/main/java/eu/siacs/conversations/ui/ChangePasswordActivity.java 🔗

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

src/main/res/layout/activity_edit_account.xml 🔗

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