mirror of
https://github.com/ArcaneChat/android.git
synced 2026-07-03 14:05:24 +02:00
use invalidateOptionsMenu() to restore menu when leaving search mode
instead of wrongly restoring all menu items to visible when leaving search mode
This commit is contained in:
@@ -81,19 +81,14 @@ public abstract class BaseActionBarActivity extends AppCompatActivity {
|
||||
}
|
||||
}
|
||||
|
||||
public void makeSearchMenuVisible(final Menu menu, final MenuItem searchItem, boolean visible) {
|
||||
public void makeSearchMenuVisible(final Menu menu, final MenuItem searchItem) {
|
||||
for (int i = 0; i < menu.size(); ++i) {
|
||||
MenuItem item = menu.getItem(i);
|
||||
int id = item.getItemId();
|
||||
if (id == R.id.menu_search_up || id == R.id.menu_search_down) {
|
||||
item.setVisible(visible);
|
||||
} else if (id == R.id.menu_search_counter) {
|
||||
item.setVisible(false); // always hide menu_search_counter initially
|
||||
} else if (item == searchItem) {
|
||||
; // searchItem is just always visible
|
||||
} else {
|
||||
item.setVisible(
|
||||
!visible); // if search is shown, other items are hidden - and the other way round
|
||||
item.setVisible(true);
|
||||
} else if (item != searchItem) {
|
||||
item.setVisible(false); // hide all other items
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -342,6 +342,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
||||
|
||||
setDcEventListener(); // reset event listener
|
||||
handleRelaying();
|
||||
invalidateOptionsMenu(); // set correct menu visibility in case of chat changes
|
||||
|
||||
if (fragment != null) {
|
||||
fragment.onNewIntent();
|
||||
@@ -572,7 +573,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemActionCollapse(final MenuItem item) {
|
||||
searchCollapse(menu, item);
|
||||
searchCollapse();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
@@ -1810,14 +1811,15 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
||||
beforeSearchComposeVisibility = composePanel.getVisibility();
|
||||
composePanel.setVisibility(View.GONE);
|
||||
|
||||
ConversationActivity.this.makeSearchMenuVisible(menu, searchItem, true);
|
||||
ConversationActivity.this.makeSearchMenuVisible(menu, searchItem);
|
||||
}
|
||||
|
||||
private void searchCollapse(final Menu menu, final MenuItem searchItem) {
|
||||
private void searchCollapse() {
|
||||
searchMenu = null;
|
||||
composePanel.setVisibility(beforeSearchComposeVisibility);
|
||||
|
||||
ConversationActivity.this.makeSearchMenuVisible(menu, searchItem, false);
|
||||
// trigger onPrepareOptionsMenu() to restore correct menu visibility
|
||||
invalidateOptionsMenu();
|
||||
}
|
||||
|
||||
private void handleMenuSearchNext(boolean searchNext) {
|
||||
|
||||
@@ -194,13 +194,13 @@ public class WebViewActivity extends PassphraseRequiredActionBarActivity
|
||||
public boolean onMenuItemActionExpand(final MenuItem item) {
|
||||
searchMenu = menu;
|
||||
WebViewActivity.this.lastQuery = "";
|
||||
WebViewActivity.this.makeSearchMenuVisible(menu, searchItem, true);
|
||||
WebViewActivity.this.makeSearchMenuVisible(menu, searchItem);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemActionCollapse(final MenuItem item) {
|
||||
WebViewActivity.this.makeSearchMenuVisible(menu, searchItem, false);
|
||||
WebViewActivity.this.invalidateOptionsMenu();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user