diff --git a/GameSDKDemo/build.gradle b/GameSDKDemo/build.gradle index 4d9217b..dd05d23 100644 --- a/GameSDKDemo/build.gradle +++ b/GameSDKDemo/build.gradle @@ -36,7 +36,7 @@ repositories { } android { - compileSdkVersion 27 + compileSdkVersion 28 buildToolsVersion '28.0.3' signingConfigs { @@ -71,8 +71,8 @@ android { abortOnError false } compileOptions { - sourceCompatibility JavaVersion.VERSION_1_7 - targetCompatibility JavaVersion.VERSION_1_7 + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 } applicationVariants.all { variant -> @@ -85,12 +85,15 @@ android { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'com.android.support:support-v4:27.1.1' +// implementation 'com.android.support:support-v4:27.1.1' + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.fragment:fragment:1.1.0' + implementation 'com.google.android.material:material:1.0.0' testImplementation 'junit:junit:4.12' - implementation 'com.android.support:appcompat-v7:27.1.1' - implementation 'com.android.support:design:27.1.1' +// implementation 'com.android.support:appcompat-v7:27.1.1' +// implementation 'com.android.support:design:27.1.1' // implementation project(':GameSDK') // implementation project(':IAP5Helper') - implementation 'com.gumptech.sdk:GameSDK:4.7.8' -// implementation 'com.gumptech.sdk:SamsungIAP:5.1.1' + implementation 'com.gumptech.sdk:GameSDK:4.8.0' +// implementation 'com.gump.game.sdk:SamsungIAP:5.1.1' } diff --git a/GameSDKDemo/proguard-rules.pro b/GameSDKDemo/proguard-rules.pro index 145067f..154b80b 100644 --- a/GameSDKDemo/proguard-rules.pro +++ b/GameSDKDemo/proguard-rules.pro @@ -1,6 +1,6 @@ # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified -# in D:\DevTools\android-com.gumptech.sdk-windows/tools/proguard/proguard-android.txt +# in D:\DevTools\android-gump.gamee.sdk-windows/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the proguardFiles # directive in build.gradle. # diff --git a/GameSDKDemo/src/androidTest/java/com/gump/game/sdk/demo/ApplicationTest.java b/GameSDKDemo/src/androidTest/java/com/gump/game/sdk/demo/ApplicationTest.java new file mode 100644 index 0000000..6f0831e --- /dev/null +++ b/GameSDKDemo/src/androidTest/java/com/gump/game/sdk/demo/ApplicationTest.java @@ -0,0 +1,13 @@ +package com.gump.game.sdk.demo; + +import android.app.Application; +import android.test.ApplicationTestCase; + +/** + * Testing Fundamentals + */ +public class ApplicationTest extends ApplicationTestCase { + public ApplicationTest() { + super(Application.class); + } +} \ No newline at end of file diff --git a/GameSDKDemo/src/androidTest/java/com/gumptech/sdk/demo/ApplicationTest.java b/GameSDKDemo/src/androidTest/java/com/gumptech/sdk/demo/ApplicationTest.java deleted file mode 100644 index 9e9221f..0000000 --- a/GameSDKDemo/src/androidTest/java/com/gumptech/sdk/demo/ApplicationTest.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gumptech.sdk.demo; - -import android.app.Application; -import android.test.ApplicationTestCase; - -/** - * Testing Fundamentals - */ -public class ApplicationTest extends ApplicationTestCase { - public ApplicationTest() { - super(Application.class); - } -} \ No newline at end of file diff --git a/GameSDKDemo/src/main/AndroidManifest.xml b/GameSDKDemo/src/main/AndroidManifest.xml index d201237..800f5c7 100644 --- a/GameSDKDemo/src/main/AndroidManifest.xml +++ b/GameSDKDemo/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.gump.game.sdk.demo"> @@ -17,7 +17,7 @@ android:icon="@drawable/ic_launcher" android:label="@string/app_name"> { + if (btnLoginOrLogout.getTag() == null || (Integer) btnLoginOrLogout.getTag() == 0) + GameSDK.login(MainActivity.this); + else + GameSDK.logout(MainActivity.this); + }); + btnCheckState.setOnClickListener(v -> { + GameSDK.iapUsable(MainActivity.this, serverId, roleId, usable -> { + btnIap.setEnabled(usable); + btnPay.setEnabled(!usable); + }); + }); + btnPay = findViewById(R.id.pay); + btnPay.setOnClickListener(v -> { + PaymentInfoSubmitFragment submitFragment = PaymentInfoSubmitFragment.newInstance(payInfo -> GameSDK.pay(MainActivity.this, payInfo, MainActivity.this)); + submitFragment.show(getSupportFragmentManager(), "pay"); + }); + btnIap = findViewById(R.id.iap); + btnIap.setOnClickListener(v -> { + PaymentInfoSubmitFragment submitFragment = PaymentInfoSubmitFragment.newInstance(payInfo -> GameSDK.iap(MainActivity.this, payInfo, MainActivity.this)); + submitFragment.show(getSupportFragmentManager(), "iap"); + }); + + + Log.i("DEMO", "country:" + Locale.getDefault().getCountry() + ",language:" + Locale.getDefault().getLanguage()); + + GameSDK.getSettings().setDebug(false); + /** + * 设置是否打印debug日志 + */ + GameSDK.getSettings().enableDebugLogging(true); + /** + * 设置启用facebook登录 + */ + GameSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_FB); + + /** + * 设置启用google登录 + */ + GameSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_GOOGLE); + + /** + * 设置启用Line登录 + */ + GameSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_LINE); + + + /** + * 设置用户登录状态监听器 + */ + + GameSDK.setUserStateListener(new LoginStateListener() { + @Override + public void onLoginSuccess(GumpUser user) { + btnCheckState.setEnabled(true); + gumpUser = user; + String userType = null; + switch (user.getAccountType()) { + case GumpPreference.ACCOUNT_TYPE_FB: + userType = "Facebook登录"; + String fbToken = FBAccessToken.getCurrentAccessToken().getToken(); + Log.d(TAG, "FBAccessToken:" + fbToken); + break; + case GumpPreference.ACCOUNT_TYPE_QUICK_REG: + userType = "快速登录"; + break; + case GumpPreference.ACCOUNT_TYPE_REG: + userType = "gump注册用户"; + break; + case GumpPreference.ACCOUNT_TYPE_GOOGLE: + userType = "google 登录"; + break; + case GumpPreference.ACCOUNT_TYPE_LINE: + userType = "Line登录"; + break; + } + userInfo.setText(" Userid:" + user.getUid() + "\n accountType:(" + user.getAccountType() + ") " + userType + "\n sessionKey:" + user.getSessionKey() + .getToken()); + btnLoginOrLogout.setText("Logout"); + btnLoginOrLogout.setTag(1); + } + + @Override + public void onLoginFailed(int code, String msg) { + userInfo.setText(msg); + Toast.makeText(MainActivity.this, "Login failed:code=" + code + ",message=" + msg, Toast.LENGTH_SHORT).show(); + } + + @Override + public void onLoginCanceled() { + Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show(); + } + + @Override + public void onLogout() { + btnLoginOrLogout.setText("Login"); + btnLoginOrLogout.setTag(0); + userInfo.setText("User is logout"); + } + + @Override + public void onPermissionDenied(String[] deniedPermissions) { + StringBuilder sb = new StringBuilder(); + for (String s : deniedPermissions) { + sb.append(s); + sb.append(","); + } + Toast.makeText(MainActivity.this, "Permission denied:" + sb.toString(), Toast.LENGTH_SHORT).show(); + } + }); + /** + * 初始化sdk + */ + GameSDK.init(getApplicationContext(), appId); + + tvVersion.setText("SDK Version:" + GameSDK.getVersion()); + + } + + private void checkRisk() { + GameSDK.inspectRiskLevel(this, isRisk -> Log.i(TAG, isRisk ? "There is some risks" : "Nothing is risk")); + } + + @Override + public void onPurchaseCompleted() { + Log.i(TAG, "purchase completed"); + } + + @Override + public void onPurchaseError(int code, String msg) { + Log.i(TAG, "purchase error:"+code+","+msg); + } + + @Override + public void onPurchaseCanceled() { + Log.i(TAG, "purchase canceled"); + } + + +} diff --git a/GameSDKDemo/src/main/java/com/gump/game/sdk/demo/PaymentInfoSubmitFragment.java b/GameSDKDemo/src/main/java/com/gump/game/sdk/demo/PaymentInfoSubmitFragment.java new file mode 100644 index 0000000..e4a6d40 --- /dev/null +++ b/GameSDKDemo/src/main/java/com/gump/game/sdk/demo/PaymentInfoSubmitFragment.java @@ -0,0 +1,142 @@ +package com.gump.game.sdk.demo; + + +import android.app.AlertDialog; +import android.app.Dialog; +import android.os.Bundle; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.view.LayoutInflater; +import android.view.View; + +import com.google.android.material.textfield.TextInputLayout; + +import androidx.annotation.NonNull; +import androidx.fragment.app.DialogFragment; + + +public class PaymentInfoSubmitFragment extends DialogFragment { + + interface OnSubmitListener { + void onSubmit(Bundle payInfo); + } + + private OnSubmitListener listener; + + TextInputLayout etProduct, + etAmount, + etCurrency, + etServerId, + etRoleId, + etExtra; + + + + public static PaymentInfoSubmitFragment newInstance(OnSubmitListener listener) { + PaymentInfoSubmitFragment fragment = new PaymentInfoSubmitFragment(); + fragment.listener = listener; + return fragment; + } + + @NonNull + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + View view = LayoutInflater.from(getContext()).inflate(R.layout.fragment_payment, null, false); + etProduct = view.findViewById(R.id.product); + etAmount = view.findViewById(R.id.amount); + etCurrency = view.findViewById(R.id.currency); + etServerId = view.findViewById(R.id.server_id); + etRoleId = view.findViewById(R.id.role_id); + etExtra = view.findViewById(R.id.extra); + etProduct.getEditText().addTextChangedListener(new EditTextWatcher(etProduct)); + etAmount.getEditText().addTextChangedListener(new EditTextWatcher(etAmount)); + etCurrency.getEditText().addTextChangedListener(new EditTextWatcher(etCurrency)); + etServerId.getEditText().addTextChangedListener(new EditTextWatcher(etServerId)); + etRoleId.getEditText().addTextChangedListener(new EditTextWatcher(etRoleId)); + etExtra.getEditText().addTextChangedListener(new EditTextWatcher(etExtra)); + //设置默认值 + etProduct.getEditText().setText("EV1.test.abc"); + etAmount.getEditText().setText("0.99"); + etCurrency.getEditText().setText("USD"); + etServerId.getEditText().setText("100"); + etRoleId.getEditText().setText("41080"); + view.findViewById(R.id.submit).setOnClickListener(v -> { + String product = etProduct.getEditText().getText().toString(); + String currency = etCurrency.getEditText().getText().toString(); + String serverId = etServerId.getEditText().getText().toString(); + String roleId = etRoleId.getEditText().getText().toString(); + String extra = etExtra.getEditText().getText().toString(); + String amount = etAmount.getEditText().getText().toString(); + if (checkInput(product, amount, currency, serverId, roleId, extra)) { + Bundle payInfo = new Bundle(); + payInfo.putString("product", product); + payInfo.putFloat("amount", Float.valueOf(amount)); + payInfo.putString("extraInfo", extra); + payInfo.putString("serverId", serverId); + payInfo.putString("roleId", roleId); + payInfo.putString("currency", currency); + if (listener != null) { + listener.onSubmit(payInfo); + } + dismiss(); + } + }); + AlertDialog dialog = builder.setView(view).create(); + return dialog; + } + + + private boolean checkInput(String product, String amount, String currency, String serverId, String roleId, String extra) { + if (TextUtils.isEmpty(product)) { + etProduct.setError("product is empty"); + return false; + } + if (TextUtils.isEmpty(currency)) { + etCurrency.setError("currency is empty"); + return false; + } + if (TextUtils.isEmpty(serverId)) { + etServerId.setError("serverId is empty"); + return false; + } + if (TextUtils.isEmpty(roleId)) { + etRoleId.setError("roleId is empty"); + return false; + } + if (TextUtils.isEmpty(extra)) { + etExtra.setError("extra is empty"); + return false; + } + if (TextUtils.isEmpty(amount)) { + etAmount.setError("amount is empty"); + return false; + } + return true; + } + + class EditTextWatcher implements TextWatcher { + + private TextInputLayout editText; + + public EditTextWatcher(TextInputLayout editText) { + this.editText = editText; + } + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + editText.setError(null); + } + + @Override + public void afterTextChanged(Editable s) { + + } + } +} diff --git a/GameSDKDemo/src/main/java/com/gumptech/sdk/demo/MainActivity.java b/GameSDKDemo/src/main/java/com/gumptech/sdk/demo/MainActivity.java deleted file mode 100644 index df67cb5..0000000 --- a/GameSDKDemo/src/main/java/com/gumptech/sdk/demo/MainActivity.java +++ /dev/null @@ -1,266 +0,0 @@ -package com.gumptech.sdk.demo; - -import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; -import android.util.Log; -import android.view.View; -import android.widget.Button; -import android.widget.TextView; -import android.widget.Toast; - -import com.gumptech.sdk.GumpPreference; -import com.gumptech.sdk.GumpSDK; -import com.gumptech.sdk.PaymentVersion; -import com.gumptech.sdk.SDKSettings; -import com.gumptech.sdk.bean.GumpUser; -import com.gumptech.sdk.bean.PurchaseResult; -import com.gumptech.sdk.callback.InitializeCallback; -import com.gumptech.sdk.callback.LoginStateListener; -import com.gumptech.sdk.callback.PurchaseCallback; -import com.gumptech.sdk.callback.ResultCallback; -import com.gumptech.sdk.passport.fb.FBAccessToken; - -import java.util.Locale; - -public class MainActivity extends AppCompatActivity implements PurchaseCallback { - - private static final String TAG = "MainActivity"; - - private TextView tvVersion; - private TextView userInfo; - - private Button btnLoginOrLogout; - private Button btnInit; - private Button btnCheckState; - private Button btnPay; - private Button btnIap; - - private String appId = "100"; - private String appKey = "f899139df5e1059396431415e770c6dd"; - private GumpUser gumpUser; - - /** - * 测试数据 - */ - String serverId = "100"; - String roleId = "41080"; - - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - - tvVersion = findViewById(R.id.version); - userInfo = findViewById(R.id.user_info); - btnLoginOrLogout = findViewById(R.id.login_or_logout); - btnInit = findViewById(R.id.init); - btnCheckState = findViewById(R.id.check_state); - btnLoginOrLogout.setOnClickListener(new View.OnClickListener() { - - @Override - public void onClick(View v) { - if (btnLoginOrLogout.getTag() == null || (Integer) btnLoginOrLogout.getTag() == 0) - GumpSDK.start(MainActivity.this); - else - GumpSDK.logout(MainActivity.this); - } - }); - btnInit.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - btnInit.setEnabled(false); - GumpSDK.init(getApplicationContext(), appId, appKey, "1000", new InitializeCallback() { - @Override - public void initComplete(int result) { - if (result == GumpSDK.CODE.OK) { - btnLoginOrLogout.setEnabled(true); - userInfo.setText("initialization has finished"); - } else { - btnInit.setEnabled(true); - userInfo.setText("initialization has error"); - } - } - }); - } - }); - btnCheckState.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { -// btnCheckState.setEnabled(false); - GumpSDK.shouldUseCoPay(MainActivity.this, serverId, roleId, new ResultCallback() { - @Override - public void onResult(boolean isRisk) { - btnIap.setEnabled(isRisk); - btnPay.setEnabled(isRisk); - } - }); - } - }); - btnPay = findViewById(R.id.pay); - btnPay.setOnClickListener(new View.OnClickListener() { - - @Override - public void onClick(View v) { - PaymentInfoSubmitFragment submitFragment = PaymentInfoSubmitFragment.newInstance(new PaymentInfoSubmitFragment.OnSubmitListener() { - @Override - public void onSubmit(Bundle payInfo) { - GumpSDK.pay(MainActivity.this, payInfo, MainActivity.this); - } - }); - submitFragment.show(getSupportFragmentManager(), "pay"); - } - }); - btnIap = findViewById(R.id.iap); - btnIap.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - PaymentInfoSubmitFragment submitFragment = PaymentInfoSubmitFragment.newInstance(new PaymentInfoSubmitFragment.OnSubmitListener() { - @Override - public void onSubmit(Bundle payInfo) { - GumpSDK.iap(MainActivity.this, payInfo, MainActivity.this); - } - }); - submitFragment.show(getSupportFragmentManager(), "iap"); - } - }); - - - Log.i("DEMO", "country:" + Locale.getDefault().getCountry() + ",language:" + Locale.getDefault().getLanguage()); - - GumpSDK.getSettings().setDebug(false); - /** - * 设置是否打印debug日志 - */ - GumpSDK.getSettings().enableDebugLogging(true); - /** - * 设置启用facebook登录 - */ - GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_FB); - - /** - * 设置启用google登录 - */ - GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_GOOGLE); - - /** - * 设置启用Line登录 - */ - GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_LINE); - - /** - * 设置支付版本 - */ - GumpSDK.getSettings().setPaymentVersion(PaymentVersion.V4); - - /** - * 设置用户登录状态监听器 - */ - - GumpSDK.setUserStateListener(new LoginStateListener() { - @Override - public void onLoginSuccess(GumpUser user) { - btnCheckState.setEnabled(true); - gumpUser = user; - String userType = null; - switch (user.getAccountType()) { - case GumpPreference.ACCOUNT_TYPE_FB: - userType = "Facebook登录"; - String fbToken = FBAccessToken.getCurrentAccessToken().getToken(); - Log.d(TAG, "FBAccessToken:" + fbToken); - break; - case GumpPreference.ACCOUNT_TYPE_QUICK_REG: - userType = "快速登录"; - break; - case GumpPreference.ACCOUNT_TYPE_REG: - userType = "gump注册用户"; - break; - case GumpPreference.ACCOUNT_TYPE_GOOGLE: - userType = "google 登录"; - break; - case GumpPreference.ACCOUNT_TYPE_LINE: - userType = "Line登录"; - break; - } - userInfo.setText(" Userid:" + user.getUid() + "\n accountType:(" + user.getAccountType() + ") " + userType + "\n sessionKey:" + user.getSessionKey() - .getToken()); - btnLoginOrLogout.setText("Logout"); - btnLoginOrLogout.setTag(1); - } - - @Override - public void onLoginFailed(int code, String msg) { - userInfo.setText(msg); - Toast.makeText(MainActivity.this, "Login failed:code=" + code + ",message=" + msg, Toast.LENGTH_SHORT).show(); - } - - @Override - public void onLoginCanceled() { - Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show(); - } - - @Override - public void onLogout() { - btnLoginOrLogout.setText("Login"); - btnLoginOrLogout.setTag(0); - userInfo.setText("User is logout"); - } - - @Override - public void onPermissionDenied(String[] deniedPermissions) { - StringBuilder sb = new StringBuilder(); - for (String s : deniedPermissions) { - sb.append(s); - sb.append(","); - } - Toast.makeText(MainActivity.this, "Permission denied:" + sb.toString(), Toast.LENGTH_SHORT).show(); - } - }); - /** - * 初始化sdk - */ - GumpSDK.init(getApplicationContext(), appId, appKey, "1000", new InitializeCallback() { - @Override - public void initComplete(int result) { - if (result == GumpSDK.CODE.OK) { - btnLoginOrLogout.setEnabled(true); - userInfo.setText("initialization has finished"); - - //checkRisk(); - } else { - btnInit.setEnabled(true); - userInfo.setText("initialization has error"); - } - } - }); - - tvVersion.setText("SDK Version:" + GumpSDK.getVersion()); - - } - - private void checkRisk() { - GumpSDK.checkRisk(this, new ResultCallback() { - @Override - public void onResult(boolean isRisk) { - Log.i(TAG, isRisk ? "There is some risks" : "Nothing is risk"); - } - }); - } - - @Override - public void onPurchaseCompleted(PurchaseResult result) { - Log.i(TAG, "purchase completed"); - } - - @Override - public void onPurchaseError(int code, String msg) { - Log.i(TAG, "purchase error:"+code+","+msg); - } - - @Override - public void onPurchaseCanceled() { - Log.i(TAG, "purchase canceled"); - } - - -} diff --git a/GameSDKDemo/src/main/java/com/gumptech/sdk/demo/PaymentInfoSubmitFragment.java b/GameSDKDemo/src/main/java/com/gumptech/sdk/demo/PaymentInfoSubmitFragment.java deleted file mode 100644 index ab05d43..0000000 --- a/GameSDKDemo/src/main/java/com/gumptech/sdk/demo/PaymentInfoSubmitFragment.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.gumptech.sdk.demo; - - -import android.app.AlertDialog; -import android.app.Dialog; -import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.design.widget.TextInputLayout; -import android.support.v4.app.DialogFragment; -import android.text.Editable; -import android.text.TextUtils; -import android.text.TextWatcher; -import android.view.LayoutInflater; -import android.view.View; - - - -public class PaymentInfoSubmitFragment extends DialogFragment { - - interface OnSubmitListener { - void onSubmit(Bundle payInfo); - } - - private OnSubmitListener listener; - - TextInputLayout etProduct, - etAmount, - etCurrency, - etServerId, - etRoleId, - etExtra; - - - - public static PaymentInfoSubmitFragment newInstance(OnSubmitListener listener) { - PaymentInfoSubmitFragment fragment = new PaymentInfoSubmitFragment(); - fragment.listener = listener; - return fragment; - } - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - View view = LayoutInflater.from(getContext()).inflate(R.layout.fragment_payment, null, false); - etProduct = view.findViewById(R.id.product); - etAmount = view.findViewById(R.id.amount); - etCurrency = view.findViewById(R.id.currency); - etServerId = view.findViewById(R.id.server_id); - etRoleId = view.findViewById(R.id.role_id); - etExtra = view.findViewById(R.id.extra); - etProduct.getEditText().addTextChangedListener(new EditTextWatcher(etProduct)); - etAmount.getEditText().addTextChangedListener(new EditTextWatcher(etAmount)); - etCurrency.getEditText().addTextChangedListener(new EditTextWatcher(etCurrency)); - etServerId.getEditText().addTextChangedListener(new EditTextWatcher(etServerId)); - etRoleId.getEditText().addTextChangedListener(new EditTextWatcher(etRoleId)); - etExtra.getEditText().addTextChangedListener(new EditTextWatcher(etExtra)); - //设置默认值 - etProduct.getEditText().setText("EV1.test.abc"); - etAmount.getEditText().setText("0.99"); - etCurrency.getEditText().setText("USD"); - etServerId.getEditText().setText("100"); - etRoleId.getEditText().setText("41080"); - view.findViewById(R.id.submit).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - String product = etProduct.getEditText().getText().toString(); - String currency = etCurrency.getEditText().getText().toString(); - String serverId = etServerId.getEditText().getText().toString(); - String roleId = etRoleId.getEditText().getText().toString(); - String extra = etExtra.getEditText().getText().toString(); - String amount = etAmount.getEditText().getText().toString(); - if (checkInput(product, amount, currency, serverId, roleId, extra)) { - Bundle payInfo = new Bundle(); - payInfo.putString("product", product); - payInfo.putFloat("amount", Float.valueOf(amount)); - payInfo.putString("extraInfo", extra); - payInfo.putString("serverId", serverId); - payInfo.putString("roleId", roleId); - payInfo.putString("currency", currency); - if (listener != null) { - listener.onSubmit(payInfo); - } - dismiss(); - } - } - }); - AlertDialog dialog = builder.setView(view).create(); - return dialog; - } - - - private boolean checkInput(String product, String amount, String currency, String serverId, String roleId, String extra) { - if (TextUtils.isEmpty(product)) { - etProduct.setError("product is empty"); - return false; - } - if (TextUtils.isEmpty(currency)) { - etCurrency.setError("currency is empty"); - return false; - } - if (TextUtils.isEmpty(serverId)) { - etServerId.setError("serverId is empty"); - return false; - } - if (TextUtils.isEmpty(roleId)) { - etRoleId.setError("roleId is empty"); - return false; - } - if (TextUtils.isEmpty(extra)) { - etExtra.setError("extra is empty"); - return false; - } - if (TextUtils.isEmpty(amount)) { - etAmount.setError("amount is empty"); - return false; - } - return true; - } - - class EditTextWatcher implements TextWatcher { - - private TextInputLayout editText; - - public EditTextWatcher(TextInputLayout editText) { - this.editText = editText; - } - - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - editText.setError(null); - } - - @Override - public void afterTextChanged(Editable s) { - - } - } -} diff --git a/GameSDKDemo/src/main/res/layout/activity_main.xml b/GameSDKDemo/src/main/res/layout/activity_main.xml index 98ec4a6..8e6ac43 100644 --- a/GameSDKDemo/src/main/res/layout/activity_main.xml +++ b/GameSDKDemo/src/main/res/layout/activity_main.xml @@ -19,19 +19,10 @@ android:textColor="@android:color/black"/>