Skip to content

Commit

Permalink
Add overflow toast and fix edit menu option.
Browse files Browse the repository at this point in the history
  • Loading branch information
alex-signal authored and greyson-signal committed May 29, 2020
1 parent 3a06412 commit 0711a22
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 12 deletions.
Expand Up @@ -43,6 +43,7 @@
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
Expand Down Expand Up @@ -163,6 +164,7 @@
import org.thoughtcrime.securesms.jobs.RequestGroupV2InfoJob;
import org.thoughtcrime.securesms.jobs.RetrieveProfileJob;
import org.thoughtcrime.securesms.jobs.ServiceOutageDetectionJob;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.linkpreview.LinkPreview;
import org.thoughtcrime.securesms.linkpreview.LinkPreviewRepository;
import org.thoughtcrime.securesms.linkpreview.LinkPreviewViewModel;
Expand Down Expand Up @@ -872,6 +874,28 @@ public boolean onOptionsItemSelected(MenuItem item) {
return false;
}

@Override
public boolean onMenuOpened(int featureId, Menu menu) {
if (menu == null) {
return super.onMenuOpened(featureId, null);
}

if (!SignalStore.uiHints().hasSeenGroupSettingsMenuToast()) {
MenuItem settingsMenuItem = menu.findItem(R.id.menu_group_settings);

if (settingsMenuItem != null && settingsMenuItem.isVisible()) {
Toast toast = Toast.makeText(this, R.string.ConversationActivity__more_options_now_in_group_settings, Toast.LENGTH_SHORT);

toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();

SignalStore.uiHints().markHasSeenGroupSettingsMenuToast();
}
}

return super.onMenuOpened(featureId, menu);
}

@Override
public void onBackPressed() {
Log.d(TAG, "onBackPressed()");
Expand Down
Expand Up @@ -107,12 +107,6 @@ static ManageGroupFragment newInstance(@NonNull String groupId) {
return fragment;
}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}

@Override
public @Nullable View onCreateView(@NonNull LayoutInflater inflater,
@Nullable ViewGroup container,
Expand Down Expand Up @@ -188,7 +182,10 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
avatar.setFallbackPhotoProvider(fallbackPhotoProvider);

toolbar.setNavigationOnClickListener(v -> requireActivity().finish());
toolbar.setOnMenuItemClickListener(this::onMenuItemSelected);
toolbar.inflateMenu(R.menu.manage_group_fragment);

viewModel.getCanEditGroupAttributes().observe(getViewLifecycleOwner(), canEdit -> toolbar.getMenu().findItem(R.id.action_edit).setVisible(canEdit));
viewModel.getTitle().observe(getViewLifecycleOwner(), toolbar::setTitle);
viewModel.getMemberCountSummary().observe(getViewLifecycleOwner(), memberCountUnderAvatar::setText);
viewModel.getFullMemberCountSummary().observe(getViewLifecycleOwner(), memberCountAboveList::setText);
Expand Down Expand Up @@ -306,13 +303,10 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) {

@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
inflater.inflate(R.menu.manage_group_fragment, menu);

viewModel.getCanEditGroupAttributes().observe(getViewLifecycleOwner(), canEdit -> menu.findItem(R.id.action_edit).setVisible(canEdit));
}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
public boolean onMenuItemSelected(@NonNull MenuItem item) {
if (item.getItemId() == R.id.action_edit) {
startActivity(EditProfileActivity.getIntentForGroupProfile(requireActivity(), getPushGroupId()));
return true;
Expand Down
Expand Up @@ -11,13 +11,14 @@
*/
public final class SignalStore {

private static final String LAST_PREKEY_REFRESH_TIME = "last_prekey_refresh_time";
private static final String MESSAGE_REQUEST_ENABLE_TIME = "message_request_enable_time";
private static final String LAST_PREKEY_REFRESH_TIME = "last_prekey_refresh_time";
private static final String MESSAGE_REQUEST_ENABLE_TIME = "message_request_enable_time";

private SignalStore() {}

public static void onFirstEverAppLaunch() {
registrationValues().onFirstEverAppLaunch();
uiHints().onFirstEverAppLaunch();
}

public static @NonNull KbsValues kbsValues() {
Expand Down Expand Up @@ -60,6 +61,10 @@ public static void setMessageRequestEnableTime(long time) {
putLong(MESSAGE_REQUEST_ENABLE_TIME, time);
}

public static UiHints uiHints() {
return new UiHints(getStore());
}

public static @NonNull PreferenceDataStore getPreferenceDataStore() {
return new SignalPreferenceDataStore(getStore());
}
Expand Down
24 changes: 24 additions & 0 deletions app/src/main/java/org/thoughtcrime/securesms/keyvalue/UiHints.java
@@ -0,0 +1,24 @@
package org.thoughtcrime.securesms.keyvalue;

public class UiHints {

private static final String HAS_SEEN_GROUP_SETTINGS_MENU_TOAST = "uihints.has_seen_group_settings_menu_toast";

private final KeyValueStore store;

UiHints(KeyValueStore store) {
this.store = store;
}

void onFirstEverAppLaunch() {
markHasSeenGroupSettingsMenuToast();
}

public void markHasSeenGroupSettingsMenuToast() {
store.beginWrite().putBoolean(HAS_SEEN_GROUP_SETTINGS_MENU_TOAST, true).apply();
}

public boolean hasSeenGroupSettingsMenuToast() {
return store.getBoolean(HAS_SEEN_GROUP_SETTINGS_MENU_TOAST, false);
}
}
2 changes: 2 additions & 0 deletions app/src/main/res/values/strings.xml
Expand Up @@ -267,6 +267,8 @@
<string name="ConversationActivity__to_call_s_signal_needs_access_to_your_microphone">To call %1$s, Signal needs access to your microphone</string>
<string name="ConversationActivity__to_call_s_signal_needs_access_to_your_microphone_and_camera">To call %1$s, Signal needs access to your microphone and camera.</string>

<string name="ConversationActivity__more_options_now_in_group_settings">More options now in \"Group settings\"</string>

<!-- ConversationAdapter -->
<plurals name="ConversationAdapter_n_unread_messages">
<item quantity="one">%d unread message</item>
Expand Down

0 comments on commit 0711a22

Please sign in to comment.