Android: Added an "Open WebApp" item to the terminal's menu. Should work for Android devices that cannot auto-open the webapp on start.

This commit is contained in:
Joey Hess 2013-05-28 18:25:27 -04:00
parent 0ab9b9d0db
commit 3e2d50a336
3 changed files with 110 additions and 4 deletions

View file

@ -157,10 +157,12 @@ firstRun listenhost = do
sendurlback v _origout _origerr url _htmlshim = putMVar v url
openBrowser :: Maybe FilePath -> FilePath -> String -> Maybe Handle -> Maybe Handle -> IO ()
#ifdef __ANDROID__
openBrowser mcmd htmlshim realurl outh errh = do
#else
#ifndef __ANDROID__
openBrowser mcmd htmlshim _realurl outh errh = do
#else
openBrowser mcmd htmlshim realurl outh errh = do
{- The Android app has a menu item that opens this file. -}
writeFile "/sdcard/git-annex.home/.git-annex-url" realurl
#endif
hPutStrLn (fromMaybe stdout outh) $ "Launching web browser on " ++ url
hFlush stdout
@ -171,8 +173,11 @@ openBrowser mcmd htmlshim _realurl outh errh = do
, std_err = maybe Inherit UseHandle errh
}
exitcode <- waitForProcess pid
unless (exitcode == ExitSuccess) $
unless (exitcode == ExitSuccess) $ do
hPutStrLn (fromMaybe stderr errh) "failed to start web browser"
#ifdef __ANDROID__
hPutStrLn (fromMaybe stderr errh) "To open the WebApp, go to the menu and select \"Open WebApp\""
#endif
where
p = case mcmd of
Just cmd -> proc cmd [htmlshim]

2
debian/changelog vendored
View file

@ -19,6 +19,8 @@ git-annex (4.20130522) UNRELEASED; urgency=low
preferred content settings.
* sync: Fix double merge conflict resolution handling.
* XMPP: Fix a file descriptor leak.
* Android: Added an "Open WebApp" item to the terminal's menu.
Should work for Android devices that cannot auto-open the webapp on start.
-- Joey Hess <joeyh@debian.org> Tue, 21 May 2013 18:22:46 -0400

View file

@ -23,6 +23,28 @@ index f6952f0..1a8df8f 100644
execBuild.redirectErrorStream(true);
Process exec = null;
try {
diff --git a/res/menu/main.xml b/res/menu/main.xml
index 064f833..fe5f3a3 100644
--- a/res/menu/main.xml
+++ b/res/menu/main.xml
@@ -16,6 +16,8 @@
-->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:id="@+id/menu_send_email"
+ android:title="@string/send_email" />
<item android:id="@+id/menu_new_window"
android:title="@string/new_window"
android:icon="@drawable/ic_menu_add" />
@@ -34,8 +36,6 @@
android:icon="@drawable/ic_menu_preferences" />
<item android:id="@+id/menu_reset"
android:title="@string/reset" />
- <item android:id="@+id/menu_send_email"
- android:title="@string/send_email" />
<item android:id="@+id/menu_toggle_wakelock"
android:title="@string/enable_wakelock" />
<item android:id="@+id/menu_toggle_wifilock"
diff --git a/res/values/defaults.xml b/res/values/defaults.xml
index 67287b2..9b7cfcd 100644
--- a/res/values/defaults.xml
@ -41,6 +63,83 @@ index 67287b2..9b7cfcd 100644
<bool name="pref_verify_path_default">true</bool>
<bool name="pref_do_path_extensions_default">true</bool>
<bool name="pref_allow_prepend_path_default">true</bool>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index f1464e9..b06ec9a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -23,7 +23,7 @@
<string name="prev_window">Prev window</string>
<string name="next_window">Next window</string>
<string name="reset">Reset term</string>
- <string name="send_email">Email to</string>
+ <string name="send_email">Open WebApp</string>
<string name="special_keys">Special keys</string>
<string name="toggle_soft_keyboard">Toggle soft keyboard</string>
diff --git a/src/jackpal/androidterm/Term.java b/src/jackpal/androidterm/Term.java
index 8a3a4ac..af8d1ad 100644
--- a/src/jackpal/androidterm/Term.java
+++ b/src/jackpal/androidterm/Term.java
@@ -21,6 +21,9 @@ import java.text.Collator;
import java.util.Arrays;
import java.util.Locale;
+import java.io.FileReader;
+import java.io.BufferedReader;
+
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
@@ -59,6 +62,11 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.TextView;
import android.widget.Toast;
+import android.content.Intent;
+import android.net.Uri;
+import android.app.Activity;
+import android.content.Context;
+
import jackpal.androidterm.emulatorview.ColorScheme;
import jackpal.androidterm.emulatorview.EmulatorView;
import jackpal.androidterm.emulatorview.TermSession;
@@ -911,31 +919,15 @@ public class Term extends Activity implements UpdateCallback {
}
private void doEmailTranscript() {
+ // Hack: repurposed to open the git-annex webapp
TermSession session = getCurrentTermSession();
if (session != null) {
- // Don't really want to supply an address, but
- // currently it's required, otherwise nobody
- // wants to handle the intent.
- String addr = "user@example.com";
- Intent intent =
- new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:"
- + addr));
-
- String subject = getString(R.string.email_transcript_subject);
- String title = session.getTitle();
- if (title != null) {
- subject = subject + " - " + title;
- }
- intent.putExtra(Intent.EXTRA_SUBJECT, subject);
- intent.putExtra(Intent.EXTRA_TEXT,
- session.getTranscriptText().trim());
try {
- startActivity(Intent.createChooser(intent,
- getString(R.string.email_transcript_chooser_title)));
- } catch (ActivityNotFoundException e) {
- Toast.makeText(this,
- R.string.email_transcript_no_email_activity_found,
- Toast.LENGTH_LONG).show();
+ BufferedReader buf = new BufferedReader(new FileReader("/sdcard/git-annex.home/.git-annex-url"));
+ String s = buf.readLine();
+ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(s));
+ startActivity(intent);
+ } catch (Exception e) {
}
}
}
diff --git a/tools/build-debug b/tools/build-debug
index 1f15cd2..e611956 100755
--- a/tools/build-debug