Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
galenzhao committed Jun 20, 2024
1 parent e3c6dfb commit 257211a
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 25 deletions.
15 changes: 14 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ buildscript {
}
}
dependencies {
classpath 'com.android.tools.build:gradle:8.2.1'
classpath 'com.android.tools.build:gradle:8.2.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

// NOTE: Do not place your application dependencies here; they belong
Expand All @@ -26,6 +26,19 @@ allprojects {
google()
jcenter()
}
// This code is where all the magic happens and fixes the error.
subprojects {
afterEvaluate { project ->
if (project.hasProperty('android')) {
project.android {
if (namespace == null) {
namespace project.group
}
}
}
}
}
// This code is where all the magic happens and fixes the error.
}

task clean(type: Delete) {
Expand Down
1 change: 1 addition & 0 deletions screen_mirror/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.activity:activity-ktx:1.3.1'
api 'androidx.activity:activity-ktx:1.4.0'

implementation 'io.bimmergestalt:IDriveConnectKitAndroid:0.6'
implementation project(path: ':lib')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ class CarAppService: Service() {

wl.release()
} else if (settingsViewer[AppSettings.KEYS.AUTO_PERMISSION].toInt()%100 == 21) {
MainController(applicationContext).promptPermission(true)
// MainController(applicationContext).promptPermission(true)
}else if (settingsViewer[AppSettings.KEYS.AUTO_PERMISSION].toInt()%100 == 31) {
val fullScreenIntent = Intent(applicationContext, RequestActivity::class.java)
val fullScreenPendingIntent = PendingIntent.getActivity(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,11 @@ import android.widget.Toast

import android.app.AppOpsManager
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Process

import android.content.pm.PackageManager

import android.view.View
import android.view.inputmethod.InputMethodManager
import android.widget.Button
import android.widget.TextView
import android.widget.Toast

import androidx.activity.viewModels
import android.app.AppOpsManager
import android.content.Intent
import android.net.Uri
import android.os.Process
import android.provider.Settings.ACTION_MANAGE_OVERLAY_PERMISSION
import android.provider.Settings.canDrawOverlays
import androidx.activity.viewModels
Expand All @@ -41,11 +30,12 @@ import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts.RequestPermission
import android.content.Context
import android.os.Build
import androidx.activity.ComponentActivity
import androidx.annotation.RequiresApi

const val TAG = "ScreenMirroring"

class MainActivity : AppCompatActivity() {
class MainActivity : ComponentActivity() {
val controller by lazy { MainController(this) }
val viewModel by viewModels<MainModel>{ MainModel.Factory(this.applicationContext) }

Expand Down Expand Up @@ -204,7 +194,7 @@ class MainActivity : AppCompatActivity() {
if (settingsViewer[AppSettings.KEYS.AUTO_PERMISSION].isNotEmpty() && settingsViewer[AppSettings.KEYS.AUTO_PERMISSION].toInt() > 100) {
val appOps = getSystemService(AppOpsManager::class.java)
println("PROJECT_MEDIA appops: ${appOps.checkOpNoThrow("android:project_media", Process.myUid(), packageName)}")
controller.promptPermission(false)
controller.promptMirroringPermission()
}
}
}else{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,6 @@ class MainController(val activity: Activity) {

companion object {
const val REQUEST_POST_NOTIFICATIONS = 60
class MainController(val context: Context) {
fun promptPermission(fromBackground: Boolean) {
val intent = Intent(context, RequestActivity::class.java)
if (fromBackground) {
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
}
context.startActivity(intent)
}

private fun tryOpenActivity(intent: Intent): Boolean {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ class MainModel(appContext: Context, val carCapabilities: Map<String, String?>):
val minFrameTime = StringLiveSetting(appContext, AppSettings.KEYS.MINFRAMETIME)
val jpgQuality = StringLiveSetting(appContext, AppSettings.KEYS.jpgQuality)

class MainModel: ViewModel() {
val notificationPermission = MutableLiveData(false)
val mirroringState = ScreenMirrorProvider.state
val mirroringStateText: LiveData<Context.() -> String> = ScreenMirrorProvider.state.map({getString(R.string.lbl_status_not_ready)}) {
Expand All @@ -73,4 +72,4 @@ class MainModel: ViewModel() {
notificationPermission.value = Build.VERSION.SDK_INT < 33
|| context.checkSelfPermission(Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED
}
}
}
2 changes: 1 addition & 1 deletion screen_mirror/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:onClick="@{() -> controller.promptMirroringPermission()}"
android:onClick="@{() -> controller.promptPermission(false)}"

android:visibility="@{viewModel.mirroringState == MirroringState.NOT_ALLOWED}"
android:text="@string/btn_grant_mirror_auth"/>

Expand Down

0 comments on commit 257211a

Please sign in to comment.