Procházet zdrojové kódy

进入游戏 添加授权说明

xiongxiaohe před 8 roky
rodič
revize
c6b52ef784

+ 8 - 2
app/src/main/java/com/sheep/jiuyan/samllsheep/adapter/DownListAdapter.java

@@ -1,6 +1,7 @@
 package com.sheep.jiuyan.samllsheep.adapter;
 
 import android.content.Context;
+import android.content.Intent;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -12,6 +13,7 @@ import android.widget.Toast;
 
 import com.bumptech.glide.Glide;
 import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.download.DownloadInfo;
 import com.sheep.jiuyan.samllsheep.download.DownloadManager;
 import com.sheep.jiuyan.samllsheep.download.DownloadState;
@@ -238,7 +240,12 @@ public class DownListAdapter extends BaseAdapter {
                             break;
                         case FINISHED:
                             Toast.makeText(x.app(), "已经下载完成", Toast.LENGTH_LONG).show();
-                            PackageUtil.installApk(mContext, getDownloadInfo().getFileSavePath());
+                            if(PackageUtil.isAppInstalled(mContext, getDownloadInfo().getPkgName())){
+                                PackageUtil.startApp(SheepApp.mContext, getDownloadInfo().getPkgName());
+                            }else{
+                                PackageUtil.installApk(mContext, getDownloadInfo().getFileSavePath());
+                            }
+
                             break;
                         default:
                             break;
@@ -273,7 +280,6 @@ public class DownListAdapter extends BaseAdapter {
         }
     }
 
-
 }
 
 

+ 2 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/download/DownloadManager.java

@@ -179,4 +179,6 @@ public final class DownloadManager {
         stopDownload(downloadInfo);
         downloadInfoList.remove(downloadInfo);
     }
+
+
 }

+ 30 - 8
app/src/main/java/com/sheep/jiuyan/samllsheep/page/LoginActivity.java

@@ -1,7 +1,11 @@
 package com.sheep.jiuyan.samllsheep.page;
 
 import android.app.AlertDialog;
+import android.content.DialogInterface;
 import android.content.Intent;
+import android.os.Build;
+import android.provider.Settings;
+import android.support.annotation.RequiresApi;
 import android.support.design.widget.TextInputEditText;
 import android.text.TextUtils;
 import android.view.View;
@@ -16,10 +20,12 @@ import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.Config;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.base.BaseActivity;
+import com.sheep.jiuyan.samllsheep.floatwindow.FloatService;
 import com.sheep.jiuyan.samllsheep.net.NetManager;
 import com.sheep.jiuyan.samllsheep.net.SheepCallback;
 import com.sheep.jiuyan.samllsheep.net.Url;
 import com.sheep.jiuyan.samllsheep.page.entry.BindUserEntiey;
+import com.sheep.jiuyan.samllsheep.utils.PremissUtils;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
@@ -61,15 +67,31 @@ public class LoginActivity extends BaseActivity {
     @Override
     public void initView() {
         findViews();
-       /* new Thread(new Runnable() {
-            @Override
-            public void run() {
-                SystemClock.sleep(3000);
-                Intent intent = new Intent(LoginActivity.this, MainActivity.class);
-                startActivity(intent);
-                finish();
+
+        if (Build.VERSION.SDK_INT >= 23) {
+            if (!Settings.canDrawOverlays(LoginActivity.this)||!PremissUtils.hasPermission(LoginActivity.this)) {
+                new AlertDialog.Builder(this)
+                        .setTitle("温馨提示!")
+                        .setMessage("亲!要赚钱需要手动开启悬浮框和在其他上层显示权限 请逐一开启哟!")
+                        .setPositiveButton("去开启", new DialogInterface.OnClickListener() {
+                            @RequiresApi(api = Build.VERSION_CODES.M)
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+
+                                if(!Settings.canDrawOverlays(LoginActivity.this)){
+                                    Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
+                                    startActivity(intent);
+                                }
+                                if(!PremissUtils.hasPermission(LoginActivity.this)){
+                                    PremissUtils.openUsageAccessPage(LoginActivity.this);
+                                }
+
+                            }
+
+                        })
+                        .show();
             }
-        }).start();*/
+        }
     }
 
     @Override

+ 78 - 38
app/src/main/java/com/sheep/jiuyan/samllsheep/page/SplashActivity.java

@@ -1,12 +1,17 @@
 package com.sheep.jiuyan.samllsheep.page;
 
 import android.Manifest;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Build;
+import android.os.Handler;
 import android.os.SystemClock;
 import android.provider.Settings;
 import android.text.TextUtils;
 import android.view.View;
+import android.widget.FrameLayout;
+import android.widget.TextView;
 import android.widget.Toast;
 
 import com.mylhyl.acp.Acp;
@@ -26,7 +31,10 @@ import java.util.List;
  * Created by kemllor on 2018/1/24.
  */
 
