package com.basic.security.manager; import com.basic.security.activity.MainActivity; import com.basic.security.base.BaseApplication; import com.basic.security.fragment.BaseSettingFragment; import com.basic.security.manager.impl.sqlite.SlBaseManager; import com.basic.security.model.ModelAdapter; import com.basic.security.model.OfficeDevice; import com.basic.security.utils.Constants; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class OfficeDeviceManager extends SlBaseManager { static List dbOfficeDeviceList = new ArrayList<>(); public static void addOfficeDevice(Map officeDevice) { List dbOfficeDeviceList = findList("select * from " + OfficeDevice.table + " where " + OfficeDevice.deviceIp + "='"+officeDevice.get(OfficeDevice.deviceIp)+"'"); if (dbOfficeDeviceList.size() == 0) { officeDevice.put(OfficeDevice.id, UUID.randomUUID().toString()); officeDevice.put(OfficeDevice.valid, Constants.FALSE); officeDevice.put("table", OfficeDevice.table); ModelAdapter officeDeviceModelAdapter = new ModelAdapter(); for (Map.Entry entry : officeDevice.entrySet()) { officeDeviceModelAdapter.setString(entry.getKey(), entry.getValue()); } save(officeDeviceModelAdapter); MainActivity mainActivity = (MainActivity) BaseApplication.getApplication().activity; if (mainActivity.currentFragment == mainActivity.fragment_base_setting) { ((BaseSettingFragment)mainActivity.fragment_base_setting).loadDataFromDb(); } } else { ModelAdapter dbModelAdapter = dbOfficeDeviceList.get(0); dbModelAdapter.setString(OfficeDevice.deviceName, officeDevice.get(OfficeDevice.deviceName)); save(dbModelAdapter); } } public static List findOfficeDeviceList() { return findList("select * from " + OfficeDevice.table); } public static void updateOfficeDeviceValidField(String id, String valid) { ModelAdapter officeDevice = findById(OfficeDevice.table, id); officeDevice.setString(OfficeDevice.valid, valid); save(officeDevice); } public static boolean remoteIpAllowed(String remoteIp) { //saveOfficeDeviceLock.lock(); for (ModelAdapter dbOfficeDevice : dbOfficeDeviceList) { if (remoteIp.equals(dbOfficeDevice.getString(OfficeDevice.deviceIp)) && Constants.TRUE.equals(dbOfficeDevice.getString(OfficeDevice.valid))) { return true; } } //saveOfficeDeviceLock.unlock(); return false; } public static void initOfficeDevice() { //saveOfficeDeviceLock.lock(); dbOfficeDeviceList = findList("select * from " + OfficeDevice.table); //saveOfficeDeviceLock.unlock(); } static Lock saveOfficeDeviceLock = new ReentrantLock(); public static void saveOfficeDeviceList(List officeDeviceList) { for (ModelAdapter officeDevice : officeDeviceList) { officeDevice.setString("table", OfficeDevice.table); save(officeDevice); } initOfficeDevice(); } public static void deleteOfficeDevice(ModelAdapter officeDevice) { officeDevice.setString("table", OfficeDevice.table); deletePhysically(officeDevice); } }