From c58d1acf936e38ef1a549a6e43d4a5be43698544 Mon Sep 17 00:00:00 2001 From: Joshua Bahnsen Date: Fri, 25 Jan 2013 01:13:02 -0700 Subject: [PATCH] Log remote control exceptions, show version in Help --- AndroidManifest.xml | 4 +- .../androidapp/activity/HelpActivity.java | 243 +++++++++--------- .../service/DownloadServiceImpl.java | 3 +- 3 files changed, 130 insertions(+), 120 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 7797c81c..2b2e4e66 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,8 +1,8 @@ + a:versionCode="56" + a:versionName="3.9.9.14" a:installLocation="auto"> diff --git a/src/net/sourceforge/subsonic/androidapp/activity/HelpActivity.java b/src/net/sourceforge/subsonic/androidapp/activity/HelpActivity.java index 4b2eb63b..652069d8 100644 --- a/src/net/sourceforge/subsonic/androidapp/activity/HelpActivity.java +++ b/src/net/sourceforge/subsonic/androidapp/activity/HelpActivity.java @@ -1,117 +1,126 @@ -/* - This file is part of Subsonic. - - Subsonic is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Subsonic is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . - - Copyright 2009 (C) Sindre Mehus - */ - -package net.sourceforge.subsonic.androidapp.activity; - -import android.app.Activity; -import android.os.Bundle; -import android.view.KeyEvent; -import android.view.View; -import android.view.Window; -import android.webkit.WebView; -import android.webkit.WebViewClient; -import android.widget.Button; -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. - * - * @author Sindre Mehus - */ -public final class HelpActivity extends Activity { - - private WebView webView; - private Button backButton; - - @Override - protected void onCreate(Bundle bundle) { - super.onCreate(bundle); - getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS); - - setContentView(R.layout.help); - - webView = (WebView) findViewById(R.id.help_contents); - webView.getSettings().setJavaScriptEnabled(true); - webView.setWebViewClient(new HelpClient()); - if (bundle != null) { - webView.restoreState(bundle); - } else { - webView.loadUrl(getResources().getString(R.string.help_url)); - } - - backButton = (Button) findViewById(R.id.help_back); - backButton.setOnClickListener(new Button.OnClickListener() { - @Override - public void onClick(View view) { - webView.goBack(); - } - }); - - Button doneButton = (Button) findViewById(R.id.help_close); - doneButton.setOnClickListener(new Button.OnClickListener() { - @Override - public void onClick(View view) { - finish(); - } - }); - } - - @Override - public void onResume() { - super.onResume(); - } - - @Override - protected void onSaveInstanceState(Bundle state) { - webView.saveState(state); - } - - @Override - public boolean onKeyDown(int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_BACK) { - if (webView.canGoBack()) { - webView.goBack(); - return true; - } - } - return super.onKeyDown(keyCode, event); - } - - private final class HelpClient extends WebViewClient { - @Override - public void onLoadResource(WebView webView, String url) { - setProgressBarIndeterminateVisibility(true); - setTitle(getResources().getString(R.string.help_loading)); - super.onLoadResource(webView, url); - } - - @Override - public void onPageFinished(WebView view, String url) { - setProgressBarIndeterminateVisibility(false); - setTitle(view.getTitle()); - backButton.setEnabled(view.canGoBack()); - } - - @Override - public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { - Util.toast(HelpActivity.this, description); - } - } -} +/* + This file is part of Subsonic. + + Subsonic is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Subsonic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Subsonic. If not, see . + + Copyright 2009 (C) Sindre Mehus + */ + +package net.sourceforge.subsonic.androidapp.activity; + +import android.app.Activity; +import android.content.pm.PackageManager.NameNotFoundException; +import android.os.Bundle; +import android.view.KeyEvent; +import android.view.View; +import android.view.Window; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.Button; +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. + * + * @author Sindre Mehus + */ +public final class HelpActivity extends Activity { + + private WebView webView; + private Button backButton; + + @Override + protected void onCreate(Bundle bundle) { + super.onCreate(bundle); + getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS); + + setContentView(R.layout.help); + + webView = (WebView) findViewById(R.id.help_contents); + webView.getSettings().setJavaScriptEnabled(true); + webView.setWebViewClient(new HelpClient()); + if (bundle != null) { + webView.restoreState(bundle); + } else { + webView.loadUrl(getResources().getString(R.string.help_url)); + } + + backButton = (Button) findViewById(R.id.help_back); + backButton.setOnClickListener(new Button.OnClickListener() { + @Override + public void onClick(View view) { + webView.goBack(); + } + }); + + Button doneButton = (Button) findViewById(R.id.help_close); + doneButton.setOnClickListener(new Button.OnClickListener() { + @Override + public void onClick(View view) { + finish(); + } + }); + } + + @Override + public void onResume() { + super.onResume(); + } + + @Override + protected void onSaveInstanceState(Bundle state) { + webView.saveState(state); + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + if (webView.canGoBack()) { + webView.goBack(); + return true; + } + } + return super.onKeyDown(keyCode, event); + } + + private final class HelpClient extends WebViewClient { + @Override + public void onLoadResource(WebView webView, String url) { + setProgressBarIndeterminateVisibility(true); + setTitle(getResources().getString(R.string.help_loading)); + super.onLoadResource(webView, url); + } + + @Override + public void onPageFinished(WebView view, String url) { + setProgressBarIndeterminateVisibility(false); + String versionName = null; + + try { + versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName; + } catch (NameNotFoundException e) { + 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); + } + } +} diff --git a/src/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.java b/src/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.java index b40b7a0d..5d6b8637 100644 --- a/src/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.java +++ b/src/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.java @@ -772,6 +772,7 @@ public class DownloadServiceImpl extends Service implements DownloadService { RemoteControlClient.FLAG_KEY_MEDIA_PAUSE | RemoteControlClient.FLAG_KEY_MEDIA_NEXT | RemoteControlClient.FLAG_KEY_MEDIA_PREVIOUS | + RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE | RemoteControlClient.FLAG_KEY_MEDIA_STOP); try { @@ -797,7 +798,7 @@ public class DownloadServiceImpl extends Service implements DownloadService { .apply(); } catch (Exception e) { - // + Log.e(TAG, "Exception in setRemoteControl"); } } }