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.model.User; import com.basic.security.utils.Constants; public class UserManager extends BaseManager { public static boolean isBasic = false; public static ModelAdapter loginPerson; private static ModelAdapter adminUser; 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) { UserManager.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); } // System1.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 adminUser() { return adminUser; } public static void setAdminUser(ModelAdapter admin) { if (Constants.indoorOutdoorInOne && admin == null) { return; } if (admin != null) { try { BaseApplication.getApplication().activity.lastAdminClickTime = System.currentTimeMillis(); } catch (Exception e) { e.printStackTrace(); } } UserManager.adminUser = admin; if (adminUser != null) { setAdminPhoto(); } } public static void setAdminUser1(ModelAdapter admin) { if (admin != null) { try { BaseApplication.getApplication().activity.lastAdminClickTime = System.currentTimeMillis(); } catch (Exception e) { e.printStackTrace(); } } UserManager.adminUser = admin; if (adminUser != null) { setAdminPhoto(); } } private static void setAdminPhoto() { try { MainActivity activity = BaseApplication.getApplication().activity; if (activity == null) { return; } String a = adminUser.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 getUser(String account, String password) { return findOne("select * from user where username='" + account + "'" + " and password='" + password + "'"); } public static ModelAdapter getUserByName(String username) { return findOne("select * from user where 1=1 and " + User.username + "='" + username + "'"); } public static void saveUser(ModelAdapter admin_user_table) { save(admin_user_table); } // 管理员是否已经登录 public static boolean adminLoggedIn() { return adminUser != null; } public static boolean isBasic() { return isBasic; } public static String getCurrentAdminPassword() { return adminUser.getString("password"); } public static void setAdminId(String person_id) { ModelAdapter admin_user_table = BaseManager.findById("user", DeviceManager.getDeviceId() + "admin_user"); setAdminUser(admin_user_table); } public static void saveAccount(ModelAdapter modelAdapter) { save(modelAdapter); } }