package com.weishitech.gjtdwweemawefkj.fragment.ss
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.text.TextUtils
import android.view.LayoutInflater
import android.view.View
import android.widget.TextView
import androidx.recyclerview.widget.LinearLayoutManager
import com.amap.api.maps.model.LatLng
import com.amap.api.maps.model.Poi
import com.amap.api.navi.AmapNaviPage
import com.amap.api.navi.AmapNaviParams
import com.amap.api.navi.AmapNaviType
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.listener.OnItemClickListener
import com.google.android.material.tabs.TabLayout
import com.gyf.immersionbar.ImmersionBar
import com.hfd.common.util.ToastUtil
import com.hjq.permissions.XXPermissions
import com.hjq.permissions.permission.PermissionLists
import com.weishitech.gaoxundhdt.ui.home.adapter.AMapNaviHistoryAdapter
import com.weishitech.gjtdwweemawefkj.R
import com.weishitech.gjtdwweemawefkj.base.activity.BaseBindActivity
import com.weishitech.gjtdwweemawefkj.base.inter.insert.IAdInsertView
import com.weishitech.gjtdwweemawefkj.base.inter.nativ.IAdNativeView
import com.weishitech.gjtdwweemawefkj.base.permission.PermissionDescription
import com.weishitech.gjtdwweemawefkj.base.util.ViewUtil
import com.weishitech.gjtdwweemawefkj.bean.AMapNaviHistoryBean
import com.weishitech.gjtdwweemawefkj.databinding.ActivityAMapNaviBinding
import com.weishitech.gjtdwweemawefkj.dialog.DialogBuilder
import com.weishitech.gjtdwweemawefkj.ui.home.activity.SearchAddressActivity
import com.weishitech.gjtdwweemawefkj.utils.AMapNaviHistoryDataUtil
class AMapNaviActivity : BaseBindActivity(), View.OnClickListener,
OnItemClickListener, IAdInsertView, IAdNativeView {
private val requestCodeStart = 1 private val requestCodeEnd = 2 companion object { fun startActivity(context: Context, position: Int) { val intent = Intent(context, AMapNaviActivity::class.java) intent.putExtra("position", position) context.startActivity(intent) } } private val mListTab = arrayOf<String?>("驾车", "步行", "骑行", "摩托车") private var mPosition = 0 private val mAdapter: AMapNaviHistoryAdapter by lazy { AMapNaviHistoryAdapter() } override fun init() {
// initInsert(AppAdEnum.AD_INSERT_SEARCH)
// initNative(AppAdEnum.AD_NATIVE_SEARCH)
ImmersionBar.with(this) .fitsSystemWindows(true) .statusBarColor(R.color.gray) .keyboardEnable(true) .statusBarDarkFont(true) .init() mPosition = intent.getIntExtra("position", 0) mListTab.forEachIndexed { index, it -> initCustomTabs(it!!) } if (mBinding.tabLayout.tabCount > 0) { updateTabStyle(mBinding.tabLayout.getTabAt(mPosition)!!, true) } mBinding.tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener { @Override override fun onTabSelected(tab: TabLayout.Tab?) { updateTabStyle(tab!!, true) mPosition = tab.position } override fun onTabUnselected(tab: TabLayout.Tab?) { updateTabStyle(tab!!, false) } override fun onTabReselected(tab: TabLayout.Tab?) { } }) mBinding.recycler.layoutManager = LinearLayoutManager(this) mBinding.recycler.adapter = mAdapter mAdapter.setOnItemClickListener(this) mBinding.tvClear.setOnClickListener(this) mBinding.tvStart.setOnClickListener(this) mBinding.tvEnd.setOnClickListener(this) mBinding.tvSearch.setOnClickListener(this) } /** * 初始化自定义Tab */ private fun initCustomTabs(item: String) { val tab = mBinding.tabLayout.newTab() val tabView = LayoutInflater.from(mContext).inflate(R.layout.item_custom_tab_layout, null) val text = tabView.findViewById<TextView>(R.id.tv_tab_text) text.text = item tab.customView = tabView mBinding.tabLayout.addTab(tab) } /** * 更新Tab选中/未选中样式(图标染色、文字颜色等) */ private fun updateTabStyle(tab: TabLayout.Tab, isSelected: Boolean) { val tabView = tab.customView if (tabView == null) return val view = tabView.findViewById<View>(R.id.view) if (isSelected) { view.visibility = View.VISIBLE } else { view.visibility = View.INVISIBLE } } override fun onResume() { super.onResume() mAdapter.setList(AMapNaviHistoryDataUtil.getData()) if (ViewUtil.isListNotEmpty(mAdapter.data)) { mBinding.tvClear.visibility = View.VISIBLE } else { mBinding.tvClear.visibility = View.GONE } } override fun onClick(v: View?) { when (v!!.id) { R.id.tv_start -> { val bundle = Bundle() bundle.putBoolean("isNeedNavi", false) toClass(SearchAddressActivity::class.java, bundle, requestCodeStart) } R.id.tv_end -> { val bundle = Bundle() bundle.putBoolean("isNeedNavi", false) toClass(SearchAddressActivity::class.java, bundle,requestCodeEnd) } R.id.tv_clear -> { DialogBuilder.create(this).setDialogType(false) .setMessage("确定要清空历史记录吗?") .setPositiveButton("确定") { dialog, v -> dialog.dismiss() AMapNaviHistoryDataUtil.clear() mBinding.tvClear.visibility = View.GONE mAdapter.clearData() }.build().show() } R.id.tv_search -> { if (TextUtils.isEmpty(ViewUtil.getText(mBinding.tvEnd))) { ToastUtil.showLongToast("请输入终点") return } XXPermissions.with(this) .description(PermissionDescription()) .permission(PermissionLists.getAccessFineLocationPermission()) .permission(PermissionLists.getAccessCoarseLocationPermission()) .request { grantedList, deniedList -> val allGranted = deniedList.isEmpty() if (allGranted) { goNavi() } else { ToastUtil.showLongToast("请允许定位权限") } } } } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (resultCode != RESULT_OK) { return } val name = data!!.getStringExtra("name") val lat = data.getDoubleExtra("lat", 0.00) val lng = data.getDoubleExtra("lng", 0.00) val historyBean = AMapNaviHistoryBean(name, lat, lng) when (requestCode) { requestCodeStart -> { mBinding.tvStart.text = name mBinding.tvStart.tag = historyBean } requestCodeEnd -> { mBinding.tvEnd.text = name mBinding.tvEnd.tag = historyBean } } AMapNaviHistoryDataUtil.save(historyBean) mAdapter.setList(AMapNaviHistoryDataUtil.getData()) } override fun onItemClick(adapter: BaseQuickAdapter<*, *>, view: View, position: Int) { val item = adapter.getItem(position) as AMapNaviHistoryBean mBinding.tvEnd.text = item.name mBinding.tvEnd.tag = item } /** * 去导航 */ private fun goNavi() { var pointStart: Poi? = null if (mBinding.tvStart.tag != null) { val start = mBinding.tvStart.tag as AMapNaviHistoryBean pointStart = Poi(start.name, LatLng(start.lat, start.lng), "") } var end: AMapNaviHistoryBean = mBinding.tvEnd.tag as AMapNaviHistoryBean val pointEnd = LatLng(end.lat, end.lng) val params = AmapNaviParams( pointStart, null, Poi(end.name, pointEnd, ""), getAMapNaviType() ) params.setUseInnerVoice(true) AmapNaviPage.getInstance().showRouteActivity(mContext, params, null) } /** * 获取导航类型 */ private fun getAMapNaviType(): AmapNaviType { when (mPosition) { 0, 3 -> { return AmapNaviType.DRIVER } 1 -> return AmapNaviType.WALK 2 -> return AmapNaviType.RIDE } return AmapNaviType.DRIVER }
}package com.weishitech.gjtdwweemawefkj.fragment.lilv;
import android.content.Intent;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.TextView;
import com.anythink.core.api.ATAdConst;
import com.anythink.core.api.ATAdInfo;
import com.anythink.core.api.ATShowConfig;
import com.anythink.core.api.AdError;
import com.anythink.dlopt.api.ATAppDownloadListener;
import com.anythink.nativead.api.ATNative;
import com.anythink.nativead.api.ATNativeAdView;
import com.anythink.nativead.api.ATNativeDislikeListener;
import com.anythink.nativead.api.ATNativeEventExListener;
import com.anythink.nativead.api.ATNativeNetworkListener;
import com.anythink.nativead.api.ATNativePrepareExInfo;
import com.anythink.nativead.api.ATNativePrepareInfo;
import com.anythink.nativead.api.ATNativeView;
import com.anythink.nativead.api.NativeAd;
import com.anythink.nativead.api.NativeAdInteractionType;
import com.hfd.common.base.BaseFragment;
import com.hfd.common.util.ToastUtil;
import com.weishitech.gjtdwweemawefkj.LCAppcation;
import com.weishitech.gjtdwweemawefkj.MainActivity;
import com.weishitech.gjtdwweemawefkj.R;
import com.weishitech.gjtdwweemawefkj.ad.AdConst;
import com.weishitech.gjtdwweemawefkj.ad.base.BaseActivity;
import com.weishitech.gjtdwweemawefkj.ad.util.SDKUtil;
import com.weishitech.gjtdwweemawefkj.ad.util.SelfRenderViewUtil;
import com.weishitech.gjtdwweemawefkj.base.helper.BaseAdUtil;
import com.weishitech.gjtdwweemawefkj.fragment.ss.AMapNaviActivity;
import com.weishitech.gjtdwweemawefkj.ui.MineAddressUtil;
import com.weishitech.gjtdwweemawefkj.ui.home.activity.AddressMineActivity;
import com.weishitech.gjtdwweemawefkj.ui.home.activity.SearchAddressActivity;
import com.weishitech.gjtdwweemawefkj.ui.home.bean.AddressMineBean;
import com.weishitech.gjtdwweemawefkj.ui.home.pop.NavigationMapPop;
import com.weishitech.gjtdwweemawefkj.ui.subway.activity.SubwayActivity;
import com.weishitech.gjtdwweemawefkj.utils.OnMultiClickListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
个人出租屋税率
*/
public class LiLvFragment extends BaseFragment {
TextView tv_walk,tv_driver,tv_cycling,tv_motorcycle,tv_dt,tv_gj,tv_zd,tv_xx,tv_company,tv_home,tv_other;
FrameLayout fl_search;
private MainActivity mActivity;
private volatile NavigationMapPop mNavigationMapPop = null;
@Override
protected int setLayout() {
return R.layout.fragment_lilv;
}
@Override
protected void initView() {
tv_walk = fvbi(R.id.tv_walk);
tv_driver = fvbi(R.id.tv_driver);
tv_cycling = fvbi(R.id.tv_cycling);
tv_motorcycle = fvbi(R.id.tv_motorcycle);
tv_dt = fvbi(R.id.tv_dt);
tv_gj = fvbi(R.id.tv_gj);
tv_zd = fvbi(R.id.tv_zd);
tv_xx = fvbi(R.id.tv_xx);
tv_company = fvbi(R.id.tv_company);
tv_home = fvbi(R.id.tv_home);
tv_other = fvbi(R.id.tv_other);
fl_search = fvbi(R.id.fl_search);
mActivity = (MainActivity) getActivity(); getMNavigationMapPop();
}
@Override
protected void initClick() {
tv_walk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AMapNaviActivity.Companion.startActivity(mContext,1);//.putExtra(“type”, 1)
}
});
tv_driver.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { AMapNaviActivity.Companion.startActivity(mContext,0);//.putExtra( "type", 2) } }); tv_cycling.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { AMapNaviActivity.Companion.startActivity(mContext,2);//.putExtra( "type", 3) } }); tv_motorcycle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { AMapNaviActivity.Companion.startActivity(mContext,3);//.putExtra( "type", 4) } }); tv_company.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { AddressMineBean mineCompanyAddress = MineAddressUtil.getMineCompanyAddress(); if (mineCompanyAddress == null) { toClass(AddressMineActivity.class); return; } mNavigationMapPop.setNewData(mineCompanyAddress); mNavigationMapPop.showPopupWindow(); } }); tv_home.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { AddressMineBean mineHomeAddress = MineAddressUtil.getMineHomeAddress(); if (mineHomeAddress == null) { toClass(AddressMineActivity.class); return; } mNavigationMapPop.setNewData(mineHomeAddress); mNavigationMapPop.showPopupWindow(); } }); tv_other.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { toClass(AddressMineActivity.class); } }); fl_search.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { toClass(SearchAddressActivity.class); } }); tv_dt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { toClass(SubwayActivity.class); } }); tv_xx.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { toClass(RestrictionsActivity.class); } }); tv_gj.setOnClickListener(new OnMultiClickListener() { @Override public void onMultiClick(View v) { toClass(CustomizedActivity.class); } }); tv_zd.setOnClickListener(new OnMultiClickListener() { @Override public void onMultiClick(View v) { mActivity.switchToHomeFragment(); } });
}
@Override
protected void initData() {
}
private NavigationMapPop getMNavigationMapPop() {
if (mNavigationMapPop == null) {
synchronized (this) {
if (mNavigationMapPop == null) {
mNavigationMapPop = new NavigationMapPop(mContext);
}
}
}
return mNavigationMapPop;
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onResume() {
super.onResume();
AddressMineBean companyBean = MineAddressUtil.getMineCompanyAddress(); if (companyBean != null) { tv_company.setText(companyBean.name); } else { tv_company.setText(""); } AddressMineBean homeBean = MineAddressUtil.getMineHomeAddress(); if (homeBean != null) { tv_home.setText(homeBean.name); } else { tv_home.setText(""); }
}
}在LiLvFragment页面点击步行进入AMapNaviActivity选中步行,在AMapNaviActivity页面切换其他如摩托车、自行车、驾车,选中状态会同时选中进入AMapNaviActivity页面选中的步行以及其他类型
最新发布