package com.zzx.factorytest;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.GridView;
import android.widget.Toast;
import com.zzx.factorytest.bean.TestItem;
import com.zzx.factorytest.manager.FactoryTestManager;
import com.zzx.factorytest.view.TestItemGridViewAdapter;
public class TestGridActivity extends Activity implements OnItemClickListener {
private TestItemGridViewAdapter mAdapter;
private GridView mGridView;
private FactoryTestManager factoryTestManager;
private Handler mHandler;
private Class currentTestingCls;
private Button mReturnBtn;
public static final int RESULT_CODE_TESTOK = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_item_grid);
findView();
initializeView();
setListener();
mHandler = new Handler();
factoryTestManager = FactoryTestManager.getInstance(this);
if (FactoryTestManager.currentTestMode == FactoryTestManager.TestMode.MODE_AUTO_TEST) {
factoryTestManager.clearTestResult();
jumpActivity(factoryTestManager.getNextActivityClass(null));
}
}
private void setListener() {
mGridView.setOnItemClickListener(this);
}
private void initializeView() {
mAdapter = new TestItemGridViewAdapter(this);
mAdapter.isShowResult(true);
mGridView.setAdapter(mAdapter);
}
private void findView() {
mGridView = (GridView) findViewById(R.id.item_grid);
mReturnBtn = (Button) findViewById(R.id.btn_return);
}
public void jumpActivity(final Class activityCls) {
currentTestingCls = activityCls;
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
startActivityForResult(new Intent(TestGridActivity.this,
activityCls), 0);
}
}, 1500);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_CODE_TESTOK) {
Class nextActivity = factoryTestManager.getNextActivityClass(currentTestingCls);
if (nextActivity == null) {// 测试完成
Toast.makeText(this, "测试完成!", Toast.LENGTH_SHORT).show();
} else {
jumpActivity(nextActivity);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
public void btnReturn(View view) {
this.finish();
}
@Override
protected void onResume() {
super.onResume();
if (FactoryTestManager.currentTestMode == FactoryTestManager.TestMode.MODE_AUTO_TEST) {
// 自动测试
// factoryTestManager.clearTestResult();
mAdapter.setItemClickEnable(false);
mReturnBtn.setEnabled(false);
} else if (FactoryTestManager.currentTestMode == FactoryTestManager.TestMode.MODE_SINGAL_TEST) {
// 单项
mAdapter.setItemClickEnable(true);
mReturnBtn.setEnabled(true);
} else if (FactoryTestManager.currentTestMode == FactoryTestManager.TestMode.MODE_RESULT_TEST) {
// 查看报表
mAdapter.setItemClickEnable(false);
}
mAdapter.notifyDataSetChanged();
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
startActivity(new Intent(this,
((TestItem) mAdapter.getItem(position)).activityCls));
}
}