From abd5b865e1086191f96c953f3eee1672c70c5eeb Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 30 Aug 2023 12:08:18 +0200 Subject: [PATCH] Changes for assistant --- .../ui/assistant/fragment/LoginFragment.kt | 9 +++ .../ui/assistant/fragment/RegisterFragment.kt | 20 +++++++ .../ThirdPartySipAccountLoginFragment.kt | 57 +++++++++++++++++++ app/src/main/res/drawable/header.xml | 27 +++++++++ .../res/layout/assistant_login_fragment.xml | 21 ++++++- .../layout/assistant_register_fragment.xml | 25 +++++++- ...third_party_sip_account_login_fragment.xml | 39 +++++++++++++ .../res/navigation/assistant_nav_graph.xml | 14 +++++ 8 files changed, 208 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/org/linphone/ui/assistant/fragment/ThirdPartySipAccountLoginFragment.kt create mode 100644 app/src/main/res/drawable/header.xml create mode 100644 app/src/main/res/layout/assistant_third_party_sip_account_login_fragment.xml diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/LoginFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/LoginFragment.kt index 4bd3840bf..9114bf21a 100644 --- a/app/src/main/java/org/linphone/ui/assistant/fragment/LoginFragment.kt +++ b/app/src/main/java/org/linphone/ui/assistant/fragment/LoginFragment.kt @@ -34,6 +34,10 @@ import org.linphone.ui.main.fragment.GenericFragment @UiThread class LoginFragment : GenericFragment() { + companion object { + private const val TAG = "[Login Fragment]" + } + private lateinit var binding: AssistantLoginFragmentBinding private val viewModel: AssistantViewModel by navGraphViewModels( @@ -73,6 +77,11 @@ class LoginFragment : GenericFragment() { findNavController().navigate(action) } + binding.setThirdPartySipAccountLoginClickListener { + val action = LoginFragmentDirections.actionLoginFragmentToThirdPartySipAccountLoginFragment() + findNavController().navigate(action) + } + viewModel.accountLoggedInEvent.observe(viewLifecycleOwner) { it.consume { goBack() diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/RegisterFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/RegisterFragment.kt index e9b19177d..5ea6fd233 100644 --- a/app/src/main/java/org/linphone/ui/assistant/fragment/RegisterFragment.kt +++ b/app/src/main/java/org/linphone/ui/assistant/fragment/RegisterFragment.kt @@ -19,17 +19,24 @@ */ package org.linphone.ui.assistant.fragment +import android.content.Intent +import android.net.Uri import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.annotation.UiThread import androidx.navigation.fragment.findNavController +import org.linphone.core.tools.Log import org.linphone.databinding.AssistantRegisterFragmentBinding import org.linphone.ui.main.fragment.GenericFragment @UiThread class RegisterFragment : GenericFragment() { + companion object { + private const val TAG = "[Register Fragment]" + } + private lateinit var binding: AssistantRegisterFragmentBinding override fun onCreateView( @@ -57,5 +64,18 @@ class RegisterFragment : GenericFragment() { binding.setLoginClickListener { goBack() } + + binding.setOpenSubscribeWebPageClickListener { + try { + val url = "https://subscribe.linphone.org" + val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(url)) + startActivity(browserIntent) + } catch (ise: IllegalStateException) { + Log.e("$TAG Can't start ACTION_VIEW intent, IllegalStateException: $ise") + } + } + + binding.setCreateClickListener { + } } } diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/ThirdPartySipAccountLoginFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/ThirdPartySipAccountLoginFragment.kt new file mode 100644 index 000000000..3fb4e4cde --- /dev/null +++ b/app/src/main/java/org/linphone/ui/assistant/fragment/ThirdPartySipAccountLoginFragment.kt @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2010-2023 Belledonne Communications SARL. + * + * This file is part of linphone-android + * (see https://www.linphone.org). + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.linphone.ui.assistant.fragment + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.annotation.UiThread +import androidx.navigation.fragment.findNavController +import org.linphone.databinding.AssistantThirdPartySipAccountLoginFragmentBinding +import org.linphone.ui.main.fragment.GenericFragment + +@UiThread +class ThirdPartySipAccountLoginFragment : GenericFragment() { + private lateinit var binding: AssistantThirdPartySipAccountLoginFragmentBinding + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = AssistantThirdPartySipAccountLoginFragmentBinding.inflate(layoutInflater) + return binding.root + } + + override fun goBack() { + findNavController().popBackStack() + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + binding.lifecycleOwner = viewLifecycleOwner + + binding.setBackClickListener { + goBack() + } + } +} diff --git a/app/src/main/res/drawable/header.xml b/app/src/main/res/drawable/header.xml new file mode 100644 index 000000000..7bef1fef1 --- /dev/null +++ b/app/src/main/res/drawable/header.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/layout/assistant_login_fragment.xml b/app/src/main/res/layout/assistant_login_fragment.xml index a7f94c0ee..223d47e8e 100644 --- a/app/src/main/res/layout/assistant_login_fragment.xml +++ b/app/src/main/res/layout/assistant_login_fragment.xml @@ -12,6 +12,9 @@ + @@ -40,6 +43,18 @@ app:tint="@color/gray_1" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"/> + + @@ -59,7 +75,7 @@ style="@style/default_text_style_700" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="48dp" + android:layout_marginTop="18dp" android:layout_marginStart="16dp" android:layout_marginEnd="16dp" android:text="Username*" @@ -231,6 +247,7 @@ app:layout_constraintTop_toBottomOf="@id/or" /> + + @@ -33,16 +39,29 @@ app:tint="@color/gray_1" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"/> - + + + @@ -144,6 +163,7 @@ app:layout_constraintEnd_toEndOf="parent"/> + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/assistant_nav_graph.xml b/app/src/main/res/navigation/assistant_nav_graph.xml index 8be29f525..b5055b548 100644 --- a/app/src/main/res/navigation/assistant_nav_graph.xml +++ b/app/src/main/res/navigation/assistant_nav_graph.xml @@ -26,6 +26,14 @@ app:popEnterAnim="@anim/slide_in_left" app:popExitAnim="@anim/slide_out_right" app:launchSingleTop="true" /> + + + \ No newline at end of file