-public class SplashActivity extends BaseActivity {
+public class SplashActivity extends BaseActivity  implements View.OnClickListener {
+
+    private FrameLayout fl;
+
     @Override
     protected int getLayoutId() {
         return R.layout.splash_activity;
@@ -34,26 +42,12 @@ public class SplashActivity extends BaseActivity {
 
     @Override
     public void initView() {
-
+        fl=(FrameLayout)findViewById(R.id.fl);
     }
 
     @Override
     public void initListener() {
-        findViewById(R.id.btn_join).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                String openId = SpUtils.getOpenId(getApplicationContext());
-                if (!TextUtils.isEmpty(openId)) {
-                    Intent intent = new Intent(SplashActivity.this, MainActivity.class);
-                    startActivity(intent);
-                    finish();
-                } else {
-                    Intent intent = new Intent(SplashActivity.this, LoginActivity.class);
-                    startActivity(intent);
-                    finish();
-                }
-            }
-        });
+        fl.setOnClickListener(this);
     }
 
     @Override
@@ -65,35 +59,18 @@ public class SplashActivity extends BaseActivity {
      * 申请读写权限6.0
      */
     private void getSA() {
-        if (Build.VERSION.SDK_INT >= 23) {
-            boolean has = PremissUtils.hasPermission(this);
-            if (!has) {
-                PremissUtils.openUsageAccessPage(this);
-            }
-        }
-        if (Build.VERSION.SDK_INT >= 23) {
-            if (Settings.canDrawOverlays(SplashActivity.this)) {
-                Intent intent = new Intent(SplashActivity.this, FloatService.class);
-                startService(intent);
-            } else {
-                //若没有权限,提示获取.
-                Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
-                Toast.makeText(SplashActivity.this, "需要取得权限以使用悬浮窗", Toast.LENGTH_SHORT).show();
-                startActivity(intent);
-            }
-        } else {
-            Intent intent = new Intent(SplashActivity.this, FloatService.class);
-            startService(intent);
-        }
+
+
         Acp.getInstance(this).request(new AcpOptions.Builder()
                         .setPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE
-                                , Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE
+                                ,Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE
                         )
                         .build(),
                 new AcpListener() {
                     @Override
                     public void onGranted() {
                         ClassFileHelper.getInstance().createSDDirection();
+
                     }
 
                     @Override
@@ -102,7 +79,70 @@ public class SplashActivity extends BaseActivity {
 
                     }
                 });
+        if (Build.VERSION.SDK_INT >= 23) {
+            if (Settings.canDrawOverlays(SplashActivity.this)) {
+                Intent intent = new Intent(SplashActivity.this, FloatService.class);
+                startService(intent);
+            } else {
+                //若没有权限,提示获取.
+                showPremissSet();
+            }
+        } else {
+            Intent intent = new Intent(SplashActivity.this, FloatService.class);
+            startService(intent);
+        }
+
+    }
+
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()){
+            case R.id.fl:
+                goMain();
+             break;
+
+
+}
+
 
 
     }
+
+    private  void  goMain(){
+        String openId = SpUtils.getOpenId(getApplicationContext());
+        if (!TextUtils.isEmpty(openId)) {
+            Intent intent = new Intent(SplashActivity.this, MainActivity.class);
+            startActivity(intent);
+            finish();
+        } else {
+            Intent intent = new Intent(SplashActivity.this, LoginActivity.class);
+            startActivity(intent);
+            finish();
+        }
+
+    }
+
+    private  void  showPremissSet(){
+
+        new AlertDialog.Builder(this)
+                .setTitle("温馨提示!")
+                .setMessage("亲!要赚钱需要手动开启悬浮框和在其他上层显示权限 请逐一开启哟!")
+                .setPositiveButton("去开启", new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
+                        startActivity(intent);
+                        if (Build.VERSION.SDK_INT >= 23) {
+                            boolean has = PremissUtils.hasPermission(SplashActivity.this);
+                            if (!has) {
+                                PremissUtils.openUsageAccessPage(SplashActivity.this);
+                            }
+                        }
+                    }
+
+                })
+                .show();
+    }
+
+
 }

+ 20 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/page/adapter/AdpMainActivity.java

@@ -16,9 +16,12 @@ import com.sheep.jiuyan.samllsheep.page.GameDetailActivity;
 import com.sheep.jiuyan.samllsheep.page.WebActivity;
 import com.sheep.jiuyan.samllsheep.page.XDownLoadActivity;
 import com.sheep.jiuyan.samllsheep.page.entry.TaskPublish;
+import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 
+import java.io.File;
+
 /**
  * @ Created by Dlg
  * @ <p>TiTle:  AdpMainActivity</p>
@@ -87,7 +90,19 @@ public class AdpMainActivity extends AdpCommonRecy<TaskPublish> {
                     PackageUtil.startApp(mContext, taskPublish.getTask().getPkg());
                 }
             });
-        } else {
+        } else if(ClassFileHelper.getInstance().isInstallFile(taskPublish.getTask().getTitle())) {
+
+            holder.getView(R.id.btn_task_item, TextView.class).setText("安装游戏");
+            holder.getView(R.id.btn_task_item, TextView.class).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                  String path=ClassFileHelper.DIR+File.separator+taskPublish.getTask().getTitle()+".apk";
+                  PackageUtil.installApk(mContext,path);
+
+
+                }
+            });
+        }else{
             holder.getView(R.id.btn_task_item, TextView.class).setText("下载游戏");
             holder.getView(R.id.btn_task_item, TextView.class).setOnClickListener(new View.OnClickListener() {
                 @Override
@@ -116,4 +131,8 @@ public class AdpMainActivity extends AdpCommonRecy<TaskPublish> {
         }
     }
 
+
+
+
+
 }

+ 21 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/utils/ClassFileHelper.java

@@ -6,6 +6,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.List;
 
 import android.content.Context;
 import android.os.Environment;
@@ -93,6 +94,26 @@ public class ClassFileHelper {
         }
     }
 
+
+
+   public  boolean  isInstallFile(String  fileName){
+       File  file=new File(DIR);
+
+       File[] fileArray = file.listFiles();
+
+       for (File f : fileArray) {
+           if (f.isFile()) {
+               if(f.getName().equals(fileName+".apk")){
+                   return  true;
+               }
+           }
+
+       }
+         return false;
+
+       }
+
+
     /**
      * 删除SD卡上的目录
      *

+ 1 - 0
app/src/main/res/layout/splash_activity.xml

@@ -2,6 +2,7 @@
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
+              android:id="@+id/fl"
              android:orientation="vertical">
 
     <ImageView