Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
android
/
dayu
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
d221c9d5
authored
Nov 18, 2024
by
han xu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
地图
parent
017a5e0d
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
181 additions
and
24 deletions
app/src/main/AndroidManifest.xml
app/src/main/res/xml/network_security_config.xml
locationComponent/src/main/java/com/dayu/location/base/LocationUtils.java
orderCenter/src/main/java/com/dayu/order/ui/adapter/OrderAdapter.java
orderCenter/src/main/java/com/dayu/order/ui/fragment/MultiOrderDetailFragment.java
app/src/main/AndroidManifest.xml
View file @
d221c9d5
...
...
@@ -82,10 +82,10 @@
android:resizeableActivity=
"false"
tools:ignore=
"GoogleAppIndexingWarning"
android:requestLegacyExternalStorage=
"true"
android:networkSecurityConfig=
"@xml/network_security_config"
tools:replace=
"android:label,icon,theme,allowBackup"
>
<provider
android:name=
"androidx.core.content.FileProvider"
android:authorities=
"com.dayu.bigfish.fileProvider"
...
...
@@ -224,12 +224,15 @@
<uses-permission
android:name=
"com.huawei.android.launcher.permission.CHANGE_BADGE"
/>
<uses-permission
android:name=
"android.permission.QUERY_ALL_PACKAGES"
tools:ignore=
"QueryAllPackagesPermission"
/>
<queries>
<package
android:name=
"com.tencent.mm"
/>
<package
android:name=
"com.tencent.mobileqq"
/>
<package
android:name=
"com.sina.weibo"
/>
<package
android:name=
"com.tencent.wework"
/>
</queries>
</manifest>
\ No newline at end of file
app/src/main/res/xml/network_security_config.xml
0 → 100644
View file @
d221c9d5
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config
cleartextTrafficPermitted=
"true"
>
<trust-anchors>
<certificates
src=
"system"
/>
<certificates
src=
"user"
/>
</trust-anchors>
</base-config>
</network-security-config>
\ No newline at end of file
locationComponent/src/main/java/com/dayu/location/base/LocationUtils.java
View file @
d221c9d5
...
...
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint;
import
android.content.ActivityNotFoundException
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.pm.ApplicationInfo
;
import
android.content.pm.PackageInfo
;
import
android.content.pm.PackageManager
;
import
android.location.Address
;
...
...
@@ -162,21 +163,38 @@ public class LocationUtils {
private
static
boolean
isInstallPackage
(
Context
mContext
)
{
PackageManager
packageManager
=
mContext
.
getPackageManager
();
List
<
PackageInfo
>
installedPackages
=
packageManager
.
getInstalledPackages
(
0
);
return
true
;
boolean
isAMapInstalled
=
false
;
for
(
PackageInfo
packageInfo
:
installedPackages
)
{
String
packageName
=
packageInfo
.
packageName
;
if
(
packageName
.
equals
(
"com.autonavi.minimap"
))
{
isAMapInstalled
=
true
;
break
;
}
}
return
isAMapInstalled
;
// boolean isAMapInstalled = false;
// for (PackageInfo packageInfo : installedPackages) {
// String packageName = packageInfo.packageName;
// Log.d("isAMapInstalled", "isInstallPackage: " + packageName);
// if (packageName.equals("com.autonavi.minimap")) {
// isAMapInstalled = true;
// break;
// }
// }
//
// PackageManager pm = mContext.getPackageManager();
// List<ApplicationInfo> apps = pm.getInstalledApplications(0);
//
// for (ApplicationInfo app : apps) {
// String packageName = app.packageName;
// String appName = pm.getApplicationLabel(app).toString();
// // 打印或处理其他信息
// Log.i("InstalledApp", "Package Name: " + packageName + ", App Name: " + appName);
// }
//// return isAMapInstalled;
//
// String packageName = "com.autonavi.minimap";
//
// try {
// // 检查设备是否已安装高德地图应用
// packageManager.getPackageInfo("com.autonavi.minimap", 0);
// return true;
//
// PackageInfo packageInfo = mContext.getPackageManager().getPackageInfo(packageName, 0);
// // 如果获取到包信息,返回true,说明应用已安装
// return packageInfo != null;
//
//// return true;
// } catch (PackageManager.NameNotFoundException e) {
// e.printStackTrace();
// return false;
...
...
@@ -188,8 +206,52 @@ public class LocationUtils {
Intent
intent
=
new
Intent
(
"android.intent.action.VIEW"
,
android
.
net
.
Uri
.
parse
(
"androidamap://poi?sourceApplication=softname&keywords="
+
address
));
intent
.
setPackage
(
"com.autonavi.minimap"
);
try
{
mContext
.
startActivity
(
intent
);
}
catch
(
ActivityNotFoundException
e
)
{
e
.
printStackTrace
();
listener
.
openMarket
();
}
}
else
{
listener
.
openMarket
();
}
}
public
static
void
openMap_gaode
(
Context
mContext
,
String
address
,
OpenMarketListener
listener
)
{
if
(
isInstallPackage
(
mContext
))
{
Intent
intent
=
new
Intent
(
"android.intent.action.VIEW"
,
android
.
net
.
Uri
.
parse
(
"androidamap://poi?sourceApplication=softname&keywords="
+
address
));
intent
.
setPackage
(
"com.autonavi.minimap"
);
intent
.
addCategory
(
"android.intent.category.DEFAULT"
);
mContext
.
startActivity
(
intent
);
try
{
mContext
.
startActivity
(
intent
);
}
catch
(
ActivityNotFoundException
e
)
{
e
.
printStackTrace
();
listener
.
openMarket
();
}
}
else
{
listener
.
openMarket
();
}
}
public
static
void
openMap_baidu
(
Context
mContext
,
String
address
,
OpenMarketListener
listener
)
{
if
(
isInstallPackage
(
mContext
))
{
Intent
intent
=
new
Intent
();
intent
.
setData
(
Uri
.
parse
(
"baidumap://map/direction?destination="
+
address
+
"&mode=driving&sy=0&index=0&target=1"
));
intent
.
setPackage
(
"com.baidu.BaiduMap"
);
try
{
mContext
.
startActivity
(
intent
);
}
catch
(
ActivityNotFoundException
e
)
{
e
.
printStackTrace
();
listener
.
openMarket
();
}
}
else
{
listener
.
openMarket
();
}
...
...
@@ -204,6 +266,24 @@ public class LocationUtils {
e
.
printStackTrace
();
}
}
public
static
void
goToMarket_gaode
(
Context
context
)
{
Uri
uri
=
Uri
.
parse
(
"market://details?id="
+
"com.autonavi.minimap"
);
Intent
goToMarket
=
new
Intent
(
Intent
.
ACTION_VIEW
,
uri
);
try
{
context
.
startActivity
(
goToMarket
);
}
catch
(
ActivityNotFoundException
e
)
{
e
.
printStackTrace
();
}
}
public
static
void
goToMarket_baidu
(
Context
context
)
{
Uri
uri
=
Uri
.
parse
(
"market://details?id="
+
"com.baidu.BaiduMap"
);
Intent
goToMarket
=
new
Intent
(
Intent
.
ACTION_VIEW
,
uri
);
try
{
context
.
startActivity
(
goToMarket
);
}
catch
(
ActivityNotFoundException
e
)
{
e
.
printStackTrace
();
}
}
public
interface
OpenMarketListener
{
void
openMarket
();
...
...
orderCenter/src/main/java/com/dayu/order/ui/adapter/OrderAdapter.java
View file @
d221c9d5
...
...
@@ -8,6 +8,7 @@ import android.Manifest;
import
android.app.Activity
;
import
android.content.BroadcastReceiver
;
import
android.content.Context
;
import
android.content.DialogInterface
;
import
android.content.Intent
;
import
android.content.IntentFilter
;
import
android.graphics.Color
;
...
...
@@ -20,6 +21,9 @@ import android.util.Log;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.LinearLayout
;
import
android.widget.Toast
;
import
androidx.appcompat.app.AlertDialog
;
import
com.alibaba.android.arouter.launcher.ARouter
;
import
com.bigkoo.pickerview.builder.OptionsPickerBuilder
;
...
...
@@ -119,7 +123,8 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
holder
.
orderLineOne
.
setVisibility
(
View
.
VISIBLE
);
holder
.
orderLineTwo
.
setVisibility
(
View
.
VISIBLE
);
holder
.
tvItemProcess
.
setVisibility
(
View
.
VISIBLE
);
holder
.
navigation
.
setOnClickListener
(
v
->
LocationUtils
.
openMap
(
mContext
,
address
,
this
::
showOpenMarketDialog
));
// holder.navigation.setOnClickListener(v -> LocationUtils.openMap(mContext, address, this::showOpenMarketDialog));
holder
.
navigation
.
setOnClickListener
(
v
->
this
.
showOpenMarketDialog_select
(
address
));
holder
.
tvOrderTime
.
setText
(
R
.
string
.
tv_home_tab_one_subscribe_time
);
final
int
id
=
item
.
getId
();
...
...
@@ -932,6 +937,36 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
customDialog
.
show
();
}
private
void
showOpenMarketDialog_select
(
String
address
)
{
final
String
[]
items
={
"高德地图"
,
"百度地图"
};
AlertDialog
dialog
=
new
AlertDialog
.
Builder
(
getContext
()).
setItems
(
items
,
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
// Toast.makeText(getContext(), items[which], Toast.LENGTH_SHORT).show();
//复杂的业务逻辑
// Mytask( items[which]);
switch
(
which
){
case
0
:{
LocationUtils
.
openMap_gaode
(
mContext
,
address
,
OrderAdapter
.
this
::
showOpenMarketDialog
);
break
;
}
case
1
:{
LocationUtils
.
openMap_baidu
(
mContext
,
address
,
OrderAdapter
.
this
::
showOpenMarketDialog
);
break
;
}
default
:
}
}
}).
create
();
dialog
.
setTitle
(
"选择打开地图:"
);
dialog
.
show
();
}
private
void
showOpenMarketDialog
()
{
CustomDialog
customDialog
=
new
CustomDialog
(
mContext
,
R
.
style
.
CustomDialog
,
UIUtils
.
getString
(
R
.
string
.
download_gaode_notice
)
,
(
dialog
,
confirm
)
->
{
...
...
@@ -943,6 +978,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
.
setPositiveButton
(
UIUtils
.
getString
(
R
.
string
.
go_download
))
.
setNegativeButton
(
UIUtils
.
getString
(
R
.
string
.
cancle
));
customDialog
.
show
();
}
private
void
showMoblieDialog
(
String
mobile
,
String
tel
,
int
id
)
{
...
...
orderCenter/src/main/java/com/dayu/order/ui/fragment/MultiOrderDetailFragment.java
View file @
d221c9d5
package
com
.
dayu
.
order
.
ui
.
fragment
;
import
android.content.DialogInterface
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.text.TextUtils
;
import
android.view.View
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
android.widget.Toast
;
import
androidx.appcompat.app.AlertDialog
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
com.alibaba.android.arouter.launcher.ARouter
;
...
...
@@ -564,16 +567,40 @@ public class MultiOrderDetailFragment extends BaseFragment<SImplePresenter, Frag
}
private
void
showOpenMarketDialog
()
{
CustomDialog
customDialog
=
new
CustomDialog
(
mActivity
,
R
.
style
.
CustomDialog
,
UIUtils
.
getString
(
R
.
string
.
download_gaode_notice
)
,
(
dialog
,
confirm
)
->
{
if
(
confirm
)
{
LocationUtils
.
goToMarket
(
mActivity
);
// CustomDialog customDialog = new CustomDialog(mActivity, R.style.CustomDialog, UIUtils.getString(R.string.download_gaode_notice)
// , (dialog, confirm) -> {
// if (confirm) {
// LocationUtils.goToMarket(mActivity);
// }
// });
// customDialog.setTitle(UIUtils.getString(R.string.reminder))
// .setPositiveButton(UIUtils.getString(R.string.go_download))
// .setNegativeButton(UIUtils.getString(R.string.cancle));
// customDialog.show();
// 选择项的文字
// String[] items = {"选项1", "选项2", "选项3", "选项4"};
// 记录选择状态的布尔数组
// boolean[] checkedItems = new boolean[items.length];
// 创建AlertDialog.Builder
// AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
final
String
[]
items
={
"打开高德地图"
,
"打开百度地图"
};
AlertDialog
.
Builder
builder
=
new
AlertDialog
.
Builder
(
getContext
());
builder
.
setSingleChoiceItems
(
items
,
0
,
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
Toast
.
makeText
(
getContext
(),
items
[
which
],
Toast
.
LENGTH_SHORT
).
show
();
dialog
.
dismiss
();
}
});
customDialog
.
setTitle
(
UIUtils
.
getString
(
R
.
string
.
reminder
))
.
setPositiveButton
(
UIUtils
.
getString
(
R
.
string
.
go_download
))
.
setNegativeButton
(
UIUtils
.
getString
(
R
.
string
.
cancle
));
customDialog
.
show
();
AlertDialog
dialog
=
builder
.
create
();
dialog
.
show
();
}
public
String
getStaus
(
int
staus
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment