Преглед изворни кода

小绵羊授权游戏sdk功能:
1.由自动授权修改为用户手动点击按钮授权
2.修复跳转登录授权到游戏后,再次启动小绵羊停留在登录界面,重启后又是已经登录状态的bug

zengjiebin пре 7 година
родитељ
комит
8b893b8c7a

+ 1 - 0
app/src/main/java/com/sheep/gamegroup/util/CertificationUtil.java

@@ -45,6 +45,7 @@ public class CertificationUtil {
                 SheepApp.getInstance().setGamePackgeName("");
                 SheepApp.getInstance().setGameCode("");
                 SheepApp.getInstance().setGameFlag(false);
+                ActivityManager.getInstance().finishAllActivity();
                 G.showToast(errorMsg);
                 SheepApp.getInstance().quit();
 //                android.os.Process.killProcess(android.os.Process.myPid());

+ 26 - 11
app/src/main/java/com/sheep/gamegroup/view/activity/GameCertificationActivity.java

@@ -42,8 +42,12 @@ public class GameCertificationActivity extends BaseActivity {
     TextView invite_num_tv;
     @BindView(R.id.user_icon_iv)
     ImageView user_icon_iv;
+    @BindView(R.id.loading_view_img)
+    View loading_view_img;
     @BindView(R.id.change_account_tv)
     TextView change_account_tv;
+    @BindView(R.id.change_commit)
+    TextView change_commit;
     @BindView(R.id.empty_view)
     View empty_view;
 
@@ -72,7 +76,6 @@ public class GameCertificationActivity extends BaseActivity {
     public void initData() {
         extras = getIntent().getExtras();
         userEntity = DataUtil.getInstance().getUserEntity();
-
         if (extras != null) {
             SheepApp.getInstance().setGameCode(extras.getString(getString(R.string.kfzs_duanduan_datashare_game_code), ""));
             packgeName = extras.getString(getString(R.string.kfzs_duanduan_datashare_package_name), "");
@@ -82,12 +85,12 @@ public class GameCertificationActivity extends BaseActivity {
                 return;
             }
             hasToken();
-        }else {
+        } else {
             CertificationUtil.newInstance().showCertificationErrorAndExitApp("",2000);
         }
     }
 
-    @OnClick({R.id.icon_iv, R.id.change_account_tv})
+    @OnClick({R.id.icon_iv, R.id.change_account_tv, R.id.change_commit})
     public void onViewClicked(View view) {
         switch (view.getId()) {
             case R.id.icon_iv:
@@ -97,8 +100,25 @@ public class GameCertificationActivity extends BaseActivity {
                 isChangeAccount = true;
                 Jump2View.getInstance().goLoginView(activity,SheepApp.getInstance().getGameCode());
                 break;
+            case R.id.change_commit:
+                commitChange();
+                break;
         }
     }
+
+    private void commitChange() {
+        loading_view_img.setVisibility(View.VISIBLE);
+        change_commit.setText(R.string.change_login_ing);
+        change_commit.setEnabled(false);
+        new Handler().postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                if(!isChangeAccount)
+                    CertificationUtil.newInstance().authCerticicationCode(activity);
+            }
+        },3000);
+    }
+
     /**
      * 是否登录
      * 请求授权
@@ -133,18 +153,13 @@ public class GameCertificationActivity extends BaseActivity {
         name_tv.setText(userEntity.getNickname());
         invite_num_tv.setText(userEntity.getInvitation_code()+"");
         GlideImageLoader.setAvatar(user_icon_iv, userEntity.getAvatar());
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                if(!isChangeAccount)
-                    CertificationUtil.newInstance().authCerticicationCode(activity);
-            }
-        },3000);
     }
 
     @Override
     public void onBackPressed() {
         super.onBackPressed();
-        SheepApp.getInstance().setGameFlag(true);
+        if (!TextUtils.isEmpty(SheepApp.getInstance().getGamePackgeName())){
+            SheepApp.getInstance().setGameFlag(true);
+        }
     }
 }

+ 7 - 2
app/src/main/java/com/sheep/gamegroup/view/activity/LoginAct.java

@@ -97,6 +97,10 @@ public class LoginAct extends BaseUMActivity implements LoginContract.View {
     @Override
     public void initView() {
         activity = this;
+        if(!TextUtils.isEmpty(SpUtils.getToken(activity))){
+            Jump2View.getInstance().newTaskTopStartAct(this, SplashAct.class, null);
+            finish();
+        }
         DaggerLoginComponent.builder()
                 .netComponent(SheepApp.getInstance().getNetComponent())
                 .loginModule(new LoginModule(this))
@@ -461,7 +465,8 @@ public class LoginAct extends BaseUMActivity implements LoginContract.View {
     @Override
     public void onBackPressed() {
         super.onBackPressed();
-
-        SheepApp.getInstance().setGameFlag(true);
+        if (!TextUtils.isEmpty(SheepApp.getInstance().getGamePackgeName())){
+            SheepApp.getInstance().setGameFlag(true);
+        }
     }
 }

+ 1 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/SplashAct.java

@@ -96,6 +96,7 @@ public class SplashAct extends BaseActivity implements EasyPermissions.Permissio
             setTheme(R.style.FullScreenTheme);
             super.onCreate(savedInstanceState);
             if (!isTaskRoot()) {
+                LogUtil.println("SheepApp SplashAct isTaskRoot");
                 finish();
             }
         } catch (Exception e) {

+ 1 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -401,6 +401,7 @@ public class SheepApp extends MultiDexApplication {
         @Override
         public void onActivityDestroyed(Activity activity) {
             if (!TextUtils.isEmpty(gamePackgeName) && isGameFlag() && (activity instanceof GameCertificationActivity || activity instanceof LoginAct)) {
+                setGameFlag(false);
                 CertificationUtil.newInstance().doCertification(activity, gamePackgeName, "delete");
             }
             if (mActivityCount == 0) {

+ 50 - 48
app/src/main/res/layout/act_game_certification.xml

@@ -1,117 +1,121 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout 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="match_parent"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:orientation="vertical">
 
-    <include
-        layout="@layout/title"/>
+    <include layout="@layout/title" />
+
     <ScrollView
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:scrollbars="none">
+
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:orientation="vertical">
+
             <include
                 android:id="@+id/empty_view"
                 layout="@layout/empty_view"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:layout_below="@+id/check_net_ll"
-                android:visibility="gone"/>
+                android:visibility="gone" />
 
             <android.support.constraint.ConstraintLayout
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
-                android:background="@color/white"
                 android:layout_marginTop="@dimen/content_padding_30"
+                android:background="@color/white"
                 android:paddingBottom="@dimen/content_padding_15">
+
                 <ImageView
                     android:id="@+id/icon_iv"
                     android:layout_width="@dimen/view_size_90"
                     android:layout_height="@dimen/view_size_90"
+                    android:layout_marginBottom="@dimen/content_padding_9"
                     android:src="@mipmap/icon"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintBottom_toTopOf="@+id/app_name_tv"
-                    android:layout_marginBottom="@dimen/content_padding_9"/>
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintStart_toStartOf="parent" />
 
                 <TextView
                     android:id="@+id/app_name_tv"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
+                    android:layout_marginBottom="@dimen/content_padding_40"
                     android:text="小绵羊授权登录"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    android:textSize="@dimen/text_size_16"
                     android:textColor="@color/black"
+                    android:textSize="@dimen/text_size_16"
                     app:layout_constraintBottom_toTopOf="@+id/user_icon_iv"
-                    android:layout_marginBottom="@dimen/content_padding_40"/>
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintStart_toStartOf="parent" />
 
 
                 <TextView
+                    android:id="@+id/name_tv"
+                    style="@style/txt_style_15_black"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:id="@+id/name_tv"
+                    android:layout_marginLeft="@dimen/content_padding_30"
+                    android:layout_marginTop="@dimen/content_padding_5"
                     android:text=""
-                    style="@style/txt_style_15_black"
                     app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toTopOf="@+id/user_icon_iv"
-                    android:layout_marginLeft="@dimen/content_padding_30"
-                    android:layout_marginTop="@dimen/content_padding_5"/>
+                    app:layout_constraintTop_toTopOf="@+id/user_icon_iv" />
 
                 <TextView
+                    android:id="@+id/invite_num_tv"
+                    style="@style/txt_style_15_black"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:id="@+id/invite_num_tv"
+                    android:layout_marginLeft="@dimen/content_padding_30"
+                    android:layout_marginBottom="@dimen/content_padding_5"
                     android:text=""
-                    style="@style/txt_style_15_black"
                     app:layout_constraintBottom_toBottomOf="@+id/user_icon_iv"
-                    app:layout_constraintStart_toStartOf="parent"
-                    android:layout_marginLeft="@dimen/content_padding_30"
-                    android:layout_marginBottom="@dimen/content_padding_5"/>
+                    app:layout_constraintStart_toStartOf="parent" />
 
                 <ImageView
                     android:id="@+id/user_icon_iv"
                     android:layout_width="55dp"
                     android:layout_height="55dp"
-                    android:src="@mipmap/icon"
                     android:layout_alignParentRight="true"
-                    app:layout_constraintTop_toTopOf="parent"
-                    app:layout_constraintBottom_toBottomOf="parent"
                     android:layout_marginRight="@dimen/content_padding_30"
+                    android:paddingTop="@dimen/content_padding_3"
+                    android:src="@mipmap/icon"
+                    app:layout_constraintBottom_toBottomOf="parent"
                     app:layout_constraintEnd_toEndOf="parent"
-                    android:paddingTop="@dimen/content_padding_3"/>
+                    app:layout_constraintTop_toTopOf="parent" />
 
                 <View
                     android:layout_width="match_parent"
                     android:layout_height="1px"
+                    android:layout_marginTop="@dimen/content_padding_5"
                     android:background="@color/gray_5"
-                    app:layout_constraintTop_toBottomOf="@+id/user_icon_iv"
-                    android:layout_marginTop="@dimen/content_padding_5"/>
+                    app:layout_constraintTop_toBottomOf="@+id/user_icon_iv" />
+
                 <View
                     android:layout_width="match_parent"
                     android:layout_height="1px"
+                    android:layout_marginBottom="@dimen/content_padding_5"
                     android:background="@color/gray_5"
-                    app:layout_constraintBottom_toTopOf="@+id/user_icon_iv"
-                    android:layout_marginBottom="@dimen/content_padding_5"/>
+                    app:layout_constraintBottom_toTopOf="@+id/user_icon_iv" />
 
                 <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
                     android:id="@+id/change_account_tv"
-                    android:text="账号登录"
                     style="@style/txt_style_15_black"
-                    app:layout_constraintStart_toStartOf="parent"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
                     android:layout_marginLeft="@dimen/content_padding_30"
+                    android:layout_marginTop="@dimen/content_padding_20"
                     android:layout_marginBottom="@dimen/content_padding_5"
+                    android:text="账号登录"
                     android:textColor="#36A5ED"
                     android:textSize="18sp"
-                    app:layout_constraintTop_toBottomOf="@+id/user_icon_iv"
-                    android:layout_marginTop="@dimen/content_padding_20"/>
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toBottomOf="@+id/user_icon_iv" />
 
 
                 <com.github.ybq.android.spinkit.SpinKitView
@@ -119,22 +123,20 @@
                     style="@style/SpinKitView.Large.ThreeBounce"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    app:SpinKit_Color="@color/colorAccent"
+                    android:visibility="invisible"
                     android:layout_marginTop="@dimen/content_padding_20"
-                    app:layout_constraintTop_toBottomOf="@+id/change_account_tv"
+                    app:SpinKit_Color="@color/colorAccent"
+                    app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintEnd_toEndOf="parent"/>
+                    app:layout_constraintTop_toBottomOf="@+id/change_account_tv" />
+
                 <TextView
-                    style="@style/style_empty_text"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_centerHorizontal="true"
-                    android:layout_marginTop="@dimen/content_padding_8"
-                    android:text="登录授权认证中..."
-                    app:layout_constraintStart_toStartOf="parent"
+                    android:id="@+id/change_commit"
+                    style="@style/style_button"
+                    android:text="授权登录"
                     app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/loading_view_img"
-                    android:layout_marginBottom="@dimen/content_padding_15"/>
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toBottomOf="@+id/loading_view_img" />
             </android.support.constraint.ConstraintLayout>
         </LinearLayout>
     </ScrollView>

BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher.png


BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png


+ 2 - 0
app/src/main/res/values/strings.xml

@@ -106,4 +106,6 @@
     <string name="plus_x_yuan">+%s元</string>
     <string name="sheep_order_no">小绵羊-%s-订单编号(%s)</string>
     <string name="gift_bag_code">礼包码:%s</string>
+
+    <string name="change_login_ing">登录授权中&#8230;</string>
 </resources>