content: /*
   * Copyright 2014 A.C.R. Development
   */
  package acr.browser.thunder;
  
  import android.app.Activity;
  import android.app.AlertDialog;
  import android.content.Context;
  import android.content.DialogInterface;
  import android.content.Intent;
  import android.util.Log;
  import android.webkit.URLUtil;
  import android.widget.Toast;
  
  import java.io.*;
  import java.net.URI;
  import java.net.URISyntaxException;
  
  public final class Utils {
  
  	public Utils() {
  
  	}
  
  	public static void downloadFile(final Activity activity, final String url,
  			final String userAgent, final String contentDisposition, final boolean privateBrowsing) {
  		String fileName = URLUtil.guessFileName(url, null, null);
  		DownloadHandler.onDownloadStart(activity, url, userAgent, contentDisposition, null,
  				privateBrowsing);
  		Log.i(Constants.TAG, "Downloading" + fileName);
  	}
  
  	public static Intent newEmailIntent(Context context, String address, String subject,
  			String body, String cc) {
  		Intent intent = new Intent(Intent.ACTION_SEND);
  		intent.putExtra(Intent.EXTRA_EMAIL, new String[] { address });
  		intent.putExtra(Intent.EXTRA_TEXT, body);
  		intent.putExtra(Intent.EXTRA_SUBJECT, subject);
  		intent.putExtra(Intent.EXTRA_CC, cc);
  		intent.setType("message/rfc822");
  		return intent;
  	}
  
  	public static void createInformativeDialog(Context context, String title, String message) {
  		AlertDialog.Builder builder = new AlertDialog.Builder(context);
  		builder.setTitle(title);
  		builder.setMessage(message)
  				.setCancelable(true)
  				.setPositiveButton(context.getResources().getString(R.string.action_ok),
  						new DialogInterface.OnClickListener() {
  							@Override
  							public void onClick(DialogInterface dialog, int id) {
  							}
  						});
  		AlertDialog alert = builder.create();
  		alert.show();
  	}
  
  	public static void showToast(Context context, String message) {
  		Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
  	}
  
  	/**
  	 * Returns the number of pixels corresponding to the passed density pixels
  	 */
  	public static int convertToDensityPixels(Context context, int densityPixels) {
  		float scale = context.getResources().getDisplayMetrics().density;
  		return (int) (densityPixels * scale + 0.5f);
  	}
  
  	public static String getDomainName(String url) {
  		URI uri;
  		try {
  			uri = new URI(url);
  		} catch (URISyntaxException e) {
  			return url;
  		}
  		String domain = uri.getHost();
  		if (domain == null) {
  			return url;
  		}
  		return domain.startsWith("www.") ? domain.substring(4) : domain;
  	}
  
  	public static String[] getArray(String input) {
  		return input.split("\\|\\$\\|SEPARATOR\\|\\$\\|");
  	}
  
  	public static void trimCache(Context context) {
  		try {
  			File dir = context.getCacheDir();
  
  			if (dir != null && dir.isDirectory()) {
  				deleteDir(dir);
  			}
  		} catch (Exception ignored) {
  
  		}
  	}
  
  	public static boolean deleteDir(File dir) {
  		if (dir != null && dir.isDirectory()) {
  			String[] children = dir.list();
  			for (String aChildren : children) {
  				boolean success = deleteDir(new File(dir, aChildren));
  				if (!success) {
  					return false;
  				}
  			}
  		}
  		// The directory is now empty so delete it
  		return dir != null && dir.delete();
  	}
  }
  