hood-core/src/release/java/at/favre/lib/hood/internal/entries/TextMessageEntry.java
package at.favre.lib.hood.internal.entries;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import at.favre.lib.hood.R;
import at.favre.lib.hood.interfaces.PageEntry;
import at.favre.lib.hood.interfaces.ViewTemplate;
import at.favre.lib.hood.interfaces.ViewTypes;
import at.favre.lib.hood.view.HoodDebugPageView;
/**
* A simple, non-interactive entry that displays a simple text message
*/
public class TextMessageEntry implements PageEntry<CharSequence> {
private final CharSequence message;
private boolean loggingEnabled = true;
/**
* Creates a simple, non-interactive text message
*
* @param message as shown in
*/
public TextMessageEntry(@NonNull CharSequence message) {
this.message = message;
}
@Override
public CharSequence getValue() {
return message;
}
@Override
public ViewTemplate<CharSequence> createViewTemplate() {
return new Template(getViewType());
}
@Override
public int getViewType() {
return ViewTypes.VIEWTYPE_MESSAGE;
}
@Override
public String toLogString() {
return loggingEnabled ? message.toString() : null;
}
@Override
public void disableLogging() {
loggingEnabled = false;
}
@Override
public void refresh() {
//no-op
}
private static class Template implements ViewTemplate<CharSequence> {
private final int viewType;
Template(int viewType) {
this.viewType = viewType;
}
@Override
public int getViewType() {
return viewType;
}
@Override
public View constructView(ViewGroup viewGroup, LayoutInflater inflater) {
return inflater.inflate(R.layout.hoodlib_template_message, viewGroup, false);
}
@Override
public void setContent(CharSequence value, @NonNull View view) {
((TextView) view.findViewById(R.id.message)).setText(value);
}
@Override
public void decorateViewWithZebra(@NonNull View view, @ColorInt int zebraColor, boolean isOdd) {
HoodDebugPageView.setZebraToView(view, zebraColor, isOdd);
}
}
}