diff --git a/mobile/build.gradle b/mobile/build.gradle
index 34f90306..be5468db 100644
--- a/mobile/build.gradle
+++ b/mobile/build.gradle
@@ -11,8 +11,8 @@ android {
applicationId "nl.jolanrensen.permanentproxy"
minSdkVersion 23
targetSdkVersion 29
- versionCode 7
- versionName "3.1"
+ versionCode 8
+ versionName "3.2"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
diff --git a/wear/build.gradle b/wear/build.gradle
index adf5c049..dbc8c74a 100644
--- a/wear/build.gradle
+++ b/wear/build.gradle
@@ -11,8 +11,8 @@ android {
applicationId "nl.jolanrensen.permanentproxy"
minSdkVersion 23
targetSdkVersion 29
- versionCode 7
- versionName "3.1"
+ versionCode 8
+ versionName "3.2"
}
buildTypes {
release {
diff --git a/wear/release/mobile-release.apk b/wear/release/mobile-release.apk
index 009a7a92..0631a177 100644
Binary files a/wear/release/mobile-release.apk and b/wear/release/mobile-release.apk differ
diff --git a/wear/release/wear-release.aab b/wear/release/wear-release.aab
index e252eadd..545d0614 100644
Binary files a/wear/release/wear-release.aab and b/wear/release/wear-release.aab differ
diff --git a/wear/release/wear-release.apk b/wear/release/wear-release.apk
index aa3d58da..fb534ff5 100644
Binary files a/wear/release/wear-release.apk and b/wear/release/wear-release.apk differ
diff --git a/wear/src/main/AndroidManifest.xml b/wear/src/main/AndroidManifest.xml
index 2c66fddf..63407cc9 100644
--- a/wear/src/main/AndroidManifest.xml
+++ b/wear/src/main/AndroidManifest.xml
@@ -35,7 +35,8 @@
+ android:label="@string/title_activity_enable_adbbluetooth">
+
@@ -46,6 +47,7 @@
+
diff --git a/wear/src/main/java/nl/jolanrensen/permanentproxy/MainActivity.kt b/wear/src/main/java/nl/jolanrensen/permanentproxy/MainActivity.kt
index 8cd94369..58b68c34 100644
--- a/wear/src/main/java/nl/jolanrensen/permanentproxy/MainActivity.kt
+++ b/wear/src/main/java/nl/jolanrensen/permanentproxy/MainActivity.kt
@@ -19,21 +19,18 @@ import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
-import nl.jolanrensen.permanentproxy.Constants.PORT
import nl.jolanrensen.permanentproxy.Constants.currentProxy
import nl.jolanrensen.permanentproxy.Constants.getCurrentIP
-import nl.jolanrensen.permanentproxy.Constants.logD
import nl.jolanrensen.permanentproxy.Constants.logE
import nl.jolanrensen.permanentproxy.Constants.startProxy
import nl.jolanrensen.permanentproxy.Constants.stopProxy
import nl.jolanrensen.permanentproxy.Constants.toastLong
-import kotlin.concurrent.thread
class MainActivity : WearableActivity() {
- var p: SharedPreferences? = null
- @Volatile
- var currentADBProcess: SendSingleCommand? = null
+ private var p: SharedPreferences? = null
+
+ val PERMISSION = 23
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -41,6 +38,7 @@ class MainActivity : WearableActivity() {
p = getSharedPreferences(packageName, Context.MODE_PRIVATE)
+
getCurrentIP {
logE("current IP is $it")
runOnUiThread {
@@ -86,47 +84,12 @@ class MainActivity : WearableActivity() {
}
request_permission.setOnClickListener {
- loading.isVisible = true
- loading.requestFocus()
- thread(start = true) {
- val logs = arrayListOf()
- try {
- currentADBProcess = SendSingleCommand(
- logs = logs,
- context = this,
- ip = "localhost",
- port = PORT,
- command = "pm grant \\\nnl.jolanrensen.permanentproxy \\\nandroid.permission.WRITE_SECURE_SETTINGS",
- timeout = 4000,
- ctrlC = false
- ) {
- currentADBProcess = null
- logD(it.toString())
- runOnUiThread {
- loading.isVisible = false
- if (checkCallingOrSelfPermission("android.permission.WRITE_SECURE_SETTINGS")
- == PackageManager.PERMISSION_GRANTED
- ) {
- continueSetup()
- toastLong(getString(R.string.permission_granted))
- } else {
- toastLong(getString(R.string.something_wrong))
- }
- }
- }
- } catch (e: Exception) {
- currentADBProcess = null
- logE("$logs", e)
- runOnUiThread {
- loading.isVisible = false
- toastLong(getString(R.string.something_wrong))
- }
- }
- }
- }
+ startActivityForResult(
+ Intent(this, RequestPermissionActivity::class.java),
+ PERMISSION
+
+ )
- cancel.setOnClickListener {
- currentADBProcess?.cancel()
}
}
@@ -302,4 +265,12 @@ class MainActivity : WearableActivity() {
if (child is ViewGroup) setAllEnabled(child, *except)
}
}
+
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+ when {
+ requestCode == PERMISSION && resultCode == RESULT_OK -> {
+ continueSetup()
+ }
+ }
+ }
}
diff --git a/wear/src/main/java/nl/jolanrensen/permanentproxy/RequestPermissionActivity.kt b/wear/src/main/java/nl/jolanrensen/permanentproxy/RequestPermissionActivity.kt
new file mode 100644
index 00000000..90f4a0d6
--- /dev/null
+++ b/wear/src/main/java/nl/jolanrensen/permanentproxy/RequestPermissionActivity.kt
@@ -0,0 +1,67 @@
+package nl.jolanrensen.permanentproxy
+
+import android.app.Activity
+import android.content.pm.PackageManager
+import android.os.Bundle
+import android.support.wearable.activity.WearableActivity
+import kotlinx.android.synthetic.main.activity_request_permission.*
+import nl.jolanrensen.permanentproxy.Constants.logE
+import nl.jolanrensen.permanentproxy.Constants.toastLong
+import kotlin.concurrent.thread
+
+class RequestPermissionActivity : WearableActivity() {
+
+ @Volatile
+ var currentADBProcess: SendSingleCommand? = null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_request_permission)
+
+ cancel.setOnClickListener {
+ finish()
+ }
+
+ thread(start = true) {
+ val logs = arrayListOf()
+ try {
+ currentADBProcess = SendSingleCommand(
+ logs = logs,
+ context = this,
+ ip = "localhost",
+ port = Constants.PORT,
+ command = "pm grant \\\nnl.jolanrensen.permanentproxy \\\nandroid.permission.WRITE_SECURE_SETTINGS",
+ timeout = 4000,
+ ctrlC = false
+ ) {
+ currentADBProcess = null
+ Constants.logD(it.toString())
+ runOnUiThread {
+ if (checkCallingOrSelfPermission("android.permission.WRITE_SECURE_SETTINGS")
+ == PackageManager.PERMISSION_GRANTED
+ ) {
+ toastLong(getString(R.string.permission_granted))
+ setResult(Activity.RESULT_OK)
+ } else {
+ toastLong(getString(R.string.something_wrong))
+ }
+ finish()
+ }
+ }
+ } catch (e: Exception) {
+ currentADBProcess = null
+ logE("$logs", e)
+ runOnUiThread {
+ toastLong(getString(R.string.something_wrong))
+ finish()
+ }
+ }
+ }
+ }
+
+ override fun onStop() {
+ currentADBProcess?.cancel()
+ logE("requesting permission canceled")
+ super.onStop()
+ }
+}
\ No newline at end of file
diff --git a/wear/src/main/res/layout/activity_main.xml b/wear/src/main/res/layout/activity_main.xml
index 17b39ceb..dd3ce6cc 100644
--- a/wear/src/main/res/layout/activity_main.xml
+++ b/wear/src/main/res/layout/activity_main.xml
@@ -5,7 +5,7 @@
android:layout_height="match_parent"
android:background="@color/black"
android:padding="@dimen/box_inset_layout_padding"
- tools:context=".MainActivity"
+ tools:context=".RequestPermissionActivity"
tools:deviceIds="wear">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/wear/src/main/res/layout/activity_request_permission.xml b/wear/src/main/res/layout/activity_request_permission.xml
new file mode 100644
index 00000000..cdb064ba
--- /dev/null
+++ b/wear/src/main/res/layout/activity_request_permission.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file