admin
2022-01-28 760aee20870a34e6130a1c12237c5b747e2b00bd
MGVideo/src/com/mugua/mgvideo/ui/main/MainActivity.java
@@ -11,32 +11,51 @@
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Configuration;
import android.database.Cursor;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.CursorLoader;
import androidx.loader.content.Loader;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast;
import com.bytedance.novel.pangolin.NovelSDK;
import com.bytedance.sdk.dp.DPSdk;
import com.bytedance.sdk.dp.DPWidgetDrawParams;
import com.bytedance.sdk.dp.DPWidgetNewsParams;
import com.bytedance.sdk.dp.IDPDrawListener;
import com.bytedance.sdk.dp.IDPNewsListener;
import com.bytedance.sdk.dp.IDPWidget;
import com.bytedance.sdk.openadsdk.TTFullScreenVideoAd;
import com.lcjian.library.DeviceUuidFactory;
import com.lcjian.library.util.FragmentSwitchHelper;
import com.lcjian.library.util.FragmentSwitchHelperV2;
import com.lcjian.library.util.common.DimenUtils;
import com.lcjian.library.util.common.StringUtils;
import com.mozillaonline.providers.downloads.DownloadService;
import com.mugua.mgvideo.R;
import com.mugua.mgvideo.entity.HomeNavType;
import com.mugua.mgvideo.entity.recommend.HomeClass;
import com.mugua.mgvideo.util.ad.FullVideoAdManager;
import com.mugua.mgvideo.util.ad.InterstitialAdUtil;
import com.umeng.socialize.UMShareAPI;
import com.yeshi.base.entity.ad.AdPositionEnum;
import com.yeshi.base.utils.YouthUtil;
import com.yeshi.base.utils.ad.AdTypeEnum;
import com.yeshi.base.utils.ad.AdUtil;
import com.yeshi.base.utils.http.BasicTextHttpResponseHandler;
import com.mugua.mgvideo.MGVideoAPI;
import com.mugua.mgvideo.MGVideoApplication;
@@ -56,7 +75,9 @@
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import de.greenrobot.event.EventBus;
@@ -64,13 +85,101 @@
public class MainActivity extends BaseActivity implements
        LoaderManager.LoaderCallbacks<Cursor> {
    private static final String TAG = "MainActivity";
    private RadioGroup rg_nav;
    private BadgeView mBadgeView;
    private FragmentSwitchHelper mFragmentSwitchHelper;
    private FragmentSwitchHelperV2 mFragmentSwitchHelper;
    private ProgressDialog pd = null;
    private void initFragment() {
        mFragmentSwitchHelper = FragmentSwitchHelperV2.create(R.id.fl_main_fragment_container, getSupportFragmentManager(), null);
        HomeClass homeClass = new HomeClass();
        homeClass.setDataKey("recommend");
        homeClass.setId("1626144258979");
        homeClass.setDataType("recommend");
        mFragmentSwitchHelper.addFragment(HomeNavType.recommend.name(), RecommendNewFragment.newInstance(homeClass, 0));
        mFragmentSwitchHelper.addFragment(HomeNavType.category.name(), CategoryFragment.newInstance(true));
        mFragmentSwitchHelper.addFragment(HomeNavType.shop.name(), ShopFragment.newInstance(true));
        mFragmentSwitchHelper.addFragment(HomeNavType.mine.name(), new MineFragment());
        if (AdUtil.isCanInitCSJ()) {
            //小说
            mFragmentSwitchHelper.addFragment(HomeNavType.novel.name(), new NovelFragment(getSupportFragmentManager()));
            //小视频
            mFragmentSwitchHelper.addFragment(HomeNavType.drawVideo.name(), new DYVideoFragment());
            //资讯
            mFragmentSwitchHelper.addFragment(HomeNavType.news.name(), new DYNewsFragment());
        }
    }
    //底部导航菜单显示
    private void setNavShow() {
        if (YouthUtil.isOpenYouthMode(getApplicationContext())) {
            findViewById(R.id.rb_nav_draw_video).setVisibility(View.GONE);
            findViewById(R.id.rb_nav_category).setVisibility(View.GONE);
            findViewById(R.id.rb_shop).setVisibility(View.GONE);
            findViewById(R.id.rb_nav_watch).setVisibility(View.GONE);
            findViewById(R.id.rb_nav_novel).setVisibility(View.GONE);
        } else {
            //后台控制显示菜单
            if (AdUtil.isCanInitCSJ() && AdUtil.getAdType(getApplicationContext(), AdPositionEnum.splashHotStart) != null) {
                findViewById(R.id.rb_nav_draw_video).setVisibility(View.VISIBLE);
                findViewById(R.id.rb_nav_watch).setVisibility(View.VISIBLE);
                findViewById(R.id.rb_nav_novel).setVisibility(View.VISIBLE);
                findViewById(R.id.rb_nav_category).setVisibility(View.GONE);
                findViewById(R.id.rb_shop).setVisibility(View.GONE);
            } else {
                findViewById(R.id.rb_nav_draw_video).setVisibility(View.GONE);
                findViewById(R.id.rb_nav_watch).setVisibility(View.GONE);
                findViewById(R.id.rb_nav_novel).setVisibility(View.GONE);
                findViewById(R.id.rb_nav_category).setVisibility(View.VISIBLE);
                findViewById(R.id.rb_shop).setVisibility(View.VISIBLE);
            }
        }
    }
    private Runnable adCallback;
    //显示插屏广告
    private void showInterstitialAd() {
        final AdTypeEnum adType = AdUtil.getAdType(getApplicationContext(), AdPositionEnum.homeInterstitial);
        if (adType == null) {
            return;
        }
        adCallback = new Runnable() {
            @Override
            public void run() {
                AdTypeEnum type = adType;
                //Android 5.0以下广告兼容
                if (type == AdTypeEnum.csj && !AdUtil.isCanInitCSJ()) {
                    type = AdTypeEnum.gdt;
                }
                if (type == AdTypeEnum.csj) {
                    InterstitialAdUtil.showAd(MainActivity.this, type, getString(R.string.ad_csj_pid_home_insert));
                } else {
                    InterstitialAdUtil.showAd(MainActivity.this, type, getString(R.string.ad_gdt_pid_home_insert));
                }
            }
        };
        //延迟三秒显示
        rg_nav.postDelayed(adCallback, 3000);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
@@ -103,14 +212,9 @@
        pd.setMessage("正在请求网络...");
        pd.setCanceledOnTouchOutside(false);
        HomeClass homeClass = new HomeClass();
        homeClass.setDataKey("recommend");
        homeClass.setId("1626144258979");
        homeClass.setDataType("recommend");
        mFragmentSwitchHelper = FragmentSwitchHelper.create(
                R.id.fl_main_fragment_container, getSupportFragmentManager(),
                RecommendNewFragment.newInstance(homeClass, 0), BaiDuVideosFragment.newInstance(), new CategoryFragment(),
                new ShopFragment(), new MineFragment());
        initFragment();
        rg_nav = findViewById(R.id.rg_nav);
        rg_nav.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@@ -119,32 +223,44 @@
                switch (checkedId) {
                    case R.id.rb_nav_recommend: {
                        mFragmentSwitchHelper
                                .changeFragment(RecommendNewFragment.class);
                                .changeFragment(HomeNavType.recommend.name());
                    }
                    break;
                    case R.id.rb_nav_short_video:
                    case R.id.rb_nav_draw_video: {
                        mFragmentSwitchHelper
                                .changeFragment(BaiDuVideosFragment.class);
                        break;
                                .changeFragment(HomeNavType.drawVideo.name());
                    }
                    break;
                    case R.id.rb_nav_category: {
                        mFragmentSwitchHelper
                                .changeFragment(CategoryFragment.class);
                                .changeFragment(HomeNavType.category.name());
                    }
                    break;
                    case R.id.rb_nav_novel: {
                        mFragmentSwitchHelper
                                .changeFragment(HomeNavType.novel.name());
                    }
                    break;
                    case R.id.rb_nav_watch: {
                        mFragmentSwitchHelper
                                .changeFragment(HomeNavType.news.name());
                    }
                    break;
                    case R.id.rb_shop: {
                        mFragmentSwitchHelper.changeFragment(ShopFragment.class);
                        mFragmentSwitchHelper.changeFragment(HomeNavType.shop.name());
                    }
                    break;
                    case R.id.rb_nav_mine: {
                        mFragmentSwitchHelper.changeFragment(MineFragment.class);
                        mFragmentSwitchHelper.changeFragment(HomeNavType.mine.name());
                    }
                    break;
                }
            }
        });
        mBadgeView = new BadgeView(this, rg_nav);
        mBadgeView.setBackgroundResource(R.drawable.ic_red_dot);
        mBadgeView.setBackgroundResource(R.drawable.app_icon);
        mBadgeView.setTextSize(1);
        mBadgeView.setText("");
        mBadgeView.setBadgeMargin(DimenUtils.dipToPixels(24, this),
@@ -166,6 +282,8 @@
            AppUpdate.setAppUpdateKey(map.get("GuanWang"));
        }
        AppUpdate.initAppUpdate();
        showInterstitialAd();
    }
    private String getChannelName() {
@@ -245,6 +363,7 @@
    @Override
    public void onResume() {
        super.onResume();
        setNavShow();
        EventBus.getDefault().register(this);
        SharedPreferences preferences = getSharedPreferences("user",
                Context.MODE_PRIVATE);
@@ -253,17 +372,6 @@
        if (isLogin) {
            getNewInfo();
        }
        if (YouthUtil.isOpenYouthMode(getApplicationContext())) {
            findViewById(R.id.rb_nav_short_video).setVisibility(View.GONE);
            findViewById(R.id.rb_nav_category).setVisibility(View.GONE);
            findViewById(R.id.rb_shop).setVisibility(View.GONE);
        } else {
            findViewById(R.id.rb_nav_short_video).setVisibility(View.GONE);
            findViewById(R.id.rb_nav_category).setVisibility(View.VISIBLE);
            findViewById(R.id.rb_shop).setVisibility(View.VISIBLE);
        }
    }
    @Override
@@ -271,6 +379,7 @@
        super.onPause();
        EventBus.getDefault().unregister(this);
    }
    @Override
    protected void onActivityResult(int arg0, int arg1, Intent arg2) {
@@ -566,9 +675,14 @@
    protected void onDestroy() {
        super.onDestroy();
        AppUpdate.destoryAppUpdate();
        if (rg_nav != null && adCallback != null) {
            rg_nav.removeCallbacks(adCallback);
        }
    }
    private long mExitTime;
    boolean showFullAd = false;
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
@@ -578,9 +692,76 @@
//                mExitTime = System.currentTimeMillis();
//                return true;
//            }
            ExitDialog dialog = new ExitDialog.Builder(this).create();
            dialog.setCanceledOnTouchOutside(true);
            dialog.show();
            //exit
            AdTypeEnum adType = AdUtil.getAdType(getApplicationContext(), AdPositionEnum.exitAppFullvideo);
            if (adType != null) {
                if (showFullAd) {
                    finish();
                    return true;
                }
                if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT_WATCH) {
                    adType = AdTypeEnum.gdt;
                }
                if (adType == AdTypeEnum.csj) {
                    FullVideoAdManager.getInstance().loadAd(MainActivity.this, AdTypeEnum.csj,getString(R.string.ad_csj_pid_video_detail_fullvideo), new FullVideoAdManager.IFullVideoAdListener() {
                        @Override
                        public void onFail(String msg) {
                            showFullAd = true;
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    Toast.makeText(getApplicationContext(), "再按一次退出应用", Toast.LENGTH_SHORT).show();
                                }
                            });
                        }
                        @Override
                        public void onFinish() {
                            showFullAd = true;
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    MainActivity.this.finish();
                                }
                            });
                        }
                    });
                } else {
                    FullVideoAdManager.getInstance().loadAd(MainActivity.this, AdTypeEnum.gdt, getString(R.string.ad_gdt_pid_video_detail_insert), new FullVideoAdManager.IFullVideoAdListener() {
                        @Override
                        public void onFail(String msg) {
                            showFullAd = true;
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    Toast.makeText(getApplicationContext(), "再按一次退出应用", Toast.LENGTH_SHORT).show();
                                }
                            });
                        }
                        @Override
                        public void onFinish() {
                            showFullAd = true;
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    MainActivity.this.finish();
                                }
                            });
                        }
                    });
                }
            } else {
                ExitDialog dialog = new ExitDialog.Builder(this).create();
                dialog.setCanceledOnTouchOutside(true);
                dialog.show();
            }
            return true;
        }
        return super.onKeyDown(keyCode, event);
@@ -591,4 +772,10 @@
        Intent intent = new Intent(MainActivity.this, DownloadService.class);
        startService(intent);
    }
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Log.i(TAG,"onConfigurationChanged");
    }
}