package com.skyguy126.soundclouddownloader; import android.Manifest; import android.app.Activity; import android.app.AlertDialog; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Build; import android.support.v4.app.ActivityCompat; public class Shared { public static final String PACKAGE_NAME = BuildConfig.APPLICATION_ID; public static final String PREFS_FILE_NAME = "scd_prefs"; public static final String PREFS_LAUNCHER_ICON_KEY = "disp_launcher_icon_checkbox"; public static final String PREFS_SPINNER_KEY = "save_loc_spinner"; public static final String PREFS_SAVE_PATH_KEY = "save_loc_spinner_path"; public static final String PREFS_METADATA_KEY = "include_metadata"; public static final String SOURCE_LINK = "https://github.com/skyguy126/Xposed-SoundCloudDownloader"; public static final String CUSTOM_PATH_DEFAULT = "/sdcard/"; public static void openWebsite(Context context, String url) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setPackage("com.android.chrome"); try { context.startActivity(intent); } catch (ActivityNotFoundException e) { intent.setPackage(null); context.startActivity(intent); } } public static String getSpinnerDescription(int key) { switch (key) { case 0: return "/sdcard/"; case 1: return "/sdcard/Download/"; case 2: return "/sdcard/Music/"; case 3: return "User Defined"; default: return ""; } } public static String validateFileName(String fileName) { return fileName.replaceAll("[|\\\\?*<\":>+/]", ""); } public static boolean validatePermissions(final Activity activity) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (activity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { return true; } else { AlertDialog.Builder alert = new AlertDialog.Builder(activity); alert.setTitle("Permission Error"); alert.setMessage("Grant permissions in the next dialog and retry download."); alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { dialog.dismiss(); ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); } }); alert.show(); return false; } } else { return true; } } }