Compare commits

..

9 Commits

Author SHA1 Message Date
ZhanGSKen
3ec3a4cfc2 <androidxdemo>APK 15.1.1 release Publish. 2025-08-31 05:42:50 +08:00
ZhanGSKen
2c10a9f38c 设置初始版本号 2025-08-31 05:42:19 +08:00
ZhanGSKen
e62888636e <androidxdemo>APK 15.0.0 release Publish. 2025-08-31 05:39:39 +08:00
ZhanGSKen
364980dd02 更新类库 2025-08-31 05:38:28 +08:00
ZhanGSKen
0e155e4f3a <androidxdemo>Start New Stage Version. 2025-08-31 05:29:49 +08:00
ZhanGSKen
89febba5a9 <androidxdemo>Start New Stage Version. 2025-08-31 05:29:33 +08:00
ZhanGSKen
653330f8e1 <androidxdemo>Start New Stage Version. 2025-08-31 05:26:36 +08:00
ZhanGSKen
386c73effc <androidxdemo>Start New Stage Version. 2025-08-31 05:19:41 +08:00
ZhanGSKen
69187e3ed0 更新类库 2025-06-28 13:04:03 +08:00
25 changed files with 122 additions and 145 deletions

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Thu Jun 19 20:42:40 HKT 2025
stageCount=2
#Mon Jun 09 01:44:28 HKT 2025
stageCount=1
libraryProject=libaes
baseVersion=15.9
publishVersion=15.9.1
publishVersion=15.9.0
buildCount=0
baseBetaVersion=15.9.2
baseBetaVersion=15.9.1

View File

@@ -0,0 +1 @@

View File

