| | |
| | | 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); |
| | | } |
| | | } |