Skip to content

Commit

Permalink
Refactor PrivacyPolicyScreen and comment out openUrl Android implemen…
Browse files Browse the repository at this point in the history
…tation
  • Loading branch information
HekmatullahAmin committed Feb 8, 2025
1 parent bc05b3b commit e420472
Show file tree
Hide file tree
Showing 15 changed files with 86 additions and 72 deletions.
14 changes: 7 additions & 7 deletions cmp-android/dependencies/demoDebugRuntimeClasspath.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,11 @@ androidx.core:core:1.15.0
androidx.cursoradapter:cursoradapter:1.0.0
androidx.customview:customview-poolingcontainer:1.0.0
androidx.customview:customview:1.1.0
androidx.databinding:databinding-adapters:8.7.3
androidx.databinding:databinding-common:8.7.3
androidx.databinding:databinding-ktx:8.7.3
androidx.databinding:databinding-runtime:8.7.3
androidx.databinding:viewbinding:8.7.3
androidx.databinding:databinding-adapters:8.8.0
androidx.databinding:databinding-common:8.8.0
androidx.databinding:databinding-ktx:8.8.0
androidx.databinding:databinding-runtime:8.8.0
androidx.databinding:viewbinding:8.8.0
androidx.documentfile:documentfile:1.0.0
androidx.drawerlayout:drawerlayout:1.0.0
androidx.emoji2:emoji2-views-helper:1.3.0
Expand Down Expand Up @@ -303,8 +303,8 @@ org.jetbrains.compose.ui:ui:1.7.0-rc01
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.0
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-common:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.21
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.21
org.jetbrains.kotlin:kotlin-stdlib:2.1.0
org.jetbrains.kotlinx:atomicfu-jvm:0.23.2
org.jetbrains.kotlinx:atomicfu:0.23.2
Expand Down
14 changes: 7 additions & 7 deletions cmp-android/dependencies/demoReleaseRuntimeClasspath.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,11 @@ androidx.core:core:1.15.0
androidx.cursoradapter:cursoradapter:1.0.0
androidx.customview:customview-poolingcontainer:1.0.0
androidx.customview:customview:1.1.0
androidx.databinding:databinding-adapters:8.7.3
androidx.databinding:databinding-common:8.7.3
androidx.databinding:databinding-ktx:8.7.3
androidx.databinding:databinding-runtime:8.7.3
androidx.databinding:viewbinding:8.7.3
androidx.databinding:databinding-adapters:8.8.0
androidx.databinding:databinding-common:8.8.0
androidx.databinding:databinding-ktx:8.8.0
androidx.databinding:databinding-runtime:8.8.0
androidx.databinding:viewbinding:8.8.0
androidx.documentfile:documentfile:1.0.0
androidx.drawerlayout:drawerlayout:1.0.0
androidx.emoji2:emoji2-views-helper:1.3.0
Expand Down Expand Up @@ -299,8 +299,8 @@ org.jetbrains.compose.ui:ui:1.7.0-rc01
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.0
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-common:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.21
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.21
org.jetbrains.kotlin:kotlin-stdlib:2.1.0
org.jetbrains.kotlinx:atomicfu-jvm:0.23.2
org.jetbrains.kotlinx:atomicfu:0.23.2
Expand Down
14 changes: 7 additions & 7 deletions cmp-android/dependencies/prodDebugRuntimeClasspath.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,11 @@ androidx.core:core:1.15.0
androidx.cursoradapter:cursoradapter:1.0.0
androidx.customview:customview-poolingcontainer:1.0.0
androidx.customview:customview:1.1.0
androidx.databinding:databinding-adapters:8.7.3
androidx.databinding:databinding-common:8.7.3
androidx.databinding:databinding-ktx:8.7.3
androidx.databinding:databinding-runtime:8.7.3
androidx.databinding:viewbinding:8.7.3
androidx.databinding:databinding-adapters:8.8.0
androidx.databinding:databinding-common:8.8.0
androidx.databinding:databinding-ktx:8.8.0
androidx.databinding:databinding-runtime:8.8.0
androidx.databinding:viewbinding:8.8.0
androidx.documentfile:documentfile:1.0.0
androidx.drawerlayout:drawerlayout:1.0.0
androidx.emoji2:emoji2-views-helper:1.3.0
Expand Down Expand Up @@ -303,8 +303,8 @@ org.jetbrains.compose.ui:ui:1.7.0-rc01
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.0
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-common:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.21
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.21
org.jetbrains.kotlin:kotlin-stdlib:2.1.0
org.jetbrains.kotlinx:atomicfu-jvm:0.23.2
org.jetbrains.kotlinx:atomicfu:0.23.2
Expand Down
14 changes: 7 additions & 7 deletions cmp-android/dependencies/prodReleaseRuntimeClasspath.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,11 @@ androidx.core:core:1.15.0
androidx.cursoradapter:cursoradapter:1.0.0
androidx.customview:customview-poolingcontainer:1.0.0
androidx.customview:customview:1.1.0
androidx.databinding:databinding-adapters:8.7.3
androidx.databinding:databinding-common:8.7.3
androidx.databinding:databinding-ktx:8.7.3
androidx.databinding:databinding-runtime:8.7.3
androidx.databinding:viewbinding:8.7.3
androidx.databinding:databinding-adapters:8.8.0
androidx.databinding:databinding-common:8.8.0
androidx.databinding:databinding-ktx:8.8.0
androidx.databinding:databinding-runtime:8.8.0
androidx.databinding:viewbinding:8.8.0
androidx.documentfile:documentfile:1.0.0
androidx.drawerlayout:drawerlayout:1.0.0
androidx.emoji2:emoji2-views-helper:1.3.0
Expand Down Expand Up @@ -299,8 +299,8 @@ org.jetbrains.compose.ui:ui:1.7.0-rc01
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.0
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-common:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.21
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.21
org.jetbrains.kotlin:kotlin-stdlib:2.1.0
org.jetbrains.kotlinx:atomicfu-jvm:0.23.2
org.jetbrains.kotlinx:atomicfu:0.23.2
Expand Down
7 changes: 3 additions & 4 deletions feature/about/src/androidMain/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

