diff --git a/positions/build.gradle b/positions/build.gradle index 62567e9..be04383 100644 --- a/positions/build.gradle +++ b/positions/build.gradle @@ -58,10 +58,11 @@ android { } dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') + // 定位服务 implementation 'com.google.android.gms:play-services-location:20.0.0' - implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.viewpager:viewpager:1.0.0' diff --git a/positions/build.properties b/positions/build.properties index 311254f..ae32d21 100644 --- a/positions/build.properties +++ b/positions/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Feb 25 05:04:52 GMT 2025 +#Fri Feb 28 02:42:20 GMT 2025 stageCount=0 libraryProject= baseVersion=1.0 publishVersion=1.0.0 -buildCount=184 +buildCount=197 baseBetaVersion=1.0.1 diff --git a/positions/src/main/AndroidManifest.xml b/positions/src/main/AndroidManifest.xml index 7bf84d9..3e34983 100644 --- a/positions/src/main/AndroidManifest.xml +++ b/positions/src/main/AndroidManifest.xml @@ -47,7 +47,7 @@ tools:ignore="AllowBackup,GoogleAppIndexingWarning" tools:targetApi="q"> - + @@ -59,8 +59,7 @@ - - + diff --git a/positions/src/main/java/cc/winboll/studio/positions/Main2Activity.java b/positions/src/main/java/cc/winboll/studio/positions/MainActivity.java similarity index 64% rename from positions/src/main/java/cc/winboll/studio/positions/Main2Activity.java rename to positions/src/main/java/cc/winboll/studio/positions/MainActivity.java index fbecf27..0958231 100644 --- a/positions/src/main/java/cc/winboll/studio/positions/Main2Activity.java +++ b/positions/src/main/java/cc/winboll/studio/positions/MainActivity.java @@ -7,7 +7,6 @@ import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.telecom.TelecomManager; -import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -17,6 +16,10 @@ import android.widget.LinearLayout; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentPagerAdapter; +import androidx.fragment.app.FragmentTransaction; import androidx.viewpager.widget.ViewPager; import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.LogView; @@ -25,18 +28,18 @@ import cc.winboll.studio.libapputils.app.WinBollActivityManager; import cc.winboll.studio.libapputils.bean.APPInfo; import cc.winboll.studio.libapputils.view.YesNoAlertDialog; import cc.winboll.studio.positions.R; -import com.tencent.map.vector.demo.DemoMainActivity; import cc.winboll.studio.positions.activities.SettingsActivity; -import cc.winboll.studio.positions.adapters.MyPagerAdapter; import cc.winboll.studio.positions.beans.MainServiceBean; -import cc.winboll.studio.positions.services.MainService; +import cc.winboll.studio.positions.fragments.LogFragment; +import cc.winboll.studio.positions.fragments.PositionsFragment; +import cc.winboll.studio.positions.fragments.TXMSFragment; +import cc.winboll.studio.positions.fragments.TasksFragment; import com.google.android.material.tabs.TabLayout; +import com.tencent.map.vector.demo.AbsActivity; import java.util.ArrayList; import java.util.List; -import com.tencent.map.vector.demo.AbsListActivity; -import com.tencent.map.vector.demo.AbsActivity; -final public class MainSimpleActivity extends AbsActivity implements IWinBollActivity, ViewPager.OnPageChangeListener, View.OnClickListener { +final public class MainActivity extends AbsActivity implements IWinBollActivity, ViewPager.OnPageChangeListener, View.OnClickListener { public static final String TAG = "MainActivity"; @@ -46,10 +49,11 @@ final public class MainSimpleActivity extends AbsActivity implements IWinBollAct public static final String ACTION_SOS = "cc.winboll.studio.libappbase.WinBoll.ACTION_SOS"; LogView mLogView; - Toolbar mToolbar; + //Toolbar mToolbar; CheckBox cbMainService; MainServiceBean mMainServiceBean; - ViewPager viewPager; + private TabLayout tabLayout; + private ViewPager viewPager; private List views; //用来存放放进ViewPager里面的布局 //实例化存储imageView(导航原点)的集合 ImageView[] imageViews; @@ -67,19 +71,19 @@ final public class MainSimpleActivity extends AbsActivity implements IWinBollAct @Override public APPInfo getAppInfo() { -// String szBranchName = "contacts"; +// String szBranchName = "positions"; // // APPInfo appInfo = AboutActivityFactory.buildDefaultAPPInfo(); -// appInfo.setAppName("Contacts"); +// appInfo.setAppName("Positions"); // appInfo.setAppIcon(cc.winboll.studio.libapputils.R.drawable.ic_winboll); -// appInfo.setAppDescription("Contacts Description"); +// appInfo.setAppDescription("Positions Description"); // appInfo.setAppGitName("APP"); // appInfo.setAppGitOwner("Studio"); // appInfo.setAppGitAPPBranch(szBranchName); // appInfo.setAppGitAPPSubProjectFolder(szBranchName); -// appInfo.setAppHomePage("https://www.winboll.cc/studio/details.php?app=Contacts"); -// appInfo.setAppAPKName("Contacts"); -// appInfo.setAppAPKFolderName("Contacts"); +// appInfo.setAppHomePage("https://www.winboll.cc/studio/details.php?app=Positions"); +// appInfo.setAppAPKName("Positions"); +// appInfo.setAppAPKFolderName("Positions"); // return appInfo; return null; } @@ -92,72 +96,97 @@ final public class MainSimpleActivity extends AbsActivity implements IWinBollAct super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - // 初始化工具栏 - mToolbar = findViewById(R.id.activitymainToolbar1); - setSupportActionBar(mToolbar); - if (isEnableDisplayHomeAsUp()) { - // 显示后退按钮 - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - } - getSupportActionBar().setSubtitle(getTag()); - - initData(); - initView(); - //initPoint();//调用初始化导航原点的方法 - viewPager.addOnPageChangeListener(this);//滑动事件 - - ViewPager viewPager = findViewById(R.id.activitymainViewPager1); - MyPagerAdapter pagerAdapter = new MyPagerAdapter(getSupportFragmentManager()); - viewPager.setAdapter(pagerAdapter); - TabLayout tabLayout = findViewById(R.id.activitymainTabLayout1); - tabLayout.setupWithViewPager(viewPager); - -// mMainServiceBean = MainServiceBean.loadBean(this, MainServiceBean.class); -// if (mMainServiceBean == null) { -// mMainServiceBean = new MainServiceBean(); +// // 初始化工具栏 +// mToolbar = findViewById(R.id.toolbar); +// setSupportActionBar(mToolbar); +// if (isEnableDisplayHomeAsUp()) { +// // 显示后退按钮 +// getSupportActionBar().setDisplayHomeAsUpEnabled(true); // } -// cbMainService = findViewById(R.id.activitymainCheckBox1); -// cbMainService.setChecked(mMainServiceBean.isEnable()); -// cbMainService.setOnClickListener(new View.OnClickListener(){ -// @Override -// public void onClick(View view) { -// if (cbMainService.isChecked()) { -// MainService.startMainService(MainActivity.this); -// } else { -// MainService.stopMainService(MainActivity.this); -// } -// } -// }); - MainService.startMainService(Main2Activity.this); - } +// getSupportActionBar().setSubtitle(getTag()); + // 初始化地图视图 + // 创建Fragment实例 + TXMSFragment myFragment = TXMSFragment.newInstance(0); + // 获取FragmentTransaction + FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); + // 将Fragment添加到FrameLayout容器中 + transaction.add(R.id.frameLayout, myFragment); + transaction.commit(); + + tabLayout = findViewById(R.id.tabLayout); + viewPager = findViewById(R.id.viewPager); + + // 创建Fragment列表和标题列表 + List fragmentList = new ArrayList<>(); + List tabTitleList = new ArrayList<>(); + fragmentList.add(PositionsFragment.newInstance(0)); + fragmentList.add(TasksFragment.newInstance(1)); + fragmentList.add(LogFragment.newInstance(2)); + tabTitleList.add("位置"); + tabTitleList.add("任务"); + tabTitleList.add("日志"); + + // 设置ViewPager的适配器 + MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager(), fragmentList, tabTitleList); + viewPager.setAdapter(adapter); + + // 关联TabLayout和ViewPager + tabLayout.setupWithViewPager(viewPager); + } + + + // ViewPager的适配器 + private class MyPagerAdapter extends FragmentPagerAdapter { + + private List fragmentList; + private List tabTitleList; + + public MyPagerAdapter(FragmentManager fm, List fragmentList, List tabTitleList) { + super(fm); + this.fragmentList = fragmentList; + this.tabTitleList = tabTitleList; + } + + @Override + public Fragment getItem(int position) { + return fragmentList.get(position); + } + + @Override + public int getCount() { + return fragmentList.size(); + } + + @Override + public CharSequence getPageTitle(int position) { + return tabTitleList.get(position); + } + } //初始化view,即显示的图片 - void initView() { - viewPager = findViewById(R.id.activitymainViewPager1); - pagerAdapter = new MyPagerAdapter(getSupportFragmentManager()); - viewPager.setAdapter(pagerAdapter); - //adapter = new MyPagerAdapter(views); - //viewPager = findViewById(R.id.activitymainViewPager1); - //viewPager.setAdapter(adapter); - //linearLayout = findViewById(R.id.activitymainLinearLayout1); - //initPoint();//初始化页面下方的点 - viewPager.setOnPageChangeListener(this); - - } +// void initViewPager() { +// pagerAdapter = new MyPagerAdapter(getSupportFragmentManager()); +// mViewPager.setAdapter(pagerAdapter); +// //adapter = new MyPagerAdapter(views); +// //viewPager = findViewById(R.id.activitymainViewPager1); +// //viewPager.setAdapter(adapter); +// //linearLayout = findViewById(R.id.activitymainLinearLayout1); +// //initPoint();//初始化页面下方的点 +// mViewPager.setOnPageChangeListener(this); +// } //初始化所要显示的布局 - void initData() { - ViewPager viewPager = findViewById(R.id.activitymainViewPager1); - LayoutInflater inflater = LayoutInflater.from(getActivity()); - View view1 = inflater.inflate(R.layout.fragment_gms, viewPager, false); - View view2 = inflater.inflate(R.layout.fragment_contacts, viewPager, false); - View view3 = inflater.inflate(R.layout.fragment_log, viewPager, false); - - views = new ArrayList<>(); - views.add(view1); - views.add(view2); - views.add(view3); - } +// void initLayoutData() { +// LayoutInflater inflater = LayoutInflater.from(getActivity()); +// View view1 = inflater.inflate(R.layout.fragment_gms, mViewPager, false); +// View view2 = inflater.inflate(R.layout.fragment_contacts, mViewPager, false); +// View view3 = inflater.inflate(R.layout.fragment_log, mViewPager, false); +// +// views = new ArrayList<>(); +// views.add(view1); +// views.add(view2); +// views.add(view3); +// } // void initPoint() { // imageViews = new ImageView[5];//实例化5个图片 @@ -225,51 +254,6 @@ final public class MainSimpleActivity extends AbsActivity implements IWinBollAct LogUtils.d(TAG, "onDestroy() SOS"); } - - - // - // 处理传入的 Intent 数据 - // -// boolean prosessIntents(Intent intent) { -// if (intent == null -// || intent.getAction() == null -// || intent.getAction().equals("")) -// return false; -// -// if (intent.getAction().equals(StringToQrCodeView.ACTION_UNITTEST_QRCODE)) { -// try { -// WinBollActivity clazzActivity = UnitTestActivity.class.newInstance(); -// String tag = clazzActivity.getTag(); -// LogUtils.d(TAG, "String tag = clazzActivity.getTag(); tag " + tag); -// Intent subIntent = new Intent(this, UnitTestActivity.class); -// subIntent.setAction(intent.getAction()); -// File file = new File(getCacheDir(), UUID.randomUUID().toString()); -// //取出文件uri -// Uri uri = intent.getData(); -// if (uri == null) { -// uri = intent.getParcelableExtra(Intent.EXTRA_STREAM); -// } -// //获取文件真实地址 -// String szSrcPath = UriUtils.getFileFromUri(getApplication(), uri); -// if (TextUtils.isEmpty(szSrcPath)) { -// return false; -// } -// -// Files.copy(Paths.get(szSrcPath), Paths.get(file.getPath())); -// //startWinBollActivity(subIntent, tag); -// WinBollActivityManager.getInstance(this).startWinBollActivity(this, subIntent, UnitTestActivity.class); -// } catch (IllegalAccessException | InstantiationException | IOException e) { -// LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); -// // 函数处理异常返回失败 -// return false; -// } -// } else { -// LogUtils.d(TAG, "prosessIntents|" + intent.getAction() + "|yet"); -// return false; -// } -// return true; -// } - @Override public String getTag() { return TAG; @@ -277,7 +261,7 @@ final public class MainSimpleActivity extends AbsActivity implements IWinBollAct @Override public Toolbar initToolBar() { - return findViewById(R.id.activitymainToolbar1); + return findViewById(R.id.toolbar); } @Override @@ -386,7 +370,7 @@ final public class MainSimpleActivity extends AbsActivity implements IWinBollAct // } if (requestCode == DIALER_REQUEST_CODE) { if (resultCode == Activity.RESULT_OK) { - Toast.makeText(Main2Activity.this, getString(R.string.app_name) + " 已成为默认电话应用", + Toast.makeText(MainActivity.this, getString(R.string.app_name) + " 已成为默认电话应用", Toast.LENGTH_SHORT).show(); } } diff --git a/positions/src/main/java/cc/winboll/studio/positions/adapters/MyPagerAdapter.java b/positions/src/main/java/cc/winboll/studio/positions/adapters/MyPagerAdapter2.java similarity index 52% rename from positions/src/main/java/cc/winboll/studio/positions/adapters/MyPagerAdapter.java rename to positions/src/main/java/cc/winboll/studio/positions/adapters/MyPagerAdapter2.java index e550d46..d523d13 100644 --- a/positions/src/main/java/cc/winboll/studio/positions/adapters/MyPagerAdapter.java +++ b/positions/src/main/java/cc/winboll/studio/positions/adapters/MyPagerAdapter2.java @@ -9,29 +9,30 @@ import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPagerAdapter; -import cc.winboll.studio.positions.fragments.GmsFragment; -import cc.winboll.studio.positions.fragments.ContactsFragment; +import cc.winboll.studio.positions.fragments.TasksFragment; +import cc.winboll.studio.positions.fragments.PositionsFragment; import cc.winboll.studio.positions.fragments.LogFragment; -public class MyPagerAdapter extends FragmentPagerAdapter { - public static final String TAG = "MyPagerAdapter"; +public class MyPagerAdapter2 extends FragmentPagerAdapter { + public static final String TAG = "MyPagerAdapter2"; private static final int PAGE_COUNT = 3; - public MyPagerAdapter(@NonNull FragmentManager fm) { + public MyPagerAdapter2(@NonNull FragmentManager fm) { super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT); } @NonNull @Override public Fragment getItem(int position) { - if(position == 1) { - return ContactsFragment.newInstance(position); - } else if(position == 2) { - return LogFragment.newInstance(position); - } else { - return GmsFragment.newInstance(position); - } +// if(position == 0) { +// return PositionsFragment.newInstance(position); +// } else if(position == 1) { +// return TasksFragment.newInstance(position); +// } else { +// return LogFragment.newInstance(position); +// } + return null; } @Override diff --git a/positions/src/main/java/cc/winboll/studio/positions/fragments/GmsFragment.java b/positions/src/main/java/cc/winboll/studio/positions/fragments/GmsFragment.java deleted file mode 100644 index a1157e6..0000000 --- a/positions/src/main/java/cc/winboll/studio/positions/fragments/GmsFragment.java +++ /dev/null @@ -1,111 +0,0 @@ -package cc.winboll.studio.positions.fragments; - -/** - * @Author ZhanGSKen@AliYun.Com - * @Date 2025/02/20 12:57:00 - * @Describe 拨号 - */ -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import androidx.fragment.app.Fragment; -import cc.winboll.studio.positions.R; -import cc.winboll.studio.libappbase.LogView; -import androidx.annotation.Nullable; -import androidx.annotation.NonNull; -import android.graphics.Color; -import android.widget.TextView; -import cc.winboll.studio.positions.views.GridMapView; -import com.tencent.tencentmap.mapsdk.maps.MapView; -import com.tencent.tencentmap.mapsdk.maps.TencentMap; -import com.tencent.tencentmap.mapsdk.maps.TextureMapView; - -public class GmsFragment extends Fragment { - - public static final String TAG = "GmsFragment"; - - private static final String ARG_PAGE = "ARG_PAGE"; - private int mPage; - private TextureMapView mapView; - protected TencentMap tencentMap; - - public static GmsFragment newInstance(int page) { - Bundle args = new Bundle(); - args.putInt(ARG_PAGE, page); - GmsFragment fragment = new GmsFragment(); - fragment.setArguments(args); - return fragment; - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - if (getArguments()!= null) { - mPage = getArguments().getInt(ARG_PAGE); - } - } - - @Nullable - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_gms, container, false); - -// // 初始化视图 -// GridMapView mapView = (GridMapView) view.findViewById(R.id.map_view); -// -// // 设置网格参数 -// mapView.setGridParameters(10000f, 10000f, 10f); -// -// // 初始化显示区域(中心点400,300,显示范围2000x200) -// mapView.initViewport(5000f, 5000f, 1000f, 1000f); -// -// // 绘制图形 -// mapView.drawPoint(5000f, 5000f, Color.RED, 8f); -// mapView.drawCircle(5000f, 5000f, 50f, Color.BLUE, 8f); -// mapView.drawLine(4975f, 4975f, 5025f, 5025f, Color.GREEN, 2f); - - // 初始化地图视图 - mapView = view.findViewById(R.id.mapView); - mapView.setOpaque(false); - //创建tencentMap地图对象,可以完成对地图的几乎所有操作 - tencentMap = mapView.getMap(); - - return view; - } - - - /** - * mapview的生命周期管理 - */ - @Override - public void onStart() { - super.onStart(); - mapView.onStart(); - } - - @Override - public void onResume() { - super.onResume(); - mapView.onResume(); - } - - @Override - public void onPause() { - super.onPause(); - mapView.onPause(); - } - - @Override - public void onStop() { - super.onStop(); - mapView.onStop(); - } - - @Override - public void onDestroy() { - super.onDestroy(); - mapView.onDestroy(); - } -} diff --git a/positions/src/main/java/cc/winboll/studio/positions/fragments/ContactsFragment.java b/positions/src/main/java/cc/winboll/studio/positions/fragments/PositionsFragment.java similarity index 69% rename from positions/src/main/java/cc/winboll/studio/positions/fragments/ContactsFragment.java rename to positions/src/main/java/cc/winboll/studio/positions/fragments/PositionsFragment.java index 16b3880..75cfea5 100644 --- a/positions/src/main/java/cc/winboll/studio/positions/fragments/ContactsFragment.java +++ b/positions/src/main/java/cc/winboll/studio/positions/fragments/PositionsFragment.java @@ -14,18 +14,19 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import cc.winboll.studio.positions.R; +import androidx.appcompat.widget.Toolbar; -public class ContactsFragment extends Fragment { +public class PositionsFragment extends Fragment { public static final String TAG = "ContactsFragment"; private static final String ARG_PAGE = "ARG_PAGE"; private int mPage; - public static ContactsFragment newInstance(int page) { + public static PositionsFragment newInstance(int page) { Bundle args = new Bundle(); args.putInt(ARG_PAGE, page); - ContactsFragment fragment = new ContactsFragment(); + PositionsFragment fragment = new PositionsFragment(); fragment.setArguments(args); return fragment; } @@ -42,9 +43,10 @@ public class ContactsFragment extends Fragment { @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_contacts, container, false); - TextView textView = view.findViewById(R.id.page_text); - textView.setText("这是第 " + mPage + " 页"); - return view; + View viewMain = inflater.inflate(R.layout.fragment_positions, container, false); + Toolbar toolbar = viewMain.findViewById(R.id.toolbar); + getActivity().getMenuInflater().inflate(R.menu.toolbar_positions, toolbar.getMenu()); + + return viewMain; } } diff --git a/positions/src/main/java/cc/winboll/studio/positions/fragments/TXMSFragment.java b/positions/src/main/java/cc/winboll/studio/positions/fragments/TXMSFragment.java index 38b65d5..7c12cdc 100644 --- a/positions/src/main/java/cc/winboll/studio/positions/fragments/TXMSFragment.java +++ b/positions/src/main/java/cc/winboll/studio/positions/fragments/TXMSFragment.java @@ -71,10 +71,11 @@ import com.tencent.tencentmap.mapsdk.maps.TencentMap; import com.tencent.tencentmap.mapsdk.maps.TextureMapView; public class TXMSFragment extends Fragment implements EasyPermissions.PermissionCallbacks,LocationSource, TencentLocationListener { - + public static final String TAG = "TXMSFragment"; - - + + private static final int PERMISSION_REQUEST_CODE = 1; + private static final String ARG_PAGE = "ARG_PAGE"; private int mPage; private TextureMapView mapView; @@ -90,7 +91,7 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission public static TXMSFragment newInstance(int page) { Bundle args = new Bundle(); args.putInt(ARG_PAGE, page); - TXMSFragment fragment = new GmsFragment(); + TXMSFragment fragment = new TXMSFragment(); fragment.setArguments(args); return fragment; } @@ -98,7 +99,7 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - if (getArguments()!= null) { + if (getArguments() != null) { mPage = getArguments().getInt(ARG_PAGE); } } @@ -107,14 +108,11 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View viewRoot = inflater.inflate(R.layout.fragment_gms, container, false); + View viewRoot = inflater.inflate(R.layout.fragment_txms, container, false); locationJsonList = new ArrayList(); - mLogView = viewRoot.findViewById(R.id.logview); - mLogView.start(); - - TencentMapInitializer.setAgreePrivacy(this, true); - TencentMapInitializer.start(this); + TencentMapInitializer.setAgreePrivacy(getActivity(), true); + TencentMapInitializer.start(getActivity()); TencentLocationManager.setUserAgreePrivacy(true); @@ -123,13 +121,13 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission //创建tencentMap地图对象,可以完成对地图的几乎所有操作 tencentMap = mapView.getMap(); - FloatingActionButton fab = viewRoot.findViewById(R.id.fab); - fab.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - Snackbar.make(view, "点击了悬浮按钮", Snackbar.LENGTH_LONG).show(); - } - }); +// FloatingActionButton fab = viewRoot.findViewById(R.id.fab); +// fab.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View view) { +// Snackbar.make(view, "点击了悬浮按钮", Snackbar.LENGTH_LONG).show(); +// } +// }); mtvInfo = viewRoot.findViewById(R.id.tv_info); @@ -169,10 +167,11 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission } }); + loadLocations(); return viewRoot; } - + void loadLocations() { // 存储位置数据 // Location location = new Location("gps"); @@ -186,7 +185,7 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission // LocationFileStorage.saveToFile(this, locations); // 读取数据 - locationJsonList = LocationFileStorage.loadFromFile(this); + locationJsonList = LocationFileStorage.loadFromFile(getActivity()); for (LocationJson lj : locationJsonList) { tencentMap.addMarker(new MarkerOptions(toTencentLatLng(lj.toLocation()))); @@ -204,7 +203,7 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission // 方式1:保存到文件 //List locations = new ArrayList<>(); locationJsonList.add(new LocationJson(location)); - LocationFileStorage.saveToFile(this, locationJsonList); + LocationFileStorage.saveToFile(getActivity(), locationJsonList); // 读取数据 // List loaded = LocationFileStorage.loadFromFile(this); @@ -282,18 +281,6 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission super.onDestroy(); mapView.onDestroy(); } - - - @Override - protected void onPostCreate(Bundle savedInstanceState) { - super.onPostCreate(savedInstanceState); -// LatLng center = new LatLng(39.904556, 116.427242); -// tencentMap.moveCamera( -// CameraUpdateFactory.newLatLngZoom(center, 13f) // 注意 13 → 13f -// ); - loadLocations(); - } - /** * 设置定位图标样式 @@ -334,7 +321,7 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission */ private void initLocation() { //用于访问腾讯定位服务的类, 周期性向客户端提供位置更新 - locationManager = TencentLocationManager.getInstance(this); + locationManager = TencentLocationManager.getInstance(getActivity()); //设置坐标系 locationManager.setCoordinateType(TencentLocationManager.COORDINATE_TYPE_GCJ02); //创建定位请求 @@ -369,7 +356,7 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission locationChangedListener.onLocationChanged(location); //显示回调的实时位置信息 - runOnUiThread(new Runnable() { + getActivity().runOnUiThread(new Runnable() { @Override public void run() { // Rules.getEffectInfo(location); @@ -401,13 +388,13 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission int err = locationManager.requestLocationUpdates(locationRequest, this, Looper.myLooper()); switch (err) { case 1: - Toast.makeText(this, "设备缺少使用腾讯定位服务需要的基本条件", Toast.LENGTH_SHORT).show(); + Toast.makeText(getActivity(), "设备缺少使用腾讯定位服务需要的基本条件", Toast.LENGTH_SHORT).show(); break; case 2: - Toast.makeText(this, "manifest 中配置的 key 不正确", Toast.LENGTH_SHORT).show(); + Toast.makeText(getActivity(), "manifest 中配置的 key 不正确", Toast.LENGTH_SHORT).show(); break; case 3: - Toast.makeText(this, "自动加载libtencentloc.so失败", Toast.LENGTH_SHORT).show(); + Toast.makeText(getActivity(), "自动加载libtencentloc.so失败", Toast.LENGTH_SHORT).show(); break; default: @@ -434,9 +421,9 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission } private void checkLocationPermission() { - if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED - || ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(this, + if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED + || ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_REQUEST_CODE); } else { @@ -452,10 +439,10 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission //startLocationUpdates(); } else { // 用户拒绝了权限请求 - Toast.makeText(this, "请授予定位权限", Toast.LENGTH_SHORT).show(); + Toast.makeText(getActivity(), "请授予定位权限", Toast.LENGTH_SHORT).show(); } } } - - + + } diff --git a/positions/src/main/java/cc/winboll/studio/positions/fragments/TasksFragment.java b/positions/src/main/java/cc/winboll/studio/positions/fragments/TasksFragment.java new file mode 100644 index 0000000..89d1a30 --- /dev/null +++ b/positions/src/main/java/cc/winboll/studio/positions/fragments/TasksFragment.java @@ -0,0 +1,59 @@ +package cc.winboll.studio.positions.fragments; + +/** + * @Author ZhanGSKen@AliYun.Com + * @Date 2025/02/20 12:57:00 + * @Describe 拨号 + */ +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import androidx.fragment.app.Fragment; +import cc.winboll.studio.positions.R; +import cc.winboll.studio.libappbase.LogView; +import androidx.annotation.Nullable; +import androidx.annotation.NonNull; +import android.graphics.Color; +import android.widget.TextView; +import cc.winboll.studio.positions.views.GridMapView; +import com.tencent.tencentmap.mapsdk.maps.MapView; +import com.tencent.tencentmap.mapsdk.maps.TencentMap; +import com.tencent.tencentmap.mapsdk.maps.TextureMapView; +import androidx.appcompat.widget.Toolbar; + +public class TasksFragment extends Fragment { + + public static final String TAG = "GmsFragment"; + + private static final String ARG_PAGE = "ARG_PAGE"; + private int mPage; + + public static TasksFragment newInstance(int page) { + Bundle args = new Bundle(); + args.putInt(ARG_PAGE, page); + TasksFragment fragment = new TasksFragment(); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments()!= null) { + mPage = getArguments().getInt(ARG_PAGE); + } + } + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + View viewMain = inflater.inflate(R.layout.fragment_tasks, container, false); + Toolbar toolbar = viewMain.findViewById(R.id.toolbar); + getActivity().getMenuInflater().inflate(R.menu.toolbar_tasks, toolbar.getMenu()); + + + return viewMain; + } +} diff --git a/positions/src/main/res/layout/activity_main2.xml b/positions/src/main/res/layout/activity_main.xml similarity index 75% rename from positions/src/main/res/layout/activity_main2.xml rename to positions/src/main/res/layout/activity_main.xml index 5376c86..4ce52f2 100644 --- a/positions/src/main/res/layout/activity_main2.xml +++ b/positions/src/main/res/layout/activity_main.xml @@ -7,21 +7,21 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + android:layout_height="400dp" + android:id="@+id/frameLayout"/> + android:id="@+id/viewPager"/> + android:id="@+id/tabLayout"/> diff --git a/positions/src/main/res/layout/fragment_log.xml b/positions/src/main/res/layout/fragment_log.xml index 7636182..2be3b39 100644 --- a/positions/src/main/res/layout/fragment_log.xml +++ b/positions/src/main/res/layout/fragment_log.xml @@ -5,8 +5,10 @@ android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> - + + + diff --git a/positions/src/main/res/layout/fragment_contacts.xml b/positions/src/main/res/layout/fragment_positions.xml similarity index 66% rename from positions/src/main/res/layout/fragment_contacts.xml rename to positions/src/main/res/layout/fragment_positions.xml index aeec420..0f70fd2 100644 --- a/positions/src/main/res/layout/fragment_contacts.xml +++ b/positions/src/main/res/layout/fragment_positions.xml @@ -6,10 +6,14 @@ android:layout_width="match_parent" android:layout_height="match_parent"> + + + android:text="fragment_positions"/> diff --git a/positions/src/main/res/layout/fragment_gms.xml b/positions/src/main/res/layout/fragment_tasks.xml similarity index 50% rename from positions/src/main/res/layout/fragment_gms.xml rename to positions/src/main/res/layout/fragment_tasks.xml index 20cd5c3..4f35eb0 100644 --- a/positions/src/main/res/layout/fragment_gms.xml +++ b/positions/src/main/res/layout/fragment_tasks.xml @@ -6,10 +6,15 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + + + diff --git a/positions/src/main/res/layout/fragment_txms.xml b/positions/src/main/res/layout/fragment_txms.xml index 20d3b56..007b6c0 100644 --- a/positions/src/main/res/layout/fragment_txms.xml +++ b/positions/src/main/res/layout/fragment_txms.xml @@ -6,16 +6,9 @@ android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> - - - + android:layout_height="match_parent"> - - - + diff --git a/positions/src/main/res/menu/toolbar_positions.xml b/positions/src/main/res/menu/toolbar_positions.xml new file mode 100644 index 0000000..34ef902 --- /dev/null +++ b/positions/src/main/res/menu/toolbar_positions.xml @@ -0,0 +1,10 @@ + + + + + + diff --git a/positions/src/main/res/menu/toolbar_tasks.xml b/positions/src/main/res/menu/toolbar_tasks.xml new file mode 100644 index 0000000..d35153f --- /dev/null +++ b/positions/src/main/res/menu/toolbar_tasks.xml @@ -0,0 +1,10 @@ + + + + + +