package com.dkanada.openapk.utils; import android.Manifest; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.net.Uri; import android.support.v4.content.ContextCompat; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import com.dkanada.openapk.App; import com.dkanada.openapk.R; import com.dkanada.openapk.models.AppItem; import java.io.File; import java.text.SimpleDateFormat; import java.util.Locale; public class OtherUtils { // get the name of the extracted app public static String getAPKFilename(AppItem appItem) { AppPreferences appPreferences = App.getAppPreferences(); switch (appPreferences.getFilename()) { case "0": return appItem.getPackageName() + ".apk"; case "1": return appItem.getPackageLabel() + ".apk"; default: return appItem.getPackageName() + ".apk"; } } // open google play if installed otherwise open browser public static void goToGooglePlay(Context context, PackageInfo packageInfo) { try { context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + packageInfo.packageName))); } catch (ActivityNotFoundException e) { context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + packageInfo.packageName))); } } // save app name to clipboard public static void saveClipboard(Context context, PackageInfo packageInfo) { ClipData clipData; clipData = ClipData.newPlainText("text", packageInfo.packageName); ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); clipboardManager.setPrimaryClip(clipData); } // get version number for this app public static String getAppVersionName(Context context) { String res = "0.0.0"; try { res = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName; } catch (Exception e) { e.printStackTrace(); } return res; } // get version code for this app public static int getAppVersionCode(Context context) { int res = 0; try { res = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode; } catch (Exception e) { e.printStackTrace(); } return res; } // get intent to share app public static Intent getShareIntent(File file) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); intent.setType("application/vnd.android.package-archive"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); return intent; } public static boolean checkPermissions(Context context) { return ContextCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED; } public static void requestPermissions(Context context) { Activity activity = (Activity) context; if (!checkPermissions(context)) { activity.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, AppPreferences.CODE_PERMISSION); } } public static int dark(int color, double factor) { int a = Color.alpha(color); int r = Color.red(color); int g = Color.green(color); int b = Color.blue(color); return Color.argb(a, Math.max((int) (r * factor), 0), Math.max((int) (g * factor), 0), Math.max((int) (b * factor), 0)); } // set the toolbar title with any string public static void setToolbarTitle(Context context, String title) { Activity activity = (Activity) context; Toolbar toolbar = (Toolbar) activity.findViewById(R.id.toolbar); toolbar.setTitle(title); } // update the state of the favorite icon public static void updateAppFavoriteIcon(Context context, MenuItem menuItem, PackageInfo packageInfo) { /*if (App.getAppPreferences().getFavoriteList().contains(packageInfo.packageName)) { menuItem.setIcon(context.getResources().getDrawable(R.drawable.ic_star)); } else { menuItem.setIcon(context.getResources().getDrawable(R.drawable.ic_star_border)); }*/ } public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitmap.createBitmap(150, 150, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); drawable.draw(canvas); return bitmap; } public static String formatDate(long date) { return new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a", Locale.US).format(date); } public static String formatSize(long size) { if (size < 1024) { return Long.toString(size) + "B"; } else if (size < 1048576) { size = size / 1024; return Long.toString(size) + "KB"; } else if (size < 1073741824) { size = size / 1048576; return Long.toString(size) + "MB"; } else { size = size / 1073741824; return Long.toString(size) + "GB"; } } }