@@ -29,7 +29,7 @@ android {
// versionName 更新后需要手动设置
// .winboll/winbollBuildProps.properties 文件的 stageCount=0
// Gradle编译环境下合起来的 versionName 就是 "${versionName}.0"
versionName "15.0"
versionName "15.1"
if(true) {
versionName = genVersionName("${versionName}")
}
@@ -67,7 +67,7 @@ dependencies {
//api 'androidx.vectordrawable:vectordrawable-animated:1.1.0'
//api 'androidx.fragment:fragment:1.1.0'
api 'cc.winboll.studio:libaes:15.8.0'
api 'cc.winboll.studio:libapputils:15.8.2'
api 'cc.winboll.studio:libappbase:15.8.2'
api 'cc.winboll.studio:libaes:15.9.3'
api 'cc.winboll.studio:libapputils:15.8.5'
api 'cc.winboll.studio:libappbase:15.9.5'
}

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Thu Jun 19 12:49:47 GMT 2025
stageCount=0
#Sun Aug 31 05:42:50 CST 2025
stageCount=2
libraryProject=
baseVersion=15.0
publishVersion=15.0.0
buildCount=26
baseBetaVersion=15.0.1
baseVersion=15.1
publishVersion=15.1.1
buildCount=0
baseBetaVersion=15.1.2

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Tue Jun 24 09:54:47 HKT 2025
stageCount=3
#Sun May 04 05:32:00 GMT 2025
stageCount=1
libraryProject=
baseVersion=15.2
publishVersion=15.2.2
buildCount=0
baseBetaVersion=15.2.3
publishVersion=15.2.0
buildCount=74
baseBetaVersion=15.2.1

View File

@@ -3,7 +3,7 @@
https://github.com/aJIEw/PhoneCallApp.git
#### 介绍
这是可以根据正则表达式匹配拦截骚扰电话的手机拨号应用。
通讯录与拨号
#### 软件架构
适配安卓应用 [AIDE Pro] 的 Gradle 编译结构。

View File

@@ -45,9 +45,9 @@ android {
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
api 'cc.winboll.studio:libaes:15.9.2'
api 'cc.winboll.studio:libapputils:15.8.4'
api 'cc.winboll.studio:libappbase:15.8.4'
api 'cc.winboll.studio:libaes:15.8.0'
api 'cc.winboll.studio:libapputils:15.8.1'
api 'cc.winboll.studio:libappbase:15.8.1'
// 权限请求框架https://github.com/getActivity/XXPermissions
api 'com.github.getActivity:XXPermissions:18.63'

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Sat Jun 28 19:57:09 HKT 2025
stageCount=8
#Tue May 20 13:02:18 HKT 2025
stageCount=3
libraryProject=
baseVersion=15.3
publishVersion=15.3.7
publishVersion=15.3.2
buildCount=0
baseBetaVersion=15.3.8
baseBetaVersion=15.3.3

View File

@@ -79,12 +79,12 @@ public class AboutActivity extends AppCompatActivity implements IWinBoLLActivity
APPInfo appInfo = new APPInfo();
appInfo.setAppName("Contacts");
appInfo.setAppIcon(cc.winboll.studio.libaes.R.drawable.ic_winboll);
appInfo.setAppDescription("这是可以根据正则表达式匹配拦截骚扰电话的手机拨号应用。");
appInfo.setAppGitName("APPBase");
appInfo.setAppDescription("通讯录与拨号");
appInfo.setAppGitName("APP");
appInfo.setAppGitOwner("Studio");
appInfo.setAppGitAPPBranch(szBranchName);
appInfo.setAppGitAPPSubProjectFolder(szBranchName);
appInfo.setAppHomePage("https://discuz.winboll.cc/forum.php?mod=viewthread&tid=4&extra=page%3D1");
appInfo.setAppHomePage("https://www.winboll.cc/studio/details.php?app=Contacts");
appInfo.setAppAPKName("Contacts");
appInfo.setAppAPKFolderName("Contacts");
return new AboutView(mContext, appInfo);

View File

@@ -330,8 +330,4 @@ public class SettingsActivity extends AppCompatActivity implements IWinBoLLActiv
public void onAbout(View view) {
App.getWinBoLLActivityManager().startWinBoLLActivity(this, AboutActivity.class);
}
public void onLogView(View view) {
App.getWinBoLLActivityManager().startLogActivity(this);
}
}

View File

@@ -7,7 +7,6 @@ package cc.winboll.studio.contacts.adapters;
*/
import android.content.Context;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
@@ -21,7 +20,6 @@ import cc.winboll.studio.contacts.R;
import cc.winboll.studio.contacts.beans.PhoneConnectRuleModel;
import cc.winboll.studio.contacts.dun.Rules;
import cc.winboll.studio.contacts.views.LeftScrollView;
import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.dialogs.YesNoAlertDialog;
import com.hjq.toast.ToastUtils;
import java.util.ArrayList;
@@ -62,10 +60,6 @@ public class PhoneConnectRuleAdapter extends RecyclerView.Adapter<RecyclerView.V
final SimpleViewHolder simpleViewHolder = (SimpleViewHolder) holder;
String szView = model.getRuleText().trim().equals("") ?"[NULL]": model.getRuleText();
simpleViewHolder.tvRuleText.setText(szView);
simpleViewHolder.checkBoxAllow.setChecked(model.isAllowConnection());
simpleViewHolder.checkBoxAllow.setEnabled(false);
simpleViewHolder.checkBoxEnable.setChecked(model.isEnable());
simpleViewHolder.checkBoxEnable.setEnabled(false);
simpleViewHolder.scrollView.setOnActionListener(new LeftScrollView.OnActionListener(){
@Override
@@ -221,22 +215,16 @@ public class PhoneConnectRuleAdapter extends RecyclerView.Adapter<RecyclerView.V
private final LeftScrollView scrollView;
private final TextView tvRuleText;
CheckBox checkBoxAllow;
CheckBox checkBoxEnable;
public SimpleViewHolder(@NonNull ViewGroup parent, @NonNull View itemView) {
super(itemView);
scrollView = itemView.findViewById(R.id.scrollView);
LayoutInflater inflater = LayoutInflater.from(itemView.getContext());
View viewContent = inflater.inflate(R.layout.view_phone_connect_rule_simple_content, parent, false);
tvRuleText = viewContent.findViewById(R.id.ruletext_tv);
checkBoxAllow = viewContent.findViewById(R.id.checkbox_allow);
checkBoxEnable = viewContent.findViewById(R.id.checkbox_enable);
//tvRuleText = new TextView(itemView.getContext());
//tvRuleText = itemView.findViewById(R.id.ruletext_tv);
tvRuleText = new TextView(itemView.getContext());
scrollView.setContentWidth(parent.getWidth());
//scrollView.setContentWidth(600);
scrollView.addContentLayout(viewContent);
scrollView.addContentLayout(tvRuleText);
}
}
@@ -255,9 +243,5 @@ public class PhoneConnectRuleAdapter extends RecyclerView.Adapter<RecyclerView.V
buttonConfirm = itemView.findViewById(R.id.button_confirm);
}
}
private void setCheckBoxTouchListener(CheckBox checkBox) {
}
}