<application
android:name=".AndroidApp">

</application>
<!-- <application-->
<!-- android:name=".AndroidApp">-->
<!-- </application>-->

</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ package org.mifos.mobile.feature.about
import android.app.Application

class AndroidApp : Application() {
override fun onCreate() {
super.onCreate()
instance = this
}

companion object {
lateinit var instance: AndroidApp
}
// override fun onCreate() {
// super.onCreate()
// instance = this
// }
//
// companion object {
// lateinit var instance: AndroidApp
// }
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ import androidx.compose.ui.viewinterop.AndroidView
@Composable
actual fun MifosWebView(
htmlContent: String,
isLoading: (isLoading: Boolean) -> Unit,
onUrlClicked: (url: String) -> Unit,
onLoadingChange: (isLoading: Boolean) -> Unit,
modifier: Modifier,
) {
AndroidView(
Expand All @@ -43,17 +42,17 @@ actual fun MifosWebView(
) {
true
} else {
onUrlClicked(request?.url.toString())
openUrl(request?.url.toString())
true
}
}

override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
isLoading(true)
onLoadingChange(true)
}

override fun onPageFinished(view: WebView?, url: String?) {
isLoading(false)
onLoadingChange(false)
}
}
loadUrl(htmlContent)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,22 @@
*/
package org.mifos.mobile.feature.about

import android.content.Intent
import android.net.Uri

internal actual fun openUrl(url: String?) {
val uri = url?.let { Uri.parse(url) } ?: return
val intent = Intent().apply {
action = Intent.ACTION_VIEW
data = uri
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
}
AndroidApp.instance.startActivity(intent)
// val uri = url?.let { Uri.parse(url) } ?: return
// val intent = Intent().apply {
// action = Intent.ACTION_VIEW
// data = uri
// addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
// }
// AndroidApp.instance.startActivity(intent)
}

internal actual fun openOssLicenses() {
// val context: Application by inject
// val intent = Intent(
// AndroidApp.instance,
// OssLicensesMenuActivity::class.java,
// )
// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
// AndroidApp.instance.startActivity(intent)
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ import androidx.compose.ui.Modifier
@Composable
expect fun MifosWebView(
htmlContent: String,
isLoading: (isLoading: Boolean) -> Unit,
onUrlClicked: (url: String) -> Unit,
onLoadingChange: (isLoading: Boolean) -> Unit,
modifier: Modifier,
)
Original file line number Diff line number Diff line change
Expand Up @@ -27,40 +27,41 @@ import org.jetbrains.compose.resources.stringResource
import org.mifos.mobile.core.designsystem.component.MifosScaffold
import org.mifos.mobile.core.ui.component.MifosProgressIndicator
import org.mifos.mobile.feature.about.MifosWebView
import org.mifos.mobile.feature.about.openUrl

@Composable
internal fun PrivacyPolicyScreen(
navigateBack: () -> Unit,
modifier: Modifier = Modifier,
) {
var isLoading by remember { mutableStateOf(true) }

MifosScaffold(
topBarTitle = stringResource(Res.string.feature_about_privacy_policy),
backPress = navigateBack,
modifier = modifier,
content = {
WebView(
url = stringResource(Res.string.feature_about_policy_url),
isLoading = isLoading,
onLoadingChange = { isLoading = it },
)
},
)
}

// @SuppressLint("SetJavaScriptEnabled")
@Composable
private fun WebView(
url: String,
isLoading: Boolean,
onLoadingChange: (isLoading: Boolean) -> Unit,
modifier: Modifier = Modifier,
) {
var isLoading by remember { mutableStateOf(true) }

Column(modifier) {
Spacer(modifier = Modifier.height(20.dp))
MifosWebView(
htmlContent = url,
isLoading = { isLoading = it },
onLoadingChange = onLoadingChange,
modifier = Modifier.fillMaxWidth(),
onUrlClicked = { url -> openUrl(url) },
)
if (isLoading) {
MifosProgressIndicator()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ import androidx.compose.ui.text.style.TextAlign
@Composable
actual fun MifosWebView(
htmlContent: String,
isLoading: (isLoading: Boolean) -> Unit,
onUrlClicked: (url: String) -> Unit,
onLoadingChange: (isLoading: Boolean) -> Unit,
modifier: Modifier,
) {
onLoadingChange(false)
Box(modifier = modifier.fillMaxSize()) {
Text(
text = "Implement platform specific WebView for Desktop",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,26 @@
*/
package org.mifos.mobile.feature.about

import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.style.TextAlign

@Composable
actual fun MifosWebView(
htmlContent: String,
isLoading: (isLoading: Boolean) -> Unit,
onUrlClicked: (url: String) -> Unit,
onLoadingChange: (isLoading: Boolean) -> Unit,
modifier: Modifier,
) {
onLoadingChange(false)
Box(modifier = modifier.fillMaxSize()) {
Text(
text = "Implement platform specific WebView for WasmJs",
textAlign = TextAlign.Center,
modifier = Modifier.align(Alignment.Center),
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ import androidx.compose.ui.text.style.TextAlign
@Composable
actual fun MifosWebView(
htmlContent: String,
isLoading: (isLoading: Boolean) -> Unit,
onUrlClicked: (url: String) -> Unit,
onLoadingChange: (isLoading: Boolean) -> Unit,
modifier: Modifier,
) {
onLoadingChange(false)
Box(modifier = modifier.fillMaxSize()) {
Text(
text = "Implement platform specific WebView for IOS",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ import androidx.compose.ui.text.style.TextAlign
@Composable
actual fun MifosWebView(
htmlContent: String,
isLoading: (isLoading: Boolean) -> Unit,
onUrlClicked: (url: String) -> Unit,
onLoadingChange: (isLoading: Boolean) -> Unit,
modifier: Modifier,
) {
onLoadingChange(false)
Box(modifier = modifier.fillMaxSize()) {
Text(
text = "Implement platform specific WebView for WasmJs",
Expand Down
2 changes: 1 addition & 1 deletion settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ include(":core:qrcode")
//include(":feature:help")
//include(":feature:notification")
//include(":feature:location")
//include(":feature:about")
include(":feature:about")
//include(":feature:settings")
//include(":feature:auth")
//include(":feature:update-password")
Expand Down

0 comments on commit e420472

Please sign in to comment.