Skip to content

Commit

Permalink
Replace Response<T> usages with local type
Browse files Browse the repository at this point in the history
  • Loading branch information
nielsvanvelzen committed Feb 13, 2025
1 parent a4d2f0a commit 1ed6611
Show file tree
Hide file tree
Showing 17 changed files with 42 additions and 98 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
import org.jellyfin.androidtv.ui.livetv.LiveTvGuide;
import org.jellyfin.androidtv.ui.livetv.TvManager;
import org.jellyfin.androidtv.util.Utils;
import org.jellyfin.androidtv.util.apiclient.EmptyLifecycleAwareResponse;
import org.jellyfin.androidtv.util.apiclient.EmptyResponse;
import org.jellyfin.sdk.model.api.BaseItemDto;
import org.koin.java.KoinJavaComponent;

Expand All @@ -48,13 +48,13 @@ public class LiveProgramDetailPopup {
private Button mFirstButton;
private Button mSeriesSettingsButton;

private EmptyLifecycleAwareResponse mTuneAction;
private EmptyResponse mTuneAction;

private View mAnchor;
private int mPosLeft;
private int mPosTop;

public LiveProgramDetailPopup(Context context, LifecycleOwner lifecycleOwner, LiveTvGuide tvGuide, int width, EmptyLifecycleAwareResponse tuneAction) {
public LiveProgramDetailPopup(Context context, LifecycleOwner lifecycleOwner, LiveTvGuide tvGuide, int width, EmptyResponse tuneAction) {
mContext = context;
lifecycle = lifecycleOwner.getLifecycle();
mTvGuide = tvGuide;
Expand Down Expand Up @@ -247,7 +247,7 @@ public Button createTuneButton() {
tune.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mTuneAction != null && mTuneAction.getActive()) mTuneAction.onResponse();
if (mTuneAction != null) mTuneAction.onResponse();
mPopup.dismiss();
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
import org.jellyfin.androidtv.util.InfoLayoutHelper;
import org.jellyfin.androidtv.util.KeyProcessor;
import org.jellyfin.androidtv.util.Utils;
import org.jellyfin.androidtv.util.apiclient.EmptyLifecycleAwareResponse;
import org.jellyfin.androidtv.util.apiclient.EmptyResponse;
import org.jellyfin.sdk.api.client.ApiClient;
import org.jellyfin.sdk.model.api.BaseItemDto;
import org.jellyfin.sdk.model.api.BaseItemKind;
Expand Down Expand Up @@ -659,11 +659,9 @@ private void buildAdapter() {
filters.setFavoriteOnly(libraryPreferences.get(LibraryPreferences.Companion.getFilterFavoritesOnly()));
filters.setUnwatchedOnly(libraryPreferences.get(LibraryPreferences.Companion.getFilterUnwatchedOnly()));

mAdapter.setRetrieveFinishedListener(new EmptyLifecycleAwareResponse(getLifecycle()) {
mAdapter.setRetrieveFinishedListener(new EmptyResponse() {
@Override
public void onResponse() {
if (!getActive()) return;

setStatusText(mFolder.getName());
if (mCurrentItem == null) { // don't mess-up pos via loadMoreItemsIfNeeded
setItem(null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@
import org.jellyfin.androidtv.util.TimeUtils;
import org.jellyfin.androidtv.util.Utils;
import org.jellyfin.androidtv.util.apiclient.BaseItemUtils;
import org.jellyfin.androidtv.util.apiclient.LifecycleAwareResponse;
import org.jellyfin.androidtv.util.apiclient.Response;
import org.jellyfin.androidtv.util.sdk.BaseItemExtensionsKt;
import org.jellyfin.androidtv.util.sdk.TrailerUtils;
import org.jellyfin.androidtv.util.sdk.compat.JavaCompat;
Expand Down Expand Up @@ -714,11 +714,9 @@ void addItemToQueue() {
BaseItemDto baseItem = mBaseItem;
if (baseItem.getType() == BaseItemKind.AUDIO || baseItem.getType() == BaseItemKind.MUSIC_ALBUM || baseItem.getType() == BaseItemKind.MUSIC_ARTIST) {
if (baseItem.getType() == BaseItemKind.MUSIC_ALBUM || baseItem.getType() == BaseItemKind.MUSIC_ARTIST) {
playbackHelper.getValue().getItemsToPlay(getContext(), baseItem, false, false, new LifecycleAwareResponse<List<BaseItemDto>>(getLifecycle()) {
playbackHelper.getValue().getItemsToPlay(getContext(), baseItem, false, false, new Response<List<BaseItemDto>>() {
@Override
public void onResponse(List<BaseItemDto> response) {
if (!getActive()) return;

mediaManager.getValue().addToAudioQueue(response);
}
});
Expand Down Expand Up @@ -1196,10 +1194,9 @@ void shufflePlay() {
}

void play(final BaseItemDto item, final int pos, final boolean shuffle) {
playbackHelper.getValue().getItemsToPlay(getContext(), item, pos == 0 && item.getType() == BaseItemKind.MOVIE, shuffle, new LifecycleAwareResponse<List<BaseItemDto>>(getLifecycle()) {
playbackHelper.getValue().getItemsToPlay(getContext(), item, pos == 0 && item.getType() == BaseItemKind.MOVIE, shuffle, new Response<List<BaseItemDto>>() {
@Override
public void onResponse(List<BaseItemDto> response) {
if (!getActive()) return;
if (response.isEmpty()) {
Timber.e("No items to play - ignoring play request.");
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
import org.jellyfin.androidtv.ui.playback.VideoQueueManager;
import org.jellyfin.androidtv.util.PlaybackHelper;
import org.jellyfin.androidtv.util.Utils;
import org.jellyfin.androidtv.util.apiclient.Response;
import org.jellyfin.androidtv.util.sdk.compat.JavaCompat;
import org.jellyfin.apiclient.interaction.Response;
import org.jellyfin.sdk.model.api.BaseItemDto;
import org.jellyfin.sdk.model.api.BaseItemKind;
import org.jellyfin.sdk.model.api.CollectionType;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package org.jellyfin.androidtv.ui.itemhandling
import androidx.lifecycle.ProcessLifecycleOwner
import androidx.lifecycle.lifecycleScope
import kotlinx.coroutines.launch
import org.jellyfin.apiclient.interaction.Response
import org.jellyfin.androidtv.util.apiclient.Response
import org.jellyfin.sdk.api.client.ApiClient
import org.jellyfin.sdk.api.client.exception.ApiClientException
import org.jellyfin.sdk.api.client.extensions.userLibraryApi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
import org.jellyfin.androidtv.ui.presentation.MutableObjectAdapter;
import org.jellyfin.androidtv.ui.presentation.TextItemPresenter;
import org.jellyfin.androidtv.util.Utils;
import org.jellyfin.androidtv.util.apiclient.EmptyLifecycleAwareResponse;
import org.jellyfin.androidtv.util.apiclient.EmptyResponse;
import org.jellyfin.sdk.model.api.BaseItemDto;
import org.jellyfin.sdk.model.api.BaseItemPerson;
import org.jellyfin.sdk.model.api.ItemSortBy;
Expand Down Expand Up @@ -78,7 +78,7 @@ public class ItemRowAdapter extends MutableObjectAdapter<Object> {
private SortOrder sortOrder;
private FilterOptions mFilters;

private EmptyLifecycleAwareResponse mRetrieveFinishedListener;
private EmptyResponse mRetrieveFinishedListener;

private ChangeTriggerType[] reRetrieveTriggers = new ChangeTriggerType[]{};
private Instant lastFullRetrieve;
Expand Down Expand Up @@ -720,13 +720,13 @@ protected void notifyRetrieveFinished() {

protected void notifyRetrieveFinished(@Nullable Exception exception) {
setCurrentlyRetrieving(false);
if (mRetrieveFinishedListener != null && mRetrieveFinishedListener.getActive()) {
if (mRetrieveFinishedListener != null) {
if (exception == null) mRetrieveFinishedListener.onResponse();
else mRetrieveFinishedListener.onError(exception);
}
}

public void setRetrieveFinishedListener(EmptyLifecycleAwareResponse response) {
public void setRetrieveFinishedListener(EmptyResponse response) {
this.mRetrieveFinishedListener = response;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
import org.jellyfin.androidtv.util.TextUtilsKt;
import org.jellyfin.androidtv.util.TimeUtils;
import org.jellyfin.androidtv.util.Utils;
import org.jellyfin.androidtv.util.apiclient.EmptyLifecycleAwareResponse;
import org.jellyfin.androidtv.util.apiclient.EmptyResponse;
import org.jellyfin.sdk.model.api.BaseItemDto;

import java.time.LocalDateTime;
Expand Down Expand Up @@ -426,11 +426,9 @@ public void dismissProgramOptions() {
public void showProgramOptions() {
if (mSelectedProgram == null) return;
if (mDetailPopup == null) {
mDetailPopup = new LiveProgramDetailPopup(requireActivity(), this, this, mSummary.getWidth()+20, new EmptyLifecycleAwareResponse(getLifecycle()) {
mDetailPopup = new LiveProgramDetailPopup(requireActivity(), this, this, mSummary.getWidth()+20, new EmptyResponse() {
@Override
public void onResponse() {
if (!getActive()) return;

playbackHelper.getValue().retrieveAndPlay(mSelectedProgram.getChannelId(), false, requireContext());
}
});
Expand Down Expand Up @@ -475,11 +473,9 @@ private void loadProgramData() {
mChannels.removeAllViews();
mChannelStatus.setText("");
mFilterStatus.setText("");
TvManager.getProgramsAsync(this, mCurrentDisplayChannelStartNdx, mCurrentDisplayChannelEndNdx, mCurrentGuideStart, mCurrentGuideEnd, new EmptyLifecycleAwareResponse(getLifecycle()) {
TvManager.getProgramsAsync(this, mCurrentDisplayChannelStartNdx, mCurrentDisplayChannelEndNdx, mCurrentGuideStart, mCurrentGuideEnd, new EmptyResponse() {
@Override
public void onResponse() {
if (!getActive()) return;

Timber.d("*** Programs response");
if (mDisplayProgramsTask != null) mDisplayProgramsTask.cancel(true);
mDisplayProgramsTask = new DisplayProgramsTask();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import org.jellyfin.androidtv.util.DateTimeExtensionsKt;
import org.jellyfin.androidtv.util.TimeUtils;
import org.jellyfin.androidtv.util.Utils;
import org.jellyfin.androidtv.util.apiclient.EmptyLifecycleAwareResponse;
import org.jellyfin.androidtv.util.apiclient.EmptyResponse;
import org.jellyfin.sdk.model.api.BaseItemDto;
import org.koin.java.KoinJavaComponent;

Expand Down Expand Up @@ -121,7 +121,7 @@ private static int fillChannelIds() {
return ndx;
}

public static void getProgramsAsync(Fragment fragment, int startNdx, int endNdx, final LocalDateTime startTime, LocalDateTime endTime, final EmptyLifecycleAwareResponse outerResponse) {
public static void getProgramsAsync(Fragment fragment, int startNdx, int endNdx, final LocalDateTime startTime, LocalDateTime endTime, final EmptyResponse outerResponse) {
LocalDateTime startTimeRounded = startTime.withMinute(startTime.getMinute() >= 30 ? 30 : 0).withSecond(0).withNano(0);
LocalDateTime endTimeRounded = endTime.minusSeconds(1);

Expand All @@ -136,7 +136,7 @@ public static void getProgramsAsync(Fragment fragment, int startNdx, int endNdx,
buildProgramsDict(programs, startTimeRounded);
Timber.d("*** Programs retrieval finished");

if (outerResponse.getActive()) outerResponse.onResponse();
outerResponse.onResponse();
} else {
outerResponse.onResponse();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
import org.jellyfin.androidtv.util.TextUtilsKt;
import org.jellyfin.androidtv.util.TimeUtils;
import org.jellyfin.androidtv.util.Utils;
import org.jellyfin.androidtv.util.apiclient.EmptyLifecycleAwareResponse;
import org.jellyfin.androidtv.util.apiclient.EmptyResponse;
import org.jellyfin.androidtv.util.sdk.BaseItemExtensionsKt;
import org.jellyfin.sdk.model.api.BaseItemDto;
import org.jellyfin.sdk.model.api.BaseItemKind;
Expand Down Expand Up @@ -796,11 +796,9 @@ public void displayChannels(int start, int max) {
tvGuideBinding.channelsStatus.setText("");
tvGuideBinding.filterStatus.setText("");
final CustomPlaybackOverlayFragment self = this;
TvManager.getProgramsAsync(this, mCurrentDisplayChannelStartNdx, mCurrentDisplayChannelEndNdx, mCurrentGuideStart, mCurrentGuideEnd, new EmptyLifecycleAwareResponse(getLifecycle()) {
TvManager.getProgramsAsync(this, mCurrentDisplayChannelStartNdx, mCurrentDisplayChannelEndNdx, mCurrentGuideStart, mCurrentGuideEnd, new EmptyResponse() {
@Override
public void onResponse() {
if (!getActive()) return;

Timber.d("*** Programs response");
if (mDisplayProgramsTask != null) mDisplayProgramsTask.cancel(true);
mDisplayProgramsTask = new DisplayProgramsTask(self);
Expand Down Expand Up @@ -1077,11 +1075,9 @@ public void dismissProgramOptions() {
public void showProgramOptions() {
if (mSelectedProgram == null) return;
if (mDetailPopup == null)
mDetailPopup = new LiveProgramDetailPopup(requireActivity(), this, this, Utils.convertDpToPixel(requireContext(), 600), new EmptyLifecycleAwareResponse(getLifecycle()) {
mDetailPopup = new LiveProgramDetailPopup(requireActivity(), this, this, Utils.convertDpToPixel(requireContext(), 600), new EmptyResponse() {
@Override
public void onResponse() {
if (!getActive()) return;

switchChannel(mSelectedProgram.getChannelId());
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@
import org.jellyfin.androidtv.util.TimeUtils;
import org.jellyfin.androidtv.util.Utils;
import org.jellyfin.androidtv.util.apiclient.ReportingHelper;
import org.jellyfin.androidtv.util.apiclient.Response;
import org.jellyfin.androidtv.util.profile.DeviceProfileKt;
import org.jellyfin.androidtv.util.sdk.compat.JavaCompat;
import org.jellyfin.apiclient.interaction.Response;
import org.jellyfin.sdk.model.api.BaseItemDto;
import org.jellyfin.sdk.model.api.BaseItemKind;
import org.jellyfin.sdk.model.api.DeviceProfile;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import kotlinx.coroutines.launch
import org.jellyfin.androidtv.data.compat.PlaybackException
import org.jellyfin.androidtv.data.compat.StreamInfo
import org.jellyfin.androidtv.data.compat.VideoOptions
import org.jellyfin.apiclient.interaction.Response
import org.jellyfin.androidtv.util.apiclient.Response
import org.jellyfin.sdk.api.client.ApiClient
import org.jellyfin.sdk.api.client.extensions.hlsSegmentApi
import org.jellyfin.sdk.api.client.extensions.mediaInfoApi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
import org.jellyfin.androidtv.ui.navigation.Destinations;
import org.jellyfin.androidtv.ui.navigation.NavigationRepository;
import org.jellyfin.androidtv.ui.playback.MediaManager;
import org.jellyfin.androidtv.util.apiclient.Response;
import org.jellyfin.androidtv.util.sdk.BaseItemExtensionsKt;
import org.jellyfin.apiclient.interaction.Response;
import org.jellyfin.sdk.model.api.BaseItemDto;
import org.jellyfin.sdk.model.api.BaseItemKind;
import org.jellyfin.sdk.model.api.ItemSortBy;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.jellyfin.androidtv.util

import android.content.Context
import org.jellyfin.apiclient.interaction.Response
import org.jellyfin.androidtv.util.apiclient.Response
import org.jellyfin.sdk.model.api.BaseItemDto
import java.util.UUID

Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package org.jellyfin.androidtv.util.apiclient

@Deprecated("Utility class for callbacks used inside Java code. Do not use for new code.")
abstract class Response<T> {
abstract fun onResponse(response: T)
open fun onError(exception: Exception) = Unit
}

@Deprecated("Utility class for callbacks used inside Java code. Do not use for new code.")
abstract class EmptyResponse : Response<Unit>() {
override fun onResponse(response: Unit) = onResponse()
abstract fun onResponse()
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import org.jellyfin.androidtv.ui.playback.PlaybackControllerContainer
import org.jellyfin.androidtv.ui.playback.PlaybackLauncher
import org.jellyfin.androidtv.ui.playback.VideoQueueManager
import org.jellyfin.androidtv.util.PlaybackHelper
import org.jellyfin.apiclient.interaction.Response
import org.jellyfin.androidtv.util.apiclient.Response
import org.jellyfin.sdk.api.client.ApiClient
import org.jellyfin.sdk.api.client.extensions.instantMixApi
import org.jellyfin.sdk.api.client.extensions.itemsApi
Expand Down

0 comments on commit 1ed6611

Please sign in to comment.