mirror of
https://github.com/pppscn/SmsForwarder
synced 2025-08-02 08:57:40 +08:00
修复:未授权访问应用列表时进入应用列表异常提示 #577
This commit is contained in:
parent
f49310027e
commit
8b37862121
@ -342,7 +342,7 @@ dependencies {
|
||||
testImplementation "androidx.paging:paging-common-ktx:$paging_version"
|
||||
|
||||
//权限请求框架:https://github.com/getActivity/XXPermissions
|
||||
implementation 'com.github.getActivity:XXPermissions:18.62'
|
||||
implementation 'com.github.getActivity:XXPermissions:20.0'
|
||||
//语种切换框架:https://github.com/getActivity/MultiLanguages
|
||||
implementation 'com.github.getActivity:MultiLanguages:b47f7be' //9.3
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
android:name="android.hardware.telephony"
|
||||
android:required="false" />
|
||||
|
||||
<uses-permission android:name="com.android.permission.GET_INSTALLED_APPS" />
|
||||
<uses-permission
|
||||
android:name="android.permission.QUERY_ALL_PACKAGES"
|
||||
tools:ignore="QueryAllPackagesPermission" />
|
||||
@ -157,10 +158,6 @@
|
||||
<data android:scheme="https" />
|
||||
<data android:scheme="about" />
|
||||
<data android:scheme="javascript" />
|
||||
<!-- 设置自己的deeplink -->
|
||||
<!-- <data-->
|
||||
<!-- android:host="xxx.com"-->
|
||||
<!-- android:scheme="xui"/>-->
|
||||
</intent-filter>
|
||||
<!-- AppLink -->
|
||||
<intent-filter
|
||||
|
@ -51,6 +51,7 @@ import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.callback.DownloadProgressCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import com.xuexiang.xui.XUI.getContext
|
||||
import com.xuexiang.xui.utils.ResUtils
|
||||
import com.xuexiang.xui.utils.ThemeUtils
|
||||
import com.xuexiang.xui.utils.ViewUtils
|
||||
@ -207,10 +208,6 @@ class MainActivity : BaseActivity<ActivityMainBinding?>(), DrawerAdapter.OnItemS
|
||||
private fun initSlidingMenu(savedInstanceState: Bundle?) {
|
||||
mSlidingRootNav = SlidingRootNavBuilder(this).withGravity(if (ResUtils.isRtl(this)) SlideGravity.RIGHT else SlideGravity.LEFT).withMenuOpened(false).withContentClickableWhenMenuOpened(false).withSavedState(savedInstanceState).withMenuLayout(R.layout.menu_left_drawer).inject()
|
||||
mLLMenu = mSlidingRootNav.layout.findViewById(R.id.ll_menu)
|
||||
//val ivQrcode = mSlidingRootNav.layout.findViewById<AppCompatImageView>(R.id.iv_qrcode)
|
||||
//ivQrcode.setOnClickListener { openNewPage(SettingsFragment::class.java) }
|
||||
//val ivSetting = mSlidingRootNav.layout.findViewById<AppCompatImageView>(R.id.iv_setting)
|
||||
//ivSetting.setOnClickListener { openNewPage(SettingsFragment::class.java) }
|
||||
ViewUtils.setVisibility(mLLMenu, false)
|
||||
mAdapter = DrawerAdapter(
|
||||
mutableListOf(
|
||||
@ -243,25 +240,6 @@ class MainActivity : BaseActivity<ActivityMainBinding?>(), DrawerAdapter.OnItemS
|
||||
|
||||
override fun onDragEnd(isMenuOpened: Boolean) {
|
||||
ViewUtils.setVisibility(mLLMenu, isMenuOpened)
|
||||
/*if (isMenuOpened) {
|
||||
if (!GuideCaseView.isShowOnce(this@MainActivity, getString(R.string.guide_key_sliding_root_navigation))) {
|
||||
val guideStep1 = GuideCaseView.Builder(this@MainActivity)
|
||||
.title("点击进入,可切换主题样式哦~~")
|
||||
.titleSize(18, TypedValue.COMPLEX_UNIT_SP)
|
||||
.focusOn(ivSetting)
|
||||
.build()
|
||||
val guideStep2 = GuideCaseView.Builder(this@MainActivity)
|
||||
.title("点击进入,扫码关注哦~~")
|
||||
.titleSize(18, TypedValue.COMPLEX_UNIT_SP)
|
||||
.focusOn(ivQrcode)
|
||||
.build()
|
||||
GuideCaseQueue()
|
||||
.add(guideStep1)
|
||||
.add(guideStep2)
|
||||
.show()
|
||||
GuideCaseView.setShowOnce(this@MainActivity, getString(R.string.guide_key_sliding_root_navigation))
|
||||
}
|
||||
}*/
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -302,14 +280,26 @@ class MainActivity : BaseActivity<ActivityMainBinding?>(), DrawerAdapter.OnItemS
|
||||
}
|
||||
|
||||
POS_APPS -> {
|
||||
if (App.UserAppList.isEmpty() && App.SystemAppList.isEmpty()) {
|
||||
XToastUtils.info(getString(R.string.loading_app_list))
|
||||
val request = OneTimeWorkRequestBuilder<LoadAppListWorker>().build()
|
||||
WorkManager.getInstance(this).enqueue(request)
|
||||
needToAppListFragment = true
|
||||
return
|
||||
}
|
||||
openNewPage(AppListFragment::class.java)
|
||||
//检查读取应用列表权限是否获取
|
||||
XXPermissions.with(this).permission(Permission.GET_INSTALLED_APPS).request(object : OnPermissionCallback {
|
||||
override fun onGranted(permissions: MutableList<String>, allGranted: Boolean) {
|
||||
if (App.UserAppList.isEmpty() && App.SystemAppList.isEmpty()) {
|
||||
XToastUtils.info(getString(R.string.loading_app_list))
|
||||
val request = OneTimeWorkRequestBuilder<LoadAppListWorker>().build()
|
||||
WorkManager.getInstance(getContext()).enqueue(request)
|
||||
needToAppListFragment = true
|
||||
return
|
||||
}
|
||||
openNewPage(AppListFragment::class.java)
|
||||
}
|
||||
|
||||
override fun onDenied(permissions: MutableList<String>, doNotAskAgain: Boolean) {
|
||||
XToastUtils.error(R.string.tips_get_installed_apps)
|
||||
if (doNotAskAgain) {
|
||||
XXPermissions.startPermissionActivity(getContext(), permissions)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
POS_HELP -> AgentWebActivity.goWeb(this, getString(R.string.url_help))
|
||||
@ -389,4 +379,4 @@ class MainActivity : BaseActivity<ActivityMainBinding?>(), DrawerAdapter.OnItemS
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,9 @@ import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.work.OneTimeWorkRequestBuilder
|
||||
import androidx.work.WorkManager
|
||||
import com.hjq.permissions.OnPermissionCallback
|
||||
import com.hjq.permissions.Permission
|
||||
import com.hjq.permissions.XXPermissions
|
||||
import com.idormy.sms.forwarder.App
|
||||
import com.idormy.sms.forwarder.R
|
||||
import com.idormy.sms.forwarder.adapter.AppListAdapter
|
||||
@ -24,11 +27,11 @@ import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener
|
||||
import com.xuexiang.xaop.annotation.SingleClick
|
||||
import com.xuexiang.xpage.annotation.Page
|
||||
import com.xuexiang.xui.XUI
|
||||
import com.xuexiang.xui.utils.DensityUtils
|
||||
import com.xuexiang.xui.utils.ThemeUtils
|
||||
import com.xuexiang.xui.utils.WidgetUtils
|
||||
import com.xuexiang.xui.widget.actionbar.TitleBar
|
||||
import com.xuexiang.xutil.XUtil
|
||||
import com.xuexiang.xutil.resource.ResUtils.getStringArray
|
||||
|
||||
@Suppress("PrivatePropertyName", "DEPRECATION")
|
||||
@ -91,10 +94,10 @@ class AppListFragment : BaseFragment<FragmentAppListBinding?>() {
|
||||
}
|
||||
|
||||
override fun onRefresh(refreshLayout: RefreshLayout) {
|
||||
appListAdapter?.refresh(getAppsList(true))
|
||||
refreshLayout.layout.postDelayed({
|
||||
appListAdapter?.refresh(getAppsList(true))
|
||||
refreshLayout.finishRefresh()
|
||||
}, 3000)
|
||||
}, 1000)
|
||||
}
|
||||
})
|
||||
appListAdapter?.setOnItemClickListener { _, item, _ ->
|
||||
@ -120,12 +123,24 @@ class AppListFragment : BaseFragment<FragmentAppListBinding?>() {
|
||||
|
||||
private fun getAppsList(refresh: Boolean): MutableList<AppInfo> {
|
||||
if (refresh || (currentType == "user" && App.UserAppList.isEmpty()) || (currentType == "system" && App.SystemAppList.isEmpty())) {
|
||||
XToastUtils.info(getString(R.string.loading_app_list))
|
||||
val request = OneTimeWorkRequestBuilder<LoadAppListWorker>().build()
|
||||
WorkManager.getInstance(XUtil.getContext()).enqueue(request)
|
||||
//检查读取应用列表权限是否获取
|
||||
XXPermissions.with(this).permission(Permission.GET_INSTALLED_APPS).request(object : OnPermissionCallback {
|
||||
override fun onGranted(permissions: MutableList<String>, allGranted: Boolean) {
|
||||
XToastUtils.info(getString(R.string.loading_app_list))
|
||||
val request = OneTimeWorkRequestBuilder<LoadAppListWorker>().build()
|
||||
WorkManager.getInstance(XUI.getContext()).enqueue(request)
|
||||
}
|
||||
|
||||
override fun onDenied(permissions: MutableList<String>, doNotAskAgain: Boolean) {
|
||||
XToastUtils.error(R.string.tips_get_installed_apps)
|
||||
if (doNotAskAgain) {
|
||||
XXPermissions.startPermissionActivity(XUI.getContext(), permissions)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return if (currentType == "system") App.SystemAppList else App.UserAppList
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -385,6 +385,7 @@
|
||||
<string name="appicon">App Icon</string>
|
||||
<string name="user_app">User App</string>
|
||||
<string name="system_app">System App</string>
|
||||
<string name="tips_get_installed_apps">Please grant GET_INSTALLED_APPS permission</string>
|
||||
<string name="tips_notification">Please grant Notification permission, in order to keep the App alive!</string>
|
||||
<string name="tips_notification_listener">Please grant Notification reading permission to SmsForwarder, before other Apps\'s notification could be forwarded. Forwarding automatically canceled!</string>
|
||||
<string name="pushplus_website">Official website</string>
|
||||
|
@ -386,6 +386,7 @@
|
||||
<string name="appicon">应用图标</string>
|
||||
<string name="user_app">用户应用</string>
|
||||
<string name="system_app">系统应用</string>
|
||||
<string name="tips_get_installed_apps">请先授予获取应用列表权限</string>
|
||||
<string name="tips_notification">请先授予发送通知权限,有利于《短信转发器》保活!</string>
|
||||
<string name="tips_notification_listener">请先授予《短信转发器》通知使用权,否则无法转发APP通知,已经自动关闭转发!</string>
|
||||
<string name="pushplus_website">官网地址</string>
|
||||
|
@ -380,6 +380,7 @@
|
||||
<string name="appicon">應用圖標</string>
|
||||
<string name="user_app">用戶應用</string>
|
||||
<string name="system_app">系統應用</string>
|
||||
<string name="tips_get_installed_apps">請先授予獲取應用列表權限</string>
|
||||
<string name="tips_notification">請先授予發送通知權限,有利於《簡訊轉發器》保活!</string>
|
||||
<string name="tips_notification_listener">請先授予《簡訊轉發器》通知使用權,否則無法轉發應用程式通知,已經自動關閉轉發!</string>
|
||||
<string name="pushplus_website">官網地址</string>
|
||||
|
@ -413,6 +413,7 @@
|
||||
<string name="appicon">应用图标</string>
|
||||
<string name="user_app">用户应用</string>
|
||||
<string name="system_app">系统应用</string>
|
||||
<string name="tips_get_installed_apps">请先授予获取应用列表权限</string>
|
||||
<string name="tips_notification">请先授予发送通知权限,有利于《短信转发器》保活!</string>
|
||||
<string name="tips_notification_listener">请先授予《短信转发器》通知使用权,否则无法转发APP通知,已经自动关闭转发!</string>
|
||||
<string name="pushplus_website">官网地址</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user