package com.android.internal.view;
import com.android.internal.R;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.os.Build;
public class ActionBarPolicy {
private Context mContext;
public static ActionBarPolicy get(Context context) {
return new ActionBarPolicy(context);
}
private ActionBarPolicy(Context context) {
mContext = context;
}
public int getMaxActionButtons() {
final Configuration config = mContext.getResources().getConfiguration();
final int width = config.screenWidthDp;
final int height = config.screenHeightDp;
final int smallest = config.smallestScreenWidthDp;
if (smallest > 600 || (width > 960 && height > 720) || (width > 720 && height > 960)) {
return 5;
} else if (width >= 500 || (width > 640 && height > 480) || (width > 480 && height > 640)) {
return 4;
} else if (width >= 360) {
return 3;
} else {
return 2;
}
}
public boolean showsOverflowMenuButton() {
return true;
}
public int getEmbeddedMenuWidthLimit() {
return mContext.getResources().getDisplayMetrics().widthPixels / 2;
}
public boolean hasEmbeddedTabs() {
final int targetSdk = mContext.getApplicationInfo().targetSdkVersion;
if (targetSdk >= Build.VERSION_CODES.JELLY_BEAN) {
return mContext.getResources().getBoolean(R.bool.action_bar_embed_tabs);
}
final Configuration configuration = mContext.getResources().getConfiguration();
final int width = configuration.screenWidthDp;
final int height = configuration.screenHeightDp;
return configuration.orientation == Configuration.ORIENTATION_LANDSCAPE ||
width >= 480 || (width >= 640 && height >= 480);
}
public int getTabContainerHeight() {
TypedArray a = mContext.obtainStyledAttributes(null, R.styleable.ActionBar,
com.android.internal.R.attr.actionBarStyle, 0);
int height = a.getLayoutDimension(R.styleable.ActionBar_height, 0);
Resources r = mContext.getResources();
if (!hasEmbeddedTabs()) {
height = Math.min(height,
r.getDimensionPixelSize(R.dimen.action_bar_stacked_max_height));
}
a.recycle();
return height;
}
public boolean enableHomeButtonByDefault() {
return mContext.getApplicationInfo().targetSdkVersion <
Build.VERSION_CODES.ICE_CREAM_SANDWICH;
}
public int getStackedTabMaxWidth() {
return mContext.getResources().getDimensionPixelSize(
R.dimen.action_bar_stacked_tab_max_width);
}
}