Call history listener for Kodi (closes #798)
If Kore (the Kodi App) was sucessfully started the history listener is invoked.
This commit is contained in:
parent
7340bc05b4
commit
6f18dd26a2
4 changed files with 19 additions and 6 deletions
|
@ -27,6 +27,7 @@ import android.os.Handler;
|
|||
import android.os.Looper;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
@ -309,7 +310,7 @@ public class MainActivity extends AppCompatActivity implements HistoryListener {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onVideoPlayed(StreamInfo streamInfo, VideoStream videoStream) {
|
||||
public void onVideoPlayed(StreamInfo streamInfo, @Nullable VideoStream videoStream) {
|
||||
addWatchHistoryEntry(streamInfo);
|
||||
}
|
||||
|
||||
|
|
|
@ -560,7 +560,10 @@ public class VideoDetailFragment extends BaseStateFragment<StreamInfo> implement
|
|||
@Override
|
||||
public void onActionSelected(int selectedStreamId) {
|
||||
try {
|
||||
NavigationHelper.startKore(activity, Uri.parse(info.url.replace("https", "http")));
|
||||
NavigationHelper.playWithKore(activity, Uri.parse(info.url.replace("https", "http")));
|
||||
if(activity instanceof HistoryListener) {
|
||||
((HistoryListener) activity).onVideoPlayed(info, null);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if(DEBUG) Log.i(TAG, "Failed to start kore", e);
|
||||
showInstallKoreDialog(activity);
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package org.schabi.newpipe.history;
|
||||
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import org.schabi.newpipe.extractor.stream.AudioStream;
|
||||
import org.schabi.newpipe.extractor.stream.StreamInfo;
|
||||
import org.schabi.newpipe.extractor.stream.VideoStream;
|
||||
|
@ -9,9 +11,10 @@ public interface HistoryListener {
|
|||
* Called when a video is played
|
||||
*
|
||||
* @param streamInfo the stream info
|
||||
* @param videoStream the video stream that is played
|
||||
* @param videoStream the video stream that is played. Can be null if it's not sure what
|
||||
* quality was viewed (e.g. with Kodi).
|
||||
*/
|
||||
void onVideoPlayed(StreamInfo streamInfo, VideoStream videoStream);
|
||||
void onVideoPlayed(StreamInfo streamInfo, @Nullable VideoStream videoStream);
|
||||
|
||||
/**
|
||||
* Called when the audio is played in the background
|
||||
|
|
|
@ -342,10 +342,16 @@ public class NavigationHelper {
|
|||
|
||||
/**
|
||||
* Start Kore app to show a video on Kodi
|
||||
*
|
||||
* For a list of supported urls see the
|
||||
* <a href="https://github.com/xbmc/Kore/blob/master/app/src/main/AndroidManifest.xml">
|
||||
* Kore source code
|
||||
* </a>.
|
||||
*
|
||||
* @param context the context to use
|
||||
* @param videoURL the url to the video stream
|
||||
* @param videoURL the url to the video
|
||||
*/
|
||||
public static void startKore(Context context, Uri videoURL) {
|
||||
public static void playWithKore(Context context, Uri videoURL) {
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setPackage(context.getString(R.string.kore_package));
|
||||
intent.setData(videoURL);
|
||||
|
|
Loading…
Reference in a new issue