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.annotation.NonNull;
|
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.core.app.ActivityCompat;
|
import androidx.core.content.ContextCompat;
|
|
import static android.content.pm.PackageManager.PERMISSION_DENIED;
|
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 = "尊敬的用户:<br>感谢您对" + getResources().getString(R.string.app_name) + "一直以来的信任!<br>";
|
data += "我们非常尊重并保护您的个人信息、隐私。为了更好的保障您的权利,在您使用我们的产品之前,请您务必审慎阅读";
|
data += String.format("<a href='%s'>《隐私政策》</a>和", Constant.PRIVACY_POLICY);
|
data += String.format("<a href='%s'>《用户协议》</a>", Constant.USER_AGREEMENT);
|
data += "内的所有条款,<b>尤其是:<br>" +
|
"1、我们对您的个人信息(包括但不限于<font color='#FF0000'>设备MAC地址、IMEI/Android ID</font>等信息)的收集/保存/使用/对外提供/保护等规则条款,以及您的用户权利等条款;<br>" +
|
"2、约定我们的限制责任、免责条款;<br>" +
|
"3、其他以加粗或斜体字进行标识的重要条款。</b><br>" +
|
"如您对协议有任何疑虑,可通过电子邮箱: 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 (1 > 0) {
|
// toMainActivity();
|
// return;
|
// }
|
|
|
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PERMISSION_GRANTED && showPermission) {
|
ActivityCompat.requestPermissions(this, PERMISSIONS, REQUEST_CODE);
|
} else {
|
next();
|
}
|
}
|
|
|
void next() {
|
MyApplication.init(MyApplication.application, new MyApplication.InitListener() {
|
@Override
|
public void onFinish() {
|
|
}
|
});
|
|
if (1 > 0) {
|
vg_ad.postDelayed(new Runnable() {
|
@Override
|
public void run() {
|
toMainActivity();
|
}
|
},3000);
|
|
return;
|
}
|
|
|
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();
|
}
|
}
|
|
@Override
|
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
if (requestCode == REQUEST_CODE) {
|
for (int i = 0; i < permissions.length; i++) {
|
if (grantResults[i] == PERMISSION_GRANTED) {//选择了“始终允许”
|
requetPermission();
|
} else {
|
//拒绝了授权
|
if (grantResults[i] == PERMISSION_DENIED) {
|
SharedPreferences sharedPreferences = getSharedPreferences("permission", Context.MODE_PRIVATE);
|
SharedPreferences.Editor editor = sharedPreferences.edit();
|
editor.putBoolean("show", false);
|
editor.commit();
|
}
|
next();
|
}
|
}
|
}
|
|
}
|
}
|