// Path: old-library-with-sample/src/main/java/com/rocko/common/DebugLog.java
// public class DebugLog {
//     /**
//      * Log输出所在类
//      */
//     private static String className;
//     /**
//      * Log输出所在方法
//      */
//     private static String methodName;
//     /**
//      * Log输出所行号
//      */
//     private static int lineNumber;
// 
//     private DebugLog() {
//     }
// 
//     /**
//      * 是否可Debug状态
//      *
//      * @return
//      */
//     public static boolean isDebuggable() {
//         return BuildConfig.DEBUG;
//     }
// 
//     /**
//      * 创建Log输出的基本信息
//      *
//      * @param log
//      * @return
//      */
//     private static String createLog(String log) {
//         StringBuffer buffer = new StringBuffer();
//         buffer.append("[");
//         buffer.append(methodName);
//         buffer.append("()");
//         buffer.append(" line:");
//         buffer.append(lineNumber);
//         buffer.append("] ");
//         buffer.append(log);
//         return buffer.toString();
//     }
// 
//     /**
//      * 取得输出所在位置的信息 className methodName lineNumber
//      *
//      * @param sElements
//      */
//     private static void getMethodNames(StackTraceElement[] sElements) {
//         className = sElements[1].getFileName().split("\\.")[0];
//         methodName = sElements[1].getMethodName();
//         lineNumber = sElements[1].getLineNumber();
//     }
// 
//     public static void e(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.e(className, createLog(message));
//     }
// 
//     public static void i(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.i(className, createLog(message));
//     }
// 
//     public static void d(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.d(className, createLog(message));
//     }
// 
//     public static void v(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.v(className, createLog(message));
//     }
// 
//     public static void w(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.w(className, createLog(message));
//     }
// 
//     public static void wtf(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.wtf(className, createLog(message));
//     }
// 
// }
// 
// Path: old-library-with-sample/src/main/java/com/rocko/config/Configs.java
// public class Configs {
//     /**
//      * 更新文件夹
//      */
//     public static final String UPDATE_DOWNLOAD_PATH = "RepairSystem/update";
//     /**
//      * 外部存储地址
//      */
//     public static final String EXTERNAL_STORAGE_DIRECTORY = Environment.getExternalStorageDirectory()
//             .toString() + "/";
//     /**
//      * 更新下载后的文件名
//      */
//     public static final String NEW_APK_FILE_NAME = "/RepairSystem.apk";
// }
// 
// Path: old-library-with-sample/src/main/java/com/rocko/config/Urls.java
// public class Urls {
//     public final static String baseUrl = "http://192.168.206.1:8080/repairSys";
//     public final static String update = "/Mobile/androidUpdateInfo.xml";
//     public final static String downloadApk = "/Mobile/RepairSystem.apk";
// }


import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.widget.RemoteViews;
import com.rocko.androidutils.R;
import com.rocko.common.DebugLog;
import com.rocko.config.Configs;
import com.rocko.config.Urls;
import java.io.File;
package com.rocko.update;




/**
 * 更新下载服务
 *
 * @author Mr.Zheng
 * @date 2014年7月13日21:39:49
 */
