Add overflow toast and fix edit menu option.
This commit is contained in:
parent
3a06412cd8
commit
0711a22188
5 changed files with 61 additions and 12 deletions
|
@ -43,6 +43,7 @@ import android.provider.Telephony;
|
|||
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;
|
||||
|
@ -163,6 +164,7 @@ import org.thoughtcrime.securesms.invites.InviteReminderRepository;
|
|||
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;
|
||||
|
@ -872,6 +874,28 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||
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()");
|
||||
|
|
|
@ -107,12 +107,6 @@ public class ManageGroupFragment extends Fragment {
|
|||
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,
|
||||
|
@ -188,7 +182,10 @@ public class ManageGroupFragment extends Fragment {
|
|||
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);
|
||||
|
@ -306,13 +303,10 @@ public class ManageGroupFragment extends Fragment {
|
|||
|
||||
@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;
|
||||
|
|
|
@ -11,13 +11,14 @@ import org.thoughtcrime.securesms.logging.SignalUncaughtExceptionHandler;
|
|||
*/
|
||||
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() {
|
||||
|
@ -60,6 +61,10 @@ public final class SignalStore {
|
|||
putLong(MESSAGE_REQUEST_ENABLE_TIME, time);
|
||||
}
|
||||
|
||||
public static UiHints uiHints() {
|
||||
return new UiHints(getStore());
|
||||
}
|
||||
|
||||
public static @NonNull PreferenceDataStore getPreferenceDataStore() {
|
||||
return new SignalPreferenceDataStore(getStore());
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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>
|
||||
|
|
Loading…
Add table
Reference in a new issue