20251127_002527_502

源码重构中。。。
This commit is contained in:
2025-11-27 00:25:52 +08:00
parent f4f4768bfc
commit 5996a9306e
4 changed files with 59 additions and 53 deletions

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Wed Nov 26 13:05:31 GMT 2025
#Wed Nov 26 15:54:26 GMT 2025
stageCount=7
libraryProject=libaes
baseVersion=15.11
publishVersion=15.11.6
buildCount=27
buildCount=32
baseBetaVersion=15.11.7

View File

@@ -20,18 +20,19 @@ public class SettingsActivity extends Activity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
ADsControlView adsControlView = (ADsControlView) findViewById(R.id.ads_control_view);
adsControlView.setOnAdsModeSelectedListener(new ADsControlView.OnAdsModeSelectedListener() {
@Override
public void onModeSelected(ADsMode selectedMode) {
if (selectedMode == ADsMode.STANDALONE) {
// 处理单机模式逻辑(如释放米盟资源)
ToastUtils.show("STANDALONE");
} else if (selectedMode == ADsMode.MIMO_SDK) {
// 处理米盟SDK模式逻辑如初始化SDK
ToastUtils.show("MIMO_SDK");
}
}
});
// adsControlView.setOnAdsModeSelectedListener(new ADsControlView.OnAdsModeSelectedListener() {
// @Override
// public void onModeSelected(ADsMode selectedMode) {
// if (selectedMode == ADsMode.STANDALONE) {
// // 处理单机模式逻辑(如释放米盟资源)
// ToastUtils.show("STANDALONE");
// } else if (selectedMode == ADsMode.MIMO_SDK) {
// // 处理米盟SDK模式逻辑如初始化SDK
// ToastUtils.show("MIMO_SDK");
// }
// }
// });
}
}

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Wed Nov 26 13:05:31 GMT 2025
#Wed Nov 26 15:54:26 GMT 2025
stageCount=7
libraryProject=libaes
baseVersion=15.11
publishVersion=15.11.6
buildCount=27
buildCount=32
baseBetaVersion=15.11.7

View File

@@ -37,12 +37,15 @@ import cc.winboll.studio.libappbase.ToastUtils;
public class ADsControlView extends LinearLayout {
public static final String TAG = "ADsControlView";
private static final String PRIVACY_FILE = "privacy_pfs";
private static final String PRIVACY_VALUE = "privacy_value";//0: 拒绝1赞同
// SP存储配置
private static final String SP_NAME = "ads_control_config";
private static final String KEY_SELECTED_MODE = "selected_ads_mode";
// 单机模式与米盟模式标志位
ADsMode mADsMode;
private static final String PRIVACY_VALUE = "privacy_value";
// 隐私协议签约结果 0: 拒绝1赞同 2: 未签约
String privacyAgreeValue;
// Handler消息标识
private static final int MSG_UPDATE_MODE = 1001;
@@ -78,6 +81,26 @@ public class ADsControlView extends LinearLayout {
initView(context);
}
public void setPrivacyAgreeValue(String privacyAgreeValue) {
this.privacyAgreeValue = privacyAgreeValue;
}
public String getPrivacyAgreeValue() {
String privacyAgreeValue = sharedPreferences.getString(PRIVACY_VALUE, "0");
return privacyAgreeValue;
}
public void setADsMode(ADsMode mADsMode) {
this.mADsMode = mADsMode;
sharedPreferences.edit().putString(KEY_SELECTED_MODE, this.mADsMode.name()).apply();
}
public ADsMode getADsMode() {
String savedModeStr = sharedPreferences.getString(KEY_SELECTED_MODE, ADsMode.STANDALONE.name());
mADsMode = ADsMode.fromValue(savedModeStr);
return mADsMode;
}
/**
* 初始化视图、SP、Handler
*/
@@ -101,50 +124,31 @@ public class ADsControlView extends LinearLayout {
registerControlView(this);
// 从SP读取初始模式并设置
String savedModeStr = sharedPreferences.getString(KEY_SELECTED_MODE, ADsMode.STANDALONE.name());
ADsMode savedMode = ADsMode.fromValue(savedModeStr);
setSelectedMode(savedMode);
ToastUtils.show(String.format("savedMode : %s", getADsMode().name()));
setSelectedMode(getADsMode());
// 单选组选择事件监听
rgAdsMode.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == R.id.rb_standalone) {
cleanPrivacyStatus(context);
setADsMode(ADsMode.STANDALONE);
} else if (checkedId == R.id.rb_mimo_sdk) {
verifyPrivacyPolicy(context, ADsMode.MIMO_SDK);
}
}
});
}
void verifyPrivacyPolicy(final Context context, ADsMode selectedMode) {
// 检查设定值,再调用隐私协议签署对话框。
// 下面监听对话框会话结果再最终确定选择单机还是广告SDK。
if (selectedMode == ADsMode.MIMO_SDK) {
showPrivacy(context, new OnPrivacyChangeListener(){
@Override
public void onAgreePrivacy() {
// 保存到SP
sharedPreferences.edit().putString(KEY_SELECTED_MODE, ADsMode.MIMO_SDK.name()).apply();
// 触发外部监听
if (listener != null) {
listener.onModeSelected(ADsMode.MIMO_SDK);
}
setADsMode(ADsMode.MIMO_SDK);
}
@Override
public void onDisagreePrivacy() {
cleanPrivacyStatus(context);
// 触发外部监听
if (listener != null) {
listener.onModeSelected(ADsMode.STANDALONE);
}
setADsMode(ADsMode.STANDALONE);
}
});
}
}
});
}
/**
* 【静态】显示隐私协议弹窗供外部调用带Context参数
@@ -169,8 +173,9 @@ public class ADsControlView extends LinearLayout {
LogUtils.e(TAG, "showPrivacy: Activity is finishing or destroyed");
return;
}
// 读取隐私协议状态并处理逻辑
SharedPreferences sp = getPrivacySharedPreferences(context);
SbhhharedPreferences sp = getPrivacySharedPreferences(context);
String privacyAgreeValue = sp.getString(PRIVACY_VALUE, null);
handlePrivacyLogic(activity, privacyAgreeValue, onPrivacyChangeListener);
}