Merge pull request #1400 from deltachat/tweak-avatars

fix opening avatar-preview
This commit is contained in:
bjoern 2020-06-07 13:23:09 +02:00 committed by GitHub
commit 2c6a966e8c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 39 additions and 9 deletions

View file

@ -1,6 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/media_preview__edit"
android:title="@string/menu_group_name_and_image"
android:icon="@drawable/ic_create_white_24dp"
app:showAsAction="always"/>
<item android:id="@+id/media_preview__forward" <item android:id="@+id/media_preview__forward"
android:title="@string/menu_forward" android:title="@string/menu_forward"
android:icon="@drawable/ic_forward_white_24dp" android:icon="@drawable/ic_forward_white_24dp"

View file

@ -168,7 +168,6 @@
<string name="menu_select_all">Select all</string> <string name="menu_select_all">Select all</string>
<string name="menu_expand">Expand</string> <string name="menu_expand">Expand</string>
<string name="menu_edit_name">Edit name</string> <string name="menu_edit_name">Edit name</string>
<string name="menu_edit_group_name_and_image">Edit group name and image</string>
<string name="menu_edit_group_name">Edit group name</string> <string name="menu_edit_group_name">Edit group name</string>
<string name="menu_edit_group_image">Edit group image</string> <string name="menu_edit_group_image">Edit group image</string>
<string name="menu_settings">Settings</string> <string name="menu_settings">Settings</string>

View file

