package cn.com.basic.face.base;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.os.Handler;
|
import android.support.design.widget.TabLayout;
|
import android.support.v4.app.Fragment;
|
import android.support.v4.app.FragmentManager;
|
import android.support.v4.app.FragmentPagerAdapter;
|
import android.support.v4.view.ViewPager;
|
import android.os.Bundle;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.Window;
|
import android.view.WindowManager;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.bsk.zhangbo.demoforbsk.R;
|
import cn.com.basic.face.fragment.SurveillanceFragment;
|
import cn.com.basic.face.util.TabNameUtil;
|
import cn.com.basic.face.fragment.AttendanceFragment;
|
import cn.com.basic.face.fragment.CheckInFragment;
|
import cn.com.basic.face.fragment.DeviceFragment;
|
import cn.com.basic.face.fragment.PhoneCallFragment;
|
import cn.com.basic.face.fragment.RegisterFragment;
|
import cn.com.basic.face.fragment.VisitFragment;
|
|
import java.io.File;
|
import java.io.FileOutputStream;
|
import java.io.InputStream;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
|
public class MainActivity extends BaseActivity {
|
|
private static MainActivity instance;
|
|
private static TabLayout mTabLayout;
|
private static ViewPager mViewPager;
|
|
public static void selectPage(int pageNum) {
|
mTabLayout.getTabAt(pageNum).select();
|
}
|
|
@Override
|
public int getLayoutId() {
|
return R.layout.activity_main;
|
}
|
|
@Override
|
public void initViews(Bundle savedInstanceState) {
|
mTabLayout = (TabLayout) findViewById(R.id.tab_layout);
|
mViewPager = (ViewPager) findViewById(R.id.viewpager);
|
mTabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
|
instance = this;
|
}
|
|
@Override
|
public void initData() {
|
List<String> tabNamesList = Arrays.asList(TabNameUtil.tabNames);
|
int[] tabIcons = TabNameUtil.tabIcons;
|
MyFragmentPagerAdapter myFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager(),MainActivity.this);
|
myFragmentPagerAdapter.addFragment(SurveillanceFragment.getInstance(), tabNamesList.get(0),tabIcons[0]);
|
myFragmentPagerAdapter.addFragment(RegisterFragment.getInstance(), tabNamesList.get(1),tabIcons[1]);
|
myFragmentPagerAdapter.addFragment(CheckInFragment.getInstance(), tabNamesList.get(2),tabIcons[2]);
|
myFragmentPagerAdapter.addFragment(PhoneCallFragment.getInstance(), tabNamesList.get(3),tabIcons[3]);
|
myFragmentPagerAdapter.addFragment(VisitFragment.getInstance(), tabNamesList.get(4),tabIcons[4]);
|
myFragmentPagerAdapter.addFragment(AttendanceFragment.getInstance(), tabNamesList.get(5),tabIcons[5]);
|
myFragmentPagerAdapter.addFragment(DeviceFragment.getInstance(), tabNamesList.get(6),tabIcons[6]);
|
mViewPager.setAdapter(myFragmentPagerAdapter);
|
mViewPager.setOffscreenPageLimit(6);//viewpager缓存个数
|
mTabLayout.setupWithViewPager(mViewPager);
|
mTabLayout.setTabMode(TabLayout.MODE_FIXED);
|
for (int i = 0; i < mTabLayout.getTabCount(); i++) {
|
TabLayout.Tab tab = mTabLayout.getTabAt(i);
|
LinearLayout view = (LinearLayout)myFragmentPagerAdapter.getTabView(i);
|
tab.setCustomView(view);
|
if (i == 0) {
|
tab.getCustomView().setSelected(true);
|
}
|
}
|
myThread = new MyThread();
|
myThread.start();
|
|
}
|
|
public static MainActivity getInstance() {
|
return instance;
|
}
|
|
public static class MyFragmentPagerAdapter extends FragmentPagerAdapter {
|
|
private final List<Fragment> mFragments = new ArrayList<>();
|
private final List<String> mFragmentTitles = new ArrayList<>();
|
private final List<Integer> mFragmentIcons = new ArrayList<>();
|
private Context context;
|
public MyFragmentPagerAdapter(FragmentManager fm, Context context) {
|
super(fm);
|
this.context = context;
|
}
|
|
public void addFragment(Fragment fragment, String title,int drawable) {
|
mFragments.add(fragment);
|
mFragmentTitles.add(title);
|
mFragmentIcons.add(drawable);
|
}
|
|
@Override
|
public Fragment getItem(int position) {
|
return mFragments.get(position);
|
}
|
|
@Override
|
public int getCount() {
|
return mFragments.size();
|
}
|
|
@Override
|
public CharSequence getPageTitle(int position) {
|
return null;
|
}
|
|
public View getTabView(int position){
|
View view = LayoutInflater.from(context).inflate(R.layout.activity_main_tab,null);
|
TextView mTvTitle = (TextView) view.findViewById(R.id.tab_item_title);
|
mTvTitle.setText(mFragmentTitles.get(position));
|
ImageView mImgIcon = (ImageView) view.findViewById(R.id.tab_item_icon);
|
mImgIcon.setImageResource(mFragmentIcons.get(position));
|
return view;
|
}
|
|
}
|
|
boolean doubleBackToExitPressedOnce = false;
|
|
@Override
|
public void onBackPressed() {
|
if (doubleBackToExitPressedOnce) {
|
super.onBackPressed();
|
return;
|
}
|
|
this.doubleBackToExitPressedOnce = true;
|
Toast.makeText(this, "请再次按返回键退出", Toast.LENGTH_SHORT).show();
|
|
new Handler().postDelayed(new Runnable() {
|
|
@Override
|
public void run() {
|
doubleBackToExitPressedOnce=false;
|
}
|
}, 2000);
|
}
|
|
|
private MyThread myThread;
|
class MyThread extends Thread{
|
@Override
|
public void run() {
|
try {
|
setBmpDecodeEnv();
|
Thread.sleep(2000);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
/**
|
* 将raw下的文件复制到sdCard
|
*/
|
public boolean setBmpDecodeEnv() {
|
|
String path=getFilesDir().getAbsolutePath();
|
String filename = "base.dat";
|
try{
|
String databaseFilename = path + "/" + filename;
|
File dir = new File(path);
|
if (!dir.exists())
|
dir.mkdir();
|
if (!(new File(databaseFilename)).exists()){
|
InputStream is = getResources().openRawResource(R.raw.base);
|
FileOutputStream fos = new FileOutputStream(databaseFilename);
|
byte[] buffer = new byte[8192];
|
int count = 0;
|
while ((count = is.read(buffer)) > 0)
|
{
|
fos.write(buffer, 0, count);
|
}
|
fos.close();
|
is.close();
|
}
|
}
|
catch (Exception e){
|
System.out.println(e.getMessage());
|
return false;
|
}
|
|
String filename1 = "license.lic";
|
try{
|
String databaseFilename = path + "/" + filename1;
|
File dir = new File(path);
|
if (!dir.exists())
|
dir.mkdir();
|
if (!(new File(databaseFilename)).exists()){
|
InputStream is = getResources().openRawResource(R.raw.license);
|
FileOutputStream fos = new FileOutputStream(databaseFilename);
|
byte[] buffer = new byte[8192];
|
int count = 0;
|
while ((count = is.read(buffer)) > 0)
|
{
|
fos.write(buffer, 0, count);
|
}
|
fos.close();
|
is.close();
|
}
|
}
|
catch (Exception e){
|
System.out.println(e.getMessage());
|
return false;
|
}
|
return true;
|
}
|
|
}
|