package edu.hebtu.movingcampus.activity.wrapper;
import org.apache.http.util.EncodingUtils;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import edu.hebtu.movingcampus.AppInfo;
import edu.hebtu.movingcampus.R;
import edu.hebtu.movingcampus.activity.MainActivity;
import edu.hebtu.movingcampus.activity.base.Observer;
import edu.hebtu.movingcampus.activity.base.PageWraper;
import edu.hebtu.movingcampus.config.Urls;
import edu.hebtu.movingcampus.subjects.NetworkChangeReceiver;
import edu.hebtu.movingcampus.subjects.NetworkChangeReceiver.NetworkchangeListener;
/**
* @author hippo
* @version 1.0
* @created 14-Nov-2013 9:13:32 AM
*/
public class LibraryActivity implements Observer, PageWraper,NetworkchangeListener {
private WebView browser;
private Activity mainActivity = MainActivity.instance;
private View contentView;
private static View loadingLayout;
private static View loadfailedLayout;
@SuppressLint({ "JavascriptInterface", "SetJavaScriptEnabled" })
public LibraryActivity(View view) {
this.contentView = view;
browser = (WebView) view
.findViewById(R.id.webkit);
loadingLayout= view.findViewById(R.id.loading_layout);
loadfailedLayout= view.findViewById(R.id.loadfailed_layout);
browser.getSettings().setJavaScriptEnabled(true);
browser.setWebViewClient(new SampleWebViewClient());
AppInfo app = (AppInfo) (mainActivity.getApplication());
// 自动登录
login(app);
bindButton();
view.post(new Runnable() {
@Override
public void run() {
browser.loadUrl(Urls.LIB_URL);
}
});
}
private void bindButton() {
contentView.findViewById(R.id.btn_refresh).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
browser.reload();
}
});
}
private void login(AppInfo app) {
// 登录
try{
String name = AppInfo.getUser().getCid();
String password = app.getPassword().substring(2, 6);
String logindata = "username=" + name + "&password=" + password;
browser.postUrl(Urls.LIB_POST_LOGIN,
EncodingUtils.getBytes(logindata, "base64"));
// 注册
TelephonyManager tMgr = (TelephonyManager) (mainActivity
.getSystemService(Context.TELEPHONY_SERVICE));
String mPhoneNumber = tMgr.getLine1Number();
String regiestdata = "userinfo.phone=" + mPhoneNumber;
browser.postUrl(Urls.LIB_POST_REGIST,
EncodingUtils.getAsciiBytes(regiestdata));
}catch(Exception e){
e.printStackTrace();
}
}
private static class SampleWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
loadingLayout.setVisibility(View.VISIBLE);
loadfailedLayout.setVisibility(View.GONE);
view.loadUrl(url);
return true;
}
@Override
public void onReceivedError(WebView view,int errorCode,String description,String failingUrl){
loadingLayout.setVisibility(View.GONE);
loadfailedLayout.setVisibility(View.VISIBLE);
}
@Override
public void onPageFinished(WebView view,String url)
{
loadingLayout.setVisibility(View.GONE);
loadfailedLayout.setVisibility(View.GONE);
}
}
@Override
public void update() {
}
@Override
public void onResume() {
if(browser.getUrl()==null);
browser.loadUrl(Urls.LIB_URL);
NetworkChangeReceiver.registNetWorkListener(this);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
}
@Override
public void onPause() {
NetworkChangeReceiver.unRegistNetworkListener(this);
}
@Override
public void onDataEnabled() {
// TODO Auto-generated method stub
}
@Override
public void onDataDisabled() {
// TODO Auto-generated method stub
}
}