View File

@@ -145,14 +145,6 @@ public class Rules {
LogUtils.d(TAG, String.format("isDefend == %s\nisConnect == %s", isDefend, isConnect));
}
// 检验拨不通号码群
if (!isDefend && MainService.isPhoneInBoBullToon(phoneNumber)) {
LogUtils.d(TAG, String.format("PhoneNumber %s\n Is In BoBullToon", phoneNumber));
isDefend = true;
isConnect = false;
LogUtils.d(TAG, String.format("isDefend == %s\nisConnect == %s", isDefend, isConnect));
}
// 查询通讯录是否有该联系人
boolean isPhoneInContacts = ContactUtils.getInstance(mContext).isPhoneInContacts(mContext, phoneNumber);
if (!isDefend) {
@@ -166,6 +158,14 @@ public class Rules {
}
}
// 检验拨不通号码群
if (!isDefend && MainService.isPhoneInBoBullToon(phoneNumber)) {
LogUtils.d(TAG, String.format("PhoneNumber %s\n Is In BoBullToon", phoneNumber));
isDefend = true;
isConnect = false;
LogUtils.d(TAG, String.format("isDefend == %s\nisConnect == %s", isDefend, isConnect));
}
// 正则匹配规则名单校验
if (!isDefend) {
for (int i = 0; i < _PhoneConnectRuleModelList.size(); i++) {

View File

@@ -47,8 +47,8 @@ public class LeftScrollView extends HorizontalScrollView {
init();
}
public void addContentLayout(View viewContent) {
contentLayout.addView(viewContent, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
public void addContentLayout(TextView textView) {
contentLayout.addView(textView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
}
public void setContentWidth(int contentWidth) {

View File

@@ -269,19 +269,6 @@
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="&lt;&lt;==向左拉动列表项可编辑内容"/>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
@@ -300,12 +287,6 @@
android:layout_height="wrap_content"
android:gravity="right">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LogView"
android:onClick="onLogView"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@@ -15,10 +15,8 @@
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add Demo Rules(While size is 0) and Test"
android:onClick="onTestMain"
android:textSize="10sp"
android:textAllCaps="false"/>
android:text="Test Main"
android:onClick="onTestMain"/>
</LinearLayout>
@@ -45,8 +43,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Test Phone"
android:onClick="onTestPhone"
android:textAllCaps="false"/>
android:onClick="onTestPhone"/>
</LinearLayout>

View File

@@ -23,7 +23,7 @@
android:id="@+id/checkbox_allow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="连接"/>
android:text="允许连接"/>
<CheckBox
android:id="@+id/checkbox_enable"

View File

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none"
android:id="@+id/scrollView">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!-- 内容区域 -->
<LinearLayout
android:id="@+id/content_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:background="@color/white">
<!-- 这里放置你的列表项内容 -->
<TextView
android:id="@+id/text_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="16sp"/>
</LinearLayout>
<!-- 操作按钮 -->
<LinearLayout
android:id="@+id/action_layout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:background="@color/lightgray">
<Button
android:id="@+id/edit_btn"
android:layout_width="80dp"
android:layout_height="match_parent"
android:text="编辑"
android:background="@color/blue" />
<Button
android:id="@+id/delete_btn"
android:layout_width="80dp"
android:layout_height="match_parent"
android:text="删除"
android:background="@color/red" />
</LinearLayout>
</LinearLayout>
</HorizontalScrollView>

View File

@@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text"
android:layout_weight="1.0"
android:id="@+id/ruletext_tv"/>
<CheckBox
android:id="@+id/checkbox_allow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="连接"
android:clickable="false"
android:focusable="false"/>
<CheckBox
android:id="@+id/checkbox_enable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="启用"
android:clickable="false"
android:focusable="false"/>
</LinearLayout>

View File

@@ -42,24 +42,23 @@ android {
}
}
/*compileOptions {
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}*/
}
}
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
api project(':libjc')
api 'cc.winboll.studio:libaes:15.9.1'
api 'cc.winboll.studio:libapputils:15.8.4'
api 'cc.winboll.studio:libappbase:15.8.4'
// https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on
//implementation 'org.bouncycastle:bcprov-jdk15on:1.70'
implementation 'org.bouncycastle:bcprov-jdk15to18:1.69'
implementation 'org.bouncycastle:bcpkix-jdk15to18:1.69'
api project(':libjc')
api 'androidx.appcompat:appcompat:1.0.0'
api 'com.google.android.material:material:1.0.0'
api 'cc.winboll.studio:libapputils:9.1.0'
api 'cc.winboll.studio:libappbase:1.0.3'
api fileTree(dir: 'libs', include: ['*.jar'])
}

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Tue Jun 24 11:17:30 GMT 2025
#Fri Jan 10 22:03:57 GMT 2025
stageCount=0
libraryProject=libjc
baseVersion=1.0
publishVersion=1.0.0
buildCount=135
buildCount=133
baseBetaVersion=1.0.1

View File

@@ -15,10 +15,10 @@ import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import cc.winboll.studio.jc.R;
import cc.winboll.studio.libapputils.log.LogUtils;
import cc.winboll.studio.libjc.JAR_RUNNING_MODE;
import cc.winboll.studio.libjc.JCMainThread;
import cc.winboll.studio.libjc.net.JCSocketClient;
import cc.winboll.studio.libjc.util.LogUtils;
import cc.winboll.studio.libjc.Main;
final public class MainActivity extends Activity implements JCMainThread.OnMessageListener {
@@ -77,7 +77,7 @@ final public class MainActivity extends Activity implements JCMainThread.OnMessa
// 启动主线程
_JCMainThread = JCMainThread.getInstance(getPackageName());
_JCMainThread.setOnLogListener(this);
//_JCMainThread.setRunningMode(Main.JAR_RUNNING_MODE.JC);
_JCMainThread.setRunningMode(JAR_RUNNING_MODE.JC);
_JCMainThread.start();
// 设置 WinBoll 应用 UI 类型

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Thu Jun 19 20:42:26 HKT 2025
stageCount=2
#Mon Jun 09 01:44:28 HKT 2025
stageCount=1
libraryProject=libaes
baseVersion=15.9
publishVersion=15.9.1
publishVersion=15.9.0
buildCount=0
baseBetaVersion=15.9.2
baseBetaVersion=15.9.1

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Tue Jun 24 11:17:30 GMT 2025
#Fri Jan 10 22:03:57 GMT 2025
stageCount=0
libraryProject=libjc
baseVersion=1.0
publishVersion=1.0.0
buildCount=135
buildCount=133
baseBetaVersion=1.0.1

View File

@@ -21,7 +21,7 @@ public class Main {
public final static int JAR_RUNNING_MODE_JCNDK_DEBUG = 4;
public final static int JAR_RUNNING_MODE_JC = 5;
public final static int JAR_RUNNING_MODE_JC_DEBUG = 6;
public static enum JAR_RUNNING_MODE {
public enum JAR_RUNNING_MODE {
UNKNOWN(JAR_RUNNING_MODE_UNKNOWN),
CONSOLE(JAR_RUNNING_MODE_CONSOLE),
CONSOLE_DEBUG(JAR_RUNNING_MODE_CONSOLE_DEBUG),

View File

@@ -22,7 +22,6 @@
// JC 项目编译设置
//include ':jc'
//include ':libjc'
//rootProject.name = "jc"
// AES 项目编译设置