public class UpdateService extends Service {
    public static final String INTENT_FILTER = "com.roc.service.UPDATE_SERVICE";
    public static final int DOWNLOAD_PROGRESS = 1;
    public static final int DOWNLOAD_FINISH = 2;
    public static final int DOWNLOAD_FAILED = 3;
    /* 通知 */
    private Notification notification;
    private NotificationManager notificationManager;

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        initUpdate();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }

    private void initUpdate() {
        final DownloadHandler downloadHandler = new DownloadHandler();
        File dir = new File(Configs.EXTERNAL_STORAGE_DIRECTORY + Configs.UPDATE_DOWNLOAD_PATH);
        if (!dir.exists()) {
            // 创建文件夹
            dir.mkdirs();
        }
        sendNotification();
        final String apkSavePath = Configs.EXTERNAL_STORAGE_DIRECTORY + Configs.UPDATE_DOWNLOAD_PATH
                + Configs.NEW_APK_FILE_NAME;
        final String downloadUrl = Urls.baseUrl + Urls.downloadApk;// getResources().getString(R.string.base_url)
        // +
        // getResources().getString(R.string.downloadApkUrl);
        new Thread(new Runnable() {
            public void run() {
                try {
                    DownloadTask.downloadFile(getApplicationContext(), downloadUrl, apkSavePath, downloadHandler);
                } catch (Exception e) {
// Path: old-library-with-sample/src/main/java/com/rocko/common/DebugLog.java
// public class DebugLog {
//     /**
//      * Log输出所在类
//      */
//     private static String className;
//     /**
//      * Log输出所在方法
//      */
//     private static String methodName;
//     /**
//      * Log输出所行号
//      */
//     private static int lineNumber;
// 
//     private DebugLog() {
//     }
// 
//     /**
//      * 是否可Debug状态
//      *
//      * @return
//      */
//     public static boolean isDebuggable() {
//         return BuildConfig.DEBUG;
//     }
// 
//     /**
//      * 创建Log输出的基本信息
//      *
//      * @param log
//      * @return
//      */
//     private static String createLog(String log) {
//         StringBuffer buffer = new StringBuffer();
//         buffer.append("[");
//         buffer.append(methodName);
//         buffer.append("()");
//         buffer.append(" line:");
//         buffer.append(lineNumber);
//         buffer.append("] ");
//         buffer.append(log);
//         return buffer.toString();
//     }
// 
//     /**
//      * 取得输出所在位置的信息 className methodName lineNumber
//      *
//      * @param sElements
//      */
//     private static void getMethodNames(StackTraceElement[] sElements) {
//         className = sElements[1].getFileName().split("\\.")[0];
//         methodName = sElements[1].getMethodName();
//         lineNumber = sElements[1].getLineNumber();
//     }
// 
//     public static void e(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.e(className, createLog(message));
//     }
// 
//     public static void i(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.i(className, createLog(message));
//     }
// 
//     public static void d(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.d(className, createLog(message));
//     }
// 
//     public static void v(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.v(className, createLog(message));
//     }
// 
//     public static void w(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.w(className, createLog(message));
//     }
// 
//     public static void wtf(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.wtf(className, createLog(message));
//     }
// 
// }
// 
// Path: old-library-with-sample/src/main/java/com/rocko/config/Configs.java
// public class Configs {
//     /**
//      * 更新文件夹
//      */
//     public static final String UPDATE_DOWNLOAD_PATH = "RepairSystem/update";
//     /**
//      * 外部存储地址
//      */
//     public static final String EXTERNAL_STORAGE_DIRECTORY = Environment.getExternalStorageDirectory()
//             .toString() + "/";
//     /**
//      * 更新下载后的文件名
//      */
//     public static final String NEW_APK_FILE_NAME = "/RepairSystem.apk";
// }
// 
// Path: old-library-with-sample/src/main/java/com/rocko/config/Urls.java
// public class Urls {
//     public final static String baseUrl = "http://192.168.206.1:8080/repairSys";
//     public final static String update = "/Mobile/androidUpdateInfo.xml";
//     public final static String downloadApk = "/Mobile/RepairSystem.apk";
// }


// Path: old-library-with-sample/src/main/java/com/rocko/update/UpdateService.java
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.widget.RemoteViews;
import com.rocko.androidutils.R;
import com.rocko.common.DebugLog;
import com.rocko.config.Configs;
import com.rocko.config.Urls;
import java.io.File;

package com.rocko.update;




/**
 * 更新下载服务
 *
 * @author Mr.Zheng
 * @date 2014年7月13日21:39:49
 */
public class UpdateService extends Service {
    public static final String INTENT_FILTER = "com.roc.service.UPDATE_SERVICE";
    public static final int DOWNLOAD_PROGRESS = 1;
    public static final int DOWNLOAD_FINISH = 2;
    public static final int DOWNLOAD_FAILED = 3;
    /* 通知 */
    private Notification notification;
    private NotificationManager notificationManager;

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        initUpdate();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }

    private void initUpdate() {
        final DownloadHandler downloadHandler = new DownloadHandler();
        File dir = new File(Configs.EXTERNAL_STORAGE_DIRECTORY + Configs.UPDATE_DOWNLOAD_PATH);
        if (!dir.exists()) {
            // 创建文件夹
            dir.mkdirs();
        }
        sendNotification();
        final String apkSavePath = Configs.EXTERNAL_STORAGE_DIRECTORY + Configs.UPDATE_DOWNLOAD_PATH
                + Configs.NEW_APK_FILE_NAME;
        final String downloadUrl = Urls.baseUrl + Urls.downloadApk;// getResources().getString(R.string.base_url)
        // +
        // getResources().getString(R.string.downloadApkUrl);
        new Thread(new Runnable() {
            public void run() {
                try {
                    DownloadTask.downloadFile(getApplicationContext(), downloadUrl, apkSavePath, downloadHandler);
                } catch (Exception e) {
                    DebugLog.e(e.getMessage());