package cn.edu.buaa.act.sdp.malwaredetector.activity; import android.app.Dialog; import android.app.ProgressDialog; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.app.ActionBarActivity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.ProgressBar; import android.widget.TextView; import java.util.List; import cn.edu.buaa.act.sdp.malwaredetector.R; import cn.edu.buaa.act.sdp.malwaredetector.util.BatteryInfo; import cn.edu.buaa.act.sdp.malwaredetector.util.BatterySipper; import cn.edu.buaa.act.sdp.malwaredetector.util.BatteryUtils; public class BatteryStatusActivity extends ActionBarActivity { private final int PROGRESS_DIALOG_ID = 1; // private TextView batterySummary; // private ListView listView; // private customAdapter adapter; // private BatteryInfo info; // private ProgressDialog progressDialog; // private List<BatterySipper> mList; // private String mBatterySummary; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setContentView(R.layout.activity_main); // batterySummary = (TextView) findViewById(R.id.batterySummary); // listView = (ListView) findViewById(R.id.listview); // adapter = new customAdapter(); // listView.setAdapter(adapter); // // info = new BatteryInfo(this); // info.setMinPercentOfTotal(0.01); // // registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); // getBatteryStats(); } // // private void getBatteryStats() { // showDialog(PROGRESS_DIALOG_ID); // new Thread() { // public void run() { // mList = info.getBatteryStats(); // mHandler.sendEmptyMessage(1); // } // }.start(); // } // // private Handler mHandler = new Handler() { // // @Override // public void handleMessage(Message msg) { // // switch (msg.what) { // case 1: // if(isFinishing()) // return; // progressDialog.dismiss(); // batterySummary.setText(mBatterySummary + "\n测试信息:获取方式" + (info.testType == 1 ? "(根据记录文件)" : "(根据CPU使用时间)")); // adapter.setData(mList); // break; // } // } // }; // // @Override // protected Dialog onCreateDialog(int id) { // switch (id) { // case PROGRESS_DIALOG_ID: // progressDialog = new ProgressDialog(this); // progressDialog.setMessage("请稍候..."); // return progressDialog; // } // return null; // }; // // class customAdapter extends BaseAdapter { // private List<BatterySipper> list; // private LayoutInflater inflater; // // public customAdapter() { // inflater = LayoutInflater.from(BatteryStatusActivity.this); // } // // public void setData(List<BatterySipper> list) { // this.list = list; // // for (int i = list.size() - 1; i >= 0; i--) { // final BatterySipper sipper = list.get(i); // String name = sipper.getName(); // if (name == null) { // Drawable icon = sipper.getIcon(); // switch (sipper.getDrainType()) { // case CELL: // name = getString(R.string.power_cell); // icon = getResources().getDrawable(R.drawable.ic_settings_cell_standby); // break; // case IDLE: // name = getString(R.string.power_idle); // icon = getResources().getDrawable(R.drawable.ic_settings_phone_idle); // break; // case BLUETOOTH: // name = getString(R.string.power_bluetooth); // icon = getResources().getDrawable(R.drawable.ic_settings_bluetooth); // break; // case WIFI: // name = getString(R.string.power_wifi); // icon = getResources().getDrawable(R.drawable.ic_settings_wifi); // break; // case SCREEN: // name = getString(R.string.power_screen); // icon = getResources().getDrawable(R.drawable.ic_settings_display); // break; // case PHONE: // name = getString(R.string.power_phone); // icon = getResources().getDrawable(R.drawable.ic_settings_voice_calls); // break; // case KERNEL: // name = getString(R.string.process_kernel_label); // icon = getResources().getDrawable(R.drawable.ic_power_system); // break; // case MEDIASERVER: // name = getString(R.string.process_mediaserver_label); // icon = getResources().getDrawable(R.drawable.ic_power_system); // break; // default: // break; // } // // if (name != null) { // sipper.setName(name); // if (icon == null) { // PackageManager pm = getPackageManager(); // icon = pm.getDefaultActivityIcon(); // } // sipper.setIcon(icon); // } else { // list.remove(i); // } // } // } // notifyDataSetInvalidated(); // } // // @Override // public int getCount() { // return list == null ? 0 : list.size(); // } // // @Override // public BatterySipper getItem(int position) { // return list == null ? null : list.get(position); // } // // @Override // public long getItemId(int position) { // return position; // } // // @Override // public View getView(int position, View convertView, ViewGroup parent) { // Holder holder = null; // if (convertView == null) { // holder = new Holder(); // convertView = inflater.inflate(R.layout.battery_list_item, null); // holder.appIcon = (ImageView) convertView.findViewById(R.id.appIcon); // holder.appName = (TextView) convertView.findViewById(R.id.appName); // holder.txtProgress = (TextView) convertView.findViewById(R.id.txtProgress); // holder.progress = (ProgressBar) convertView.findViewById(R.id.progress); // convertView.setTag(holder); // } else { // holder = (Holder) convertView.getTag(); // } // // BatterySipper sipper = getItem(position); // holder.appName.setText(sipper.getName()); // holder.appIcon.setImageDrawable(sipper.getIcon()); // // double percentOfTotal = sipper.getPercentOfTotal(); // holder.txtProgress.setText(format(percentOfTotal)); // holder.progress.setProgress((int) percentOfTotal); // // return convertView; // } // } // // class Holder { // ImageView appIcon; // TextView appName; // TextView txtProgress; // ProgressBar progress; // } // // private String format(double size) { // return String.format("%1$.2f%%", size); // // return new BigDecimal("" + size).setScale(2, BigDecimal.ROUND_HALF_UP).toString(); // } // // @Override // protected void onDestroy() { // unregisterReceiver(mBatteryInfoReceiver); // super.onDestroy(); // } // // private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() { // // @Override // public void onReceive(Context context, Intent intent) { // String action = intent.getAction(); // if (Intent.ACTION_BATTERY_CHANGED.equals(action)) { // String batteryLevel = BatteryUtils.getBatteryPercentage(intent); // String batteryStatus = BatteryUtils.getBatteryStatus(BatteryStatusActivity.this.getResources(), intent); // mBatterySummary = context.getResources().getString(R.string.power_usage_level_and_status, batteryLevel, batteryStatus); // } // } // }; }