基本拨号功能完成

This commit is contained in:
ZhanGSKen 2025-02-26 19:07:55 +08:00
parent ecb56df773
commit 38884d3457
4 changed files with 115 additions and 60 deletions

View File

@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Wed Feb 26 10:15:51 GMT 2025 #Wed Feb 26 11:03:02 GMT 2025
stageCount=4 stageCount=4
libraryProject= libraryProject=
baseVersion=1.0 baseVersion=1.0
publishVersion=1.0.3 publishVersion=1.0.3
buildCount=54 buildCount=60
baseBetaVersion=1.0.4 baseBetaVersion=1.0.4

View File

@ -11,7 +11,6 @@ import android.os.Bundle;
import android.telecom.TelecomManager; import android.telecom.TelecomManager;
import android.telephony.PhoneStateListener; import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
@ -22,11 +21,16 @@ import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat; import androidx.core.app.ActivityCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import cc.winboll.studio.contacts.R; import cc.winboll.studio.contacts.R;
import cc.winboll.studio.contacts.activities.SettingsActivity; import cc.winboll.studio.contacts.activities.SettingsActivity;
import cc.winboll.studio.contacts.adapters.MyPagerAdapter;
import cc.winboll.studio.contacts.beans.MainServiceBean; import cc.winboll.studio.contacts.beans.MainServiceBean;
import cc.winboll.studio.contacts.fragments.CallLogFragment;
import cc.winboll.studio.contacts.fragments.ContactsFragment;
import cc.winboll.studio.contacts.fragments.LogFragment;
import cc.winboll.studio.contacts.services.MainService; import cc.winboll.studio.contacts.services.MainService;
import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.LogView; import cc.winboll.studio.libappbase.LogView;
@ -52,7 +56,8 @@ final public class MainActivity extends AppCompatActivity implements IWinBollAct
Toolbar mToolbar; Toolbar mToolbar;
CheckBox cbMainService; CheckBox cbMainService;
MainServiceBean mMainServiceBean; MainServiceBean mMainServiceBean;
ViewPager viewPager; private TabLayout tabLayout;
private ViewPager viewPager;
private List<View> views; //用来存放放进ViewPager里面的布局 private List<View> views; //用来存放放进ViewPager里面的布局
//实例化存储imageView导航原点的集合 //实例化存储imageView导航原点的集合
ImageView[] imageViews; ImageView[] imageViews;
@ -108,17 +113,39 @@ final public class MainActivity extends AppCompatActivity implements IWinBollAct
} }
getSupportActionBar().setSubtitle(getTag()); getSupportActionBar().setSubtitle(getTag());
initData(); tabLayout = findViewById(R.id.tabLayout);
initView(); viewPager = findViewById(R.id.viewPager);
//initPoint();//调用初始化导航原点的方法
viewPager.addOnPageChangeListener(this);//滑动事件
ViewPager viewPager = findViewById(R.id.activitymainViewPager1); // 创建Fragment列表和标题列表
MyPagerAdapter pagerAdapter = new MyPagerAdapter(getSupportFragmentManager()); List<Fragment> fragmentList = new ArrayList<>();
viewPager.setAdapter(pagerAdapter); List<String> tabTitleList = new ArrayList<>();
TabLayout tabLayout = findViewById(R.id.activitymainTabLayout1); fragmentList.add(CallLogFragment.newInstance(0));
fragmentList.add(ContactsFragment.newInstance(1));
fragmentList.add(LogFragment.newInstance(2));
tabTitleList.add("通话记录");
tabTitleList.add("联系人");
tabTitleList.add("应用日志");
// 设置ViewPager的适配器
MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager(), fragmentList, tabTitleList);
viewPager.setAdapter(adapter);
// 关联TabLayout和ViewPager
tabLayout.setupWithViewPager(viewPager); tabLayout.setupWithViewPager(viewPager);
// initData();
// initView();
// //initPoint();//调用初始化导航原点的方法
// viewPager.addOnPageChangeListener(this);//滑动事件
//ViewPager viewPager = findViewById(R.id.activitymainViewPager1);
//MyPagerAdapter pagerAdapter = new MyPagerAdapter(getSupportFragmentManager());
//viewPager.setAdapter(pagerAdapter);
//TabLayout tabLayout = findViewById(R.id.activitymainTabLayout1);
//tabLayout.setupWithViewPager(viewPager);
// mMainServiceBean = MainServiceBean.loadBean(this, MainServiceBean.class); // mMainServiceBean = MainServiceBean.loadBean(this, MainServiceBean.class);
// if (mMainServiceBean == null) { // if (mMainServiceBean == null) {
// mMainServiceBean = new MainServiceBean(); // mMainServiceBean = new MainServiceBean();
@ -151,6 +178,35 @@ final public class MainActivity extends AppCompatActivity implements IWinBollAct
telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE); telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
} }
// ViewPager的适配器
private class MyPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList;
private List<String> tabTitleList;
public MyPagerAdapter(FragmentManager fm, List<Fragment> fragmentList, List<String> tabTitleList) {
super(fm);
this.fragmentList = fragmentList;
this.tabTitleList = tabTitleList;
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return tabTitleList.get(position);
}
}
public static void dialPhoneNumber(String phoneNumber) { public static void dialPhoneNumber(String phoneNumber) {
Intent intent = new Intent(Intent.ACTION_DIAL); Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(android.net.Uri.parse("tel:" + phoneNumber)); intent.setData(android.net.Uri.parse("tel:" + phoneNumber));
@ -161,32 +217,31 @@ final public class MainActivity extends AppCompatActivity implements IWinBollAct
} }
//初始化view即显示的图片 //初始化view即显示的图片
void initView() { // void initView() {
viewPager = findViewById(R.id.activitymainViewPager1);
pagerAdapter = new MyPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(pagerAdapter);
//adapter = new MyPagerAdapter(views);
// viewPager = findViewById(R.id.activitymainViewPager1); // viewPager = findViewById(R.id.activitymainViewPager1);
//viewPager.setAdapter(adapter); // pagerAdapter = new MyPagerAdapter(getSupportFragmentManager());
//linearLayout = findViewById(R.id.activitymainLinearLayout1); // viewPager.setAdapter(pagerAdapter);
//initPoint();//初始化页面下方的点 // //adapter = new MyPagerAdapter(views);
viewPager.setOnPageChangeListener(this); // //viewPager = findViewById(R.id.activitymainViewPager1);
// //viewPager.setAdapter(adapter);
} // //linearLayout = findViewById(R.id.activitymainLinearLayout1);
// //initPoint();//初始化页面下方的点
// viewPager.setOnPageChangeListener(this);
//
// }
//初始化所要显示的布局 //初始化所要显示的布局
void initData() { // void initData() {
ViewPager viewPager = findViewById(R.id.activitymainViewPager1); // LayoutInflater inflater = LayoutInflater.from(getActivity());
LayoutInflater inflater = LayoutInflater.from(getActivity()); // View view1 = inflater.inflate(R.layout.fragment_call_log, viewPager, false);
View view1 = inflater.inflate(R.layout.fragment_call_log, viewPager, false); // View view2 = inflater.inflate(R.layout.fragment_contacts, viewPager, false);
View view2 = inflater.inflate(R.layout.fragment_contacts, viewPager, false); // View view3 = inflater.inflate(R.layout.fragment_log, viewPager, false);
View view3 = inflater.inflate(R.layout.fragment_log, viewPager, false); //
// views = new ArrayList<>();
views = new ArrayList<>(); // views.add(view1);
views.add(view1); // views.add(view2);
views.add(view2); // views.add(view3);
views.add(view3); // }
}
// void initPoint() { // void initPoint() {
// imageViews = new ImageView[5];//实例化5个图片 // imageViews = new ImageView[5];//实例化5个图片
@ -336,25 +391,25 @@ final public class MainActivity extends AppCompatActivity implements IWinBollAct
return false; return false;
} }
@Override // @Override
public void onBackPressed() { // public void onBackPressed() {
exit(); // exit();
} // }
//
void exit() { // void exit() {
YesNoAlertDialog.OnDialogResultListener listener = new YesNoAlertDialog.OnDialogResultListener(){ // YesNoAlertDialog.OnDialogResultListener listener = new YesNoAlertDialog.OnDialogResultListener(){
//
@Override // @Override
public void onYes() { // public void onYes() {
WinBollActivityManager.getInstance(getApplicationContext()).finishAll(); // WinBollActivityManager.getInstance(getApplicationContext()).finishAll();
} // }
//
@Override // @Override
public void onNo() { // public void onNo() {
} // }
}; // };
YesNoAlertDialog.show(this, "[ " + getString(R.string.app_name) + " ]", "Exit(Yes/No).\nIs close all activity?", listener); // YesNoAlertDialog.show(this, "[ " + getString(R.string.app_name) + " ]", "Exit(Yes/No).\nIs close all activity?", listener);
} // }
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {

View File

@ -13,12 +13,12 @@ import cc.winboll.studio.contacts.fragments.CallLogFragment;
import cc.winboll.studio.contacts.fragments.ContactsFragment; import cc.winboll.studio.contacts.fragments.ContactsFragment;
import cc.winboll.studio.contacts.fragments.LogFragment; import cc.winboll.studio.contacts.fragments.LogFragment;
public class MyPagerAdapter extends FragmentPagerAdapter { public class MyPagerAdapter2 extends FragmentPagerAdapter {
public static final String TAG = "MyPagerAdapter"; public static final String TAG = "MyPagerAdapter";
private static final int PAGE_COUNT = 3; private static final int PAGE_COUNT = 3;
public MyPagerAdapter(@NonNull FragmentManager fm) { public MyPagerAdapter2(@NonNull FragmentManager fm) {
super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT); super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
} }

View File

@ -16,12 +16,12 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1.0" android:layout_weight="1.0"
android:id="@+id/activitymainViewPager1"/> android:id="@+id/viewPager"/>
<com.google.android.material.tabs.TabLayout <com.google.android.material.tabs.TabLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="60dp" android:layout_height="60dp"
android:id="@+id/activitymainTabLayout1"/> android:id="@+id/tabLayout"/>
</LinearLayout> </LinearLayout>