SwitchControlActivity.java 5.8 KB
package com.qnbar.switchcontrol;

import android.graphics.Rect;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import com.adroplat.fist_switch.jni.Device;
import com.adroplat.fist_switch.jni.FistJni;
import com.adroplat.fist_switch.jni.SubDevice;
import com.google.gson.Gson;
import com.qnbar.switchcontrol.adapter.DeviceListAdapter;
import com.qnbar.switchcontrol.adapter.SwitchListAdapter;
import com.qnbar.switchcontrol.model.MessageEvent;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;

public class SwitchControlActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_switch_control);
        EventBus.getDefault().register(this);

        //TODO EventBus,List of Hub,List of Lights
//        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
//        setSupportActionBar(toolbar);
        initList();
        FistJni fistJni = FistJni.getInstance();
        fistJni.startSdk();
        searchLocalDevice();
        if (getSupportActionBar() != null) {
            getSupportActionBar().setTitle("智能开关控制");
        }

//        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
//        fab.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View view) {
//                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
//                        .setAction("Action", null).show();
//            }
//        });
    }

    public void searchLocalDevice() {
        FistJni fistJni = FistJni.getInstance();
        fistJni.searchLocalDevice();
    }

    public void startFist() {
        FistJni fistJni = FistJni.getInstance();
        fistJni.query();
    }

    public void normalC1() {
        FistJni fistJni = FistJni.getInstance();
        fistJni.normalC("{\"CmdType\":32,\"ErrorCode\":0,\"DeviceIp\":[192,168,31,163],\"DeviceNum\":[255,255,255,255,0,255],\"DeviceKey\":[120,56,53,98,97,117],\"DevicePort\":9000,\"MappedIp\":[0,0,0,0],\"MappedPort\":0,\"SubDevices\":[{\"SubDeviceNum\":4294967151,\"SubDeviceType\":33,\"SubDeviceStatus\":1,\"SubDeviceOnlineStatus\":0,\"SubDeviceBit\":0}]}");
    }

    public void normalC() {
        FistJni fistJni = FistJni.getInstance();
        fistJni.normalC("{\"CmdType\":32,\"ErrorCode\":0,\"DeviceIp\":[192,168,31,163],\"DeviceNum\":[255,255,255,255,0,255],\"DeviceKey\":[120,56,53,98,97,117],\"DevicePort\":9000,\"MappedIp\":[0,0,0,0],\"MappedPort\":0,\"SubDevices\":[{\"SubDeviceNum\":4294967151,\"SubDeviceType\":33,\"SubDeviceStatus\":0,\"SubDeviceOnlineStatus\":0,\"SubDeviceBit\":0}]}");
    }

    DeviceListAdapter hubAdapter;
    SwitchListAdapter switchAdapter;
    RecyclerView hubRv;
    RecyclerView switchRv;

    void initList() {
        hubRv = (RecyclerView) findViewById(R.id.hubsRv);
        hubAdapter = new DeviceListAdapter();

        GridLayoutManager layoutManager = new /*Focus*/GridLayoutManager(this, 5);
        GridLayoutManager layoutManager2 = new /*Focus*/GridLayoutManager(this, 5);
        hubRv.setLayoutManager(layoutManager);
        hubRv.addItemDecoration(new MovieItemDecoration());
        hubAdapter.setListener(new DeviceListAdapter.OnRecyclerViewItemClickListener() {
            @Override
            public void onItemClick(Device light, int position) {
                FistJni fistJni = FistJni.getInstance();
                fistJni.query(new Gson().toJson(light));
            }

            @Override
            public void onLongClick(Device light, int position) {

            }

            @Override
            public void onMenuClick(View v, int position) {

            }
        });
        hubRv.setAdapter(hubAdapter);
        hubRv.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);


        switchAdapter = new SwitchListAdapter();
        switchRv = (RecyclerView) findViewById(R.id.switchRv);

        switchRv.setLayoutManager(layoutManager2);
        switchRv.addItemDecoration(new MovieItemDecoration());
        switchAdapter.setListener(new SwitchListAdapter.OnRecyclerViewItemClickListener() {
            @Override
            public void onItemClick(SubDevice light, int position) {

            }

            @Override
            public void onLongClick(SubDevice light, int position) {

            }

            @Override
            public void onMenuClick(View v, int position) {

            }
        });
        switchRv.setAdapter(switchAdapter);
        switchRv.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
    }

    public class MovieItemDecoration extends RecyclerView.ItemDecoration {
        @Override
        public void getItemOffsets(Rect outRect, View view, RecyclerView parent,
                                   RecyclerView.State state) {
            outRect.top = 40;
            outRect.left = 15;
            outRect.right = 15;
            outRect.bottom = 40;
        }
    }

    @Subscribe(threadMode = ThreadMode.MAIN)
    public void onMoonEvent(MessageEvent messageEvent) {
        switch (messageEvent.getEventId()) {
            case FistJni.DEVICE_HUBS_ONLINE_NOTIFY:
                Log.d("switch", messageEvent.getMessage());
                hubAdapter.notifyDataSetChanged();
                break;

            case FistJni.DEVICE_SWITCH_ONLINE_NOTIFY:
                Log.d("switch", messageEvent.getMessage());
                switchAdapter.notifyDataSetChanged();
                break;
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        EventBus.getDefault().unregister(this);
    }
}