diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 83d4ab59..33ecec35 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -183,6 +183,13 @@ android:exported="true" android:label="@string/debug_info_title"> + + + " + + "" + + "" + + "
" + + "" + getString(R.string.loading_error_content) + + "" + + ""; + + mWebView.loadDataWithBaseURL("about:blank", htmlData, "text/html", "UTF-8", null); + mWebView.invalidate(); + } + + private boolean shouldOverrideUrl(Uri uri) { + if (Constants.webUri.getHost().equals(uri.getHost())) { + if (uri.getQueryParameter(QUERY_KEY_EMBEDDED) != null) { + return false; + } else { + uri = addQueryParams(uri); + mWebView.loadUrl(uri.toString()); + return true; + } + + } else { + startActivity(new Intent(Intent.ACTION_VIEW, uri)); + return true; + } + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + mWebView.saveState(outState); + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + if (mWebView.canGoBack()) { + mWebView.goBack(); + return true; + } + } + return super.onKeyDown(keyCode, event); + } +} diff --git a/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginActivity.java b/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginActivity.java index c955b283..a5cda9f7 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginActivity.java +++ b/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginActivity.java @@ -17,6 +17,7 @@ import android.view.MenuItem; import com.etesync.syncadapter.App; import com.etesync.syncadapter.Constants; import com.etesync.syncadapter.R; +import com.etesync.syncadapter.ui.WebViewActivity; /** * Activity to initially connect to a server and create an account. @@ -71,6 +72,6 @@ public class LoginActivity extends AppCompatActivity { } public void showHelp(MenuItem item) { - startActivity(new Intent(Intent.ACTION_VIEW, Constants.helpUri)); + WebViewActivity.openUrl(this, Constants.helpUri); } } diff --git a/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginCredentialsFragment.java b/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginCredentialsFragment.java index 267069c6..974b5ea7 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginCredentialsFragment.java +++ b/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginCredentialsFragment.java @@ -21,6 +21,7 @@ import android.widget.EditText; import com.etesync.syncadapter.Constants; import com.etesync.syncadapter.R; +import com.etesync.syncadapter.ui.WebViewActivity; import com.etesync.syncadapter.ui.widget.EditPassword; public class LoginCredentialsFragment extends Fragment { @@ -53,8 +54,7 @@ public class LoginCredentialsFragment extends Fragment { @Override public void onClick(View v) { Uri createUri = Constants.registrationUrl.buildUpon().appendQueryParameter("email", editUserName.getText().toString()).build(); - Intent intent = new Intent(Intent.ACTION_VIEW, createUri); - startActivity(intent); + WebViewActivity.openUrl(getContext(), createUri); } }); diff --git a/app/src/main/res/layout/activity_webview.xml b/app/src/main/res/layout/activity_webview.xml new file mode 100644 index 00000000..e0b1a53d --- /dev/null +++ b/app/src/main/res/layout/activity_webview.xml @@ -0,0 +1,34 @@ + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fe976715..ceb6670d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -225,4 +225,8 @@ EteSync: Connection security EteSync has encountered an unknown certificate. Do you want to trust it? + + Loading... + Loading Error + Refresh