package org.schabi.newpipe.info_list.holder; import android.text.TextUtils; import android.view.ViewGroup; import android.widget.TextView; import org.schabi.newpipe.R; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.extractor.stream.StreamType; import org.schabi.newpipe.info_list.InfoItemBuilder; import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.Localization; /* * Created by Christian Schabesberger on 01.08.16. *

* Copyright (C) Christian Schabesberger 2016 * StreamInfoItemHolder.java is part of NewPipe. *

*

* NewPipe is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. *

*

* NewPipe is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NewPipe. If not, see . *

*/ public class StreamInfoItemHolder extends StreamMiniInfoItemHolder { public final TextView itemAdditionalDetails; public StreamInfoItemHolder(final InfoItemBuilder infoItemBuilder, final ViewGroup parent) { this(infoItemBuilder, R.layout.list_stream_item, parent); } public StreamInfoItemHolder(final InfoItemBuilder infoItemBuilder, final int layoutId, final ViewGroup parent) { super(infoItemBuilder, layoutId, parent); itemAdditionalDetails = itemView.findViewById(R.id.itemAdditionalDetails); } @Override public void updateFromItem(final InfoItem infoItem, final HistoryRecordManager historyRecordManager) { super.updateFromItem(infoItem, historyRecordManager); if (!(infoItem instanceof StreamInfoItem)) { return; } final StreamInfoItem item = (StreamInfoItem) infoItem; itemAdditionalDetails.setText(getStreamInfoDetailLine(item)); } private String getStreamInfoDetailLine(final StreamInfoItem infoItem) { String viewsAndDate = ""; if (infoItem.getViewCount() >= 0) { if (infoItem.getStreamType().equals(StreamType.AUDIO_LIVE_STREAM)) { viewsAndDate = Localization .listeningCount(itemBuilder.getContext(), infoItem.getViewCount()); } else if (infoItem.getStreamType().equals(StreamType.LIVE_STREAM)) { viewsAndDate = Localization .shortWatchingCount(itemBuilder.getContext(), infoItem.getViewCount()); } else { viewsAndDate = Localization .shortViewCount(itemBuilder.getContext(), infoItem.getViewCount()); } } final String uploadDate = Localization.relativeTimeOrTextual(itemBuilder.getContext(), infoItem.getUploadDate(), infoItem.getTextualUploadDate()); if (!TextUtils.isEmpty(uploadDate)) { if (viewsAndDate.isEmpty()) { return uploadDate; } return Localization.concatenateStrings(viewsAndDate, uploadDate); } return viewsAndDate; } }