package com.norbsoft.typefacehelper;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.os.Build;
import android.text.SpannableString;
/**
* Helper for setting actionbar title with custom typeface via SpannableString.
* Contains LGE 4.1 bug workaround
*
* @see http://stackoverflow.com/questions/7658725/android-java-lang-illegalargumentexception-invalid-payload-item-type
* @author Jakub Skierbiszewski
*/
public class ActionBarHelper {
private static final String TAG = ActionBarHelper.class.getSimpleName();
public static void setTitle(android.support.v7.app.ActionBar actionBar, SpannableString spannableString) {
// BUGFIX
// @see http://stackoverflow.com/questions/7658725/android-java-lang-illegalargumentexception-invalid-payload-item-type
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.JELLY_BEAN && Build.MANUFACTURER.toUpperCase().equals("LGE")) {
actionBar.setTitle(spannableString.toString());
} else {
actionBar.setTitle(spannableString);
}
}
public static void setTitle(android.support.v7.app.ActionBar actionBar, CharSequence charSequence) {
actionBar.setTitle(charSequence.toString());
}
@TargetApi(11)
public static void setTitle(ActionBar actionBar, SpannableString spannableString) {
// BUGFIX
// @see http://stackoverflow.com/questions/7658725/android-java-lang-illegalargumentexception-invalid-payload-item-type
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.JELLY_BEAN && Build.MANUFACTURER.toUpperCase().equals("LGE")) {
actionBar.setTitle(spannableString.toString());
} else {
actionBar.setTitle(spannableString);
}
}
@TargetApi(11)
public static void setTitle(ActionBar actionBar, CharSequence charSequence) {
actionBar.setTitle(charSequence.toString());
}
}