java类rx.functions.Func2的实例源码

TemperatureServiceImpl.java 文件源码 项目:openwebnet-android 阅读 20 收藏 0 点赞 0 评论 0
private Func1<TemperatureModel, Observable<TemperatureModel>> requestTemperature() {

        final Func2<String, Heating.TemperatureScale, Heating> request = Heating::requestTemperature;

        final Func2<OpenSession, TemperatureModel, TemperatureModel> handler = (openSession, temperature) -> {
            Heating.handleTemperature(
                value -> temperature.setValue(String.valueOf(value)),
                () -> temperature.setValue(null))
            .call(openSession);
            return temperature;
        };

        return temperature -> commonService.findClient(temperature.getGatewayUuid())
            .send(request.call(temperature.getWhere(), preferenceService.getDefaultTemperatureScale()))
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .map(openSession -> handler.call(openSession, temperature))
            .onErrorReturn(throwable -> {
                log.warn("temperature={} | failing request={}", temperature.getUuid(), Heating.requestTemperature(temperature.getWhere()));
                // unreadable temperature
                return temperature;
            });

    }
SoundServiceImpl.java 文件源码 项目:openwebnet-android 阅读 23 收藏 0 点赞 0 评论 0
private Func1<SoundModel, Observable<SoundModel>> requestSound(
    Func3<String, SoundSystem.Type, SoundSystem.Source, SoundSystem> request,
    Func2<OpenSession, SoundModel, SoundModel> handler) {

    return sound -> commonService.findClient(sound.getGatewayUuid())
        .send(request.call(sound.getWhere(), sound.getSoundSystemType(), sound.getSoundSystemSource()))
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .map(openSession -> handler.call(openSession, sound))
        .onErrorReturn(throwable -> {
            log.warn("sound={} | failing request={}", sound.getUuid(),
                request.call(sound.getWhere(), sound.getSoundSystemType(), sound.getSoundSystemSource()).getValue());
            // unreadable status
            return sound;
        });
}
Lists.java 文件源码 项目:scoop 阅读 28 收藏 0 点赞 0 评论 0
public static <T> boolean elementsEqual(List<T> list1, List<T> list2, Func2<T, T, Boolean> comparator) {
    if (list1 == null || list2 == null) {
        return false;
    }

    if (list1.size() != list2.size()) {
        return false;
    }

    for (int i = 0; i < list1.size(); i++) {
        if (!comparator.call(list1.get(i), list2.get(i))) {
            return false;
        }
    }

    return true;
}
MainModule.java 文件源码 项目:TLint 阅读 23 收藏 0 点赞 0 评论 0
@Provides
@PerActivity
Observable<Integer> provideNotificationObservable(GameApi mGameApi,
                                                  ForumApi mForumApi) {
    return Observable.zip(mGameApi.queryPmList(""), mForumApi.getMessageList("", 1),
            new Func2<PmData, MessageData, Integer>() {
                @Override
                public Integer call(PmData pmData, MessageData messageData) {
                    int size = 0;
                    if (pmData != null) {
                        if (pmData.is_login == 0) {
                            return null;
                        }
                        for (Pm pm : pmData.result.data) {
                            if (!TextUtils.isEmpty(pm.unread) && pm.unread.equals("1")) {
                                size++;
                            }
                        }
                    }
                    if (messageData != null && messageData.status == 200) {
                        size += messageData.result.list.size();
                    }
                    return size;
                }
            }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
}
SyncWrapper.java 文件源码 项目:dhis2-android-eventcapture 阅读 18 收藏 0 点赞 0 评论 0
public Observable<List<Program>> syncMetaData() {
    Set<ProgramType> programTypes = new HashSet<>();
    programTypes.add(ProgramType.WITHOUT_REGISTRATION);

    return Observable.zip(userOrganisationUnitInteractor.pull(),
            userProgramInteractor.pull(ProgramFields.DESCENDANTS, programTypes),
            new Func2<List<OrganisationUnit>, List<Program>, List<Program>>() {
                @Override
                public List<Program> call(List<OrganisationUnit> units, List<Program> programs) {
                    if (syncDateWrapper != null) {
                        syncDateWrapper.setLastSyncedNow();
                    }
                    return programs;
                }
            });
}
RxOperatorExampleActivity.java 文件源码 项目:GitHub 阅读 21 收藏 0 点赞 0 评论 0
private void findUsersWhoLovesBoth() {
    // here we are using zip operator to combine both request
    Observable.zip(getCricketFansObservable(), getFootballFansObservable(),
            new Func2<List<User>, List<User>, List<User>>() {
                @Override
                public List<User> call(List<User> cricketFans,
                                       List<User> footballFans) {
                    List<User> userWhoLovesBoth =
                            filterUserWhoLovesBoth(cricketFans, footballFans);
                    return userWhoLovesBoth;
                }
            }
    ).subscribeOn(Schedulers.newThread())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Observer<List<User>>() {
                @Override
                public void onCompleted() {
                    // do anything onComplete
                }

                @Override
                public void onError(Throwable e) {
                    // handle error
                }

                @Override
                public void onNext(List<User> users) {
                    // do anything with user who loves both
                    Log.d(TAG, "userList size : " + users.size());
                    for (User user : users) {
                        Log.d(TAG, "id : " + user.id);
                        Log.d(TAG, "firstname : " + user.firstname);
                        Log.d(TAG, "lastname : " + user.lastname);
                    }
                }
            });
}
RxOperatorExampleActivity.java 文件源码 项目:GitHub 阅读 23 收藏 0 点赞 0 评论 0
private void findUsersWhoLovesBoth() {
    // here we are using zip operator to combine both request
    Observable.zip(getCricketFansObservable(), getFootballFansObservable(),
            new Func2<List<User>, List<User>, List<User>>() {
                @Override
                public List<User> call(List<User> cricketFans,
                                       List<User> footballFans) {
                    List<User> userWhoLovesBoth =
                            filterUserWhoLovesBoth(cricketFans, footballFans);
                    return userWhoLovesBoth;
                }
            }
    ).subscribeOn(Schedulers.newThread())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Observer<List<User>>() {
                @Override
                public void onCompleted() {
                    // do anything onComplete
                }

                @Override
                public void onError(Throwable e) {
                    // handle error
                }

                @Override
                public void onNext(List<User> users) {
                    // do anything with user who loves both
                    Log.d(TAG, "userList size : " + users.size());
                    for (User user : users) {
                        Log.d(TAG, "id : " + user.id);
                        Log.d(TAG, "firstname : " + user.firstname);
                        Log.d(TAG, "lastname : " + user.lastname);
                    }
                }
            });
}
Fragment_And_Then_Where.java 文件源码 项目:Go-RxJava 阅读 19 收藏 0 点赞 0 评论 0
public void runCode() {

        Observable obs1 = Observable.interval(1, TimeUnit.SECONDS);
        Observable obs2 = Observable.range(0,3);
        Plan0 plan0 = JoinObservable.from(obs1).and(obs2).then(new Func2() {
            @Override
            public Object call(Object o1, Object o2) {
                return o2;
            }
        });
        JoinObservable.when(plan0).toObservable()
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<Integer>() {
                    @Override
                    public void onCompleted() {
                        println("onCompleted");
                    }

                    @Override
                    public void onError(Throwable e) {
                        println("onError");
                    }

                    @Override
                    public void onNext(Integer integer) {
                        println("onNext:"+integer);
                    }

                });


    }
