/*
* Copyright (C) 2012 yueyueniao
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package zjut.soft.finalwork.ui;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Timer;
import java.util.TimerTask;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.jsoup.Jsoup;
import zjut.soft.finalwork.R;
import zjut.soft.finalwork.core.YCApplication;
import zjut.soft.finalwork.core.YCStudentManager;
import zjut.soft.finalwork.fragment.LeftFragment;
import zjut.soft.finalwork.fragment.LeftFragment.ItemClickListener;
import zjut.soft.finalwork.fragment.PayQueryFragment;
import zjut.soft.finalwork.fragment.QuerySystemFragment;
import zjut.soft.finalwork.fragment.RightFragment;
import zjut.soft.finalwork.fragment.UserConfFragment;
import zjut.soft.finalwork.fragment.ViewPageFragment;
import zjut.soft.finalwork.util.Constant;
import zjut.soft.finalwork.view.SlidingMenu;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.view.KeyEvent;
import android.view.Window;
public class SlidingActivity extends FragmentActivity implements ItemClickListener{
SlidingMenu mSlidingMenu;
LeftFragment leftFragment;
RightFragment rightFragment;
ViewPageFragment viewPageFragment;
private Timer timer;
private YCApplication app;
private SharedPreferences sp;
private Handler mHandler;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
init();
// initListener();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
showLeft(); // ת���˵�
updateClassName(); // ���°༶
}
}, 600 );
}
@Override
public void onResume() {
super.onResume();
}
@Override
public void onDestroy() {
super.onDestroy();
if(timer != null) {
timer.cancel(); // �رն�ʱ����(��ǰִ��������Ӱ��)
}
((YCApplication)getApplication()).clearAllCachedData(); // �������
}
/**
* ץȡ�༶����
*/
private void updateClassName() {
new Thread(new Runnable() {
@Override
public void run() {
try {
HttpGet get = new HttpGet(
((YCApplication) getApplication())
.get("selectedIp") + Constant.gradeQuery);
final YCApplication app = (YCApplication) getApplication();
HttpResponse response = app.getClient().execute(get);
HttpEntity entity = response.getEntity();
BufferedReader br = new BufferedReader(
new InputStreamReader(entity.getContent(),
Constant.ENCODING));
String temp = null;
String keyWord = "lblBjmc";
while ((temp = br.readLine()) != null) {
if(temp.contains(keyWord)) {
break;
}
}
final String value = Jsoup.parse(temp).select("#" + keyWord).html().substring(3);
mHandler.post(new Runnable() {
@Override
public void run() {
app.put("className", value);
leftFragment.setClassName(value);
}
});
} catch (final Exception e) {
e.printStackTrace();
mHandler.post(new Runnable() {
@Override
public void run() {
leftFragment.setClassName(e.getMessage());
}
});
}
}
}).start();
}
private void init() {
sp = getSharedPreferences(Constant.PREFERENCES_NAME, Context.MODE_PRIVATE);
mSlidingMenu = (SlidingMenu) findViewById(R.id.slidingMenu);
mHandler = new Handler();
// mSlidingMenu.setCanSliding(true,false); // ����
// mSlidingMenu.setCanSliding(false, true); // ����
// mSlidingMenu.setCanSliding(true, true); // �������
mSlidingMenu.setLeftView(getLayoutInflater().inflate(
R.layout.left_frame, null));
mSlidingMenu.setRightView(getLayoutInflater().inflate(
R.layout.right_frame, null));
mSlidingMenu.setCenterView(getLayoutInflater().inflate(
R.layout.center_frame, null));
FragmentTransaction t = this.getSupportFragmentManager()
.beginTransaction();
leftFragment = new LeftFragment();
t.replace(R.id.left_frame, leftFragment);
rightFragment = new RightFragment();
t.replace(R.id.right_frame, rightFragment);
// viewPageFragment = new ViewPageFragment();
UserConfFragment userConfFrag = new UserConfFragment();
t.replace(R.id.center_frame, userConfFrag);
t.commit();
app = (YCApplication) getApplication();
timeSchedule();
}
public void showLeft() {
mSlidingMenu.showLeftView();
}
public void showRight() {
mSlidingMenu.showRightView();
}
@Override
public void onItemClick(int rank) {
switch(rank) {
case R.id.sliding_activity_user_manage:
// �û�����
showLeft();
UserConfFragment userConfFrag = new UserConfFragment();
this.getSupportFragmentManager()
.beginTransaction().replace(R.id.center_frame, userConfFrag)
.commit();
break;
case R.id.sliding_activity_pay_query:
// �ɷѲ�ѯ
showLeft();
PayQueryFragment payQueryFrag = new PayQueryFragment();
this.getSupportFragmentManager()
.beginTransaction()
.replace(R.id.center_frame, payQueryFrag)
.commit();
break;
case R.id.sliding_activity_query_system:
// �ɷѲ�ѯ
showLeft();
QuerySystemFragment querySystemFrag = new QuerySystemFragment();
this.getSupportFragmentManager()
.beginTransaction()
.replace(R.id.center_frame, querySystemFrag)
.commit();
break;
case R.id.sliding_activity_about_us:
// ��������
showLeft();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
showRight();
}
}, 500);
break;
case R.id.sliding_activity_unregister_user:
// ע����¼
new AlertDialog.Builder(this).setTitle("ע����¼").setMessage("��ȷ��Ҫע����?")
.setPositiveButton("ȷ��", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
sp.edit().putString("username", null).putString("password", null)
.putString("url", null).commit();
Intent i = new Intent();
i.setClass(SlidingActivity.this, LoginUI.class);
startActivity(i);
SlidingActivity.this.finish();
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
}).setNegativeButton("ȡ��", null)
.create().show();
break;
case R.id.sliding_activity_pick_course_system:
case R.id.sliding_activity_regist_system:
case R.id.sliding_activity_student_rating:
new AlertDialog.Builder(this).setTitle("�ƶ�ԭ��������").setMessage("�����ڴ�...")
.setNeutralButton("֪����", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// do nothing
}
}).create().show();
break;
}
}
private void timeSchedule() {
// ��ʱ����
// ��һ�θ�10���ӣ��Ժ�ÿ��15�������µ�¼һ��
// ��ע Asp.net session ��ʱĬ��Ϊ 20����
timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
System.out.println("��������");
String result = new YCStudentManager().login(getApplicationContext(), app.get("selectedIp").toString(),app.get("username").toString(), app.get("password").toString());
System.out.println(result);
}
}, 10 * 60 * 1000, 15 * 60 * 1000);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
System.out.println("right:" + mSlidingMenu.hasClickRight());
if(keyCode == KeyEvent.KEYCODE_BACK) {
if(!mSlidingMenu.hasClickLeft() && !mSlidingMenu.hasClickRight()) {
mSlidingMenu.showLeftView();
} else if (mSlidingMenu.hasClickRight()) {
mSlidingMenu.showRightView();
}
else {
new AlertDialog.Builder(this).setTitle("��ܰ��ʾ").setMessage("��ȷʵҪ�˳���?")
.setPositiveButton("ȷ��", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
DefaultHttpClient client = ((YCApplication)getApplication()).getClient();
client = null;
Runtime.getRuntime().gc();
SlidingActivity.this.finish();
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
}).setNegativeButton("ȡ��", null).create().show();
}
}
return true;
}
private void setBothSliding() {
if(mSlidingMenu.hasClickLeft()) {
mSlidingMenu.setCanSliding(true, false);
} else if(mSlidingMenu.hasClickRight()) {
mSlidingMenu.setCanSliding(false, true);
} else {
mSlidingMenu.setCanSliding(false,false);
}
}
//
// private void setBothSlidingForRight() {
// if(mSlidingMenu.hasClickRight()) {
// mSlidingMenu.setCanSliding(false, true);
// } else if(mSlidingMenu.hasClickLeft()) {
// mSlidingMenu.setCanSliding(true, false);
// } else {
// mSlidingMenu.setCanSliding(false,false);
// }
// }
// private void initListener() {
// viewPageFragment.setMyPageChangeListener(new MyPageChangeListener() {
//
// @Override
// public void onPageSelected(int position) {
// if(viewPageFragment.isFirst()){
// mSlidingMenu.setCanSliding(true,false);
// }else if(viewPageFragment.isEnd()){
// mSlidingMenu.setCanSliding(false,true);
// }else{
// mSlidingMenu.setCanSliding(false,false);
// }
// }
// });
//}
}