Commit 825de168 authored by Grigory Fedorov's avatar Grigory Fedorov

New ContactTitleActionBarInflater - ContactEditor now use it to customize action bar.

parent 25396cad
...@@ -14,8 +14,6 @@ ...@@ -14,8 +14,6 @@
*/ */
package com.xabber.android.ui; package com.xabber.android.ui;
import java.util.Collection;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
...@@ -32,10 +30,13 @@ import com.xabber.android.data.intent.EntityIntentBuilder; ...@@ -32,10 +30,13 @@ import com.xabber.android.data.intent.EntityIntentBuilder;
import com.xabber.android.data.roster.AbstractContact; import com.xabber.android.data.roster.AbstractContact;
import com.xabber.android.data.roster.OnContactChangedListener; import com.xabber.android.data.roster.OnContactChangedListener;
import com.xabber.android.data.roster.RosterManager; import com.xabber.android.data.roster.RosterManager;
import com.xabber.android.ui.helper.ContactTitleActionBarInflater;
import com.xabber.android.ui.helper.ContactTitleInflater; import com.xabber.android.ui.helper.ContactTitleInflater;
import com.xabber.androiddev.R; import com.xabber.androiddev.R;
import com.xabber.xmpp.address.Jid; import com.xabber.xmpp.address.Jid;
import java.util.Collection;
public class ContactEditor extends GroupListActivity implements public class ContactEditor extends GroupListActivity implements
OnContactChangedListener, AdapterView.OnItemClickListener, OnContactChangedListener, AdapterView.OnItemClickListener,
OnAccountChangedListener { OnAccountChangedListener {
...@@ -43,11 +44,14 @@ public class ContactEditor extends GroupListActivity implements ...@@ -43,11 +44,14 @@ public class ContactEditor extends GroupListActivity implements
private String account; private String account;
private String user; private String user;
ContactTitleActionBarInflater contactTitleActionBarInflater;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true); contactTitleActionBarInflater = new ContactTitleActionBarInflater(this);
contactTitleActionBarInflater.setActionBarView();
} }
@Override @Override
...@@ -112,6 +116,8 @@ public class ContactEditor extends GroupListActivity implements ...@@ -112,6 +116,8 @@ public class ContactEditor extends GroupListActivity implements
((TextView) findViewById(R.id.name)).setText(getString( ((TextView) findViewById(R.id.name)).setText(getString(
R.string.contact_editor_title, abstractContact.getName())); R.string.contact_editor_title, abstractContact.getName()));
((TextView) findViewById(R.id.status_text)).setText(user); ((TextView) findViewById(R.id.status_text)).setText(user);
contactTitleActionBarInflater.update(abstractContact);
} }
@Override @Override
......
package com.xabber.android.ui.helper;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import com.xabber.android.data.account.AccountManager;
import com.xabber.android.data.roster.AbstractContact;
import com.xabber.androiddev.R;
public class ContactTitleActionBarInflater {
private final ActionBarActivity activity;
private View actionBarView;
private int[] accountActionBarColors;
private int[] accountStatusBarColors;
private Window window;
public ContactTitleActionBarInflater(ActionBarActivity activity) {
this.activity = activity;
}
public void setActionBarView() {
window = this.activity.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
accountActionBarColors = activity.getResources().getIntArray(R.array.account_action_bar);
accountStatusBarColors = activity.getResources().getIntArray(R.array.account_status_bar);
ActionBar actionBar = activity.getSupportActionBar();
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowCustomEnabled(true);
actionBarView = LayoutInflater.from(activity).inflate(R.layout.contact_title, null);
actionBar.setCustomView(actionBarView, new ActionBar.LayoutParams(
ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT));
}
public void update(AbstractContact abstractContact) {
ContactTitleInflater.updateTitle(actionBarView, activity, abstractContact);
int colorLevel = AccountManager.getInstance().getColorLevel(abstractContact.getAccount());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.setStatusBarColor(accountStatusBarColors[colorLevel]);
}
activity.getSupportActionBar().setBackgroundDrawable(new ColorDrawable(accountActionBarColors[colorLevel]));
}
}
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