Git Product home page Git Product logo

kore's Introduction

Build App Translations

Kore - Kodi/XBMC remote for Android

GitHub repository for the Kore Android app.

Kore is the official remote for Kodi, and aims to be a simple and easy to use remote.

Building

  1. Make sure you have a working Android build system;
  2. The version of Android SDK and Build Tools needed is specified in app/build.gradle. Make sure you have them installed;
  3. Install the version of Android support library that is specified in app/gradle (dependencies section);
  4. Git pull
  5. Gradle should be able to fetch all the other needed libraries.

Testing

  1. Make sure you are able to build Kore as described in the previous section.
  2. To run the local tests see README
  3. To run the instrumented tests see README

We use GitHub Actions to automatically build and run the local tests for each pull request.

Using Docker

  1. Make sure you have a working Docker installation;
  2. Check out the repository
  3. Build the container image: docker build -t kore:latest .
  4. Start container: docker run -it -v $(pwd):/opt/kore kore:latest bash

For listing all tasks, run gradle tasks, for building the app, execute gradle assembleRelease. If you want to run tests, execute gradle testDebugUnitTest.

Credits

Libraries used

Links

License

Copyright 2022 XBMC Foundation

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Google Play and the Google Play logo are trademarks of Google Inc.

kore's People

Contributors

akc-kyiv avatar akshay2000 avatar b333z avatar cyber-atomus avatar doommortal avatar eco80 avatar eisnerd avatar izendegi avatar jaylinski avatar jenkins4kodi avatar jonas2515 avatar kevinminions avatar martijnkaijser avatar memphiz avatar monzee avatar mueller-ma avatar neohidra avatar parkmino avatar poisdeux avatar raafatakkad avatar softastur avatar ssaqua avatar syncedsynapse avatar thiefmaster avatar tomerf avatar upabjojr avatar wbarnard avatar weblate avatar yarons avatar zapata11 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kore's Issues

Incorrect power options

When connecting to my openelec machine I get the option "quit" while the option "reboot" is missing.
Quit isn't an option on openelec while reboot is. Not sure if the jsonrpc response for getting the options is correct or not. iirc it should only return the options that the htpc actually supports

File browsing takes forever when changing directories

When using the "File browser", it takes forever to change directories. It seems the deeper the directory structure is, the longer it takes. Also, there is no kind of progress indicator, which can be confusing on long delays. (I just tested "Music". "Videos" and "Pictures" might be affected also.)

crash on startup after kodi upgrade

I'm using Kore 1.2.1 from f-droid. After I upgraded kodi to 15.0-ALPHA2 Git:2c6d5a8, kore crashes on startup with:

