From 3a4343f647f038a9e8366f17b33a07fdfd8b680c Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期四, 05 十二月 2024 10:26:57 +0800 Subject: [PATCH] 1.添加巡检时的后台定位权限获取 --- app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java | 171 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 144 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java index 52163b4..e394ea6 100644 --- a/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java +++ b/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java @@ -1,66 +1,87 @@ package com.dayu.pipirrapp.activity; +import android.net.ConnectivityManager; +import android.net.Network; import android.os.Bundle; import android.view.KeyEvent; import android.view.LayoutInflater; -import android.view.MotionEvent; -import android.view.View; import android.widget.Toast; +import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; +import com.dayu.pipirrapp.MyApplication; +import com.dayu.pipirrapp.R; import com.dayu.pipirrapp.adapter.TabAdapter; +import com.dayu.pipirrapp.bean.db.TagBean; +import com.dayu.pipirrapp.dao.DaoSingleton; import com.dayu.pipirrapp.databinding.ActivityMainBinding; -import com.dayu.pipirrapp.fragment.BaseFragment; -import com.dayu.pipirrapp.fragment.MainFragment; +import com.dayu.pipirrapp.fragment.OrderFragment; import com.dayu.pipirrapp.fragment.MapFragment; import com.dayu.pipirrapp.fragment.MyFragment; +import com.dayu.pipirrapp.net.MqttManager; +import com.dayu.pipirrapp.tool.InspectionUtils; +import com.dayu.pipirrapp.utils.MyLog; +import com.dayu.pipirrapp.utils.NetUtils; import java.util.ArrayList; import java.util.List; - /** - * + * 棣栭〉 */ -public class MainActivity extends BaseActivity { - ActivityMainBinding binding; - List<Fragment> mFragment = new ArrayList<>(); +public class MainActivity extends AppCompatActivity { + private ActivityMainBinding binding; + private List<Fragment> fragments = new ArrayList<>(); + private long mExitTime; + MqttManager mqttManager; + private enum Tab { + ORDER, MAP, MY + } @Override protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); binding = ActivityMainBinding.inflate(LayoutInflater.from(this)); - MapFragment mapFragment = new MapFragment(); setContentView(binding.getRoot()); - mFragment.add(mapFragment); - mFragment.add(new MainFragment()); - mFragment.add(new MyFragment()); + registNetCallBack(); + setupFragments(); + initView(); initTab(); + + try { + TagBean tagBean = DaoSingleton.getInstance(this).tagDao().findFirst(); + MyApplication.myApplication.myTag = tagBean.getTag(); + } catch (Exception e) { + e.printStackTrace(); + } + mqttManager = new MqttManager(this); + mqttManager.connect(); } - private void getPermission(){ - + private void setupFragments() { + fragments.add(new OrderFragment()); + fragments.add(new MapFragment()); + fragments.add(new MyFragment()); } - + private void initView() { + binding.orderLL.setOnClickListener(v -> changeBottomState(Tab.ORDER)); + binding.mapLL.setOnClickListener(v -> changeBottomState(Tab.MAP)); + binding.myLL.setOnClickListener(v -> changeBottomState(Tab.MY)); + } private void initTab() { - TabAdapter adapter = new TabAdapter(getSupportFragmentManager(), mFragment); + TabAdapter adapter = new TabAdapter(getSupportFragmentManager(), fragments); binding.viewPager.setAdapter(adapter); binding.viewPager.setPagingEnabled(false); - //璁剧疆缂撳瓨view 鐨勪釜鏁� - binding.viewPager.setOffscreenPageLimit(3); - // 灏� ViewPager 涓� TabLayout 鍏宠仈 - binding.tabLayout.setupWithViewPager(binding.viewPager); + binding.viewPager.setOffscreenPageLimit(fragments.size()); + binding.viewPager.setCurrentItem(1); // 榛樿鏄剧ず鍦板浘椤� } - long mExitTime; - - //鐐瑰嚮涓ゆ閫�鍑虹▼搴� 鏈夋椂闂撮棿闅� 闂撮殧鍐呯偣鍑诲垯閫�鍑虹▼搴� 鍚﹀垯 鍒欐彁绀� @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { @@ -68,11 +89,107 @@ Toast.makeText(MainActivity.this, "鍐嶆寜涓�娆¢��鍑虹▼搴�", Toast.LENGTH_SHORT).show(); mExitTime = System.currentTimeMillis(); } else { - MainActivity.this.finish(); + finish(); } return true; } return super.onKeyDown(keyCode, event); } -} \ No newline at end of file + @Override + protected void onDestroy() { + super.onDestroy(); + //鍏抽棴MQ + try { + mqttManager.disconnect(); + unregisterNetworkCallback(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 淇敼搴曢儴鐘舵�� + */ + private void changeBottomState(Tab tab) { + resetTabState(); + switch (tab) { + case ORDER: + updateTabUI(0, R.drawable.bottom_order_white, R.color.white); + break; + case MAP: + updateTabUI(1, R.drawable.bottom_map_white, R.color.white); + break; + case MY: + updateTabUI(2, R.drawable.bottom_my_white, R.color.white); + break; + } + } + + /** + * 鏇存柊鏌愪釜 Tab 鐨� UI 鐘舵�� + */ + private void updateTabUI(int position, int iconResId, int textColorResId) { + binding.viewPager.setCurrentItem(position); + switch (position) { + case 0: + binding.orderImg.setImageDrawable(ContextCompat.getDrawable(this, iconResId)); + binding.orderText.setTextColor(ContextCompat.getColor(this, textColorResId)); + break; + case 1: + binding.mapImg.setImageDrawable(ContextCompat.getDrawable(this, iconResId)); + binding.mapText.setTextColor(ContextCompat.getColor(this, textColorResId)); + break; + case 2: + binding.myImg.setImageDrawable(ContextCompat.getDrawable(this, iconResId)); + binding.myText.setTextColor(ContextCompat.getColor(this, textColorResId)); + break; + } + } + + /** + * 閲嶇疆鎵�鏈� Tab 鐨勯粯璁ょ姸鎬� + */ + private void resetTabState() { + binding.orderImg.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.bottom_order_black)); + binding.orderText.setTextColor(ContextCompat.getColor(this, R.color.black)); + + binding.mapImg.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.bottom_map_black)); + binding.mapText.setTextColor(ContextCompat.getColor(this, R.color.black)); + + binding.myImg.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.bottom_my_black)); + binding.myText.setTextColor(ContextCompat.getColor(this, R.color.black)); + } + + // 娉ㄥ唽缃戠粶鐩戞帶 + private void registNetCallBack() { + NetUtils.registerNetCallBack(this, networkCallback); + } + + private void unregisterNetworkCallback() { + NetUtils.unregisterReceiver(this, networkCallback); + } + + //缃戠粶鐩戞帶 + ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() { + @Override + public void onAvailable(@NonNull Network network) { + super.onAvailable(network); + // 杩欓噷鍙互鎵ц缃戠粶鍙敤鍚庣殑閫昏緫锛屾瘮濡傝繘琛屾暟鎹姹傜瓑 + MyLog.d("onAvailable"); + InspectionUtils.aginPutInspectionData(MainActivity.this); + } + + @Override + public void onLost(@NonNull Network network) { + super.onLost(network); + // 杩欓噷鍙互鎵ц缃戠粶涓㈠け鍚庣殑閫昏緫锛屾瘮濡傚仠姝㈡暟鎹姹傜瓑 + MyLog.d("onLost"); + } + }; + + + + + +} -- Gitblit v1.8.0