mirror of
https://github.com/awfixers-stuff/OwnDroid.git
synced 2026-03-23 19:15:58 +00:00
86 lines
2.7 KiB
Kotlin
86 lines
2.7 KiB
Kotlin
package com.bintianqi.owndroid
|
|
|
|
import android.app.admin.DevicePolicyManager
|
|
import android.content.*
|
|
import android.net.Uri
|
|
import android.widget.Toast
|
|
import androidx.activity.ComponentActivity
|
|
import androidx.activity.result.ActivityResultLauncher
|
|
import androidx.activity.result.contract.ActivityResultContracts
|
|
import com.bintianqi.owndroid.dpm.addDeviceAdmin
|
|
import com.bintianqi.owndroid.dpm.createManagedProfile
|
|
import java.io.FileNotFoundException
|
|
import java.io.IOException
|
|
import java.io.InputStream
|
|
|
|
lateinit var getFile: ActivityResultLauncher<Intent>
|
|
var fileUri: Uri? = null
|
|
|
|
var zhCN = true
|
|
|
|
fun uriToStream(
|
|
context: Context,
|
|
uri: Uri?,
|
|
operation:(stream: InputStream)->Unit
|
|
){
|
|
if(uri!=null){
|
|
try{
|
|
val stream = context.contentResolver.openInputStream(uri)
|
|
if(stream!=null) { operation(stream) }
|
|
stream?.close()
|
|
}
|
|
catch(e: FileNotFoundException){ Toast.makeText(context, R.string.file_not_exist, Toast.LENGTH_SHORT).show() }
|
|
catch(e: IOException){ Toast.makeText(context, R.string.io_exception, Toast.LENGTH_SHORT).show() }
|
|
}
|
|
}
|
|
|
|
fun List<Any>.toText():String{
|
|
var output = ""
|
|
var isFirst = true
|
|
for(each in listIterator()){
|
|
if(isFirst){isFirst=false}else{output+="\n"}
|
|
output+=each
|
|
}
|
|
return output
|
|
}
|
|
|
|
fun Set<Any>.toText():String{
|
|
var output = ""
|
|
var isFirst = true
|
|
for(each in iterator()){
|
|
if(isFirst){isFirst=false}else{output+="\n"}
|
|
output+=each
|
|
}
|
|
return output
|
|
}
|
|
|
|
fun writeClipBoard(context: Context, string: String):Boolean{
|
|
val clipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
|
try {
|
|
clipboardManager.setPrimaryClip(ClipData.newPlainText("", string))
|
|
}catch(e:Exception){
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
|
|
fun registerActivityResult(context: ComponentActivity){
|
|
getFile = context.registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {activityResult ->
|
|
activityResult.data.let {
|
|
if(it==null){
|
|
Toast.makeText(context.applicationContext, R.string.file_not_exist, Toast.LENGTH_SHORT).show()
|
|
}else{
|
|
fileUri = it.data
|
|
}
|
|
}
|
|
}
|
|
createManagedProfile = context.registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {}
|
|
addDeviceAdmin = context.registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
|
|
val dpm = context.applicationContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
|
if(dpm.isAdminActive(ComponentName(context.applicationContext, Receiver::class.java))){
|
|
backToHome = true
|
|
}
|
|
}
|
|
}
|