I/Timeline( 2658): Timeline: Activity_launch_request id:org.xbmc.kore time:87036639
I/ActivityManager( 2290): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.xbmc.kore/.ui.RemoteActivity bnds=[190,902][360,1115]} from pid 2658
V/Zygote  (10640): Switching descriptor 32 to /dev/null
V/Zygote  (10640): Switching descriptor 9 to /dev/null
I/ActivityManager( 2290): Start proc org.xbmc.kore for activity org.xbmc.kore/.ui.RemoteActivity: pid=10640 uid=10172 gids={50172, 3003, 1028, 1015}
D/ActivityThread(10640): handleBindApplication:org.xbmc.kore
D/ActivityThread(10640): setTargetHeapUtilization:0.75
D/ActivityThread(10640): setTargetHeapMinFree:2097152
I/dalvikvm(10640): Could not find method android.view.ViewAnimationUtils.createCircularReveal, referenced from method org.xbmc.kore.utils.UIUtils.switchToRemoteWithAnimation
W/dalvikvm(10640): VFY: unable to resolve static method 7578: Landroid/view/ViewAnimationUtils;.createCircularReveal (Landroid/view/View;IIFF)Landroid/animation/Animator;
D/dalvikvm(10640): VFY: replacing opcode 0x71 at 0x001b
D/libEGL  (10640): loaded /system/lib/egl/libEGL_mali.so
D/libEGL  (10640): loaded /system/lib/egl/libGLESv1_CM_mali.so
D/libEGL  (10640): loaded /system/lib/egl/libGLESv2_mali.so
E/        (10640): Device driver API match
E/        (10640): Device driver API version: 23
E/        (10640): User space API version: 23 
E/        (10640): mali: REVISION=Linux-r3p2-01rel3 BUILD_DATE=Fri Mar 21 13:52:50 KST 2014 
D/OpenGLRenderer(10640): Enabling debug mode 0
I/HK/LatinKeyboardBaseView( 2572): closing org.pocketworkstation.pckeyboard.LatinKeyboardView{41dd5988 V.ED.... ......ID 0,0-720,320 #1020026 android:id/keyboardView}
I/ActivityManager( 2290): Displayed org.xbmc.kore/.ui.RemoteActivity: +725ms
I/Timeline( 2290): Timeline: Activity_windows_visible id: ActivityRecord{41fa4cd8 u0 org.xbmc.kore/.ui.RemoteActivity t165} time:87037463
I/Timeline(10640): Timeline: Activity_idle id: android.os.BinderProxy@421cae98 time:87037502
E/rsC++   ( 2658): RS Message thread exiting.
W/dalvikvm(10640): threadid=12: thread exiting with uncaught exception (group=0x41935ce0)
E/AndroidRuntime(10640): FATAL EXCEPTION: Thread-3441
E/AndroidRuntime(10640): Process: org.xbmc.kore, PID: 10640
E/AndroidRuntime(10640): java.lang.ClassCastException: com.fasterxml.jackson.databind.node.TextNode cannot be cast to com.fasterxml.jackson.databind.node.ArrayNode
E/AndroidRuntime(10640):    at org.xbmc.kore.jsonrpc.type.VideoType$Cast.castListFromJsonNode(VideoType.java:60)
E/AndroidRuntime(10640):    at org.xbmc.kore.jsonrpc.type.ListType$ItemBase.<init>(ListType.java:221)
E/AndroidRuntime(10640):    at org.xbmc.kore.jsonrpc.type.ListType$ItemsAll.<init>(ListType.java:303)
E/AndroidRuntime(10640):    at org.xbmc.kore.jsonrpc.method.Player$GetItem.resultFromJson(Player.java:88)
E/AndroidRuntime(10640):    at org.xbmc.kore.jsonrpc.method.Player$GetItem.resultFromJson(Player.java:68)
E/AndroidRuntime(10640):    at org.xbmc.kore.jsonrpc.HostConnection.handleTcpResponse(HostConnection.java:729)
E/AndroidRuntime(10640):    at org.xbmc.kore.jsonrpc.HostConnection.access$400(HostConnection.java:49)
E/AndroidRuntime(10640):    at org.xbmc.kore.jsonrpc.HostConnection$7.run(HostConnection.java:583)
E/AndroidRuntime(10640):    at java.lang.Thread.run(Thread.java:841)
W/ActivityManager( 2290):   Force finishing activity org.xbmc.kore/.ui.RemoteActivity
E/        ( 2658): Device driver API match
E/        ( 2658): Device driver API version: 23
E/        ( 2658): User space API version: 23 
E/        ( 2658): mali: REVISION=Linux-r3p2-01rel3 BUILD_DATE=Fri Mar 21 13:52:50 KST 2014 
V/RenderScript( 2658): 0x609e14d0 Launching thread(s), CPUs 3
I/Timeline( 2658): Timeline: Activity_idle id: android.os.BinderProxy@41d90f68 time:87037934
I/Timeline( 2290): Timeline: Activity_windows_visible id: ActivityRecord{41d81f40 u0 com.teslacoilsw.launcher/com.android.launcher2.Launcher t1} time:87038343

beta releases for f-droid

If there are more people not using google play, it might be worth to create beta-release tags here on github whenever possible, so f-droid creates a beta release.
In terms of "release early, release often", people could profit from bugfixes quickly. Also, f-droid handles skipping beta releases quite well for users who want stable releases only.

Distribution on F-Droid

Since there are quite a few devices without Google Play (either because Amazon and Friends or willingly), F-Droid would be a good place to distribute the app for everyone else. https://f-droid.org/

Support for songs without an album in Music

First of all, thanks for a great app!

What I'm currently missing is support for songs in Music. Right now, I can browse artists, albums and genres. Artists and genres are essentially filters on albums – touching one will show me all albums by that artist or of that genre. Touching an album will just show me the album (again) and give me the option to play the whole album. There's no way to see the names of the individual songs, or add just one song from an album to the playlist (other than by adding the whole album and then examining the playlist). Songs that don't have album info are apparently inaccessible from Kore.

I'd like to be able to:

  • See and select individual songs by an artist (including those which are not on any album)
  • See and select individual songs of a particular genre, or all artists of a particular genre
  • Search for songs by name

Maybe this could be solved with a two-level filter concept:

  • Swiping to Artists, Albums or Genres and touching an item will add that item to a filter. The selection is displayed in the navigation bar and the hamburger icon changes to a backward arrow (touching it will remove the filter).
  • Users can then swipe between the same pages, but only items matching the filter will be displayed (rather than the entire library).
  • Touching another item with the filter active will bring up the list of songs that match both criteria (filter and item touched after that). Users can then either touch the "Play" buttom at the bottom to add all songs to the playlist, or touch individual songs to add them to the playlist. (Maybe include a play button in the card for each song to make the action clearer.)

[Feature Request] playlist : add currently playing item indicator + jump to currently playing item

Hi,
First of all, thanks for this great new Kodi remote :)

Could you consider adding a currently playing indicator on the currently playing item in the playlist (right of the remote). Right now, I can see anything (on 1.1.0) to tell me what is the item being played, so I have to swipe backwards and forwards between the remote and the playlist.
I guess a simple change in background colour or a halo effect would be nice. I simple “play” symbol might not be enough though.

Also, I was half-expecting the playlist to be already jumped to the currently playing song, rather than just show the first items of the list, when one is halfway through the list, for instance.
Maybe that could be an option, as it's possible not everyone wants to jump to currently playing song/item.

Thanks!

Using the remote arrows to skip forward/backwards

Hey,

Thanks for writing this app. It's significantly better than the rest and it's open source. Good work there. I have one suggestion though:

In the official xbmc remote app (the old unmaintained one), using the left/right arrow keys on the remote skips 30 seconds and the up/down 10 minutes. This is very useful for quickly skipping to a location in a film. Using fast forward is just not as good.

Thanks.

[feature request] TV & EPG Support

Kore is an awesome controller for Kodi, thanks to all contributors for their efforts!
It would be nice, if TV (with EPG) would also be supported among Music, TV Series, Music and Applications.

Download only creates empty folder

I am using Version 1.2.1 from F-Droid. Remote controlling my RaspBMC works fine.

However, when I try to download music (either by pressing the download button on the album screen or by selecting the corresponding context menu item of a track), Kore only generates the artist and album folder, but does not actually download the track files.

[feature request] Full control of add-ons

Hi,

Ok, first of all, I realise this is likely to require a large amount of work, but I think it would be a very neat enhancement.
Instead of simply showing installed add-ons and taking you to the add-on's screen, it would be great if we could actually control the add-on from Kore.

The main problem I see is that there is no standardisation of how add-ons work and what they do. One solution could be to get add-ons to come with a mapping of their (main?) functions, which could be used by Kore to build the menus and send the events/requests.

As Kore is now the official Kodi remote, this might give us enough weight to suggest that add-ons need to now include this description which could be used to control them. That should probably be discussed with the main Kodi team.

As an example, here is an actual use case. I use the DI.fm app a fair bit, it's pretty simple: open add-on, add-on loads list of DI radios, I click radio, music magically appears.
This same could be done on Kore (go to add-ons, DI, see list of radio, select radio) avoiding having to turn the TV on just to listen to music.

Another use case is adding items to the playlist (say Vimeo or Youtube videos) while a video is already playing and thus using up the main display.

Anyway, I'd be interested in discussing this enhancement and your opinion on how feasible it is.

Cheers

axel

Interface: playlist view requires tiny fingers to click item's context menu

Hi there,
The playlist items have a three-dot context menu one can tap to remove them.

The zone with the three dots is so small, I often tap on the item itself which starts playing it.

My guests are usually only amused the first or two first times, after which they ask me to stop changing the music all the goddamn time.

A bigger zone to tap the three-dot context menu would help :)

Thanks!

Remote on profile selection menu

I have multiple profile on kodi and it start on profile screen selection, but the app doesn't work until I open one of the profiles.

File browser shows wrong directory names

It seems as if some directories are named like the scraper result of a file inside that directory.

I have this directory structure:

  • 60s
    • foo.mp3
  • 70s
    • bar.mp3
  • 80s
    • baz.mp3
  • 90s

Kore displays the directory like this:

60s
Bar - The Bar Song
80s
90s

Cannot distinguish long track titles

Track titles like
Suite No. 1 in F major, HWV 348 "Water Music": IV. Andante - Allegro and
Suite No. 1 in F major, HWV 348 "Water Music": V. Passepied
are both displayed as Suite No. 1 in F major, H... and therefore indistinguishable.

I suggest removing the middle instead, to get
Suite No. 1...te - Allegro and Suite No. 1...V. Passepied.

Now playing notification persists on Kore removal from recent apps.

Thank you for taking the time to comprehensively reply to #31. I don't have rights to reopen the issue so creating this to comment, hope that's okay.

The notification behaves exactly as you described in #31 except:

removing it from the recent apps, shouldn't affect the notification.

Is what I meant by 'Kore closed' (apologies for confusing the terminology).

When Kore is removed from recent apps (the card is swiped away) the notification no longer updates or responds to changes in what is now playing as described in your response and does not disappear until a) some unspecified time later (which I assumed was an OS reap?) or b) Kore is re-opened.

It's as though it 'freezes' in the last state Kore knew about before it was removed from recent apps.

[feature request] optionally disable fullscreen, shutdown, etc.

While it is nice to be able to control this from the menu, it would be awesome if it could be disabled in the preference since it can somewhat ruin the experience for some users who only use kodi in fullscreen mode or don't hibernate/turn off the server. (To be exact: it's a hassle when the server is accidently shutdown by unexperienced users, like kids) ;)

Share links to Kore

I'd like to be able to share a link, I.e. from YouTube, and have Kore pass it on to kodi.

Just resync single artist if AlbumListFragment is targeted to a single artist

Changes to the sync look to be working well, while testing I found an issue in the on the AlbumListFragment, in that when it is targeted at a single artist and you swipe an onRefresh() it will resync the entire music collection again.

So would be great to add an artistId == -1 ? syncAllMusic() : syncSingleArtist(artistId) in the AlbumListFragment.onRefresh()

Feature request: long-press menu to mark items as watched

I'm currently adding a lot of old, already watched TV series to my Kodi database which are showing up as unwatched in the first place and are to be marked as watched then.

At the moment I have two ways to mark them as seen: in Kore I can open the episode view and tick the "mark as watched" button and go back to the episodes list and repeat that for every single episode or I can use the control arrow key to navigate through the database on the screen and mark there episodes or whole seasons/series as watched. Both ways are quite annoying, the former because it's a lot of going back and forth between different lists and views, the latter because working on the screen with the mobile phone as remote control requires constant switching between looking on the screen and on the phone.

To make like easier it would be great to have a long-press context menu to mark an item as watched without having to enter the info page of every single item or having to navigate through the screen menus.

[Feature Request] Swipe through episode details.

As a user, I would find it useful to, once in the details screen for a TV Show episode, swipe left or right to navigate to other episode details for lower and higher episode numbers without having to back out of the episode details screen to the TV show seasons screen and enter the next lowest or highest episode.

Make it easier to jump to a certain position from the progress bar

Even for short-ish things like TV shows (40 min) it's quite a hassle to seek to a certain position somewhat accurately (and with that I mean 15s precision).

