From 8039a1b2fbfa3471b6f726d3e839d7867c81a84f Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 10 十月 2020 18:51:24 +0800 Subject: [PATCH] 资讯与小说集成 --- BuWanVideo/src/com/weikou/beibeivideo/ui/SplashActivity.java | 331 ++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 233 insertions(+), 98 deletions(-) diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/SplashActivity.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/SplashActivity.java index 6d7e44e..1b2c74a 100644 --- a/BuWanVideo/src/com/weikou/beibeivideo/ui/SplashActivity.java +++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/SplashActivity.java @@ -1,46 +1,56 @@ package com.weikou.beibeivideo.ui; import android.Manifest; +import android.app.AlertDialog; +import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; +import android.net.Uri; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; +import android.provider.Settings; +import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; import android.telephony.TelephonyManager; import android.view.KeyEvent; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; +import com.bumptech.glide.Glide; import com.google.gson.Gson; import com.lcjian.library.util.common.StringUtils; -import com.qq.e.ads.splash.SplashAD; -import com.qq.e.ads.splash.SplashADListener; -import com.qq.e.comm.util.AdError; import com.tencent.smtt.sdk.WebView; import com.umeng.analytics.MobclickAgent; import com.weikou.beibeivideo.BasicTextHttpResponseHandler; import com.weikou.beibeivideo.BeibeiVideoAPI; import com.weikou.beibeivideo.BeibeiVideoApplication; +import com.weikou.beibeivideo.R; import com.weikou.beibeivideo.entity.ad.AdTypeVO; import com.weikou.beibeivideo.ui.main.MainActivity; import com.weikou.beibeivideo.util.BeibeiConstant; -import com.weikou.beibeivideo.util.PermissionHintDialog; -import com.weikou.beibeivideo.util.PermissionsActivity; +import com.weikou.beibeivideo.util.GlideRoundTransform; import com.weikou.beibeivideo.util.PermissionsChecker; import com.weikou.beibeivideo.util.SDCardUtil; -import com.yeshi.buwanshequ.R; +import com.weikou.beibeivideo.util.ad.AdUtil; +import com.weikou.beibeivideo.util.ad.CSJConstant; +import com.weikou.beibeivideo.util.ad.GDTConstant; +import com.weikou.beibeivideo.util.ad.SplashAdUtil; import org.apache.http.Header; import org.json.JSONObject; import java.text.SimpleDateFormat; import java.util.Date; + +import static android.content.pm.PackageManager.PERMISSION_GRANTED; public class SplashActivity extends BaseActivity { @@ -51,10 +61,13 @@ private TextView ad_close_time; + private ImageView iv_logo; + + private static String TAG = "SplashActivity"; + // 鎵�闇�鐨勫叏閮ㄦ潈闄� static final String[] PERMISSIONS = new String[]{ - Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE + Manifest.permission.READ_PHONE_STATE }; private static final int REQUEST_CODE = 0; // 璇锋眰鐮� private PermissionsChecker mPermissionsChecker; // 鏉冮檺妫�娴嬪櫒 @@ -68,7 +81,6 @@ } setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setContentView(R.layout.activity_splash); - /* * 璁$畻鐘舵�佹爮楂樺害骞惰缃� @@ -87,10 +99,12 @@ findViewById(R.id.v_status_bar).setVisibility(View.GONE); } - vg_ad = (ViewGroup) findViewById(R.id.fl_splash_ad); - vg_input = (ViewGroup) findViewById(R.id.fl_input); - ad_close_time = (TextView) findViewById(R.id.ad_close_time); + vg_ad = findViewById(R.id.fl_splash_ad); + vg_input = findViewById(R.id.fl_input); + ad_close_time = findViewById(R.id.ad_close_time); + iv_logo = findViewById(R.id.iv_logo); + Glide.with(getApplicationContext()).load(R.drawable.ic_launcher).transform(new GlideRoundTransform(getApplicationContext(), 5)).into(iv_logo); SharedPreferences preferences = getSharedPreferences("link_page", Context.MODE_PRIVATE); @@ -109,6 +123,14 @@ SDCardUtil.initStorage(this); //鍒濆鍖栦竴娆anner锛屽惁鍒欏悗闈anner浣跨敤鏃朵細鍑虹幇鍗¢】 // new BannerView(SplashActivity.this, ADSize.BANNER, BeibeiConstant.GDT_ID, BeibeiConstant.GDT_PLAYER_DETAIL); + + vg_ad.post(new Runnable() { + @Override + public void run() { + myRequetPermission(); + } + }); + } @@ -116,92 +138,7 @@ public void onResume() { super.onResume(); MobclickAgent.onPageStart("娆㈣繋椤�"); - if (mPermissionsChecker.lacksPermissions(PERMISSIONS)) { -// PermissionHintDialog.Builder builder = new PermissionHintDialog.Builder(this); -// builder.setMessage("涓轰繚闅滄甯镐娇鐢ㄧ浉鍏冲姛鑳斤紝璇峰厑璁稿奖瑙嗗ぇ鍏ㄨ幏鍙栫浉鍏冲熀纭�鏉冮檺").setPositiveButton("鎴戠煡閬撳暒", new DialogInterface.OnClickListener() { -// @Override -// public void onClick(DialogInterface dialogInterface, int i) { - startPermissionsActivity(); -// dialogInterface.dismiss(); -// } -// }).create().show(); - } else { - getUid(); - new WebView(this); - vg_ad.postDelayed(new Runnable() { - - @Override - public void run() { - if (!BeibeiConstant.AD_SETTING_KAIPIN) - toMainActivity(); - - new SplashAD(SplashActivity.this, vg_input, BeibeiConstant.GDT_SPLASH_POSITION_ID_HUAWEI2, new SplashADListener() { - @Override - public void onADDismissed() { - runOnUiThread(new Runnable() { - @Override - public void run() { - toMainActivity(); - } - }); - } - - @Override - public void onNoAD(AdError adError) { - final String msg=adError.getErrorMsg(); - runOnUiThread(new Runnable() { - @Override - public void run() { - toMainActivity(); - } - }); - } - - @Override - public void onADPresent() { - runOnUiThread(new Runnable() { - @Override - public void run() { - vg_input.setVisibility(View.VISIBLE); - } - }); - } - - @Override - public void onADClicked() { - System.out.println(""); - } - - @Override - public void onADTick(final long l) { - runOnUiThread(new Runnable() { - @Override - public void run() { - ad_close_time.setText(l / 1000 + ""); - } - }); - } - - @Override - public void onADExposure() { - System.out.println(""); - } - - @Override - public void onADLoaded(long l) { - System.out.println(""); - } - }, 0).fetchAndShowIn(vg_ad); - - } - }, 1000); - } } - - private void startPermissionsActivity() { - PermissionsActivity.startActivityForResult(this, REQUEST_CODE, PERMISSIONS); - } - private void getUid() { final SharedPreferences preferences = getSharedPreferences("user", @@ -301,10 +238,17 @@ BeibeiConstant.GDT_DISCOVER_NATIVE = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; BeibeiConstant.GDT_GUESS_LIKE_NATIVE = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; BeibeiConstant.GDT_RECOMMEND_CATEGORY_NATIVE = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; - BeibeiConstant.GDT_EXIT_DIALOG = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; BeibeiConstant.GDT_SEARCH_RESULT_MIN_NATIVE = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; BeibeiConstant.GDT_PLAYER_DETAIL = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; BeibeiConstant.GDT_CATEGORY_BANNER = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; + GDTConstant.PID_HOME_RECOMMEND_BIG_IMG = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; + GDTConstant.PID_2_VIDEO_DETAIL_PLAY_EXPRESS1 = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; + GDTConstant.PID_2_VIDEO_DETAIL_PLAY_EXPRESS2 = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; + GDTConstant.PID_2_VIDEO_LIST_SMALL_AD_COLUMN3 = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; + GDTConstant.PID_2_VIDEO_LIST_SMALL_AD_COLUMN2 = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; + GDTConstant.PID_HOME_RECOMMEND_BIG_IMG = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; + + CSJConstant.RECOMMEND_BIG_IMG_AD = CSJConstant.INVALID_AD; } //鑾峰彇骞垮憡 @@ -431,5 +375,196 @@ finish(); } } + + /** + * 鍔犺浇寮�灞忓箍鍛� + * + * @param adType + */ + private void loadSplashAd(final AdUtil.AD_TYPE adType) { + SplashAdUtil.loadAD(adType, SplashActivity.this, vg_input, vg_ad, ad_close_time, new SplashAdUtil.SplashAdListener() { + @Override + public void close() { + runOnUiThread(new Runnable() { + @Override + public void run() { + toMainActivity(); + } + }); + } + + @Override + public void noAd() {//鍒濇鍔犺浇鏈姞杞藉嚭骞垮憡 + if (AdUtil.AD_TYPE.csj == adType) { + //鍐嶆鍔犺浇骞跨偣閫氬箍鍛� + SplashAdUtil.loadAD(AdUtil.AD_TYPE.gdt, SplashActivity.this, vg_input, vg_ad, ad_close_time, 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 == adType) { + //鍐嶆鍔犺浇绌垮北鐢插箍鍛� + //鍐嶆鍔犺浇骞跨偣閫氬箍鍛� + SplashAdUtil.loadAD(AdUtil.AD_TYPE.csj, SplashActivity.this, vg_input, vg_ad, ad_close_time, 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 void myRequetPermission() { + if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_CODE); + } else { + //鐧惧害鍐呭鑱旂洘 +// MobadsPermissionSettings.setPermissionReadDeviceID(true); + getUid(); + new WebView(this); + vg_ad.postDelayed(new Runnable() { + + @Override + public void run() { + if (!BeibeiConstant.AD_SETTING_KAIPIN) + toMainActivity(); + BeibeiVideoAPI.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("ad"); + AdUtil.saveAdConfig(getApplicationContext(), ad); + AdUtil.AD_TYPE splash = AdUtil.getAdType(getApplicationContext(), AdUtil.POSITION_SPLASH); + loadSplashAd(splash); + } + } else { + loadSplashAd(AdUtil.AD_TYPE.gdt); + } + } + + @Override + public void onSuccess(int statusCode, Header[] headers, String responseString) { + super.onSuccess(statusCode, headers, responseString); + } + + @Override + public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { + super.onFailure(statusCode, headers, responseString, throwable); + loadSplashAd(AdUtil.AD_TYPE.gdt); + } + }); + + + } + }, 1000); + } + } + + Dialog mDialog; + AlertDialog alertDialog; + + @Override + public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + if (requestCode == REQUEST_CODE) { + for (int i = 0; i < permissions.length; i++) { + if (grantResults[i] == PERMISSION_GRANTED) {//閫夋嫨浜嗏�滃缁堝厑璁糕�� + myRequetPermission(); + } else { + if (!ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[i])) {//鐢ㄦ埛閫夋嫨浜嗙姝笉鍐嶈闂� + AlertDialog.Builder builder = new AlertDialog.Builder(SplashActivity.this); + builder.setTitle("鏉冮檺璇锋眰") + .setMessage("褰撳墠搴旂敤缂哄皯蹇呰鐨勬潈闄怽n璇风偣鍑昏缃�-鏉冮檺 鎵撳紑鐢佃瘽鍜屽瓨鍌ㄦ潈闄愶紝浠ユ甯镐娇鐢ˋPP鐨勫姛鑳�") + .setPositiveButton("鍘昏缃�", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + if (mDialog != null && mDialog.isShowing()) { + mDialog.dismiss(); + } + Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + Uri uri = Uri.fromParts("package", getPackageName(), null);//娉ㄦ剰灏辨槸"package",涓嶇敤鏀规垚鑷繁鐨勫寘鍚� + intent.setData(uri); + startActivityForResult(intent, REQUEST_CODE); + } + }); + mDialog = builder.create(); + mDialog.setCanceledOnTouchOutside(false); + mDialog.show(); + } else {//閫夋嫨绂佹 + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle("鏉冮檺璇锋眰") + .setMessage("鐐瑰嚮鍏佽鎵嶅彲浠ヤ娇鐢ㄥ摝") + .setPositiveButton("鍘诲厑璁�", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + if (alertDialog != null && alertDialog.isShowing()) { + alertDialog.dismiss(); + } + ActivityCompat.requestPermissions(SplashActivity.this, + new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_CODE); + } + }); + alertDialog = builder.create(); + alertDialog.setCanceledOnTouchOutside(false); + alertDialog.show(); + } + + } + } + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == REQUEST_CODE) { + myRequetPermission();//鐢变簬涓嶇煡閬撴槸鍚﹂�夋嫨浜嗗厑璁告墍浠ラ渶瑕佸啀娆″垽鏂� + } + } + + } -- Gitblit v1.8.0