@ -213,7 +213,7 @@ public class CreateProfileActivity extends BaseActionBarActivity {
protected void onPostExecute(byte[] result) { protected void onPostExecute(byte[] result) {
if (result != null) { if (result != null) {
avatarBytes = result; avatarBytes = result;
GlideApp.with(getApplicationContext()) GlideApp.with(CreateProfileActivity.this)
.load(avatarBytes) .load(avatarBytes)
.skipMemoryCache(true) .skipMemoryCache(true)
.diskCacheStrategy(DiskCacheStrategy.NONE) .diskCacheStrategy(DiskCacheStrategy.NONE)

View file

@ -126,7 +126,7 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity
String title; String title;
if(isEdit()) { if(isEdit()) {
title = getString(R.string.menu_edit_group); title = getString(R.string.menu_group_name_and_image);
} }
else if(verified) { else if(verified) {
title = getString(R.string.menu_new_verified_group); title = getString(R.string.menu_new_verified_group);

View file

@ -78,6 +78,8 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
private final static String TAG = MediaPreviewActivity.class.getSimpleName(); private final static String TAG = MediaPreviewActivity.class.getSimpleName();
public static final String ACTIVITY_TITLE_EXTRA = "activity_title";
public static final String EDIT_AVATAR_CHAT_ID = "avatar_for_chat_id";
public static final String ADDRESS_EXTRA = "address"; public static final String ADDRESS_EXTRA = "address";
public static final String OUTGOING_EXTRA = "outgoing"; public static final String OUTGOING_EXTRA = "outgoing";
public static final String LEFT_IS_RECENT_EXTRA = "left_is_recent"; public static final String LEFT_IS_RECENT_EXTRA = "left_is_recent";
@ -101,6 +103,8 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
private int restartItem = -1; private int restartItem = -1;
private int editAvatarChatId = 0;
@SuppressWarnings("ConstantConditions") @SuppressWarnings("ConstantConditions")
@Override @Override
protected void onCreate(Bundle bundle, boolean ready) { protected void onCreate(Bundle bundle, boolean ready) {
@ -114,6 +118,12 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setContentView(R.layout.media_preview_activity); setContentView(R.layout.media_preview_activity);
editAvatarChatId = getIntent().getIntExtra(EDIT_AVATAR_CHAT_ID, 0);
@Nullable String title = getIntent().getStringExtra(ACTIVITY_TITLE_EXTRA);
if (title!=null) {
getSupportActionBar().setTitle(title);
}
initializeViews(); initializeViews();
initializeResources(); initializeResources();
} }
@ -246,6 +256,17 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
return restartItem; return restartItem;
} }
private void editAvatar() {
Intent intent = new Intent(this, GroupCreateActivity.class);
intent.putExtra(GroupCreateActivity.EDIT_GROUP_CHAT_ID, editAvatarChatId);
if (dcContext.getChat(editAvatarChatId).isVerified()) {
intent.putExtra(GroupCreateActivity.GROUP_CREATE_VERIFIED_EXTRA, true);
}
startActivity(intent);
finish(); // avoid the need to update the enlarged-avatar
}
private void showOverview() { private void showOverview() {
if(conversationRecipient.getAddress().isDcChat()) { if(conversationRecipient.getAddress().isDcChat()) {
Intent intent = new Intent(this, ProfileActivity.class); Intent intent = new Intent(this, ProfileActivity.class);
@ -338,6 +359,10 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
menu.findItem(R.id.media_preview__forward).setVisible(false); menu.findItem(R.id.media_preview__forward).setVisible(false);
} }
if (editAvatarChatId==0) {
menu.findItem(R.id.media_preview__edit).setVisible(false);
}
return true; return true;
} }
@ -346,6 +371,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
super.onOptionsItemSelected(item); super.onOptionsItemSelected(item);
switch (item.getItemId()) { switch (item.getItemId()) {
case R.id.media_preview__edit: editAvatar(); return true;
case R.id.media_preview__overview: showOverview(); return true; case R.id.media_preview__overview: showOverview(); return true;
case R.id.media_preview__forward: forward(); return true; case R.id.media_preview__forward: forward(); return true;
case R.id.save: saveToDisk(); return true; case R.id.save: saveToDisk(); return true;

View file

@ -98,7 +98,7 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity
titleView = (ConversationTitleView) supportActionBar.getCustomView(); titleView = (ConversationTitleView) supportActionBar.getCustomView();
titleView.setOnBackClickedListener(view -> onBackPressed()); titleView.setOnBackClickedListener(view -> onBackPressed());
titleView.setOnAvatarClickListener(view -> onEnlargeAvatar()); titleView.setOnClickListener(view -> onEnlargeAvatar());
updateToolbar(); updateToolbar();
@ -118,7 +118,7 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity
if (chatId != 0) { if (chatId != 0) {
inflater.inflate(R.menu.profile_chat, menu); inflater.inflate(R.menu.profile_chat, menu);
if (chatIsGroup) { if (chatIsGroup) {
menu.findItem(R.id.edit_name).setTitle(R.string.menu_edit_group_name_and_image); menu.findItem(R.id.edit_name).setTitle(R.string.menu_group_name_and_image);
} }
} }
@ -401,12 +401,13 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity
profileImagePath = dcContext.getContact(contactId).getProfileImage(); profileImagePath = dcContext.getContact(contactId).getProfileImage();
profileImageUri = Uri.fromFile(new File(profileImagePath)); profileImageUri = Uri.fromFile(new File(profileImagePath));
Context ctx = getBaseContext();
String type = "image/" + profileImagePath.substring(profileImagePath.lastIndexOf(".") +1); String type = "image/" + profileImagePath.substring(profileImagePath.lastIndexOf(".") +1);
Intent intent = new Intent(ctx, MediaPreviewActivity.class); Intent intent = new Intent(this, MediaPreviewActivity.class);
intent.setDataAndType(profileImageUri, type); intent.setDataAndType(profileImageUri, type);
ctx.startActivity(intent); intent.putExtra(MediaPreviewActivity.ACTIVITY_TITLE_EXTRA, getString(isContactProfile() ? R.string.pref_profile_photo : R.string.group_avatar));
intent.putExtra(MediaPreviewActivity.EDIT_AVATAR_CHAT_ID, chatIsGroup ? chatId : 0); // shows edit-button, might be 0 for a contact-profile
startActivity(intent);
} }
public void onEditName() { public void onEditName() {