private int isInstalled() { if (mAppInfo != null) { return Utilis.isInstalled( mAppInfo.getPackageName(), mAppInfo.getFlag(), getPackageManager().getInstalledPackages(PackageManager.GET_SIGNATURES)); } return -1; }
@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 void fillData() { if (mAppInfoForManage != null) { if (mAppInfoForManage.getIcon() != null) { mAppIcon.setImageDrawable(mAppInfoForManage.getIcon()); } else { mAppIcon.setImageDrawable(getPackageManager().getDefaultActivityIcon()); } mAppName.setText(mAppInfoForManage.getLabel()); mAppVersion.setText(mAppInfoForManage.getVersion()); String sizeStr = new UnitsConversion().defaultConversion(mAppInfoForManage.getSize()); String[] size = sizeStr.split(" "); if (size.length > 1) { mAppSizeNum.setText(size[0]); mAppSizeUnit.setText(size[1]); } mAppDescription.setText(mAppInfoForManage.getDescription()); if (mAppInfoForManage.getPartnerId() == 0) { mScreenshotOne.setVisibility(View.VISIBLE); mScreenshotTwo.setVisibility(View.VISIBLE); mLoadScreenShotOne = new LoadScreenShot(0); mLoadScreenShotTwo = new LoadScreenShot(1); mLoadScreenShotOne.start(); mLoadScreenShotTwo.start(); } else { mScreenshotOne.setVisibility(View.GONE); mScreenshotTwo.setVisibility(View.GONE); } } }
@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; } }