Search in sources :

Example 6 with OnComplete

use of net.iGap.observers.interfaces.OnComplete in project iGap-Android by KianIranian-STDG.

the class AvatarHandler method getAvatarImage.

/**
 * check avatar in Realm and download if needed
 */
private void getAvatarImage(BaseParam baseParam, Realm _realm, boolean requestUserInfo) {
    RealmAvatar realmAvatar = getLastAvatar(baseParam.avatarOwnerId, _realm);
    if (realmAvatar == null && requestUserInfo && RequestManager.getInstance(AccountManager.selectedAccount).isUserLogin()) {
        new RequestUserInfo().userInfoWithCallBack(new OnComplete() {

            @Override
            public void complete(boolean result, String messageOne, String MessageTwo) {
                getAvatar(baseParam, false);
            }
        }, baseParam.avatarOwnerId, "" + baseParam.avatarOwnerId);
    }
    if (realmAvatar == null && baseParam instanceof ParamWithAvatarType && ((ParamWithAvatarType) baseParam).registeredUser != null) {
        insertRegisteredInfoToDB(((ParamWithAvatarType) baseParam).registeredUser, _realm);
        realmAvatar = getLastAvatar(baseParam.avatarOwnerId, _realm);
    }
    if (realmAvatar != null) {
        if (baseParam.showMain && realmAvatar.getFile().isFileExistsOnLocal()) {
            final String path = realmAvatar.getFile().getLocalFilePath();
            notifyAll(path, baseParam.avatarOwnerId, true, realmAvatar.getFile().getId(), realmAvatar.getId());
        } else if (realmAvatar.getFile().isThumbnailExistsOnLocal()) {
            final String path = realmAvatar.getFile().getLocalThumbnailPath();
            notifyAll(path, baseParam.avatarOwnerId, false, realmAvatar.getFile().getId(), realmAvatar.getId());
        } else {
            DownloadObject object = DownloadObject.createForAvatar(realmAvatar.getFile());
            if (object != null) {
                Downloader.getInstance(AccountManager.selectedAccount).download(object, arg -> {
                    if (arg.status == Status.SUCCESS && arg.data != null) {
                        String filepath = arg.data.getFilePath();
                        String fileToken = arg.data.getToken();
                        if (!(new File(filepath).exists())) {
                            HelperLog.getInstance().setErrorLog(new Exception("File Dont Exist After Download !!" + filepath));
                        }
                        final ArrayList<Long> ownerIdList = new ArrayList<>();
                        final ArrayList<Long> fileIdList = new ArrayList<>();
                        final ArrayList<Long> avatarIdList = new ArrayList<>();
                        DbManager.getInstance().doRealmTransaction(realm -> {
                            for (RealmAvatar realmAvatar1 : realm.where(RealmAvatar.class).equalTo("file.token", fileToken).findAll()) {
                                realmAvatar1.getFile().setLocalThumbnailPath(filepath);
                                ownerIdList.add(realmAvatar1.getOwnerId());
                                fileIdList.add(realmAvatar1.getFile().getId());
                                avatarIdList.add(realmAvatar1.getId());
                            }
                        });
                        for (int i = 0; i < ownerIdList.size(); i++) {
                            AvatarHandler.this.notifyAll(filepath, ownerIdList.get(i), false, fileIdList.get(i), avatarIdList.get(i));
                        }
                        ownerIdList.clear();
                        fileIdList.clear();
                        avatarIdList.clear();
                    }
                });
            }
        }
    } else if (baseParam instanceof ParamWithAvatarType) {
        String[] initials = showInitials(baseParam.avatarOwnerId, ((ParamWithAvatarType) baseParam).avatarType);
        if (initials == null) {
            getAvatarAfterTime(baseParam);
        }
    }
}
Also used : AndroidUtils(net.iGap.module.AndroidUtils) OnAvatarAdd(net.iGap.observers.interfaces.OnAvatarAdd) AccountManager(net.iGap.module.accountManager.AccountManager) ImageView(android.widget.ImageView) BitmapFactory(android.graphics.BitmapFactory) HashMap(java.util.HashMap) G(net.iGap.G) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) Handler(android.os.Handler) Looper(android.os.Looper) RequestUserInfo(net.iGap.request.RequestUserInfo) HelperImageBackColor(net.iGap.helper.HelperImageBackColor) Realm(io.realm.Realm) Status(net.iGap.module.downloader.Status) OnComplete(net.iGap.observers.interfaces.OnComplete) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) RealmRoom(net.iGap.realm.RealmRoom) IOException(java.io.IOException) Downloader(net.iGap.module.downloader.Downloader) CopyOnWriteArraySet(java.util.concurrent.CopyOnWriteArraySet) RequestManager(net.iGap.network.RequestManager) File(java.io.File) RealmAvatar(net.iGap.realm.RealmAvatar) HelperLog(net.iGap.helper.HelperLog) RealmRegisteredInfo(net.iGap.realm.RealmRegisteredInfo) RealmAvatar.getLastAvatar(net.iGap.realm.RealmAvatar.getLastAvatar) Bitmap(android.graphics.Bitmap) LooperThreadHelper(net.iGap.helper.LooperThreadHelper) ProtoGlobal(net.iGap.proto.ProtoGlobal) G.context(net.iGap.G.context) DbManager(net.iGap.module.accountManager.DbManager) Collections(java.util.Collections) DownloadObject(net.iGap.module.downloader.DownloadObject) DownloadObject(net.iGap.module.downloader.DownloadObject) ArrayList(java.util.ArrayList) OnComplete(net.iGap.observers.interfaces.OnComplete) RealmAvatar(net.iGap.realm.RealmAvatar) IOException(java.io.IOException) RequestUserInfo(net.iGap.request.RequestUserInfo) File(java.io.File)

Aggregations

OnComplete (net.iGap.observers.interfaces.OnComplete)6 ArrayList (java.util.ArrayList)3 ProtoGlobal (net.iGap.proto.ProtoGlobal)3 RealmRoom (net.iGap.realm.RealmRoom)3 MaterialDialog (com.afollestad.materialdialogs.MaterialDialog)2 File (java.io.File)2 G (net.iGap.G)2 HelperImageBackColor (net.iGap.helper.HelperImageBackColor)2 HelperLog (net.iGap.helper.HelperLog)2 AndroidUtils (net.iGap.module.AndroidUtils)2 AccountManager (net.iGap.module.accountManager.AccountManager)2 DbManager (net.iGap.module.accountManager.DbManager)2 DownloadObject (net.iGap.module.downloader.DownloadObject)2 Downloader (net.iGap.module.downloader.Downloader)2 Status (net.iGap.module.downloader.Status)2 RealmAvatar (net.iGap.realm.RealmAvatar)2 RealmRegisteredInfo (net.iGap.realm.RealmRegisteredInfo)2 SuppressLint (android.annotation.SuppressLint)1 Context (android.content.Context)1 Intent (android.content.Intent)1