package com.hawkbrowser.shell;
import org.chromium.base.CommandLine;
import org.chromium.content.app.LibraryLoader;
import org.chromium.content.browser.BrowserStartupController;
import org.chromium.content.browser.DeviceUtils;
import org.chromium.content.common.ContentSwitches;
import org.chromium.content.common.ProcessInitException;
import com.hawkbrowser.R;
import com.hawkbrowser.chromecontent.ChromeInitializer;
import com.hawkbrowser.chromecontent.WebView;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.ViewGroup.LayoutParams;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
public class MainActivity extends Activity {
private static final String TAG = "ContentShellTest";
private final static String INITIAL_URL = "http://www.baidu.com";
private WebView mAwTestContainerView;
private EditText mUrlTextView;
private ImageButton mPrevButton;
private ImageButton mNextButton;
private String mStartupUrl;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initializeUrlField();
initializeNavigationButtons();
mStartupUrl = getUrlFromIntent(getIntent());
if (TextUtils.isEmpty(mStartupUrl)) {
mStartupUrl = INITIAL_URL;
}
mAwTestContainerView = (WebView) findViewById(R.id.web_view);
try {
mAwTestContainerView.init(this);
} catch (ProcessInitException e) {
Log.e(TAG, "Failed to load native library.", e);
System.exit(-1);
}
mAwTestContainerView.loadUrl(mStartupUrl);
}
private static String getUrlFromIntent(Intent intent) {
return intent != null ? intent.getDataString() : null;
}
private void setKeyboardVisibilityForUrl(boolean visible) {
InputMethodManager imm = (InputMethodManager) getSystemService(
Context.INPUT_METHOD_SERVICE);
if (visible) {
imm.showSoftInput(mUrlTextView, InputMethodManager.SHOW_IMPLICIT);
} else {
imm.hideSoftInputFromWindow(mUrlTextView.getWindowToken(), 0);
}
}
private void initializeUrlField() {
mUrlTextView = (EditText) findViewById(R.id.url);
mUrlTextView.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if ((actionId != EditorInfo.IME_ACTION_GO) && (event == null ||
event.getKeyCode() != KeyEvent.KEYCODE_ENTER ||
event.getKeyCode() != KeyEvent.ACTION_DOWN)) {
return false;
}
String url = mUrlTextView.getText().toString();
if(!url.startsWith("http")) {
url = "http://" + url;
}
mAwTestContainerView.loadUrl(url);
mUrlTextView.clearFocus();
setKeyboardVisibilityForUrl(false);
mAwTestContainerView.requestFocus();
return true;
}
});
mUrlTextView.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
setKeyboardVisibilityForUrl(hasFocus);
mNextButton.setVisibility(hasFocus ? View.GONE : View.VISIBLE);
mPrevButton.setVisibility(hasFocus ? View.GONE : View.VISIBLE);
if (!hasFocus) {
mUrlTextView.setText(mAwTestContainerView.getUrl());
}
}
});
}
private void initializeNavigationButtons() {
mPrevButton = (ImageButton) findViewById(R.id.prev);
mPrevButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (mAwTestContainerView.canGoBack()) {
mAwTestContainerView.goBack();
}
}
});
mNextButton = (ImageButton) findViewById(R.id.next);
mNextButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (mAwTestContainerView.canGoForward()) {
mAwTestContainerView.goForward();
}
}
});
}
}