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 #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 stageCount=7
libraryProject=libaes libraryProject=libaes
baseVersion=15.11 baseVersion=15.11
publishVersion=15.11.6 publishVersion=15.11.6
buildCount=27 buildCount=32
baseBetaVersion=15.11.7 baseBetaVersion=15.11.7

View File

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

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #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 stageCount=7
libraryProject=libaes libraryProject=libaes
baseVersion=15.11 baseVersion=15.11
publishVersion=15.11.6 publishVersion=15.11.6
buildCount=27 buildCount=32
baseBetaVersion=15.11.7 baseBetaVersion=15.11.7

View File

@@ -37,12 +37,15 @@ import cc.winboll.studio.libappbase.ToastUtils;
public class ADsControlView extends LinearLayout { public class ADsControlView extends LinearLayout {
public static final String TAG = "ADsControlView"; 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存储配置 // SP存储配置
private static final String SP_NAME = "ads_control_config"; private static final String SP_NAME = "ads_control_config";
private static final String KEY_SELECTED_MODE = "selected_ads_mode"; 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消息标识 // Handler消息标识
private static final int MSG_UPDATE_MODE = 1001; private static final int MSG_UPDATE_MODE = 1001;
@@ -78,6 +81,26 @@ public class ADsControlView extends LinearLayout {
initView(context); 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 * 初始化视图、SP、Handler
*/ */
@@ -101,51 +124,32 @@ public class ADsControlView extends LinearLayout {
registerControlView(this); registerControlView(this);
// 从SP读取初始模式并设置 // 从SP读取初始模式并设置
String savedModeStr = sharedPreferences.getString(KEY_SELECTED_MODE, ADsMode.STANDALONE.name()); ToastUtils.show(String.format("savedMode : %s", getADsMode().name()));
ADsMode savedMode = ADsMode.fromValue(savedModeStr); setSelectedMode(getADsMode());
setSelectedMode(savedMode);
// 单选组选择事件监听 // 单选组选择事件监听
rgAdsMode.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { rgAdsMode.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override @Override
public void onCheckedChanged(RadioGroup group, int checkedId) { public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == R.id.rb_standalone) { if (checkedId == R.id.rb_standalone) {
cleanPrivacyStatus(context); setADsMode(ADsMode.STANDALONE);
} else if (checkedId == R.id.rb_mimo_sdk) { } else if (checkedId == R.id.rb_mimo_sdk) {
verifyPrivacyPolicy(context, ADsMode.MIMO_SDK); showPrivacy(context, new OnPrivacyChangeListener(){
@Override
public void onAgreePrivacy() {
setADsMode(ADsMode.MIMO_SDK);
}
@Override
public void onDisagreePrivacy() {
setADsMode(ADsMode.STANDALONE);
}
});
} }
} }
}); });
} }
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);
}
}
@Override
public void onDisagreePrivacy() {
cleanPrivacyStatus(context);
// 触发外部监听
if (listener != null) {
listener.onModeSelected(ADsMode.STANDALONE);
}
}
});
}
}
/** /**
* 【静态】显示隐私协议弹窗供外部调用带Context参数 * 【静态】显示隐私协议弹窗供外部调用带Context参数
* @param context 上下文需传入Activity Context用于弹窗显示 * @param context 上下文需传入Activity Context用于弹窗显示
@@ -169,8 +173,9 @@ public class ADsControlView extends LinearLayout {
LogUtils.e(TAG, "showPrivacy: Activity is finishing or destroyed"); LogUtils.e(TAG, "showPrivacy: Activity is finishing or destroyed");
return; return;
} }
// 读取隐私协议状态并处理逻辑 // 读取隐私协议状态并处理逻辑
SharedPreferences sp = getPrivacySharedPreferences(context); SbhhharedPreferences sp = getPrivacySharedPreferences(context);
String privacyAgreeValue = sp.getString(PRIVACY_VALUE, null); String privacyAgreeValue = sp.getString(PRIVACY_VALUE, null);
handlePrivacyLogic(activity, privacyAgreeValue, onPrivacyChangeListener); handlePrivacyLogic(activity, privacyAgreeValue, onPrivacyChangeListener);
} }