package com.quickblox.sample.core.ui.activity; import android.os.Bundle; import android.support.annotation.StringRes; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; import android.view.View; import android.view.ViewConfiguration; import android.widget.TextView; import com.quickblox.core.exception.QBResponseException; import com.quickblox.sample.core.R; import com.quickblox.sample.core.utils.ErrorUtils; import java.lang.reflect.Field; public class CoreBaseActivity extends AppCompatActivity { protected ActionBar actionBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); actionBar = getSupportActionBar(); // Hack. Forcing overflow button on actionbar on devices with hardware menu button try { ViewConfiguration config = ViewConfiguration.get(this); Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); if (menuKeyField != null) { menuKeyField.setAccessible(true); menuKeyField.setBoolean(config, false); } } catch (Exception ex) { // Ignore } } @SuppressWarnings("unchecked") public <T extends View> T _findViewById(int viewId) { return (T) findViewById(viewId); } public void setActionBarTitle(int title) { if (actionBar != null) { actionBar.setTitle(title); } } public void setActionBarTitle(CharSequence title) { if (actionBar != null) { actionBar.setTitle(title); } } protected void fillField(TextView textView, String value) { textView.setText(value); } protected void showSnackbarError(View rootLayout, @StringRes int resId, QBResponseException e, View.OnClickListener clickListener) { ErrorUtils.showSnackbar(rootLayout, resId, e, R.string.dlg_retry, clickListener); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); return true; } return super.onOptionsItemSelected(item); } }