The applicationObserver was never unregistered resulting in a memory leak
and even worse, crashes when destroyed dialogs still got called through
the applicationOnVolumeChanged callback.
Also changed the view resource identifiers used by the controller dialog
as it used the same resource identifiers as the now playing panel.
During tests, activities were not closed properly causing increasing
memory usage, which resulted in failing tests because of
out of memory errors.
This has been fixed by using the test orchestrator which runs
each test in its own instrumentation instance.
Removed the instrumentationTest flavor and replaced it by using the
default debug build type. The flavor was used to keep the required
permissions during testing separate from release versions. This can
also be accomplished using the debug build type.
The PagerSlidingTabStrip from astuetz doesn't work with the new
android build tools. As the project seems dead, I replaced it with
PagerTabStrip from the support library.
Refactored MusicListFragment and PVRListFragment to use AbstractTabsFragment
Fixed scrolling in a nested scroll view using espresso
Fixed issue with setting and checking Kodi major version
* Implemented a new widget "fabspeeddial"
* Provides user with two options to play the media item. One
option to play the item on Kodi, one to play it on the remote.
* Replaced deprecated FAB button from
com.melnykov:floatingactionbutton:1.3.0 with the FAB button from
the design library
* Implemented a busy indicator (pulsate) when fab button is clicked
and JSON API method is still pending
* Added a setting to allow the user to disable local playback and
revert back to the old behaviour
* Refactored AbstractFragmentInfo
* Replaced RelativeLayout by CoordinatorLayout to support
hiding/showing the FAB button when scrolling
* Replaced the tree view observer to fade out art view when scrolling
with a behavior for the CoordinaterLayout
* Removed empty theme file for v19
* Refactored HostConnection to allow new activities to attach its
callbacks to any pending ApiMethod. This is required to support device
configuration changes.
ControlPad now uses AppCompatImageView to support theme colors.
Instead of applying the colors programmatically they are now defined
in the layout file.
Whan the background service is launcher, it is launched on the foreground and a notification is always shown.
The service stays on while something is playing. It stops itself on a connection error, quitting Kodi or 5 seconds after stopping
Make the Pause Phone Calls preference dependent on the Show Notification preference, as we always need to show a notification when the service is running
Lint is complaining about the new launcher icons in 'res/mipmap-anydpi-v26'
are not in PNG format. These are now defined in XML and lint is probably
not aware of the new XML format for API v26 and higher.
This also fixes usage of "android:layout_marginEnd". Which is only
supported from API v17.
Added running lintFullRelease to travis-CI build.
* Target Sdk Version 26
* Add Adaptive Icon For API 26+
* Update travis to compile against API 26
* Move SVG files to art/launcher/v26/ per CR
* Scale logo to 83%
* Update buildToolsVersion to 26.0.2
* Update travis build-tools to 26.0.2
* Refactored RemoteFragment and created a compound view for the
actual remote. I called it ControlPad to make it more clear what
its main function is.
* Implemented a custom grid layout (SquareGridLayout) that will
always be square. When its width and height are both set to
match_parent, it will take the smallest of the two as the
actual size.
* For devices with a smallest width smaller then 360dp the ControlPad
is sized to the maximum available space. For larger devices we still
use the old fixed sizes.
Refactored code to use styles
* Implemented simple Kodi markup code applier for the Now Playing fragment
* Moved to UIUtils; added early exit; now handles nesting of the same type
* Added handlers for LOWERCASE, CAPITALIZE, LIGHT and COLOR
- LOWERCASE and CAPITALIZE work, LIGHT and COLOR are just stripped out
- inlined the TextAppearanceSpan new's. Turns out they can't be reused.
* updated javadoc
* fixed crash when capitalizing an empty word
* Allow the RemoteActivity and BaseMediaActivity to show a volume controller dialog when hardware volume keys are pressed
** The dialog handles the key events and makes callbacks to the activities to handle showing the dialog itself
* Minor improvements
** Make HighlightButton render in the IDE GUI Editor
** Minor code cleanup
** set currentActivePlayerId = -1; on playerOnStop in BaseMediaActivity to be more consistent
resolvesxbmc/Kore#235
* Removed using the GridLayout from the support library
as this might be causing problems on devices that don't
include the library correctly.
* Replaced using the GridLayout measurement and layout implementations
by our own implementation of a simple grid layout that will evenly distribute
its children among a square sized grid.
* Refactored RemoteFragment and created a compound view for the
actual remote. I called it ControlPad to make it more clear what
its main function is.
* Implemented a custom grid layout (SquareGridLayout) that will
always be square. When its width and height are both set to
match_parent, it will take the smallest of the two as the
actual size.
* For devices with a smallest width smaller then 360dp the ControlPad
is sized to the maximum available space. For larger devices we still
use the old fixed sizes.
* Panel now only closes when collapsed bar is clicked.
This prevents unwanted closing when using the sliders and
buttons.
* Moved collapsed panel size to the compound view so users
of the NowPlayingPanel don't need to look inside the
compound view layout to determine the correct size.