Further code cleanup, IDEA, ProGuard

This commit is contained in:
Joshua Bahnsen 2013-06-07 01:47:57 -07:00
parent fc4bc29a6a
commit 52220ba0ba
48 changed files with 1093 additions and 2147 deletions

2
.gitignore vendored
View File

@ -161,3 +161,5 @@ pip-log.txt
# Mac crap
.DS_Store
out/
proguard_logs/

1
.idea/.name Normal file
View File

@ -0,0 +1 @@
Subsonic-Android

23
.idea/compiler.xml Normal file
View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<option name="DEFAULT_COMPILER" value="Javac" />
<resourceExtensions />
<wildcardResourcePatterns>
<entry name="!?*.java" />
<entry name="!?*.form" />
<entry name="!?*.class" />
<entry name="!?*.groovy" />
<entry name="!?*.scala" />
<entry name="!?*.flex" />
<entry name="!?*.kt" />
<entry name="!?*.clj" />
</wildcardResourcePatterns>
<annotationProcessing>
<profile default="true" name="Default" enabled="false">
<processorPath useClasspath="true" />
</profile>
</annotationProcessing>
</component>
</project>

View File

@ -0,0 +1,5 @@
<component name="CopyrightManager">
<settings default="">
<module2copyright />
</settings>
</component>

5
.idea/encodings.xml Normal file
View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
</project>

View File

@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="android-support-v4">
<CLASSES>
<root url="jar://$PROJECT_DIR$/Android-PullToRefresh/sample/libs/android-support-v4.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="android-support-v41">
<CLASSES>
<root url="jar://$PROJECT_DIR$/Android-PullToRefresh/extras/PullToRefreshViewPager/libs/android-support-v4.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="android-support-v42">
<CLASSES>
<root url="jar://$PROJECT_DIR$/Android-PullToRefresh/extras/PullToRefreshListFragment/libs/android-support-v4.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="android-support-v4-r10">
<CLASSES>
<root url="jar://$PROJECT_DIR$/android-menudrawer-master/samples/libs/android-support-v4-r10.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

10
.idea/misc.xml Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EntryPointsManager">
<entry_points version="2.0" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="Android 4.2.2" project-jdk-type="Android SDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

11
.idea/modules.xml Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Subsonic-Android.iml" filepath="$PROJECT_DIR$/Subsonic-Android.iml" />
<module fileurl="file://$PROJECT_DIR$/Android-PullToRefresh/library/library.iml" filepath="$PROJECT_DIR$/Android-PullToRefresh/library/library.iml" />
<module fileurl="file://$PROJECT_DIR$/android-menudrawer-master/library/library1.iml" filepath="$PROJECT_DIR$/android-menudrawer-master/library/library1.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,5 @@
<component name="DependencyValidationManager">
<state>
<option name="SKIP_IMPORT_STATEMENTS" value="false" />
</state>
</component>

7
.idea/vcs.xml Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

815
.idea/workspace.xml Normal file
View File

