设置UI为拖动拨号方式
This commit is contained in:
		@@ -41,29 +41,41 @@ android {
 | 
			
		||||
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    compileOptions {
 | 
			
		||||
        sourceCompatibility JavaVersion.VERSION_17
 | 
			
		||||
        targetCompatibility JavaVersion.VERSION_17
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
dependencies {
 | 
			
		||||
    implementation fileTree(dir: 'libs', include: ['*.jar'])
 | 
			
		||||
    
 | 
			
		||||
    implementation 'com.squareup.okhttp3:okhttp:4.4.1'
 | 
			
		||||
    api fileTree(dir: 'libs', include: ['*.jar'])
 | 
			
		||||
    
 | 
			
		||||
    // 权限请求框架:https://github.com/getActivity/XXPermissions
 | 
			
		||||
    implementation 'com.github.getActivity:XXPermissions:18.63'
 | 
			
		||||
    // 下拉控件
 | 
			
		||||
    implementation 'com.baoyz.pullrefreshlayout:library:1.2.0'
 | 
			
		||||
    // 拼音搜索
 | 
			
		||||
    // https://mvnrepository.com/artifact/com.github.open-android/pinyin4j
 | 
			
		||||
    implementation 'com.github.open-android:pinyin4j:2.5.0'
 | 
			
		||||
 | 
			
		||||
    // SSH
 | 
			
		||||
    implementation 'com.jcraft:jsch:0.1.55'
 | 
			
		||||
    // Html 解析
 | 
			
		||||
    implementation 'org.jsoup:jsoup:1.13.1'
 | 
			
		||||
    // 二维码类库
 | 
			
		||||
    implementation 'com.google.zxing:core:3.4.1'
 | 
			
		||||
    implementation 'com.journeyapps:zxing-android-embedded:3.6.0'
 | 
			
		||||
    // 应用介绍页类库
 | 
			
		||||
    implementation 'io.github.medyo:android-about-page:2.0.0'
 | 
			
		||||
    // 吐司类库
 | 
			
		||||
    implementation 'com.github.getActivity:ToastUtils:10.5'
 | 
			
		||||
    // 网络连接类库
 | 
			
		||||
    implementation 'com.squareup.okhttp3:okhttp:4.4.1'
 | 
			
		||||
    
 | 
			
		||||
    // Android 类库
 | 
			
		||||
    implementation 'androidx.appcompat:appcompat:1.1.0'
 | 
			
		||||
    implementation 'androidx.viewpager:viewpager:1.0.0'
 | 
			
		||||
    implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
 | 
			
		||||
    implementation 'androidx.vectordrawable:vectordrawable-animated:1.1.0'
 | 
			
		||||
    implementation 'androidx.fragment:fragment:1.1.0'
 | 
			
		||||
    implementation 'com.google.android.material:material:1.4.0'
 | 
			
		||||
    
 | 
			
		||||
    implementation 'cc.winboll.studio:libapputils:9.3.2'
 | 
			
		||||
    implementation 'cc.winboll.studio:libappbase:1.5.6'
 | 
			
		||||
    implementation 'cc.winboll.studio:libappbase:2.1.3'
 | 
			
		||||
    implementation 'cc.winboll.studio:libapputils:9.4.2'
 | 
			
		||||
    implementation 'cc.winboll.studio:libaes:7.6.6'
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
#Created by .winboll/winboll_app_build.gradle
 | 
			
		||||
#Thu Mar 06 21:44:44 HKT 2025
 | 
			
		||||
#Fri Mar 07 20:34:32 GMT 2025
 | 
			
		||||
stageCount=13
 | 
			
		||||
libraryProject=
 | 
			
		||||
baseVersion=1.0
 | 
			
		||||
publishVersion=1.0.12
 | 
			
		||||
buildCount=0
 | 
			
		||||
buildCount=2
 | 
			
		||||
baseBetaVersion=1.0.13
 | 
			
		||||
 
 | 
			
		||||
@@ -35,9 +35,7 @@ import cc.winboll.studio.contacts.services.MainService;
 | 
			
		||||
import cc.winboll.studio.libappbase.LogUtils;
 | 
			
		||||
import cc.winboll.studio.libappbase.LogView;
 | 
			
		||||
import cc.winboll.studio.libapputils.app.IWinBollActivity;
 | 
			
		||||
import cc.winboll.studio.libapputils.app.WinBollActivityManager;
 | 
			
		||||
import cc.winboll.studio.libapputils.bean.APPInfo;
 | 
			
		||||
import cc.winboll.studio.libapputils.view.YesNoAlertDialog;
 | 
			
		||||
import com.google.android.material.tabs.TabLayout;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 
 | 
			
		||||
@@ -29,17 +29,17 @@ import cc.winboll.studio.contacts.adapters.PhoneConnectRuleAdapter;
 | 
			
		||||
import cc.winboll.studio.contacts.beans.MainServiceBean;
 | 
			
		||||
import cc.winboll.studio.contacts.beans.PhoneConnectRuleModel;
 | 
			
		||||
import cc.winboll.studio.contacts.beans.RingTongBean;
 | 
			
		||||
import cc.winboll.studio.contacts.beans.SettingsModel;
 | 
			
		||||
import cc.winboll.studio.contacts.bobulltoon.TomCat;
 | 
			
		||||
import cc.winboll.studio.contacts.dun.Rules;
 | 
			
		||||
import cc.winboll.studio.contacts.services.MainService;
 | 
			
		||||
import cc.winboll.studio.libappbase.IWinBollActivity;
 | 
			
		||||
import cc.winboll.studio.libappbase.bean.APPInfo;
 | 
			
		||||
import cc.winboll.studio.contacts.views.DuInfoTextView;
 | 
			
		||||
import cc.winboll.studio.libappbase.LogUtils;
 | 
			
		||||
import cc.winboll.studio.libapputils.app.IWinBollActivity;
 | 
			
		||||
import cc.winboll.studio.libapputils.bean.APPInfo;
 | 
			
		||||
import com.hjq.toast.ToastUtils;
 | 
			
		||||
import java.lang.reflect.Field;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import cc.winboll.studio.contacts.beans.SettingsModel;
 | 
			
		||||
import cc.winboll.studio.contacts.views.DuInfoTextView;
 | 
			
		||||
import cc.winboll.studio.libappbase.LogUtils;
 | 
			
		||||
 | 
			
		||||
public class SettingsActivity extends AppCompatActivity implements IWinBollActivity {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,10 +5,8 @@ package cc.winboll.studio.contacts.adapters;
 | 
			
		||||
 * @Date 2025/02/26 13:09:32
 | 
			
		||||
 * @Describe CallLogAdapter
 | 
			
		||||
 */
 | 
			
		||||
import android.content.ContentResolver;
 | 
			
		||||
import android.content.Context;
 | 
			
		||||
import android.content.Intent;
 | 
			
		||||
import android.database.Cursor;
 | 
			
		||||
import android.provider.ContactsContract;
 | 
			
		||||
import android.view.LayoutInflater;
 | 
			
		||||
import android.view.View;
 | 
			
		||||
import android.view.ViewGroup;
 | 
			
		||||
@@ -18,15 +16,12 @@ import androidx.annotation.NonNull;
 | 
			
		||||
import androidx.recyclerview.widget.RecyclerView;
 | 
			
		||||
import cc.winboll.studio.contacts.R;
 | 
			
		||||
import cc.winboll.studio.contacts.beans.CallLogModel;
 | 
			
		||||
import cc.winboll.studio.contacts.utils.ContactUtils;
 | 
			
		||||
import cc.winboll.studio.libaes.views.AOHPCTCSeekBar;
 | 
			
		||||
import com.hjq.toast.ToastUtils;
 | 
			
		||||
import java.text.SimpleDateFormat;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Locale;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import cc.winboll.studio.contacts.utils.ContactUtils;
 | 
			
		||||
import android.content.Context;
 | 
			
		||||
 | 
			
		||||
public class CallLogAdapter extends RecyclerView.Adapter<CallLogAdapter.CallLogViewHolder> {
 | 
			
		||||
    public static final String TAG = "CallLogAdapter";
 | 
			
		||||
@@ -34,7 +29,7 @@ public class CallLogAdapter extends RecyclerView.Adapter<CallLogAdapter.CallLogV
 | 
			
		||||
    private List<CallLogModel> callLogList;
 | 
			
		||||
    ContactUtils mContactUtils;
 | 
			
		||||
    Context mContext;
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    public CallLogAdapter(Context context, List<CallLogModel> callLogList) {
 | 
			
		||||
        mContext = context;
 | 
			
		||||
        this.mContactUtils = ContactUtils.getInstance(mContext);
 | 
			
		||||
@@ -55,9 +50,14 @@ public class CallLogAdapter extends RecyclerView.Adapter<CallLogAdapter.CallLogV
 | 
			
		||||
        holder.callStatus.setText(callLog.getCallStatus());
 | 
			
		||||
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
 | 
			
		||||
        holder.callDate.setText(dateFormat.format(callLog.getCallDate()));
 | 
			
		||||
        holder.dialButton.setOnClickListener(new View.OnClickListener() {
 | 
			
		||||
 | 
			
		||||
        // 初始化拉动后拨号控件 
 | 
			
		||||
        holder.dialAOHPCTCSeekBar.setThumb(holder.itemView.getContext().getDrawable(R.drawable.ic_call));
 | 
			
		||||
        holder.dialAOHPCTCSeekBar.setThumbOffset(20);
 | 
			
		||||
        holder.dialAOHPCTCSeekBar.setOnOHPCListener(
 | 
			
		||||
            new AOHPCTCSeekBar.OnOHPCListener(){
 | 
			
		||||
                @Override
 | 
			
		||||
                public void onClick(View v) {
 | 
			
		||||
                public void onOHPCommit() {
 | 
			
		||||
                    String phoneNumber = callLog.getPhoneNumber().replaceAll("\\s", "");
 | 
			
		||||
                    ToastUtils.show(phoneNumber);
 | 
			
		||||
                    Intent intent = new Intent(Intent.ACTION_CALL);
 | 
			
		||||
@@ -77,16 +77,16 @@ public class CallLogAdapter extends RecyclerView.Adapter<CallLogAdapter.CallLogV
 | 
			
		||||
    public class CallLogViewHolder extends RecyclerView.ViewHolder {
 | 
			
		||||
        TextView phoneNumber, callStatus, callDate;
 | 
			
		||||
        Button dialButton;
 | 
			
		||||
        
 | 
			
		||||
        AOHPCTCSeekBar dialAOHPCTCSeekBar;
 | 
			
		||||
 | 
			
		||||
        public CallLogViewHolder(@NonNull View itemView) {
 | 
			
		||||
            super(itemView);
 | 
			
		||||
            phoneNumber = itemView.findViewById(R.id.phone_number);
 | 
			
		||||
            callStatus = itemView.findViewById(R.id.call_status);
 | 
			
		||||
            callDate = itemView.findViewById(R.id.call_date);
 | 
			
		||||
            dialButton = itemView.findViewById(R.id.dial_button);
 | 
			
		||||
            dialAOHPCTCSeekBar = itemView.findViewById(R.id.aohpctcseekbar_dial);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,7 @@ import cc.winboll.studio.contacts.R;
 | 
			
		||||
import cc.winboll.studio.contacts.beans.ContactModel;
 | 
			
		||||
import com.hjq.toast.ToastUtils;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import cc.winboll.studio.libaes.views.AOHPCTCSeekBar;
 | 
			
		||||
 | 
			
		||||
public class ContactAdapter extends RecyclerView.Adapter<ContactAdapter.ContactViewHolder> {
 | 
			
		||||
 | 
			
		||||
@@ -43,9 +44,13 @@ public class ContactAdapter extends RecyclerView.Adapter<ContactAdapter.ContactV
 | 
			
		||||
        holder.contactName.setText(contact.getName());
 | 
			
		||||
        holder.contactNumber.setText(contact.getNumber());
 | 
			
		||||
 | 
			
		||||
        holder.dialButton.setOnClickListener(new View.OnClickListener() {
 | 
			
		||||
        // 初始化拉动后拨号控件 
 | 
			
		||||
        holder.dialAOHPCTCSeekBar.setThumb(holder.itemView.getContext().getDrawable(R.drawable.ic_call));
 | 
			
		||||
        holder.dialAOHPCTCSeekBar.setThumbOffset(20);
 | 
			
		||||
        holder.dialAOHPCTCSeekBar.setOnOHPCListener(
 | 
			
		||||
            new AOHPCTCSeekBar.OnOHPCListener(){
 | 
			
		||||
                @Override
 | 
			
		||||
                public void onClick(View v) {
 | 
			
		||||
                public void onOHPCommit() {
 | 
			
		||||
                    String phoneNumber = contact.getNumber().replaceAll("\\s", "");
 | 
			
		||||
                    ToastUtils.show(phoneNumber);
 | 
			
		||||
                    Intent intent = new Intent(Intent.ACTION_CALL);
 | 
			
		||||
@@ -65,13 +70,13 @@ public class ContactAdapter extends RecyclerView.Adapter<ContactAdapter.ContactV
 | 
			
		||||
    public class ContactViewHolder extends RecyclerView.ViewHolder {
 | 
			
		||||
        TextView contactName;
 | 
			
		||||
        TextView contactNumber;
 | 
			
		||||
        Button dialButton;
 | 
			
		||||
 | 
			
		||||
        AOHPCTCSeekBar dialAOHPCTCSeekBar;
 | 
			
		||||
        
 | 
			
		||||
        public ContactViewHolder(@NonNull View itemView) {
 | 
			
		||||
            super(itemView);
 | 
			
		||||
            contactName = itemView.findViewById(R.id.contact_name);
 | 
			
		||||
            contactNumber = itemView.findViewById(R.id.contact_number);
 | 
			
		||||
            dialButton = itemView.findViewById(R.id.dial_button);
 | 
			
		||||
            dialAOHPCTCSeekBar = itemView.findViewById(R.id.aohpctcseekbar_dial);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,7 @@ import android.os.Binder;
 | 
			
		||||
import android.os.IBinder;
 | 
			
		||||
import cc.winboll.studio.contacts.beans.MainServiceBean;
 | 
			
		||||
import cc.winboll.studio.contacts.beans.RingTongBean;
 | 
			
		||||
import cc.winboll.studio.contacts.bobulltoon.TomCat;
 | 
			
		||||
import cc.winboll.studio.contacts.dun.Rules;
 | 
			
		||||
import cc.winboll.studio.contacts.handlers.MainServiceHandler;
 | 
			
		||||
import cc.winboll.studio.contacts.listenphonecall.CallListenerService;
 | 
			
		||||
@@ -27,11 +28,12 @@ import cc.winboll.studio.contacts.receivers.MainReceiver;
 | 
			
		||||
import cc.winboll.studio.contacts.services.MainService;
 | 
			
		||||
import cc.winboll.studio.contacts.threads.MainServiceThread;
 | 
			
		||||
import cc.winboll.studio.libappbase.LogUtils;
 | 
			
		||||
import cc.winboll.studio.libappbase.SOS;
 | 
			
		||||
import cc.winboll.studio.libappbase.bean.APPSOSBean;
 | 
			
		||||
import cc.winboll.studio.libappbase.sos.SOS;
 | 
			
		||||
import java.util.Timer;
 | 
			
		||||
import java.util.TimerTask;
 | 
			
		||||
import cc.winboll.studio.contacts.bobulltoon.TomCat;
 | 
			
		||||
import cc.winboll.studio.libappbase.sos.WinBoll;
 | 
			
		||||
import cc.winboll.studio.contacts.App;
 | 
			
		||||
import cc.winboll.studio.libappbase.sos.APPModel;
 | 
			
		||||
 | 
			
		||||
public class MainService extends Service {
 | 
			
		||||
 | 
			
		||||
@@ -128,7 +130,11 @@ public class MainService extends Service {
 | 
			
		||||
            // 唤醒守护进程
 | 
			
		||||
            wakeupAndBindAssistant();
 | 
			
		||||
            // 召唤 WinBoll APP 绑定本服务
 | 
			
		||||
            SOS.bindToAPPService(this, new APPSOSBean(getPackageName(), MainService.class.getName()));
 | 
			
		||||
            if (App.isDebuging()) {
 | 
			
		||||
                WinBoll.bindToAPPBaseBeta(this, MainService.class.getName());
 | 
			
		||||
            } else {
 | 
			
		||||
                WinBoll.bindToAPPBase(this, MainService.class.getName());
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // 初始化服务运行参数
 | 
			
		||||
            _TomCat = TomCat.getInstance(this);
 | 
			
		||||
@@ -234,7 +240,11 @@ public class MainService extends Service {
 | 
			
		||||
            if (mMainServiceBean.isEnable()) {
 | 
			
		||||
                // 唤醒守护进程
 | 
			
		||||
                wakeupAndBindAssistant();
 | 
			
		||||
                SOS.sosWinBollService(getApplicationContext(), new APPSOSBean(getPackageName(), MainService.class.getName()));
 | 
			
		||||
                if (App.isDebuging()) {
 | 
			
		||||
                    SOS.sosToAppBase(getApplicationContext(), MainService.class.getName());
 | 
			
		||||
                } else {
 | 
			
		||||
                    SOS.sosToAppBaseBeta(getApplicationContext(), MainService.class.getName());
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            isBound = false;
 | 
			
		||||
            mAssistantService = null;
 | 
			
		||||
@@ -296,7 +306,7 @@ public class MainService extends Service {
 | 
			
		||||
            LogUtils.d(TAG, "已重启 MainService");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    public static void stopMainServiceAndSaveStatus(Context context) {
 | 
			
		||||
        LogUtils.d(TAG, "stopMainServiceAndSaveStatus");
 | 
			
		||||
        MainServiceBean bean = new MainServiceBean();
 | 
			
		||||
 
 | 
			
		||||
@@ -6,11 +6,7 @@ package cc.winboll.studio.contacts.threads;
 | 
			
		||||
 */
 | 
			
		||||
import android.content.Context;
 | 
			
		||||
import cc.winboll.studio.contacts.handlers.MainServiceHandler;
 | 
			
		||||
import cc.winboll.studio.contacts.services.MainService;
 | 
			
		||||
import cc.winboll.studio.libappbase.LogUtils;
 | 
			
		||||
import cc.winboll.studio.libappbase.SOS;
 | 
			
		||||
import cc.winboll.studio.libappbase.bean.APPSOSBean;
 | 
			
		||||
import com.hjq.toast.ToastUtils;
 | 
			
		||||
import java.lang.ref.WeakReference;
 | 
			
		||||
 | 
			
		||||
public class MainServiceThread extends Thread {
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,7 @@ public class ContactUtils {
 | 
			
		||||
                String displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
 | 
			
		||||
                String phoneNumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
 | 
			
		||||
                //Map<String, String> contactMap = new HashMap<>();
 | 
			
		||||
                contactMap.put(getSimplePhone(phoneNumber), displayName);
 | 
			
		||||
                contactMap.put(formatToSimplePhoneNumber(phoneNumber), displayName);
 | 
			
		||||
            }
 | 
			
		||||
            cursor.close();
 | 
			
		||||
        }
 | 
			
		||||
@@ -52,11 +52,42 @@ public class ContactUtils {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getContactsName(String phone) {
 | 
			
		||||
        String result = contactMap.get(getSimplePhone(phone));
 | 
			
		||||
        String result = contactMap.get(formatToSimplePhoneNumber(phone));
 | 
			
		||||
        return result == null ? "[NoInContacts]" : result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    static String getSimplePhone(String phone) {
 | 
			
		||||
        return phone.replaceAll("[+\\s]", "");
 | 
			
		||||
//    static String getSimplePhone(String phone) {
 | 
			
		||||
//        return phone.replaceAll("[+\\s]", "");
 | 
			
		||||
//    }
 | 
			
		||||
    
 | 
			
		||||
    public static String formatToSimplePhoneNumber(String number) {
 | 
			
		||||
        // 去除所有空格和非数字字符
 | 
			
		||||
        return number.replaceAll("[^0-9]", "");
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public static String getDisplayNameByPhone(Context context, String phoneNumber) {
 | 
			
		||||
        String displayName = null;
 | 
			
		||||
        ContentResolver resolver = context.getContentResolver();
 | 
			
		||||
        String[] projection = {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME};
 | 
			
		||||
        Cursor cursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection, ContactsContract.CommonDataKinds.Phone.NUMBER + "=?", new String[]{formatToSimplePhoneNumber(phoneNumber)}, null);
 | 
			
		||||
        if (cursor!= null && cursor.moveToFirst()) {
 | 
			
		||||
            displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
 | 
			
		||||
            cursor.close();
 | 
			
		||||
        }
 | 
			
		||||
        return displayName;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public static String formatToSpacePhoneNumber(String simpleNumber) {
 | 
			
		||||
        // 去除所有空格和非数字字符
 | 
			
		||||
        StringBuilder sbSpaceNumber = new StringBuilder();
 | 
			
		||||
        String regex = "^1[0-9]{10}$"; 
 | 
			
		||||
        if(simpleNumber.matches(regex)) {
 | 
			
		||||
            sbSpaceNumber.append(simpleNumber.substring(0,2));
 | 
			
		||||
            sbSpaceNumber.append(" ");
 | 
			
		||||
            sbSpaceNumber.append(simpleNumber.substring(3,6));
 | 
			
		||||
            sbSpaceNumber.append(" ");
 | 
			
		||||
            sbSpaceNumber.append(simpleNumber.substring(7,10));
 | 
			
		||||
        }
 | 
			
		||||
        return sbSpaceNumber.toString();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								contacts/src/main/res/drawable/ic_call.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								contacts/src/main/res/drawable/ic_call.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
    android:width="24dp"
 | 
			
		||||
    android:height="24dp"
 | 
			
		||||
    android:viewportHeight="24"
 | 
			
		||||
    android:viewportWidth="24">
 | 
			
		||||
    <path
 | 
			
		||||
        android:fillColor="#ff000000"
 | 
			
		||||
        android:pathData="M6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5A1,1 0,0 1,21 16.5V20A1,1 0,0 1,20 21A17,17 0,0 1,3 4A1,1 0,0 1,4 3H7.5A1,1 0,0 1,8.5 4C8.5,5.25 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.59L6.62,10.79Z"/>
 | 
			
		||||
 | 
			
		||||
</vector>
 | 
			
		||||
@@ -3,13 +3,13 @@
 | 
			
		||||
    xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
    xmlns:app="http://schemas.android.com/apk/res-auto"
 | 
			
		||||
    android:orientation="vertical"
 | 
			
		||||
    android:layout_width="wrap_content"
 | 
			
		||||
    android:layout_width="match_parent"
 | 
			
		||||
    android:layout_height="wrap_content">
 | 
			
		||||
    android:padding="16dp">
 | 
			
		||||
 | 
			
		||||
    <TextView
 | 
			
		||||
        android:id="@+id/phone_number"
 | 
			
		||||
        android:layout_width="wrap_content"
 | 
			
		||||
        android:layout_width="match_parent"
 | 
			
		||||
        android:layout_height="wrap_content"
 | 
			
		||||
        android:textSize="16sp"
 | 
			
		||||
        android:textStyle="bold" />
 | 
			
		||||
@@ -28,12 +28,10 @@
 | 
			
		||||
        android:textSize="14sp"
 | 
			
		||||
        android:layout_marginTop="4dp" />
 | 
			
		||||
 | 
			
		||||
    <Button
 | 
			
		||||
        android:id="@+id/dial_button"
 | 
			
		||||
        android:layout_width="wrap_content"
 | 
			
		||||
    <cc.winboll.studio.libaes.views.AOHPCTCSeekBar
 | 
			
		||||
        android:layout_width="match_parent"
 | 
			
		||||
        android:layout_height="wrap_content"
 | 
			
		||||
        android:text="Dial"
 | 
			
		||||
        android:layout_marginTop="8dp"/>
 | 
			
		||||
		android:id="@+id/aohpctcseekbar_dial"/>
 | 
			
		||||
    
 | 
			
		||||
</LinearLayout>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -20,12 +20,10 @@
 | 
			
		||||
        android:textSize="14sp"
 | 
			
		||||
        android:layout_marginTop="4dp"/>
 | 
			
		||||
 | 
			
		||||
    <Button
 | 
			
		||||
        android:id="@+id/dial_button"
 | 
			
		||||
        android:layout_width="wrap_content"
 | 
			
		||||
    <cc.winboll.studio.libaes.views.AOHPCTCSeekBar
 | 
			
		||||
        android:layout_width="match_parent"
 | 
			
		||||
        android:layout_height="wrap_content"
 | 
			
		||||
        android:text="Dial"
 | 
			
		||||
        android:layout_marginTop="8dp"/>
 | 
			
		||||
		android:id="@+id/aohpctcseekbar_dial"/>
 | 
			
		||||
 | 
			
		||||
</LinearLayout>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user