In my test environment has not been confirmed, we received reports that some users can not play.
Please tell me if that situation occurs if the same symptoms.
Describes the changes to For reference:
The latest version now supports OwnCloud.
How do was respond in that? It does not contain OwnCloud file extension in the URL of the song.
Example ampache:
/play/index.php?ssid=7195d26dc6dea2766d8fa85168ff81a9&oid=26372&uid=2&name=/AC%2FDC%20-%20Hold%20Me%20Back.mp3
Example owncloud:
/play/index.php?ssid=7195d26dc6dea2766d8fa85168ff81a9&oid=26372
The OwnCloud are no parameters in the Name.
I was to determine the types of files based on the previous parameter. And a MP3 or Ogg or that is?
But because the extension to OwnCloud are lost without it.
This is a cause may not play on some devices.
Please share your experience any information about something else.
Tuesday, January 31, 2012
Friday, January 27, 2012
JustPlayer of 2.39 has been released
The main modification is in writing the previous entry.
Bug fixes:
+ Optimized the process of updating the widget
+ Optimized the display of playing time
+ Optimized the delay of the image reading
+ Fixed Handling session timeouts
+ Fixed Footer processing
Bug fixes:
+ Optimized the process of updating the widget
+ Optimized the display of playing time
+ Optimized the delay of the image reading
+ Fixed Handling session timeouts
+ Fixed Footer processing
Wednesday, January 25, 2012
Scheduled for release this week
This week is a little update. The reason so busy at work.
The main modification is compatible OwnCloud.
*** The link has been deleted ***
The main modification is compatible OwnCloud.
1 Can now play music OwnCloud.
2 Indexes can now be generated even if special characters are used.
3 Fix the delay loading process
4 Music can now be synchronized with the synchronization process
Publish the application for testing.
*** The link has been deleted ***
http://dl.dropbox.com/u/8050603/JustPlayer.apk
(This is JustPlayer)
http://dl.dropbox.com/u/8050603/Just%20Player%20ft.%20Ampache.apk
(This is Ampache Plugin ver1)
http://dl.dropbox.com/u/8050603/AmpacheProvider_fix.apk
(This is Ampache Plugin ver2)
There are two plug-in Ampache.
AndroidSDK2.1 ver1 is less so is not available using the API will not work.
Instead, the full string conversion.
***
Monday, January 23, 2012
HTML escaping in the XML processing
The entry because there was a problem parsing the XML. HTML escape characters were included in the data obtained from OwnCloud. Therefore, it is the error occurred in retrieving the data.
<artist id='2'>
<name>Die Ärzte</name>
<albums>1</albums>
<songs>13</songs>
<rating>0</rating>
<preciserating>0</preciserating>
</artist>
Ä :This is an escaped string
There was an error reading this XML
01-23 17:40:16.515: E/AmpacheProvider(13269): XMLHandler.XmlPullParserException 01-23 17:40:16.515: E/AmpacheProvider(13269): org.xmlpull.v1.XmlPullParserException: unresolved: Ä (position:TEXT @147:28 in java.io.StringReader@413dfa78) 01-23 17:40:16.515: E/AmpacheProvider(13269): at org.kxml2.io.KXmlParser.checkRelaxed(KXmlParser.java:302) 01-23 17:40:16.515: E/AmpacheProvider(13269): at org.kxml2.io.KXmlParser.readEntity(KXmlParser.java:1268) 01-23 17:40:16.515: E/AmpacheProvider(13269): at org.kxml2.io.KXmlParser.readValue(KXmlParser.java:1385) 01-23 17:40:16.515: E/AmpacheProvider(13269): at org.kxml2.io.KXmlParser.next(KXmlParser.java:390) 01-23 17:40:16.515: E/AmpacheProvider(13269): at org.kxml2.io.KXmlParser.next(KXmlParser.java:310) 01-23 17:40:16.515: E/AmpacheProvider(13269): at org.kxml2.io.KXmlParser.nextText(KXmlParser.java:2056) 01-23 17:40:16.515: E/AmpacheProvider(13269): at jp.co.kayo.android.localplayer.ds.ampache.util.XMLUtils.getTextValue(XMLUtils.java:26)
Reading resulted in an error because it was determined that the data is stored in the form of ENTITY_REF type instead of TEXT type.
Actual processing are as follows.
public String getTextValue(XmlPullParser parser){
try {
return parser.nextText();
} catch (XmlPullParserException e) {
Logger.e("XMLHandler.XmlPullParserException", e);
} catch (IOException e) {
Logger.e("XMLHandler.IOException", e);
}
return "";
}
Therefore, I tried replacing the nextToken nextText to the exact process.
StringBuilder buf = new StringBuilder();
do{
int type = parser.nextToken();
if(type == XmlPullParser.TEXT || type == XmlPullParser.CDSECT){
buf.append(parser.getText());
}
else if(type == XmlPullParser.ENTITY_REF){
//empty
}
else{
break;
}
}while(true);
return buf.toString();
I used the nextToken to avoid the checking process.
And the process has been divided into multiple combining text
This process is now as follows:
Die Ärzte -> Die rzte
But this is not enough.
Added the following code to restore the escaped string.
StringBuilder buf = new StringBuilder();
do{
int type = parser.nextToken();
if(type == XmlPullParser.TEXT || type == XmlPullParser.CDSECT){
buf.append(parser.getText());
}
else if(type == XmlPullParser.ENTITY_REF){
buf.append(Html.fromHtml("&"+parser.getName()+";").toString());
}
else{
break;
}
}while(true);
return buf.toString();
Die Ärzte -> Die Ärzte
This is not smart. Works as intended But.
If there is a correct implementation for ENTITY_REF. I want to know
This code is not going to release
Sunday, January 22, 2012
E.g: Next Feature
Hi there
The following items feature development:
1. Cache can be generated in Playlist and Artist and Album.
2. Cache can be delete in Playlist and Artist and Album.
3. Show only those with Cache(For offline use)
4. Change the file Cache (alternative download)
5. Delete the cache automatically counts up the Plays. However, recent registration date and time to be excluded
Therefore need to be implement:
Change Database -
* Flags of the existence of Cached
* Field of Plays
Control mechanism of the download process -
Saturday, January 21, 2012
About URLConnection
Today is Chinese New Year.
The market is so concerned about the comments after the release, so I can not support.
Yes, just released a new version.
The main modification is related to changes in layout and menu display album. Once, several bug fixes.
We also fixed with respect to the subject and then also the URL connection.
Changed the way I say the right one before rather than fixed.
URL connection handling has been changed about two weeks ago.
This is a fix for concurrent communication with SSL, the scope of my testing was working well.
However, commenting on reports that the market is gets stuck out.
Specifically, the following has been changed.
Two weeks ago between :
After the change:
first approach is generic, it is very easy to connect was just passing the URL. However, some users can not Basic authentication, it was reported that an SSL connection or not. And now the more unstable the connection request.
So, we changed the usage of HttpClient. This is to work look, may not be able to connect port 8080, and in case the connection itself fails.
These are must be supported patient.
But for those in need now, first aid anyway
Has been changed as follows.
Try to look at it for a while.
The market is so concerned about the comments after the release, so I can not support.
Yes, just released a new version.
The main modification is related to changes in layout and menu display album. Once, several bug fixes.
We also fixed with respect to the subject and then also the URL connection.
Changed the way I say the right one before rather than fixed.
URL connection handling has been changed about two weeks ago.
This is a fix for concurrent communication with SSL, the scope of my testing was working well.
However, commenting on reports that the market is gets stuck out.
Specifically, the following has been changed.
Two weeks ago between :
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(CONNECTION_TIMEOUT);
connection.setReadTimeout(CONNECTION_TIMEOUT);
int responseCode = connection.getResponseCode();
if (responseCode == 200) {
in = connection.getInputStream();
}
After the change:
synchronized SchemeRegistry getRegistry(){
if(mSchemeRegistry == null){
mSchemeRegistry = new SchemeRegistry();
// http scheme
mSchemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
// https scheme
mSchemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(), 443));
}
return mSchemeRegistry;
}
synchronized BasicHttpParams getHttpParams(){
if(mParams == null){
mParams = new BasicHttpParams();
mParams.setParameter(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, 30);
//mParams.setParameter(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE, new ConnPerRouteBean(30));
mParams.setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, false);
HttpConnectionParams.setSocketBufferSize(mParams, SOCK_BUFSIZE);
HttpConnectionParams.setSoTimeout(mParams, SOCKET_TIMEOUT);
HttpConnectionParams.setConnectionTimeout(mParams, SOCKET_TIMEOUT);
HttpProtocolParams.setContentCharset(mParams, "UTF-8");
HttpProtocolParams.setVersion(mParams, HttpVersion.HTTP_1_1);
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
BasicScheme basicAuth = new BasicScheme();
mHttpContext = new BasicHttpContext();
mHttpContext.setAttribute("http.auth.credentials-provider", credentialsProvider);
mHttpContext.setAttribute("preemptive-auth", basicAuth);
}
return mParams;
}
//implement here.
m = new ThreadSafeClientConnManager(getHttpParams(), getRegistry());
DefaultHttpClient client = new DefaultHttpClient(cm, getHttpParams());
HttpGet get = new HttpGet(url.toString());
get.setHeader("Host", url.getHost());
get.setHeader("User-Agent", "Android-JustPlayer");
HttpResponse httpResponse = client.execute(get,mHttpContext);
if (httpResponse != null
&& httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
HttpEntity httpEntity = httpResponse.getEntity();
in = httpEntity.getContent();
}
first approach is generic, it is very easy to connect was just passing the URL. However, some users can not Basic authentication, it was reported that an SSL connection or not. And now the more unstable the connection request.
So, we changed the usage of HttpClient. This is to work look, may not be able to connect port 8080, and in case the connection itself fails.
These are must be supported patient.
But for those in need now, first aid anyway
Has been changed as follows.
if(url.toString().startsWith("https")){
//new code
}
else{
//old code
}
Try to look at it for a while.
Wednesday, January 18, 2012
Modify the screen of album art
Now that complete the first stage of the main screen Fix, The next screen album art.
I wanted to make the app has changed the layout of the screen, the convenience of landscape and portrait screens.
Currently it is not so.
Portrait is preferred that can be operated with one hand.
By swiping the screen to switch to this.
But the screen also has many pieces are stacked like so confusing now, and album art, song only.
The landscape screen intended to be used, so calm, and most amount of information.
This process is switched smoothly by using a fragment.
The other screen, change the song list or artist list can be called directly.
Will change in the next release.
I wanted to make the app has changed the layout of the screen, the convenience of landscape and portrait screens.
Currently it is not so.
Portrait is preferred that can be operated with one hand.
![]() |
| portrait1 |
![]() |
| portrait2 |
By swiping the screen to switch to this.
But the screen also has many pieces are stacked like so confusing now, and album art, song only.
The landscape screen intended to be used, so calm, and most amount of information.
![]() |
| landscape |
The other screen, change the song list or artist list can be called directly.
![]() |
| quick action dialog |
Subscribe to:
Posts (Atom)



