增加邮件注册界面

This commit is contained in:
zhl 2023-04-27 14:26:39 +08:00
parent 401c56e25e
commit 9236870483
16 changed files with 229 additions and 128 deletions

1
.idea/misc.xml generated
View File

@ -1,4 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DesignSurface">
<option name="filePathToZoomLevelMap">

View File

@ -14,16 +14,9 @@
android:usesCleartextTraffic="true"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
<!-- Tell Cocos2dxActivity the name of our .so -->
<meta-data
android:name="android.app.lib_name"
android:value="cocos2djs" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
<meta-data
android:name="com.facebook.sdk.ClientToken"
android:value="@string/facebook_client_token" />
<meta-data android:name="android.app.lib_name" android:value="cocos2djs" />
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" />
<meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token" />
<provider
android:authorities="com.facebook.app.FacebookContentProvider1204701000119770"
android:name="com.facebook.FacebookContentProvider"
@ -42,7 +35,7 @@
<activity
android:name=".MainActivity"
android:theme="@style/UnityThemeSelector"
android:theme="@style/CebgMainActivity"
android:screenOrientation="userLandscape"
android:launchMode="singleTask"
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection|density"

View File

@ -150,6 +150,7 @@ dependencies {
implementation 'com.android.volley:volley:1.2.1'
implementation 'org.greenrobot:eventbus:3.0.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation "com.google.android.material:material:1.5.0"
implementation 'com.bytedance.ies.ugc.aweme:opensdk-oversea-external:0.2.1.0'
implementation 'com.google.android.play:core:1.10.0' //PAD资源分发
implementation 'com.facebook.android:facebook-core:latest.release'

View File

@ -39,6 +39,7 @@ import com.cege.games.release.activity.CustomCaptureActivity;
import com.cege.games.release.activity.UnityPlayerActivity;
import com.cege.games.release.activity.WebPageActivity;
import com.cege.games.release.apple.AppleLoginActivity;
import com.cege.games.release.dialog.EmailRegistDialog;
import com.cege.games.release.dialog.QRCodeActivity;
import com.facebook.AccessToken;
import com.facebook.CallbackManager;
@ -941,20 +942,20 @@ public class MainActivity extends UnityPlayerActivity
public void signWithEmail(String funId) {
Log.i(TAG, "login with email: " + funId);
// this.funId = funId;
// runOnUiThread(() -> {
// Log.i(TAG, "share to email dialog: ");
// EmailRegistDialog dialog = new EmailRegistDialog(this);
// dialog.show();
// });
this.funId = funId;
runOnUiThread(() -> {
Log.i(TAG, "share to email dialog: ");
EmailRegistDialog dialog = new EmailRegistDialog(this);
dialog.show();
});
// test for biometric
runOnUiThread(() -> {
// authenticateToEncrypt("111111");
String encryptedString = "4aSpiw48tOBccY4vIeYYPA==";
String ivString = "t2Wvy3RH/+9HIK1dI6AITg==";
authenticateToDecrypt(encryptedString, ivString);
});
// runOnUiThread(() -> {
//// authenticateToEncrypt("111111");
// String encryptedString = "4aSpiw48tOBccY4vIeYYPA==";
// String ivString = "t2Wvy3RH/+9HIK1dI6AITg==";
// authenticateToDecrypt(encryptedString, ivString);
// });
}
private void authenticateToEncrypt(String text) {

View File

@ -8,14 +8,14 @@ import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.Window;
//import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentActivity;
import androidx.appcompat.app.AppCompatActivity;
//import androidx.fragment.app.FragmentActivity;
import com.unity3d.player.IUnityPlayerLifecycleEvents;
import com.unity3d.player.MultiWindowSupport;
import com.unity3d.player.UnityPlayer;
public class UnityPlayerActivity extends FragmentActivity implements IUnityPlayerLifecycleEvents
public class UnityPlayerActivity extends AppCompatActivity implements IUnityPlayerLifecycleEvents
{
protected UnityPlayer mUnityPlayer; // don't change the name of this variable; referenced from native code

View File

@ -35,7 +35,7 @@ public class WebPageActivity extends Activity {
webSettings.setDomStorageEnabled(true);
webSettings.setDatabaseEnabled(true);
webSettings.setAllowContentAccess(true);
webSettings.setAppCacheEnabled(true);
// webSettings.setAppCacheEnabled(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);

View File

@ -33,7 +33,7 @@ public class AppleLoginActivity extends Activity {
webSettings.setDomStorageEnabled(true);
webSettings.setDatabaseEnabled(true);
webSettings.setAllowContentAccess(true);
webSettings.setAppCacheEnabled(true);
// webSettings.setAppCacheEnabled(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);

View File

@ -19,11 +19,14 @@ public class BaseDialog extends Dialog {
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
win.setAttributes(lp);
// 启用硬件加速
win.setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
}
public BaseDialog(Context context) {
this(context, 0);
}
}

View File

@ -4,11 +4,13 @@ package com.cege.games.release.dialog;
import android.content.Context;
import android.os.Bundle;
import android.text.InputType;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.cege.games.release.R;
import com.google.android.material.textfield.TextInputLayout;
public class EmailRegistDialog extends BaseDialog {
@ -22,23 +24,23 @@ public class EmailRegistDialog extends BaseDialog {
setContentView(R.layout.email_regist);
setCancelable(false);
// 输入邮箱
TextView emailLabel = findViewById(R.id.email_label);
EditText emailInput = findViewById(R.id.email_input);
emailInput.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
TextInputLayout emailLayout = findViewById(R.id.emailLayout);
TextInputLayout passLayout = findViewById(R.id.passwordLayout);
TextInputLayout codeLayout = findViewById(R.id.verifyCodeLayout);
passLayout.setVisibility(View.GONE);
codeLayout.setVisibility(View.GONE);
// 验证码
TextView codeLabel = findViewById(R.id.code_label);
EditText codeInput = findViewById(R.id.code_input);
codeInput.setInputType(InputType.TYPE_CLASS_NUMBER);
// 确定按钮
Button confirmButton = findViewById(R.id.confirm_button);
confirmButton.setOnClickListener(v -> {
String email = emailInput.getText().toString();
String code = codeInput.getText().toString();
// TODO: 处理登录逻辑
dismiss();
Button nextButton = findViewById(R.id.next_button);
Button preButton = findViewById(R.id.pre_button);
preButton.setVisibility(View.GONE);
nextButton.setOnClickListener(v -> {
// String email = emailInput.getText().toString();
// String code = codeInput.getText().toString();
codeLayout.setVisibility(View.VISIBLE);
preButton.setVisibility(View.VISIBLE);
});
preButton.setOnClickListener(v -> {
preButton.setVisibility(View.GONE);
});
}
}

View File

@ -0,0 +1,5 @@
<vector android:autoMirrored="true" android:height="24dp"
android:tint="#000000" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M15.41,7.41L14,6l-6,6 6,6 1.41,-1.41L10.83,12z"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:autoMirrored="true" android:height="24dp"
android:tint="#000000" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M10,6L8.59,7.41 13.17,12l-4.58,4.59L10,18l6,-6z"/>
</vector>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,56 +1,127 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="24dp">
android:layout_height="match_parent">
<!-- 输入邮箱 -->
<TextView
android:id="@+id/email_label"
android:layout_width="match_parent"
<com.google.android.material.textview.MaterialTextView
android:id="@+id/title_label"
android:layout_width="276dp"
android:layout_height="wrap_content"
android:text="Email:"
android:textSize="18sp"
android:textColor="@android:color/black"/>
android:layout_marginTop="20dp"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="12sp"
android:autoSizeMaxTextSize="30sp"
android:autoSizeStepGranularity="2sp"
android:textColor="@color/colorPrimary"
android:text="What's your email?"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/email_input"
android:layout_width="match_parent"
<com.google.android.material.textview.MaterialTextView
android:id="@+id/desc_label"
android:layout_width="276dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="10dp"
android:text="Enter the email where you can be contacted."
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title_label" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/emailLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:hint="Enter your email"
android:textSize="16sp"
android:textColor="@android:color/black"/>
<!-- 验证码 -->
<TextView
android:id="@+id/code_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Verification Code:"
android:textSize="18sp"
android:textColor="@android:color/black"
android:paddingTop="16dp"/>
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/desc_label"
>
<EditText
android:id="@+id/code_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:hint="Enter the code"
android:textSize="16sp"
android:textColor="@android:color/black"
android:paddingTop="8dp"/>
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:id="@+id/email"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:hint="Email" />
<!-- 确定按钮 -->
<Button
android:id="@+id/confirm_button"
android:layout_width="match_parent"
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/verifyCodeLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Confirm"
android:textSize="18sp"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/emailLayout"
>
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/verifyCode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Confirmation Code"
android:inputType="numberSigned" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/passwordLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/verifyCodeLayout"
app:endIconMode="password_toggle"
app:endIconTint="@color/gray"
>
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:inputType="textPassword" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/next_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="10dp"
android:text="Next"
android:textColor="@android:color/white"
android:background="@color/colorPrimary"
android:layout_marginTop="24dp"/>
</LinearLayout>
app:backgroundTint="@color/buttonBlue"
app:hintAnimationEnabled="false"
app:layout_constraintBottom_toTopOf="@+id/pre_button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/passwordLayout"
app:theme="@style/Theme.MaterialComponents" />
<com.google.android.material.button.MaterialButton
android:id="@+id/pre_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="0dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="10dp"
android:text="Previous"
android:textColor="@android:color/white"
app:backgroundTint="@color/buttonSecondary"
app:hintAnimationEnabled="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/next_button"
app:theme="@style/Theme.MaterialComponents" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -19,16 +19,16 @@ android.useAndroidX=true
android.enableJetifier=true
# Android SDK version that will be used as the compile project
PROP_COMPILE_SDK_VERSION=30
PROP_COMPILE_SDK_VERSION=31
# Android SDK version that will be used as the earliest version of android this application can run on
PROP_MIN_SDK_VERSION=26
# Android SDK version that will be used as the latest version of android this application has been tested on
PROP_TARGET_SDK_VERSION=30
PROP_TARGET_SDK_VERSION=31
# Android Build Tools version that will be used as the compile project
PROP_BUILD_TOOLS_VERSION=30.0.2
PROP_BUILD_TOOLS_VERSION=31.0.0
PROP_APP_ABI=armeabi-v7a:arm64-v8a

View File

@ -7,5 +7,11 @@
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="red">#E91E63</color>
<color name="buttonBlue">#2196f3</color>
<color name="buttonWarning">#ffc107</color>
<color name="buttonSecondary">#6c757d</color>
<color name="gray">#717171</color>
<color name="transparent">#00000000</color>
</resources>

View File

@ -1,38 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="UnityThemeSelector" parent="BaseUnityTheme">
<item name="android:windowBackground">@android:color/black</item>
</style>
<style name="BaseUnityTheme" parent="android:Theme.Holo.Light.NoActionBar.Fullscreen">
</style>
<style name="WebViewTheme" parent="android:Theme.Holo.Light.NoActionBar.Fullscreen">
<item name="windowActionBar">false</item>
<item name="colorPrimary">@android:color/black</item>
<item name="colorPrimaryDark">@android:color/black</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:statusBarColor">@color/zxl_capture_status_bar_color</item>
<item name="android:navigationBarColor">@color/zxl_capture_navigation_bar_color</item>
<item name="android:windowAnimationStyle">@style/WebviewAnimator</item>
<style name="CebgMainActivity" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@android:color/black</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
</style>
<style name="UnityThemeSelector.Translucent" parent="@style/UnityThemeSelector">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<style name="DialogStyle" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowBackground">@color/white</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@color/white</item>
</style>
<style name="Dialog_bottom_enter_ani">
<item name="android:windowEnterAnimation">@anim/dlg_enter</item>
<item name="android:windowExitAnimation">@anim/dlg_exit</item>
</style>
<style name="WebviewAnimator">
<item name="android:windowEnterAnimation">@anim/translate_in</item>
<item name="android:windowExitAnimation">@anim/translate_out</item>
</style>
<style name="WebViewTheme" parent="android:Theme.Holo.Light.NoActionBar.Fullscreen">
<item name="windowActionBar">false</item>
<item name="colorPrimary">@android:color/black</item>
<item name="colorPrimaryDark">@android:color/black</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:statusBarColor">@color/zxl_capture_status_bar_color</item>
<item name="android:navigationBarColor">@color/zxl_capture_navigation_bar_color</item>
<item name="android:windowAnimationStyle">@style/WebviewAnimator</item>
</style>
<style name="UnityThemeSelector.Translucent" parent="@style/UnityThemeSelector">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<style name="DialogStyle" parent="@style/Theme.MaterialComponents.Light.Dialog.Bridge" />
<!--<style name="DialogStyle" parent="@android:style/Theme.Dialog">-->
<!-- <item name="android:windowFrame">@null</item>-->
<!-- <item name="android:windowBackground">@color/white</item>-->
<!-- <item name="android:windowNoTitle">true</item>-->
<!-- <item name="android:windowIsFloating">true</item>-->
<!-- <item name="android:windowContentOverlay">@color/white</item>-->
<!--</style>-->
<style name="Dialog_bottom_enter_ani">
<item name="android:windowEnterAnimation">@anim/dlg_enter</item>
<item name="android:windowExitAnimation">@anim/dlg_exit</item>
</style>
<style name="WebviewAnimator">
<item name="android:windowEnterAnimation">@anim/translate_in</item>
<item name="android:windowExitAnimation">@anim/translate_out</item>
</style>
</resources>