mirror of
https://github.com/syncthing/syncthing-android.git
synced 2024-11-22 20:31:16 +00:00
Changed Activity to show web UI.
This commit is contained in:
parent
a93fcb3ea7
commit
76d7429a58
4 changed files with 95 additions and 19 deletions
|
@ -14,8 +14,8 @@
|
|||
android:label="@string/app_name"
|
||||
android:icon="@drawable/ic_launcher" >
|
||||
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
<activity
|
||||
android:name=".WebGuiActivity"
|
||||
android:theme="@android:style/Theme.Holo.Light"
|
||||
android:label="@string/app_name" >
|
||||
<intent-filter>
|
||||
|
|
21
res/layout/main.xml
Normal file
21
res/layout/main.xml
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" >
|
||||
|
||||
<WebView
|
||||
android:id="@+id/webview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:visibility="gone" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/loading"
|
||||
style="?android:attr/progressBarStyleLarge"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true" />
|
||||
|
||||
</RelativeLayout>
|
|
@ -1,17 +0,0 @@
|
|||
package com.nutomic.syncthingandroid;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
public class MainActivity extends Activity {
|
||||
|
||||
private static final String TAG = "MainActivity";
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
startService(new Intent(this, SyncthingService.class));
|
||||
}
|
||||
|
||||
}
|
72
src/com/nutomic/syncthingandroid/WebGuiActivity.java
Normal file
72
src/com/nutomic/syncthingandroid/WebGuiActivity.java
Normal file
|
@ -0,0 +1,72 @@
|
|||
package com.nutomic.syncthingandroid;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.view.View;
|
||||
import android.webkit.WebView;
|
||||
import android.webkit.WebViewClient;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
public class WebGuiActivity extends Activity {
|
||||
|
||||
private static final String TAG = "WebGuiActivity";
|
||||
|
||||
/**
|
||||
* URL of the local syncthing web UI.
|
||||
*
|
||||
* TODO: read this out from native code.
|
||||
*/
|
||||
private static final String SYNCTHING_URL = "http://127.0.0.1:8080";
|
||||
|
||||
private WebView mWebView;
|
||||
private ProgressBar mLoadingView;
|
||||
|
||||
/**
|
||||
* Retries loading every second until the web UI becomes available.
|
||||
*/
|
||||
private WebViewClient mWebViewClient = new WebViewClient() {
|
||||
|
||||
private int mError = 0;
|
||||
|
||||
@Override
|
||||
public void onReceivedError(WebView view, int errorCode, String description,
|
||||
String failingUrl) {
|
||||
mError = errorCode;
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
mError = 0;
|
||||
mWebView.loadUrl(SYNCTHING_URL);
|
||||
}
|
||||
}, 1000);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageFinished(WebView view, String url) {
|
||||
if (mError == 0) {
|
||||
mWebView.setVisibility(View.VISIBLE);
|
||||
mLoadingView.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
startService(new Intent(this, SyncthingService.class));
|
||||
|
||||
setContentView(R.layout.main);
|
||||
|
||||
mLoadingView = (ProgressBar) findViewById(R.id.loading);
|
||||
mLoadingView.setIndeterminate(true);
|
||||
mWebView = (WebView) findViewById(R.id.webview);
|
||||
mWebView.getSettings().setJavaScriptEnabled(true);
|
||||
mWebView.setWebViewClient(new WebViewClient());
|
||||
mWebView.setWebViewClient(mWebViewClient);
|
||||
mWebView.loadUrl(SYNCTHING_URL);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue