package com.ittianyu.mobileguard.activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.ittianyu.mobileguard.R; import com.ittianyu.mobileguard.activity.base.BaseActivityUpEnable; import com.ittianyu.mobileguard.constant.Constant; import com.ittianyu.mobileguard.domain.AdvancedToolBean; import com.ittianyu.mobileguard.strategy.advancedtools.AppLockScheme; import com.ittianyu.mobileguard.strategy.advancedtools.BackupScheme; import com.ittianyu.mobileguard.strategy.advancedtools.PhoneLocationScheme; import com.ittianyu.mobileguard.strategy.advancedtools.RestoreScheme; import java.io.File; import java.util.ArrayList; import java.util.List; /** * advanced tools activity * show a function list */ public class AdvancedToolsActivity extends BaseActivityUpEnable { private static final int REQUEST_CODE_RESTORE = 1; private ListView lvTools; private List<AdvancedToolBean> tools = new ArrayList<>(); private ToolsAdapter adapter = new ToolsAdapter(); private RestoreScheme restoreScheme; /** * construct method */ public AdvancedToolsActivity() { super(R.string.advanced_tools); } /** * 1 */ @Override protected void initView() { setContentView(R.layout.activity_advanced_tools); // bind view lvTools = (ListView) findViewById(R.id.lv_tools); } /** * 2 */ @Override protected void initData() { // add phone location query tools.add(new AdvancedToolBean(R.drawable.ic_phone_location, R.string.phone_location_query, R.string.summary_phone_location_query, new PhoneLocationScheme())); // add backup tools.add(new AdvancedToolBean(R.drawable.ic_backup, R.string.contacts_sms_backup, R.string.summary_contacts_sms_backup, new BackupScheme())); restoreScheme = new RestoreScheme(); // add restore tools.add(new AdvancedToolBean(R.drawable.ic_restore, R.string.contacts_sms_restore, R.string.summary_contacts_sms_restore, restoreScheme)); // add app lock tools.add(new AdvancedToolBean(R.drawable.ic_app_unlock, R.string.app_lock, R.string.summary_app_lock, new AppLockScheme())); // set adapter lvTools.setAdapter(adapter); } /** * 3 */ @Override protected void initEvent() { // click listener lvTools.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { tools.get(position).getClickListener().onSelected(AdvancedToolsActivity.this); } }); } /** * it will be call when select restore * @param requestCode * @param resultCode * @param data */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case REQUEST_CODE_RESTORE: { if(null == data) return; Bundle extras = data.getExtras(); File file = (File) extras.get(Constant.EXTRA_RESTORE_FILE); int which = extras.getInt(Constant.EXTRA_RESTORE_TYPE); restoreScheme.startRestore(file, which); break; } } } /** * tools adapter */ private class ToolsAdapter extends BaseAdapter { @Override public int getCount() { return tools.size(); } @Override public View getView(int position, View convertView, ViewGroup parent) { // the list count are few, no need to cache // create view View view = View.inflate(AdvancedToolsActivity.this, R.layout.item_advanced_tools_lv, null); TextView tvTitle = (TextView) view.findViewById(R.id.tv_title); TextView tvSummary = (TextView) view.findViewById(R.id.tv_summary); ImageView ivImage = (ImageView) view.findViewById(R.id.iv_image); // get data AdvancedToolBean tool = tools.get(position); // set value tvTitle.setText(tool.getTitleId()); tvSummary.setText(tool.getSummaryId()); ivImage.setImageResource(tool.getImageId()); return view; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } } }