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<ModelAdapter> dbOfficeDeviceList = new ArrayList<>();
|
public static void addOfficeDevice(Map<String, String> officeDevice) {
|
List<ModelAdapter> 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<String, String> 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<ModelAdapter> 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<ModelAdapter> 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);
|
}
|
|
}
|