Fragment_Reduce.java 文件源码 项目:Go-RxJava 阅读 19 收藏 0 点赞 0 评论 0
public void runCode() {

        Observable.just(1,2,3,4).reduce(new Func2<Integer, Integer, Integer>() {
            @Override
            public Integer call(Integer i1, Integer i2) {
                return i1*i2;
            }
        }) .subscribe(new Subscriber<Integer>() {
            @Override
            public void onCompleted() {
                println("onCompleted");
            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onNext(Integer integer) {
                println("onNext:"+integer);
            }
        });



    }
WifiSwap.java 文件源码 项目:mobile-store 阅读 19 收藏 0 点赞 0 评论 0
@Override
public void start() {
    Utils.debugLog(TAG, "Preparing swap webserver.");
    sendBroadcast(SwapService.EXTRA_STARTING);

    if (FDroidApp.ipAddressString == null) {
        Log.e(TAG, "Not starting swap webserver, because we don't seem to be connected to a network.");
        setConnected(false);
    }

    Single.zip(
            Single.create(getWebServerTask()),
            Single.create(getBonjourTask()),
            new Func2<Boolean, Boolean, Boolean>() {
                @Override
                public Boolean call(Boolean webServerTask, Boolean bonjourServiceTask) {
                    return bonjourServiceTask && webServerTask;
                }
            })
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.newThread())
            .subscribe(new Action1<Boolean>() {
                    @Override
                    public void call(Boolean success) {
                        setConnected(success);
                    }
                },
                new Action1<Throwable>() {
                    @Override
                    public void call(Throwable throwable) {
                        setConnected(false);
                    }
                });
}


问题


面经


文章

微信
公众号

扫码关注公众号