命名空间调整
This commit is contained in:
		@@ -1,95 +0,0 @@
 | 
			
		||||
package cc.winboll.studio.libapputils.service;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author ZhanGSKen@QQ.COM
 | 
			
		||||
 * @Date 2024/12/08 20:15:42
 | 
			
		||||
 * @Describe 应用主要服务组件类守护进程服务组件类
 | 
			
		||||
 */
 | 
			
		||||
import android.app.Service;
 | 
			
		||||
import android.content.ComponentName;
 | 
			
		||||
import android.content.Context;
 | 
			
		||||
import android.content.Intent;
 | 
			
		||||
import android.content.ServiceConnection;
 | 
			
		||||
import android.os.IBinder;
 | 
			
		||||
import cc.winboll.studio.libapputils.util.ServiceUtils;
 | 
			
		||||
 | 
			
		||||
public class AssistantService extends Service {
 | 
			
		||||
 | 
			
		||||
    public final static String TAG = "AssistantService";
 | 
			
		||||
 | 
			
		||||
    WinBollClientServiceBean mWinBollServiceBean;
 | 
			
		||||
    MyServiceConnection mMyServiceConnection;
 | 
			
		||||
    volatile boolean mIsServiceRunning;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public IBinder onBind(Intent intent) {
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onCreate() {
 | 
			
		||||
        super.onCreate();
 | 
			
		||||
        mWinBollServiceBean = WinBollClientServiceBean.loadWinBollClientServiceBean(this);
 | 
			
		||||
        if (mMyServiceConnection == null) {
 | 
			
		||||
            mMyServiceConnection = new MyServiceConnection();
 | 
			
		||||
        }
 | 
			
		||||
        // 设置运行参数
 | 
			
		||||
        mIsServiceRunning = false;
 | 
			
		||||
        run();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public int onStartCommand(Intent intent, int flags, int startId) {
 | 
			
		||||
        run();
 | 
			
		||||
        return START_STICKY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onDestroy() {
 | 
			
		||||
        mIsServiceRunning = false;
 | 
			
		||||
        super.onDestroy();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // 运行服务内容
 | 
			
		||||
    //
 | 
			
		||||
    void run() {
 | 
			
		||||
        mWinBollServiceBean = WinBollClientServiceBean.loadWinBollClientServiceBean(this);
 | 
			
		||||
        if (mWinBollServiceBean.isEnable()) {
 | 
			
		||||
            if (mIsServiceRunning == false) {
 | 
			
		||||
                // 设置运行状态
 | 
			
		||||
                mIsServiceRunning = true;
 | 
			
		||||
                // 唤醒和绑定主进程
 | 
			
		||||
                wakeupAndBindMain();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // 唤醒和绑定主进程
 | 
			
		||||
    //
 | 
			
		||||
    void wakeupAndBindMain() {
 | 
			
		||||
        if (ServiceUtils.isServiceAlive(getApplicationContext(), WinBollClientService.class.getName()) == false) {
 | 
			
		||||
            startForegroundService(new Intent(AssistantService.this, WinBollClientService.class));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        bindService(new Intent(AssistantService.this, WinBollClientService.class), mMyServiceConnection, Context.BIND_IMPORTANT);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // 主进程与守护进程连接时需要用到此类
 | 
			
		||||
    //
 | 
			
		||||
    class MyServiceConnection implements ServiceConnection {
 | 
			
		||||
        @Override
 | 
			
		||||
        public void onServiceConnected(ComponentName name, IBinder service) {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        @Override
 | 
			
		||||
        public void onServiceDisconnected(ComponentName name) {
 | 
			
		||||
            mWinBollServiceBean = WinBollClientServiceBean.loadWinBollClientServiceBean(AssistantService.this);
 | 
			
		||||
            if (mWinBollServiceBean.isEnable()) {
 | 
			
		||||
                wakeupAndBindMain();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,35 +0,0 @@
 | 
			
		||||
package cc.winboll.studio.libapputils.service;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author ZhanGSKen@QQ.COM
 | 
			
		||||
 * @Date 2024/12/09 08:37:31
 | 
			
		||||
 * @Describe WinBoll UI 状态图标枚举
 | 
			
		||||
 */
 | 
			
		||||
import cc.winboll.studio.libapputils.R;
 | 
			
		||||
 | 
			
		||||
public enum EWUIStatusIconDrawable {
 | 
			
		||||
    NORMAL(0),
 | 
			
		||||
    NEWS(1)
 | 
			
		||||
    ;
 | 
			
		||||
    
 | 
			
		||||
    static final String TAG = "WUIStatusIconDrawable";
 | 
			
		||||
 | 
			
		||||
    static String[] _mlistCNName = { "正常", "新的消息" };
 | 
			
		||||
 | 
			
		||||
    private int value = 0;
 | 
			
		||||
    private EWUIStatusIconDrawable(int value) {    //必须是private的,否则编译错误
 | 
			
		||||
        this.value = value;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public static int getIconDrawableId(EWUIStatusIconDrawable drawableId) {
 | 
			
		||||
        int res;
 | 
			
		||||
        switch(drawableId){
 | 
			
		||||
            case NEWS :
 | 
			
		||||
                res = R.drawable.ic_winbollbeta;
 | 
			
		||||
                break;
 | 
			
		||||
            default :
 | 
			
		||||
                res = R.drawable.ic_winboll;
 | 
			
		||||
        }
 | 
			
		||||
        return res;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,17 +0,0 @@
 | 
			
		||||
package cc.winboll.studio.libapputils.service;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author ZhanGSKen@QQ.COM
 | 
			
		||||
 * @Date 2024/12/08 23:40:05
 | 
			
		||||
 * @Describe WinBollService 服务 Binder。
 | 
			
		||||
 */
 | 
			
		||||
import android.graphics.drawable.Drawable;
 | 
			
		||||
 | 
			
		||||
public interface IWinBollClientServiceBinder {
 | 
			
		||||
    
 | 
			
		||||
    public static final String TAG = "IWinBollClientServiceBinder";
 | 
			
		||||
    
 | 
			
		||||
    public WinBollClientService getService();
 | 
			
		||||
    
 | 
			
		||||
    public Drawable getCurrentStatusIconDrawable();
 | 
			
		||||
}
 | 
			
		||||
@@ -1,189 +0,0 @@
 | 
			
		||||
package cc.winboll.studio.libapputils.service;
 | 
			
		||||
 | 
			
		||||
import android.app.Service;
 | 
			
		||||
import android.content.ComponentName;
 | 
			
		||||
import android.content.Context;
 | 
			
		||||
import android.content.Intent;
 | 
			
		||||
import android.content.ServiceConnection;
 | 
			
		||||
import android.graphics.drawable.Drawable;
 | 
			
		||||
import android.os.IBinder;
 | 
			
		||||
import cc.winboll.studio.libappbase.LogUtils;
 | 
			
		||||
import cc.winboll.studio.libappbase.utils.ToastUtils;
 | 
			
		||||
import cc.winboll.studio.libapputils.util.ServiceUtils;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author ZhanGSKen@QQ.COM
 | 
			
		||||
 * @Date 2024/12/08 19:42:07
 | 
			
		||||
 * @Describe WinBoll 客户端服务
 | 
			
		||||
 */
 | 
			
		||||
public class WinBollClientService extends Service implements IWinBollClientServiceBinder {
 | 
			
		||||
 | 
			
		||||
    public static final String TAG = "WinBollClientService";
 | 
			
		||||
 | 
			
		||||
    WinBollClientServiceBean mWinBollClientServiceBean;
 | 
			
		||||
    MyServiceConnection mMyServiceConnection;
 | 
			
		||||
    volatile boolean mIsWinBollClientThreadRunning;
 | 
			
		||||
    volatile boolean mIsEnableService;
 | 
			
		||||
    WinBollClientThread mWinBollClientThread;
 | 
			
		||||
 | 
			
		||||
    public boolean isWinBollClientThreadRunning() {
 | 
			
		||||
        return mIsWinBollClientThreadRunning;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public WinBollClientService getService() {
 | 
			
		||||
        return WinBollClientService.this;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Drawable getCurrentStatusIconDrawable() {
 | 
			
		||||
        return mIsWinBollClientThreadRunning ?
 | 
			
		||||
            getDrawable(EWUIStatusIconDrawable.getIconDrawableId(EWUIStatusIconDrawable.NORMAL))
 | 
			
		||||
            : getDrawable(EWUIStatusIconDrawable.getIconDrawableId(EWUIStatusIconDrawable.NEWS));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public IBinder onBind(Intent intent) {
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onCreate() {
 | 
			
		||||
        ToastUtils.show("onCreate");
 | 
			
		||||
        super.onCreate();
 | 
			
		||||
        mWinBollClientThread = null;
 | 
			
		||||
        mWinBollClientServiceBean = WinBollClientServiceBean.loadWinBollClientServiceBean(this);
 | 
			
		||||
        mIsEnableService = mWinBollClientServiceBean.isEnable();
 | 
			
		||||
 | 
			
		||||
        if (mMyServiceConnection == null) {
 | 
			
		||||
            mMyServiceConnection = new MyServiceConnection();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 由系统启动时,应用可以通过下面函数实例化实际服务进程。
 | 
			
		||||
        runMainThread();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public int onStartCommand(Intent intent, int flags, int startId) {
 | 
			
		||||
        ToastUtils.show("onStartCommand");
 | 
			
		||||
        // 由应用 Intent 启动时,应用可以通过下面函数实例化实际服务进程。
 | 
			
		||||
        runMainThread();
 | 
			
		||||
 | 
			
		||||
        // 返回运行参数持久化存储后,服务状态控制参数
 | 
			
		||||
        // 无论 Intent 传入如何,服务状态一直以持久化存储后的参数控制,
 | 
			
		||||
        // PS: 另外当然可以通过 Intent 传入的指标来修改 mWinBollServiceBean,
 | 
			
		||||
        //     不过本服务的应用方向会变得繁琐,
 | 
			
		||||
        //     现阶段只要满足手机端启动与停止本服务,WinBoll 客户端实例运行在手机端就可以了。
 | 
			
		||||
        return mIsEnableService ? Service.START_STICKY: super.onStartCommand(intent, flags, startId);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void runMainThread() {
 | 
			
		||||
        if (mWinBollClientThread == null) {
 | 
			
		||||
            ToastUtils.show("runMainThread()");
 | 
			
		||||
            mWinBollClientThread = new WinBollClientThread();
 | 
			
		||||
            mWinBollClientThread.start();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void syncWinBollClientThreadStatus() {
 | 
			
		||||
        mWinBollClientServiceBean = WinBollClientServiceBean.loadWinBollClientServiceBean(this);
 | 
			
		||||
        mIsEnableService = mWinBollClientServiceBean.isEnable();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    // 唤醒和绑定守护进程
 | 
			
		||||
    //
 | 
			
		||||
    void wakeupAndBindAssistant() {
 | 
			
		||||
        if (ServiceUtils.isServiceAlive(getApplicationContext(), AssistantService.class.getName()) == false) {
 | 
			
		||||
            startService(new Intent(WinBollClientService.this, AssistantService.class));
 | 
			
		||||
            //LogUtils.d(TAG, "call wakeupAndBindAssistant() : Binding... AssistantService");
 | 
			
		||||
            bindService(new Intent(WinBollClientService.this, AssistantService.class), mMyServiceConnection, Context.BIND_IMPORTANT);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // 主进程与守护进程连接时需要用到此类
 | 
			
		||||
    //
 | 
			
		||||
    private class MyServiceConnection implements ServiceConnection {
 | 
			
		||||
        @Override
 | 
			
		||||
        public void onServiceConnected(ComponentName name, IBinder service) {
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        @Override
 | 
			
		||||
        public void onServiceDisconnected(ComponentName name) {            
 | 
			
		||||
            mWinBollClientServiceBean = WinBollClientServiceBean.loadWinBollClientServiceBean(WinBollClientService.this);
 | 
			
		||||
            if (mWinBollClientServiceBean.isEnable()) {
 | 
			
		||||
                // 唤醒守护进程
 | 
			
		||||
                wakeupAndBindAssistant();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onDestroy() {
 | 
			
		||||
        super.onDestroy();
 | 
			
		||||
        ToastUtils.show("onDestroy");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onStart(Intent intent, int startId) {
 | 
			
		||||
        super.onStart(intent, startId);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void setWinBollServiceEnableStatus(boolean isEnable) {
 | 
			
		||||
        WinBollClientServiceBean bean = WinBollClientServiceBean.loadWinBollClientServiceBean(this);
 | 
			
		||||
        bean.setIsEnable(isEnable);
 | 
			
		||||
        WinBollClientServiceBean.saveWinBollServiceBean(this, bean);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    boolean getWinBollServiceEnableStatus(Context context) {
 | 
			
		||||
        mWinBollClientServiceBean = WinBollClientServiceBean.loadWinBollClientServiceBean(context);
 | 
			
		||||
        return mWinBollClientServiceBean.isEnable();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*public interface OnServiceStatusChangeListener {
 | 
			
		||||
     void onServerStatusChange(boolean isServiceAlive);
 | 
			
		||||
     }
 | 
			
		||||
 | 
			
		||||
     public void setOnServerStatusChangeListener(OnServiceStatusChangeListener l) {
 | 
			
		||||
     mOnServerStatusChangeListener = l;
 | 
			
		||||
     }*/
 | 
			
		||||
 | 
			
		||||
    class WinBollClientThread extends Thread {
 | 
			
		||||
        @Override
 | 
			
		||||
        public void run() {
 | 
			
		||||
            ToastUtils.show("WinBollClientThread");
 | 
			
		||||
            super.run();
 | 
			
		||||
            syncWinBollClientThreadStatus();
 | 
			
		||||
            if (mIsEnableService) {
 | 
			
		||||
                if (mIsWinBollClientThreadRunning == false) {
 | 
			
		||||
                    // 设置运行状态
 | 
			
		||||
                    mIsWinBollClientThreadRunning = true;
 | 
			
		||||
 | 
			
		||||
                    ToastUtils.show("run()");
 | 
			
		||||
 | 
			
		||||
                    // 唤醒守护进程
 | 
			
		||||
                    //wakeupAndBindAssistant();
 | 
			
		||||
 | 
			
		||||
                    while (mIsEnableService) {
 | 
			
		||||
                        // 显示运行状态
 | 
			
		||||
                        ToastUtils.show(TAG + " is running.");
 | 
			
		||||
                        try {
 | 
			
		||||
                            Thread.sleep(2 * 1000);
 | 
			
		||||
                        } catch (InterruptedException e) {
 | 
			
		||||
                            LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
 | 
			
		||||
                        }
 | 
			
		||||
                        syncWinBollClientThreadStatus();
 | 
			
		||||
                        //ToastUtils.show("syncServiceThreadStatus OK.");
 | 
			
		||||
                        //ToastUtils.show("mIsExist : " + Boolean.toString(!mIsEnableService));
 | 
			
		||||
                        //break;
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    // 服务进程退出, 重置进程运行状态
 | 
			
		||||
                    mIsWinBollClientThreadRunning = false;
 | 
			
		||||
                    mWinBollClientThread = null;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,77 +0,0 @@
 | 
			
		||||
package cc.winboll.studio.libapputils.service;
 | 
			
		||||
import android.content.Context;
 | 
			
		||||
import android.util.JsonReader;
 | 
			
		||||
import android.util.JsonWriter;
 | 
			
		||||
import cc.winboll.studio.libappbase.BaseBean;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author ZhanGSKen@QQ.COM
 | 
			
		||||
 * @Date 2024/12/08 19:44:57
 | 
			
		||||
 * @Describe WinBollService 运行参数配置
 | 
			
		||||
 */
 | 
			
		||||
public class WinBollClientServiceBean extends BaseBean {
 | 
			
		||||
 | 
			
		||||
    public static final String TAG = "WinBollClientServiceBean";
 | 
			
		||||
 | 
			
		||||
    volatile boolean isEnable;
 | 
			
		||||
 | 
			
		||||
    public WinBollClientServiceBean() {
 | 
			
		||||
        isEnable = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setIsEnable(boolean isEnable) {
 | 
			
		||||
        this.isEnable = isEnable;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean isEnable() {
 | 
			
		||||
        return isEnable;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String getName() {
 | 
			
		||||
        return WinBollClientServiceBean.class.getName();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void writeThisToJsonWriter(JsonWriter jsonWriter) throws IOException {
 | 
			
		||||
        super.writeThisToJsonWriter(jsonWriter);
 | 
			
		||||
        WinBollClientServiceBean bean = this;
 | 
			
		||||
        jsonWriter.name("isEnable").value(bean.isEnable());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean initObjectsFromJsonReader(JsonReader jsonReader, String name) throws IOException {
 | 
			
		||||
        if (super.initObjectsFromJsonReader(jsonReader, name)) { return true; } else {
 | 
			
		||||
            if (name.equals("isEnable")) {
 | 
			
		||||
                setIsEnable(jsonReader.nextBoolean());
 | 
			
		||||
            } else {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public BaseBean readBeanFromJsonReader(JsonReader jsonReader) throws IOException {
 | 
			
		||||
        jsonReader.beginObject();
 | 
			
		||||
        while (jsonReader.hasNext()) {
 | 
			
		||||
            String name = jsonReader.nextName();
 | 
			
		||||
            if (!initObjectsFromJsonReader(jsonReader, name)) {
 | 
			
		||||
                jsonReader.skipValue();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        // 结束 JSON 对象
 | 
			
		||||
        jsonReader.endObject();
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static WinBollClientServiceBean loadWinBollClientServiceBean(Context context) {
 | 
			
		||||
        WinBollClientServiceBean bean = WinBollClientServiceBean.loadBean(context, WinBollClientServiceBean.class);
 | 
			
		||||
        return bean == null ? new WinBollClientServiceBean() : bean;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static boolean saveWinBollServiceBean(WinBollClientService service, WinBollClientServiceBean bean) {
 | 
			
		||||
        return WinBollClientServiceBean.saveBean(service, bean);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,22 +0,0 @@
 | 
			
		||||
package cc.winboll.studio.libapputils.service;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author ZhanGSKen@QQ.COM
 | 
			
		||||
 * @Date 2024/12/09 08:19:06
 | 
			
		||||
 * @Describe WinBoll 邮件服务
 | 
			
		||||
 */
 | 
			
		||||
import android.app.Service;
 | 
			
		||||
import android.content.Intent;
 | 
			
		||||
import android.os.IBinder;
 | 
			
		||||
 | 
			
		||||
public class WinBollMail extends Service {
 | 
			
		||||
    
 | 
			
		||||
    public static final String TAG = "WinBollMail";
 | 
			
		||||
    
 | 
			
		||||
    @Override
 | 
			
		||||
    public IBinder onBind(Intent intent) {
 | 
			
		||||
        
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cc.winboll.studio.libapputils.util;
 | 
			
		||||
package cc.winboll.studio.libapputils.utils;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author ZhanGSKen@AliYun.Com
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cc.winboll.studio.libapputils.util;
 | 
			
		||||
package cc.winboll.studio.libapputils.utils;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author ZhanGSKen@QQ.COM
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cc.winboll.studio.libapputils.util;
 | 
			
		||||
package cc.winboll.studio.libapputils.utils;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author ZhanGSKen@QQ.COM
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cc.winboll.studio.libapputils.util;
 | 
			
		||||
package cc.winboll.studio.libapputils.utils;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author ZhanGSKen@QQ.COM
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cc.winboll.studio.libapputils.util;
 | 
			
		||||
package cc.winboll.studio.libapputils.utils;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author ZhanGSKen@QQ.COM
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cc.winboll.studio.libapputils.util;
 | 
			
		||||
package cc.winboll.studio.libapputils.utils;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author ZhanGSKen@QQ.COM
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cc.winboll.studio.libapputils.util;
 | 
			
		||||
package cc.winboll.studio.libapputils.utils;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author ZhanGSKen@QQ.COM
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cc.winboll.studio.libapputils.view;
 | 
			
		||||
package cc.winboll.studio.libapputils.views;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author ZhanGSKen@QQ.COM
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cc.winboll.studio.libapputils.view;
 | 
			
		||||
package cc.winboll.studio.libapputils.views;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author ZhanGSKen@QQ.COM
 | 
			
		||||
@@ -14,7 +14,7 @@ import android.view.View;
 | 
			
		||||
import android.widget.ImageView;
 | 
			
		||||
import android.widget.LinearLayout;
 | 
			
		||||
import android.widget.TextView;
 | 
			
		||||
import cc.winboll.studio.libapputils.util.QRCodeGenerator;
 | 
			
		||||
import cc.winboll.studio.libapputils.utils.QRCodeGenerator;
 | 
			
		||||
import com.journeyapps.barcodescanner.DecoratedBarcodeView;
 | 
			
		||||
 | 
			
		||||
public class StringToQrCodeView extends LinearLayout {
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<resources>
 | 
			
		||||
    <style name="UtilsTheme" parent="@android:style/Theme.Holo.Light.NoActionBar">
 | 
			
		||||
    <style name="UtilsTheme" parent="APPBaseTheme">
 | 
			
		||||
    </style>
 | 
			
		||||
</resources>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user