diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index bc6a554..ef62e98 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ android:supportsRtl="true" android:theme="@style/AppTheme" android:usesCleartextTraffic="true"> + + anonymousSignIn() { + final CompletionGenericLiveData completion = new CompletionGenericLiveData(); + + FirebaseAuth auth = FirebaseAuth.getInstance(); + auth.signInAnonymously().addOnCompleteListener(completion); + + return completion; + + } + public CompletionGenericLiveData signUp(String email, String password) { final CompletionGenericLiveData completion = new CompletionGenericLiveData(); diff --git a/app/src/main/java/me/gilo/wc/ui/onboarding/AnonymousSignInActivity.kt b/app/src/main/java/me/gilo/wc/ui/onboarding/AnonymousSignInActivity.kt new file mode 100644 index 0000000..34cea0e --- /dev/null +++ b/app/src/main/java/me/gilo/wc/ui/onboarding/AnonymousSignInActivity.kt @@ -0,0 +1,70 @@ +package me.gilo.wc.ui.onboarding + +import android.arch.lifecycle.Observer +import android.content.Context +import android.content.Intent +import android.os.Bundle +import android.support.design.widget.Snackbar +import android.support.v7.app.AppCompatActivity +import android.widget.Toast +import io.github.inflationx.viewpump.ViewPumpContextWrapper +import me.gilo.wc.R + +import kotlinx.android.synthetic.main.activity_anonymous_sign_in.* +import kotlinx.android.synthetic.main.content_sign_in.* +import me.gilo.raison.ui.user.onboarding.SignUpActivity +import me.gilo.wc.common.BaseActivity +import me.gilo.wc.common.Status +import me.gilo.wc.ui.WooDroidActivity +import me.gilo.wc.ui.home.HomeActivity +import me.gilo.wc.ui.state.ProgressDialogFragment +import me.gilo.wc.viewmodels.UserViewModel +import java.util.regex.Matcher +import java.util.regex.Pattern + +class AnonymousSignInActivity : WooDroidActivity() { + + + override lateinit var viewModel : UserViewModel + + override fun attachBaseContext(newBase: Context) { + super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase)) + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_anonymous_sign_in) + + viewModel = getViewModel(UserViewModel::class.java) + anonymousSignIn() + + } + + private fun anonymousSignIn() { + viewModel.anonymousSignIn().observe(this, Observer { + response-> + when (response!!.status()){ + Status.LOADING ->{ + showLoading("Setting you up with an account", "This will only take a short while") + } + + Status.SUCCESS ->{ + stopShowingLoading() + startActivity(Intent(baseContext, HomeActivity::class.java)) + + } + + Status.ERROR ->{ + stopShowingLoading() + Toast.makeText(baseContext, "Something went wrong", Toast.LENGTH_LONG).show() + } + + Status.EMPTY ->{ + stopShowingLoading() + } + + } + }) + + } +} \ No newline at end of file diff --git a/app/src/main/java/me/gilo/wc/ui/onboarding/SignInActivity.kt b/app/src/main/java/me/gilo/wc/ui/onboarding/SignInActivity.kt index 3d341f6..cbd79f6 100644 --- a/app/src/main/java/me/gilo/wc/ui/onboarding/SignInActivity.kt +++ b/app/src/main/java/me/gilo/wc/ui/onboarding/SignInActivity.kt @@ -11,19 +11,20 @@ import kotlinx.android.synthetic.main.content_sign_in.* import me.gilo.wc.R import me.gilo.wc.common.BaseActivity import me.gilo.wc.common.Status +import me.gilo.wc.ui.WooDroidActivity import me.gilo.wc.ui.home.HomeActivity import me.gilo.wc.ui.state.ProgressDialogFragment +import me.gilo.wc.viewmodels.CustomerViewModel import me.gilo.wc.viewmodels.UserViewModel import org.json.JSONObject import java.util.regex.Matcher import java.util.regex.Pattern -class SignInActivity : BaseActivity() { +class SignInActivity : WooDroidActivity() { - lateinit var viewModel : UserViewModel - val TAG = this::getLocalClassName + override lateinit var viewModel : UserViewModel private lateinit var progressDialog: ProgressDialogFragment private val pattern = Pattern.compile(EMAIL_PATTERN) @@ -107,17 +108,6 @@ class SignInActivity : BaseActivity() { return matcher!!.matches() } - private fun showLoading(title: String, message: String) { - val manager = supportFragmentManager - progressDialog = ProgressDialogFragment.newInstance(title, message) - progressDialog.isCancelable = false - progressDialog.show(manager, "progress") - } - - private fun stopShowingLoading() { - progressDialog.dismiss() - } - companion object { private const val EMAIL_PATTERN = "^[a-zA-Z0-9#_~!$&'()*+,;=:.\"(),:;<>@\\[\\]\\\\]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*$" } diff --git a/app/src/main/java/me/gilo/wc/ui/onboarding/SignUpActivity.kt b/app/src/main/java/me/gilo/wc/ui/onboarding/SignUpActivity.kt index cd73418..b4ff499 100644 --- a/app/src/main/java/me/gilo/wc/ui/onboarding/SignUpActivity.kt +++ b/app/src/main/java/me/gilo/wc/ui/onboarding/SignUpActivity.kt @@ -13,15 +13,16 @@ import me.gilo.wc.common.BaseActivity import me.gilo.wc.common.Status import me.gilo.wc.models.User +import me.gilo.wc.ui.WooDroidActivity import me.gilo.wc.ui.home.HomeActivity import me.gilo.wc.ui.state.ProgressDialogFragment import me.gilo.wc.viewmodels.UserViewModel import java.util.regex.Matcher import java.util.regex.Pattern -class SignUpActivity : BaseActivity() { +class SignUpActivity : WooDroidActivity() { - lateinit var viewModel : UserViewModel + override lateinit var viewModel : UserViewModel val TAG = this::getLocalClassName private lateinit var progressDialog: ProgressDialogFragment @@ -186,17 +187,6 @@ class SignUpActivity : BaseActivity() { return matcher!!.matches() } - private fun showLoading(title: String, message: String) { - val manager = supportFragmentManager - progressDialog = ProgressDialogFragment.newInstance(title, message) - progressDialog.isCancelable = false - progressDialog.show(manager, "progress") - } - - private fun stopShowingLoading() { - progressDialog.dismiss() - } - companion object { private const val EMAIL_PATTERN = "^[a-zA-Z0-9#_~!$&'()*+,;=:.\"(),:;<>@\\[\\]\\\\]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*$" } diff --git a/app/src/main/java/me/gilo/wc/viewmodels/UserViewModel.java b/app/src/main/java/me/gilo/wc/viewmodels/UserViewModel.java index 500cdbf..b2e85cf 100644 --- a/app/src/main/java/me/gilo/wc/viewmodels/UserViewModel.java +++ b/app/src/main/java/me/gilo/wc/viewmodels/UserViewModel.java @@ -29,6 +29,10 @@ public final class UserViewModel extends ViewModel { return firebaseUserRepository.login(username, password); } + public CompletionGenericLiveData anonymousSignIn() { + return firebaseUserRepository.anonymousSignIn(); + } + public CompletionGenericLiveData firebaseLogin(String email, String password) { return firebaseUserRepository.login(email, password); } diff --git a/app/src/main/res/layout/activity_anonymous_sign_in.xml b/app/src/main/res/layout/activity_anonymous_sign_in.xml new file mode 100644 index 0000000..bacaabd --- /dev/null +++ b/app/src/main/res/layout/activity_anonymous_sign_in.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index edba38f..0c020ed 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,5 +1,5 @@ - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/content_anonymous_sign_in.xml b/app/src/main/res/layout/content_anonymous_sign_in.xml new file mode 100644 index 0000000..e862d92 --- /dev/null +++ b/app/src/main/res/layout/content_anonymous_sign_in.xml @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a1c478a..6967612 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -45,5 +45,6 @@ CartActivity CheckoutActivity + AnonymousSignInActivity