package com.basic.security.manager;
|
|
import android.graphics.Bitmap;
|
import android.graphics.BitmapFactory;
|
import android.graphics.Canvas;
|
import android.graphics.Paint;
|
import android.graphics.PorterDuff;
|
import android.graphics.PorterDuffXfermode;
|
import android.graphics.Rect;
|
import android.text.TextUtils;
|
import android.widget.ImageView;
|
|
import com.basic.security.activity.MainActivity;
|
import com.basic.security.base.BaseApplication;
|
import com.basic.security.model.ModelAdapter;
|
import com.basic.security.model.Person;
|
import com.basic.security.utils.Constants;
|
|
public class AccountManager extends BaseManager {
|
public static boolean isBasic = false;
|
public static ModelAdapter loginPerson;
|
private static ModelAdapter adminAccount;
|
|
public static Bitmap getCroppedBitmap(Bitmap bitmap) {
|
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
|
bitmap.getHeight(), Bitmap.Config.ARGB_8888);
|
Canvas canvas = new Canvas(output);
|
final int color = 0xff424242;
|
final Paint paint = new Paint();
|
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
|
paint.setAntiAlias(true);
|
canvas.drawARGB(0, 0, 0, 0);
|
paint.setColor(color);
|
canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2,
|
bitmap.getWidth() / 2, paint);
|
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
|
canvas.drawBitmap(bitmap, rect, rect, paint);
|
return output;
|
}
|
|
public static void setIsBasic(boolean isBasic) {
|
AccountManager.isBasic = isBasic;
|
try {
|
BaseApplication.getApplication().activity.runOnUiThread(new Runnable() {
|
@Override
|
public void run() {
|
try {
|
ImageView login_photo = BaseApplication.getApplication().activity.fragment_toolbar.login_photo;
|
if (isBasic) {
|
BaseApplication.getApplication().activity.fragment_toolbar.login_name.setText("贝思科");
|
login_photo.setImageResource(com.basic.security.utils.RUtils.R_drawable_basic);
|
}
|
// System.out.println("AccountManager.run 0 isBasic=" + isBasic);
|
if (!isBasic) {
|
BaseApplication.getApplication().activity.fragment_toolbar.login_name.setText("管理员");
|
login_photo.setImageResource(com.basic.security.utils.RUtils.R_drawable_yuyin);
|
try {
|
if (loginPerson != null) {
|
byte[] camera_image_path = loginPerson.getBlob(Person.camera_image_path);
|
if (camera_image_path != null) {
|
Bitmap camera_image_path_bitmap = BitmapFactory.decodeByteArray(camera_image_path, 0, camera_image_path.length);
|
camera_image_path_bitmap = getCroppedBitmap(camera_image_path_bitmap);
|
login_photo.setImageBitmap(camera_image_path_bitmap);
|
}
|
String loginName = loginPerson.getString(Person.name);
|
if (!TextUtils.isEmpty(loginName)) {
|
// BaseApplication.getApplication().activity.fragment_toolbar.login_name.setText(loginName);
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
});
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
public static ModelAdapter getAdminAccount() {
|
return adminAccount;
|
}
|
|
public static void setAdminAccount(ModelAdapter admin) {
|
if (Constants.indoorOutdoorInOne && admin == null) {
|
return;
|
}
|
if (admin != null) {
|
try {
|
BaseApplication.getApplication().activity.lastAdminClickTime = System.currentTimeMillis();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
AccountManager.adminAccount = admin;
|
if (adminAccount != null) {
|
setAdminPhoto();
|
}
|
}
|
|
public static void setAdminAccount1(ModelAdapter admin) {
|
if (admin != null) {
|
try {
|
BaseApplication.getApplication().activity.lastAdminClickTime = System.currentTimeMillis();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
AccountManager.adminAccount = admin;
|
if (adminAccount != null) {
|
setAdminPhoto();
|
}
|
}
|
|
private static void setAdminPhoto() {
|
try {
|
MainActivity activity = BaseApplication.getApplication().activity;
|
if (activity == null) {
|
return;
|
}
|
String a = adminAccount.getString("person_id");
|
ModelAdapter admin_person = PersonManager.findPersonById(a);
|
if (admin_person == null) {
|
return;
|
}
|
if (!"person".equals(admin_person.getString("table"))) {
|
return;
|
}
|
String name = admin_person.getString("name");
|
Bitmap b = null;
|
byte[] blob = admin_person.getBlob("camera_image_path");
|
byte[] data;
|
if (blob != null) {
|
data = blob;
|
if (data != null) {
|
b = BitmapFactory.decodeByteArray(data, 0, data.length);
|
}
|
}
|
if (b == null) {
|
b = BitmapFactory.decodeResource(activity.getResources(), com.basic.security.utils.RUtils.R_drawable_u1280);
|
}
|
if (b != null) {
|
//activity.fragment_toolbar.login_photo.setImageBitmap(b);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
//保存账号
|
public static ModelAdapter getAccount(String account, String password) {
|
return findOne("select * from user where username='" + account + "'" + " and password='" + password + "'");
|
}
|
|
public static ModelAdapter getAccount() {
|
return findOne("select * from user");
|
}
|
|
// 管理员是否已经登录
|
public static boolean adminLoggedIn() {
|
return adminAccount != null;
|
}
|
|
public static boolean isBasic() {
|
return isBasic;
|
}
|
|
public static String getCurrentAdminPassword() {
|
return adminAccount.getString("password");
|
}
|
|
public static void setAdminId(String person_id) {
|
ModelAdapter admin_user_table = BaseManager.findById("user", DeviceManager.getDeviceId() + "admin_user");
|
setAdminAccount(admin_user_table);
|
}
|
|
public static void saveAccount(ModelAdapter modelAdapter) {
|
save(modelAdapter);
|
}
|
}
|