Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 754c039e authored by Mohammed Althaf T's avatar Mohammed Althaf T 😊
Browse files

Expose google login in account manager

parent 91155a7e
Loading
Loading
Loading
Loading
+6 −10
Original line number Diff line number Diff line
@@ -44,16 +44,12 @@ class App: Application(), Thread.UncaughtExceptionHandler, Configuration.Provide
         * @return the Uri for the browser
         */
        fun homepageUrl(context: Context, page: String? = null): Uri {
            val builder = Uri.parse(context.getString(R.string.homepage_url)).buildUpon()

            if (page != null)
                builder.appendPath(page)

            return builder
                .appendQueryParameter("pk_campaign", BuildConfig.APPLICATION_ID)
                .appendQueryParameter("pk_kwd", context::class.java.simpleName)
                .appendQueryParameter("app-version", BuildConfig.VERSION_NAME)
                .build()
            val url = if (HOMEPAGE_PRIVACY == page) {
                R.string.privacy_url
            } else {
                R.string.homepage_url
            }
            return Uri.parse(context.getString(url)).buildUpon().build()
        }

    }
+1 −3
Original line number Diff line number Diff line
@@ -67,9 +67,7 @@ class BatteryOptimizationsFragment: Fragment() {
        binding.autostartHeading.text = getString(R.string.intro_autostart_title, WordUtils.capitalize(Build.MANUFACTURER))
        binding.autostartText.setText(R.string.intro_autostart_text)
        binding.autostartMoreInfo.setOnClickListener {
            UiUtils.launchUri(requireActivity(), App.homepageUrl(requireActivity()).buildUpon()
                    .appendPath("faq").appendPath("synchronization-is-not-run-as-expected")
                    .appendQueryParameter("manufacturer", Build.MANUFACTURER.lowercase(Locale.ROOT)).build())
            UiUtils.launchUri(requireActivity(), App.homepageUrl(requireActivity()))
        }

        binding.infoLeaveUnchecked.text = getString(R.string.intro_leave_unchecked, getString(R.string.app_settings_reset_hints))
+1 −3
Original line number Diff line number Diff line
@@ -36,9 +36,7 @@ class OpenSourceFragment: Fragment() {

        binding.text.text = getString(R.string.intro_open_source_text, getString(R.string.app_name))
        binding.moreInfo.setOnClickListener {
            UiUtils.launchUri(requireActivity(), App.homepageUrl(requireActivity()).buildUpon()
                    .appendPath("donate")
                    .build())
            UiUtils.launchUri(requireActivity(), App.homepageUrl(requireActivity()))
        }

        return binding.root
+32 −8
Original line number Diff line number Diff line
@@ -4,6 +4,8 @@

package at.bitfire.davdroid.ui.setup

import android.accounts.AccountManager
import android.app.Activity
import android.app.Application
import android.content.ActivityNotFoundException
import android.content.Context
@@ -33,15 +35,18 @@ import androidx.compose.material.Card
import androidx.compose.material.MaterialTheme
import androidx.compose.material.OutlinedTextField
import androidx.compose.material.Text
import androidx.compose.material.TextFieldDefaults
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Warning
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.input.ImeAction
@@ -62,6 +67,7 @@ import at.bitfire.davdroid.BuildConfig
import at.bitfire.davdroid.R
import at.bitfire.davdroid.db.Credentials
import at.bitfire.davdroid.log.Logger
import at.bitfire.davdroid.ui.AccountsActivity
import at.bitfire.davdroid.ui.UiUtils
import com.google.accompanist.themeadapter.material.MdcTheme
import com.google.android.material.snackbar.Snackbar
@@ -233,10 +239,11 @@ fun GoogleLogin(
                .padding(8.dp)
                .verticalScroll(rememberScrollState())) {
            Text(
                stringResource(R.string.login_type_google),
                stringResource(R.string.login_type_google_e),
                style = MaterialTheme.typography.h5,
                modifier = Modifier.padding(vertical = 16.dp))

            /*
            Card(Modifier.fillMaxWidth()) {
                Column(Modifier.padding(8.dp)) {
                    Row {
@@ -256,9 +263,9 @@ fun GoogleLogin(
                    }
                }
            }
            */

            val email = rememberSaveable { mutableStateOf(defaultEmail ?: "") }
            val userClientId = rememberSaveable { mutableStateOf("") }

            fun login() {
                // append @gmail.com, if necessary
@@ -266,11 +273,19 @@ fun GoogleLogin(
                    if (it.contains('@'))
                        it
                    else
                        it + "@gmail.com"
                        "${it}@gmail.com"
                }

                val clientId = StringUtils.trimToNull(userClientId.value.trim())
                onLogin(loginEmail, clientId)
                val accountManager = AccountManager.get(context)
                val options = Bundle()
                options.putString(LoginActivity.OPEN_APP_PACKAGE_AFTER_AUTH, context.packageName)
                options.putString(
                    LoginActivity.OPEN_APP_ACTIVITY_AFTER_AUTH,
                    AccountsActivity::class.java.name,
                )
                options.putString(LoginActivity.USERNAME_HINT, loginEmail)
                accountManager.addAccount(context.getString(R.string.google_account_type), null, null,
                    options, context as Activity?, null, null)
            }
            OutlinedTextField(
                email.value,
@@ -287,10 +302,19 @@ fun GoogleLogin(
                placeholder = { Text("example@gmail.com") },
                modifier = Modifier
                    .fillMaxWidth()
                    .padding(top = 8.dp)
                    .padding(top = 8.dp),
                colors = TextFieldDefaults.outlinedTextFieldColors(
                    textColor = colorResource(R.color.primaryTextColor), // Text color
                    focusedBorderColor = colorResource(R.color.accentColor), // Border color when focused
                    unfocusedBorderColor = Color.Gray, // Border color when not focused
                    cursorColor = colorResource(R.color.accentColor), // Cursor color
                    focusedLabelColor = colorResource(R.color.accentColor), // Label color when focused
                    unfocusedLabelColor = Color.Gray, // Label color when not focused
                    placeholderColor = Color.LightGray // Placeholder text color
                )
            )

            OutlinedTextField(
            /*OutlinedTextField(
                userClientId.value,
                singleLine = true,
                onValueChange = { clientId ->
@@ -308,7 +332,7 @@ fun GoogleLogin(
                modifier = Modifier
                    .fillMaxWidth()
                    .padding(top = 8.dp)
            )
            )*/

            Button(
                onClick = { login() },
+0 −2
Original line number Diff line number Diff line
@@ -23,14 +23,12 @@
                app:drawableLeftCompat="@drawable/ic_notifications_off"
                app:drawableTint="?android:attr/textColorPrimary"
                android:drawablePadding="8dp"
                style="@style/TextAppearance.MaterialComponents.Body1"
                android:text="@string/account_list_no_notification_permission"/>

            <Button
                android:id="@+id/allow_notifications"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                style="@style/Widget.MaterialComponents.Button.TextButton"
                android:text="@string/account_permissions_action" />

        </LinearLayout>
Loading