@Override public void onClick(View v) { if (v.getId() == R.id.installApk) { if (isDownloading) { // cancel downloading cancelDownloading(); } else { isDownloading = true; DownloadTask task = new DownloadTask(); task.setTitle(mAppInfoForManage.getLabel().toString()); task.setId(mAppInfoForManage.getAppId()); if (mAppInfoForManage.getIcon() != null) { Bitmap bitmap = ((BitmapDrawable) mAppInfoForManage.getIcon()).getBitmap(); task.setIcon(bitmap); } task.setPackageName(mAppInfoForManage.getPackageName()); task.setDownUrl(mAppInfoForManage.getPackagePath()); task.setTotalSize((int) mAppInfoForManage.getSize()); if (DownloadService.addDownTask(task)) { Intent i = new Intent(DownloadService.UPDATE_DOWN_TASK); i.setClass(this, DownloadService.class); startService(i); } mProgressBar.setVisibility(View.VISIBLE); mDownloadingText.setVisibility(View.VISIBLE); mHandler.sendEmptyMessage(2); } updateButton(); } }
private int isInstalled() { if (mAppInfo != null) { return Utilis.isInstalled( mAppInfo.getPackageName(), mAppInfo.getFlag(), getPackageManager().getInstalledPackages(PackageManager.GET_SIGNATURES)); } return -1; }
@Override public void handleMessage(Message msg) { switch (msg.what) { case 2: if (mAppInfoForManage == null) { return; } String packageName = mAppInfoForManage.getPackageName(); int size = DownloadService.downtask.size(); boolean found = false; for (int i = 0; i < size; i++) { DownloadTask task = DownloadService.downtask.get(i); if (task.getPackageName().equals(packageName)) { found = true; int percent = 0; int totalSize = task.getTotalSize(); int currentSize = task.getCurrentSize(); mProgressBar.setMax(totalSize); mProgressBar.setProgress(currentSize); if (totalSize > 0) { percent = currentSize * 100 / totalSize; } String text = String.format( "%d%% %dKB/%dKB", percent, currentSize / 1000, totalSize / 1000); mDownloadingText.setText(text); break; } } if (found) { this.sendEmptyMessageDelayed(2, 500); } else { tempCount += 1; this.sendEmptyMessage(7); } break; case 7: mInstallApk.setClickable(true); mDownloadingText.setVisibility(View.GONE); mProgressBar.setVisibility(View.GONE); TextView textDesc = (TextView) findViewById(R.id.textDesc); textDesc.setText(R.string.softmanage_install_now_text); isDownloading = false; updateButton(); break; } }