From c99e6fc27f322cd120fc9a0d85d664f33a67eac5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asiel=20D=C3=ADaz=20Ben=C3=ADtez?= Date: Sun, 19 May 2024 16:19:27 +0200 Subject: [PATCH] save avatar and name onPause() in InstantOnboardingActivity (#3067) --- .../securesms/InstantOnboardingActivity.java | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/org/thoughtcrime/securesms/InstantOnboardingActivity.java b/src/org/thoughtcrime/securesms/InstantOnboardingActivity.java index dc819110d..53d8fc0b3 100644 --- a/src/org/thoughtcrime/securesms/InstantOnboardingActivity.java +++ b/src/org/thoughtcrime/securesms/InstantOnboardingActivity.java @@ -114,7 +114,7 @@ public class InstantOnboardingActivity extends BaseActionBarActivity implements avatarChanged = false; registerForEvents(); initializeResources(); - initializeProfileAvatar(); + initializeProfile(); handleIntent(); updateProvider(); } @@ -199,6 +199,24 @@ public class InstantOnboardingActivity extends BaseActionBarActivity implements } } + @Override + protected void onPause() { + super.onPause(); + + final String displayName = name.getText().toString(); + DcHelper.set(this, DcHelper.CONFIG_DISPLAY_NAME, TextUtils.isEmpty(displayName)? null : displayName); + + if (avatarChanged) { + try { + AvatarHelper.setSelfAvatar(InstantOnboardingActivity.this, avatarBmp); + Prefs.setProfileAvatarId(InstantOnboardingActivity.this, new SecureRandom().nextInt()); + avatarChanged = false; + } catch (IOException e) { + Log.e(TAG, "Failed to save avatar", e); + } + } + } + @Override public void onDestroy() { super.onDestroy(); @@ -315,7 +333,7 @@ public class InstantOnboardingActivity extends BaseActionBarActivity implements } } - private void initializeProfileAvatar() { + private void initializeProfile() { File avatarFile = AvatarHelper.getSelfAvatarFile(this); if (avatarFile.exists() && avatarFile.length() > 0) { imageLoaded = true; @@ -327,6 +345,8 @@ public class InstantOnboardingActivity extends BaseActionBarActivity implements avatar.setOnClickListener(view -> new AvatarSelector(this, LoaderManager.getInstance(this), new AvatarSelectedListener(), imageLoaded).show(this, avatar) ); + + name.setText(DcHelper.get(this, DcHelper.CONFIG_DISPLAY_NAME)); } private void registerForEvents() {