1368 lines
48 KiB
Plaintext
1368 lines
48 KiB
Plaintext
package com.novelbook.android;
|
||
|
||
import android.app.Activity;
|
||
import android.app.AlertDialog;
|
||
import android.content.BroadcastReceiver;
|
||
import android.content.Context;
|
||
import android.content.DialogInterface;
|
||
import android.content.Intent;
|
||
import android.content.IntentFilter;
|
||
import android.database.SQLException;
|
||
import android.graphics.Bitmap;
|
||
import android.graphics.Canvas;
|
||
import android.graphics.Color;
|
||
import android.graphics.Point;
|
||
import android.graphics.Typeface;
|
||
import android.os.Build;
|
||
import android.os.Environment;
|
||
import android.os.Handler;
|
||
import android.os.Message;
|
||
import android.support.annotation.Nullable;
|
||
import android.support.constraint.solver.GoalRow;
|
||
import android.support.design.widget.AppBarLayout;
|
||
import android.support.v7.widget.Toolbar;
|
||
import android.text.TextUtils;
|
||
import android.util.Log;
|
||
import android.view.Display;
|
||
import android.view.KeyEvent;
|
||
import android.view.LayoutInflater;
|
||
import android.view.Menu;
|
||
import android.view.MenuItem;
|
||
import android.view.View;
|
||
import android.view.ViewGroup;
|
||
import android.view.WindowManager;
|
||
import android.view.animation.Animation;
|
||
import android.view.animation.AnimationUtils;
|
||
import android.widget.Button;
|
||
import android.widget.FrameLayout;
|
||
|
||
import android.widget.ImageView;
|
||
import android.widget.LinearLayout;
|
||
import android.widget.RelativeLayout;
|
||
import android.widget.SeekBar;
|
||
import android.widget.TextView;
|
||
import android.widget.Toast;
|
||
|
||
import com.androidquery.callback.AQuery2;
|
||
import com.androidquery.callback.ImageOptions;
|
||
import com.bytedance.sdk.openadsdk.AdSlot;
|
||
import com.bytedance.sdk.openadsdk.TTAdConstant;
|
||
import com.bytedance.sdk.openadsdk.TTAdDislike;
|
||
import com.bytedance.sdk.openadsdk.TTAdNative;
|
||
import com.bytedance.sdk.openadsdk.TTAppDownloadListener;
|
||
import com.bytedance.sdk.openadsdk.TTBannerAd;
|
||
import com.bytedance.sdk.openadsdk.TTImage;
|
||
import com.bytedance.sdk.openadsdk.TTNativeAd;
|
||
import com.novelbook.android.AD.SplashAdManager;
|
||
import com.novelbook.android.AD.toutiao.TTAdManagerHolder;
|
||
import com.novelbook.android.AD.toutiao.TToast;
|
||
import com.novelbook.android.db.Chapter;
|
||
import com.novelbook.android.db.Novel;
|
||
import com.novelbook.android.db.BookMarks;
|
||
import com.novelbook.android.dialog.PageModeDialog;
|
||
import com.novelbook.android.dialog.SettingDialog;
|
||
|
||
import com.novelbook.android.utils.AdInterface;
|
||
import com.novelbook.android.utils.BrightnessUtil;
|
||
import com.novelbook.android.utils.Config;
|
||
import com.novelbook.android.utils.Constants;
|
||
import com.novelbook.android.utils.PageFactory;
|
||
import com.novelbook.android.view.PageWidget;
|
||
import com.umeng.analytics.MobclickAgent;
|
||
|
||
import org.litepal.LitePal;
|
||
|
||
import java.io.BufferedOutputStream;
|
||
import java.io.File;
|
||
import java.io.FileOutputStream;
|
||
import java.io.IOException;
|
||
import java.text.DecimalFormat;
|
||
import java.text.SimpleDateFormat;
|
||
import java.util.ArrayList;
|
||
import java.util.Date;
|
||
import java.util.HashMap;
|
||
import java.util.List;
|
||
import java.util.Map;
|
||
|
||
import butterknife.BindView;
|
||
import butterknife.OnClick;
|
||
|
||
|
||
public class ReadActivity extends Activity_base implements AdInterface {
|
||
private static final String TAG = ReadActivity.class.getSimpleName();
|
||
private final static String EXTRA_BOOK = "book";
|
||
private final static String EXTRA_CHAPTER = "chapter";
|
||
private final static int MESSAGE_CHANGEPROGRESS = 1;
|
||
|
||
@BindView(R.id.btnRefresh)
|
||
Button btnRefresh;
|
||
@BindView(R.id.bookpage)
|
||
PageWidget bookpage;
|
||
// @BindView(R.id.btn_return)
|
||
// ImageButton btn_return;
|
||
// @BindView(R.id.ll_top)
|
||
// LinearLayout ll_top;
|
||
@BindView(R.id.tv_progress)
|
||
TextView tv_progress;
|
||
@BindView(R.id.rl_progress)
|
||
RelativeLayout rl_progress;
|
||
@BindView(R.id.tv_pre)
|
||
TextView tv_pre;
|
||
@BindView(R.id.sb_progress)
|
||
SeekBar sb_progress;
|
||
@BindView(R.id.tv_next)
|
||
TextView tv_next;
|
||
@BindView(R.id.tv_directory)
|
||
TextView tv_directory;
|
||
@BindView(R.id.tv_dayornight)
|
||
TextView tv_dayornight;
|
||
@BindView(R.id.tv_pagemode)
|
||
TextView tv_pagemode;
|
||
@BindView(R.id.tv_setting)
|
||
TextView tv_setting;
|
||
@BindView(R.id.bookpop_bottom)
|
||
LinearLayout bookpop_bottom;
|
||
@BindView(R.id.rl_bottom)
|
||
RelativeLayout rl_bottom;
|
||
@BindView(R.id.tv_stop_read)
|
||
TextView tv_stop_read;
|
||
@BindView(R.id.rl_read_bottom)
|
||
RelativeLayout rl_read_bottom;
|
||
@BindView(R.id.toolbar)
|
||
Toolbar toolbar;
|
||
@BindView(R.id.appbar)
|
||
AppBarLayout appbar;
|
||
|
||
@BindView(R.id.tvUrl)
|
||
TextView tvUrl;
|
||
|
||
@BindView(R.id.top_banner_container)
|
||
FrameLayout mTopBannerContainer;
|
||
|
||
@BindView(R.id.imgLoading)
|
||
pl.droidsonroids.gif.GifImageView imgLoading;
|
||
@BindView(R.id.frmAD)
|
||
LinearLayout frmAD;
|
||
|
||
@BindView(R.id.native_banner_container )
|
||
FrameLayout mNative_status_banner_container;
|
||
@BindView(R.id.banner_container )
|
||
FrameLayout mBannerContainer;
|
||
|
||
@BindView(R.id.frmContainer )
|
||
FrameLayout frmContainer;
|
||
|
||
@BindView(R.id.llShelfBottom)
|
||
LinearLayout llShelf;
|
||
private Config config;
|
||
private WindowManager.LayoutParams lp;
|
||
private Novel book;
|
||
private Chapter mChapter;
|
||
private PageFactory pageFactory;
|
||
private int screenWidth, screenHeight;
|
||
// popwindow是否显示
|
||
private Boolean isShow = false;
|
||
private SettingDialog mSettingDialog;
|
||
private PageModeDialog mPageModeDialog;
|
||
private Boolean mDayOrNight;
|
||
// 语音合成客户端
|
||
// private SpeechSynthesizer mSpeechSynthesizer;
|
||
private boolean isSpeaking = false;
|
||
|
||
|
||
// 接收电池信息更新的广播
|
||
private BroadcastReceiver myReceiver = new BroadcastReceiver(){
|
||
@Override
|
||
public void onReceive(Context context, Intent intent) {
|
||
if (intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)) {
|
||
Log.e(TAG,Intent.ACTION_BATTERY_CHANGED);
|
||
int level = intent.getIntExtra("level", 0);
|
||
Log.d(TAG, String.format("updateBattery onReceive: Intent.ACTION_BATTERY_CHANGED level %s ",level));
|
||
|
||
pageFactory.updateBattery(level);
|
||
}else if (intent.getAction().equals(Intent.ACTION_TIME_TICK)){
|
||
Log.e(TAG,Intent.ACTION_TIME_TICK);
|
||
pageFactory.updateTime();
|
||
}
|
||
}
|
||
};
|
||
|
||
@Override
|
||
public int getLayoutRes() {
|
||
return R.layout.zactivity_read;
|
||
}
|
||
|
||
@Override
|
||
protected void initViews() {
|
||
|
||
}
|
||
|
||
@Override
|
||
protected void setTitle() {
|
||
|
||
}
|
||
|
||
@Override
|
||
protected void initData() {
|
||
if(Build.VERSION.SDK_INT >= 14 && Build.VERSION.SDK_INT < 19){
|
||
bookpage.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
|
||
}
|
||
|
||
toolbar.setTitle("");
|
||
setSupportActionBar(toolbar);
|
||
//toolbar.setNavigationIcon(R.mipmap.return_button);
|
||
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
|
||
@Override
|
||
public void onClick(View v) {
|
||
finish();
|
||
}
|
||
});
|
||
|
||
config = Config.getInstance();
|
||
pageFactory = PageFactory.getInstance(getApplicationContext());
|
||
pageFactory.clear();
|
||
pageFactory.setAd(this);
|
||
// mBannerContainer.setVisibility(View.GONE);
|
||
|
||
// showProgress (false,"读取目录信息");
|
||
/* int slept = 0;
|
||
while(slept <100 && (pageFactory.getChapters() == null || pageFactory.getChapters().size()==0)){
|
||
try {
|
||
Thread.sleep(50);
|
||
slept++;
|
||
} catch (InterruptedException e) {
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
hideProgress() ;*/
|
||
|
||
IntentFilter mfilter = new IntentFilter();
|
||
mfilter.addAction(Intent.ACTION_BATTERY_CHANGED);
|
||
mfilter.addAction(Intent.ACTION_TIME_TICK);
|
||
registerReceiver(myReceiver, mfilter);
|
||
|
||
mSettingDialog = new SettingDialog(this);
|
||
mPageModeDialog = new PageModeDialog(this);
|
||
//获取屏幕宽高
|
||
WindowManager manage = getWindowManager();
|
||
Display display = manage.getDefaultDisplay();
|
||
Point displaysize = new Point();
|
||
display.getSize(displaysize);
|
||
screenWidth = displaysize.x;
|
||
screenHeight = displaysize.y;
|
||
//保持屏幕常亮
|
||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||
//隐藏
|
||
hideSystemUI();
|
||
//改变屏幕亮度
|
||
if (!config.isSystemLight()) {
|
||
BrightnessUtil.setBrightness(this, config.getLight());
|
||
}
|
||
//获取intent中的携带的信息
|
||
Intent intent = getIntent();
|
||
if(intent.hasExtra(EXTRA_BOOK)){
|
||
book = (Novel) intent.getSerializableExtra(EXTRA_BOOK);
|
||
}
|
||
|
||
if(intent.hasExtra(EXTRA_CHAPTER)){
|
||
mChapter = ( Chapter ) intent.getSerializableExtra(EXTRA_CHAPTER);
|
||
}
|
||
// mChapter = ( Chapter ) intent.getSerializableExtra(EXTRA_CHAPTER);
|
||
bookpage.setPageMode(config.getPageMode());
|
||
pageFactory.setPageWidget(bookpage);
|
||
sb_progress.setVisibility(book.isLocalBook()?View.VISIBLE:View.INVISIBLE);
|
||
Log.d(TAG, String .format("prepare book: set pagewidget %s, to open book" , book.getName()));
|
||
try {
|
||
|
||
hideSystemUI();
|
||
pageFactory.openBook(book, this);
|
||
|
||
/*showProgressDialog(true, "正在加载");
|
||
new Thread() {
|
||
@Override
|
||
public void run() {
|
||
super.run();
|
||
int slepttime =0;
|
||
int chapid = book.getLastReadChapt();
|
||
|
||
while( pageFactory.getChapters().size() ==0 ||(chapid-1 < pageFactory.getChapters().size() ) && pageFactory.getChapters().get(chapid-1).getId() ==0 ){
|
||
try {
|
||
|
||
if(!NetUtil.isNetworkConnected()){
|
||
break;
|
||
}
|
||
|
||
sleep(50);
|
||
slepttime+=1;
|
||
if(pageFactory.getChapters().size()>0){
|
||
// Log.d(TAG, String .format("prepare Book: slept %s for loading chapter content %s,chapter.getid %s " , slepttime*50, chapid,pageFactory.getChapters().get(chapid-1).getId()));
|
||
|
||
}else{
|
||
// Log.d(TAG, String .format("prepare Book: slept %s for loading pageFactory.getChapters().size() %s " , slepttime*50, pageFactory.getChapters().size()));
|
||
|
||
}
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
}
|
||
if(slepttime>40)
|
||
{
|
||
break;
|
||
}
|
||
}
|
||
Log.d(TAG, String .format("prepare Book: total slept %s for loading chapter content %s, " , slepttime*50, chapid ));
|
||
|
||
mHandler.sendEmptyMessage(1);
|
||
|
||
}
|
||
}.start();
|
||
*/
|
||
|
||
hideSystemUI();
|
||
|
||
}catch (IOException e) {
|
||
e.printStackTrace();
|
||
Toast.makeText(this, "打开电子书失败", Toast.LENGTH_SHORT).show();
|
||
}
|
||
|
||
initDayOrNight();
|
||
|
||
// new Thread(){
|
||
// @Override
|
||
// public void run() {
|
||
// super.run();
|
||
// initialTts();
|
||
// }
|
||
// }.start();
|
||
// initialTts();
|
||
|
||
initListener();
|
||
}
|
||
|
||
|
||
protected void initListener() {
|
||
sb_progress.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
|
||
float pro;
|
||
// 触发操作,拖动
|
||
@Override
|
||
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
||
pro = (float) (progress / 10000.0);
|
||
showProgressBar(pro);
|
||
}
|
||
|
||
// 表示进度条刚开始拖动,开始拖动时候触发的操作
|
||
@Override
|
||
public void onStartTrackingTouch(SeekBar seekBar) {
|
||
|
||
}
|
||
|
||
// 停止拖动时候
|
||
@Override
|
||
public void onStopTrackingTouch(SeekBar seekBar) {
|
||
pageFactory.changeProgress(pro);
|
||
}
|
||
});
|
||
|
||
mPageModeDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
|
||
@Override
|
||
public void onCancel(DialogInterface dialog) {
|
||
hideSystemUI();
|
||
}
|
||
});
|
||
|
||
mPageModeDialog.setPageModeListener(new PageModeDialog.PageModeListener() {
|
||
@Override
|
||
public void changePageMode(int pageMode) {
|
||
bookpage.setPageMode(pageMode);
|
||
}
|
||
});
|
||
|
||
mSettingDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
|
||
@Override
|
||
public void onCancel(DialogInterface dialog) {
|
||
hideSystemUI();
|
||
}
|
||
});
|
||
|
||
mSettingDialog.setSettingListener(new SettingDialog.SettingListener() {
|
||
@Override
|
||
public void changeSystemBright(Boolean isSystem, float brightness) {
|
||
if (!isSystem) {
|
||
BrightnessUtil.setBrightness(ReadActivity.this, brightness);
|
||
} else {
|
||
int bh = BrightnessUtil.getScreenBrightness(ReadActivity.this);
|
||
BrightnessUtil.setBrightness(ReadActivity.this, bh);
|
||
}
|
||
}
|
||
|
||
@Override
|
||
public void changeFontSize(int fontSize) {
|
||
pageFactory.changeFontSize(fontSize);
|
||
showSystemUI();
|
||
}
|
||
|
||
@Override
|
||
public void changeTypeFace(Typeface typeface) {
|
||
pageFactory.changeTypeface(typeface);
|
||
}
|
||
|
||
@Override
|
||
public void changeBookBg(int type) {
|
||
pageFactory.changeBookBg(type);
|
||
}
|
||
|
||
@Override
|
||
public void changeLineHeight(int lineHeight) {
|
||
pageFactory.changeLineHight(lineHeight);
|
||
showSystemUI();
|
||
}
|
||
});
|
||
|
||
pageFactory.setPageEvent(new PageFactory.PageEvent() {
|
||
@Override
|
||
public void changeProgress(float progress) {
|
||
Message message = new Message();
|
||
message.what = MESSAGE_CHANGEPROGRESS;
|
||
message.obj = progress;
|
||
mHandler.sendMessage(message);
|
||
}
|
||
});
|
||
|
||
bookpage.setTouchListener(new PageWidget.TouchListener() {
|
||
@Override
|
||
public void center() {
|
||
if (isShow) {
|
||
hideReadSetting();
|
||
} else {
|
||
showReadSetting();
|
||
}
|
||
}
|
||
|
||
@Override
|
||
public Boolean prePage() {
|
||
|
||
if (isShow) {
|
||
hideReadSetting();
|
||
return false;
|
||
}
|
||
if (isShow || isSpeaking){
|
||
// return false;
|
||
}
|
||
// bookpage.setetCurPage(loadBitmapFromView(frmContainer));
|
||
// bookpage.setFrmContainer(frmContainer);
|
||
|
||
Bitmap bitmap =loadBitmapFromView(frmContainer);
|
||
hideAd();
|
||
pageFactory.prePage();
|
||
bookpage.setetCurPage( bitmap);
|
||
SplashAdManager.plusPage(ReadActivity.this);
|
||
if (pageFactory.isfirstPage() || !pageFactory.isReady()) {
|
||
return false;
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
@Override
|
||
public Boolean nextPage() {
|
||
Log.e("setTouchListener", "nextPage");
|
||
if (isShow) {
|
||
hideReadSetting();
|
||
return false;
|
||
|
||
}
|
||
if (isShow || isSpeaking){
|
||
// return false;
|
||
}
|
||
//
|
||
// bookpage.setFrmContainer(frmContainer);
|
||
Bitmap bitmap =loadBitmapFromView(frmContainer);
|
||
|
||
hideAd();
|
||
pageFactory.nextPage();
|
||
bookpage.setetCurPage(bitmap);
|
||
SplashAdManager.plusPage(ReadActivity.this);
|
||
Log.d(TAG, "onTouchEvent:set current bitmap set new bitmap");
|
||
if (pageFactory.islastPage() || !pageFactory.isReady()) {
|
||
return false;
|
||
}
|
||
return true;
|
||
}
|
||
|
||
@Override
|
||
public void cancel() {
|
||
pageFactory.cancelPage();
|
||
}
|
||
|
||
@Override
|
||
public Boolean canCancel() {
|
||
// Log.d(TAG, "canCancel: cancelPage canCancel ?" + pageFactory.canCancelPage());
|
||
return true;//pageFactory.canCancelPage();
|
||
}
|
||
|
||
@Override
|
||
public void showAdAfterIni() {
|
||
// if(frmAD.getVisibility()== View.INVISIBLE)
|
||
// frmAD.setVisibility(View.VISIBLE);
|
||
/* if(mBannerContainer.getVisibility()== View.GONE)
|
||
mBannerContainer.setVisibility(View.VISIBLE);*/
|
||
// Log.d(TAG, "pageAnimation showAdAfterIni: ");
|
||
pageFactory.showAd();
|
||
}
|
||
|
||
@Override
|
||
public void hideAdBeforeIni() {
|
||
// hideAd();
|
||
}
|
||
});
|
||
|
||
}
|
||
void hideAd () {
|
||
/* if(frmAD.getVisibility()== View.VISIBLE)
|
||
frmAD.setVisibility(View.INVISIBLE);*/
|
||
// if(mTopBannerContainer.getVisibility()== View.VISIBLE)
|
||
// mTopBannerContainer.setVisibility(View.INVISIBLE);
|
||
if(mBannerContainer.getVisibility()== View.VISIBLE)
|
||
mBannerContainer.setVisibility(View.GONE);
|
||
// mBannerContainer.removeAllViews();
|
||
// Log.d(TAG, "pageAnimation hideAdBeforeIni: ");
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
public Bitmap getBitmapWithAd(){
|
||
return loadBitmapFromView(frmContainer);
|
||
}
|
||
@Override
|
||
protected void attachAd(){
|
||
|
||
/* if(bookpage.isRunning()){
|
||
return;
|
||
|
||
}
|
||
Bitmap bitmap =loadBitmapFromView(frmContainer);
|
||
savePicture(bitmap);
|
||
pageFactory.getPageWidget(). setetCurPage(bitmap);
|
||
pageFactory.getPageWidget().setPageMode(config.getPageMode());
|
||
Log.d(TAG, "attachAd: ad attached");*/
|
||
|
||
}
|
||
|
||
private Bitmap loadBitmapFromView(View v) {
|
||
int w=v.getWidth();int h=v.getHeight();Bitmap bmp=Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
|
||
Canvas c=new Canvas(bmp);
|
||
c.drawColor(Color.WHITE);/** 如果不设置canvas画布为白色,则生成透明 */
|
||
v.layout(0,0,w,h);
|
||
v.draw(c);
|
||
// savePicture(bmp,new Date().getTime()+".jpg");
|
||
return bmp;
|
||
}
|
||
|
||
|
||
|
||
public void savePicture(Bitmap bm) {
|
||
String fileName =new Date().getTime()+".jpg";
|
||
if (bm == null) {
|
||
Toast.makeText(this, "savePicture null !", Toast.LENGTH_SHORT).show();
|
||
Log.d("SSSSSSSSSSS", "savePicture: savePicture null ");
|
||
return;
|
||
}
|
||
String PATH_LOGCAT = Environment.getExternalStorageDirectory()
|
||
.getAbsolutePath() + File.separator + "anovelbmp";
|
||
File foder = new File(PATH_LOGCAT);
|
||
if (!foder.exists()) {
|
||
foder.mkdirs();
|
||
}
|
||
File myCaptureFile = new File(foder, fileName);
|
||
try {
|
||
if (!myCaptureFile.exists()) {
|
||
myCaptureFile.createNewFile();
|
||
}
|
||
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));
|
||
bm.compress(Bitmap.CompressFormat.JPEG, 90, bos);
|
||
bos.flush();
|
||
bos.close();
|
||
} catch (IOException e) {
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
|
||
public static Bitmap convertViewToBitmap(View view){
|
||
view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
|
||
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
|
||
view.buildDrawingCache();
|
||
Bitmap bitmap = view.getDrawingCache();
|
||
|
||
return bitmap;
|
||
}
|
||
|
||
public Bitmap screenShot(View view) {
|
||
Log.d(TAG, "screenShot: .....");
|
||
view.setDrawingCacheEnabled(true);
|
||
view.buildDrawingCache();
|
||
Bitmap bmp = view.getDrawingCache();
|
||
|
||
|
||
Bitmap ret = Bitmap.createBitmap(bmp, 0, 0, Constants.SCREEN_WIDTH_PIX, Constants.SCREEN_HEIGHT_PIX);
|
||
view.destroyDrawingCache();
|
||
|
||
return ret;
|
||
}
|
||
private Handler mHandler = new Handler() {
|
||
@Override
|
||
public void handleMessage(Message msg) {
|
||
super.handleMessage(msg);
|
||
/*switch (msg.what) {
|
||
case MESSAGE_CHANGEPROGRESS:
|
||
float progress = (float) msg.obj;
|
||
setSeekBarProgress(progress);
|
||
break;
|
||
}*/
|
||
// hideProgress();
|
||
}
|
||
};
|
||
|
||
|
||
int startTime =0;
|
||
@Override
|
||
protected void onResume(){
|
||
super.onResume();
|
||
if (!isShow){
|
||
hideSystemUI();
|
||
}
|
||
/* if (mSpeechSynthesizer != null){
|
||
mSpeechSynthesizer.resume();
|
||
}*/
|
||
startTime = (int) new Date().getTime();
|
||
/* if (book != null) {
|
||
Intent intent = getIntent();
|
||
if (intent.hasExtra(EXTRA_BOOK)) {
|
||
Novel novel = (Novel) intent.getSerializableExtra(EXTRA_BOOK);
|
||
if (!pageFactory.isWorking() || novel.getId() != book.getId()) {
|
||
initData();
|
||
}else{
|
||
if( novel.getLastReadChapt()!=pageFactory.getCurrentChapter()){
|
||
pageFactory.changeChapter(novel.getLastReadChapt());
|
||
// hideReadSetting();
|
||
}
|
||
}
|
||
hideReadSetting();
|
||
}
|
||
}*/
|
||
|
||
hideReadSetting();
|
||
if( pageFactory.isReady()) {
|
||
pageFactory.updateTime();
|
||
pageFactory.showAd();
|
||
}
|
||
|
||
}
|
||
|
||
@Override
|
||
public void onPause() {
|
||
super.onPause();
|
||
Map<String, String> map_value = new HashMap<String, String>();
|
||
map_value.put("bookname" , book!=null ? book.getName():"noname" );
|
||
MobclickAgent.onEventValue(MyApp.applicationContext, "novel_reading_time" , map_value, (int) new Date().getTime() - startTime);
|
||
|
||
}
|
||
@Override
|
||
protected void onStop(){
|
||
super.onStop();
|
||
/* if (mSpeechSynthesizer != null){
|
||
mSpeechSynthesizer.stop();
|
||
}*/
|
||
|
||
}
|
||
|
||
@Override
|
||
protected void onDestroy() {
|
||
super.onDestroy();
|
||
pageFactory.clear();
|
||
bookpage = null;
|
||
unregisterReceiver(myReceiver);
|
||
isSpeaking = false;
|
||
/* if (mSpeechSynthesizer != null){
|
||
mSpeechSynthesizer.release();
|
||
}*/
|
||
}
|
||
|
||
@Override
|
||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||
|
||
Log.d(TAG, "onKeyDown: pressed key");
|
||
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
||
Log.d(TAG, "onKeyDown: pressed back");
|
||
/* if (isShow){
|
||
hideReadSetting();
|
||
return true;
|
||
}
|
||
if (mSettingDialog.isShowing()){
|
||
mSettingDialog.hide();
|
||
return true;
|
||
}
|
||
if (mPageModeDialog.isShowing()){
|
||
mPageModeDialog.hide();
|
||
return true;
|
||
}*/
|
||
|
||
if(isShow){
|
||
hideReadSetting();
|
||
return true;
|
||
}
|
||
|
||
if(!pageFactory.canExitSilent()){
|
||
if(book.isOnShelf() ||pageFactory.getChapters().size()>0){
|
||
finish();
|
||
}else {
|
||
// showNormalDialog();
|
||
Animation bottomAnim = AnimationUtils.loadAnimation(this, R.anim.dialog_enter);
|
||
llShelf.startAnimation(bottomAnim);
|
||
llShelf.setVisibility(View.VISIBLE);
|
||
return true;
|
||
}
|
||
}
|
||
|
||
}
|
||
return super.onKeyDown(keyCode, event);
|
||
}
|
||
private void showNormalDialog(){
|
||
/* @setIcon 设置对话框图标
|
||
* @setTitle 设置对话框标题
|
||
* @setMessage 设置对话框消息提示
|
||
* setXXX方法返回Dialog对象,因此可以链式设置属性
|
||
*/
|
||
final AlertDialog.Builder normalDialog =
|
||
new AlertDialog.Builder(ReadActivity.this);
|
||
|
||
normalDialog.setTitle("提示");
|
||
normalDialog.setMessage("是否加入书架?");
|
||
normalDialog.setPositiveButton("确定",
|
||
new DialogInterface.OnClickListener() {
|
||
@Override
|
||
public void onClick(DialogInterface dialog, int which) {
|
||
|
||
book.setOnShelf(true);
|
||
book.update(book.getId());
|
||
finish();
|
||
|
||
}
|
||
});
|
||
normalDialog.setNegativeButton("取消",
|
||
new DialogInterface.OnClickListener() {
|
||
@Override
|
||
public void onClick(DialogInterface dialog, int which)
|
||
{
|
||
|
||
finish();
|
||
}
|
||
});
|
||
|
||
normalDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||
@Override
|
||
public void onDismiss(DialogInterface dialog) {
|
||
hideSystemUI();
|
||
}
|
||
});
|
||
// 显示
|
||
normalDialog.show();
|
||
|
||
}
|
||
@Override
|
||
public boolean onCreateOptionsMenu(Menu menu) {
|
||
// Inflate the menu; this adds items to the action bar if it is present.
|
||
getMenuInflater().inflate(R.menu.read, menu);
|
||
|
||
if(book!=null && book.isLocalBook()){
|
||
menu.findItem(R.id.action_change_source).setEnabled(false);
|
||
menu.findItem(R.id.action_refresh).setEnabled(false);
|
||
menu.findItem(R.id.action_bookdetail).setEnabled(false);
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
@Override
|
||
public boolean onOptionsItemSelected(MenuItem item) {
|
||
// Handle action bar item clicks here. The action bar will
|
||
// automatically handle clicks on the Home/Up button, so long
|
||
// as you specify a parent activity in AndroidManifest.xml.
|
||
int id = item.getItemId();
|
||
pageFactory.setPageWidget(bookpage);
|
||
if (id == R.id.action_add_bookmark){
|
||
if( pageFactory.isReady())
|
||
if (pageFactory.getCurrentPage() != null) {
|
||
List<BookMarks> bookMarksList = LitePal.where("novelId = ? and chapt = ? " +
|
||
" and begin = ?", pageFactory.getNovle().getId()+"",pageFactory.getCurrentChapter()+"",pageFactory.getCurrentPage().getBegin() + "").find(BookMarks.class);
|
||
|
||
if (!bookMarksList.isEmpty()){
|
||
Toast.makeText(ReadActivity.this, "该书签已存在", Toast.LENGTH_SHORT).show();
|
||
}else {
|
||
BookMarks bookMarks = new BookMarks();
|
||
String word = "";
|
||
for (String line : pageFactory.getCurrentPage().getLines()) {
|
||
word += line;
|
||
}
|
||
try {
|
||
SimpleDateFormat sf = new SimpleDateFormat(
|
||
"yyyy-MM-dd HH:mm ss");
|
||
String time = sf.format(new Date());
|
||
bookMarks.setTime(time);
|
||
bookMarks.setBegin(pageFactory.getCurrentPage().getBegin());
|
||
bookMarks.setText(word);
|
||
bookMarks.setNovelId(pageFactory.getNovle().getId());
|
||
bookMarks.setChapt(pageFactory.getCurrentChapter());
|
||
bookMarks.setChaptName(((pageFactory.getChapters().get(bookMarks.getChapt()-1).getChapterName())));
|
||
if(!book.isLocalBook()) {
|
||
bookMarks.setDomain(pageFactory.getSite().getDomain());
|
||
}
|
||
bookMarks.save();
|
||
|
||
Toast.makeText(ReadActivity.this, "书签添加成功", Toast.LENGTH_SHORT).show();
|
||
} catch (SQLException e) {
|
||
Toast.makeText(ReadActivity.this, "该书签已存在", Toast.LENGTH_SHORT).show();
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
Toast.makeText(ReadActivity.this, "添加书签失败", Toast.LENGTH_SHORT).show();
|
||
}
|
||
}
|
||
}
|
||
hideReadSetting();
|
||
}
|
||
/* else if (id == R.id.action_read_book){
|
||
initialTts();
|
||
if (mSpeechSynthesizer != null){
|
||
mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_VOLUME, "5");
|
||
mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_SPEED, "5");
|
||
mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_PITCH, "5");
|
||
mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_SPEAKER, "0");
|
||
// mSpeechSynthesizer.setParam(SpeechSynthesizer. MIX_MODE_DEFAULT);
|
||
// mSpeechSynthesizer.setParam(SpeechSynthesizer. AUDIO_ENCODE_AMR);
|
||
// mSpeechSynthesizer.setParam(SpeechSynthesizer. AUDIO_BITRA TE_AMR_15K85);
|
||
mSpeechSynthesizer.setParam(SpeechSynthesizer. PARAM_VOCODER_OPTIM_LEVEL, "0");
|
||
int result = mSpeechSynthesizer.speak(pageFactory.getCurrentPage().getLineToString());
|
||
if (result < 0) {
|
||
Log.e(TAG,"error,please look up error code in doc or URL:http://yuyin.baidu.com/docs/tts/122 ");
|
||
}else{
|
||
hideReadSetting();
|
||
isSpeaking = true;
|
||
}
|
||
}
|
||
}*/
|
||
else if (id == R.id.action_change_source) {
|
||
// if( pageFactory.getChapters().size()>0) {
|
||
Intent intent = new Intent(ReadActivity.this, Activity_ChgSource.class);
|
||
intent.putExtra(Activity_ChgSource.EXTR_ID, pageFactory.getChapter().getIndex());
|
||
intent.putExtra(Activity_ChgSource.EXTR_TITLE, pageFactory.getChapter().getChapterName());
|
||
intent.putExtra(Activity_ChgSource.EXTR_SITE, pageFactory.getChapter().getDomain());
|
||
// intent.putExtra(Activity_ChgSource.EXTR_NAME, pageFactory.getSite().getName());
|
||
startActivity(intent);
|
||
hideReadSetting();
|
||
// }else{
|
||
// Toast.makeText(this,"换源不可用,请返回重试...",Toast.LENGTH_SHORT);
|
||
// }
|
||
}else if(id == R.id.action_refresh){
|
||
pageFactory.refreshChapter();
|
||
hideReadSetting();
|
||
|
||
}else if(id == R.id.action_bookdetail){
|
||
showBookDetail(this.book);
|
||
finish();
|
||
}
|
||
|
||
return super.onOptionsItemSelected(item);
|
||
}
|
||
|
||
@Override
|
||
public void fillData() {
|
||
|
||
}
|
||
|
||
@Override
|
||
protected void onNewIntent(Intent intent) {
|
||
super.onNewIntent(intent);
|
||
Log.e("tag", "onNewINtent执行了");
|
||
setIntent(intent);
|
||
initData();
|
||
}
|
||
|
||
public static boolean openBook(final Novel book, Activity context) {
|
||
if (book == null){
|
||
throw new NullPointerException("Novel can not be null");
|
||
|
||
}
|
||
|
||
Intent intent = new Intent(context, ReadActivity.class);
|
||
intent.putExtra(EXTRA_BOOK, book);
|
||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||
//context.overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
|
||
context.startActivity(intent);
|
||
return true;
|
||
}
|
||
public static boolean openChapter(final Novel book, final Chapter chapter, Activity context) {
|
||
if (book == null){
|
||
throw new NullPointerException("Novel can not be null");
|
||
|
||
}
|
||
|
||
Intent intent = new Intent(context, ReadActivity.class);
|
||
intent.putExtra(EXTRA_BOOK, book);
|
||
intent.putExtra(EXTRA_CHAPTER, chapter);
|
||
|
||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||
context.overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
|
||
context.startActivity(intent);
|
||
return true;
|
||
}
|
||
|
||
// public BookPageWidget getPageWidget() {
|
||
// return bookpage;
|
||
// }
|
||
|
||
|
||
|
||
//显示书本进度
|
||
public void showProgressBar(float progress){
|
||
if (rl_progress.getVisibility() != View.VISIBLE) {
|
||
rl_progress.setVisibility(View.VISIBLE);
|
||
}
|
||
setProgress(progress);
|
||
}
|
||
|
||
//隐藏书本进度
|
||
public void hideProgressBar(){
|
||
rl_progress.setVisibility(View.GONE);
|
||
}
|
||
|
||
public void initDayOrNight(){
|
||
mDayOrNight = config.getDayOrNight();
|
||
if (mDayOrNight){
|
||
tv_dayornight.setText(getResources().getString(R.string.read_setting_day));
|
||
}else{
|
||
tv_dayornight.setText(getResources().getString(R.string.read_setting_night));
|
||
}
|
||
}
|
||
|
||
//改变显示模式
|
||
public void changeDayOrNight(){
|
||
if (mDayOrNight){
|
||
mDayOrNight = false;
|
||
tv_dayornight.setText(getResources().getString(R.string.read_setting_night));
|
||
}else{
|
||
mDayOrNight = true;
|
||
tv_dayornight.setText(getResources().getString(R.string.read_setting_day));
|
||
}
|
||
config.setDayOrNight(mDayOrNight);
|
||
pageFactory.setDayOrNight(mDayOrNight);
|
||
}
|
||
|
||
private void setProgress(float progress){
|
||
DecimalFormat decimalFormat=new DecimalFormat("00.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
|
||
String p=decimalFormat.format(progress * 100.0);//format 返回的是字符串
|
||
tv_progress.setText(p + "%");
|
||
}
|
||
|
||
public void setSeekBarProgress(float progress){
|
||
sb_progress.setProgress((int) (progress * 10000));
|
||
}
|
||
|
||
public void showReadSetting(){
|
||
isShow = true;
|
||
// rl_progress.setVisibility(View.GONE);
|
||
Animation topAnim = AnimationUtils.loadAnimation(this, R.anim.dialog_top_enter);
|
||
Animation botoomAnim = AnimationUtils.loadAnimation(this, R.anim.dialog_exit);
|
||
|
||
if (llShelf.getVisibility() == View.VISIBLE) {
|
||
llShelf.startAnimation(botoomAnim);
|
||
llShelf.setVisibility(View.GONE);
|
||
}
|
||
|
||
if (isSpeaking){
|
||
|
||
rl_read_bottom.startAnimation(topAnim);
|
||
rl_read_bottom.setVisibility(View.VISIBLE);
|
||
}else {
|
||
showSystemUI();
|
||
|
||
// Animation bottomAnim = AnimationUtils.loadAnimation(this, R.anim.dialog_enter);
|
||
|
||
rl_bottom.startAnimation(topAnim);
|
||
appbar.startAnimation(topAnim);
|
||
// ll_top.startAnimation(topAnim);// ll_top.setVisibility(View.VISIBLE);
|
||
rl_bottom.setVisibility(View.VISIBLE);
|
||
appbar.setVisibility(View.VISIBLE);
|
||
|
||
/* tvUrl.setVisibility(View.VISIBLE);
|
||
tvUrl.setText("abcd+" + pageFactory.getChapter().getChapterUrl());*/
|
||
|
||
if(Constants.SHOW_NOVEL_CHAPTER_URL) {
|
||
if(pageFactory.getChapter()!=null && !TextUtils.isEmpty(pageFactory.getChapter().getChapterUrl())) {
|
||
tvUrl.setVisibility(View.VISIBLE);
|
||
tvUrl.setText(pageFactory.getChapter().getChapterUrl());
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
}
|
||
/**
|
||
* 隐藏菜单。沉浸式阅读
|
||
*/
|
||
public void hideSystemUI() {
|
||
// Set the IMMERSIVE flag.
|
||
// Set the content to appear under the system bars so that the content
|
||
// doesn't resize when the system bars hide and show.
|
||
getWindow().getDecorView().setSystemUiVisibility(
|
||
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
|
||
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
|
||
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
|
||
// | View.SYSTEM_UI_FLAG_IMMERSIVE
|
||
);
|
||
|
||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||
getWindow().setNavigationBarColor(getResources().getColor(R.color.read_dialog_bg));
|
||
}
|
||
pageFactory.setBusy(false);
|
||
|
||
if (llShelf.getVisibility() == View.VISIBLE) {
|
||
Animation topAnim = AnimationUtils.loadAnimation(this, R.anim.dialog_exit);
|
||
llShelf.startAnimation(topAnim);
|
||
llShelf.setVisibility(View.GONE);
|
||
}
|
||
}
|
||
|
||
@Override
|
||
public void showRefresh(int visible) {
|
||
btnRefresh.setVisibility(visible);
|
||
}
|
||
|
||
@Override
|
||
public void showProgressbar(boolean dismissAble,String msg) {
|
||
showProgressDialog(dismissAble,msg);
|
||
}
|
||
|
||
@Override
|
||
public void hideProgressbar() {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void showLoading(boolean isShow) {
|
||
/* if(!isShow){
|
||
try {
|
||
throw new Exception("why not show");
|
||
} catch (Exception e) {
|
||
Log.e(TAG, "showLoading: ",e );
|
||
}
|
||
}*/
|
||
imgLoading.setVisibility(isShow?View.VISIBLE:View.GONE);
|
||
}
|
||
|
||
private void showSystemUI() {
|
||
getWindow().getDecorView().setSystemUiVisibility(
|
||
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||
// | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
|
||
// | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
|
||
);
|
||
pageFactory.setBusy(true);
|
||
}
|
||
public void hideReadSetting() {
|
||
isShow = false;
|
||
Animation bottomAnim = AnimationUtils.loadAnimation(this, R.anim.dialog_exit);
|
||
Animation topAnim = AnimationUtils.loadAnimation(this, R.anim.dialog_top_exit);
|
||
if (rl_bottom.getVisibility() == View.VISIBLE) {
|
||
rl_bottom.startAnimation(topAnim);
|
||
}
|
||
if (appbar.getVisibility() == View.VISIBLE) {
|
||
appbar.startAnimation(topAnim);
|
||
}
|
||
if (rl_read_bottom.getVisibility() == View.VISIBLE) {
|
||
rl_read_bottom.startAnimation(topAnim);
|
||
}
|
||
// ll_top.startAnimation(topAnim);
|
||
rl_bottom.setVisibility(View.GONE);
|
||
rl_read_bottom.setVisibility(View.GONE);
|
||
// ll_top.setVisibility(View.GONE);
|
||
appbar.setVisibility(View.GONE);
|
||
tvUrl.setVisibility(View.GONE);
|
||
hideSystemUI();
|
||
// Animation bottomAnim = AnimationUtils.loadAnimation(this, R.anim.dialog_enter);
|
||
|
||
}
|
||
|
||
|
||
@OnClick({R.id.tv_progress, R.id.rl_progress, R.id.tv_pre, R.id.sb_progress, R.id.tv_next, R.id.tv_directory,
|
||
R.id.tv_dayornight,R.id.tv_pagemode, R.id.tv_setting, R.id.bookpop_bottom, /*R.id.rl_bottom,*/R.id.tv_stop_read
|
||
,R.id.btnRefresh,R.id.btnCancel,R.id.btnShelf})
|
||
public void onClick(View view) {
|
||
pageFactory.setPageWidget(bookpage);
|
||
// if( pageFactory.isReady())
|
||
switch (view.getId()) {
|
||
// case R.id.btn_return:
|
||
// finish();
|
||
// break;
|
||
// case R.id.ll_top:
|
||
// break;
|
||
case R.id.tv_progress:
|
||
break;
|
||
case R.id.rl_progress:
|
||
break;
|
||
case R.id.tv_pre:
|
||
pageFactory.preChapter();
|
||
break;
|
||
case R.id.sb_progress:
|
||
break;
|
||
case R.id.tv_next:
|
||
pageFactory.nextChapter();
|
||
break;
|
||
case R.id.tv_directory:
|
||
Intent intent = new Intent(ReadActivity.this, MarkActivity.class);
|
||
startActivity(intent);
|
||
|
||
// finish();
|
||
break;
|
||
case R.id.tv_dayornight:
|
||
changeDayOrNight();
|
||
break;
|
||
case R.id.tv_pagemode:
|
||
hideReadSetting();
|
||
mPageModeDialog.show();
|
||
showSystemUI();
|
||
// getWindow().setNavigationBarColor(getResources().getColor(R.color.read_dialog_bg));
|
||
break;
|
||
case R.id.tv_setting:
|
||
hideReadSetting();
|
||
mSettingDialog.show();
|
||
showSystemUI();
|
||
break;
|
||
case R.id.bookpop_bottom:
|
||
break;
|
||
/* case R.id.rl_bottom:
|
||
break;*/
|
||
case R.id.tv_stop_read:
|
||
/* if (mSpeechSynthesizer!=null){
|
||
mSpeechSynthesizer.stop();
|
||
isSpeaking = false;
|
||
hideReadSetting();
|
||
}*/
|
||
/* case R.id.mBannerContainer:
|
||
Toast.makeText(this,"ad is clicked ",Toast.LENGTH_LONG).show();
|
||
Log.d(TAG,"Ad is clicked");
|
||
|
||
break;*/
|
||
case R.id.btnRefresh:
|
||
pageFactory.retryChapt(pageFactory.getCurrentChapter());
|
||
btnRefresh.setVisibility(View.GONE);
|
||
break;
|
||
case R.id.btnShelf:
|
||
book.setOnShelf(true);
|
||
book.update(book.getId());
|
||
finish();
|
||
break;
|
||
case R.id.btnCancel:
|
||
finish();
|
||
break;
|
||
|
||
}
|
||
// hideSystemUI();
|
||
}
|
||
/*
|
||
ProgressDialog progressDialog;
|
||
private void showProgressDialog() {
|
||
if ( null == progressDialog) {
|
||
progressDialog =ProgressDialog.show(this,"测试","你点了广告",false,true); //new ProgressDialog(this);
|
||
}else{
|
||
progressDialog.show();
|
||
}
|
||
|
||
}
|
||
|
||
|
||
private void dismissProgressDialog() {
|
||
if ( null != progressDialog) {
|
||
progressDialog.dismiss();
|
||
}
|
||
}
|
||
*/
|
||
|
||
FrameLayout tmpFrame =mBannerContainer;
|
||
@Override
|
||
FrameLayout getNativeContainer(){
|
||
return tmpFrame;
|
||
}
|
||
|
||
@Override
|
||
void initNaviBanner() {
|
||
|
||
}
|
||
public void hideStatusAds(){
|
||
|
||
/* try{
|
||
throw new Exception("");
|
||
}catch (Exception e){
|
||
Log.e(TAG, "loadBannerAd: ", e);
|
||
}*/
|
||
/* if(mNative_status_banner_container.getVisibility() ==View.VISIBLE) {
|
||
Log.d(TAG, "loadBannerAd: hideStatusAds()");
|
||
mNative_status_banner_container.setVisibility(View.GONE);
|
||
}*/
|
||
// mBannerContainer.removeAllViews();
|
||
// mBannerContainer.setBackgroundResource(R.color.transparent);
|
||
}
|
||
private void hideAdSlot(ViewGroup view){
|
||
|
||
if(view.getVisibility() ==View.VISIBLE) {
|
||
view.setVisibility(View.GONE);
|
||
}
|
||
/* FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams();
|
||
params.width =0;
|
||
view.setLayoutParams(params);*/
|
||
// view.setBackgroundResource(R.color.transparent);
|
||
|
||
//mBannerContainer.removeAllViews();
|
||
// mBannerContainer.setBackgroundResource(R.color.transparent);
|
||
|
||
}
|
||
private void showAdSlot(ViewGroup view){
|
||
Log.d(TAG, "loadBannerAd: showAdSlot()");
|
||
if(view.getVisibility() ==View.GONE) {
|
||
view.setVisibility(View.VISIBLE);
|
||
}
|
||
/* FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams();
|
||
|
||
params.width =-1;
|
||
view.setLayoutParams(params);*/
|
||
|
||
}
|
||
public void showNativeBannerInLines(int height,int adY){
|
||
// hideSystemUI();
|
||
// hideAdSlot(mNative_banner_container);
|
||
// hideAdSlot(mBannerContainer);
|
||
// mBannerContainer.removeAllViews();
|
||
// mBannerContainer.removeAllViews();
|
||
// mBannerContainer.setBackgroundResource(R.color.transparent);
|
||
|
||
Log.d(TAG, String.format("loadBannerAd:showNativeBannerInLines height %s, adY %s ",height, adY/Constants.ONE_DP_SIZE ));
|
||
|
||
hideAdSlot(mBannerContainer);
|
||
// hideAdSlot(mNative_status_banner_container);
|
||
if(height<=0){
|
||
return;
|
||
}
|
||
|
||
if( adY >390*Constants.ONE_DP_SIZE){
|
||
return;
|
||
}
|
||
|
||
// hideAdSlot(mTopBannerContainer);
|
||
if(mBannerContainer.getChildCount()>0) {
|
||
mBannerContainer.removeAllViews();
|
||
}
|
||
|
||
|
||
tmpFrame = new FrameLayout(this);
|
||
|
||
tmpFrame =mBannerContainer;
|
||
mLastBannerTime=0;
|
||
Log.d(TAG, String.format("loadBannerAd:showNativeBannerInLines to get ad, width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,height,adY));
|
||
loadNativeBannerAd(tmpFrame);
|
||
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)tmpFrame.getLayoutParams();
|
||
params.setMargins(10*Constants.ONE_DP_SIZE, adY+5*Constants.ONE_DP_SIZE, 10*Constants.ONE_DP_SIZE, 0*Constants.ONE_DP_SIZE);
|
||
params.width =-1;
|
||
params.height = (int) getResources().getDimension(R.dimen.nativeBannerHeight);
|
||
tmpFrame.setLayoutParams(params);
|
||
tmpFrame.setVisibility(View.VISIBLE);
|
||
showAdSlot(mBannerContainer);
|
||
|
||
|
||
|
||
}
|
||
@Override
|
||
public void showTopBanner( int adHeight,int adY) {
|
||
// hideSystemUI();
|
||
// mTopBannerContainer.setVisibility(View.INVISIBLE);//翻页引起抖动
|
||
//mTopBannerContainer.removeAllViews();
|
||
// Log.d(TAG, String.format("loadBannerAd:showTopBanner width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,adHeight,adY));
|
||
tmpFrame =mTopBannerContainer;
|
||
// hideAdSlot(mBannerContainer);
|
||
Log.d(TAG, String.format("loadBannerAd:showTopBanner width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,adHeight,adY));
|
||
//hideAdSlot(mBannerContainer);
|
||
// hideAdSlot(mNative_status_banner_container);
|
||
if(adHeight<=0){
|
||
hideAdSlot(mTopBannerContainer);
|
||
return;
|
||
}
|
||
|
||
int topMargin = adY >200*Constants.ONE_DP_SIZE ? adY -15*Constants.ONE_DP_SIZE :adY -5*Constants.ONE_DP_SIZE;
|
||
|
||
// FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mTopBannerContainer.getLayoutParams();
|
||
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) mTopBannerContainer.getLayoutParams();
|
||
loadBanner(mTopBannerContainer, Constants.SCREEN_WIDTH_PIX-50,adHeight);
|
||
// loadNativeBannerAd(mTopBannerContainer,BuildConfig.AD_SLOT_TOUTIAO_BANNER_NATIVE_ID, 304,200);
|
||
params.setMargins(10*Constants.ONE_DP_SIZE, topMargin, 10*Constants.ONE_DP_SIZE, 0 );
|
||
params.width =-1;
|
||
params.height = (int) getResources().getDimension(R.dimen.topBannerHeight);
|
||
mTopBannerContainer.setLayoutParams(params);
|
||
showAdSlot(mTopBannerContainer);
|
||
}
|
||
|
||
|
||
final int contentAdHight=80;
|
||
|
||
@Override
|
||
public void showStatusAd(int adHeight,int adY) {
|
||
|
||
// hideSystemUI();
|
||
// mShowAd =showAd;
|
||
// mBannerContainer.setVisibility(View.GONE);
|
||
|
||
|
||
|
||
if(!Constants.AD_SETTING.isShowAdsense()){
|
||
return;
|
||
}
|
||
|
||
// Log.d(TAG, String.format("loadBannerAd:width %s, height %s ,adY %s,showAd %s",Constants.SCREEN_WIDTH_PIX-50,adHeight/Constants.ONE_DP_SIZE,adY/Constants.ONE_DP_SIZE, showAd));
|
||
|
||
|
||
|
||
if(adHeight >contentAdHight){
|
||
|
||
|
||
|
||
// Log.d(TAG, String.format("loadBannerAd:width %s, height %s ,adY %s",Constants.SCREEN_WIDTH_PIX-50,adHeight,adY));
|
||
|
||
if(adHeight>150*Constants.ONE_DP_SIZE && adY <400*Constants.ONE_DP_SIZE){
|
||
Log.d(TAG, String.format("loadBannerAd: showStatusAd width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,adHeight/Constants.ONE_DP_SIZE,adY/Constants.ONE_DP_SIZE ));
|
||
hideAdSlot(mBannerContainer);
|
||
// hideAdSlot(mTopBannerContainer);
|
||
tmpFrame =mNative_status_banner_container;
|
||
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) mNative_status_banner_container.getLayoutParams();
|
||
hideAdSlot(mNative_status_banner_container);
|
||
|
||
// mBannerContainer.removeAllViews();
|
||
// mBannerContainer.setBackgroundResource(R.color.transparent);
|
||
|
||
loadNativeBannerAd(mNative_status_banner_container);
|
||
params.setMargins(10*Constants.ONE_DP_SIZE, adY-20*Constants.ONE_DP_SIZE, 10*Constants.ONE_DP_SIZE, 50*Constants.ONE_DP_SIZE);
|
||
// params.height=-1;
|
||
mNative_status_banner_container.setLayoutParams(params);
|
||
showAdSlot(mNative_status_banner_container);
|
||
// mNative_banner_container.setVisibility(View.VISIBLE);
|
||
// showTopBanner(0,0);
|
||
}
|
||
|
||
|
||
|
||
}
|
||
}
|
||
|
||
|
||
}
|