diff --git a/res/menu/media_preview.xml b/res/menu/media_preview.xml index 01914cd1e..85fc317a8 100644 --- a/res/menu/media_preview.xml +++ b/res/menu/media_preview.xml @@ -1,6 +1,10 @@ + Select all Expand Edit name - Edit group name and image Edit group name Edit group image Settings diff --git a/src/org/thoughtcrime/securesms/CreateProfileActivity.java b/src/org/thoughtcrime/securesms/CreateProfileActivity.java index fedd1daef..9dd9faf3b 100644 --- a/src/org/thoughtcrime/securesms/CreateProfileActivity.java +++ b/src/org/thoughtcrime/securesms/CreateProfileActivity.java @@ -213,7 +213,7 @@ public class CreateProfileActivity extends BaseActionBarActivity { protected void onPostExecute(byte[] result) { if (result != null) { avatarBytes = result; - GlideApp.with(getApplicationContext()) + GlideApp.with(CreateProfileActivity.this) .load(avatarBytes) .skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.NONE) diff --git a/src/org/thoughtcrime/securesms/GroupCreateActivity.java b/src/org/thoughtcrime/securesms/GroupCreateActivity.java index a9b88782e..7f8e44d44 100644 --- a/src/org/thoughtcrime/securesms/GroupCreateActivity.java +++ b/src/org/thoughtcrime/securesms/GroupCreateActivity.java @@ -126,7 +126,7 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity String title; if(isEdit()) { - title = getString(R.string.menu_edit_group); + title = getString(R.string.menu_group_name_and_image); } else if(verified) { title = getString(R.string.menu_new_verified_group); diff --git a/src/org/thoughtcrime/securesms/MediaPreviewActivity.java b/src/org/thoughtcrime/securesms/MediaPreviewActivity.java index a48482eba..b183869a3 100644 --- a/src/org/thoughtcrime/securesms/MediaPreviewActivity.java +++ b/src/org/thoughtcrime/securesms/MediaPreviewActivity.java @@ -78,6 +78,8 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity 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 OUTGOING_EXTRA = "outgoing"; 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 editAvatarChatId = 0; + @SuppressWarnings("ConstantConditions") @Override protected void onCreate(Bundle bundle, boolean ready) { @@ -114,6 +118,12 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity getSupportActionBar().setDisplayHomeAsUpEnabled(true); 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(); initializeResources(); } @@ -246,6 +256,17 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity 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() { if(conversationRecipient.getAddress().isDcChat()) { 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); } + if (editAvatarChatId==0) { + menu.findItem(R.id.media_preview__edit).setVisible(false); + } + return true; } @@ -346,6 +371,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity super.onOptionsItemSelected(item); 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__forward: forward(); return true; case R.id.save: saveToDisk(); return true; diff --git a/src/org/thoughtcrime/securesms/ProfileActivity.java b/src/org/thoughtcrime/securesms/ProfileActivity.java index f195e715e..fcd948413 100644 --- a/src/org/thoughtcrime/securesms/ProfileActivity.java +++ b/src/org/thoughtcrime/securesms/ProfileActivity.java @@ -98,7 +98,7 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity titleView = (ConversationTitleView) supportActionBar.getCustomView(); titleView.setOnBackClickedListener(view -> onBackPressed()); - titleView.setOnAvatarClickListener(view -> onEnlargeAvatar()); + titleView.setOnClickListener(view -> onEnlargeAvatar()); updateToolbar(); @@ -118,7 +118,7 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity if (chatId != 0) { inflater.inflate(R.menu.profile_chat, menu); 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(); profileImageUri = Uri.fromFile(new File(profileImagePath)); - Context ctx = getBaseContext(); String type = "image/" + profileImagePath.substring(profileImagePath.lastIndexOf(".") +1); - Intent intent = new Intent(ctx, MediaPreviewActivity.class); - intent.setDataAndType(profileImageUri, type); - ctx.startActivity(intent); + Intent intent = new Intent(this, MediaPreviewActivity.class); + intent.setDataAndType(profileImageUri, type); + 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() {