20251127_002527_502
源码重构中。。。
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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");
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user