Skip to content

Commit

Permalink
Update pydroid
Browse files Browse the repository at this point in the history
  • Loading branch information
pyamsoft committed Jun 13, 2023
1 parent 21eef4d commit 509d522
Show file tree
Hide file tree
Showing 23 changed files with 88 additions and 69 deletions.
5 changes: 2 additions & 3 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ android {
defaultConfig {
applicationId = "com.pyamsoft.tetherfi"

versionCode = 24
versionName = "20230602-1"
versionCode = 25
versionName = "20230612-1"

minSdk = rootProject.extra["minSdk"] as Int
targetSdk = rootProject.extra["targetSdk"] as Int
Expand Down Expand Up @@ -114,7 +114,6 @@ dependencies {
debugImplementation("com.github.pyamsoft.pydroid:autopsy:${rootProject.extra["pydroid"]}")

// AndroidX
implementation("androidx.fragment:fragment-ktx:1.5.7")
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("androidx.activity:activity-compose:1.7.2")

Expand Down
13 changes: 1 addition & 12 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,4 @@

# Keep line numbers for Stack Traces
-keepattributes LineNumberTable,SourceFile
-renamesourcefileattribute SourceFile

# As of 04/30/2023, release builds requires these autogenerated missing rules
-dontwarn org.bouncycastle.jsse.BCSSLParameters
-dontwarn org.bouncycastle.jsse.BCSSLSocket
-dontwarn org.bouncycastle.jsse.provider.BouncyCastleJsseProvider
-dontwarn org.conscrypt.Conscrypt$Version
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.conscrypt.ConscryptHostnameVerifier
-dontwarn org.openjsse.javax.net.ssl.SSLParameters
-dontwarn org.openjsse.javax.net.ssl.SSLSocket
-dontwarn org.openjsse.net.ssl.OpenJSSE
-renamesourcefileattribute SourceFile
8 changes: 4 additions & 4 deletions app/src/main/java/com/pyamsoft/tetherfi/ObjectGraph.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ package com.pyamsoft.tetherfi
import android.app.Activity
import android.app.Application
import android.app.Service
import androidx.activity.ComponentActivity
import androidx.annotation.CheckResult
import androidx.fragment.app.FragmentActivity
import com.pyamsoft.pydroid.core.requireNotNull
import com.pyamsoft.pydroid.util.doOnDestroy
import com.pyamsoft.tetherfi.main.MainComponent
Expand Down Expand Up @@ -60,10 +60,10 @@ internal object ObjectGraph {

internal object ActivityScope {

private val trackingMap = mutableMapOf<FragmentActivity, MainComponent>()
private val trackingMap = mutableMapOf<ComponentActivity, MainComponent>()

fun install(
activity: FragmentActivity,
activity: ComponentActivity,
component: MainComponent,
) {
trackingMap[activity] = component
Expand All @@ -76,7 +76,7 @@ internal object ObjectGraph {
}

@CheckResult
fun retrieve(activity: FragmentActivity): MainComponent {
fun retrieve(activity: ComponentActivity): MainComponent {
return trackingMap[activity].requireNotNull {
"Could not find ActivityScoped internals for Activity: $activity"
}
Expand Down
47 changes: 36 additions & 11 deletions app/src/main/java/com/pyamsoft/tetherfi/TetherFi.kt
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,12 @@ class TetherFi : Application() {

@JvmStatic
private fun addLibraries() {
// We are using pydroid-notify
OssLibraries.usingNotify = true

// We are using pydroid-autopsy
OssLibraries.usingAutopsy = true
OssLibraries.apply {
usingNotify = true
usingAutopsy = true
usingArch = true
usingUi = true
}

OssLibraries.add(
"Dagger",
Expand All @@ -85,15 +86,27 @@ class TetherFi : Application() {
)

OssLibraries.add(
"Ktor",
"https://github.com/ktorio/ktor",
"Framework for quickly creating connected applications in Kotlin with minimal effort",
"LeakCanary",
"https://github.com/square/leakcanary",
"A memory leak detection library for Android.",
)

OssLibraries.add(
"Timber",
"https://github.com/JakeWharton/timber",
"A logger with a small, extensible API which provides utility on top of Android's normal Log class.",
)

OssLibraries.add(
"Accompanist System UI Controller",
"https://google.github.io/accompanist/systemuicontroller/",
"System UI Controller provides easy-to-use utilities for updating the System UI bar colors within Jetpack Compose.",
"KSP",
"https://github.com/google/ksp",
"Kotlin Symbol Processing API",
)

OssLibraries.add(
"Ktor",
"https://github.com/ktorio/ktor",
"Framework for quickly creating connected applications in Kotlin with minimal effort",
)

OssLibraries.add(
Expand All @@ -102,6 +115,18 @@ class TetherFi : Application() {
"A library which provides paging layouts for Jetpack Compose.",
)

OssLibraries.add(
"AndroidX Appcompat",
"https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-main/appcompat/",
"AndroidX compatibility library for older versions of Android",
)

OssLibraries.add(
"AndroidX Activity Compose",
"https://android.googlesource.com/platform/frameworks/support/+/androidx-master-dev/activity/activity-compose",
"Jetpack Compose bridge for AndroidX Activity",
)

OssLibraries.add(
"QRCode-Kotlin",
"https://github.com/g0dkar/qrcode-kotlin#installation",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@

package com.pyamsoft.tetherfi.connections

import androidx.activity.ComponentActivity
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Modifier
import androidx.fragment.app.FragmentActivity
import com.pyamsoft.pydroid.arch.SaveStateDisposableEffect
import com.pyamsoft.pydroid.ui.inject.ComposableInjector
import com.pyamsoft.pydroid.ui.inject.rememberComposableInjector
Expand All @@ -32,7 +32,7 @@ internal class ConnectionInjector : ComposableInjector() {

@JvmField @Inject internal var viewModel: ConnectionViewModel? = null

override fun onInject(activity: FragmentActivity) {
override fun onInject(activity: ComponentActivity) {
ObjectGraph.ActivityScope.retrieve(activity).plusConnection().create().inject(this)
}

Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/pyamsoft/tetherfi/info/InfoEntry.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@

package com.pyamsoft.tetherfi.info

import androidx.activity.ComponentActivity
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.fragment.app.FragmentActivity
import com.pyamsoft.pydroid.ui.inject.ComposableInjector
import com.pyamsoft.pydroid.ui.inject.rememberComposableInjector
import com.pyamsoft.pydroid.ui.util.rememberNotNull
Expand All @@ -30,7 +30,7 @@ internal class InfoInjector : ComposableInjector() {

@JvmField @Inject internal var viewModel: InfoViewModeler? = null

override fun onInject(activity: FragmentActivity) {
override fun onInject(activity: ComponentActivity) {
ObjectGraph.ActivityScope.retrieve(activity).plusInfo().create().inject(this)
}

Expand Down
7 changes: 3 additions & 4 deletions app/src/main/java/com/pyamsoft/tetherfi/main/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,9 @@ class MainActivity : AppCompatActivity() {
override val applicationIcon = R.mipmap.ic_launcher

override val changelog = buildChangeLog {
bugfix(
"Fix a major bug causing extreme system slowdown after Hotspot was on for a long time")
bugfix("Device does not get as hot when running Hotspot for a long time")
change("Greatly improved Hotspot performance")
bugfix("Reduce memory usage and make sure we close all sockets after use")
change("Correct attribution for open source libraries")
change("Remove unused code to shrink install size")
}
},
)
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/pyamsoft/tetherfi/main/MainEntry.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

package com.pyamsoft.tetherfi.main

import androidx.activity.ComponentActivity
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.pager.PagerState
import androidx.compose.foundation.pager.rememberPagerState
Expand All @@ -28,7 +29,6 @@ import androidx.compose.runtime.rememberUpdatedState
import androidx.compose.runtime.snapshotFlow
import androidx.compose.runtime.snapshots.SnapshotStateList
import androidx.compose.ui.Modifier
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
Expand All @@ -53,7 +53,7 @@ internal class MainInjector @Inject internal constructor() : ComposableInjector(
@JvmField @Inject internal var viewModel: MainViewModeler? = null
@JvmField @Inject internal var appEnvironment: AppDevEnvironment? = null

override fun onInject(activity: FragmentActivity) {
override fun onInject(activity: ComponentActivity) {
ObjectGraph.ActivityScope.retrieve(activity).inject(this)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.pyamsoft.tetherfi.main

import androidx.fragment.app.FragmentActivity
import androidx.activity.ComponentActivity
import androidx.lifecycle.lifecycleScope
import com.pyamsoft.pydroid.bus.EventBus
import com.pyamsoft.pydroid.bus.EventConsumer
Expand All @@ -26,7 +26,7 @@ internal constructor(
private var serverRequester: PermissionRequester.Requester? = null
private var notificationRequester: PermissionRequester.Requester? = null

fun register(activity: FragmentActivity) {
fun register(activity: ComponentActivity) {
// Watch lifecycle
activity.doOnDestroy { unregister() }

Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/pyamsoft/tetherfi/qr/QRCodeEntry.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package com.pyamsoft.tetherfi.qr

import android.content.res.Configuration
import androidx.activity.ComponentActivity
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.width
Expand All @@ -32,7 +33,6 @@ import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog
import androidx.fragment.app.FragmentActivity
import coil.ImageLoader
import com.pyamsoft.pydroid.ui.app.rememberDialogProperties
import com.pyamsoft.pydroid.ui.defaults.DialogDefaults
Expand All @@ -53,7 +53,7 @@ internal class QRCodeInjector(
@JvmField @Inject internal var viewModel: QRCodeViewModeler? = null
@JvmField @Inject internal var imageLoader: ImageLoader? = null

override fun onInject(activity: FragmentActivity) {
override fun onInject(activity: ComponentActivity) {
ObjectGraph.ActivityScope.retrieve(activity)
.plusQR()
.create(
Expand Down
6 changes: 3 additions & 3 deletions app/src/main/java/com/pyamsoft/tetherfi/status/StatusEntry.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ package com.pyamsoft.tetherfi.status

import android.content.Intent
import android.provider.Settings
import androidx.activity.ComponentActivity
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.rememberUpdatedState
import androidx.compose.ui.Modifier
import androidx.core.net.toUri
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
Expand Down Expand Up @@ -59,7 +59,7 @@ internal class StatusInjector : ComposableInjector() {

@JvmField @Inject internal var permissionResponseBus: EventConsumer<PermissionResponse>? = null

override fun onInject(activity: FragmentActivity) {
override fun onInject(activity: ComponentActivity) {
ObjectGraph.ActivityScope.retrieve(activity).plusStatus().create().inject(this)
}

Expand All @@ -72,7 +72,7 @@ internal class StatusInjector : ComposableInjector() {
}

private fun safeOpenSettingsIntent(
activity: FragmentActivity,
activity: ComponentActivity,
action: String,
) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@
package com.pyamsoft.tetherfi.tile

import androidx.annotation.CheckResult
import com.pyamsoft.tetherfi.core.ActivityScope
import dagger.Subcomponent

@ActivityScope
@Subcomponent
internal interface ProxyTileComponent {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@

package com.pyamsoft.tetherfi.tile

import androidx.activity.ComponentActivity
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.rememberUpdatedState
import androidx.compose.ui.Modifier
import androidx.fragment.app.FragmentActivity
import com.pyamsoft.pydroid.arch.SaveStateDisposableEffect
import com.pyamsoft.pydroid.ui.inject.ComposableInjector
import com.pyamsoft.pydroid.ui.inject.rememberComposableInjector
Expand All @@ -35,7 +35,7 @@ internal class ProxyTileInjector : ComposableInjector() {

@Inject @JvmField internal var viewModel: ProxyTileViewModeler? = null

override fun onInject(activity: FragmentActivity) {
override fun onInject(activity: ComponentActivity) {
ObjectGraph.ApplicationScope.retrieve(activity).plusTile().create().inject(this)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ import com.pyamsoft.tetherfi.R
import com.pyamsoft.tetherfi.core.cancelChildren
import com.pyamsoft.tetherfi.server.status.RunningStatus
import com.pyamsoft.tetherfi.service.tile.TileHandler
import javax.inject.Inject
import kotlinx.coroutines.CoroutineName
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
import timber.log.Timber
import javax.inject.Inject

internal class ProxyTileService internal constructor() : TileService() {

Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ buildscript {
compileSdk = 33

// Us
pydroid = "26.5.2"
pydroid = "26.6.0"

// Leak Canary
leakCanary = "2.11"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,9 @@ private fun ConnectionItem(
) {
val name = remember(client) { client.key() }
val seenTime =
remember(client) { FIRST_SEEN_DATE_FORMATTER.get().requireNotNull().format(client.mostRecentlySeen) }
remember(client) {
FIRST_SEEN_DATE_FORMATTER.get().requireNotNull().format(client.mostRecentlySeen)
}

val isNotBlocked =
remember(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ package com.pyamsoft.tetherfi.connections
import androidx.compose.runtime.Stable
import com.pyamsoft.pydroid.arch.UiViewState
import com.pyamsoft.tetherfi.server.clients.TetherClient
import javax.inject.Inject
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import javax.inject.Inject

@Stable
interface ConnectionViewState : UiViewState {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ package com.pyamsoft.tetherfi.info

import androidx.compose.runtime.Stable
import com.pyamsoft.pydroid.arch.UiViewState
import javax.inject.Inject
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import javax.inject.Inject

@Stable
interface InfoViewState : UiViewState {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ import androidx.compose.runtime.Stable
import com.pyamsoft.pydroid.arch.UiViewState
import com.pyamsoft.pydroid.ui.theme.Theming
import com.pyamsoft.tetherfi.core.ActivityScope
import javax.inject.Inject
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import javax.inject.Inject

@Stable
interface ThemeViewState : UiViewState {
Expand Down
Loading

0 comments on commit 509d522

Please sign in to comment.