mirror of
https://github.com/ultrasonic/ultrasonic
synced 2025-02-17 20:20:50 +01:00
Log remote control exceptions, show version in Help
This commit is contained in:
parent
c21cec92ad
commit
c58d1acf93
@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:a="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
package="net.sourceforge.subsonic.androidapp"
|
package="net.sourceforge.subsonic.androidapp"
|
||||||
a:versionCode="47"
|
a:versionCode="56"
|
||||||
a:versionName="3.9.9.13" a:installLocation="auto">
|
a:versionName="3.9.9.14" a:installLocation="auto">
|
||||||
|
|
||||||
<uses-permission a:name="android.permission.INTERNET"/>
|
<uses-permission a:name="android.permission.INTERNET"/>
|
||||||
<uses-permission a:name="android.permission.READ_PHONE_STATE"/>
|
<uses-permission a:name="android.permission.READ_PHONE_STATE"/>
|
||||||
|
@ -1,117 +1,126 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Subsonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Subsonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Subsonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.sourceforge.subsonic.androidapp.activity;
|
package net.sourceforge.subsonic.androidapp.activity;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.os.Bundle;
|
import android.content.pm.PackageManager.NameNotFoundException;
|
||||||
import android.view.KeyEvent;
|
import android.os.Bundle;
|
||||||
import android.view.View;
|
import android.view.KeyEvent;
|
||||||
import android.view.Window;
|
import android.view.View;
|
||||||
import android.webkit.WebView;
|
import android.view.Window;
|
||||||
import android.webkit.WebViewClient;
|
import android.webkit.WebView;
|
||||||
import android.widget.Button;
|
import android.webkit.WebViewClient;
|
||||||
import net.sourceforge.subsonic.androidapp.R;
|
import android.widget.Button;
|
||||||
import net.sourceforge.subsonic.androidapp.util.Util;
|
import net.sourceforge.subsonic.androidapp.R;
|
||||||
|
import net.sourceforge.subsonic.androidapp.util.Util;
|
||||||
/**
|
|
||||||
* An HTML-based help screen with Back and Done buttons at the bottom.
|
/**
|
||||||
*
|
* An HTML-based help screen with Back and Done buttons at the bottom.
|
||||||
* @author Sindre Mehus
|
*
|
||||||
*/
|
* @author Sindre Mehus
|
||||||
public final class HelpActivity extends Activity {
|
*/
|
||||||
|
public final class HelpActivity extends Activity {
|
||||||
private WebView webView;
|
|
||||||
private Button backButton;
|
private WebView webView;
|
||||||
|
private Button backButton;
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle bundle) {
|
@Override
|
||||||
super.onCreate(bundle);
|
protected void onCreate(Bundle bundle) {
|
||||||
getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
|
super.onCreate(bundle);
|
||||||
|
getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
|
||||||
setContentView(R.layout.help);
|
|
||||||
|
setContentView(R.layout.help);
|
||||||
webView = (WebView) findViewById(R.id.help_contents);
|
|
||||||
webView.getSettings().setJavaScriptEnabled(true);
|
webView = (WebView) findViewById(R.id.help_contents);
|
||||||
webView.setWebViewClient(new HelpClient());
|
webView.getSettings().setJavaScriptEnabled(true);
|
||||||
if (bundle != null) {
|
webView.setWebViewClient(new HelpClient());
|
||||||
webView.restoreState(bundle);
|
if (bundle != null) {
|
||||||
} else {
|
webView.restoreState(bundle);
|
||||||
webView.loadUrl(getResources().getString(R.string.help_url));
|
} else {
|
||||||
}
|
webView.loadUrl(getResources().getString(R.string.help_url));
|
||||||
|
}
|
||||||
backButton = (Button) findViewById(R.id.help_back);
|
|
||||||
backButton.setOnClickListener(new Button.OnClickListener() {
|
backButton = (Button) findViewById(R.id.help_back);
|
||||||
@Override
|
backButton.setOnClickListener(new Button.OnClickListener() {
|
||||||
public void onClick(View view) {
|
@Override
|
||||||
webView.goBack();
|
public void onClick(View view) {
|
||||||
}
|
webView.goBack();
|
||||||
});
|
}
|
||||||
|
});
|
||||||
Button doneButton = (Button) findViewById(R.id.help_close);
|
|
||||||
doneButton.setOnClickListener(new Button.OnClickListener() {
|
Button doneButton = (Button) findViewById(R.id.help_close);
|
||||||
@Override
|
doneButton.setOnClickListener(new Button.OnClickListener() {
|
||||||
public void onClick(View view) {
|
@Override
|
||||||
finish();
|
public void onClick(View view) {
|
||||||
}
|
finish();
|
||||||
});
|
}
|
||||||
}
|
});
|
||||||
|
}
|
||||||
@Override
|
|
||||||
public void onResume() {
|
@Override
|
||||||
super.onResume();
|
public void onResume() {
|
||||||
}
|
super.onResume();
|
||||||
|
}
|
||||||
@Override
|
|
||||||
protected void onSaveInstanceState(Bundle state) {
|
@Override
|
||||||
webView.saveState(state);
|
protected void onSaveInstanceState(Bundle state) {
|
||||||
}
|
webView.saveState(state);
|
||||||
|
}
|
||||||
@Override
|
|
||||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
@Override
|
||||||
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||||
if (webView.canGoBack()) {
|
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
||||||
webView.goBack();
|
if (webView.canGoBack()) {
|
||||||
return true;
|
webView.goBack();
|
||||||
}
|
return true;
|
||||||
}
|
}
|
||||||
return super.onKeyDown(keyCode, event);
|
}
|
||||||
}
|
return super.onKeyDown(keyCode, event);
|
||||||
|
}
|
||||||
private final class HelpClient extends WebViewClient {
|
|
||||||
@Override
|
private final class HelpClient extends WebViewClient {
|
||||||
public void onLoadResource(WebView webView, String url) {
|
@Override
|
||||||
setProgressBarIndeterminateVisibility(true);
|
public void onLoadResource(WebView webView, String url) {
|
||||||
setTitle(getResources().getString(R.string.help_loading));
|
setProgressBarIndeterminateVisibility(true);
|
||||||
super.onLoadResource(webView, url);
|
setTitle(getResources().getString(R.string.help_loading));
|
||||||
}
|
super.onLoadResource(webView, url);
|
||||||
|
}
|
||||||
@Override
|
|
||||||
public void onPageFinished(WebView view, String url) {
|
@Override
|
||||||
setProgressBarIndeterminateVisibility(false);
|
public void onPageFinished(WebView view, String url) {
|
||||||
setTitle(view.getTitle());
|
setProgressBarIndeterminateVisibility(false);
|
||||||
backButton.setEnabled(view.canGoBack());
|
String versionName = null;
|
||||||
}
|
|
||||||
|
try {
|
||||||
@Override
|
versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
|
||||||
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
|
} catch (NameNotFoundException e) {
|
||||||
Util.toast(HelpActivity.this, description);
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
setTitle(view.getTitle() + " (" + versionName + ")");
|
||||||
|
backButton.setEnabled(view.canGoBack());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
|
||||||
|
Util.toast(HelpActivity.this, description);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -772,6 +772,7 @@ public class DownloadServiceImpl extends Service implements DownloadService {
|
|||||||
RemoteControlClient.FLAG_KEY_MEDIA_PAUSE |
|
RemoteControlClient.FLAG_KEY_MEDIA_PAUSE |
|
||||||
RemoteControlClient.FLAG_KEY_MEDIA_NEXT |
|
RemoteControlClient.FLAG_KEY_MEDIA_NEXT |
|
||||||
RemoteControlClient.FLAG_KEY_MEDIA_PREVIOUS |
|
RemoteControlClient.FLAG_KEY_MEDIA_PREVIOUS |
|
||||||
|
RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE |
|
||||||
RemoteControlClient.FLAG_KEY_MEDIA_STOP);
|
RemoteControlClient.FLAG_KEY_MEDIA_STOP);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -797,7 +798,7 @@ public class DownloadServiceImpl extends Service implements DownloadService {
|
|||||||
.apply();
|
.apply();
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
//
|
Log.e(TAG, "Exception in setRemoteControl");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user