Initial commit
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
package com.ubt.jimu.controller.presenter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.SystemClock;
|
||||
import android.text.TextUtils;
|
||||
import com.ubt.jimu.R;
|
||||
import com.ubt.jimu.base.data.Engine;
|
||||
import com.ubt.jimu.base.data.ServoMode;
|
||||
import com.ubt.jimu.base.entities.RobotLite;
|
||||
import com.ubt.jimu.controller.data.command.AngleCommand;
|
||||
import com.ubt.jimu.controller.data.command.MoveCommand;
|
||||
import com.ubt.jimu.controller.data.config.HSliderConfig;
|
||||
import com.ubt.jimu.controller.manager.CommandManager;
|
||||
import com.ubt.jimu.controller.manager.MoveConfigManager;
|
||||
import com.ubt.jimu.controller.view.IAngleSettingView;
|
||||
import com.ubtech.utils.XLog;
|
||||
import com.ubtrobot.jimu.robotapi.ServoAngleReadInfo;
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableEmitter;
|
||||
import io.reactivex.ObservableOnSubscribe;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.functions.Consumer;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public class AngleSettingPresenter extends SuperControllerPresenter<IAngleSettingView> {
|
||||
public AngleSettingPresenter(Context context, RobotLite robotLite) {
|
||||
super(context, robotLite);
|
||||
}
|
||||
|
||||
@Override // com.ubt.jimu.controller.presenter.SuperControllerPresenter
|
||||
public String a(int i, ServoMode servoMode) {
|
||||
IAngleSettingView iAngleSettingView;
|
||||
String a = super.a(i, servoMode);
|
||||
if (TextUtils.isEmpty(a) || (iAngleSettingView = (IAngleSettingView) b()) == null) {
|
||||
return "";
|
||||
}
|
||||
iAngleSettingView.d(String.format(this.c.getResources().getString(R.string.control_servo_mode_set), a));
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override // com.ubt.jimu.controller.presenter.SuperControllerPresenter
|
||||
void b(List<? extends Engine> list) {
|
||||
if (list == null || list.size() <= 0) {
|
||||
return;
|
||||
}
|
||||
XLog.a("woo", "servolist: %s", list.toString());
|
||||
List<HSliderConfig> c = MoveConfigManager.a(this.c.getApplicationContext()).c();
|
||||
if (c == null || c.size() <= 0) {
|
||||
return;
|
||||
}
|
||||
Iterator<HSliderConfig> it = c.iterator();
|
||||
while (it.hasNext()) {
|
||||
int servoID = it.next().getServoID();
|
||||
for (Engine engine : list) {
|
||||
if (servoID == engine.getId()) {
|
||||
engine.setConfigged(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void a(HSliderConfig hSliderConfig) {
|
||||
MoveConfigManager a = MoveConfigManager.a(this.c.getApplicationContext());
|
||||
a.b(hSliderConfig);
|
||||
a.a(true);
|
||||
}
|
||||
|
||||
public void a(RobotLite robotLite, int i, int i2) {
|
||||
if (!c(robotLite) || super.e()) {
|
||||
return;
|
||||
}
|
||||
HashMap hashMap = new HashMap(1);
|
||||
hashMap.put(Integer.valueOf(i), Integer.valueOf(i2 + 120));
|
||||
CommandManager.a(this.c.getApplicationContext()).a((MoveCommand) new AngleCommand(hashMap, 200, 0), false);
|
||||
}
|
||||
|
||||
public void a(final int i) {
|
||||
if (c(this.d)) {
|
||||
Observable.create(new ObservableOnSubscribe<List<ServoAngleReadInfo>>() { // from class: com.ubt.jimu.controller.presenter.AngleSettingPresenter.1
|
||||
@Override // io.reactivex.ObservableOnSubscribe
|
||||
public void subscribe(ObservableEmitter<List<ServoAngleReadInfo>> observableEmitter) throws Exception {
|
||||
if (AngleSettingPresenter.this.d() != null) {
|
||||
long elapsedRealtime = SystemClock.elapsedRealtime();
|
||||
List<ServoAngleReadInfo> a = AngleSettingPresenter.this.d().a(i, true);
|
||||
if (a == null || a.size() <= 0) {
|
||||
observableEmitter.onError(new Throwable("read servo angle failed"));
|
||||
return;
|
||||
}
|
||||
for (ServoAngleReadInfo servoAngleReadInfo : a) {
|
||||
servoAngleReadInfo.a(servoAngleReadInfo.a() - 120.0f);
|
||||
}
|
||||
XLog.a("Controller", "readAllServoAngle cost time: %d", Long.valueOf(SystemClock.elapsedRealtime() - elapsedRealtime));
|
||||
observableEmitter.onNext(a);
|
||||
}
|
||||
}
|
||||
}).subscribeOn(Schedulers.b()).observeOn(AndroidSchedulers.a()).subscribe(new Consumer<List<ServoAngleReadInfo>>() { // from class: com.ubt.jimu.controller.presenter.AngleSettingPresenter.2
|
||||
@Override // io.reactivex.functions.Consumer
|
||||
/* renamed from: a, reason: merged with bridge method [inline-methods] */
|
||||
public void accept(List<ServoAngleReadInfo> list) throws Exception {
|
||||
XLog.a("Controller", "servoAngle: %s", list.toString());
|
||||
IAngleSettingView iAngleSettingView = (IAngleSettingView) AngleSettingPresenter.this.b();
|
||||
if (iAngleSettingView != null) {
|
||||
iAngleSettingView.g(list);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user