1
0
Fork 0
mirror of https://github.com/ethauvin/Clever.git synced 2025-04-26 09:17:13 -07:00

Re-did UI to use native text box rather than web form.

This commit is contained in:
Russell Beattie 2012-09-10 01:03:01 -07:00
parent f3b5d79cfa
commit eadd6e7963
4 changed files with 168 additions and 83 deletions

View file

@ -2,18 +2,31 @@ package io.clever;
import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.animation.*;
import android.view.animation.Animation.AnimationListener;
import android.view.inputmethod.EditorInfo;
import android.webkit.*;
import android.webkit.WebSettings.*;
import android.widget.LinearLayout;
import android.widget.*;
import android.widget.TextView.OnEditorActionListener;
public class MainActivity extends Activity {
WebView webView;
EditText urlField;
Button goButton;
LinearLayout linearLayout, navbar;
Animation slideUp, slideDown;
public static final String HOME_PAGE = "file:///android_asset/www/index.html";
public static final String PREFS_NAME = "CleverPrefs";
@Override
public void onCreate(Bundle savedInstanceState) {
@ -21,25 +34,104 @@ public class MainActivity extends Activity {
setContentView(R.layout.activity_main);
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linearLayout1);
linearLayout = (LinearLayout) findViewById(R.id.linearLayout);
linearLayout.setBackgroundColor(Color.BLACK);
// Navbar setup
navbar = (LinearLayout) findViewById(R.id.navbar);
goButton = (Button)findViewById(R.id.go_button);
urlField = (EditText)findViewById(R.id.url);
goButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
doNav();
}
});
urlField.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_GO) {
doNav();
handled = true;
}
return handled;
}
});
webView = (WebView) findViewById(R.id.webView1);
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
String lastUrl = settings.getString("lastUrl", "");
urlField.setText(lastUrl);
// Navbar animation settings
AnimationListener slideListener = new AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
if(animation.equals(slideUp)){
navbar.setVisibility(View.GONE);
}
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
if(animation.equals(slideDown)){
navbar.setVisibility(View.VISIBLE);
}
}
};
slideUp = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, -1.0f
);
slideUp.setDuration(500);
slideUp.setAnimationListener(slideListener);
slideDown = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f
);
slideDown.setDuration(500);
slideDown.setAnimationListener(slideListener);
// WebView setup
webView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
Log.d("scale", view.getScale() + "");
Log.d("pageFinished",url);
if(url.equalsIgnoreCase(HOME_PAGE)){
// navbar.setVisibility(View.VISIBLE);
navbar.startAnimation(slideDown);
}
}
@Override
public void onScaleChanged (WebView view, float oldScale, float newScale){
Log.d("scale changed", oldScale + " - " + newScale);
@ -52,6 +144,7 @@ public class MainActivity extends Activity {
}
}
});
@ -73,13 +166,24 @@ public class MainActivity extends Activity {
webSettings.setSaveFormData(false);
webSettings.setLightTouchEnabled(false);
webSettings.setLayoutAlgorithm(LayoutAlgorithm.NORMAL);
webSettings.setRenderPriority( RenderPriority.HIGH);
webSettings.setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Large Screen Safari/534.24 GoogleTV");
webView.loadUrl("file:///android_asset/www/index.html");
webView.loadUrl(HOME_PAGE);
webView.requestFocus();
}
@Override
protected void onStop(){
super.onStop();
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("lastUrl", urlField.getText().toString());
editor.commit();
}
@Override
@ -97,5 +201,24 @@ public class MainActivity extends Activity {
}
}
public void doNav(){
String url = urlField.getText().toString();
if(URLUtil.isValidUrl(url) == false){
url = "http://" + url;
}
urlField.setText(url);
webView.requestFocus();
webView.loadUrl(url);
navbar.startAnimation(slideUp);
}
}