Commit 0ef0a862 authored by Grigory Fedorov's avatar Grigory Fedorov

#456 Fix: hardware button menu fix: ContactList and ContactEditor uses...

#456 Fix: hardware button menu fix: ContactList and ContactEditor  uses toolbar menu (setSupportActionBar removed).
parent c79dd668
...@@ -4,9 +4,13 @@ import android.app.AlertDialog; ...@@ -4,9 +4,13 @@ import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.support.v7.widget.Toolbar;
import android.text.InputType; import android.text.InputType;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View;
import android.widget.EditText; import android.widget.EditText;
import com.xabber.android.R; import com.xabber.android.R;
...@@ -17,13 +21,35 @@ import com.xabber.android.data.roster.RosterContact; ...@@ -17,13 +21,35 @@ import com.xabber.android.data.roster.RosterContact;
import com.xabber.android.data.roster.RosterManager; import com.xabber.android.data.roster.RosterManager;
import com.xabber.android.ui.dialog.ContactDeleteDialogFragment; import com.xabber.android.ui.dialog.ContactDeleteDialogFragment;
public class ContactEditor extends ContactViewer { public class ContactEditor extends ContactViewer implements Toolbar.OnMenuItemClickListener {
public static Intent createIntent(Context context, String account, String user) { public static Intent createIntent(Context context, String account, String user) {
return new EntityIntentBuilder(context, ContactEditor.class) return new EntityIntentBuilder(context, ContactEditor.class)
.setAccount(account).setUser(user).build(); .setAccount(account).setUser(user).build();
} }
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toolbar toolbar = contactTitleExpandableToolbarInflater.getToolbar();
RosterContact rosterContact = RosterManager.getInstance().getRosterContact(getAccount(), getBareAddress());
if (rosterContact != null) {
toolbar.inflateMenu(R.menu.contact_viewer);
toolbar.setOnMenuItemClickListener(this);
}
toolbar.setNavigationIcon(R.drawable.ic_arrow_left_white_24dp);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
NavUtils.navigateUpFromSameTask(ContactEditor.this);
}
});
}
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
RosterContact rosterContact = RosterManager.getInstance().getRosterContact(getAccount(), getBareAddress()); RosterContact rosterContact = RosterManager.getInstance().getRosterContact(getAccount(), getBareAddress());
...@@ -34,6 +60,11 @@ public class ContactEditor extends ContactViewer { ...@@ -34,6 +60,11 @@ public class ContactEditor extends ContactViewer {
return true; return true;
} }
@Override
public boolean onMenuItemClick(MenuItem item) {
return onOptionsItemSelected(item);
}
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) { switch (item.getItemId()) {
......
...@@ -43,7 +43,6 @@ import android.widget.Toast; ...@@ -43,7 +43,6 @@ import android.widget.Toast;
import com.xabber.android.R; import com.xabber.android.R;
import com.xabber.android.data.ActivityManager; import com.xabber.android.data.ActivityManager;
import com.xabber.android.data.Application; import com.xabber.android.data.Application;
import com.xabber.android.data.LogManager;
import com.xabber.android.data.NetworkException; import com.xabber.android.data.NetworkException;
import com.xabber.android.data.SettingsManager; import com.xabber.android.data.SettingsManager;
import com.xabber.android.data.account.AccountManager; import com.xabber.android.data.account.AccountManager;
...@@ -80,7 +79,7 @@ import java.util.Collection; ...@@ -80,7 +79,7 @@ import java.util.Collection;
* @author alexander.ivanov * @author alexander.ivanov
*/ */
public class ContactList extends ManagedActivity implements OnAccountChangedListener, public class ContactList extends ManagedActivity implements OnAccountChangedListener,
View.OnClickListener, OnChoosedListener, OnContactClickListener, ContactListDrawerFragment.ContactListDrawerListener { View.OnClickListener, OnChoosedListener, OnContactClickListener, ContactListDrawerFragment.ContactListDrawerListener, Toolbar.OnMenuItemClickListener {
/** /**
* Select contact to be invited to the room was requested. * Select contact to be invited to the room was requested.
...@@ -155,19 +154,19 @@ public class ContactList extends ManagedActivity implements OnAccountChangedList ...@@ -155,19 +154,19 @@ public class ContactList extends ManagedActivity implements OnAccountChangedList
setContentView(R.layout.contact_list); setContentView(R.layout.contact_list);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_default); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_default);
toolbar.setOnClickListener(this); toolbar.setOnClickListener(this);
setSupportActionBar(toolbar);
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.application_title_short, R.string.application_title_short); drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.application_title_short, R.string.application_title_short);
drawerLayout.setDrawerListener(drawerToggle); drawerLayout.setDrawerListener(drawerToggle);
getSupportActionBar().setHomeButtonEnabled(true); toolbar.inflateMenu(R.menu.contact_list);
setUpSearchView(toolbar.getMenu());
toolbar.setOnMenuItemClickListener(this);
barPainter = new BarPainter(this, toolbar); barPainter = new BarPainter(this, toolbar);
barPainter.setDefaultColor(); barPainter.setDefaultColor();
setTitle(getString(R.string.application_title_full)); toolbar.setTitle(R.string.application_title_full);
if (savedInstanceState != null) { if (savedInstanceState != null) {
sendText = savedInstanceState.getString(SAVED_SEND_TEXT); sendText = savedInstanceState.getString(SAVED_SEND_TEXT);
...@@ -344,13 +343,13 @@ public class ContactList extends ManagedActivity implements OnAccountChangedList ...@@ -344,13 +343,13 @@ public class ContactList extends ManagedActivity implements OnAccountChangedList
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu); super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.contact_list, menu); getMenuInflater().inflate(R.menu.contact_list, menu);
setUpSearchView(menu); menu.findItem(R.id.action_search).setVisible(false);
return true; return true;
} }
private void setUpSearchView(final Menu menu) { private void setUpSearchView(final Menu menu) {
searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setQueryHint("Search contact"); searchView.setQueryHint(getString(R.string.contact_search_hint));
searchView.setOnCloseListener(new SearchView.OnCloseListener() { searchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override @Override
...@@ -371,14 +370,12 @@ public class ContactList extends ManagedActivity implements OnAccountChangedList ...@@ -371,14 +370,12 @@ public class ContactList extends ManagedActivity implements OnAccountChangedList
@Override @Override
public boolean onMenuItemActionCollapse(MenuItem item) { public boolean onMenuItemActionCollapse(MenuItem item) {
LogManager.i(this, "onMenuItemActionCollapse");
searchView.setQuery("", true); searchView.setQuery("", true);
searchView.clearFocus(); searchView.clearFocus();
return true; return true;
} }
}); });
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override @Override
public boolean onQueryTextSubmit(String query) { public boolean onQueryTextSubmit(String query) {
...@@ -394,6 +391,11 @@ public class ContactList extends ManagedActivity implements OnAccountChangedList ...@@ -394,6 +391,11 @@ public class ContactList extends ManagedActivity implements OnAccountChangedList
}); });
} }
@Override
public boolean onMenuItemClick(MenuItem item) {
return onOptionsItemSelected(item);
}
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
if (drawerToggle.onOptionsItemSelected(item)) { if (drawerToggle.onOptionsItemSelected(item)) {
......
...@@ -43,10 +43,9 @@ import java.util.List; ...@@ -43,10 +43,9 @@ import java.util.List;
public class ContactViewer extends ManagedActivity implements public class ContactViewer extends ManagedActivity implements
OnContactChangedListener, OnAccountChangedListener { OnContactChangedListener, OnAccountChangedListener {
protected ContactTitleExpandableToolbarInflater contactTitleExpandableToolbarInflater;
private String account; private String account;
private String bareAddress; private String bareAddress;
private ContactTitleExpandableToolbarInflater contactTitleExpandableToolbarInflater;
private TextView contactNameView; private TextView contactNameView;
public static Intent createIntent(Context context, String account, String user) { public static Intent createIntent(Context context, String account, String user) {
......
...@@ -42,6 +42,7 @@ public class ContactTitleExpandableToolbarInflater implements ObservableScrollVi ...@@ -42,6 +42,7 @@ public class ContactTitleExpandableToolbarInflater implements ObservableScrollVi
private int avatarRadius; private int avatarRadius;
private int contactTitlePaddingBottomBig; private int contactTitlePaddingBottomBig;
private int contactTitlePaddingBottomSmall; private int contactTitlePaddingBottomSmall;
private Toolbar toolbar;
public ContactTitleExpandableToolbarInflater(AppCompatActivity activity) { public ContactTitleExpandableToolbarInflater(AppCompatActivity activity) {
this.activity = activity; this.activity = activity;
...@@ -49,9 +50,7 @@ public class ContactTitleExpandableToolbarInflater implements ObservableScrollVi ...@@ -49,9 +50,7 @@ public class ContactTitleExpandableToolbarInflater implements ObservableScrollVi
public void onCreate(AbstractContact abstractContact) { public void onCreate(AbstractContact abstractContact) {
activity.setContentView(R.layout.expandable_contact_title_activity); activity.setContentView(R.layout.expandable_contact_title_activity);
activity.setSupportActionBar((Toolbar) activity.findViewById(R.id.toolbar_overlay)); toolbar = (Toolbar) activity.findViewById(R.id.toolbar_overlay);
activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
activity.getSupportActionBar().setDisplayShowTitleEnabled(false);
avatarView = activity.findViewById(R.id.avatar); avatarView = activity.findViewById(R.id.avatar);
contactNamePanel = activity.findViewById(R.id.contact_name_panel); contactNamePanel = activity.findViewById(R.id.contact_name_panel);
...@@ -182,9 +181,9 @@ public class ContactTitleExpandableToolbarInflater implements ObservableScrollVi ...@@ -182,9 +181,9 @@ public class ContactTitleExpandableToolbarInflater implements ObservableScrollVi
} }
titleView.setPadding(paddingLeft, 0, paddingLeft, 0); titleView.setPadding(paddingLeft, 0, paddingLeft, 0);
} }
public Toolbar getToolbar() {
return toolbar;
}
} }
...@@ -19,9 +19,6 @@ ...@@ -19,9 +19,6 @@
<!--for text selection toolbar to be above usual toolbar --> <!--for text selection toolbar to be above usual toolbar -->
<item name="windowActionModeOverlay">true</item> <item name="windowActionModeOverlay">true</item>
<!--&lt;!&ndash; for hardware button menu &ndash;&gt;-->
<!--<item name="panelBackground">?attr/colorPrimary</item>-->
</style> </style>
<style name="ToolbarTitle" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title"> <style name="ToolbarTitle" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment