Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc-android
  • thresh/vlc-android
  • Dekans/vlc-android
  • robUx4/vlc-android
  • tguillem/vlc-android
  • Corbax/vlc-android
  • judeosby/vlc-android
  • chouquette/vlc-android
  • washingtonmurphy93/vlc-android
  • wipawanbeadklang540/vlc-android
  • xcorail/vlc-android
  • Aza/vlc-android
  • Skantes/vlc-android
  • filipjares/vlc-android
  • kazemihabib/vlc-android
  • amq10x/vlc-android
  • qadrian370/vlc-android
  • shivanshs9/vlc-android
  • vitaliyg2/vlc-android
  • orgads/vlc-android
  • rom1v/vlc-android
  • evidence/vlc-android
  • lk888/vlc-android
  • Klaus81/vlc-android
  • EwoutH/vlc-android
  • XilasZ/vlc-android
  • pawelpablo1975/vlc-android
  • uae2ae/vlc-android
  • Garf/vlc-android
  • abetatsunori7/vlc-android
  • ePirat/vlc-android
  • magsoft/vlc-android
  • quink/vlc-android
  • Ektos974/vlc-android
  • CymGen30/vlc-android
  • b1ue/vlc-android
  • alessiavalenti8/vlc-android
  • bars27101982/vlc-android
  • billybanda18/vlc-android
  • dklvip/vlc-android
  • sherylynn/vlc-android
  • ramcoach5/vlc-android
  • takise/vlc-android
  • peibolovedie/vlc-android
  • AMHeijboer/vlc-android
  • dahburj/vlc-android
  • gobennyb/vlc-android
  • masripmasrip824/vlc-android
  • bubu/vlc-android
  • tmk907/vlc-android
  • gorbahaaa/vlc-android
  • govind3321/vlc-android
  • jamieboyer42818/vlc-android
  • mrtakilapop/vlc-android
  • kazikarter90/vlc-android
  • chunyie771/vlc-android
  • nop404/vlc-android
  • hcalzazperz/vlc-android
  • zagwojtek69/vlc-android
  • nikonnick24/vlc-android
  • gmohiuddin215/vlc-android
  • stheinthan31/vlc-android
  • rogelioloreto29/vlc-android
  • philippestcyr5/vlc-android
  • Happyheather20/vlc-android
  • jimbobmcgee/vlc-android
  • mohwie/vlc-android
  • HeartBeat1608/vlc-android
  • jahan/vlc-android
  • Kevo1987/vlc-android
  • rrangel3584/vlc-android
  • xfridrich/vlc-android
  • devswami23/vlc-android
  • Isira-Seneviratne/vlc-android
  • PartyPhone22/vlc-android
  • kmajeshkrishnan/vlc-android
  • ramirotorresjr/vlc-android
  • aaronsalas469/vlc-android
  • arnan.np31/vlc-android
  • hkosacki/vlc-android
  • mg0691872/vlc-android
  • louregni/vlc-android
  • ritmapp/vlc-android
  • diegofn/vlc-android
  • s-ayush2903/vlc-android
  • chrisbohn1984/vlc-android
  • alexandre-janniaux/vlc-android
  • optimumpr/vlc-android
  • chirag-jn/vlc-android
  • e9ab98e991ab/vlc-android
  • suvDev/vlc-android
  • killthelord/vlc-android
  • Phoenix/vlc-android
  • soriyallc/vlc-android
  • tda1009/vlc-android
  • rhstone/vlc-android
  • ltnokiago/vlc-android
  • elbrujo1987/vlc-android
  • m1s4k1/vlc-android
  • mdc/vlc-android
  • arnaudj/vlc-android
  • abhinavmarwaha/vlc-android
  • dali546/vlc-android
  • Jeffset/vlc-android
  • megan30/vlc-android
  • lizhengdao/vlc-android
  • YajTPG/vlc-android
  • halcyon/vlc-android
  • ilya.yanok/vlc-android
  • jeramydhallmon/vlc-android
  • tijoemecano77/vlc-android
  • cjcj125125/vlc-android
  • dejan2609/vlc-android
  • JATIN2111999/vlc-android
  • imrohitkumar/vlc-android
  • sagudev/vlc-android
  • ILoveLin/vlc-android
  • tfighiera/vlc-android
  • snehil101/vlc-android
  • MKornelsen/vlc-android
  • m/vlc-android
  • core1024/vlc-android
  • vadimdolgachev/vlc-android
  • Kk77539/vlc-android
  • linzj/vlc-android
  • dantalian-pv/vlc-android
  • admkhalid/vlc-android
  • yaron/vlc-android
  • kn21091974/vlc-android
  • mylove1302/vlc-android
  • roblav96/vlc-android
  • alabiaga/vlc-android
  • kmnaveen101/vlc-android
  • nikiforoff1407/vlc-android
  • Android-Jester/vlc-android
  • frieda.rtwski/vlc-android
  • glaciers7506/vlc-android
  • rahul-gill/vlc-android
  • gaoxugang/vlc-android
  • Rishavgupta12345/vlc-android
  • dinho991556460/vlc-android
  • lighterowl/vlc-android
  • mary-kate/vlc-android
  • adnank20216/vlc-android
  • anthonylgutierrez79/vlc-android
  • Heliottw/vlc-android
  • mu1zix.ft3/vlc-android
  • yvesmaltais1212/vlc-android
  • ereme/vlc-android
  • jhonypalomino829/vlc-android
  • mx1up/vlc-android
  • sjwaddy/vlc-android
  • MohitMandalia/vlc-android
  • temaershov/vlc-android
  • js6pak/vlc-android
  • mishikallu/vlc-android
  • irfanmumtaz008/vlc-android
  • smurfohrachie/vlc-android
  • Goooler/vlc-android
  • eldo203050/vlc-android
  • dejesuszeus99/vlc-android
  • mfkl/vlc-android
  • Samfun75/vlc-android
  • markg85/vlc-android-ipfs
  • doktamelek911/vlc-android
  • wikwity/vlc-android
  • aangelmaker/vlc-android
  • krawczykradek119/vlc-android
  • ylz18180813163/vlc-android
  • galaxy9sx3/vlc-android
  • huajie2020/vlc-android
  • XuanTung95/vlc-android
  • kl/vlc-android
  • melihyolcu83/vlc-android
  • rt1shnik/vlc-android
  • jerryboy307/vlc-android
  • ikeuzochukwu6/vlc-android
  • patrikgolis/vlc-android
  • Ismavv/vlc-android
  • clementosumo/vlc-android
  • joshlamp66/vlc-android
  • nkmoyonyathiericyounge/vlc-android
  • DanTm99/vlc-android
  • Jeffrow41/vlc-android
  • fromphfr/vlc-android
  • 16project/vlc-android
  • Tomas8874/vlc-android
  • fixxxer87/vlc-android
  • sanjay/vlc-android
  • franciscojrp/vlc-android
  • cashellauswaus23/vlc-android
  • hengwu0/vlc-android
  • naythu2020rain/vlc-android
  • TongtengInhole/vlc-android
  • pupdoggy666/vlc-android
  • jcj921013/vlc-android
  • Gc6026/vlc-android
  • crijojc/vlc-android
  • mdrewight/vlc-android
  • davidhaywood0782/vlc-android
  • jbschtt/vlc-android
  • macfarlandcamel/vlc-android
  • syazairi/vlc-android
  • Commander01/vlc-android
  • baileyterry014/vlc-android
  • rodrickfranklin38/vlc-android
  • diego1245hernb/vlc-android
  • anton.canada/vlc-android
  • egazaekb/vlc-android
  • Marissa111113/vlc-android
  • jeinerbruno2/vlc-android
  • wehnie13/vlc-android
  • ozill87/vlc-android
  • legionfso/vlc-android
  • anazahirajoel/vlc-android
  • naomirojas1227/vlc-android
  • xbao/vlc-android
  • antoni.kozubek/vlc-android
  • pajela8482/vlc-android
  • karlfandango55/vlc-android
  • ruanbester07/vlc-android
  • chigita73/vlc-android
  • giu.pat6/vlc-android
  • Aura/vlc-android
  • marcwabo/vlc-android
  • contact.adgrafix/vlc-android
  • exlaverdad/vlc-android
  • simon.marquis88/vlc-android
  • youngkinsamantha421/vlc-android
  • edgard1161/vlc-android
  • agzx77/vlc-android
  • ha7204993/vlc-android
  • alghazwani.jar.6090/vlc-android
  • zrowton1206/vlc-android
  • darek1979513/vlc-android
  • matthiaskett18198/vlc-android
  • kubadyr77/vlc-android
  • romanstudeny1982/vlc-android
  • kumar107375/vlc-android
  • schong0525/vlc-android
  • Kt/vlc-android
  • jovelyn.esconde125/vlc-android
  • corriemacbarnard/vlc-android
  • apisbg91/vlc-android
  • yyusea/vlc-android
  • protechq88/vlc-android
  • rmangaraman/vlc-android
  • soutomikel/vlc-android
  • goregladaleksej5/vlc-android
  • tao/vlc-android
  • aruiz595/vlc-android
  • horvathpeter1202/vlc-android
  • litteh82/vlc-android
  • kerriochoa96/vlc-android
  • skshemul2022/vlc-android
  • popy/vlc-android
  • mizadpanahdev/vlc-android
  • pinarim2035/vlc-android
  • davidgooch1127/vlc-android
  • NyanCatTW1/vlc-android
  • Pendynurcahyo/vlc-android
  • fcartegnie/vlc-android
  • xiaoxiao921/vlc-android
  • rjtoell/vlc-android
  • devanshu6445/vlc-android
  • DopeDo69/vlc-android
  • quimsical/vlc-android
  • nickita.koltsoff/vlc-android
  • zeestander8617/vlc-android
  • alexsonarin06/vlc-android
  • minh189999h/vlc-android
  • JonnycatMeow/vlc-android
  • pup.ragnarok.1984/vlc-android2
  • jlcalderon13/vlc-android
  • franciszekk51214/vlc-android
  • yinsheng996/vlc-android
  • KenN3RD/vlc-android
  • leogps/vlc-android
  • alicuteo0407/vlc-android
  • MessirVoland/vlc-android
  • brett2uk/vlc-android
  • thomas.hermes/vlc-android
  • dgyudin/vlc-android
  • anuoshemohammad/vlc-android
  • r7truong/vlc-android
  • aaa1115910/vlc-android
  • arunkennedy78/vlc-android
  • nicholaszarra0069/vlc-android
  • georgipetrovdochev/vlc-android
  • Nikhil-z/vlc-android
  • misb1033/vlc-android
  • ktcoooot1/vlc-android
  • manmuc5/vlc-android
  • ahwhatisinttaken/vlc-android
  • m.nozka90/vlc-android
  • kabeermuhammad124319/vlc-android
  • ANGELONCE/vlc-android
  • manstabuk/vlc-android
  • yajcoca/vlc-android
  • dreamscell83/vlc-android
  • oldsssteveo/vlc-android
  • c0ff330k/vlc-android
  • ZhangXinmin528/vlc-android
  • lacsimarnald09/vlc-android
  • boykaisaac758/vlc-android
  • ooseidesmond/vlc-android
  • andresbott/vlc-android
  • yolandawanttoplay/vlc-android
  • lapaz17/vlc-android
  • sillyearl0138/vlc-android
  • NF-Repo/vlc-android
  • aaasg4001/vlc-android
  • mongia.puneet/vlc-android
  • slablaykon/vlc-android
  • Shabgardtanha1111/vlc-android
  • Benjamin_Loison/vlc-android
  • ashishami2002/vlc-android
  • Niram7777/vlc-android
  • Yashraj254/vlc-android
  • Choucroute_melba/vlc-android
  • Soete/vlc-android
  • MangalK/vlc-android
  • mohak2003/vlc-android
  • advait-0/vlc-android
  • McLP/vlc-android
  • fhuber/vlc-android
326 results
Show changes
Commits on Source (11558)
Showing
with 2062 additions and 698 deletions
# VLC
/libvlcjni
/vlc/
/toolchains/
application/app/src/main/assets/
#medialibrary
medialibrary/medialibrary
medialibrary/sqlite*
medialibrary/libvlcpp
medialibrary/build
medialibrary/jni/obj
medialibrary/jni/libs
medialibrary/.libs
medialibrary/prefix
# Remote access
remoteaccess/**
# Android .so
/android-libs/**/*.so
......@@ -33,14 +50,28 @@ java-libs/appcompat/.project
# Android Studio
.idea
*.iml
captures/
#Qt Creator
*.config
*.creator
*.creator.user
*.files
*.includes
#gradle
gradle.properties
gradlew.bat
gradlew
gradle/wrapper/
gradle*/
.gradle/
build/
vlc-android/build/
java-libs/WheelView/build/
libVLC/build/
#medialibrary build
libvlc.pc
libvlc.pc.backup
libvlcpp.pc
lib/
/buildsystem/automation/certificates/
<!---
/!\ Read this first!/!\
This default template purpose is to be used to report a bug you found in VLC for Android.
To use a different template, select it from the "Description" drop-down above. If you're having trouble finding it, see https://code.videolan.org/videolan/vlc-android/-/wikis/Create-an-issue-and-use-a-template.
If you want to ask for a new feature, please use the "VLC for Android - Feature Request.md" template above.
If you're a libvlc java developer, please use the "libvlc - Bug" template.
If you just want to ask questions on how to use VLC for Android, please use our forum at https://forum.videolan.org/viewforum.php?f=35
Please note that any ticket not using a template may be closed without notice as it won't provide the necessary information.
-->
<!--- Provide a general summary of the issue in the Title above -->
## Description
<!--- Describe your bug in detail -->
#### Expected behavior
#### Actual behavior
#### Steps to reproduce
1.
2.
3.
#### Screenshot / video
<!--Add a screenshot or screencast when applicable-->
<!--To take a screenshot, see https://support.google.com/android/answer/9075928?hl=en-->
## Context
#### App version
<!--You can find it in the About screen of the app-->
#### Android version
#### Device model
#### App mode
<!--Remove the useless modes-->
**Smartphone**
**TV**
**Auto**
\ No newline at end of file
<!--- Provide a general summary of the issue in the Title above -->
## Description
<!--- Describe your bug in detail -->
#### Expected behavior
#### Actual behavior
#### Steps to reproduce
1.
2.
3.
#### Screenshot / video
<!--Add a screenshot or screencast when applicable-->
<!--To take a screenshot, see https://support.google.com/android/answer/9075928?hl=en-->
## Context
#### App version
<!--You can find it in the About screen of the app-->
#### Android version
#### Device model
#### App mode
<!--Remove the useless modes-->
**Smartphone**
**TV**
**Auto**
\ No newline at end of file
<!--- Provide a general summary of the request in the Title above -->
## Description
<!--- Describe your request in detail -->
#### Expected behavior
#### Screenshot / video
<!--Add a screenshot or screencast when applicable-->
<!--To take a screenshot, see https://support.google.com/android/answer/9075928?hl=en-->
#### App mode
<!--Remove the useless modes-->
**Smartphone**
**TV**
**Auto**
\ No newline at end of file
<!--- Provide a general summary of the issue in the Title above -->
## Description
<!--- Describe your bug in detail -->
#### Expected behavior
#### Actual behavior
#### Steps to reproduce
1.
2.
3.
#### Code you used
```Your code here```
#### Screenshot / video
<!--Add a screenshot or screencast when applicable-->
<!--To take a screenshot, see https://support.google.com/android/answer/9075928?hl=en-->
## Context
#### libvlc version
<!--You can find it in the About screen of the app-->
#### Android version
#### Device model
<!--- Provide a general summary of your changes in the Title above -->
## Description
<!--- Describe your changes in detail -->
## Motivation and Context
<!--- Why is this change required? What problem does it solve? -->
## How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->
## Screenshots / GIFs (if appropriate):
## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Enhancement (non-breaking change which cleans up / improves existing functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] I have read the **CONTRIBUTING** section of the [**README**](https://code.videolan.org/videolan/vlc-android/blob/master/README.md) document.
## Resolves
<!-- List the issues that will be closed by this PR in the following format -->
<!-- This will ensure that they are automatically closed once the PR is merged -->
<!--Remove unneeded lines-->
Fixes: #
Mention: #
\ No newline at end of file
extraction:
java:
before_index:
- export ANDROID_SDK=/opt/extra/android
- export ANDROID_NDK=/opt/extra/android
- export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools
- ./compile.sh --init
index:
build_command:
- ./gradlew assembleDebug
......@@ -7,3 +7,9 @@ Marián Hikaník <mhikanik@users.sourceforge.net> Marian Hikanik <podnety@mojepr
<etix@videolan.org> <etix@l0cal.com>
<funman@videolan.org> <rafael.carre@gmail.com>
<funman@videolan.org> <rafael.carre@savoirfairelinux.com>
<hugo@beauzee.fr> <beauze.h@gmail.com>
<hugo@beauzee.fr> <hugo@videolan.org>
<nicolas@videolabs.io> <nicolas.pomepuy@gmail.com>
<geoffrey.metais@gmail.com> <geoffrey@videolan.org>
<thomas@gllm.fr> <tom@gllm.fr>
<rom1v@videolabs.io> <rom@rom1v.com>
[main]
host = https://app.transifex.com
[o:yaron:p:vlc-trans:r:android]
file_filter = application/resources/src/main/res/values-<lang>/strings.xml
source_file = application/resources/src/main/res/values/strings.xml
type = ANDROID
minimum_perc = 50
resource_name = android
replace_edited_strings = false
keep_translations = false
lang_map = zh_CN: zh-rCN, zh_TW: zh-rTW, zgh: zgh-rMA, en_GB: en-rGB, es_MX: es-rMX, pt_BR: pt-rBR, pt_PT: pt
[o:yaron:p:vlc-trans:r:android_store]
file_filter = buildsystem/automation/framing/locale/<lang>.po
source_file = buildsystem/automation/framing/locale/en.po
type = PO
minimum_perc = 100
resource_name = android (Store screenshots)
replace_edited_strings = false
keep_translations = false
\ No newline at end of file
Changes between 3.6.1 and 3.6.2:
------------------
* Update the remote access dependency to fix a crash loop
* Fix a bug making the video played twice
Changes between 3.6.0 and 3.6.1:
------------------
* Behavior and crash fixes
Changes between 3.6.0 Beta 6 and 3.6.0:
------------------
* Improve the orientation user experience in the video player
* Behavior and crash fixes
Changes between 3.6.0 Beta 5 and 3.6.0 Beta 6:
------------------
* Fix the remote access not included in the app bundle
Changes between 3.6.0 Beta 4 and 3.6.0 Beta 5:
------------------
* Allow deleting files on TV
* Multiple remote access improvements
* Fix 360 videos
* Behavior and UI fixes
* Crash fixes
Changes between 3.6.0 Beta 3 and 3.6.0 Beta 4:
------------------
* Fix subtitles download
* Improve the permission management
* Allow renaming a playlist
* Fix some language issues
* Behavior and UI fixes
* Crash fixes
Changes between 3.6.0 Beta 2 and 3.6.0 Beta 3:
------------------
* Fix custom PiP
* UI fixes
* Crash fixes
Changes between 3.5.7 and 3.6.0 Beta 2:
------------------
* Remote access: take control of your VLC for Android from any device
* Favorite any media and filter your medialibrary content by favorite
* Video player: tap to fast play
* Warning for metered connections
* PiP improvements
* Audio player chapter navigation
* UI improvements
* Crash fixes
Changes between 3.5.6 and 3.5.7:
------------------
* Fix crash when downloading subtitles
Changes between 3.5.5 and 3.5.6:
------------------
* Fix crash on startup
Changes between 3.5.4 and 3.5.5:
------------------
* Target Android 34
* This release is empty. Its sole purpose is to unlock the Play Store releases
Changes between 3.5.4 Beta 2 and 3.5.4:
------------------
* Fix media controls not working after some time on Android 13
* Fix audio notification icon transparency
* Minor interface fixes
* Crash fixes
Changes between 3.5.4 Beta 1 and 3.5.4 Beta 2:
------------------
* Re-allow access to the media controls for third party apps
* Fix some Android Auto and Android TV behaviors
* Crash fixes
Changes between 3.5.3 and 3.5.4 Beta 1:
------------------
* Improve the video resolution text
* Fix opening from other apps
* Bluetooth fixes
Changes between 3.5.3 Beta 2 and 3.5.3:
------------------
* Fix permission check on Android 12
Changes between 3.5.3 Beta 1 and 3.5.3 Beta 2:
------------------
* Fix the video playlist mode on TV
* Minor graphical fixes and improvements
Changes between 3.5.2 and 3.5.3 Beta 1:
------------------
* More subtitle settings
* New notification permission
* Fix the sorting in the file browser
* Allow forcing shuffle for audio playbacks
* TV allow mixing folders and files
* Minor graphical fixes and improvements
* Crash fixes
Changes between 3.5.1 and 3.5.2:
------------------
* Fix UPnP/DLNA discovery
* Widget fixes and improvements
* Improve the history settings
* Improve the screenshot feature
* Minor graphical improvements
* Fix some playback issues
* Fix some thumbnail generation issues
* Crash fixes
Changes between 3.5.1 Beta 1 and 3.5.1:
------------------
* Fix UPnP/DLNA files listing
* Fix empty notification icons on Android 4
* Increase the video controls delay when hitting play
* Crash fixes
Changes between 3.5.0 and 3.5.1 Beta 1:
------------------
* Take a screenshot of your video
* Widgets improvements
* UPnP client fixes
* Playback fixes
* UI fixes
* Crash fixes
Changes between 3.5.0 RC 1 and 3.5.0:
------------------
* Improve the layout for foldable devices
* Fix some sorting issues
* Improve the PiP permission management
* UI fixes
* Android Auto improvements
* Some SMB fixes
* Crash fixes
Changes between 3.5.0 Beta 7 and 3.5.0 RC 1:
------------------
* Greatly improve the accessibility
* Improve the first app launch
* Improve the File browser
* Material You icon
* Some UI fixes
* Improve the video player performances
* Crash fixes
Changes between 3.5.0 Beta 6 and 3.5.0 Beta 7:
------------------
* Crash fixes
Changes between 3.5.0 Beta 5 and 3.5.0 Beta 6:
------------------
* New widgets. Now fully customizable!
* New album details screen
* Video player performance improvements
* Improve and fix media progress saving
* Minor UI fixes and improvements
* Crash fixes
Changes between 3.5.0 Beta 4 and 3.5.0 Beta 5:
------------------
* UI improvements
* Crash fixes
* Codebase cleanups
Changes between 3.5.0 Beta 3 and 3.5.0 Beta 4:
------------------
* Foldable devices support for the video player
* New option to add a media shortcut to the launcher
* Browse playlists on Android TV
* Allow picking files from SAF when no permission is granted
* New setting for replay gain
* Support for vgm files added
* History fixes for streams
* UI improvements
* Crash fixes
Changes between 3.5.0 Beta 2 and 3.5.0 Beta 3:
------------------
* Ui and media library fixes
Changes between 3.5.0 Beta 1 and 3.5.0 Beta 2:
------------------
* Playlist can now be searched
* Prevent losing progress on app crash
* Graphical fixes
* Crash fixes
Changes between 3.4.4 and 3.5.0 Beta 1:
------------------
* Network indexation is now stable
* New dedicated tablet UI
* New video controls settings screen allowing more customization
* Revamped about screen and audio list
* Small visual improvements in the audio player
* Improved video ratio and notch management
* Improved keyboard shortcuts support
* A lot of visual and behavior fixes
Changes between 3.4.3 and 3.4.4:
------------------
* Fix a crash on null medias
Changes between 3.4.3 Beta 6 and 3.4.3:
------------------
* Fix some rare crashes on the Sony Bravia devices
* Other crash fixes
Changes between 3.4.3 Beta 5 and 3.4.3 Beta 6:
------------------
* Fix the grid/list button state
* Crash fixes
Changes between 3.4.3 Beta 4 and 3.4.3 Beta 5:
------------------
* Fix the subtitles not working on some Android 12 devices
* Fix some graphical issues
* Crash fixes
Changes between 3.4.3 Beta 3 and 3.4.3 Beta 4:
------------------
* Remove donations
Changes between 3.4.3 Beta 2 and 3.4.3 Beta 3:
------------------
* Use the new file permission
* Crash fixes
Changes between 3.4.3 Beta 1 and 3.4.3 Beta 2:
------------------
* Translation update
* Crash fixes
Changes between 3.4.2 and 3.4.3 Beta 1:
------------------
* Crash fixes
Changes between 3.4.1 and 3.4.2:
------------------
* Fix loading of media when opening the app
* Crash fixes
Changes between 3.4.0 Beta 3 and 3.4.1:
------------------
* Playback fix for TV
Changes between 3.4.0 Beta 2 and 3.4.1 Beta 3:
------------------
* Playback fixes
* Crash fixes
Changes between 3.4.0 Beta 1 and 3.4.1 Beta 2:
------------------
* Crash fixes
Changes between 3.4.0 and 3.4.1 Beta 1:
------------------
* Android auto: better covers
* Android auto: +/- 10 seconds quick seek
* Crash fixes
Changes between 3.4.0 RC 2 and 3.4.0:
------------------
* UI fixes
Changes between 3.4.0 Beta 6 and 3.4.0 RC 1:
------------------
* Better media seeking
* Bug and crash fixes
Changes between 3.4.0 Beta 5 and 3.4.0 Beta 6:
------------------
* Allow seeing the tips again
* Bug and crash fixes
Changes between 3.4.0 Beta 4 and 3.4.0 Beta 5:
------------------
* Shuffle mode improved
* Bug and crash fixes
Changes between 3.4.0 Beta 3 and 3.4.0 Beta 4:
------------------
* Improve the audio player design
* Improve the player tips
* Bug and crash fixes
Changes between 3.4.0 Beta 2 and 3.4.0 Beta 3:
------------------
* Bug fixes
Changes between 3.4.0 Beta 1 and 3.4.0 Beta 2:
------------------
* New onboarding
* Allow using the app without the storage permission
* medialibrary and playback improvements
Changes between 3.3.4 and 3.4.0 Beta 1:
------------------
* Add bookmarks in your medias
* New audio player design
* New video list design
* Network and playback improvements
* A lot of bug fixes and improvements
Changes between 3.3.4 Beta 1 and 3.3.4:
------------------
* Allow sorting albums by artist
* Improve chromecast
* Fix Video track options focus
Changes between 3.3.3 and 3.3.4 Beta 1:
------------------
* Fix some RTL issues
* Improve playback resume
* Persist audio player time mode
* Crash fixes
Changes between 3.3.3 Beta 4 and 3.3.3:
------------------
* Fix scrolling issues
* Fix media not updated during a scan
* Fix the action button visibility
* Improve descriptions for Android Auto and streams
* Crash fixes
Changes between 3.3.3 Beta 3 and 3.3.3 Beta 4:
------------------
* Global audio delay for videos
* Addition of an option to browse the folder of a media
* TV : improve DPAD input in video player
* Improve descriptions for Android Auto and streams
* Fix default orientation for videos
* Allow favorites for UPNP servers
* A lot of UI fixes
* Crash fixes
Changes between 3.3.2 and 3.3.3 Beta 3:
------------------
* Remove a single media from history
* Android TV: fixes and improvements
* Fix audio thumbnails detection
* Fix DVD menu
* Update medialibrary
* Crash fixes
Changes between 3.3.2 Beta 4 and 3.3.2:
------------------
none
Changes between 3.3.2 Beta 3 and 3.3.2 Beta 4:
------------------
Application:
* SMB fixes
* Crash fixes
Changes between 3.3.2 Beta 2 and 3.3.2 Beta 3:
------------------
Application:
* Android Auto new navigation
* Samba network fixes
* Video group improvements
* Fix playlist items remove
* Crash fixes
Changes between 3.3.2 Beta 1 and 3.3.2 Beta 2:
------------------
Application:
* Video player: fix focus issue
* Video group improvements
* SMB fixes
* Android Auto improvements
* Fix picking subtitles for network videos
* Fix OTG
* Crash fixes
Changes between 3.3.1 and 3.3.2 Beta 1:
------------------
Application:
* Allow adding multiple videos to a new group
* SMB fixes
* Fix landscape video orientation
* Fix progression save
* Fix subtitles picking on SD cards
* Android Auto improvements and fixes
* Crash fixes
Changes between 3.3.1 Beta 2 and 3.3.1:
------------------
Application:
* Crash fixes
Changes between 3.3.1 Beta 1 and 3.3.1 Beta 2:
------------------
Application:
* Crash fixes
Changes between 3.3.0 and 3.3.1 Beta 1:
------------------
Application:
* Video: mark as played
* Audio: chapter selection for audio books
* TV: improve PiP behavior
* Video player: increase icons' size
* Thumbnails: fix quality issue
* Crash fixes
Changes between 3.3.0-RC4 and 3.3.0:
------------------
Application:
* Fix streaming issues
* Bug fixes
Changes between 3.3.0-RC3 and 3.3.0-RC4:
------------------
Application:
* Prevent unwanted notifications
* Fix some streams not playing
* Fix midi not considered as audio media
* Some UI fixes
Changes between 3.3.0-beta-07 and 3.3.0-RC1:
------------------
Application:
* Sponsorship added. You can now support VLC Android!
* New UI for subtitles download
* New UI for subtitles picker
Changes between 3.3.0-beta-06 and 3.3.0-beta-07:
------------------
Application:
* New Video Player UI
* UI fixes in the file browser
* Crash fixes
Changes between 3.3.0-beta-04 and 3.3.0-beta-05:
------------------
Application:
* Behavior improvements
* Crash fixes
Changes between 3.3.0-beta-01 and 3.3.0-beta-02:
------------------
Application:
* A lot of fixes
Changes between 3.2 and 3.3.0-beta-01:
------------------
Application:
* Major Ui redesign
* Share a video
* Video stats
Changes between 3.1.7 and 3.2.0-beta-01:
------------------
Application:
* UI redesign, including player and TV browsers
* ViewModel layer refactoring
* Subtitles are now saved in the media folder when possible
Changes between 3.1.0-RC1 and 3.1.0-RC2:
------------------
Application:
* Retain current renderer object
* Disconnect from renderer on app going background (if not playing)
* Minor bugfixes
TV:
* Improve Homescreen channel
Changes between 3.0.99 and 3.1.0-RC1:
------------------
Application:
* Improved onboarding screen
* Handle UI Mode change in video player
* History now displays covers/thumbs
* Fix playback of streams with '?' in url
* Various crash fixes
Changes between 3.0.98 and 3.0.99:
------------------
Application:
* Onboarding screen for new users
* Add a sticky header during audio lists scroll
* Fix albums/artists/genre not updated durint scan
* Fix Subtitles download requests not sent
* 'Save playback rate' option is now OFF by default
* Crashs fixes
Changes between 3.0.97 and 3.0.98:
------------------
Application:
* Restoration of old (but improved) fastscroller
* External storages support on Chromebooks (ChromeOS v72+)
* Improve file browsing
* Fix subtitles not loaded from network
* Improve media tracks menu in video player
* Pause video on screen lock
* Improve loading of big playlists/collections
* update translations
TV:
* 'Play all' media is now the default behavior
* Improve file browsing
VLC:
* Improve SMB2 authentication support
* Fix audio passthrough on Android 6
Changes between 3.0.96 and 3.0.97:
------------------
Application:
* Remote control is not the default mode in video player anymore
* Ask confirmation to set a track as ringtone
* Don't stop playback in multitask when screencasting
* Fix subs behind loaded despite user preference
* Fix sorting sometimes reverted back to default
* Translations update
* Various minor display improvements
* Fix misc. crashes & ANR
TV:
* Fix folders/files sorting
Changes between 3.0.95 and 3.0.96:
------------------
Application:
* Disable R8
* Allow clear text traffic
* Use LiveData instead of binding to PlaybackService
* Compact audio lists on small screens
* Fix video player crash on Chromebooks
* Fix files name display on UPnP shares
Changes between 3.0.94 and 3.0.95:
------------------
Application:
* Fix behavior while Chromecasting
* Fix subs not automatically loaded
* Open VLC app from widget
* Free more space on screen while scrolling
* Various bug fixes
VLC:
* Fix Chromecast support on updated devices
* Update youtube script
Changes between 3.0.93 and 3.0.94:
------------------
Application:
* Fix persisting playback icon
* Improve app startup
* Bugfixes
Changes between 3.0.92 and 3.0.93:
------------------
Application:
* Option to group videos by folders
* SMB 2/3 support
* Add a preference to disable Casting
* Option to not show video title during transitions
* Play artists tracks sorted by correct album order
* Bugfixes
Changes between 3.0.91 and 3.0.92:
------------------
Application:
- bugfixes
- Reduce progress bars in video list cards
- Set players progress bars LTR (#690)
- Preserve search on rotation
Changes between 3.0.13 and 3.0.90:
------------------
Application:
* minSDK is now 17 (Android 4.2)
* Medialibrary scan is now optional
* Launcher shortcuts
* OTG devices support in file browser
* Favorites in local file browser
* Refactored subtitles downloader
* A-B repeat
* Manual orientation lock in video player
* Playback notification now persists after service is removed by Android
* Android Auto is back
* Sorting preferences are now saved
* Breadcrumb is browsers
* Use start-time to resume a media, loading should be faster
* Bottomsheet style for context menus
* Improve support of very large media libraries
TV:
* Homescreen channels support
* Support for media sorting
* Support of videos grouping
* Manual network share setting
Changes between 3.0.12 and 3.0.13:
----------------------------------
Application:
* Fix 'previous' button behavior
* Fix crashes
TV:
* Video player: improve use of seekbar with remote
* Fix History row disappearing
VLC:
* Update VLC core
Changes between 3.0.11 and 3.0.12:
----------------------------------
Application:
* Fix subtitles not reloaded when multitasking
* Fix forward/rewind actions with Assistant
* Improve video player accessibility descriptions
* Stability improvements
* Misc. fixes
TV:
* Fix crashes in main screen
* Restore recommendations on Oreo
VLC:
* Update VLC core
Changes between 3.0.10 and 3.0.11:
----------------------------------
Application:
* Fix potential crash on playback transitions
* Restore playlist deletion option
* Misc. fixes
TV:
* Restore 'Play all' option
Changes between 3.0.9 and 3.0.10:
----------------------------------
Application:
* TV: Restore 'Play All' option in details view
* Fix Chromecast switch on Android P
* Fix playlist progression in popup mode
* Misc. fixes
Changes between 3.0.8 and 3.0.9:
----------------------------------
Application:
* Fix crash in video transitions/repeat
* Update translations
* Misc. fixes
Changes between 3.0.7 and 3.0.8:
----------------------------------
Application:
* Fix crash on some video repeat
* Fix crash caused by subtitles
* Update Translations
Changes between 3.0.6 and 3.0.7:
----------------------------------
Application:
* Fix Crash loading last playlist from wired headset
* Misc. fixes
Changes between 3.0.5 and 3.0.6:
----------------------------------
Application:
* Improve Oreo compliance for playback service
* Filter accidental touch events in video player
* Subtitles: search by hash even for media on SD Card
* Crash fixes
VLC:
* Upgrade to libvlc 3.0.2
Changes between 3.0.5 and 3.0.5-2:
----------------------------------
Application:
* Deactivate Android Auto
VLC:
* Fix crash on Android 4
Changes between 3.0.4 and 3.0.5:
----------------------------------
Application:
* Audio digital output (passthrough) is now disabled by default
* Fix video seek at wrong time on playback resume
* Fix renderer staying 'connected' when wifi is turned off
* Video tracks selector in video player
* Fix load last playlist from headset on Android 2-4
* Misc. fixes
VLC:
* Chromecast improvements
* stabilization
Changes between 3.0.2 and 3.0.4:
----------------------------------
Application:
* Fix medialibrary missing some media
* Fix last playlist restoration
TV:
* Fix History display
Changes between 3.0.1 and 3.0.2:
----------------------------------
Application:
* Support of external equalizers (for Android 5+)
* Fix video player restore from background playback
* Deactivate PiP feature in DeX mode
* Restore DVD menu navigation on TV
* Misc. fixes
VLC:
* Improve Chromecast loading and playback
* Improve mpeg2 files playback
Changes between 3.0.0 and 3.0.1:
----------------------------------
Application:
* Show real SDCard/USB storages name
* Fix video playlist lost on app switch
* Fix renderers dialog
* Fix filter/search obstructed by options icons
* Fix playback resume after phone calls
* Fix shuffle mode being systematically erased
* Fix browsing in medialibrary options
* Do not stop when other apps play sounds while Chromecasting
* New options to disable remote controls shortcuts
* Fix video player controls on RTL devices
* Fix network media saving in history
* Misc. fixes
Changes between 2.9.1 and 3.0.0:
----------------------------------
Application:
* Fix imprecise resume points
* Fix video playlist crash
* Fix media transition stop/crash
* Skip assets copy if flies already exists
* Fix storages display
* Fix files/network browsers sometimes mixed up
VLC:
* Improve Chromecast support
Changes between 2.9.0 and 2.9.1:
----------------------------------
Application:
* Re-enable application backup
* Save selected audio tab
* Misc. fixes
VLC:
* Improve Chromecast playback
* Send media metadata to Chromecast
Changes between 2.5.17 and 2.9.0:
----------------------------------
Application:
* Chromecast experimental support
* Playlist files support
* Fast-seek
* SDCard files delete
* Fixed delete on Oreo
* Options to disable subs auto-loading
* Fixed artists/Album classification
* Refactored Playbackservice
* Misc. fixes
TV:
* Improved navigation in Music Player
VLC:
* Update to 3.0.0-RC8
Changes between 2.5.6 and 2.5.7:
----------------------------------
Application:
* Restore sound ducking behavior
* Fix chatpers display in advances video playback options
* Reset current playlist to beginning on end reached
* Re-enable media style notification on recent Huawei devices
* don't use any equalizer by default
* Misc. fixes
TV:
* Fix crash on main view refresh
* Fix crash when removing usb stick while palying a video on it
* Fix crash on ML settings launch while scanning
* Fix ML settings display
Changes between 2.5.4 and 2.5.5:
----------------------------------
Application:
* Ask storage permission when launched from another app
* Fix PiP with Oreo when ratio values are incorrect
* Save current list on playback stop, fixes video saved in audio list
* Remove video player activity animations
* Crashes fixes
Changes between 2.5.3 and 2.5.4:
----------------------------------
Application:
* Set services foreground on Oreo
* Ellipsize end of filenames in browsers
* Add 'stop' action in notification
* Fix media loading from 3rd party apps
* Fix resume point not saved on TV
* Fix popup crashing on some devices
* Misc. bugfixes
Changes between 2.5.2 and 2.5.3:
----------------------------------
Application:
* Fix crash with ellipsizes
* Properly exit medialibrary scan service
* Check for new storages when app goes foreground
* Fix custom directories with wrong path
Core:
* Disable lua for Medialibrary parsing
Changes between 2.5.1 and 2.5.2:
----------------------------------
Application:
* Update translations
* Fix media position not resumed in some cases
* Block medialibrary folders settings access while ML is working
* Delay storage dialog, it could be missed on upgrade
* Misc. crashes fixed
Changes between 2.5.0 and 2.5.1:
----------------------------------
Application:
* Preserve playback speed between video player and popup mode
* Disable file suppression on Oreo, because of missing permission
* Reset FAB visibility on action mode clearance
* Fix 'Now Playing' card disappearing on TV
* Misc bugfixes
Changes between 2.0.6 and 2.5.0:
----------------------------------
Application:
* 360° videos support
* Android Auto implementation
* More dynamic and Material-compliant UI
* Enable Picture-In-Picture mode on Android O
* Refactored MediaLibrary
* DayNight mode integration
* New Search activity and integration with Google Now
* Resume position for audio media tagged as audiobook or podcast
* Double tap on screen edges in video player to seek by 10s
* Audio boost in video player
* Custom equalizer presets
* Restored double/long click on remote play to skip songs
* Allow network browsing & discovery when connected to a VPN
* Sort options in Video, browsers & Audio sub-categories
* Improve RTL support
* 'Seen' check on seen videos
* Update notification when playlist is ended
* Improve app & video player startup speed
* Support for screens with aspect ratio up to 18.5:9
TV:
* Picture-In-Picture mode integration
* Improved theme with dynamic background
Core
* Switch to clang and libc++_shared using ndk13
* 360° videos support
* OpenGLES 2.0 is now used to render video (for software decoders)
* AV1 codec support
* Support for VP8/VP9/VP10 in MP4
* HDMI passthrough
* Improve MP4V/H264/HEVC adaptive playback performances
Changes between 2.1.20 and 2.5.0:
----------------------------------
Application:
* Fix playback launch from widget or headset
* Fix browser overlapping other views
* Fix display in audio when no audio has been discovered
* Misc. fixes
Changes between 2.1.19 and 2.1.20:
----------------------------------
Application:
* Pause media scan during playback
* Fix subtitles on Android 7+, including non-latin alphabets
* Fix folder expanding in current playlist
* Fix archive expanding in current playlist
* Fix volume changed blocked by OS sound level warning
* Fix advanced options dialog style
* Misc. bugfixes
Changes between 2.1.18 and 2.1.19:
----------------------------------
Application:
* Oreo support for background service
* Fix navigation bar shown in video player
* Fix video playback when started during audio playback
* Misc. fixes
TV:
* Fix now playing card colors
Chromebook:
* Fix video player advanced option display
* Show status bar in video player
Changes between 2.1.17 and 2.1.18:
----------------------------------
Application:
* Add alac container support
* Add gray color for sutitles
* Confirm app exit in multiwindows mode
* Improve DPAD navigation in media lists/grids
* Adjust navigation bar color in dark theme
* Fix video player resume when multitasking
* Fix notification not hidden at playback end
* Fix browsers set back to root on rotation or restoration
* Fix wrong sort sometimes applied in audio when refreshing
* Crashes fixes
TV:
* Add time infos in audio player
* Fix playlist scrolling in audio player
Chromebook:
* Keep video player fullscreen when showing overlay
* Ignore 'emulated' empty storage
Changes between 2.1.16 and 2.1.17:
----------------------------------
Application:
* Audio boost in video player (activate it in Settings > Video)
* Custom equalizer presets
* Implement Oreo notification channels
* Update VLC core
* Fix audio player sometimes invisible
* Fix player state not updated once playlist is over
* Misc crash fixes.
Changes between 2.1.15 and 2.1.16:
----------------------------------
Application:
* Resume position for audio media tagged as audiobook
* Fix duplicated videos on initial scan
* Fix audio lag on video seek
* Fix root elements unchecking in Medialibrary settings
* General app performance improvements during playback
* Misc. fixes
Changes between 2.1.14 and 2.1.15:
----------------------------------
Application:
* Thinner lists and bigger videos cards on large screens
* Fix duplicated videos on initial scan
* Misc. fixes
TV:
* Fix video player controls focus
* Recommendations are now last added videos
Core:
* Fix mkv seeking crash (which could happen during medialibrary scan)
Changes between 2.1.13 and 2.1.14:
----------------------------------
Application:
* Sort options in Video, browsers & Audio sub-categories
* Fix Medialibrary being wiped
* Fix view overlaping each other after devcie rotation
* Fix some snackbars not shown properly
* Hide System UI volume bar in video player
* Add delete action in Playlist view
* Misc. fixes
TV:
* Fix BackgroundManager crash on activities transition
Changes between 2.1.12 and 2.1.13:
----------------------------------
Application:
* 'Seen' check on seen videos
* Respect paused state on popup <-> player switch
* Sort options in browsers
* Update VLC core to current master
* Misc fixes and performances improvement
TV:
* Improve UI update on USB/SD storage inserted/removed
Changes between 2.1.11 and 2.1.12:
----------------------------------
Application:
* Option to switch in PiP/Pop-up mode on multitasking
* Moved 'Medialibrary auto rescan' option in main settings page
* Fix empty medialibrary on app restoration
* 3-states checkox in medialibrary settings
* Fix Equalizer in for LTR locales
* Fix some http covers not loaded
* Fix video PAUSED state not respected on multitasking
* UI performances improvements
* video player → Pop-up switch improvements
* 'Home' button in subtitles picker
* Remove animated scroll on current playlist
* misc. fixes
TV:
* Set blurred thumb/cover in background on item selection
* Fix navigation in video player
Core:
* Fix WMV3 hardware accelerated playback
Changes between 2.1.10 and 2.1.11:
----------------------------------
Application:
* Enable Picture-In-Picture mode on Android O
* Improve RTL support
* Option to save repeat mode in audio
* Info is available for artists, albums and playlists
* Update translations
* Misc. Fixes
TV:
* Videos in main screen are now the last added
Medialibrary:
* Fix crashes due to implicit SQLite rollbacks
Changes between 2.1.9 and 2.1.10:
----------------------------------
Application:
* Fix crash after video playback on Android 4
* Improve parsing service management
* Fix files with '#' not parsed and blocking parsing for 5 seconds
* Fix Locale resetting problem when opening about
* Fix progress UI not updated in video player while seeking
* Fix next/previous buttons on Lockscreen not effective on Android 4
* Use Artist instead of AlbumArtist for media description
* Misc. fixes and performance improvement
Changes between 2.1.8 and 2.1.9:
----------------------------------
Application:
* Fix Medialibrary ignoring folders
* Enable previous and next remote controls in repeat mode when only 1 media is playing
* Save and resume position for podcasts
* Compose thumbnails for video groups
* Misc bugfixes
Changes between 2.1.7 and 2.1.8:
----------------------------------
Application:
* Fix Video Pop-Up player black screen
* Fix scan service crash
* Fix audio/subs delay and video playlist lost on multitasking
* Option to disable playlist smooth auto scroll
* Option to disable seek on double tap
* Option to always keep screen ON in Pop-Up mode
* Option to show hidden files in browsers
* Misc fixes in app and medialibrary
* VLC update
TV:
* Fix some UPnP media not shown
Changes between 2.1.6 and 2.1.7:
----------------------------------
Application:
* Improve media scanning performances
* Restore progressbar to display scanning progress
* Restore advanced option to disable scan on every app launch
* Double tap on screen edges in video player to seek by 10s
* Remember audio & spu tracks per media
* Improve scan service stopping
* Fix subs lost on app switch
* Fix dropdown menu empty on some devices
* Properly remember if ext storage is ignored
* Fix double seek when loading last playlist
Changes between 2.1.5 and 2.1.6:
----------------------------------
Application:
* Fix folder blacklisting in medialib
Core:
* Fix PIP mode (picture in picture)
* Fix black screen with some 360 videos
* Fix SFTP on armv8 devices
Changes between 2.1.4 and 2.1.5:
----------------------------------
Application:
* Improve external devices management
* Fix SFTP browsing
* Bugfixes
Changes between 2.1.3 and 2.1.4:
----------------------------------
Application:
* Revert to scan the whole storage by default instead of media folders
* 'Inster next' option in contextual menu
* Fix crash with remote controls on Android 2.3
* Fix 360° videos control
* Fix upgrade from VLC v 2.0 -> 2.1
* Fix external storage scan
* Misc. fixes
Core:
* Fix timeout on network credentials step
* Fix crash when stopping h264 playback
* Fix crash on TLS connections
Changes between 2.1.2 and 2.1.3:
----------------------------------
Application:
* Translations update
* Get 360° videos zoom more linear
* 'Last added' section for Android Auto
* Enable 'previous' media button with only 1 media playing
* Fix remote control for Android 2
* set max aspect ratio to 2.1
* Don't show public directory as an external storage
Core
* Improve cover detection
* Improve MP4V/H264/HEVC adaptive playback performances
Changes between 2.1.1 and 2.1.2:
----------------------------------
Application:
- VLC now shows a dialog to ask for external storage scan
- Voice search for TV
- Voice actions for Auto
- Stream url loader is now a dialog, and available on TV
- Allow to choose subs file on network
- File browsing is now processed in background
- If collection is empty, show a button to start 'directories' setting page
- Fix player sliding under action bar in playlist & info views
- Fix equalizer display
- Fix video player stuck after device being locked
- Tackles some crashes
Core
* DTSHD and TRUEHD HDMI passthrough
* Don't play via passthrough an encoding format that is not supported
Changes between 2.1.0 and 2.1.1:
----------------------------------
Application:
- Improve audio categories and images loading performance
- Restore runtime permission for brightness change
- Fix media discovery crash on some sdcards
- Fix resume position for video launched from 3rd party apps
- More discrete scan notification
- Add network media to history
- Tackles various crash, including one when you have more than 500 albums
Changes between 2.0.0 and 2.1.0:
----------------------------------
Application:
* 360° videos support
* Android Auto implementation
* DayNight mode integration
* New Search activity and integration with Google Now
* Option to filter in current media list
* Restored double/long click on remote play to skip songs
* Allow network browsing & discovery when connected to a VPN
* Added multiselection mode
* Removed sound lowering on notification
* Redesigned audio, video & history lists/grid
* Redesigned Info and album/playlist views
* New icons
* Audio player background is now filled with blurred cover
* Force previous song on audioplayer swipe
* Refactored MediaLibrary
* CoordinatorLayout integration
* Transparent theme for smoother startup
* PlaybackService now persists
* Improve RTL support
* Fix audioplayer layout for black theme and RTL
* Fix notification content when no artist nor album
* Update notification when playlist is ended
* Upgraded AppCompat to version 25.2.0
* Improve app & video player startup speed
* Support LG 18:9 aspect ratio
TV:
* Picture-In-Picture mode integration
* Improved theme
Core
* Switch to clang and libc++_shared using ndk13
* 360° videos support
* OpenGLES 2.0 is now used to render video (for software decoders)
* AV1 codec support
* Support for VP8/VP9/VP10 in MP4
* e-AC3 HDMI passthrough
Changes between 1.9.13 and 2.0.0:
----------------------------------
Application:
* Fix UPnP media display name
Core:
* Fix UPnP browsing
Changes between 1.9.12 and 1.9.13:
----------------------------------
Application:
* Allow subtitles on network (except UPnP)
* Remember subs chosen via this picker
* Support CC button on remotes
* Fixes
Changes between 1.9.11 and 1.9.12:
----------------------------------
Application:
* Allow subtitles download for any video
* Add subtitles downloader in video player
* Improve UI update while scanning device for media
* Show loading animation when video player is buffering
* Fix grouping videos starting with "The"
* Fix some UI glitch whel 'large fonts' accessibility setting is activated
TV:
* Improve Audio Player view
* Fix network folders details view
Core:
* Fix some deadlock in mkv files playback
* Detect subtitles on network
* Update codecs and demuxers
* Improve thumbnail generation speed
Changes between 1.9.10 and 1.9.11:
----------------------------------
Application:
* Fix thumbnails look
* Fix seeking state when lock
Core:
* Update codecs and demuxers
Changes between 1.9.9 and 1.9.10:
--------------------------------
Application:
* Fix crash while searching
* Fix crash in settings -> Directories
* Fix delay/spped controls invisible with hdmi/screencast
* Fix loading video from 3rd party app with space in its name
* Added Tamil language for subtitles download
Changes between 1.9.8 and 1.9.9:
--------------------------------
Application:
* Fix navigation with DPAD
* Improved RTL support
* Browsers: go back at root level on navigation menu category click
* Fix position in video not restored when launched from an external app
* Improved design in playlist, history and browsers
* Misc. fixes
TV:
* Changed video player controls:
- ↓ shows control panel
- ↑ shows advanced options
- ← and → seek in video
- OK/Select button toggles play/pays when control panel is not displayed
Changes between 1.9.7 and 1.9.8:
--------------------------------
Application:
* Subtitles download (local files only for now)
* Fix resume point for video launch from 3rd party app
* Fix repeat with only one media
* Add repeat and shuffle modes in video player
* Batter DPAD navigation in tablet UI
* Fill artist tag for session metadata
* Prevent grouping videos starting with "The"
TV:
* Long click on any media display the details view
* Subtitles download (local files only for now)
Changes between 1.9.6 and 1.9.7:
--------------------------------
Application:
* Overlay popup view for video playback
* Enable split window mode on LG devices
* Fix Media Information infinite loading
* TV: Close folder if login dialog is canceled
* Misc fixes
Changes between 1.9.5 and 1.9.6:
--------------------------------
Application:
* Activate multi windows mode for Samsung devices
* Display a FAB to play all media of a folder in browsers views
* Simple click in a folder now just plays the media, not all of them
* Fix video load while playing audio
* Use '+' and '-' buttons to set video playback speed, instead of progressbar
Changes between 1.9.4 and 1.9.5:
--------------------------------
Application:
* Restore video playlist playback
* Remember playback state after a call or headset unplug/replug
* Force video player orientation on sensor instead of user preference
* Fix media launch from gallery app
* Fix lock not restoring video orientation
Changes between 1.9.3 and 1.9.4:
--------------------------------
Application:
* Feature to set a song as ringtone from current playlist
* Fix video resume from background playback or apps switching
* Remember paused state in Video player
* Improve randomization for playback
* Fix notification being briefly displayed for network videos
* Fix potential crash when launched by a 3rd party app
Changes between 1.9.2 and 1.9.3:
--------------------------------
Application:
* Option to remember video playback speed
* Add "Append to playlist" feature for audio media
* Enlarge login dialog
* Disable username for manual SMB server adding
* Store login credentials by default & remember choice
* Hide media length in playlist when we don't know it
* Fix play/pause from notification
* Fix external calls for VLC to play videos not handled
* Fix EqualizerFragment empty after being paused
* Misc. fixes
Core:
* Improve network browsing
* Improve streaming of large files
Changes between 1.9.1 and 1.9.2:
--------------------------------
Application:
* Add 'Auto landscape' and 'Auto portrait' modes
* Login dialog is now scrollable
* Better usb key/SD card mount/unmount detection on TV
* Fix wrong thumbnails on media or images corruption
* Fix video -> audio transition
* Fix VLC starting playback when another app grabs audiofocus
* Fix Browsers and History appearance with large fonts
* Misc fixes
Changes between 1.9.0 and 1.9.1:
--------------------------------
Application:
* Ask system permission for brightness mode on Marshmallow
* Fix thumbnails generation slowdown
* Changed version code, beta is available for Android TV now
* Samba library updated
* Fix 'show last video' option being hidden
* Fix crash on screen rotation with login dialog
* Fixed notification displayed when playing network video
* Go back on login dialog cancelled
* Restrict video playlists from Android 2.x devices
* Show server icon in favorites
* Fix 'save as favorite' option not available for network servers
* Fix image loading on TV
* Misc. fixes
Changes between 1.7.0 and 1.9.0:
--------------------------------
Core:
* Hardware accelleration is now asynchronous
* Preparation for Asynchronous debugging
* Use mpg123 as MP3 decoder
* Improve UPnP support
Application:
* Moved targetSDK to 23
* Runtime permissions for storage & ringtone setting
* Network browsing
* Video Playlists
* Search in 'now playing' playlist
* Restore playback history
* Properly restore previous Equalizer setting
* Undo action for media deletion
* 'now playing' list auto-scrolls to current item
* Playback service is more persistent
* Pause playback, instead of stop, on audiofocus lost
* TV UI is now available for Android 4.2+ devices
* Option to disable touch control in video playback
* Option to disable coverArt as lockscreen wallpaper
* Simplify and fix animations
* 'Save playlist' has moved into Advanced options
* Fix preferences appearence on Android 4.0+ devices
* Fix HoneyComb status bar dimming in video playback
* Fix media deletion
* Fix crash with huge collection for a single artist
* Fix playlist sections duplicated
* Fix case sensitive sorting in browsers
* @hide Extensions API
TV:
* Audio Player view has been redesigned
* Improve Now Playing button
* Improve Audio player
* Video, Songs and Browser views now sort item by first letter
* File Browser
* Playback history
* 'About' and 'Licence' views
* Scan device media more often
Known issues:
* Cannot open files on SFTP servers with witespace.
Changes between 1.7.1 and 1.7.2:
--------------------------------
Application:
* Fix small crashes
* New work-around for broken SamSung/Wiko/QMobile phones
Changes between 1.7.0 and 1.7.1:
--------------------------------
Core:
* Fix seeking deadlocks and no-sound after seek issues
Application
* Numerous crashes and glitches for the application
Changes between 1.6.6 and 1.7.0:
--------------------------------
Nota Bene: The application is now only supporting Android 2.2+
Core:
* New fonts rendering engine, with fonts fallback
Application:
* Use MediaSessionCompat to replace MediaSession and RemoteControlClient
This should fix a few weird bugs on some specific Android versions
* New notification look
* New Navigation menu, based on appcompat
* Option to remember brightness level in video player
* Restart current song on 'previous' click
* We now display songs length in playlist
* Refactored playlist & video views
* Removal of dialogs to use Snackbars
* Misc. fixes
ChromeOS:
* 'Open' option replaces the directory browser
* YUV chroma format preset by default on ChromeOS
* Disable brightness control on ChromeOS
Changes between 1.6.5 and 1.6.6:
--------------------------------
TV:
* Remove AUDIO_RECORD permission
Application:
* Correctly save position in video
* Correctly unmute when using volume keys
* Fix regressions
Translations:
* Update of Turkish, Swedish, Portuguese, Japanese, German,
Chinese, Ukrainian. Swedish, Dutch, Spanish
Changes between 1.6.4 and 1.6.5:
--------------------------------
Application:
* Add optional seeking buttons in video player
* Fix crash on Audio Album sorting
* New preferences code using Material design
* Update support library to 23.1
* Fix FloatingActionButton on Android 2.x
* Allow seeking action in all elements in audio player
Changes between 1.6.3 and 1.6.4:
--------------------------------
Core:
* Fix playback and seeking of some ASF/WMV/WMA files
Application:
* Fix staying-alive screen
* Correctly sort by track number in the album view
Changes between 1.6.2 and 1.6.3:
--------------------------------
Application:
* Fix crash on Android < 3.0
Changes between 1.6.1 and 1.6.2:
--------------------------------
Application:
* Fix crashes on wiko and QMobile phones (bis repetita)
* Fix IllegalStateException in AWindow when relaunching VideoPlayer
* Fix crash in Video Fragment on old Android versions
Changes between 1.6.0 and 1.6.1:
--------------------------------
Application:
* Fix crashes on wiko and QMobile phone
* Fix crashes on wiko and QMobile phones
* Fix preferences crashes
* Fix crashes in Videos List and Main Activity
......
# VLC for Android
This is the official **Android** port of [VLC](https://videolan.org/vlc/).
VLC on Android plays all the same files as the classical version of VLC, and features a media database
for Audio and Video files and stream.
- [Project Structure](#project-structure)
- [LibVLC](#libvlc)
- [License](#license)
- [Build](#build)
- [Build Application](#build-application)
- [Build LibVLC](#build-libvlc)
- [Contribute](#contribute)
- [Pull requests](#pull-requests)
- [Translations](#translations)
- [Issues and feature requests](#issues-and-feature-requests)
- [Support](#support)
## Project Structure
Here are the current folders of vlc-android project:
- extension-api : Application extensions SDK (not released yet)
- application : Android application source code, organized by modules.
- buildsystem : Build scripts, CI and maven publication configuration
- libvlc : LibVLC gradle module, VLC source code will be cloned in `vlc/` at root level.
- medialibrary : Medialibrary gradle module
## LibVLC
LibVLC is the Android library embedding VLC engine, which provides a lot of multimedia features, like:
- Play every media file formats, every codec and every streaming protocols
- Hardware and efficient decoding on every platform, up to 8K
- Network browsing for distant filesystems (SMB, FTP, SFTP, NFS...) and servers (UPnP, DLNA)
- Playback of Audio CD, DVD and Bluray with menu navigation
- Support for HDR, including tonemapping for SDR streams
- Audio passthrough with SPDIF and HDMI, including for Audio HD codecs, like DD+, TrueHD or DTS-HD
- Support for video and audio filters
- Support for 360 video and 3D audio playback, including Ambisonics
- Ability to cast and stream to distant renderers, like Chromecast and UPnP renderers.
And more.
![LibVLC stack](https://images.videolan.org/images/libvlc_stack.png)
You can use our LibVLC module to power your own Android media player.
Download the `.aar` directly from [Maven](https://search.maven.org/artifact/org.videolan.android/libvlc-all) or build from source.
Have a look at our [sample codes](https://code.videolan.org/videolan/libvlc-android-samples).
## License
VLC for Android is licensed under [GPLv2 (or later)](COPYING). Android libraries make this, de facto, a GPLv3 application.
VLC engine *(LibVLC)* for Android is licensed under [LGPLv2](libvlc/COPYING.LIB).
## Build
Native libraries are published on bintray. So you can:
- Build the application and get libraries via gradle dependencies (JVM build only)
- Build the whole app (LibVLC + Medialibrary + Application)
- Build LibVLC only, and get an .aar package
### Build Application
VLC-Android build relies on gradle build modes :
- `Release` & `Debug` will get LibVLC and Medialibrary from Bintray, and build application source code only.
- `SignedRelease` also, but it will allow you to sign application apk with a local keystore.
- `Dev` will build build LibVLC, Medialibrary, and then build the application with these binaries. (via build scripts only)
### Build LibVLC
You will need a recent Linux distribution to build VLC.
It should work with Windows 10, and macOS, but there is no official support for this.
#### Setup
Check our [AndroidCompile wiki page](https://wiki.videolan.org/AndroidCompile/), especially for build dependencies.
Here are the essential points:
On Debian/Ubuntu, install the required dependencies:
```bash
sudo apt install automake ant autopoint cmake build-essential libtool-bin \
patch pkg-config protobuf-compiler ragel subversion unzip git \
openjdk-8-jre openjdk-8-jdk flex python wget
```
Setup the build environment:
Set `$ANDROID_SDK` to point to your Android SDK directory
`export ANDROID_SDK=/path/to/android-sdk`
Set `$ANDROID_NDK` to point to your Android NDK directory
`export ANDROID_NDK=/path/to/android-ndk`
Then, you are ready to build!
#### Build
`buildsystem/compile.sh -l -a <ABI>`
ABI can be `arm`, `arm64`, `x86`, `x86_64` or `all` for a multi-abis build
You can do a library release build with `-r` argument
#### Medialibrary
Build Medialibrary with `-ml` instead of `-l`
## Contribute
VLC is a libre and open source project, we welcome all contributions.
Just respect our [Code of Conduct](https://wiki.videolan.org/CoC/), and if you want do contribute to the UI or add a new feature, please open an issue first so there can be a discussion about it.
### Pull requests
Pull requests must be proposed on our [gitlab server](https://code.videolan.org/videolan/vlc-android/).
So you must create an account, fork vlc-android project, and propose your merge requests from it.
**Except for translations**, see the section below.
### Translations
You can help improving translations too by joining the [transifex vlc project](https://www.transifex.com/yaron/vlc-trans/dashboard/)
Translations merge requests are then generated from transifex work.
## Issues and feature requests
VLC for Android bugtracker is hosted on [VideoLAN gitlab](https://code.videolan.org/videolan/vlc-android/issues)
Please look for existing issues and provide as much useful details as you can (e.g. vlc app version, device and Android version).
A template is provided, please use it!
Issues without relevant information will be ignored, we cannot help in this case.
## Support
- Android mailing list: android@videolan.org
- bugtracker: https://code.videolan.org/videolan/vlc-android/issues
- IRC: *#videolan* channel on [freenode](http://freenode.net/)
- VideoLAN forum: https://forum.videolan.org/
/*
* Copyright (C) 2008 The Android Open Source Project
*
* 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.
*/
#ifndef ActivityManager_H
#define ActivityManager_H
#include <utils/String16.h>
namespace android {
// Perform a ContentProvider.openFile() call for the given URI.
//
// Returns the native file descriptor for the opened stream, < 0 on error.
extern int openContentProviderFile(const String16& uri);
}
#endif
/*
* Copyright (C) 2005 The Android Open Source Project
*
* 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.
*/
//
#ifndef _RUNTIME_ANDROID_RUNTIME_H
#define _RUNTIME_ANDROID_RUNTIME_H
#include <utils/Errors.h>
#include <binder/IBinder.h>
#include <utils/String8.h>
#include <utils/String16.h>
#include <utils/Vector.h>
#include <utils/threads.h>
#include <pthread.h>
#include <nativehelper/jni.h>
namespace android {
class AndroidRuntime
{
public:
AndroidRuntime();
virtual ~AndroidRuntime();
/**
* Register a set of methods in the specified class.
*/
static int registerNativeMethods(JNIEnv* env,
const char* className, const JNINativeMethod* gMethods, int numMethods);
/**
* Call a static Java function that takes no arguments and returns void.
*/
status_t callStatic(const char* className, const char* methodName);
/**
* Call a class's static main method with the given arguments,
*/
status_t callMain(const char* className, int argc, const char* const argv[]);
/**
* Find a class, with the input either of the form
* "package/class" or "package.class".
*/
static jclass findClass(JNIEnv* env, const char* className);
int addVmArguments(int argc, const char* const argv[]);
void start(const char *classname, const bool startSystemServer);
void start(); // start in android.util.RuntimeInit
static AndroidRuntime* getRuntime();
/**
* This gets called after the JavaVM has initialized. Override it
* with the system's native entry point.
*/
virtual void onStarted() = 0;
/**
* This gets called after the JavaVM has initialized after a Zygote
* fork. Override it to initialize threads, etc. Upon return, the
* correct static main will be invoked.
*/
virtual void onZygoteInit() {};
/**
* Called when the Java application exits. The default
* implementation calls exit(code).
*/
virtual void onExit(int code);
/** create a new thread that is visible from Java */
static android_thread_id_t createJavaThread(const char* name, void (*start)(void *),
void* arg);
/** return a pointer to the VM running in this process */
static JavaVM* getJavaVM() { return mJavaVM; }
/** return a pointer to the JNIEnv pointer for this thread */
static JNIEnv* getJNIEnv();
private:
static int startReg(JNIEnv* env);
void parseExtraOpts(char* extraOptsBuf);
int startVm(JavaVM** pJavaVM, JNIEnv** pEnv);
Vector<JavaVMOption> mOptions;
/* JNI JavaVM pointer */
static JavaVM* mJavaVM;
/*
* Thread creation helpers.
*/
static int javaCreateThreadEtc(
android_thread_func_t entryFunction,
void* userData,
const char* threadName,
int32_t threadPriority,
size_t threadStackSize,
android_thread_id_t* threadId);
static int javaThreadShell(void* args);
};
// Returns the Unix file descriptor for a ParcelFileDescriptor object
extern int getParcelFileDescriptorFD(JNIEnv* env, jobject object);
}
#endif
/*
* Copyright (C) 2010 The Android Open Source Project
*
* 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.
*/
#ifndef _ANDROID_APP_NATIVEACTIVITY_H
#define _ANDROID_APP_NATIVEACTIVITY_H
#include <ui/InputTransport.h>
#include <utils/Looper.h>
#include <android/native_activity.h>
#include "jni.h"
namespace android {
extern void android_NativeActivity_finish(
ANativeActivity* activity);
extern void android_NativeActivity_setWindowFormat(
ANativeActivity* activity, int32_t format);
extern void android_NativeActivity_setWindowFlags(
ANativeActivity* activity, int32_t values, int32_t mask);
extern void android_NativeActivity_showSoftInput(
ANativeActivity* activity, int32_t flags);
extern void android_NativeActivity_hideSoftInput(
ANativeActivity* activity, int32_t flags);
} // namespace android
/*
* NDK input queue API.
*
* Here is the event flow:
* 1. Event arrives in input consumer, and is returned by getEvent().
* 2. Application calls preDispatchEvent():
* a. Event is assigned a sequence ID and enqueued in mPreDispatchingKeys.
* b. Main thread picks up event, hands to input method.
* c. Input method eventually returns sequence # and whether it was handled.
* d. finishPreDispatch() is called to enqueue the information.
* e. next getEvent() call will:
* - finish any pre-dispatch events that the input method handled
* - return the next pre-dispatched event that the input method didn't handle.
* f. (A preDispatchEvent() call on this event will now return false).
* 3. Application calls finishEvent() with whether it was handled.
* - If handled is true, the event is finished.
* - If handled is false, the event is put on mUnhandledKeys, and:
* a. Main thread receives event from consumeUnhandledEvent().
* b. Java sends event through default key handler.
* c. event is finished.
*/
struct AInputQueue : public android::InputEventFactoryInterface {
public:
/* Creates a consumer associated with an input channel. */
explicit AInputQueue(const android::sp<android::InputChannel>& channel, int workWrite);
/* Destroys the consumer and releases its input channel. */
~AInputQueue();
void attachLooper(ALooper* looper, int ident, ALooper_callbackFunc callback, void* data);
void detachLooper();
int32_t hasEvents();
int32_t getEvent(AInputEvent** outEvent);
bool preDispatchEvent(AInputEvent* event);
void finishEvent(AInputEvent* event, bool handled);
// ----------------------------------------------------------
inline android::InputConsumer& getConsumer() { return mConsumer; }
void dispatchEvent(android::KeyEvent* event);
void finishPreDispatch(int seq, bool handled);
android::KeyEvent* consumeUnhandledEvent();
android::KeyEvent* consumePreDispatchingEvent(int* outSeq);
virtual android::KeyEvent* createKeyEvent();
virtual android::MotionEvent* createMotionEvent();
int mWorkWrite;
private:
void doUnhandledKey(android::KeyEvent* keyEvent);
bool preDispatchKey(android::KeyEvent* keyEvent);
void wakeupDispatch();
android::InputConsumer mConsumer;
android::sp<android::Looper> mLooper;
int mDispatchKeyRead;
int mDispatchKeyWrite;
struct in_flight_event {
android::InputEvent* event;
int seq;
bool doFinish;
};
struct finish_pre_dispatch {
int seq;
bool handled;
};
android::Mutex mLock;
int mSeq;
// Cache of previously allocated key events.
android::Vector<android::KeyEvent*> mAvailKeyEvents;
// Cache of previously allocated motion events.
android::Vector<android::MotionEvent*> mAvailMotionEvents;
// All input events that are actively being processed.
android::Vector<in_flight_event> mInFlightEvents;
// Key events that the app didn't handle, and are pending for
// delivery to the activity's default key handling.
android::Vector<android::KeyEvent*> mUnhandledKeys;
// Keys that arrived in the Java framework and need to be
// dispatched to the app.
android::Vector<android::KeyEvent*> mDispatchingKeys;
// Key events that are pending to be pre-dispatched to the IME.
android::Vector<in_flight_event> mPreDispatchingKeys;
// Event sequence numbers that we have finished pre-dispatching.
android::Vector<finish_pre_dispatch> mFinishPreDispatches;
};
#endif // _ANDROID_APP_NATIVEACTIVITY_H
/*
* Copyright (C) 2010 The Android Open Source Project
*
* 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.
*/
#ifndef _ANDROID_CONTENT_RES_CONFIGURATION_H
#define _ANDROID_CONTENT_RES_CONFIGURATION_H
#include <utils/ResourceTypes.h>
#include <android/configuration.h>
#include "jni.h"
struct AConfiguration : android::ResTable_config {
};
namespace android {
extern void android_Configuration_getFromJava(
JNIEnv* env, jobject clazz, struct AConfiguration* out);
} // namespace android
#endif // _ANDROID_CONTENT_RES_CONFIGURATION_H
/*
* Copyright (C) 2008 The Android Open Source Project
*
* 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.
*/
#ifndef android_util_AssetManager_H
#define android_util_AssetManager_H
#include <utils/AssetManager.h>
#include "jni.h"
namespace android {
extern AssetManager* assetManagerForJavaObject(JNIEnv* env, jobject assetMgr);
}
#endif
/*
* Copyright (C) 2010 The Android Open Source Project
*
* 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.
*/
#ifndef _ANDROID_VIEW_SURFACE_H
#define _ANDROID_VIEW_SURFACE_H
#include <android/native_window.h>
#include "jni.h"
namespace android {
extern sp<ANativeWindow> android_Surface_getNativeWindow(
JNIEnv* env, jobject clazz);
} // namespace android
#endif // _ANDROID_VIEW_SURFACE_H
/*
* Copyright (C) 2008 The Android Open Source Project
*
* 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.
*/
#ifndef ANDROID_BINDER_H
#define ANDROID_BINDER_H
#include <binder/IBinder.h>
// ---------------------------------------------------------------------------
namespace android {
class BBinder : public IBinder
{
public:
BBinder();
virtual const String16& getInterfaceDescriptor() const;
virtual bool isBinderAlive() const;
virtual status_t pingBinder();
virtual status_t dump(int fd, const Vector<String16>& args);
virtual status_t transact( uint32_t code,
const Parcel& data,
Parcel* reply,
uint32_t flags = 0);
virtual status_t linkToDeath(const sp<DeathRecipient>& recipient,
void* cookie = NULL,
uint32_t flags = 0);
virtual status_t unlinkToDeath( const wp<DeathRecipient>& recipient,
void* cookie = NULL,
uint32_t flags = 0,
wp<DeathRecipient>* outRecipient = NULL);
virtual void attachObject( const void* objectID,
void* object,
void* cleanupCookie,
object_cleanup_func func);
virtual void* findObject(const void* objectID) const;
virtual void detachObject(const void* objectID);
virtual BBinder* localBinder();
protected:
virtual ~BBinder();
virtual status_t onTransact( uint32_t code,
const Parcel& data,
Parcel* reply,
uint32_t flags = 0);
private:
BBinder(const BBinder& o);
BBinder& operator=(const BBinder& o);
class Extras;
Extras* mExtras;
void* mReserved0;
};
// ---------------------------------------------------------------------------
class BpRefBase : public virtual RefBase
{
protected:
BpRefBase(const sp<IBinder>& o);
virtual ~BpRefBase();
virtual void onFirstRef();
virtual void onLastStrongRef(const void* id);
virtual bool onIncStrongAttempted(uint32_t flags, const void* id);
inline IBinder* remote() { return mRemote; }
inline IBinder* remote() const { return mRemote; }
private:
BpRefBase(const BpRefBase& o);
BpRefBase& operator=(const BpRefBase& o);
IBinder* const mRemote;
RefBase::weakref_type* mRefs;
volatile int32_t mState;
};
}; // namespace android
// ---------------------------------------------------------------------------
#endif // ANDROID_BINDER_H
/*
* Copyright (C) 2010 The Android Open Source Project
*
* 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.
*/
#ifndef ANDROID_BINDER_SERVICE_H
#define ANDROID_BINDER_SERVICE_H
#include <stdint.h>
#include <utils/Errors.h>
#include <utils/String16.h>
#include <binder/IServiceManager.h>
#include <binder/IPCThreadState.h>
#include <binder/ProcessState.h>
#include <binder/IServiceManager.h>
// ---------------------------------------------------------------------------
namespace android {
template<typename SERVICE>
class BinderService
{
public:
static status_t publish() {
sp<IServiceManager> sm(defaultServiceManager());
return sm->addService(String16(SERVICE::getServiceName()), new SERVICE());
}
static void publishAndJoinThreadPool() {
sp<ProcessState> proc(ProcessState::self());
sp<IServiceManager> sm(defaultServiceManager());
sm->addService(String16(SERVICE::getServiceName()), new SERVICE());
ProcessState::self()->startThreadPool();
IPCThreadState::self()->joinThreadPool();
}
static void instantiate() { publish(); }
static status_t shutdown() {
return NO_ERROR;
}
};
}; // namespace android
// ---------------------------------------------------------------------------
#endif // ANDROID_BINDER_SERVICE_H
/*
* Copyright (C) 2005 The Android Open Source Project
*
* 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.
*/
#ifndef ANDROID_BPBINDER_H
#define ANDROID_BPBINDER_H
#include <binder/IBinder.h>
#include <utils/KeyedVector.h>
#include <utils/threads.h>
// ---------------------------------------------------------------------------
namespace android {
class BpBinder : public IBinder
{
public:
BpBinder(int32_t handle);
inline int32_t handle() const { return mHandle; }
virtual const String16& getInterfaceDescriptor() const;
virtual bool isBinderAlive() const;
virtual status_t pingBinder();
virtual status_t dump(int fd, const Vector<String16>& args);
virtual status_t transact( uint32_t code,
const Parcel& data,
Parcel* reply,
uint32_t flags = 0);
virtual status_t linkToDeath(const sp<DeathRecipient>& recipient,
void* cookie = NULL,
uint32_t flags = 0);
virtual status_t unlinkToDeath( const wp<DeathRecipient>& recipient,
void* cookie = NULL,
uint32_t flags = 0,
wp<DeathRecipient>* outRecipient = NULL);
virtual void attachObject( const void* objectID,
void* object,
void* cleanupCookie,
object_cleanup_func func);
virtual void* findObject(const void* objectID) const;
virtual void detachObject(const void* objectID);
virtual BpBinder* remoteBinder();
status_t setConstantData(const void* data, size_t size);
void sendObituary();
class ObjectManager
{
public:
ObjectManager();
~ObjectManager();
void attach( const void* objectID,
void* object,
void* cleanupCookie,
IBinder::object_cleanup_func func);
void* find(const void* objectID) const;
void detach(const void* objectID);
void kill();
private:
ObjectManager(const ObjectManager&);
ObjectManager& operator=(const ObjectManager&);
struct entry_t
{
void* object;
void* cleanupCookie;
IBinder::object_cleanup_func func;
};
KeyedVector<const void*, entry_t> mObjects;
};
protected:
virtual ~BpBinder();
virtual void onFirstRef();
virtual void onLastStrongRef(const void* id);
virtual bool onIncStrongAttempted(uint32_t flags, const void* id);
private:
const int32_t mHandle;
struct Obituary {
wp<DeathRecipient> recipient;
void* cookie;
uint32_t flags;
};
void reportOneDeath(const Obituary& obit);
bool isDescriptorCached() const;
mutable Mutex mLock;
volatile int32_t mAlive;
volatile int32_t mObitsSent;
Vector<Obituary>* mObituaries;
ObjectManager mObjects;
Parcel* mConstantData;
mutable String16 mDescriptorCache;
};
}; // namespace android
// ---------------------------------------------------------------------------
#endif // ANDROID_BPBINDER_H