1629
This commit is contained in:
		@@ -1,8 +1,8 @@
 | 
			
		||||
#Created by .winboll/winboll_app_build.gradle
 | 
			
		||||
#Tue Mar 04 10:00:11 GMT 2025
 | 
			
		||||
#Wed Mar 05 08:27:53 GMT 2025
 | 
			
		||||
stageCount=9
 | 
			
		||||
libraryProject=
 | 
			
		||||
baseVersion=1.0
 | 
			
		||||
publishVersion=1.0.8
 | 
			
		||||
buildCount=60
 | 
			
		||||
buildCount=112
 | 
			
		||||
baseBetaVersion=1.0.9
 | 
			
		||||
 
 | 
			
		||||
@@ -47,10 +47,10 @@ public class PhoneConnectRuleAdapter extends RecyclerView.Adapter<RecyclerView.V
 | 
			
		||||
        LayoutInflater inflater = LayoutInflater.from(context);
 | 
			
		||||
        if (viewType == VIEW_TYPE_SIMPLE) {
 | 
			
		||||
            View view = inflater.inflate(R.layout.view_phone_connect_rule_simple, parent, false);
 | 
			
		||||
            return new SimpleViewHolder(view);
 | 
			
		||||
            return new SimpleViewHolder(parent, view);
 | 
			
		||||
        } else {
 | 
			
		||||
            View view = inflater.inflate(R.layout.view_phone_connect_rule, parent, false);
 | 
			
		||||
            return new EditViewHolder(view);
 | 
			
		||||
            return new EditViewHolder(parent, view);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -165,13 +165,16 @@ public class PhoneConnectRuleAdapter extends RecyclerView.Adapter<RecyclerView.V
 | 
			
		||||
        private final TextView tvRuleText;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public SimpleViewHolder(@NonNull View itemView) {
 | 
			
		||||
        public SimpleViewHolder(@NonNull ViewGroup parent, @NonNull View itemView) {
 | 
			
		||||
            super(itemView);
 | 
			
		||||
            scrollView = itemView.findViewById(R.id.scrollView);
 | 
			
		||||
            //tvRuleText = itemView.findViewById(R.id.ruletext_tv);
 | 
			
		||||
            tvRuleText = new TextView(itemView.getContext());
 | 
			
		||||
            scrollView.setContentWidth(parent.getWidth());
 | 
			
		||||
            //scrollView.setContentWidth(600);
 | 
			
		||||
            scrollView.addContentLayout(tvRuleText);
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    static class EditViewHolder extends RecyclerView.ViewHolder {
 | 
			
		||||
@@ -180,7 +183,7 @@ public class PhoneConnectRuleAdapter extends RecyclerView.Adapter<RecyclerView.V
 | 
			
		||||
        CheckBox checkBoxEnable;
 | 
			
		||||
        Button buttonConfirm;
 | 
			
		||||
 | 
			
		||||
        public EditViewHolder(@NonNull View itemView) {
 | 
			
		||||
        public EditViewHolder(@NonNull ViewGroup parent, @NonNull View itemView) {
 | 
			
		||||
            super(itemView);
 | 
			
		||||
            editText = itemView.findViewById(R.id.edit_text);
 | 
			
		||||
            checkBoxAllow = itemView.findViewById(R.id.checkbox_allow);
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,8 @@ import android.widget.HorizontalScrollView;
 | 
			
		||||
import android.widget.LinearLayout;
 | 
			
		||||
import android.widget.TextView;
 | 
			
		||||
import cc.winboll.studio.contacts.R;
 | 
			
		||||
import cc.winboll.studio.libappbase.LogUtils;
 | 
			
		||||
import android.util.TypedValue;
 | 
			
		||||
 | 
			
		||||
public class LeftScrollView extends HorizontalScrollView {
 | 
			
		||||
 | 
			
		||||
@@ -24,8 +26,8 @@ public class LeftScrollView extends HorizontalScrollView {
 | 
			
		||||
    private TextView textView;
 | 
			
		||||
    private Button editButton;
 | 
			
		||||
    private Button deleteButton;
 | 
			
		||||
    private float startX;
 | 
			
		||||
    private boolean isDragging = false;
 | 
			
		||||
    private float mLastX;
 | 
			
		||||
    private boolean isScrolling = false;
 | 
			
		||||
 | 
			
		||||
    public LeftScrollView(Context context) {
 | 
			
		||||
        super(context);
 | 
			
		||||
@@ -46,66 +48,28 @@ public class LeftScrollView extends HorizontalScrollView {
 | 
			
		||||
        contentLayout.addView(textView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setContentWidth(int contentWidth) {
 | 
			
		||||
        LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) contentLayout.getLayoutParams();
 | 
			
		||||
        layoutParams.width = contentWidth;
 | 
			
		||||
        contentLayout.setLayoutParams(layoutParams);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void init() {
 | 
			
		||||
        View viewMain = inflate(getContext(), R.layout.view_left_scroll, null);
 | 
			
		||||
 | 
			
		||||
        // 创建内容布局
 | 
			
		||||
        contentLayout = viewMain.findViewById(R.id.content_layout);
 | 
			
		||||
        toolLayout = viewMain.findViewById(R.id.action_layout);
 | 
			
		||||
        addView(viewMain);
 | 
			
		||||
 | 
			
		||||
        // 动态设置content_layout的宽度为scrollView的宽度
 | 
			
		||||
//        post(new Runnable() {
 | 
			
		||||
//                @Override
 | 
			
		||||
//                public void run() {
 | 
			
		||||
//                    int scrollViewWidth = getWidth();
 | 
			
		||||
//                    LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) contentLayout.getLayoutParams();
 | 
			
		||||
//                    layoutParams.width = scrollViewWidth;
 | 
			
		||||
//                    contentLayout.setLayoutParams(layoutParams);
 | 
			
		||||
//                }
 | 
			
		||||
//            });
 | 
			
		||||
        //LogUtils.d(TAG, String.format("getWidth() %d", getWidth()));
 | 
			
		||||
 | 
			
		||||
        addView(viewMain);
 | 
			
		||||
 | 
			
		||||
        // 创建编辑按钮
 | 
			
		||||
        editButton = viewMain.findViewById(R.id.edit_btn);
 | 
			
		||||
        // 创建删除按钮
 | 
			
		||||
        deleteButton = viewMain.findViewById(R.id.delete_btn);
 | 
			
		||||
 | 
			
		||||
        // 设置触摸事件监听器
 | 
			
		||||
//        setOnTouchListener(new OnTouchListener() {
 | 
			
		||||
//                @Override
 | 
			
		||||
//                public boolean onTouch(View v, MotionEvent event) {
 | 
			
		||||
//                    switch (event.getAction()) {
 | 
			
		||||
//                        case MotionEvent.ACTION_DOWN:
 | 
			
		||||
//                            startX = event.getX();
 | 
			
		||||
//                            isDragging = true;
 | 
			
		||||
//                            break;
 | 
			
		||||
//                        case MotionEvent.ACTION_MOVE:
 | 
			
		||||
//                            if (isDragging) {
 | 
			
		||||
//                                float deltaX = startX - event.getX();
 | 
			
		||||
//                                if (deltaX > 0) { // 左滑
 | 
			
		||||
//                                    float translationX = Math.max(-(editButton.getWidth() + deleteButton.getWidth()), -deltaX);
 | 
			
		||||
//                                    toolLayout.setTranslationX(translationX);
 | 
			
		||||
//                                    scrollTo((int) translationX, 0);
 | 
			
		||||
//                                }
 | 
			
		||||
//                            }
 | 
			
		||||
//                            break;
 | 
			
		||||
//                        case MotionEvent.ACTION_UP:
 | 
			
		||||
//                        case MotionEvent.ACTION_CANCEL:
 | 
			
		||||
//                            isDragging = false;
 | 
			
		||||
//                            if (getScrollX() <= -(editButton.getWidth())) {
 | 
			
		||||
//                                // 编辑按钮完全显示,保持按钮显示
 | 
			
		||||
//                                smoothScrollTo(-(editButton.getWidth() + deleteButton.getWidth()), 0);
 | 
			
		||||
//                            } else {
 | 
			
		||||
//                                // 恢复原状
 | 
			
		||||
//                                smoothScrollTo(0, 0);
 | 
			
		||||
//                                toolLayout.setTranslationX(0);
 | 
			
		||||
//                            }
 | 
			
		||||
//                            break;
 | 
			
		||||
//                    }
 | 
			
		||||
//                    return true;
 | 
			
		||||
//                }
 | 
			
		||||
//            });
 | 
			
		||||
 | 
			
		||||
        // 编辑按钮点击事件
 | 
			
		||||
        editButton.setOnClickListener(new OnClickListener() {
 | 
			
		||||
                @Override
 | 
			
		||||
@@ -127,6 +91,41 @@ public class LeftScrollView extends HorizontalScrollView {
 | 
			
		||||
            });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean onTouchEvent(MotionEvent event) {
 | 
			
		||||
        switch (event.getAction()) {
 | 
			
		||||
            case MotionEvent.ACTION_DOWN:
 | 
			
		||||
                LogUtils.d(TAG, "ACTION_DOWN");
 | 
			
		||||
                mLastX = event.getX();
 | 
			
		||||
                isScrolling = false;
 | 
			
		||||
                break;
 | 
			
		||||
            case MotionEvent.ACTION_MOVE:
 | 
			
		||||
                //LogUtils.d(TAG, "ACTION_MOVE");
 | 
			
		||||
                float currentX = event.getX();
 | 
			
		||||
                float deltaX = mLastX - currentX;
 | 
			
		||||
                mLastX = currentX;
 | 
			
		||||
                if (Math.abs(deltaX) > 0) {
 | 
			
		||||
                    isScrolling = true;
 | 
			
		||||
                }
 | 
			
		||||
                break;
 | 
			
		||||
            case MotionEvent.ACTION_UP:
 | 
			
		||||
                LogUtils.d(TAG, "ACTION_UP");
 | 
			
		||||
                if (isScrolling) {
 | 
			
		||||
                    LogUtils.d(TAG, String.format("isScrolling \ngetScrollX() %d\neditButton.getWidth() %d", getScrollX(), editButton.getWidth()));
 | 
			
		||||
                    int scrollX = getScrollX();
 | 
			
		||||
                    if (scrollX > editButton.getWidth()) {
 | 
			
		||||
                        smoothScrollTo(getChildAt(0).getWidth(), 0);
 | 
			
		||||
                        LogUtils.d(TAG, ">>>>>");
 | 
			
		||||
                    } else {
 | 
			
		||||
                        smoothScrollTo(0, 0);
 | 
			
		||||
                        LogUtils.d(TAG, "<<<<<");
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
        return super.onTouchEvent(event);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // 设置文本内容
 | 
			
		||||
    public void setText(CharSequence text) {
 | 
			
		||||
        textView.setText(text);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,271 +1,276 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<LinearLayout
 | 
			
		||||
<ScrollView
 | 
			
		||||
	xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
	xmlns:app="http://schemas.android.com/apk/res-auto"
 | 
			
		||||
	xmlns:tools="http://schemas.android.com/tools"
 | 
			
		||||
	android:orientation="vertical"
 | 
			
		||||
	android:layout_width="match_parent"
 | 
			
		||||
    xmlns:tools="http://schemas.android.com/tools"
 | 
			
		||||
    android:layout_width="match_parent"
 | 
			
		||||
	android:layout_height="match_parent">
 | 
			
		||||
 | 
			
		||||
	<androidx.appcompat.widget.Toolbar
 | 
			
		||||
		android:layout_width="match_parent"
 | 
			
		||||
		android:layout_height="wrap_content"
 | 
			
		||||
		android:id="@+id/activitymainToolbar1"/>
 | 
			
		||||
 | 
			
		||||
	<LinearLayout
 | 
			
		||||
		android:orientation="vertical"
 | 
			
		||||
		android:layout_width="match_parent"
 | 
			
		||||
		android:layout_height="0dp"
 | 
			
		||||
		android:layout_weight="1.0">
 | 
			
		||||
		android:layout_height="wrap_content">
 | 
			
		||||
 | 
			
		||||
		<TextView
 | 
			
		||||
			android:layout_width="wrap_content"
 | 
			
		||||
			android:layout_height="wrap_content"
 | 
			
		||||
			android:text="服务设置:"/>
 | 
			
		||||
 | 
			
		||||
		<LinearLayout
 | 
			
		||||
			android:orientation="horizontal"
 | 
			
		||||
			android:layout_width="match_parent"
 | 
			
		||||
			android:layout_height="wrap_content">
 | 
			
		||||
 | 
			
		||||
			<Switch
 | 
			
		||||
				android:layout_width="match_parent"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:text="主要服务"
 | 
			
		||||
				android:id="@+id/sw_mainservice"
 | 
			
		||||
				android:layout_margin="5dp"/>
 | 
			
		||||
 | 
			
		||||
		</LinearLayout>
 | 
			
		||||
 | 
			
		||||
		<LinearLayout
 | 
			
		||||
			android:orientation="horizontal"
 | 
			
		||||
			android:layout_width="match_parent"
 | 
			
		||||
			android:layout_height="wrap_content">
 | 
			
		||||
 | 
			
		||||
			<TextView
 | 
			
		||||
				android:layout_width="wrap_content"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:text="云盾设置:"/>
 | 
			
		||||
 | 
			
		||||
			<cc.winboll.studio.contacts.views.DuInfoTextView
 | 
			
		||||
				android:layout_width="wrap_content"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:id="@+id/tv_DunInfo"/>
 | 
			
		||||
 | 
			
		||||
		</LinearLayout>
 | 
			
		||||
 | 
			
		||||
		<LinearLayout
 | 
			
		||||
			android:orientation="horizontal"
 | 
			
		||||
			android:layout_width="match_parent"
 | 
			
		||||
			android:layout_height="wrap_content">
 | 
			
		||||
 | 
			
		||||
			<Switch
 | 
			
		||||
				android:layout_width="match_parent"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:text="是否启用云盾防御"
 | 
			
		||||
				android:layout_margin="5dp"
 | 
			
		||||
				android:id="@+id/sw_IsEnableDun"
 | 
			
		||||
				android:onClick="onSW_IsEnableDun"/>
 | 
			
		||||
 | 
			
		||||
		</LinearLayout>
 | 
			
		||||
 | 
			
		||||
		<LinearLayout
 | 
			
		||||
			android:orientation="horizontal"
 | 
			
		||||
		<androidx.appcompat.widget.Toolbar
 | 
			
		||||
			android:layout_width="match_parent"
 | 
			
		||||
			android:layout_height="wrap_content"
 | 
			
		||||
			android:gravity="center_vertical">
 | 
			
		||||
 | 
			
		||||
			<TextView
 | 
			
		||||
				android:layout_width="wrap_content"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:text="初始防御层的叠加数量:"/>
 | 
			
		||||
 | 
			
		||||
			<EditText
 | 
			
		||||
				android:layout_width="0dp"
 | 
			
		||||
				android:inputType="number"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:ems="10"
 | 
			
		||||
				android:layout_weight="1.0"
 | 
			
		||||
				android:id="@+id/et_DunTotalCount"/>
 | 
			
		||||
 | 
			
		||||
		</LinearLayout>
 | 
			
		||||
 | 
			
		||||
		<LinearLayout
 | 
			
		||||
			android:orientation="horizontal"
 | 
			
		||||
			android:layout_width="match_parent"
 | 
			
		||||
			android:layout_height="wrap_content"
 | 
			
		||||
			android:gravity="center_vertical">
 | 
			
		||||
 | 
			
		||||
			<TextView
 | 
			
		||||
				android:layout_width="wrap_content"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:text="防御层每次恢复的时间间隔(秒钟):"/>
 | 
			
		||||
 | 
			
		||||
			<EditText
 | 
			
		||||
				android:layout_width="0dp"
 | 
			
		||||
				android:inputType="number"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:ems="10"
 | 
			
		||||
				android:layout_weight="1.0"
 | 
			
		||||
				android:id="@+id/et_DunResumeSecondCount"/>
 | 
			
		||||
 | 
			
		||||
		</LinearLayout>
 | 
			
		||||
 | 
			
		||||
		<LinearLayout
 | 
			
		||||
			android:orientation="horizontal"
 | 
			
		||||
			android:layout_width="match_parent"
 | 
			
		||||
			android:layout_height="wrap_content"
 | 
			
		||||
			android:gravity="center_vertical">
 | 
			
		||||
 | 
			
		||||
			<TextView
 | 
			
		||||
				android:layout_width="wrap_content"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:text="防御层每次恢复的叠加数量:"/>
 | 
			
		||||
 | 
			
		||||
			<EditText
 | 
			
		||||
				android:layout_width="0dp"
 | 
			
		||||
				android:inputType="number"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:ems="10"
 | 
			
		||||
				android:layout_weight="1.0"
 | 
			
		||||
				android:id="@+id/et_DunResumeCount"/>
 | 
			
		||||
 | 
			
		||||
		</LinearLayout>
 | 
			
		||||
 | 
			
		||||
		<TextView
 | 
			
		||||
			android:layout_width="wrap_content"
 | 
			
		||||
			android:layout_height="wrap_content"
 | 
			
		||||
			android:text="应用权限设置:"/>
 | 
			
		||||
 | 
			
		||||
		<LinearLayout
 | 
			
		||||
			android:orientation="horizontal"
 | 
			
		||||
			android:layout_width="match_parent"
 | 
			
		||||
			android:layout_height="wrap_content"
 | 
			
		||||
			android:gravity="right">
 | 
			
		||||
 | 
			
		||||
			<Button
 | 
			
		||||
				android:layout_width="wrap_content"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:text="悬浮窗设置"
 | 
			
		||||
				android:id="@+id/activitysettingsButton2"
 | 
			
		||||
				android:onClick="onCanDrawOverlays"/>
 | 
			
		||||
 | 
			
		||||
			<Button
 | 
			
		||||
				android:layout_width="wrap_content"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:text="默认拨号设置"
 | 
			
		||||
				android:id="@+id/activitysettingsButton1"
 | 
			
		||||
				android:onClick="onDefaultPhone"/>
 | 
			
		||||
 | 
			
		||||
		</LinearLayout>
 | 
			
		||||
 | 
			
		||||
		<TextView
 | 
			
		||||
			android:layout_width="wrap_content"
 | 
			
		||||
			android:layout_height="wrap_content"
 | 
			
		||||
			android:text="音量设置:"/>
 | 
			
		||||
 | 
			
		||||
		<LinearLayout
 | 
			
		||||
			android:orientation="horizontal"
 | 
			
		||||
			android:layout_width="match_parent"
 | 
			
		||||
			android:layout_height="wrap_content"
 | 
			
		||||
			android:gravity="center_vertical">
 | 
			
		||||
 | 
			
		||||
			<TextView
 | 
			
		||||
				android:layout_width="wrap_content"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:layout_marginLeft="10dp"
 | 
			
		||||
				android:id="@+id/tv_volume"/>
 | 
			
		||||
 | 
			
		||||
			<SeekBar
 | 
			
		||||
				android:layout_width="match_parent"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:layout_margin="10dp"
 | 
			
		||||
				android:max="100"
 | 
			
		||||
				android:id="@+id/bellvolume"/>
 | 
			
		||||
 | 
			
		||||
		</LinearLayout>
 | 
			
		||||
 | 
			
		||||
		<TextView
 | 
			
		||||
			android:layout_width="wrap_content"
 | 
			
		||||
			android:layout_height="wrap_content"
 | 
			
		||||
			android:text="拨不通电话记录查询:"/>
 | 
			
		||||
			android:id="@+id/activitymainToolbar1"/>
 | 
			
		||||
 | 
			
		||||
		<LinearLayout
 | 
			
		||||
			android:orientation="vertical"
 | 
			
		||||
			android:layout_width="match_parent"
 | 
			
		||||
			android:layout_height="wrap_content"
 | 
			
		||||
			android:gravity="right"
 | 
			
		||||
			android:layout_margin="10dp">
 | 
			
		||||
 | 
			
		||||
			<Button
 | 
			
		||||
				android:layout_width="wrap_content"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:text="下载 BoBullToon"
 | 
			
		||||
				android:onClick="onDownloadBoBullToon"/>
 | 
			
		||||
 | 
			
		||||
		</LinearLayout>
 | 
			
		||||
 | 
			
		||||
		<LinearLayout
 | 
			
		||||
			android:orientation="horizontal"
 | 
			
		||||
			android:layout_width="match_parent"
 | 
			
		||||
			android:layout_height="wrap_content"
 | 
			
		||||
			android:gravity="right|center_vertical"
 | 
			
		||||
			android:layout_margin="10dp">
 | 
			
		||||
			android:layout_height="0dp"
 | 
			
		||||
			android:layout_weight="1.0">
 | 
			
		||||
 | 
			
		||||
			<TextView
 | 
			
		||||
				android:layout_width="wrap_content"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:text="查询电话:"/>
 | 
			
		||||
				android:text="服务设置:"/>
 | 
			
		||||
 | 
			
		||||
			<EditText
 | 
			
		||||
				android:layout_width="0dp"
 | 
			
		||||
				android:inputType="phone"
 | 
			
		||||
			<LinearLayout
 | 
			
		||||
				android:orientation="horizontal"
 | 
			
		||||
				android:layout_width="match_parent"
 | 
			
		||||
				android:layout_height="wrap_content">
 | 
			
		||||
 | 
			
		||||
				<Switch
 | 
			
		||||
					android:layout_width="match_parent"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:text="主要服务"
 | 
			
		||||
					android:id="@+id/sw_mainservice"
 | 
			
		||||
					android:layout_margin="5dp"/>
 | 
			
		||||
 | 
			
		||||
			</LinearLayout>
 | 
			
		||||
 | 
			
		||||
			<LinearLayout
 | 
			
		||||
				android:orientation="horizontal"
 | 
			
		||||
				android:layout_width="match_parent"
 | 
			
		||||
				android:layout_height="wrap_content">
 | 
			
		||||
 | 
			
		||||
				<TextView
 | 
			
		||||
					android:layout_width="wrap_content"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:text="云盾设置:"/>
 | 
			
		||||
 | 
			
		||||
				<cc.winboll.studio.contacts.views.DuInfoTextView
 | 
			
		||||
					android:layout_width="wrap_content"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:id="@+id/tv_DunInfo"/>
 | 
			
		||||
 | 
			
		||||
			</LinearLayout>
 | 
			
		||||
 | 
			
		||||
			<LinearLayout
 | 
			
		||||
				android:orientation="horizontal"
 | 
			
		||||
				android:layout_width="match_parent"
 | 
			
		||||
				android:layout_height="wrap_content">
 | 
			
		||||
 | 
			
		||||
				<Switch
 | 
			
		||||
					android:layout_width="match_parent"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:text="是否启用云盾防御"
 | 
			
		||||
					android:layout_margin="5dp"
 | 
			
		||||
					android:id="@+id/sw_IsEnableDun"
 | 
			
		||||
					android:onClick="onSW_IsEnableDun"/>
 | 
			
		||||
 | 
			
		||||
			</LinearLayout>
 | 
			
		||||
 | 
			
		||||
			<LinearLayout
 | 
			
		||||
				android:orientation="horizontal"
 | 
			
		||||
				android:layout_width="match_parent"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:ems="10"
 | 
			
		||||
				android:layout_weight="1.0"
 | 
			
		||||
				android:id="@+id/activitysettingsEditText1"/>
 | 
			
		||||
				android:gravity="center_vertical">
 | 
			
		||||
 | 
			
		||||
			<Button
 | 
			
		||||
				<TextView
 | 
			
		||||
					android:layout_width="wrap_content"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:text="初始防御层的叠加数量:"/>
 | 
			
		||||
 | 
			
		||||
				<EditText
 | 
			
		||||
					android:layout_width="0dp"
 | 
			
		||||
					android:inputType="number"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:ems="10"
 | 
			
		||||
					android:layout_weight="1.0"
 | 
			
		||||
					android:id="@+id/et_DunTotalCount"/>
 | 
			
		||||
 | 
			
		||||
			</LinearLayout>
 | 
			
		||||
 | 
			
		||||
			<LinearLayout
 | 
			
		||||
				android:orientation="horizontal"
 | 
			
		||||
				android:layout_width="match_parent"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:gravity="center_vertical">
 | 
			
		||||
 | 
			
		||||
				<TextView
 | 
			
		||||
					android:layout_width="wrap_content"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:text="防御层每次恢复的时间间隔(秒钟):"/>
 | 
			
		||||
 | 
			
		||||
				<EditText
 | 
			
		||||
					android:layout_width="0dp"
 | 
			
		||||
					android:inputType="number"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:ems="10"
 | 
			
		||||
					android:layout_weight="1.0"
 | 
			
		||||
					android:id="@+id/et_DunResumeSecondCount"/>
 | 
			
		||||
 | 
			
		||||
			</LinearLayout>
 | 
			
		||||
 | 
			
		||||
			<LinearLayout
 | 
			
		||||
				android:orientation="horizontal"
 | 
			
		||||
				android:layout_width="match_parent"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:gravity="center_vertical">
 | 
			
		||||
 | 
			
		||||
				<TextView
 | 
			
		||||
					android:layout_width="wrap_content"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:text="防御层每次恢复的叠加数量:"/>
 | 
			
		||||
 | 
			
		||||
				<EditText
 | 
			
		||||
					android:layout_width="0dp"
 | 
			
		||||
					android:inputType="number"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:ems="10"
 | 
			
		||||
					android:layout_weight="1.0"
 | 
			
		||||
					android:id="@+id/et_DunResumeCount"/>
 | 
			
		||||
 | 
			
		||||
			</LinearLayout>
 | 
			
		||||
 | 
			
		||||
			<TextView
 | 
			
		||||
				android:layout_width="wrap_content"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:text="查询记录"
 | 
			
		||||
				android:onClick="onSearchBoBullToonPhone"/>
 | 
			
		||||
				android:text="应用权限设置:"/>
 | 
			
		||||
 | 
			
		||||
		</LinearLayout>
 | 
			
		||||
			<LinearLayout
 | 
			
		||||
				android:orientation="horizontal"
 | 
			
		||||
				android:layout_width="match_parent"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:gravity="right">
 | 
			
		||||
 | 
			
		||||
		<TextView
 | 
			
		||||
			android:layout_width="wrap_content"
 | 
			
		||||
			android:layout_height="wrap_content"
 | 
			
		||||
			android:text="Phone Connect Rule :"/>
 | 
			
		||||
				<Button
 | 
			
		||||
					android:layout_width="wrap_content"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:text="悬浮窗设置"
 | 
			
		||||
					android:id="@+id/activitysettingsButton2"
 | 
			
		||||
					android:onClick="onCanDrawOverlays"/>
 | 
			
		||||
 | 
			
		||||
		<androidx.recyclerview.widget.RecyclerView
 | 
			
		||||
			android:id="@+id/recycler_view"
 | 
			
		||||
			android:layout_width="match_parent"
 | 
			
		||||
			android:layout_height="0dp"
 | 
			
		||||
			android:layout_weight="1.0"
 | 
			
		||||
			android:background="@drawable/recycler_view_border"
 | 
			
		||||
			android:layout_margin="5dp"/>
 | 
			
		||||
				<Button
 | 
			
		||||
					android:layout_width="wrap_content"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:text="默认拨号设置"
 | 
			
		||||
					android:id="@+id/activitysettingsButton1"
 | 
			
		||||
					android:onClick="onDefaultPhone"/>
 | 
			
		||||
 | 
			
		||||
		<TextView
 | 
			
		||||
			android:layout_width="wrap_content"
 | 
			
		||||
			android:layout_height="wrap_content"
 | 
			
		||||
			android:text="单元测试:"/>
 | 
			
		||||
			</LinearLayout>
 | 
			
		||||
 | 
			
		||||
		<LinearLayout
 | 
			
		||||
			android:orientation="horizontal"
 | 
			
		||||
			android:layout_width="match_parent"
 | 
			
		||||
			android:layout_height="wrap_content"
 | 
			
		||||
			android:gravity="right">
 | 
			
		||||
 | 
			
		||||
			<Button
 | 
			
		||||
			<TextView
 | 
			
		||||
				android:layout_width="wrap_content"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:text="Unit Test"
 | 
			
		||||
				android:onClick="onUnitTest"/>
 | 
			
		||||
				android:text="音量设置:"/>
 | 
			
		||||
 | 
			
		||||
			<LinearLayout
 | 
			
		||||
				android:orientation="horizontal"
 | 
			
		||||
				android:layout_width="match_parent"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:gravity="center_vertical">
 | 
			
		||||
 | 
			
		||||
				<TextView
 | 
			
		||||
					android:layout_width="wrap_content"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:layout_marginLeft="10dp"
 | 
			
		||||
					android:id="@+id/tv_volume"/>
 | 
			
		||||
 | 
			
		||||
				<SeekBar
 | 
			
		||||
					android:layout_width="match_parent"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:layout_margin="10dp"
 | 
			
		||||
					android:max="100"
 | 
			
		||||
					android:id="@+id/bellvolume"/>
 | 
			
		||||
 | 
			
		||||
			</LinearLayout>
 | 
			
		||||
 | 
			
		||||
			<TextView
 | 
			
		||||
				android:layout_width="wrap_content"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:text="拨不通电话记录查询:"/>
 | 
			
		||||
 | 
			
		||||
			<LinearLayout
 | 
			
		||||
				android:orientation="vertical"
 | 
			
		||||
				android:layout_width="match_parent"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:gravity="right"
 | 
			
		||||
				android:layout_margin="10dp">
 | 
			
		||||
 | 
			
		||||
				<Button
 | 
			
		||||
					android:layout_width="wrap_content"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:text="下载 BoBullToon"
 | 
			
		||||
					android:onClick="onDownloadBoBullToon"/>
 | 
			
		||||
 | 
			
		||||
			</LinearLayout>
 | 
			
		||||
 | 
			
		||||
			<LinearLayout
 | 
			
		||||
				android:orientation="horizontal"
 | 
			
		||||
				android:layout_width="match_parent"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:gravity="right|center_vertical"
 | 
			
		||||
				android:layout_margin="10dp">
 | 
			
		||||
 | 
			
		||||
				<TextView
 | 
			
		||||
					android:layout_width="wrap_content"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:text="查询电话:"/>
 | 
			
		||||
 | 
			
		||||
				<EditText
 | 
			
		||||
					android:layout_width="0dp"
 | 
			
		||||
					android:inputType="phone"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:ems="10"
 | 
			
		||||
					android:layout_weight="1.0"
 | 
			
		||||
					android:id="@+id/activitysettingsEditText1"/>
 | 
			
		||||
 | 
			
		||||
				<Button
 | 
			
		||||
					android:layout_width="wrap_content"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:text="查询记录"
 | 
			
		||||
					android:onClick="onSearchBoBullToonPhone"/>
 | 
			
		||||
 | 
			
		||||
			</LinearLayout>
 | 
			
		||||
 | 
			
		||||
			<TextView
 | 
			
		||||
				android:layout_width="wrap_content"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:text="Phone Connect Rule :"/>
 | 
			
		||||
 | 
			
		||||
			<androidx.recyclerview.widget.RecyclerView
 | 
			
		||||
				android:id="@+id/recycler_view"
 | 
			
		||||
				android:layout_width="match_parent"
 | 
			
		||||
				android:layout_height="400dp"
 | 
			
		||||
				android:background="@drawable/recycler_view_border"
 | 
			
		||||
				android:layout_margin="5dp"/>
 | 
			
		||||
 | 
			
		||||
			<TextView
 | 
			
		||||
				android:layout_width="wrap_content"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:text="单元测试:"/>
 | 
			
		||||
 | 
			
		||||
			<LinearLayout
 | 
			
		||||
				android:orientation="horizontal"
 | 
			
		||||
				android:layout_width="match_parent"
 | 
			
		||||
				android:layout_height="wrap_content"
 | 
			
		||||
				android:gravity="right">
 | 
			
		||||
 | 
			
		||||
				<Button
 | 
			
		||||
					android:layout_width="wrap_content"
 | 
			
		||||
					android:layout_height="wrap_content"
 | 
			
		||||
					android:text="Unit Test"
 | 
			
		||||
					android:onClick="onUnitTest"/>
 | 
			
		||||
 | 
			
		||||
			</LinearLayout>
 | 
			
		||||
 | 
			
		||||
		</LinearLayout>
 | 
			
		||||
 | 
			
		||||
	</LinearLayout>
 | 
			
		||||
 | 
			
		||||
</LinearLayout>
 | 
			
		||||
</ScrollView>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user