All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.openxc.enabler.PipelineStatusUpdateTask Maven / Gradle / Ivy

package com.openxc.enabler;

import java.util.List;
import java.util.TimerTask;

import android.app.Activity;

import com.openxc.VehicleManager;
import com.openxc.interfaces.InterfaceType;

import android.view.View;

public class PipelineStatusUpdateTask extends TimerTask {
    private VehicleManager mVehicleManager;
    private Activity mActivity;
    private View mUnknownConnView;
    private View mNetworkConnView;
    private View mBluetoothConnView;
    private View mUsbConnView;
    private View mFileConnView;
    private View mNoneConnView;

    public PipelineStatusUpdateTask(VehicleManager vehicleService,
            Activity activity, View unknownConnIV, View fileConnIV,
            View networkConnIV, View bluetoothConnIV, View usbConnIV,
            View noneConnView) {
        mVehicleManager = vehicleService;
        mActivity = activity;
        mUnknownConnView = unknownConnIV;
        mFileConnView = fileConnIV;
        mNetworkConnView = networkConnIV;
        mBluetoothConnView = bluetoothConnIV;
        mUsbConnView = usbConnIV;
        mNoneConnView = noneConnView;
    }

    private void setIconVisibility(InterfaceType interfaceType, final View icon,
            List activeInterfaceTypes){
        // If active and not visible => make visible
        if(activeInterfaceTypes.contains(interfaceType)
                && icon.getVisibility() != View.VISIBLE){
            mActivity.runOnUiThread(new Runnable(){
                @Override
                public void run() {
                    icon.setVisibility(View.VISIBLE);
                }
            });
        }

        // If not active and not gone => make gone
        if(!activeInterfaceTypes.contains(interfaceType)
                && (icon.getVisibility() != View.GONE)){
            mActivity.runOnUiThread(new Runnable(){
                @Override
                public void run() {
                    icon.setVisibility(View.GONE);
                }
            });
        }
    }

    public void run() {
        List activeInterfaceTypes =
            mVehicleManager.getActiveSourceTypes();

        if(activeInterfaceTypes.isEmpty()){
            mActivity.runOnUiThread(new Runnable(){
                @Override
                public void run() {
                    mNoneConnView.setVisibility(View.VISIBLE);

                    mBluetoothConnView.setVisibility(View.GONE);
                    mFileConnView.setVisibility(View.GONE);
                    mNetworkConnView.setVisibility(View.GONE);
                    mUsbConnView.setVisibility(View.GONE);
                    mUnknownConnView.setVisibility(View.GONE);
                }
            });
        } else {
            mActivity.runOnUiThread(new Runnable(){
                @Override
                public void run() {
                    mNoneConnView.setVisibility(View.GONE);
                }
            });

            setIconVisibility(InterfaceType.BLUETOOTH, mBluetoothConnView,
                    activeInterfaceTypes);
            setIconVisibility(InterfaceType.FILE, mFileConnView,
                    activeInterfaceTypes);
            setIconVisibility(InterfaceType.NETWORK, mNetworkConnView,
                    activeInterfaceTypes);
            setIconVisibility(InterfaceType.USB, mUsbConnView,
                    activeInterfaceTypes);
            setIconVisibility(InterfaceType.UNKNOWN, mUnknownConnView,
                    activeInterfaceTypes);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy