diff --git a/powerbell/build.gradle b/powerbell/build.gradle
index 794a12f0..ba3791d5 100644
--- a/powerbell/build.gradle
+++ b/powerbell/build.gradle
@@ -46,25 +46,10 @@ android {
}
}
- // 允许使用系统隐藏API
- lintOptions {
- checkReleaseBuilds false
- abortOnError false
+ // 米盟
+ packagingOptions {
+ doNotStrip "*/*/libmimo_1011.so"
}
- // 针对PowerProfile的依赖配置
- dependenciesInfo {
- includeInApk = false
- includeInBundle = false
- }
-
- buildFeatures {
- dataBinding true
- }
-
- lintOptions {
- abortOnError false
- }
-
}
dependencies {
diff --git a/powerbell/build.properties b/powerbell/build.properties
index 5cd2757b..ed62d0b0 100644
--- a/powerbell/build.properties
+++ b/powerbell/build.properties
@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
-#Sun Nov 16 00:39:18 GMT 2025
+#Sun Nov 16 01:52:06 GMT 2025
stageCount=0
libraryProject=
baseVersion=15.11
publishVersion=15.11.0
-buildCount=2
+buildCount=28
baseBetaVersion=15.11.1
diff --git a/powerbell/proguard-rules.pro b/powerbell/proguard-rules.pro
index 233bad20..ce666849 100644
--- a/powerbell/proguard-rules.pro
+++ b/powerbell/proguard-rules.pro
@@ -15,3 +15,6 @@
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
+
+## 米盟
+-keep class com.miui.zeus.** { *; }
diff --git a/powerbell/src/main/AndroidManifest.xml b/powerbell/src/main/AndroidManifest.xml
index 6f683f07..24cd5416 100644
--- a/powerbell/src/main/AndroidManifest.xml
+++ b/powerbell/src/main/AndroidManifest.xml
@@ -3,8 +3,8 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="cc.winboll.studio.powerbell">
-
- //必要权限配置
+
+ //米盟必要权限配置
@@ -17,7 +17,7 @@
-
+
diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java
index 63be0a0e..bf6a3514 100644
--- a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java
+++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java
@@ -1,51 +1,32 @@
package cc.winboll.studio.powerbell;
-import com.miui.zeus.mimo.sdk.MimoCustomController;
-import com.miui.zeus.mimo.sdk.MimoLocation;
-import com.miui.zeus.mimo.sdk.MimoSdk;
-
-import com.miui.zeus.mimo.sdk.ADParams;
-import com.miui.zeus.mimo.sdk.BannerAd;
-import com.miui.zeus.mimo.sdk.base.BaseAd;
-
-import com.google.android.material.navigation.NavigationView;
-import androidx.annotation.NonNull;
-import androidx.appcompat.app.AlertDialog;
-
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.FragmentTransaction;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.database.Cursor;
+import android.net.Uri;
import android.os.Bundle;
+import android.os.PersistableBundle;
+import android.provider.MediaStore;
import android.text.TextUtils;
import android.util.Log;
import android.view.Display;
import android.view.Gravity;
import android.view.KeyEvent;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.Window;
-import android.view.WindowManager;
-import android.widget.Toast;
-
-import cc.winboll.studio.powerbell.utils.MimoUtils;
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.FragmentTransaction;
-import android.content.Intent;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.Bundle;
-import android.provider.MediaStore;
-import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.ViewGroup;
-import android.widget.Button;
+import android.view.Window;
+import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.RelativeLayout;
import android.widget.Toast;
-import cc.winboll.studio.libaes.views.AToolbar;
+import androidx.appcompat.app.AlertDialog;
+import cc.winboll.studio.libaes.views.ASupportToolbar;
import cc.winboll.studio.libappbase.LogActivity;
import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.powerbell.MainActivity;
@@ -57,44 +38,35 @@ import cc.winboll.studio.powerbell.activities.WinBoLLActivity;
import cc.winboll.studio.powerbell.beans.BackgroundPictureBean;
import cc.winboll.studio.powerbell.fragments.MainViewFragment;
import cc.winboll.studio.powerbell.utils.BackgroundPictureUtils;
+import cc.winboll.studio.powerbell.utils.MimoUtils;
+import com.miui.zeus.mimo.sdk.ADParams;
+import com.miui.zeus.mimo.sdk.BannerAd;
+import com.miui.zeus.mimo.sdk.MimoCustomController;
+import com.miui.zeus.mimo.sdk.MimoLocation;
+import com.miui.zeus.mimo.sdk.MimoSdk;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
+import androidx.appcompat.widget.Toolbar;
import android.view.View;
-import androidx.appcompat.app.AlertDialog;
-import android.view.WindowManager;
-import android.view.Window;
-import android.view.Display;
-import android.view.Gravity;
-import android.content.DialogInterface;
-import android.content.SharedPreferences;
public class MainActivity extends WinBoLLActivity {
public static final String TAG = "MainActivity";
-
+
private static final String PRIVACY_FILE = "privacy_pfs";
private static final String PRIVACY_VALUE = "privacy_value";//0: 拒绝,1:赞同
private SharedPreferences mSharedPreferences;
-
-
- private static final String BANNER_POS_ID = "802e356f1726f9ff39c69308bfd6f06a";
-
- private static final long BID_WIN_HIGHEST_LOSS_PRICE = 1;//最大竞败方出价
- private static final long BID_LOSS_WIN_PRICE = 20000;//本次竞胜方出价
+ private String BANNER_POS_ID = "802e356f1726f9ff39c69308bfd6f06a";
private BannerAd mBannerAd;
private List mAllBanners = new ArrayList<>();
private ViewGroup mContainer;
- private Button mFetchBtn;
- private Button mShowBtn;
private boolean mIsBiddingWin = true;
-
+
public static final int BACKGROUND_PICTURE_REQUEST_CODE = 0;
public static MainActivity _mMainActivity;
@@ -105,7 +77,7 @@ public class MainActivity extends WinBoLLActivity {
Menu mMenu;
Fragment mCurrentShowFragment;
MainViewFragment mMainViewFragment;
- AToolbar mAToolbar;
+ Toolbar mToolbar;
@Override
public Activity getActivity() {
@@ -119,30 +91,14 @@ public class MainActivity extends WinBoLLActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- //LogUtils.d(TAG, "onCreate(...)");
+ LogUtils.d(TAG, "onCreate(...)");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
-
+ mContainer = findViewById(R.id.ads_container);
+
// 米盟模块
showPrivacy();
-
- mContainer = findViewById(R.id.container);
- mFetchBtn = findViewById(R.id.fetchAd);
- mShowBtn = findViewById(R.id.showAd);
- mFetchBtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- fetchAd();
- }
- });
-
- mShowBtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- showAd();
- }
- });
// 设置调试日志
// mLogView = findViewById(R.id.logview);
@@ -155,10 +111,10 @@ public class MainActivity extends WinBoLLActivity {
//mAppConfigUtils = AppConfigUtils.getInstance(mApplication);
// 初始化工具栏
- mAToolbar = (AToolbar) findViewById(R.id.toolbar);
- setActionBar(mAToolbar);
+ mToolbar = findViewById(R.id.toolbar);
+ setSupportActionBar(mToolbar);
//mAToolbar.setSubtitle("Main");
- mAToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText);
+ mToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText);
if (mMainViewFragment == null) {
FragmentTransaction tx = getFragmentManager().beginTransaction();
@@ -171,22 +127,158 @@ public class MainActivity extends WinBoLLActivity {
// NotificationHelper notificationUtils = new NotificationHelper(this);
// notificationUtils.createNotificationChannels();
-
+ LogUtils.d(TAG, "ads start");
+ new Thread(new Runnable(){
+ @Override
+ public void run() {
+ LogUtils.d(TAG, "run() 1");
+ runOnUiThread(new Runnable(){
+ @Override
+ public void run() {
+ LogUtils.d(TAG, "run() 2");
+ try {
+ Thread.sleep(1000);
+ fetchAd();
+ } catch (InterruptedException e) {}
+ }
+ });
+ }
+ }).start();
}
+
+
+
+
+// public void onADs(View view) {
+// LogUtils.d(TAG, "onPostCreate");
+// fetchAd();
+//
+// }
+
+
+
+ /*public void showADs() {
+ //(5.3.4新增接口) 请使用最新接口集成
+ ADParams params = new ADParams.Builder().setUpId(BANNER_POS_ID).build();
+ bannerAd.loadAd(params, new BannerAd.BannerLoadListener() {
+ //请求成功回调
+ @Override
+ public void onBannerAdLoadSuccess() {
+ }
+ //请求失败回调
+ @Override
+ public void onAdLoadFailed (int errorCode, String errorMsg) {
+ }
+ });
+
+ ////废弃 将会在后面版本删除
+ // @Deprecated
+ // bannerAd.loadAd(upId, new BannerAd.BannerLoadListener() {
+ // //请求成功回调
+ // @Override
+ // public void onBannerAdLoadSuccess() {
+ // }
+ // //请求失败回调
+ // @Override
+ // public void onAdLoadFailed (int errorCode, String errorMsg) {
+ // }
+ // });
+
+ bannerAd.setDownLoadListener(new BannerAd.BannerDownloadListener() {
+
+ @Override
+ public void onDownloadStarted() {
+ //开始下载
+ LogUtils.d(TAG, "ads 开始下载");
+ }
+
+ @Override
+ public void onDownloadProgressUpdated(int progress) {
+ //下载进度,例如:${progress}%
+ LogUtils.d(TAG, String.format("ads 下载进度 %d", progress));
+ }
+
+ @Override
+ public void onDownloadPaused() {
+ //下载暂停
+ LogUtils.d(TAG, "ads 下载暂停");
+ }
+
+ @Override
+ public void onDownloadCancel() {
+ //取消下载
+ LogUtils.d(TAG, "ads 取消下载");
+ }
+
+ @Override
+ public void onDownloadFailed(int errorCode) {
+ //下载失败, 若需要了解errorCode具体含义,请咨询米盟
+ LogUtils.d(TAG, String.format("ads 下载失败。errorCode :%d", errorCode));
+ }
+
+ @Override
+ public void onDownloadFinished() {
+ //下载结束
+ LogUtils.d(TAG, "ads 下载结束");
+ }
+
+ @Override
+ public void onInstallStart() {
+ //开始安装
+ LogUtils.d(TAG, "ads 开始安装");
+ }
+
+ @Override
+ public void onInstallFailed(int errorCode) {
+ //安装失败
+ LogUtils.d(TAG, "ads 安装失败");
+ }
+
+ @Override
+ public void onInstallSuccess() {
+ //安装成功
+ LogUtils.d(TAG, "ads 安装成功");
+ }
+ });
+ LinearLayout ads_container = findViewById(R.id.ads_container);
+ bannerAd.showAd(this, ads_container, new BannerAd.BannerInteractionListener() {
+
+ @Override
+ public void onAdClick() {
+ // 广告被点击
+ }
+
+ @Override
+ public void onAdShow() {
+ // 广告被展示
+ }
+
+ @Override
+ public void onAdDismiss() {
+ // 点击关闭按钮广告消失回调
+ }
+
+ @Override
+ public void onRenderSuccess() {
+ // 广告渲染成功
+ }
+
+ @Override
+ public void onRenderFail(int code, String msg) {
+ // 广告渲染失败
+ }
+
+ });
+
+ }*/
@Override
protected void onDestroy() {
super.onDestroy();
- try {
- for(BannerAd ad: mAllBanners){
- ad.destroy();
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
+ //bannerAd.destroy();
}
-
-
+
+
void showFragment(Fragment fragment) {
FragmentTransaction tx = getFragmentManager().beginTransaction();
@@ -320,146 +412,149 @@ public class MainActivity extends WinBoLLActivity {
RelativeLayout mainLayout = findViewById(R.id.activitymainRelativeLayout1);
mainLayout.setBackgroundColor(nPixelColor);
}
-
- private void showAd() {
- final FrameLayout container = new FrameLayout(this);
- container.setPadding(0, 0, 0, MimoUtils.dpToPx(this, 10));
- mContainer.addView(container, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT));
- if (mIsBiddingWin){
- //如果竞价成功,传⼊本次实际结算价
- mBannerAd.setPrice(getPrice());
- }
- mBannerAd.showAd(this, container, new BannerAd.BannerInteractionListener() {
+ private void showAd() {
+ LogUtils.d(TAG, "showAd()");
+ final FrameLayout container = new FrameLayout(this);
+ container.setPadding(0, 0, 0, MimoUtils.dpToPx(this, 10));
+ mContainer.addView(container, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT));
+
+ if (mIsBiddingWin) {
+ //如果竞价成功,传⼊本次实际结算价
+ //mBannerAd.setPrice(getPrice());
+ }
+ mBannerAd.showAd(this, container, new BannerAd.BannerInteractionListener() {
@Override
public void onAdClick() {
- Log.d(TAG, "onAdClick");
+ LogUtils.d(TAG, "onAdClick");
}
@Override
public void onAdShow() {
- mShowBtn.setEnabled(false);
- Log.d(TAG, "onAdShow");
+ //mShowBtn.setEnabled(false);
+ LogUtils.d(TAG, "onAdShow");
}
@Override
public void onAdDismiss() {
- Log.d(TAG, "onAdDismiss");
+ LogUtils.d(TAG, "onAdDismiss");
mContainer.removeView(container);
}
@Override
public void onRenderSuccess() {
- Log.d(TAG, "onRenderSuccess");
+ LogUtils.d(TAG, "onRenderSuccess");
}
@Override
public void onRenderFail(int code, String msg) {
- Log.e(TAG, "onRenderFail errorCode " + code + " errorMsg " + msg);
+ LogUtils.e(TAG, "onRenderFail errorCode " + code + " errorMsg " + msg);
}
});
- }
+ }
- private void fetchAd() {
- mShowBtn.setEnabled(false);
- mBannerAd = new BannerAd();
- mAllBanners.add(mBannerAd);
- mBannerAd.setDownLoadListener(new BannerAd.BannerDownloadListener() {
+ private void fetchAd() {
+ LogUtils.d(TAG, "fetchAd()");
+ mBannerAd = new BannerAd();
+ mAllBanners.add(mBannerAd);
+ mBannerAd.setDownLoadListener(new BannerAd.BannerDownloadListener() {
@Override
public void onDownloadStarted() {
- Log.e(TAG, "onDownloadStarted");
+ LogUtils.d(TAG, "onDownloadStarted");
}
@Override
public void onDownloadPaused() {
- Log.e(TAG, "onDownloadPaused");
+ LogUtils.d(TAG, "onDownloadPaused");
}
@Override
public void onDownloadFailed(int errorCode) {
- Log.e(TAG, "onDownloadFailed, errorCode = "+ errorCode);
+ LogUtils.d(TAG, "onDownloadFailed, errorCode = " + errorCode);
}
@Override
public void onDownloadFinished() {
- Log.e(TAG, "onDownloadFinished");
+ LogUtils.d(TAG, "onDownloadFinished");
}
@Override
public void onDownloadProgressUpdated(int progress) {
- Log.e(TAG, "onDownloadProgressUpdated "+ progress + "%");
+ LogUtils.d(TAG, "onDownloadProgressUpdated " + progress + "%");
}
@Override
public void onInstallFailed(int errorCode) {
- Log.e(TAG, "onInstallFailed, errorCode = "+ errorCode);
+ LogUtils.d(TAG, "onInstallFailed, errorCode = " + errorCode);
}
@Override
public void onInstallStart() {
- Log.e(TAG, "onInstallStart");
+ LogUtils.d(TAG, "onInstallStart");
}
@Override
public void onInstallSuccess() {
- Log.e(TAG, "onInstallSuccess");
+ LogUtils.d(TAG, "onInstallSuccess");
}
@Override
public void onDownloadCancel() {
- Log.e(TAG, "onDownloadCancel");
+ LogUtils.d(TAG, "onDownloadCancel");
}
});
- ADParams params = new ADParams.Builder().setUpId(BANNER_POS_ID).build();
- mBannerAd.loadAd(params, new BannerAd.BannerLoadListener() {
+ ADParams params = new ADParams.Builder().setUpId(BANNER_POS_ID).build();
+ mBannerAd.loadAd(params, new BannerAd.BannerLoadListener() {
@Override
public void onBannerAdLoadSuccess() {
- mShowBtn.setEnabled(true);
+ LogUtils.d(TAG, "onBannerAdLoadSuccess()");
+ showAd();
+ //mShowBtn.setEnabled(true);
- long bannerPrice = getPrice();
- if (mIsBiddingWin){
- //竞价成功时候上报win
- Map auctionBidInfo = new HashMap<>();
- auctionBidInfo.put(BaseAd.IBidding.EXPECT_COST_PRICE, bannerPrice);
- auctionBidInfo.put(BaseAd.IBidding.HIGHEST_LOSS_PRICE, BID_WIN_HIGHEST_LOSS_PRICE);
- mBannerAd.win(auctionBidInfo);
- } else {
- //竞价失败的时候上报loss
- Map lossReasonInfo = new HashMap<>();
- lossReasonInfo.put(BaseAd.IBidding.WIN_PRICE, BID_LOSS_WIN_PRICE);
- lossReasonInfo.put(BaseAd.IBidding.LOSS_REASON, BaseAd.LossReason.TYPE_LOWER_OTHER_BIDDER_PRICE);
- lossReasonInfo.put(BaseAd.IBidding.ADN_ID, 1);
- mBannerAd.loss(lossReasonInfo);
- }
+ /*long bannerPrice = getPrice();
+ if (mIsBiddingWin) {
+ //竞价成功时候上报win
+ Map auctionBidInfo = new HashMap<>();
+ auctionBidInfo.put(BaseAd.IBidding.EXPECT_COST_PRICE, bannerPrice);
+ auctionBidInfo.put(BaseAd.IBidding.HIGHEST_LOSS_PRICE, BID_WIN_HIGHEST_LOSS_PRICE);
+ mBannerAd.win(auctionBidInfo);
+ } else {
+ //竞价失败的时候上报loss
+ Map lossReasonInfo = new HashMap<>();
+ lossReasonInfo.put(BaseAd.IBidding.WIN_PRICE, BID_LOSS_WIN_PRICE);
+ lossReasonInfo.put(BaseAd.IBidding.LOSS_REASON, BaseAd.LossReason.TYPE_LOWER_OTHER_BIDDER_PRICE);
+ lossReasonInfo.put(BaseAd.IBidding.ADN_ID, 1);
+ mBannerAd.loss(lossReasonInfo);
+ }*/
}
@Override
public void onAdLoadFailed(int errorCode, String errorMsg) {
- Log.e(TAG, "errorCode = " + errorCode + ", errorMsg = " + errorMsg);
+ LogUtils.d(TAG, "errorCode = " + errorCode + ", errorMsg = " + errorMsg);
}
});
- }
-
- private long getPrice(){
- if (mBannerAd == null){
- return 0;
- }
- Map map = mBannerAd.getMediaExtraInfo();
- if (map == null || map.isEmpty()){
- return 0;
- }
- return (long) map.get("price");
- }
-
-
- private void showPrivacy(){
+ }
+
+// private long getPrice() {
+// if (mBannerAd == null) {
+// return 0;
+// }
+// Map map = mBannerAd.getMediaExtraInfo();
+// if (map == null || map.isEmpty()) {
+// return 0;
+// }
+// return (long) map.get("price");
+// }
+
+
+ private void showPrivacy() {
String privacyAgreeValue = getSharedPreferences().getString(PRIVACY_VALUE, null);
- if (TextUtils.equals(privacyAgreeValue, String.valueOf(0))){
+ if (TextUtils.equals(privacyAgreeValue, String.valueOf(0))) {
Log.i(TAG, "已拒绝隐私协议,广告已处于不可以状态...");
Toast.makeText(this, "已拒绝隐私协议,广告已处于不可以状态", Toast.LENGTH_SHORT).show();
return;
}
- if (TextUtils.equals(privacyAgreeValue, String.valueOf(1))){
+ if (TextUtils.equals(privacyAgreeValue, String.valueOf(1))) {
Log.i(TAG, "已同意隐私协议,开始初始化...");
initMimoSdk();
return;
@@ -557,7 +652,7 @@ public class MainActivity extends WinBoLLActivity {
}
public SharedPreferences getSharedPreferences() {
- if (mSharedPreferences == null){
+ if (mSharedPreferences == null) {
mSharedPreferences = getSharedPreferences(PRIVACY_FILE, Context.MODE_PRIVATE);
}
return mSharedPreferences;
diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/WinBoLLActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/WinBoLLActivity.java
index 035374b3..4b8e00ec 100644
--- a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/WinBoLLActivity.java
+++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/WinBoLLActivity.java
@@ -73,13 +73,13 @@ public abstract class WinBoLLActivity extends AppCompatActivity implements IWinB
}
public void setupToolbar() {
-// mToolbar = findViewById(R.id.toolbar);
-// if (mToolbar != null) {
-// setSupportActionBar(mToolbar);
-// if (getSupportActionBar() != null) {
-// getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-// }
-// }
+ Toolbar mToolbar = findViewById(R.id.toolbar);
+ if (mToolbar != null) {
+ setSupportActionBar(mToolbar);
+ if (getSupportActionBar() != null) {
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ }
+ }
}
@Override
diff --git a/powerbell/src/main/res/layout/activity_main.xml b/powerbell/src/main/res/layout/activity_main.xml
index c9c0457b..ae87b81e 100644
--- a/powerbell/src/main/res/layout/activity_main.xml
+++ b/powerbell/src/main/res/layout/activity_main.xml
@@ -6,7 +6,7 @@
android:layout_height="match_parent"
android:orientation="vertical">
-
+ android:layout_height="wrap_content">
-
-
-
-
-
-
-
-
-
+ android:orientation="vertical"/>