@ -0,0 +1,815 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AndroidLayoutPreviewToolWindow">
<option name="state">
<GlobalState>
<option name="visible" value="false" />
</GlobalState>
</option>
</component>
<component name="AndroidLayouts">
<shared>
<config>
<target>android-17</target>
</config>
</shared>
<layouts>
<layout url="file://$PROJECT_DIR$/res/layout/album_buttons.xml">
<config>
<device>Nexus 7</device>
<theme>@android:style/Theme.DeviceDefault</theme>
</config>
</layout>
</layouts>
</component>
<component name="ChangeListManager">
<list default="true" id="c6045714-7712-49eb-b3d0-21a5501c58a7" name="Default" comment="" />
<ignored path="Subsonic-Android.iws" />
<ignored path=".idea/workspace.xml" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
<component name="CreatePatchCommitExecutor">
<option name="PATCH_PATH" value="" />
</component>
<component name="DaemonCodeAnalyzer">
<disable_hints />
</component>
<component name="DebuggerManager">
<ui_properties default_suspend_policy="SuspendAll" default_condition_enabled="true" />
<breakpoint_any default_suspend_policy="SuspendAll" default_condition_enabled="true">
<breakpoint>
<option name="NOTIFY_CAUGHT" value="true" />
<option name="NOTIFY_UNCAUGHT" value="true" />
<option name="ENABLED" value="false" />
<option name="LOG_ENABLED" value="false" />
<option name="LOG_EXPRESSION_ENABLED" value="false" />
<option name="REMOVE_AFTER_HIT" value="false" />
<option name="SUSPEND_POLICY" value="SuspendAll" />
<option name="SUSPEND" value="true" />
<option name="COUNT_FILTER_ENABLED" value="false" />
<option name="COUNT_FILTER" value="0" />
<option name="CONDITION_ENABLED" value="true" />
<option name="CLASS_FILTERS_ENABLED" value="false" />
<option name="INSTANCE_FILTERS_ENABLED" value="false" />
<option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" />
</breakpoint>
<breakpoint>
<option name="NOTIFY_CAUGHT" value="true" />
<option name="NOTIFY_UNCAUGHT" value="true" />
<option name="ENABLED" value="false" />
<option name="LOG_ENABLED" value="false" />
<option name="LOG_EXPRESSION_ENABLED" value="false" />
<option name="REMOVE_AFTER_HIT" value="false" />
<option name="SUSPEND_POLICY" value="SuspendAll" />
<option name="SUSPEND" value="true" />
<option name="COUNT_FILTER_ENABLED" value="false" />
<option name="COUNT_FILTER" value="0" />
<option name="CONDITION_ENABLED" value="true" />
<option name="CLASS_FILTERS_ENABLED" value="false" />
<option name="INSTANCE_FILTERS_ENABLED" value="false" />
<option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" />
</breakpoint>
</breakpoint_any>
<breakpoint_rules />
<ui_properties />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FavoritesManager">
<favorites_list name="Subsonic-Android" />
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="DownloadServiceImpl.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/service/DownloadServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state line="75" column="13" selection-start="3243" selection-end="3243" vertical-scroll-proportion="-5.04" vertical-offset="27" max-vertical-offset="27523">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="MainActivity.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/activity/MainActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state line="69" column="24" selection-start="2609" selection-end="2609" vertical-scroll-proportion="0.0" vertical-offset="515" max-vertical-offset="6953">
<folding>
<element signature="e#16405#16458#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="proguard.cfg" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/proguard.cfg">
<provider selected="true" editor-type-id="text-editor">
<state line="4" column="0" selection-start="98" selection-end="98" vertical-scroll-proportion="0.16873449" vertical-offset="0" max-vertical-offset="799">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="DownloadFile.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/service/DownloadFile.java">
<provider selected="true" editor-type-id="text-editor">
<state line="196" column="20" selection-start="5677" selection-end="5677" vertical-scroll-proportion="0.0" vertical-offset="2603" max-vertical-offset="6154">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Util.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/util/Util.java">
<provider selected="true" editor-type-id="text-editor">
<state line="430" column="23" selection-start="18351" selection-end="18351" vertical-scroll-proportion="0.0" vertical-offset="5844" max-vertical-offset="21301">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="CancellableTask.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/util/CancellableTask.java">
<provider selected="true" editor-type-id="text-editor">
<state line="81" column="0" selection-start="2551" selection-end="2551" vertical-scroll-proportion="0.0" vertical-offset="802" max-vertical-offset="1173">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="UltraSonicAppWidgetProvider4x2.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/provider/UltraSonicAppWidgetProvider4x2.java">
<provider selected="true" editor-type-id="text-editor">
<state line="35" column="0" selection-start="1210" selection-end="1210" vertical-scroll-proportion="0.0" vertical-offset="88" max-vertical-offset="459">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="SubsonicTabActivity.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/activity/SubsonicTabActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state line="621" column="39" selection-start="21794" selection-end="21794" vertical-scroll-proportion="-3.72" vertical-offset="8509" max-vertical-offset="15844">
<folding>
<element signature="e#21518#23016#0" expanded="true" />
<element signature="e#23005#23006#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="DownloadActivity.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/activity/DownloadActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state line="104" column="20" selection-start="4171" selection-end="4171" vertical-scroll-proportion="0.0" vertical-offset="544" max-vertical-offset="17663">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="SelectAlbumActivity.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/activity/SelectAlbumActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state line="139" column="0" selection-start="6048" selection-end="6048" vertical-scroll-proportion="0.0" vertical-offset="1203" max-vertical-offset="12852">
<folding>
<element signature="e#6099#6100#0" expanded="true" />
<element signature="e#11824#11846#0" expanded="true" />
<element signature="e#34333#34390#0" expanded="true" />
<element signature="e#34762#34819#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindManager">
<FindUsagesManager>
<setting name="OPEN_NEW_TAB" value="false" />
</FindUsagesManager>
</component>
<component name="GenerateSignedApkSettings">
<option name="KEY_STORE_PATH" value="C:\Users\Josh\Documents\AndroidKey\sign.key" />
<option name="KEY_ALIAS" value="archrival" />
<option name="REMEMBER_PASSWORDS" value="true" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="GitLogSettings">
<option name="myDateState">
<MyDateState />
</option>
</component>
<component name="IdeDocumentHistory">
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/receiver/A2dpIntentReceiver.java" />
<option value="$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/activity/ChatActivity.java" />
<option value="$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/activity/DownloadActivity.java" />
<option value="$PROJECT_DIR$/Android-PullToRefresh/library/src/com/handmark/pulltorefresh/library/internal/LoadingLayout.java" />
<option value="$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/activity/SearchActivity.java" />
<option value="$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/activity/SelectPlaylistActivity.java" />
<option value="$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/activity/SettingsActivity.java" />
<option value="$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/util/CacheCleaner.java" />
<option value="$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/service/RESTMusicService.java" />
<option value="$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/service/JukeboxService.java" />
<option value="$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/activity/SelectAlbumActivity.java" />
<option value="$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/service/DownloadFile.java" />
<option value="$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/util/Util.java" />
<option value="$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/service/DownloadServiceImpl.java" />
<option value="$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/activity/MainActivity.java" />
<option value="$PROJECT_DIR$/proguard.cfg" />
</list>
</option>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="-8" />
<option name="y" value="-8" />
<option name="width" value="1296" />
<option name="height" value="816" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" />
<OptionsSetting value="true" id="Remove" />
<OptionsSetting value="true" id="Checkout" />
<OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectReloadState">
<option name="STATE" value="0" />
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
</navigator>
<panes>
<pane id="ProjectPane">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="Subsonic-Android" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="External Libraries" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ExternalLibrariesNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="Subsonic-Android" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Subsonic-Android" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="Subsonic-Android" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Subsonic-Android" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="androidapp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="Subsonic-Android" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Subsonic-Android" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="androidapp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="activity" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scope" />
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="GoToFile.includeJavaFiles" value="false" />
<property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.0" />
<property name="AndroidIncludeSystemProguardFile" value="true" />
<property name="options.splitter.main.proportions" value="0.3" />
<property name="AndroidProguardConfigPath" value="C:\Users\Josh\Documents\GitHub\Subsonic-Android\proguard.cfg" />
<property name="ExportedApkPath" value="C:\Users\Josh\Desktop\Subsonic-Android.apk" />
<property name="MemberChooser.sorted" value="false" />
<property name="options.lastSelected" value="editor.preferences.appearance" />
<property name="recentsLimit" value="5" />
<property name="ExportedModule" value="Subsonic-Android" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../../AndroidKey/sign.key" />
<property name="project.structure.side.proportion" value="0.0" />
<property name="ANDROID_EXTENDED_DEVICE_CHOOSER_SERIALS" value="dna:5555" />
<property name="MemberChooser.copyJavadoc" value="false" />
<property name="GoToClass.toSaveIncludeLibraries" value="false" />
<property name="AndroidRunProguardForReleaseBuild" value="true" />
<property name="restartRequiresConfirmation" value="true" />
<property name="MemberChooser.showClasses" value="true" />
<property name="GoToClass.includeLibraries" value="false" />
<property name="options.splitter.details.proportions" value="0.2" />
<property name="options.searchVisible" value="true" />
</component>
<component name="RunManager" selected="Android Application.Subsonic-Android">
<configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests">
<module name="" />
<option name="TESTING_TYPE" value="0" />
<option name="INSTRUMENTATION_RUNNER_CLASS" value="" />
<option name="METHOD_NAME" value="" />
<option name="CLASS_NAME" value="" />
<option name="PACKAGE_NAME" value="" />
<option name="TARGET_SELECTION_MODE" value="EMULATOR" />
<option name="PREFERRED_AVD" value="" />
<option name="USE_COMMAND_LINE" value="true" />
<option name="COMMAND_LINE" value="" />
<option name="WIPE_USER_DATA" value="false" />
<option name="DISABLE_BOOT_ANIMATION" value="false" />
<option name="NETWORK_SPEED" value="full" />
<option name="NETWORK_LATENCY" value="none" />
<option name="CLEAR_LOGCAT" value="false" />
<method />
</configuration>
<configuration default="true" type="Remote" factoryName="Remote">
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" value="javadebug" />
<option name="HOST" value="localhost" />
<option name="PORT" value="5005" />
<method />
</configuration>
<configuration default="true" type="Applet" factoryName="Applet">
<module name="" />
<option name="MAIN_CLASS_NAME" />
<option name="HTML_FILE_NAME" />
<option name="HTML_USED" value="false" />
<option name="WIDTH" value="400" />
<option name="HEIGHT" value="300" />
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
<option name="VM_PARAMETERS" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<method />
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<module name="" />
<envs />
<method />
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="moduleWithDependencies" />
</option>
<envs />
<patterns />
<method />
</configuration>
<configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application">
<module name="" />
<option name="ACTIVITY_CLASS" value="" />
<option name="MODE" value="default_activity" />
<option name="DEPLOY" value="true" />
<option name="TARGET_SELECTION_MODE" value="EMULATOR" />
<option name="PREFERRED_AVD" value="" />
<option name="USE_COMMAND_LINE" value="true" />
<option name="COMMAND_LINE" value="" />
<option name="WIPE_USER_DATA" value="false" />
<option name="DISABLE_BOOT_ANIMATION" value="false" />
<option name="NETWORK_SPEED" value="full" />
<option name="NETWORK_LATENCY" value="none" />
<option name="CLEAR_LOGCAT" value="false" />
<method />
</configuration>
<configuration default="false" name="Subsonic-Android" type="AndroidRunConfigurationType" factoryName="Android Application">
<module name="Subsonic-Android" />
<option name="ACTIVITY_CLASS" value="" />
<option name="MODE" value="default_activity" />
<option name="DEPLOY" value="true" />
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
<option name="PREFERRED_AVD" value="" />
<option name="USE_COMMAND_LINE" value="true" />
<option name="COMMAND_LINE" value="" />
<option name="WIPE_USER_DATA" value="false" />
<option name="DISABLE_BOOT_ANIMATION" value="false" />
<option name="NETWORK_SPEED" value="full" />
<option name="NETWORK_LATENCY" value="none" />
<option name="CLEAR_LOGCAT" value="false" />
<RunnerSettings RunnerId="AndroidDebugRunner" />
<ConfigurationWrapper RunnerId="AndroidDebugRunner" />
<method />
</configuration>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="Android Application.Subsonic-Android" />
</list>
<configuration name="&lt;template&gt;" type="TestNG" default="true" selected="false">
<option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
</configuration>
<configuration name="&lt;template&gt;" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" default="true" selected="false">
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
</configuration>
<configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
<Host>localhost</Host>
<Port>5050</Port>
</configuration>
</component>
<component name="ShelveChangesManager" show_recycled="false" />
<component name="SliceManager">
<option name="analysisUIOptions">
<AnalysisUIOptions />
</option>
</component>
<component name="SvnConfiguration" maxAnnotateRevisions="500" myUseAcceleration="nothing" myAutoUpdateAfterCommit="false" cleanupOnStartRun="false" SSL_PROTOCOLS="all">
<option name="USER" value="" />
<option name="PASSWORD" value="" />
<option name="mySSHConnectionTimeout" value="30000" />
<option name="mySSHReadTimeout" value="30000" />
<option name="LAST_MERGED_REVISION" />
<option name="MERGE_DRY_RUN" value="false" />
<option name="MERGE_DIFF_USE_ANCESTRY" value="true" />
<option name="UPDATE_LOCK_ON_DEMAND" value="false" />
<option name="IGNORE_SPACES_IN_MERGE" value="false" />
<option name="CHECK_NESTED_FOR_QUICK_MERGE" value="false" />
<option name="IGNORE_SPACES_IN_ANNOTATE" value="true" />
<option name="SHOW_MERGE_SOURCES_IN_ANNOTATE" value="true" />
<option name="FORCE_UPDATE" value="false" />
<option name="IGNORE_EXTERNALS" value="false" />
<myIsUseDefaultProxy>false</myIsUseDefaultProxy>
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="c6045714-7712-49eb-b3d0-21a5501c58a7" name="Default" comment="" />
<created>1370584979416</created>
<updated>1370584979416</updated>
</task>
<servers />
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1296" height="816" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3298217" sideWeight="0.6009105" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32776934" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.37784523" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32776934" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Android" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24797407" sideWeight="0.6707132" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Module Dependencies" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3298217" sideWeight="0.6707132" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32928678" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24230146" sideWeight="0.6707132" order="0" side_tool="false" content_ui="combo" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39908952" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32928678" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
</layout>
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="VcsManagerConfiguration">
<option name="OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT" value="true" />
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="true" />
<option name="CHECK_NEW_TODO" value="true" />
<option name="myTodoPanelSettings">
<value>
<are-packages-shown value="false" />
<are-modules-shown value="false" />
<flatten-packages value="false" />
<is-autoscroll-to-source value="false" />
</value>
</option>
<option name="PERFORM_UPDATE_IN_BACKGROUND" value="true" />
<option name="PERFORM_COMMIT_IN_BACKGROUND" value="true" />
<option name="PERFORM_EDIT_IN_BACKGROUND" value="true" />
<option name="PERFORM_CHECKOUT_IN_BACKGROUND" value="true" />
<option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" />
<option name="PERFORM_ROLLBACK_IN_BACKGROUND" value="false" />
<option name="CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND" value="false" />
<option name="CHANGED_ON_SERVER_INTERVAL" value="60" />
<option name="SHOW_ONLY_CHANGED_IN_SELECTION_DIFF" value="true" />
<option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
<option name="DEFAULT_PATCH_EXTENSION" value="patch" />
<option name="SHORT_DIFF_HORIZONTALLY" value="true" />
<option name="SHORT_DIFF_EXTRA_LINES" value="2" />
<option name="SOFT_WRAPS_IN_SHORT_DIFF" value="true" />
<option name="INCLUDE_TEXT_INTO_PATCH" value="false" />
<option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
<option name="SHOW_FILE_HISTORY_DETAILS" value="true" />
<option name="SHOW_VCS_ERROR_NOTIFICATIONS" value="true" />
<option name="SHOW_DIRTY_RECURSIVELY" value="false" />
<option name="LIMIT_HISTORY" value="true" />
<option name="MAXIMUM_HISTORY_ROWS" value="1000" />
<option name="UPDATE_FILTER_SCOPE_NAME" />
<option name="USE_COMMIT_MESSAGE_MARGIN" value="false" />
<option name="COMMIT_MESSAGE_MARGIN_SIZE" value="72" />
<option name="WRAP_WHEN_TYPING_REACHES_RIGHT_MARGIN" value="false" />
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
<option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="false" />
<option name="LAST_COMMIT_MESSAGE" />
<option name="MAKE_NEW_CHANGELIST_ACTIVE" value="false" />
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
<option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
<option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
<option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" value="0.8" />
<option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" />
<option name="ACTIVE_VCS_NAME" />
<option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
<option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
<option name="UPDATE_FILTER_BY_SCOPE" value="false" />
<option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
<option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/service/JukeboxService.java">
<provider selected="true" editor-type-id="text-editor">
<state line="348" column="0" selection-start="11090" selection-end="11090" vertical-scroll-proportion="0.0" vertical-offset="4701" max-vertical-offset="5321">
<folding />
</state>
</provider>
</entry>
<entry file="jar://$APPLICATION_HOME_DIR$/sdk/platforms/android-17/android.jar!/android/os/Looper.class">
<provider selected="true" editor-type-id="text-editor">
<state line="23" column="16" selection-start="712" selection-end="712" vertical-scroll-proportion="0.4075067" vertical-offset="222" max-vertical-offset="595">
<folding />
</state>
</provider>
</entry>
<entry file="jar://$APPLICATION_HOME_DIR$/sdk/platforms/android-17/android.jar!/android/os/Handler.class">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="16" selection-start="564" selection-end="564" vertical-scroll-proportion="0.3324397" vertical-offset="148" max-vertical-offset="1411">
<folding />
</state>
</provider>
</entry>
<entry file="jar://$APPLICATION_HOME_DIR$/sdk/platforms/android-17/android.jar!/android/view/View.class">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="19482">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/activity/DownloadActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state line="104" column="20" selection-start="4171" selection-end="4171" vertical-scroll-proportion="0.0" vertical-offset="544" max-vertical-offset="17663">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/service/DownloadService.java">
<provider selected="true" editor-type-id="text-editor">
<state line="34" column="9" selection-start="1196" selection-end="1196" vertical-scroll-proportion="0.33153638" vertical-offset="64" max-vertical-offset="2057">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/activity/SubsonicTabActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state line="621" column="39" selection-start="21794" selection-end="21794" vertical-scroll-proportion="-3.72" vertical-offset="8509" max-vertical-offset="15844">
<folding>
<element signature="e#21518#23016#0" expanded="true" />
<element signature="e#23005#23006#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/activity/SelectAlbumActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state line="139" column="0" selection-start="6048" selection-end="6048" vertical-scroll-proportion="0.0" vertical-offset="1203" max-vertical-offset="12852">
<folding>
<element signature="e#6099#6100#0" expanded="true" />
<element signature="e#11824#11846#0" expanded="true" />
<element signature="e#34333#34390#0" expanded="true" />
<element signature="e#34762#34819#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/provider/UltraSonicAppWidgetProvider4x2.java">
<provider selected="true" editor-type-id="text-editor">
<state line="35" column="0" selection-start="1210" selection-end="1210" vertical-scroll-proportion="0.0" vertical-offset="88" max-vertical-offset="459">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/util/CancellableTask.java">
<provider selected="true" editor-type-id="text-editor">
<state line="81" column="0" selection-start="2551" selection-end="2551" vertical-scroll-proportion="0.0" vertical-offset="802" max-vertical-offset="1173">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/service/DownloadServiceLifecycleSupport.java">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="4607">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/util/Util.java">
<provider selected="true" editor-type-id="text-editor">
<state line="430" column="23" selection-start="18351" selection-end="18351" vertical-scroll-proportion="0.0" vertical-offset="5844" max-vertical-offset="21301">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/service/DownloadFile.java">
<provider selected="true" editor-type-id="text-editor">
<state line="196" column="20" selection-start="5677" selection-end="5677" vertical-scroll-proportion="0.0" vertical-offset="2603" max-vertical-offset="6154">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/service/DownloadServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state line="75" column="13" selection-start="3243" selection-end="3243" vertical-scroll-proportion="-5.04" vertical-offset="27" max-vertical-offset="27523">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/thejoshwa/ultrasonic/androidapp/activity/MainActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state line="69" column="24" selection-start="2609" selection-end="2609" vertical-scroll-proportion="0.0" vertical-offset="515" max-vertical-offset="6953">
<folding>
<element signature="e#16405#16458#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/proguard.cfg">
<provider selected="true" editor-type-id="text-editor">
<state line="4" column="0" selection-start="98" selection-end="98" vertical-scroll-proportion="0.16873449" vertical-offset="0" max-vertical-offset="799">
<folding />
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="ArtifactsStructureConfigurable.UI">
<settings>
<artifact-editor />
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="FacetStructureConfigurable.UI">
<settings>
<last-edited>Android</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>1.7</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ModuleStructureConfigurable.UI">
<settings>
<last-edited>Android|Subsonic-Android</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectJDKs.UI">
<settings>
<last-edited>Android 4.2.2</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<last-edited>android-support-v4</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

