8 changed files with 164 additions and 17 deletions
@ -0,0 +1,42 @@ |
|||||||
|
package com.kanglai.push.ui.activity; |
||||||
|
|
||||||
|
import android.content.Intent; |
||||||
|
import android.os.Bundle; |
||||||
|
|
||||||
|
import com.blankj.utilcode.util.LogUtils; |
||||||
|
import com.kanglai.push.R; |
||||||
|
import androidx.databinding.library.baseAdapters.BR; |
||||||
|
|
||||||
|
import com.dolphin.core.base.BaseActivity; |
||||||
|
import com.kanglai.push.databinding.ActivityLocationBinding; |
||||||
|
import com.kanglai.push.ui.vm.LocationViewModel; |
||||||
|
|
||||||
|
/** |
||||||
|
* 根据广播状态更新用户定位内容 |
||||||
|
* |
||||||
|
* @Author: liusixiang007 |
||||||
|
* @since: 2024/4/2 |
||||||
|
*/ |
||||||
|
public class LocationActivity extends BaseActivity<ActivityLocationBinding, LocationViewModel> { |
||||||
|
|
||||||
|
@Override |
||||||
|
public int setContentView(Bundle savedInstanceState) { |
||||||
|
return R.layout.activity_location; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int setVariableId() { |
||||||
|
return BR.viewModel; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected void onCreate(Bundle savedInstanceState) { |
||||||
|
super.onCreate(savedInstanceState); |
||||||
|
Intent mIntent = getIntent(); |
||||||
|
|
||||||
|
LogUtils.d("--LocationActivity 获取的------纬度"+mIntent.getStringExtra("latitude") + "-------------经度" + mIntent.getStringExtra("longitude")); |
||||||
|
// todo 获取到经纬度之后进行 直接上传 上传之后 销毁界面
|
||||||
|
if (mIntent != null) mViewModel.loadLocation(mIntent.getStringExtra("latitude"), mIntent.getStringExtra("longitude")); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,82 @@ |
|||||||
|
package com.kanglai.push.ui.vm; |
||||||
|
|
||||||
|
import android.app.Application; |
||||||
|
|
||||||
|
import androidx.annotation.NonNull; |
||||||
|
import androidx.lifecycle.LifecycleOwner; |
||||||
|
|
||||||
|
import com.blankj.utilcode.util.LogUtils; |
||||||
|
import com.blankj.utilcode.util.Utils; |
||||||
|
import com.dolphin.core.http.api.ResultResponse; |
||||||
|
import com.dolphin.core.http.exception.ExceptionHandle; |
||||||
|
import com.dolphin.core.util.RxUtil; |
||||||
|
import com.kanglai.push.app.AppApplication; |
||||||
|
import com.kanglai.push.di.component.DaggerServiceComponent; |
||||||
|
import com.kanglai.push.entity.User; |
||||||
|
import com.kanglai.push.service.PushService; |
||||||
|
import com.kanglai.push.ui.activity.LocationActivity; |
||||||
|
import com.kanglai.push.util.TimeFormatUtil; |
||||||
|
|
||||||
|
import javax.inject.Inject; |
||||||
|
|
||||||
|
import io.reactivex.observers.DisposableObserver; |
||||||
|
|
||||||
|
/** |
||||||
|
* 根据广播状态更新用户定位内容 |
||||||
|
* |
||||||
|
* @Author: liusixiang007 |
||||||
|
* @since: 2024/4/2 |
||||||
|
*/ |
||||||
|
public class LocationViewModel extends ToolbarViewModel<LocationActivity> { |
||||||
|
|
||||||
|
@Inject |
||||||
|
PushService pushService; |
||||||
|
|
||||||
|
@Override |
||||||
|
public void onCreate(@NonNull LifecycleOwner owner) { |
||||||
|
super.onCreate(owner); |
||||||
|
} |
||||||
|
|
||||||
|
public LocationViewModel(@NonNull Application application) { |
||||||
|
super(application); |
||||||
|
// 注入服务组件
|
||||||
|
DaggerServiceComponent |
||||||
|
.builder() |
||||||
|
.appComponent(((AppApplication) Utils.getApp().getApplicationContext()).appComponent) |
||||||
|
.build().inject(this); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 上传经纬度信息 |
||||||
|
* @param latitude 纬度 |
||||||
|
* @param longitude 经度 |
||||||
|
*/ |
||||||
|
public void loadLocation(String latitude, String longitude) { |
||||||
|
// todo 暂时没有正式的上传定位信息接口 以获取用户信息接口模拟
|
||||||
|
pushService.getUserInfo() |
||||||
|
.compose(RxUtil.schedulersTransformer()) |
||||||
|
.compose(RxUtil.exceptionTransformer()) |
||||||
|
.doOnSubscribe(this) |
||||||
|
.subscribe(new DisposableObserver<ResultResponse<User>>() { |
||||||
|
@Override |
||||||
|
public void onNext(ResultResponse<User> R) { |
||||||
|
if (R.getCode() == R.SUCCESS){ |
||||||
|
LogUtils.d(TimeFormatUtil.getCurrentTime() + "定位请求上传成功-" + latitude + "/" + longitude); |
||||||
|
}else LogUtils.d("定位成功 请求却未成功"); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void onError(Throwable e) { |
||||||
|
ExceptionHandle.baseExceptionMsg(e); |
||||||
|
// mActivity.finish();
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void onComplete() { |
||||||
|
// todo 无论成功与否 全部停止当前活动
|
||||||
|
// mActivity.finish();
|
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,12 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<layout xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
xmlns:binding="http://schemas.android.com/apk/res-auto"> |
||||||
|
<data> |
||||||
|
<variable name="viewModel" type="com.kanglai.push.ui.vm.LocationViewModel" /> |
||||||
|
</data> |
||||||
|
<LinearLayout |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="match_parent" |
||||||
|
android:orientation="vertical"> |
||||||
|
</LinearLayout> |
||||||
|
</layout> |
Loading…
Reference in new issue