From bbbbb3679562404bbd6d177dd17815d284257b86 Mon Sep 17 00:00:00 2001 From: Greg Alexander Date: Sat, 21 Sep 2019 17:36:18 -0400 Subject: [PATCH] If launching an http intent fails, then fallback to WebView (because Android TV doesn't have Chrome, I guess). This resolves the conundrum of what to do about the one Samsung Note 7 out there that doesn't have Chrome, too. --- NOTES | 5 ---- app/src/main/AndroidManifest.xml | 6 ++++- .../java/org/galexander/sshd/DocActivity.java | 27 +++++++++++++++++++ .../org/galexander/sshd/DocActivityTV.java | 5 ++++ .../java/org/galexander/sshd/SimpleSSHD.java | 14 +++------- app/src/main/res/layout/doc.xml | 5 ++++ 6 files changed, 45 insertions(+), 17 deletions(-) create mode 100644 app/src/main/java/org/galexander/sshd/DocActivity.java create mode 100644 app/src/main/java/org/galexander/sshd/DocActivityTV.java create mode 100644 app/src/main/res/layout/doc.xml diff --git a/NOTES b/NOTES index f5e26fb..8e9e67c 100644 --- a/NOTES +++ b/NOTES @@ -1011,11 +1011,6 @@ Luckily, even though the list of requirements is long, it is largely irrelevant or redundant, so I'm just about there. -XXX - android TV support - - doc should start a WebView instead of a URL - - make the backgrounds of the buttons more vividly demonstrate focus - - make nextFocusDown/Left/Right/Up overrides for some buttons - XXX - figure out how to force a refresh on eink devices (onyx boox) when the password is displayed (Roman) XXX - Tasker on Android 9 can't trigger the new START/STOP intents? (Kumaran) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c5a36a4..9e17a06 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,7 +11,8 @@ + android:allowBackup="false" android:banner="@drawable/tvbanner" + android:usesCleartextTraffic="true"> @@ -28,6 +29,9 @@ + + diff --git a/app/src/main/java/org/galexander/sshd/DocActivity.java b/app/src/main/java/org/galexander/sshd/DocActivity.java new file mode 100644 index 0000000..3beaca3 --- /dev/null +++ b/app/src/main/java/org/galexander/sshd/DocActivity.java @@ -0,0 +1,27 @@ +package org.galexander.sshd; + +import android.app.Activity; +import android.os.Bundle; +import android.webkit.WebView; + +public class DocActivity extends Activity +{ + public static final String url = + "http://www.galexander.org/software/simplesshd"; + private WebView wv = null; + + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.doc); + wv = (WebView)findViewById(R.id.docview); + } + + public void onResume() { + super.onResume(); + wv.loadUrl(url); + } + + public void onPause() { + super.onPause(); + } +} diff --git a/app/src/main/java/org/galexander/sshd/DocActivityTV.java b/app/src/main/java/org/galexander/sshd/DocActivityTV.java new file mode 100644 index 0000000..44e1cd1 --- /dev/null +++ b/app/src/main/java/org/galexander/sshd/DocActivityTV.java @@ -0,0 +1,5 @@ +package org.galexander.sshd; + +public class DocActivityTV extends DocActivity +{ +} diff --git a/app/src/main/java/org/galexander/sshd/SimpleSSHD.java b/app/src/main/java/org/galexander/sshd/SimpleSSHD.java index 1e67612..51508bd 100644 --- a/app/src/main/java/org/galexander/sshd/SimpleSSHD.java +++ b/app/src/main/java/org/galexander/sshd/SimpleSSHD.java @@ -114,19 +114,11 @@ public class SimpleSSHD extends Activity public void doc_clicked(View v) { try { Intent i = new Intent(Intent.ACTION_VIEW); - i.setData(Uri.parse("http://www.galexander.org/software/simplesshd")); + i.setData(Uri.parse(DocActivity.url)); startActivity(i); } catch (Exception e) { - new AlertDialog.Builder(this) - .setCancelable(true) - .setPositiveButton("OK", - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface di, int which) { } - }) - .setIcon(android.R.drawable.ic_dialog_info) - .setTitle("no browser") - .setMessage("YOU: a note 7 owner with no browser installed on your android?\nME: an app developer who keeps getting crash reports and wants to hear your story. email nobrowserdroid@galexander.org") - .show(); + startActivity(new Intent(this, (is_tv + ? DocActivityTV.class : DocActivity.class))); } } public void about_clicked(View v) { diff --git a/app/src/main/res/layout/doc.xml b/app/src/main/res/layout/doc.xml new file mode 100644 index 0000000..d6c02b9 --- /dev/null +++ b/app/src/main/res/layout/doc.xml @@ -0,0 +1,5 @@ + +