I'm not sure what the best UI for this is, but some quick ideas:

  • When dragging, use 5% steps initially (that's 2 minute steps for a tv show, 6 minute steps for a movie). As soon as you stop moving the slider (while still touching the screen), switch to a second one that has high precision (10s maybe? I don't think anyone needs anything lower), but only for the previously selected window (+-1min for a 40m file, +-3min for a 2h file)
  • Make the current playback position touchable. Doing so would open an input window where you can enter the position you want to seek to

Feature: Stream music to Kore

I would like to be able to switch the music output to my mobile Kore device, without doing the download-files/switch-to-music-player-app-for-listening/delete-files cycle manually over and over again.

Now playing notification persists on Kore shutdown.

If Kore is closed whilst the now playing notification is displayed, the now playing notification persists (i.e. it doesn't go away). The notification no longer updates with the current item being played on Kodi and only disappears when either reaped by Android or Kore is restarted and a new item played.

Expected behaviour (from a user perspective), notification closes with Kore.

Devices tested: HTC M8 & Nexus 7

[Feature Request] Visual volume indicator

As a user, it would be useful for me to have a visual indicator in Kore of the volume level in Kodi on volume change.

Use case, I often play / queue music using Kore as a control whilst I have the Kodi screen off (sometimes from the next room). An indicator of Kodi volume in Kore would act as visual feedback that changing the volume (via icon or hardware keys) was having an effect.

Personal preference, a slider overlay of some kind which is only displayed for a few seconds on volume change but which could also be directly manipulated by touch.

Access to context menus

If possible, it would be awesome if the context menus of currently selected elements (right click with mouse) could be displayed. Maybe either "info" or "menu" in the remote control could be used for that, without breaking consistency?

Add option to disable lockscreen while remote is active

Another useful feature from the old xbmc remote. While watching a movie it's quite annoying to unlock the phone using the lockscreen pattern (or whatever is used) just to access the remote.

For extra security I'd suggest to automatically re-enable the lockscreen once playback stops, so if you e.g. fall asleep while watching a movie your phone is only unlocked until it finished.

[Feature] Connect via NBNS (netbios hostname) instead of IP

Tried on Windows 8.1(Kodi) using Android 5.0(Kore) on same network, connection via IP is working, not working using Kodi-PC's hostname (netbios). (Using a simple router with no DNS functionalities, only via netbios broadcasting)

Thanks for reading.

Remote - missing "Title" button

Hey,

On the XBMC remote (the obsolete open source one), there's a button called "Title" that let's you get into extra menus and is useful. A good example is to go from the main kodi screen to:
Videos -> Files
You now need the "Title" button in order to expose the extra menu that will let you rescan content and etc. Kore has "Codec" instead of the "Title" button, which does nothing in this case.

Thanks.

[Feature request] Browse files directly

I would like to be able to browse and play the media files in the various sources directly without needing to add them to the Video or Music Library within the Kodi installation first.

Feature: Easily switch audio output device

Yatse has got a menu item to switch audio output between HDMI and analogue. I need this quite often, so I'd prefer not having to dig into Kodi's system settings each time.

Interface: switching from remote back to media browser should take you back to last artist/album/etc.

Situation:

  • Pull media browser from the left of the screen, browse the music library to an artist, an album, start playing the album.
  • Press the remote icon in the top left, to see current playing playlist and control it.
  • Pull media browser and go to the music library again to add more items to playlist, you are back at the first item of your music library list.

Expected result:

  • Pulling the media browser and going to the music library takes you back to last viewed artist/album.

If you have a large music library, you have to go back to the artist you were browsing if you want to add another album by the same artist.
Sure, you could several albums before switching to the remote, but one would expect to be taken back to the last browsed media item (album, artist) as that what Kodi does.

Small issue, but it would be nicer to use :)

Thanks!

[Feature Request] Stop button on control buttons panel needed

In the current release, the panel with the control buttons (center panel) only has back, pause and forward butons. It would be useful to have a stop button there to avoid having to switch back and forth between left and center panels (tested on an Android tablet only).

The common use case is flipping through a list of items by playing them briefly before stopping and switching to the next using arrow keys. Now it requires going to left panel, swiping up to get the play buttons and pressing stop and coming back to center panel to use the arrow button to get to the next item in the list.

Hope I have not missed something in posting the above.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.