package com.lzx.lock.module.main;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.lzx.lock.R;
import com.lzx.lock.base.BaseActivity;
import com.lzx.lock.bean.CommLockInfo;
import com.lzx.lock.module.setting.LockSettingActivity;
import com.lzx.lock.mvp.contract.LockMainContract;
import com.lzx.lock.mvp.p.LockMainPresenter;
import com.lzx.lock.utils.SystemBarHelper;
import com.lzx.lock.widget.DialogSearch;
import java.util.ArrayList;
import java.util.List;
/**
* Created by xian on 2017/3/1.
*/
public class MainActivity extends BaseActivity implements LockMainContract.View, View.OnClickListener {
private RelativeLayout mTopLayout;
private ImageView mBtnSetting;
private TextView mEditSearch;
private TabLayout mTabLayout;
private ViewPager mViewPager;
private CommentPagerAdapter mPagerAdapter;
private LockMainPresenter mLockMainPresenter;
private DialogSearch mDialogSearch;
private List<String> titles ;
private List<Fragment> fragmentList ;
@Override
public int getLayoutId() {
return R.layout.activity_main;
}
@Override
protected void initViews(Bundle savedInstanceState) {
mBtnSetting = (ImageView) findViewById(R.id.btn_setting);
mEditSearch = (TextView) findViewById(R.id.edit_search);
mTabLayout = (TabLayout) findViewById(R.id.tab_layout);
mViewPager = (ViewPager) findViewById(R.id.view_pager);
mTopLayout = (RelativeLayout) findViewById(R.id.top_layout);
mTopLayout.setPadding(0, SystemBarHelper.getStatusBarHeight(this), 0, 0);
mLockMainPresenter = new LockMainPresenter(this, this);
mLockMainPresenter.loadAppInfo(this);
}
@Override
protected void initData() {
mDialogSearch = new DialogSearch(this);
}
@Override
protected void initAction() {
mBtnSetting.setOnClickListener(this);
mEditSearch.setOnClickListener(this);
mDialogSearch.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
mLockMainPresenter.loadAppInfo(MainActivity.this);
}
});
}
@Override
public void loadAppInfoSuccess(List<CommLockInfo> list) {
int sysNum = 0;
int userNum = 0;
for (CommLockInfo info : list) {
if (info.isSysApp()) {
sysNum++;
} else {
userNum++;
}
}
titles = new ArrayList<>();
titles.add("系统应用" + " (" + sysNum + ")");
titles.add("第三方应用" + " (" + userNum + ")");
SysAppFragment sysAppFragment = SysAppFragment.newInstance(list);
UserAppFragment userAppFragment = UserAppFragment.newInstance(list);
fragmentList = new ArrayList<>();
fragmentList.add(sysAppFragment);
fragmentList.add(userAppFragment);
mPagerAdapter = new CommentPagerAdapter(getSupportFragmentManager(), fragmentList, titles);
mViewPager.setAdapter(mPagerAdapter);
mTabLayout.setupWithViewPager(mViewPager);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_setting:
startActivity(new Intent(this, LockSettingActivity.class));
break;
case R.id.edit_search:
mDialogSearch.show();
break;
}
}
public class CommentPagerAdapter extends FragmentStatePagerAdapter {
private List<Fragment> fragmentList = new ArrayList<>();
private List<String> titles = new ArrayList<>();
public CommentPagerAdapter(FragmentManager fm, List<Fragment> fragmentList, List<String> titles) {
super(fm);
this.fragmentList = fragmentList;
this.titles = titles;
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
@Override
public int getCount() {
return titles.size();
}
}
}