View File

@ -240,8 +240,6 @@ public abstract class PullToRefreshAdapterViewBase<T extends AbsListView> extend
}
}
;
@Override
protected void onPullToRefresh() {
super.onPullToRefresh();

View File

@ -1518,7 +1518,7 @@ public abstract class PullToRefreshBase<T extends View> extends LinearLayout imp
}
public static enum Orientation {
VERTICAL, HORIZONTAL;
VERTICAL, HORIZONTAL
}
public static enum State {

View File

@ -68,11 +68,8 @@ public class PullToRefreshHorizontalScrollView extends PullToRefreshBase<Horizon
@Override
protected boolean isReadyForPullEnd() {
View scrollViewChild = mRefreshableView.getChildAt(0);
if (null != scrollViewChild) {
return mRefreshableView.getScrollX() >= (scrollViewChild.getWidth() - getWidth());
}
return false;
}
return null != scrollViewChild && mRefreshableView.getScrollX() >= (scrollViewChild.getWidth() - getWidth());
}
@TargetApi(9)
final class InternalHorizontalScrollViewSDK9 extends HorizontalScrollView {

View File

@ -67,11 +67,8 @@ public class PullToRefreshScrollView extends PullToRefreshBase<ScrollView> {
@Override
protected boolean isReadyForPullEnd() {
View scrollViewChild = mRefreshableView.getChildAt(0);
if (null != scrollViewChild) {
return mRefreshableView.getScrollY() >= (scrollViewChild.getHeight() - getHeight());
}
return false;
}
return null != scrollViewChild && mRefreshableView.getScrollY() >= (scrollViewChild.getHeight() - getHeight());
}
@TargetApi(9)
final class InternalScrollViewSDK9 extends ScrollView {

View File

@ -46,7 +46,7 @@ public class SoundPullEventListener<V extends View> implements PullToRefreshBase
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
Integer soundResIdObj = mSoundMap.get(event);
if (null != soundResIdObj) {
playSound(soundResIdObj.intValue());
playSound(soundResIdObj);
}
}

View File

@ -181,15 +181,21 @@ public abstract class LoadingLayout extends FrameLayout implements ILoadingLayou
}
public final void setHeight(int height) {
ViewGroup.LayoutParams lp = (ViewGroup.LayoutParams) getLayoutParams();
lp.height = height;
requestLayout();
ViewGroup.LayoutParams lp = getLayoutParams();
if (lp != null) {
lp.height = height;
requestLayout();
}
}
public final void setWidth(int width) {
ViewGroup.LayoutParams lp = (ViewGroup.LayoutParams) getLayoutParams();
lp.width = width;
requestLayout();
ViewGroup.LayoutParams lp = getLayoutParams();
if (lp != null) {
lp.width = width;
requestLayout();
}
}
public final int getContentSize() {

28
Subsonic-Android.iml Normal file
View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android" name="Android">
<configuration>
<option name="UPDATE_PROPERTY_FILES" value="true" />
<notImportedProperties>
<property>MANIFEST_FILE_PATH</property>
<property>RESOURCES_DIR_PATH</property>
<property>ASSETS_DIR_PATH</property>
<property>NATIVE_LIBS_DIR_PATH</property>
</notImportedProperties>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="library1" />
<orderEntry type="module" module-name="library" />
</component>
</module>

View File

@ -33,7 +33,7 @@
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="TVZ3F8DRFJ2JN">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

View File

@ -1,104 +0,0 @@
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package com.handmark.pulltorefresh.library;
public final class R {
public static final class anim {
public static final int slide_in_from_bottom = 0x7f040004;
public static final int slide_in_from_top = 0x7f040005;
public static final int slide_out_to_bottom = 0x7f040006;
public static final int slide_out_to_top = 0x7f040007;
}
public static final class attr {
public static final int ptrAdapterViewBackground = 0x7f010010;
public static final int ptrAnimationStyle = 0x7f01000c;
public static final int ptrDrawable = 0x7f010006;
public static final int ptrDrawableBottom = 0x7f010012;
public static final int ptrDrawableEnd = 0x7f010008;
public static final int ptrDrawableStart = 0x7f010007;
public static final int ptrDrawableTop = 0x7f010011;
public static final int ptrHeaderBackground = 0x7f010001;
public static final int ptrHeaderSubTextColor = 0x7f010003;
public static final int ptrHeaderTextAppearance = 0x7f01000a;
public static final int ptrHeaderTextColor = 0x7f010002;
public static final int ptrListViewExtrasEnabled = 0x7f01000e;
public static final int ptrMode = 0x7f010004;
public static final int ptrOverScroll = 0x7f010009;
public static final int ptrRefreshableViewBackground = 0x7f010000;
public static final int ptrRotateDrawableWhilePulling = 0x7f01000f;
public static final int ptrScrollingWhileRefreshingEnabled = 0x7f01000d;
public static final int ptrShowIndicator = 0x7f010005;
public static final int ptrSubHeaderTextAppearance = 0x7f01000b;
}
public static final class dimen {
public static final int header_footer_left_right_padding = 0x7f070003;
public static final int header_footer_top_bottom_padding = 0x7f070004;
public static final int indicator_corner_radius = 0x7f070001;
public static final int indicator_internal_padding = 0x7f070002;
public static final int indicator_right_padding = 0x7f070000;
}
public static final class drawable {
public static final int default_ptr_flip = 0x7f02000e;
public static final int default_ptr_rotate = 0x7f02000f;
public static final int indicator_arrow = 0x7f02004c;
public static final int indicator_bg_bottom = 0x7f02004d;
public static final int indicator_bg_top = 0x7f02004e;
}
public static final class id {
public static final int both = 0x7f060003;
public static final int disabled = 0x7f060000;
public static final int fl_inner = 0x7f060090;
public static final int flip = 0x7f060008;
public static final int gridview = 0x7f060009;
public static final int manualOnly = 0x7f060004;
public static final int pullDownFromTop = 0x7f060005;
public static final int pullFromEnd = 0x7f060002;
public static final int pullFromStart = 0x7f060001;
public static final int pullUpFromBottom = 0x7f060006;
public static final int pull_to_refresh_image = 0x7f060091;
public static final int pull_to_refresh_progress = 0x7f060092;
public static final int pull_to_refresh_sub_text = 0x7f060094;
public static final int pull_to_refresh_text = 0x7f060093;
public static final int rotate = 0x7f060007;
public static final int scrollview = 0x7f06000b;
public static final int webview = 0x7f06000a;
}
public static final class layout {
public static final int pull_to_refresh_header_horizontal = 0x7f030020;
public static final int pull_to_refresh_header_vertical = 0x7f030021;
}
public static final class string {
public static final int pull_to_refresh_from_bottom_pull_label = 0x7f080003;
public static final int pull_to_refresh_from_bottom_refreshing_label = 0x7f080005;
public static final int pull_to_refresh_from_bottom_release_label = 0x7f080004;
public static final int pull_to_refresh_pull_label = 0x7f080000;
public static final int pull_to_refresh_refreshing_label = 0x7f080002;
public static final int pull_to_refresh_release_label = 0x7f080001;
}
public static final class styleable {
public static final int[] PullToRefresh = { 0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005, 0x7f010006, 0x7f010007, 0x7f010008, 0x7f010009, 0x7f01000a, 0x7f01000b, 0x7f01000c, 0x7f01000d, 0x7f01000e, 0x7f01000f, 0x7f010010, 0x7f010011, 0x7f010012 };
public static final int PullToRefresh_ptrAdapterViewBackground = 16;
public static final int PullToRefresh_ptrAnimationStyle = 12;
public static final int PullToRefresh_ptrDrawable = 6;
public static final int PullToRefresh_ptrDrawableBottom = 18;
public static final int PullToRefresh_ptrDrawableEnd = 8;
public static final int PullToRefresh_ptrDrawableStart = 7;
public static final int PullToRefresh_ptrDrawableTop = 17;
public static final int PullToRefresh_ptrHeaderBackground = 1;
public static final int PullToRefresh_ptrHeaderSubTextColor = 3;
public static final int PullToRefresh_ptrHeaderTextAppearance = 10;
public static final int PullToRefresh_ptrHeaderTextColor = 2;
public static final int PullToRefresh_ptrListViewExtrasEnabled = 14;
public static final int PullToRefresh_ptrMode = 4;
public static final int PullToRefresh_ptrOverScroll = 9;
public static final int PullToRefresh_ptrRefreshableViewBackground = 0;
public static final int PullToRefresh_ptrRotateDrawableWhilePulling = 15;
public static final int PullToRefresh_ptrScrollingWhileRefreshingEnabled = 13;
public static final int PullToRefresh_ptrShowIndicator = 5;
public static final int PullToRefresh_ptrSubHeaderTextAppearance = 11;
}
}

View File

@ -1,3 +1,5 @@
/*___Generated_by_IDEA___*/
/** Automatically generated file. DO NOT MODIFY */
package com.thejoshwa.ultrasonic.androidapp;

View File

@ -0,0 +1,7 @@
/*___Generated_by_IDEA___*/
package com.thejoshwa.ultrasonic.androidapp;
/* This stub is only used by the IDE. It is NOT the Manifest class actually packed into the APK */
public final class Manifest {
}

File diff suppressed because it is too large Load Diff

View File

@ -1,53 +0,0 @@
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package net.simonvt.menudrawer;
public final class R {
public static final class attr {
public static final int mdActiveIndicator = 0x7f010017;
public static final int mdAllowIndicatorAnimation = 0x7f01001d;
public static final int mdContentBackground = 0x7f010014;
public static final int mdDropShadow = 0x7f01001b;
public static final int mdDropShadowColor = 0x7f01001a;
public static final int mdDropShadowEnabled = 0x7f010018;
public static final int mdDropShadowSize = 0x7f010019;
public static final int mdMaxAnimationDuration = 0x7f01001e;
public static final int mdMenuBackground = 0x7f010015;
public static final int mdMenuSize = 0x7f010016;
public static final int mdTouchBezelSize = 0x7f01001c;
public static final int menuDrawerStyle = 0x7f010013;
}
public static final class color {
public static final int md__defaultBackground = 0x7f090000;
}
public static final class id {
public static final int mdActiveViewPosition = 0x7f060011;
public static final int mdContent = 0x7f06000c;
public static final int mdMenu = 0x7f06000d;
public static final int md__content = 0x7f06000e;
public static final int md__drawer = 0x7f060010;
public static final int md__menu = 0x7f06000f;
}
public static final class style {
public static final int Widget = 0x7f0a0000;
public static final int Widget_MenuDrawer = 0x7f0a0001;
}
public static final class styleable {
public static final int[] MenuDrawer = { 0x7f010014, 0x7f010015, 0x7f010016, 0x7f010017, 0x7f010018, 0x7f010019, 0x7f01001a, 0x7f01001b, 0x7f01001c, 0x7f01001d, 0x7f01001e };
public static final int MenuDrawer_mdActiveIndicator = 3;
public static final int MenuDrawer_mdAllowIndicatorAnimation = 9;
public static final int MenuDrawer_mdContentBackground = 0;
public static final int MenuDrawer_mdDropShadow = 7;
public static final int MenuDrawer_mdDropShadowColor = 6;
public static final int MenuDrawer_mdDropShadowEnabled = 4;
public static final int MenuDrawer_mdDropShadowSize = 5;
public static final int MenuDrawer_mdMaxAnimationDuration = 10;
public static final int MenuDrawer_mdMenuBackground = 1;
public static final int MenuDrawer_mdMenuSize = 2;
public static final int MenuDrawer_mdTouchBezelSize = 8;
}
}

View File

@ -2,6 +2,7 @@
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-keepattributes SourceFile,LineNumberTable
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

View File

@ -92,7 +92,7 @@
a:layout_gravity="bottom"
a:gravity="bottom"
a:paddingBottom="4dip"
a:paddingTop="4dip" >"
a:paddingTop="4dip" >
<ImageButton
a:id="@+id/control_previous"

View File

@ -5,7 +5,7 @@
a:minWidth="250dp"
a:minHeight="250dp"
a:orientation="vertical"
a:background="@drawable/appwidget_dark_bg_trans" >"
a:background="@drawable/appwidget_dark_bg_trans" >
<ImageView
a:id="@+id/appwidget_coverart"

View File

@ -3,7 +3,6 @@
android:id="@+id/now_playing"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="vertical"
android:visibility="gone" >

View File

@ -13,12 +13,12 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:textSize="20dp"
android:textSize="20sp"
android:text="@string/common.name" />
<EditText
android:id="@+id/get_playlist_name"
android:inputType="text"
android:layout_width="fill_parent"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="4dp"
@ -35,12 +35,12 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:textSize="20dp"
android:textSize="20sp"
android:text="@string/common.comment" />
<EditText
android:id="@+id/get_playlist_comment"
android:inputType="text"
android:layout_width="fill_parent"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="4dp"
@ -57,11 +57,11 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:textSize="20dp"
android:textSize="20sp"
android:text="@string/common.public" />
<CheckBox
android:id="@+id/get_playlist_public"
android:layout_width="fill_parent"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="4dp"

View File

@ -12,7 +12,7 @@
a:checkMark="@drawable/btn_check_custom"
a:gravity="center_vertical"
a:paddingLeft="1dip"
a:visibility="gone" />"
a:visibility="gone" />
<include layout="@layout/video_details"
a:layout_gravity="center_vertical" />

View File

@ -169,7 +169,13 @@ public final class ChatActivity extends SubsonicTabActivity {
private void sendMessage() {
if (messageEditText != null) {
final String message;
message = messageEditText.getText().toString();
Editable text = messageEditText.getText();
if (text == null) {
return;
}
message = text.toString();
if (!Util.isNullOrWhiteSpace(message)) {
messageEditText.setText("");

View File

@ -1070,7 +1070,7 @@ public class DownloadActivity extends SubsonicTabActivity implements OnGestureLi
msPlayed = Math.max(0, downloadService.getPlayerPosition());
duration = downloadService.getPlayerDuration();
final int msTotal = duration == null ? 0 : duration;
final int msTotal = duration;
seekTo = msPlayed + ms > msTotal ? msTotal : msPlayed + ms;
downloadService.seekTo(seekTo);
return null;

View File

@ -72,16 +72,13 @@ public class MainActivity extends SubsonicTabActivity {
loadSettings();
final View buttons = LayoutInflater.from(this).inflate(R.layout.main_buttons, null);
final View serverButton = buttons.findViewById(R.id.main_select_server);
final TextView serverTextView = (TextView) serverButton.findViewById(R.id.main_select_server_2);
final View musicTitle = buttons.findViewById(R.id.main_music);
final View artistsButton = buttons.findViewById(R.id.main_artists_button);
final View albumsButton = buttons.findViewById(R.id.main_albums_button);
final View genresButton = buttons.findViewById(R.id.main_genres_button);
final View videosTitle = buttons.findViewById(R.id.main_videos_title);
final View songsTitle = buttons.findViewById(R.id.main_songs);
final View randomSongsButton = buttons.findViewById(R.id.main_songs_button);
final View songsStarredButton = buttons.findViewById(R.id.main_songs_starred);
@ -95,7 +92,6 @@ public class MainActivity extends SubsonicTabActivity {
final View albumsAlphaByNameButton = buttons.findViewById(R.id.main_albums_alphaByName);
final View albumsAlphaByArtistButton = buttons.findViewById(R.id.main_albums_alphaByArtist);
final View videosButton = buttons.findViewById(R.id.main_videos);
final View dummyView = findViewById(R.id.main_dummy);
boolean shouldShowDialog = false;

View File

@ -85,9 +85,9 @@ public class SearchActivity extends SubsonicTabActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
getActionBar().setTitle(R.string.common_appname);
getActionBar().setSubtitle(R.string.search_title);
setActionBarTitle(R.string.common_appname);
setActionBarSubtitle(R.string.search_title);
View searchMenuItem = findViewById(R.id.menu_search);
menuDrawer.setActiveView(searchMenuItem);

View File

@ -251,8 +251,10 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
}
private void playNow(final boolean shuffle, final boolean append) {
if(getSelectedSongs(albumListView).size() > 0) {
download(append, false, !append, false, shuffle, getSelectedSongs(albumListView));
List<MusicDirectory.Entry> selectedSongs = getSelectedSongs(albumListView);
if (selectedSongs.size() > 0) {
download(append, false, !append, false, shuffle, selectedSongs);
selectAll(false, false);
}
else {

View File

@ -81,9 +81,9 @@ public class SelectPlaylistActivity extends SubsonicTabActivity implements Adapt
View playlistsMenuItem = findViewById(R.id.menu_playlists);
menuDrawer.setActiveView(playlistsMenuItem);
getActionBar().setTitle(R.string.common_appname);
getActionBar().setSubtitle(R.string.playlist_label);
setActionBarTitle(R.string.common_appname);
setActionBarSubtitle(R.string.playlist_label);
load();
}

View File

@ -243,10 +243,12 @@ public class SettingsActivity extends PreferenceActivity implements SharedPrefer
}
});
SharedPreferences prefs = Util.getPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);
SharedPreferences preferences = Util.getPreferences(this);
preferences.registerOnSharedPreferenceChangeListener(this);
getActionBar().setSubtitle(R.string.menu_settings);
if (actionBar != null) {
actionBar.setSubtitle(R.string.menu_settings);
}
update();
}

View File

@ -69,8 +69,7 @@ public class Version implements Comparable<Version> {
if (beta != version.beta) return false;
if (bugfix != version.bugfix) return false;
if (major != version.major) return false;
return minor == version.minor;
return major == version.major && minor == version.minor;
}
/**

View File

@ -40,15 +40,10 @@ public class A2dpIntentReceiver extends BroadcastReceiver {
avrcpIntent.putExtra("duration", (long) duration);
}
if (playerPosition != null) {
avrcpIntent.putExtra("position", (long) playerPosition);
}
avrcpIntent.putExtra("position", (long) playerPosition);
avrcpIntent.putExtra("ListSize", (long) listSize);
if (listSize != null) {
avrcpIntent.putExtra("ListSize", (long) listSize);
}
switch (downloadService.getPlayerState()) {
switch (downloadService.getPlayerState()) {
case STARTED:
avrcpIntent.putExtra("playing", true);
break;

View File

@ -199,7 +199,7 @@ public class DownloadFile {
if (saveWhenDone && !isPlaying) {
Util.renameFile(completeFile, saveFile);
saveWhenDone = false;
} else if(completeWhenDone && !isPlaying) {
} else if (completeWhenDone && !isPlaying) {
if (save) {
Util.renameFile(partialFile, saveFile);
mediaStoreService.saveInMediaStore(DownloadFile.this);

View File

@ -130,7 +130,6 @@ public class DownloadServiceImpl extends Service implements DownloadService {
private AudioManager audioManager;
private int secondaryProgress = -1;
private boolean autoPlayStart = false;
private static Bitmap lockScreenBitmap;
private final static int lockScreenBitmapSize = 500;
static {
@ -160,7 +159,7 @@ public class DownloadServiceImpl extends Service implements DownloadService {
public void run() {
Looper.prepare();
if (mediaPlayer instanceof MediaPlayer && mediaPlayer != null) {
if (mediaPlayer != null) {
mediaPlayer.release();
}
@ -192,7 +191,7 @@ public class DownloadServiceImpl extends Service implements DownloadService {
audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
if (mediaPlayer instanceof MediaPlayer && mediaPlayer != null) {
if (mediaPlayer != null) {
mediaPlayer.release();
}
@ -346,7 +345,7 @@ public class DownloadServiceImpl extends Service implements DownloadService {
currentPlaying = downloadList.get(0);
currentPlaying.setPlaying(true);
}
checkDownloads();
}
@ -489,12 +488,14 @@ public class DownloadServiceImpl extends Service implements DownloadService {
public synchronized void clearIncomplete() {
reset();
Iterator<DownloadFile> iterator = downloadList.iterator();
while (iterator.hasNext()) {
DownloadFile downloadFile = iterator.next();
if (!downloadFile.isCompleteFileAvailable()) {
iterator.remove();
}
}
lifecycleSupport.serializeDownloadQueue();
updateJukeboxPlaylist();
}
@ -1142,7 +1143,8 @@ public class DownloadServiceImpl extends Service implements DownloadService {
try {
if (currentPlaying != null) {
if (currentSong != currentPlaying.getSong()) {
Bitmap lockScreenBitmap;
if (currentSong != currentPlaying.getSong()) {
currentSong = currentPlaying.getSong();
lockScreenBitmap = FileUtil.getAlbumArtBitmap(this, currentSong, lockScreenBitmapSize, true);
} else {
@ -1194,7 +1196,8 @@ public class DownloadServiceImpl extends Service implements DownloadService {
private synchronized void doPlay(final DownloadFile downloadFile, final int position, final boolean start) {
try {
downloadFile.setPlaying(true);
downloadFile.setPlaying(false);
//downloadFile.setPlaying(true);
final File file = downloadFile.isCompleteFileAvailable() ? downloadFile.getCompleteFile() : downloadFile.getPartialFile();
boolean partial = file.equals(downloadFile.getPartialFile());
downloadFile.updateModificationDate();
@ -1206,14 +1209,15 @@ public class DownloadServiceImpl extends Service implements DownloadService {
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
String dataSource = file.getPath();
if(partial) {
if (partial) {
if (proxy == null) {
proxy = new StreamProxy(this);
proxy.start();
}
dataSource = String.format("http://127.0.0.1:%d/%s", proxy.getPort(), URLEncoder.encode(dataSource, Constants.UTF_8));
Log.i(TAG, "Data Source: " + dataSource);
} else if(proxy != null) {
} else if (proxy != null) {
proxy.stop();
proxy = null;
}
@ -1284,7 +1288,7 @@ public class DownloadServiceImpl extends Service implements DownloadService {
try {
final File file = downloadFile.isCompleteFileAvailable() ? downloadFile.getCompleteFile() : downloadFile.getPartialFile();
if(nextMediaPlayer != null) {
if (nextMediaPlayer != null) {
nextMediaPlayer.setOnCompletionListener(null);
nextMediaPlayer.release();
nextMediaPlayer = null;
@ -1310,7 +1314,7 @@ public class DownloadServiceImpl extends Service implements DownloadService {
boolean gaplessPlayback = Util.getGaplessPlaybackPreference(DownloadServiceImpl.this);
if(gaplessPlayback && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN && (playerState == PlayerState.STARTED || playerState == PlayerState.PAUSED)) {
if (gaplessPlayback && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN && (playerState == PlayerState.STARTED || playerState == PlayerState.PAUSED)) {
mediaPlayer.setNextMediaPlayer(nextMediaPlayer);
nextSetup = true;
}
@ -1361,8 +1365,8 @@ public class DownloadServiceImpl extends Service implements DownloadService {
Log.i(TAG, "Ending position " + pos + " of " + duration);
if (!isPartial || (downloadFile.isWorkDone() && (Math.abs(duration - pos) < 10000))) {
if(nextPlaying != null && nextPlayerState == PlayerState.PREPARED) {
if(!nextSetup) {
if (nextPlaying != null && nextPlayerState == PlayerState.PREPARED) {
if (!nextSetup) {
playNext(true);
} else {
nextSetup = false;
@ -1375,7 +1379,6 @@ public class DownloadServiceImpl extends Service implements DownloadService {
return;
}
// If file is not completely downloaded, restart the playback from the current position.
synchronized (DownloadServiceImpl.this) {
if (downloadFile.isWorkDone()) {
// Complete was called early even though file is fully buffered
@ -1452,7 +1455,7 @@ public class DownloadServiceImpl extends Service implements DownloadService {
if (downloadList.isEmpty() && backgroundDownloadList.isEmpty()) {
return;
}
// Need to download current playing?
if (currentPlaying != null && currentPlaying != currentDownloading && !currentPlaying.isWorkDone()) {
// Cancel current download, if necessary.
@ -1467,58 +1470,58 @@ public class DownloadServiceImpl extends Service implements DownloadService {
// Find a suitable target for download.
else if (currentDownloading == null || currentDownloading.isWorkDone() || currentDownloading.isFailed() && (!downloadList.isEmpty() || !backgroundDownloadList.isEmpty())) {
currentDownloading = null;
currentDownloading = null;
int n = size();
int preloaded = 0;
if(n != 0) {
int start = currentPlaying == null ? 0 : getCurrentPlayingIndex();
if(start == -1) {
start = 0;
}
int i = start;
do {
DownloadFile downloadFile = downloadList.get(i);
if (!downloadFile.isWorkDone()) {
if (downloadFile.shouldSave() || preloaded < Util.getPreloadCount(this)) {
currentDownloading = downloadFile;
currentDownloading.download();
cleanupCandidates.add(currentDownloading);
if(i == (start + 1)) {
setNextPlayerState(DOWNLOADING);
}
break;
}
} else if (currentPlaying != downloadFile) {
preloaded++;
}
if(n != 0) {
int start = currentPlaying == null ? 0 : getCurrentPlayingIndex();
if (start == -1) {
start = 0;
}
int i = start;
do {
DownloadFile downloadFile = downloadList.get(i);
if (!downloadFile.isWorkDone()) {
if (downloadFile.shouldSave() || preloaded < Util.getPreloadCount(this)) {
currentDownloading = downloadFile;
currentDownloading.download();
cleanupCandidates.add(currentDownloading);
if(i == (start + 1)) {
setNextPlayerState(DOWNLOADING);
}
break;
}
} else if (currentPlaying != downloadFile) {
preloaded++;
}
i = (i + 1) % n;
} while (i != start);
}
if((preloaded + 1 == n || preloaded >= Util.getPreloadCount(this) || downloadList.isEmpty()) && !backgroundDownloadList.isEmpty()) {
for(int i = 0; i < backgroundDownloadList.size(); i++) {
DownloadFile downloadFile = backgroundDownloadList.get(i);
if(downloadFile.isWorkDone() && (!downloadFile.shouldSave() || downloadFile.isSaved())) {
// Don't need to keep list like active song list
backgroundDownloadList.remove(downloadFile);
i--;
} else {
currentDownloading = downloadFile;
currentDownloading.download();
cleanupCandidates.add(currentDownloading);
break;
}
}
}
i = (i + 1) % n;
} while (i != start);
}
if ((preloaded + 1 == n || preloaded >= Util.getPreloadCount(this) || downloadList.isEmpty()) && !backgroundDownloadList.isEmpty()) {
for (int i = 0; i < backgroundDownloadList.size(); i++) {
DownloadFile downloadFile = backgroundDownloadList.get(i);
if (downloadFile.isWorkDone() && (!downloadFile.shouldSave() || downloadFile.isSaved())) {
// Don't need to keep list like active song list
backgroundDownloadList.remove(downloadFile);
i--;
} else {
currentDownloading = downloadFile;
currentDownloading.download();
cleanupCandidates.add(currentDownloading);
break;
}
}
}
}
// Delete obsolete .partial and .complete files.
cleanup();
}
private synchronized void checkShufflePlay() {
// Get users desired random playlist size
int listSize = Util.getMaxSongs(this);

View File

@ -347,7 +347,6 @@ public class JukeboxService {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.jukebox_volume, null);
progressBar = (ProgressBar) view.findViewById(R.id.jukebox_volume_progress_bar);
setView(view);
setGravity(Gravity.TOP, 0, 0);
}

View File

@ -727,7 +727,7 @@ public class RESTMusicService implements MusicService {
}
@Override
public Bitmap getCoverArt(Context context, MusicDirectory.Entry entry, int size, boolean saveToFile, boolean highQuality, ProgressListener progressListener) throws Exception {
public Bitmap getCoverArt(Context context, final MusicDirectory.Entry entry, int size, boolean saveToFile, boolean highQuality, ProgressListener progressListener) throws Exception {
// Synchronize on the entry so that we don't download concurrently for
// the same song.
if (entry == null) {

View File

@ -230,9 +230,9 @@ public class CacheCleaner {
playlistFiles.remove(FileUtil.getPlaylistFile(playlist.getName()));
}
for(File playlist : playlistFiles) {
playlist.delete();
}
for (File playlist : playlistFiles) {
playlist.delete();
}
} catch (RuntimeException x) {
Log.e(TAG, "Error in playlist cache cleaning.", x);
}

View File

@ -429,7 +429,7 @@ public class Util extends DownloadActivity {
}
public static void renameFile(File from, File to) throws IOException {
if(from.renameTo(to)) {
if (from.renameTo(to)) {
Log.i(TAG, "Renamed " + from + " to " + to);
} else {
atomicCopy(from, to);
@ -870,10 +870,6 @@ public class Util extends DownloadActivity {
} else {
if (song != currentSong) {
currentSong = song;
if (Util.getShouldSendBluetoothAlbumArt(context)) {
//albumArtBitmap = FileUtil.getAlbumArtBitmap(context, song, albumArtImageSize, false);
}
}
String title = song.getTitle();
@ -895,24 +891,13 @@ public class Util extends DownloadActivity {
File albumArtFile = FileUtil.getAlbumArtFile(context, song);
avrcpIntent.putExtra("coverart", albumArtFile.getAbsolutePath());
avrcpIntent.putExtra("cover", albumArtFile.getAbsolutePath());
}
//avrcpIntent.putExtra("cover", albumArtBitmap);
//avrcpIntent.putExtra("coverart", albumArtBitmap);
}
if (playerPosition != null) {
avrcpIntent.putExtra("position", (long) playerPosition);
}
if (id != null) {
avrcpIntent.putExtra("id", (long) id);
}
if (listSize != null) {
avrcpIntent.putExtra("ListSize", (long) listSize);
}
if (duration != null) {
avrcpIntent.putExtra("position", (long) playerPosition);
avrcpIntent.putExtra("id", (long) id);
avrcpIntent.putExtra("ListSize", (long) listSize);
if (duration != null) {
avrcpIntent.putExtra("duration", (long) duration);
}
}
@ -936,9 +921,6 @@ public class Util extends DownloadActivity {
if (song != currentSong) {
currentSong = song;
if (Util.getShouldSendBluetoothAlbumArt(context)) {
//albumArtBitmap = FileUtil.getAlbumArtBitmap(context, song, albumArtImageSize, false);
}
}
String title = song.getTitle();
@ -960,24 +942,13 @@ public class Util extends DownloadActivity {
File albumArtFile = FileUtil.getAlbumArtFile(context, song);
avrcpIntent.putExtra("coverart", albumArtFile.getAbsolutePath());
avrcpIntent.putExtra("cover", albumArtFile.getAbsolutePath());
//avrcpIntent.putExtra("cover", albumArtBitmap);
//avrcpIntent.putExtra("coverart", albumArtBitmap);
}
if (playerPosition != null) {
avrcpIntent.putExtra("position", (long) playerPosition);
}
if (id != null) {
avrcpIntent.putExtra("id", (long) id);
}
if (listSize != null) {
avrcpIntent.putExtra("ListSize", (long) listSize);
}
if (duration != null) {
avrcpIntent.putExtra("position", (long) playerPosition);
avrcpIntent.putExtra("id", (long) id);
avrcpIntent.putExtra("ListSize", (long) listSize);
if (duration != null) {
avrcpIntent.putExtra("duration", (long) duration);
}