package com.trans.music.search; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import com.jokes.search.R; import android.app.Activity; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Build; import android.os.Environment; import android.os.Handler; import android.widget.Toast; public class Const { public static final String Key = "key"; public static final String MP3LOC = "MP3LOC"; public static final String MP3TITLE = "MP3TITLE"; public static final String MP3SONGER = "MP3SONGER"; public static final String MP3RATE = "MP3RATE"; public static final String MP3ALBM = "MP3ALBM"; public static final String searchurl = "url"; public static DbAdapter dbAdapter; // const same for all public static final String expire = "expire"; public static final long OneDay = 1000 * 3600 * 24; public static final long OneWeek = OneDay * 7; public static final long OneMonth = OneDay * 30; public static final long OneYear = OneDay * 365; // resources // other changed const var public static String QWName; public static String QWID; public static Activity main; //public static Object obj; // public static DownloadAdapter mDownload; public static final int NO_FILE_KIND = -1; public static final int FILE_KIND_MUSIC = 0; public static final int FILE_KIND_ALARM = 1; public static final int FILE_KIND_NOTIFICATION = 2; public static final int FILE_KIND_RINGTONE = 3; protected final static String appname = "MusicSearch"; public static String jsondir; public static String homedir; public static String cachedir; public static final int ver = Integer.parseInt(Build.VERSION.SDK); public static volatile Handler sHandler; public static void init(Activity c) { if (main != null) return; sHandler = new Handler(); main = c; File sdcardRoot = Environment.getExternalStorageDirectory(); dbAdapter = new DbAdapter(c); File homeDir = new File(sdcardRoot, appname); File jdir = new File(homeDir, "json"); File cache = new File(homeDir, "cache"); if (!cache.exists()) { createDir(homeDir); createDir(jdir); createDir(cache); // Create an empty .nomedia file to prevent Gallery caching of images. File noMedia = new File(jdir, ".nomedia"); try { noMedia.createNewFile(); } catch (IOException e) { // Log.e("nomedia", e.getMessage()); } } homedir = homeDir.getAbsolutePath() + "/"; jsondir = jdir.getAbsolutePath() + "/"; cachedir = cache.getAbsolutePath() + "/"; // Log.e("cache", cachedir); /* if (!homeDir.canWrite()) { Toast.makeText(Ring.main, R.string.no_sd_space,Toast.LENGTH_SHORT).show(); return; } */ //exceptionHandler(); //by hy //Thread.setDefaultUncaughtExceptionHandler(new CustomExceptionHandler(c)); } public static void trimCache() { new Thread(new Runnable() { @Override public void run() { File dir = new File(cachedir); if(dir!= null && dir.isDirectory()){ File[] children = dir.listFiles(); if (children == null) { // Either dir does not exist or is not a directory } else { File temp; for (int i = 0; i < children.length; i++) { temp = children[i]; temp.delete(); } } } //dir.delete(); } }).start(); } public static String pkg="com.trans.music.search"; private static void reportCrash(Throwable ex) { try { HttpPost report = new HttpPost("http://ggapp.appspot.com/ringtone/bug/"); List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>(); formparams.add(new BasicNameValuePair("device", Build.DEVICE)); formparams.add(new BasicNameValuePair("model", Build.MODEL)); formparams.add(new BasicNameValuePair("sdk", Build.VERSION.SDK)); formparams.add(new BasicNameValuePair("version", pkg + getVersion())); String data = ex.getMessage(); Throwable real = ex.getCause(); if (real == null) { return; } StackTraceElement[] stack = real.getStackTrace(); for(int i = 0; i < stack.length; ++i) { data += stack[i].toString(); } formparams.add(new BasicNameValuePair("bug", data)); UrlEncodedFormEntity entity; entity = new UrlEncodedFormEntity(formparams, "UTF-8"); report.setEntity(entity); HttpClient httpclient = new DefaultHttpClient(); httpclient.execute(report); httpclient.getConnectionManager().shutdown(); } catch (Exception e) { e.printStackTrace(); } } private static void exceptionHandler() { Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread, Throwable ex) { reportCrash(ex); main.finish(); } }); } private static int getVersion() { PackageInfo pInfo = null; try { pInfo = main.getPackageManager().getPackageInfo(pkg, PackageManager.GET_META_DATA); return pInfo.versionCode; } catch (Exception e) { e.printStackTrace(); } return 0; } private static void createDir(File dir) { if (!dir.mkdir()) { Toast.makeText(Const.main, R.string.no_sd,Toast.LENGTH_SHORT).show(); return; } } }