FloatWindowManager.java 2.37 KB
package com.sw.laryngoscope.floatwindow;

import android.content.Context;
import android.util.Log;

public class FloatWindowManager {
    public String TAG = "FloatWindowManager";

    private static FloatWindowManager ourInstance = null;
    private Context mContext;

    public static FloatWindowManager getInstance(Context context) {
        if (null == ourInstance) {
            synchronized (FloatWindowManager.class) {
                if (null == ourInstance) {
                    ourInstance = new FloatWindowManager(context);
                }
            }
        }
        return ourInstance;
    }

    public FloatWindowManager(Context context) {
        mContext = context;
        mOtherBackFloatWindow = new OtherBackFloatWindow(mContext);
        mBatteryStatusFloatWindow = new BatteryStatusFloatWindow(mContext);
    }

    private OtherBackFloatWindow mOtherBackFloatWindow;
    private boolean mOtherBackFloating = false;

    public void startOtherBackFloatWindow() {
        if (mOtherBackFloatWindow != null) {
            if (!mOtherBackFloating) {
                Log.d(TAG, "startOtherBackFloatWindow");
                mOtherBackFloatWindow.startFloat(ourInstance);
                mOtherBackFloating = true;
            }
        }
    }

    public void stopOtherBackFloatWindow() {
        if (mOtherBackFloatWindow != null) {
            if (mOtherBackFloating) {
                Log.d(TAG, "stopOtherBackFloatWindow");
                mOtherBackFloatWindow.stopFloat();
                mOtherBackFloating = false;
            }
        }
    }


    private BatteryStatusFloatWindow mBatteryStatusFloatWindow;
    private boolean mBatteryFloating = false;

    public void startBatteryStatusFloatWindow() {
        if (mBatteryStatusFloatWindow != null) {
            if (!mBatteryFloating) {
                Log.d(TAG, "startBatteryStatusFloatWindow");
                mBatteryStatusFloatWindow.startFloat(ourInstance);
                mBatteryFloating = true;
            }
        }
    }

    public void stopBatteryStatusFloatWindow() {
        if (mBatteryStatusFloatWindow != null) {
            if (mBatteryFloating) {
                Log.d(TAG, "stopBatteryStatusFloatWindow");
                mBatteryStatusFloatWindow.stopFloat();
                mBatteryFloating = false;
            }
        }
    }

}