mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-08-03 18:56:44 -04:00
Upgradting leak canary
This commit is contained in:
parent
859bc35eaf
commit
c844eb102d
@ -35,6 +35,7 @@ import android.view.LayoutInflater
|
|||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.app.ActivityCompat
|
import androidx.core.app.ActivityCompat
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
@ -62,7 +63,6 @@ import org.kiwix.kiwixmobile.webserver.wifi_hotspot.HotspotService
|
|||||||
import org.kiwix.kiwixmobile.webserver.wifi_hotspot.HotspotService.ACTION_CHECK_IP_ADDRESS
|
import org.kiwix.kiwixmobile.webserver.wifi_hotspot.HotspotService.ACTION_CHECK_IP_ADDRESS
|
||||||
import org.kiwix.kiwixmobile.webserver.wifi_hotspot.HotspotService.ACTION_START_SERVER
|
import org.kiwix.kiwixmobile.webserver.wifi_hotspot.HotspotService.ACTION_START_SERVER
|
||||||
import org.kiwix.kiwixmobile.webserver.wifi_hotspot.HotspotService.ACTION_STOP_SERVER
|
import org.kiwix.kiwixmobile.webserver.wifi_hotspot.HotspotService.ACTION_STOP_SERVER
|
||||||
import java.util.ArrayList
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class ZimHostFragment : BaseFragment(), ZimHostCallbacks, ZimHostContract.View {
|
class ZimHostFragment : BaseFragment(), ZimHostCallbacks, ZimHostContract.View {
|
||||||
@ -140,6 +140,11 @@ class ZimHostFragment : BaseFragment(), ZimHostCallbacks, ZimHostContract.View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
startServerButton.setOnClickListener {
|
startServerButton.setOnClickListener {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU ||
|
||||||
|
checkNearbyWifiDevicesPermission()
|
||||||
|
) {
|
||||||
|
startStopServer()
|
||||||
|
}
|
||||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P || checkCoarseLocationAccessPermission()) {
|
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P || checkCoarseLocationAccessPermission()) {
|
||||||
startStopServer()
|
startStopServer()
|
||||||
}
|
}
|
||||||
@ -169,6 +174,33 @@ class ZimHostFragment : BaseFragment(), ZimHostCallbacks, ZimHostContract.View {
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun checkNearbyWifiDevicesPermission(): Boolean =
|
||||||
|
if (ContextCompat.checkSelfPermission(
|
||||||
|
requireActivity(),
|
||||||
|
Manifest.permission.NEARBY_WIFI_DEVICES
|
||||||
|
) == PackageManager.PERMISSION_DENIED
|
||||||
|
) {
|
||||||
|
if (ActivityCompat.shouldShowRequestPermissionRationale(
|
||||||
|
requireActivity(),
|
||||||
|
Manifest.permission.NEARBY_WIFI_DEVICES
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
|
alertDialogShower.show(
|
||||||
|
KiwixDialog.NearbyWifiPermissionRationaleOnHostZimFile,
|
||||||
|
::askNearbyWifiDevicesPermission
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
|
askNearbyWifiDevicesPermission()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
false
|
||||||
|
} else {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
override fun onRequestPermissionsResult(
|
override fun onRequestPermissionsResult(
|
||||||
requestCode: Int,
|
requestCode: Int,
|
||||||
permissions: Array<out String>,
|
permissions: Array<out String>,
|
||||||
@ -189,6 +221,14 @@ class ZimHostFragment : BaseFragment(), ZimHostCallbacks, ZimHostContract.View {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||||
|
private fun askNearbyWifiDevicesPermission() {
|
||||||
|
ActivityCompat.requestPermissions(
|
||||||
|
requireActivity(), arrayOf(Manifest.permission.NEARBY_WIFI_DEVICES),
|
||||||
|
PERMISSION_REQUEST_CODE_COARSE_LOCATION
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
private fun startStopServer() {
|
private fun startStopServer() {
|
||||||
when {
|
when {
|
||||||
ServerUtils.isServerStarted -> stopServer()
|
ServerUtils.isServerStarted -> stopServer()
|
||||||
|
@ -52,7 +52,7 @@ object Versions {
|
|||||||
|
|
||||||
const val javax_annotation_api: String = "1.3.2"
|
const val javax_annotation_api: String = "1.3.2"
|
||||||
|
|
||||||
const val leakcanary_android: String = "2.5"
|
const val leakcanary_android: String = "2.9.1"
|
||||||
|
|
||||||
const val constraintlayout: String = "2.0.4"
|
const val constraintlayout: String = "2.0.4"
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ package org.kiwix.kiwixmobile.core.downloader.fetch
|
|||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.app.NotificationChannel
|
import android.app.NotificationChannel
|
||||||
import android.app.NotificationManager
|
import android.app.NotificationManager
|
||||||
|
import android.app.PendingIntent.FLAG_IMMUTABLE
|
||||||
import android.app.PendingIntent.FLAG_UPDATE_CURRENT
|
import android.app.PendingIntent.FLAG_UPDATE_CURRENT
|
||||||
import android.app.PendingIntent.getActivity
|
import android.app.PendingIntent.getActivity
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
@ -119,7 +120,12 @@ class FetchDownloadNotificationManager(context: Context) :
|
|||||||
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
putExtra(DOWNLOAD_NOTIFICATION_TITLE, downloadNotification.title)
|
putExtra(DOWNLOAD_NOTIFICATION_TITLE, downloadNotification.title)
|
||||||
}
|
}
|
||||||
notificationBuilder.setContentIntent(getActivity(context, 0, internal, FLAG_UPDATE_CURRENT))
|
val pendingIntent = if (Build.VERSION.SDK_INT >= VERSION_CODES.S) {
|
||||||
|
getActivity(context, 0, internal, FLAG_IMMUTABLE or FLAG_UPDATE_CURRENT)
|
||||||
|
} else {
|
||||||
|
getActivity(context, 0, internal, FLAG_UPDATE_CURRENT)
|
||||||
|
}
|
||||||
|
notificationBuilder.setContentIntent(pendingIntent)
|
||||||
notificationBuilder.setAutoCancel(true)
|
notificationBuilder.setAutoCancel(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,6 +56,13 @@ sealed class KiwixDialog(
|
|||||||
android.R.string.cancel
|
android.R.string.cancel
|
||||||
)
|
)
|
||||||
|
|
||||||
|
object NearbyWifiPermissionRationaleOnHostZimFile : KiwixDialog(
|
||||||
|
null,
|
||||||
|
R.string.permission_rationale_location_on_host_zim_file,
|
||||||
|
android.R.string.yes,
|
||||||
|
android.R.string.cancel
|
||||||
|
)
|
||||||
|
|
||||||
object StoragePermissionRationale : KiwixDialog(
|
object StoragePermissionRationale : KiwixDialog(
|
||||||
null,
|
null,
|
||||||
R.string.request_storage,
|
R.string.request_storage,
|
||||||
|
@ -236,6 +236,7 @@
|
|||||||
<string name="connection_failed" tools:keep="@string/connection_failed">Connection failed</string>
|
<string name="connection_failed" tools:keep="@string/connection_failed">Connection failed</string>
|
||||||
<string name="permission_rationale_location">Location permission is required by Android to allow the app to detect peer devices</string>
|
<string name="permission_rationale_location">Location permission is required by Android to allow the app to detect peer devices</string>
|
||||||
<string name="permission_rationale_location_on_host_zim_file">Location permission is required by Android to allow the app to Host Zim files</string>
|
<string name="permission_rationale_location_on_host_zim_file">Location permission is required by Android to allow the app to Host Zim files</string>
|
||||||
|
<string name="permission_rationale_nearby_device_on_host_zim_file">Nearby wifi devices permission is required by Android to allow the app to Host Zim files</string>
|
||||||
<string name="permission_refused_location" tools:keep="@string/permission_refused_location">Cannot locate peer devices without location permissions</string>
|
<string name="permission_refused_location" tools:keep="@string/permission_refused_location">Cannot locate peer devices without location permissions</string>
|
||||||
<string name="permission_refused_storage" tools:keep="@string/permission_refused_storage">Cannot access zim files without storage permission</string>
|
<string name="permission_refused_storage" tools:keep="@string/permission_refused_storage">Cannot access zim files without storage permission</string>
|
||||||
<string name="request_enable_location">Enable location to allow detection of peers</string>
|
<string name="request_enable_location">Enable location to allow detection of peers</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user