Java源码示例:com.gianlu.commonutils.misc.SuperTextView
示例1
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
ScrollView layout = (ScrollView) inflater.inflate(R.layout.fragment_root_nameserver, container, false);
Bundle args = getArguments();
Domain.RootNameserver root;
if (getContext() == null || args == null || (root = (Domain.RootNameserver) args.getSerializable("root")) == null)
return null;
SuperTextView name = layout.findViewById(R.id.rootNsFragment_name);
Utils.clickToCopy(name);
name.setText(root.name);
SuperTextView rtt = layout.findViewById(R.id.rootNsFragment_rtt);
rtt.setHtml(R.string.rtt, Utils.formatRTT(root.rtt));
final LinearLayout nameservers = layout.findViewById(R.id.rootNsFragment_nameservers);
for (String nameserver : root.nameservers) {
TextView text = (TextView) inflater.inflate(R.layout.item_secondary_text, nameservers, false);
text.setText(nameserver);
Utils.clickToCopy(text);
nameservers.addView(text);
}
final ImageButton toggleNs = layout.findViewById(R.id.rootNsFragment_toggleNs);
toggleNs.setOnClickListener(v -> CommonUtils.handleCollapseClick(toggleNs, nameservers));
GlueView glue = layout.findViewById(R.id.rootNsFragment_glue);
glue.setGlue(root.glue);
return layout;
}
示例2
public void setText(String text) {
SuperTextView textView = (SuperTextView) getChildAt(1);
if (textView == null) {
textView = SuperTextView.text(getContext(), text);
textView.setTextColor(Color.WHITE);
textView.setPaddingRelative(0, 0, dp16 / 2, 0);
addView(textView);
return;
}
textView.setText(text);
}
示例3
@Override
public void addItem(@NonNull String message, @NonNull BaseTester.Color color) {
if (testResults != null && isAdded()) {
testResults.addView(SuperTextView.builder(requireContext())
.text(message)
.color(color.getColor(requireContext()))
.build());
testResults.postDelayed(() -> ((ScrollView) testResults.getParent()).fullScroll(ScrollView.FOCUS_DOWN), 100);
}
}
示例4
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
final SessionHistory.Game game = games.get(position);
((SuperTextView) holder.itemView).setHtml(R.string.gameStartedAt, CommonUtils.getFullVerbalDateFormatter().format(new Date(game.timestamp)));
holder.itemView.setOnClickListener(v -> {
if (listener != null) listener.onGameSelected(game);
});
}
示例5
private void showSpectators() {
if (manager == null || getContext() == null) return;
Collection<String> spectators = manager.spectators();
SuperTextView text = SuperTextView.html(getContext(), spectators.isEmpty() ? "<i>none</i>" : CommonUtils.join(spectators, ", "));
int padding = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24, getResources().getDisplayMetrics());
text.setPadding(padding, padding, padding, padding);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getContext());
builder.setTitle(R.string.spectatorsLabel)
.setView(text)
.setPositiveButton(android.R.string.ok, null);
DialogUtils.showDialog(getActivity(), builder);
}
示例6
@NonNull
@SuppressLint("InflateParams")
public static MaterialAlertDialogBuilder gameOptions(@NonNull Context context, @NonNull Game.Options options, @NonNull FirstLoad firstLoad) {
ScrollView layout = (ScrollView) LayoutInflater.from(context).inflate(R.layout.dialog_game_options, null, false);
SuperTextView scoreLimit = layout.findViewById(R.id.gameOptions_scoreLimit);
scoreLimit.setHtml(R.string.scoreLimit, options.scoreLimit);
SuperTextView playerLimit = layout.findViewById(R.id.gameOptions_playerLimit);
playerLimit.setHtml(R.string.playerLimit, options.playersLimit);
SuperTextView spectatorLimit = layout.findViewById(R.id.gameOptions_spectatorLimit);
spectatorLimit.setHtml(R.string.spectatorLimit, options.spectatorsLimit);
SuperTextView timerMultiplier = layout.findViewById(R.id.gameOptions_timerMultiplier);
timerMultiplier.setHtml(R.string.timerMultiplier, options.timerMultiplier);
SuperTextView cardSets = layout.findViewById(R.id.gameOptions_cardSets);
cardSets.setHtml(R.string.cardSets, options.cardSets.isEmpty() ? "<i>none</i>" : CommonUtils.join(firstLoad.createCardSetNamesList(options.cardSets), ", "));
SuperTextView blankCards = layout.findViewById(R.id.gameOptions_blankCards);
blankCards.setHtml(R.string.blankCards, options.blanksLimit);
SuperTextView password = layout.findViewById(R.id.gameOptions_password);
if (options.password == null || options.password.isEmpty())
password.setVisibility(View.GONE);
else
password.setHtml(R.string.password, options.password);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context);
builder.setTitle(R.string.gameOptions)
.setView(layout)
.setPositiveButton(android.R.string.ok, null);
return builder;
}
示例7
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
PollMessage message = messages.get(position);
holder.text.setHtml(SuperTextView.makeBold(message.sender) + ": " + message.message);
holder.itemView.setOnClickListener(v -> {
if (listener != null) listener.onChatItemSelected(message.sender);
});
if (message.emote) CommonUtils.setTextColor(holder.text, R.color.purple);
else if (message.wall) CommonUtils.setTextColor(holder.text, R.color.red);
else CommonUtils.setTextColorFromAttr(holder.text, android.R.attr.textColorSecondary);
}
示例8
public void clear() {
topCountries.clear();
removeAllViews();
addView(SuperTextView.text(getContext(), R.string.noActivity));
}
示例9
@Override
protected void onCreateBody(@NonNull LayoutInflater inflater, @NonNull ViewGroup parent, @NonNull SetupPayload payload) {
inflater.inflate(R.layout.sheet_dir, parent, true);
currentDir = payload.dir;
final DownloadWithUpdate download = payload.download;
SuperTextView indexes = parent.findViewById(R.id.dirSheet_indexes);
indexes.setHtml(R.string.indexes, CommonUtils.join(currentDir.indexes, ", "));
SuperTextView path = parent.findViewById(R.id.dirSheet_path);
path.setHtml(R.string.path, download.update().dir + currentDir.path);
length = parent.findViewById(R.id.dirSheet_length);
selected = parent.findViewById(R.id.dirSheet_selected);
completedLength = parent.findViewById(R.id.dirSheet_completedLength);
update(currentDir);
if (download.update().canDeselectFiles()) {
selected.setEnabled(true);
selected.setOnCheckedChangeListener((buttonView, isChecked) -> download.changeSelection(currentDir.indexes.toArray(new Integer[0]), isChecked, new AbstractClient.OnResult<Download.ChangeSelectionResult>() {
@Override
public void onResult(@NonNull Download.ChangeSelectionResult result) {
if (!isAdded()) return;
Toaster toaster = Toaster.build();
toaster.extra(result);
switch (result) {
case EMPTY:
toaster.message(R.string.cannotDeselectAllFiles);
break;
case SELECTED:
toaster.message(R.string.fileSelected);
break;
case DESELECTED:
toaster.message(R.string.fileDeselected);
break;
default:
toaster.message(R.string.failedAction);
break;
}
dismissAllowingStateLoss();
DialogUtils.showToast(getContext(), toaster);
}
@Override
public void onException(@NonNull Exception ex) {
if (!isAdded()) return;
dismissAllowingStateLoss();
Log.e(TAG, "Failed changing selection.", ex);
DialogUtils.showToast(getContext(), Toaster.build().message(R.string.failedFileChangeSelection));
}
}));
} else {
selected.setEnabled(false);
}
isLoading(false);
}
示例10
@Override
protected void onCreateBody(@NonNull LayoutInflater inflater, @NonNull ViewGroup parent, @NonNull SetupPayload payload) {
inflater.inflate(R.layout.sheet_file, parent, true);
final DownloadWithUpdate download = payload.download;
final AriaFile file = payload.file;
SuperTextView index = parent.findViewById(R.id.fileSheet_index);
index.setHtml(R.string.index, file.index);
SuperTextView path = parent.findViewById(R.id.fileSheet_path);
path.setHtml(R.string.path, file.path);
length = parent.findViewById(R.id.fileSheet_length);
completedLength = parent.findViewById(R.id.fileSheet_completedLength);
selected = parent.findViewById(R.id.fileSheet_selected);
update(file);
if (download.update().canDeselectFiles()) {
selected.setEnabled(true);
selected.setOnCheckedChangeListener((buttonView, isChecked) -> download.changeSelection(new Integer[]{file.index}, isChecked, new AbstractClient.OnResult<Download.ChangeSelectionResult>() {
@Override
public void onResult(@NonNull Download.ChangeSelectionResult result) {
if (!isAdded()) return;
Toaster toaster = Toaster.build();
toaster.extra(result);
switch (result) {
case EMPTY:
toaster.message(R.string.cannotDeselectAllFiles);
break;
case SELECTED:
file.selected = true;
toaster.message(R.string.fileSelected);
break;
case DESELECTED:
file.selected = false;
toaster.message(R.string.fileDeselected);
break;
default:
toaster.message(R.string.failedAction);
break;
}
dismissAllowingStateLoss();
DialogUtils.showToast(getContext(), toaster);
}
@Override
public void onException(@NonNull Exception ex) {
if (!isAdded() || getContext() == null) return;
dismissAllowingStateLoss();
Log.e(TAG, "Failed changing selection.", ex);
DialogUtils.showToast(getContext(), Toaster.build().message(R.string.failedFileChangeSelection));
}
}));
} else {
selected.setEnabled(false);
}
isLoading(false);
}
示例11
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.dialog_user_info, container, false);
WhoisResult user = getUser();
if (user == null) return null;
TextView name = layout.findViewById(R.id.userInfoDialog_name);
name.setText(user.nickname);
SuperTextView sigil = layout.findViewById(R.id.userInfoDialog_sigil);
sigil.setHtml(R.string.sigil, user.sigil.getFormal(getContext()));
SuperTextView idCode = layout.findViewById(R.id.userInfoDialog_idCode);
if (user.idCode.isEmpty()) {
idCode.setVisibility(View.GONE);
} else {
idCode.setVisibility(View.VISIBLE);
idCode.setHtml(R.string.idCode, user.idCode);
}
SuperTextView connAt = layout.findViewById(R.id.userInfoDialog_connAt);
connAt.setHtml(R.string.connectedAt, CommonUtils.getFullDateFormatter().format(new Date(user.connectedAt)));
SuperTextView idleFrom = layout.findViewById(R.id.userInfoDialog_idle);
idleFrom.setHtml(R.string.idleFor, CommonUtils.timeFormatter(user.idle / 1000));
SuperTextView ipAddr = layout.findViewById(R.id.userInfoDialog_ipAddr);
if (user.ipAddress() == null) {
ipAddr.setVisibility(View.GONE);
} else {
ipAddr.setVisibility(View.VISIBLE);
ipAddr.setHtml(R.string.ipAddress, user.ipAddress());
}
SuperTextView client = layout.findViewById(R.id.userInfoDialog_client);
if (user.clientName() == null) {
client.setVisibility(View.GONE);
} else {
client.setVisibility(View.VISIBLE);
client.setHtml(R.string.clientName, user.clientName());
}
Button blockUser = layout.findViewById(R.id.userInfoDialog_block);
if (BlockedUsers.isBlocked(user.nickname)) {
blockUser.setVisibility(View.GONE);
} else {
blockUser.setVisibility(View.VISIBLE);
blockUser.setOnClickListener(v -> {
BlockedUsers.block(user.nickname);
dismissAllowingStateLoss();
});
}
Button viewGame = layout.findViewById(R.id.userInfoDialog_viewGame);
SuperTextView game = layout.findViewById(R.id.userInfoDialog_game);
final Game gameInfo = user.game();
if (gameInfo == null) {
game.setVisibility(View.GONE);
viewGame.setVisibility(View.GONE);
} else {
game.setVisibility(View.VISIBLE);
Object[] args = new Object[3];
args[0] = gameInfo.host;
args[1] = gameInfo.players.size();
args[2] = gameInfo.options.playersLimit;
if (gameInfo.hasPassword(false)) {
if (gameInfo.status.isStarted())
game.setHtml(R.string.gameStartedLockedDetails, args);
else
game.setHtml(R.string.gameLobbyLockedDetails, args);
} else {
if (gameInfo.status.isStarted())
game.setHtml(R.string.gameStartedOpenDetails, args);
else
game.setHtml(R.string.gameLobbyOpenDetails, args);
}
if (listener != null && listener.canViewGame()) {
viewGame.setVisibility(View.VISIBLE);
viewGame.setOnClickListener(v -> {
if (listener != null) {
listener.viewGame(gameInfo.gid, gameInfo.hasPassword(false));
dismissAllowingStateLoss();
}
});
} else {
viewGame.setVisibility(View.GONE);
}
}
return layout;
}
示例12
@Override
protected void onSetupViewHolder(@NonNull ViewHolder holder, int position, @NonNull final Name name) {
((SuperTextView) holder.itemView).setHtml(name.sigil() == Name.Sigil.NORMAL_USER ? name.withSigil() : (SuperTextView.makeBold(name.sigil().symbol()) + name.noSigil()));
holder.itemView.setOnClickListener(v -> listener.onNameSelected(name.noSigil()));
}
示例13
ViewHolder(ViewGroup parent) {
super(inflater.inflate(R.layout.item_chat, parent, false));
text = (SuperTextView) itemView;
}