a
554325746@qq.com
2019-12-25 603cb36a5123e46656b06a5deb8d7ac7ff81307f
app/src/main/java/com/basic/security/manager/UserManager.java
@@ -1,9 +1,188 @@
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);
    }
}