Loading app/src/main/AndroidManifest.xml +22 −0 Original line number Diff line number Diff line Loading @@ -155,6 +155,28 @@ <activity android:name=".ui.ShowUrlActivity" android:theme="@style/AppTheme.NoActionBar" /> <activity android:name=".ui.PrivacyPolicyActivity" android:theme="@style/AppTheme.NoActionBar" /> <activity-alias android:name=".PrivacyPolicy" android:exported="true" android:process=":ui" android:targetActivity=".ui.PrivacyPolicyActivity"> <intent-filter> <action android:name="com.android.settings.action.EXTRA_SETTINGS" /> </intent-filter> <meta-data android:name="com.android.settings.category" android:value="com.android.settings.category.ia.accounts" /> <meta-data android:name="com.android.settings.title" android:resource="@string/privacy_policy_title" /> <meta-data android:name="com.android.settings.order" android:value="205" /> </activity-alias> <activity android:name=".ui.account.AccountActivity" android:parentActivityName=".ui.AccountsActivity" Loading app/src/main/java/com/nextcloud/android/utils/AccountManagerUtils.kt 0 → 100644 +28 −0 Original line number Diff line number Diff line package com.nextcloud.android.utils import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.net.Uri import androidx.browser.customtabs.CustomTabsIntent object WebViewUtils { fun openCustomTab(context: Context, url: String) { val packageManager = context.packageManager val resolveInfo = packageManager.queryIntentActivities( Intent(Intent.ACTION_VIEW, Uri.parse(url)), PackageManager.MATCH_DEFAULT_ONLY ) if (resolveInfo.isNotEmpty()) { val customTabsIntent = CustomTabsIntent.Builder() .setShowTitle(true).build() customTabsIntent.intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK customTabsIntent.launchUrl(context, Uri.parse(url)) } else { // Fallback to default browser val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url)) context.startActivity(intent) } } } No newline at end of file app/src/main/kotlin/at/bitfire/davdroid/ui/BaseAccountsDrawerHandler.kt +2 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ abstract class BaseAccountsDrawerHandler: AccountsDrawerHandler { when (item.itemId) { R.id.nav_about -> activity.startActivity(Intent(activity, AboutActivity::class.java)) R.id.nav_privacy -> activity.startActivity(Intent(activity, PrivacyPolicyActivity::class.java)) R.id.nav_app_settings -> activity.startActivity(Intent(activity, AppSettingsActivity::class.java)) } Loading app/src/main/kotlin/at/bitfire/davdroid/ui/PrivacyPolicyActivity.kt 0 → 100644 +17 −0 Original line number Diff line number Diff line package at.bitfire.davdroid.ui import android.os.Bundle import androidx.activity.ComponentActivity import com.nextcloud.android.utils.WebViewUtils // URL constant const val PRIVACY_POLICY_URL = "https://e.foundation/legal-notice-privacy/#account-manager" class PrivacyPolicyActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) WebViewUtils.openCustomTab(this, PRIVACY_POLICY_URL) finishAfterTransition() // Finish the activity after launching the custom tab } } app/src/main/res/drawable/ic_policy.xml 0 → 100644 +11 −0 Original line number Diff line number Diff line <vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="?attr/colorControlNormal" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp"> <path android:fillColor="@android:color/white" android:pathData="M19,3L5,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM14,17L7,17v-2h7v2zM17,13L7,13v-2h10v2zM17,9L7,9L7,7h10v2z"/> </vector> Loading
app/src/main/AndroidManifest.xml +22 −0 Original line number Diff line number Diff line Loading @@ -155,6 +155,28 @@ <activity android:name=".ui.ShowUrlActivity" android:theme="@style/AppTheme.NoActionBar" /> <activity android:name=".ui.PrivacyPolicyActivity" android:theme="@style/AppTheme.NoActionBar" /> <activity-alias android:name=".PrivacyPolicy" android:exported="true" android:process=":ui" android:targetActivity=".ui.PrivacyPolicyActivity"> <intent-filter> <action android:name="com.android.settings.action.EXTRA_SETTINGS" /> </intent-filter> <meta-data android:name="com.android.settings.category" android:value="com.android.settings.category.ia.accounts" /> <meta-data android:name="com.android.settings.title" android:resource="@string/privacy_policy_title" /> <meta-data android:name="com.android.settings.order" android:value="205" /> </activity-alias> <activity android:name=".ui.account.AccountActivity" android:parentActivityName=".ui.AccountsActivity" Loading
app/src/main/java/com/nextcloud/android/utils/AccountManagerUtils.kt 0 → 100644 +28 −0 Original line number Diff line number Diff line package com.nextcloud.android.utils import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.net.Uri import androidx.browser.customtabs.CustomTabsIntent object WebViewUtils { fun openCustomTab(context: Context, url: String) { val packageManager = context.packageManager val resolveInfo = packageManager.queryIntentActivities( Intent(Intent.ACTION_VIEW, Uri.parse(url)), PackageManager.MATCH_DEFAULT_ONLY ) if (resolveInfo.isNotEmpty()) { val customTabsIntent = CustomTabsIntent.Builder() .setShowTitle(true).build() customTabsIntent.intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK customTabsIntent.launchUrl(context, Uri.parse(url)) } else { // Fallback to default browser val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url)) context.startActivity(intent) } } } No newline at end of file
app/src/main/kotlin/at/bitfire/davdroid/ui/BaseAccountsDrawerHandler.kt +2 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ abstract class BaseAccountsDrawerHandler: AccountsDrawerHandler { when (item.itemId) { R.id.nav_about -> activity.startActivity(Intent(activity, AboutActivity::class.java)) R.id.nav_privacy -> activity.startActivity(Intent(activity, PrivacyPolicyActivity::class.java)) R.id.nav_app_settings -> activity.startActivity(Intent(activity, AppSettingsActivity::class.java)) } Loading
app/src/main/kotlin/at/bitfire/davdroid/ui/PrivacyPolicyActivity.kt 0 → 100644 +17 −0 Original line number Diff line number Diff line package at.bitfire.davdroid.ui import android.os.Bundle import androidx.activity.ComponentActivity import com.nextcloud.android.utils.WebViewUtils // URL constant const val PRIVACY_POLICY_URL = "https://e.foundation/legal-notice-privacy/#account-manager" class PrivacyPolicyActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) WebViewUtils.openCustomTab(this, PRIVACY_POLICY_URL) finishAfterTransition() // Finish the activity after launching the custom tab } }
app/src/main/res/drawable/ic_policy.xml 0 → 100644 +11 −0 Original line number Diff line number Diff line <vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="?attr/colorControlNormal" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp"> <path android:fillColor="@android:color/white" android:pathData="M19,3L5,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM14,17L7,17v-2h7v2zM17,13L7,13v-2h10v2zM17,9L7,9L7,7h10v2z"/> </vector>