package com.demo.app.ui; import android.Manifest; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ActivityInfo; import android.os.Bundle; import android.view.ViewGroup; import com.demo.app.MyApplication; import com.demo.app.R; import com.demo.app.ui.dialog.PermissionAuthNotifyDialog; import com.demo.app.ui.dialog.UserProtocolDialog; import com.demo.app.utils.AppConfigUtil; import com.demo.app.utils.Constant; import com.demo.app.utils.UserUtil; import com.demo.app.utils.api.BasicTextHttpResponseHandler; import com.demo.app.utils.api.HttpApiUtil; import com.demo.library_ad.AdUtil; import com.demo.library_ad.SplashAdUtil; import com.demo.lib.common.util.PermissionsChecker; import org.apache.http.Header; import org.json.JSONObject; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import static android.content.pm.PackageManager.PERMISSION_GRANTED; public class SplashActivity extends AppCompatActivity { private static final String TAG = "SplashActivity"; private ViewGroup vg_ad; // 所需的全部权限 static final String[] PERMISSIONS = new String[]{ Manifest.permission.READ_PHONE_STATE }; private static final int REQUEST_CODE = 0; // 请求码 private PermissionsChecker mPermissionsChecker; // 权限检测器 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (!this.isTaskRoot()) {// 判断本activity是不是任务空间的源activity,false就是不是系统重新实例化出来的 finish(); return; } setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setContentView(R.layout.activity_splash); vg_ad = findViewById(R.id.fl_splash_ad); // Glide.with(getApplicationContext()).load(R.drawable.ic_launcher).transform(new GlideRoundTransform(getApplicationContext(), 5)).into(iv_logo); SharedPreferences preferences = getSharedPreferences("link_page", Context.MODE_PRIVATE); mPermissionsChecker = new PermissionsChecker(this); if (!UserUtil.isAgreeUserProtocol(getApplicationContext()) && !Constant.DEBUG) { showProtocol(); } else { vg_ad.post(new Runnable() { @Override public void run() { requetPermission(); } }); } } private void showProtocol() { String data = "尊敬的用户:
感谢您对" + getResources().getString(R.string.app_name) + "一直以来的信任!
"; data += "我们非常尊重并保护您的个人信息、隐私。为了更好的保障您的权利,在您使用我们的产品之前,请您务必审慎阅读"; data += String.format("《隐私政策》和", Constant.PRIVACY_POLICY); data += String.format("《用户协议》", Constant.USER_AGREEMENT); data += "内的所有条款,尤其是:
" + "1、我们对您的个人信息(包括但不限于设备MAC地址、IMEI/Android ID等信息)的收集/保存/使用/对外提供/保护等规则条款,以及您的用户权利等条款;
" + "2、约定我们的限制责任、免责条款;
" + "3、其他以加粗或斜体字进行标识的重要条款。

" + "如您对协议有任何疑虑,可通过电子邮箱: xcwapp@qq.com 向我们询问,我们将为您竭诚解答。您点击“同意”的行为代表您已阅读完毕并接受以上协议全部条款。如您同意以上协议内容,请您点击“同意”,开始使用您的产品。"; if (!UserUtil.isAgreeUserProtocol(getApplicationContext()) && !Constant.DEBUG) { new UserProtocolDialog.Builder(SplashActivity.this).setNegativeButton("不同意", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish(); } }).setPositiveButton("同意", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); UserUtil.agreeUserProtocol(getApplicationContext()); //请求权限 vg_ad.post(new Runnable() { @Override public void run() { new PermissionAuthNotifyDialog.Builder(SplashActivity.this).setPositiveButton(null, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { dialogInterface.dismiss(); requetPermission(); } }).create().show(); } }); } }).setData(data).create().show(); } } private void requetPermission() { SharedPreferences sharedPreferences = getSharedPreferences("permission", Context.MODE_PRIVATE); boolean showPermission = sharedPreferences.getBoolean("show", true); if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PERMISSION_GRANTED && showPermission) { ActivityCompat.requestPermissions(this, PERMISSIONS, REQUEST_CODE); } else { MyApplication.init(MyApplication.application, new MyApplication.InitListener() { @Override public void onFinish() { } }); int delayMs = 1; vg_ad.postDelayed(new Runnable() { @Override public void run() { HttpApiUtil.getConfig(getApplicationContext(), new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject != null) { if (jsonObject.getBoolean("IsPost")) { JSONObject data = jsonObject.getJSONObject("Data"); JSONObject ad = data.optJSONObject("adNew"); //浏览器外跳协议 AppConfigUtil.saveBrowserJumpOutProtocolPrefix(getApplicationContext(), data.optString("jumpAppProtocolPrefix")); //保存联系客服,注销链接 AppConfigUtil.saveConcatUsLink(getApplicationContext(), data.optString("contactUsLink")); AppConfigUtil.saveUnRegisterLink(getApplicationContext(), data.optString("unRegisterLink")); AdUtil.saveAdConfig(getApplicationContext(), ad); MyApplication.initAd(MyApplication.application, new MyApplication.InitListener() { @Override public void onFinish() { runOnUiThread(new Runnable() { @Override public void run() { loadSplashAd(); } }); } }); return; } } loadSplashAd(); } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { super.onFailure(statusCode, headers, responseString, throwable); loadSplashAd(); } }); } }, delayMs); } } /** * 加载开屏广告 */ private void loadSplashAd() { AdUtil.AD_TYPE splashType = AdUtil.getAdType(getApplicationContext(), ""); if (splashType == null) { vg_ad.postDelayed(new Runnable() { @Override public void run() { toMainActivity(); } }, 2000); return; } String csjPid = getString(R.string.ad_csj_pid_splash); String gdtPid = getString(R.string.ad_gdt_pid_splash); SplashAdUtil.loadAD(splashType, splashType == AdUtil.AD_TYPE.csj ? csjPid : gdtPid, SplashActivity.this, vg_ad, new SplashAdUtil.SplashAdListener() { @Override public void close() { runOnUiThread(new Runnable() { @Override public void run() { toMainActivity(); } }); } @Override public void noAd() {//初次加载未加载出广告 if (AdUtil.AD_TYPE.csj == splashType) { //再次加载广点通广告 SplashAdUtil.loadAD(AdUtil.AD_TYPE.gdt, gdtPid, SplashActivity.this, vg_ad, new SplashAdUtil.SplashAdListener() { @Override public void close() { runOnUiThread(new Runnable() { @Override public void run() { toMainActivity(); } }); } @Override public void noAd() { runOnUiThread(new Runnable() { @Override public void run() { toMainActivity(); } }); } }); } else if (AdUtil.AD_TYPE.gdt == splashType) { //再次加载穿山甲广告 SplashAdUtil.loadAD(AdUtil.AD_TYPE.csj, csjPid, SplashActivity.this, vg_ad, new SplashAdUtil.SplashAdListener() { @Override public void close() { runOnUiThread(new Runnable() { @Override public void run() { toMainActivity(); } }); } @Override public void noAd() { runOnUiThread(new Runnable() { @Override public void run() { toMainActivity(); } }); } }); } else { runOnUiThread(new Runnable() { @Override public void run() { toMainActivity(); } }); } } }); } private boolean isFinish; private void toMainActivity() { if (!isFinish) { isFinish = true; Intent intent = new Intent(SplashActivity.this, MainActivity.class); startActivity(intent); finish(); } } }