1、按下数字物理按键(1~#)跳转拨号 DialpadFragment 并显示数字
packages/apps/Launcher3/src/com/android/launcher3/Launcher.java
@@ -401,7 +401,8 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, } // For handling default keys - setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); + // setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); + setDefaultKeyMode(DEFAULT_KEYS_DIALER); setContentView(mLauncherView); getRootView().dispatchInsets();
2、DialpadFragment 界面左半部默认增加通话记录、通讯录菜单
packages/apps/Dialer/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
private List<Integer> getActions() { /**UISOC: modify for the bug 1104601 & 1113540 @{*/ boolean isDialableNumber = false; if (query != null) { isDialableNumber = PhoneNumberUtils.isGlobalPhoneNumber(query.replace(" ", "")); } /*@}*/ boolean nonDialableQueryInRegularSearch = isRegularSearch() && !isDialableNumber; if (TextUtils.isEmpty(query) || query.length() == 1 || nonDialableQueryInRegularSearch) { //cczheng add for callog contact List<Integer> emptyActions = new ArrayList<>(); emptyActions.clear(); emptyActions.add(Action.MAKE_VOICE_CALL);//callog emptyActions.add(Action.SEND_SMS);//contact return emptyActions;//end // return Collections.emptyList(); } List<Integer> actions = new ArrayList<>(); if (!isRegularSearch()) { actions.add(Action.CREATE_NEW_CONTACT); actions.add(Action.ADD_TO_CONTACT); } if (CallUtil.isVideoEnabled(getContext())) { actions.add(Action.MAKE_VILTE_CALL); } // if (isRegularSearch() && isDialableNumber) { actions.add(Action.MAKE_VOICE_CALL); // } actions.add(Action.SEND_SMS); /*if (CallUtil.isVideoEnabled(getContext())) { actions.add(Action.MAKE_VILTE_CALL); }*/ return actions; }
packages/apps/Dialer/java/com/android/dialer/searchfragment/list/SearchActionViewHolder.java
void setAction(@Action int action, int position, String query) { //cczheng change case Action.SEND_SMS://contact // actionText.setText(R.string.search_shortcut_send_sms_message); // actionImage.setImageResource(R.drawable.quantum_ic_message_vd_theme_24); actionText.setText(R.string.tab_all_contacts); actionImage.setImageResource(R.drawable.quantum_ic_people_vd_theme_24); break; case Action.MAKE_VOICE_CALL://callhistory // actionText.setText(context.getString(R.string.search_shortcut_make_voice_call, query)); // actionImage.setImageResource(R.drawable.quantum_ic_phone_vd_theme_24); actionText.setText(R.string.tab_history); actionImage.setImageResource(R.drawable.quantum_ic_history_vd_theme_24); break; public void onClick(View v) { case Action.SEND_SMS: /*intent = IntentUtil.getSendSmsIntent(query); DialerUtils.startActivityWithErrorToast(context, intent);*/ intent = IntentUtil.getContactPeopleIntent(); DialerUtils.startActivityWithErrorToast(context, intent); break; case Action.MAKE_VOICE_CALL: // listener.placeVoiceCall(query, position); intent = IntentUtil.getCallHistoryIntent(); DialerUtils.startActivityWithErrorToast(context, intent); break;
packages/apps/Dialer/java/com/android/dialer/util/IntentUtil.java
//cczheng add public static Intent getCallHistoryIntent() { Intent intent = new Intent(); intent.setComponent(new ComponentName("com.android.dialer", "com.android.dialer.app.calllog.CallLogActivity")); return intent; } public static Intent getContactPeopleIntent() { Intent intent = new Intent(); intent.setComponent(new ComponentName("com.android.contacts", "com.android.contacts.activities.PeopleActivity")); return intent; }//end
3、拨号主界面去除底部 NavTabBar 并且默认选中 CALL_LOG 通话记录 Fragment 页面
packages/apps/Dialer/java/com/android/dialer/main/impl/OldMainActivityPeer.java
int getLastTab() { @TabIndex int tabIndex = TabIndex.SPEED_DIAL; tabIndex = StorageComponent.get(context) .unencryptedSharedPrefs() .getInt(KEY_LAST_TAB, TabIndex.SPEED_DIAL); // If the voicemail tab cannot be shown, default to showing speed dial if (tabIndex == TabIndex.VOICEMAIL && !canShowVoicemailTab) { // tabIndex = TabIndex.SPEED_DIAL; tabIndex = TabIndex.CALL_LOG;//cczheng change default } return tabIndex; }
packages/apps/Dialer/java/com/android/dialer/main/impl/bottomnav/BottomNavBar.java
public void showVoicemail(boolean showTab) { LogUtil.i("OldMainActivityPeer.showVoicemail", "showing Tab:%b", showTab); int voicemailpreviousVisibility = voicemail.getVisibility(); voicemail.setVisibility(showTab ? View.VISIBLE : View.GONE); //cczheng add hide buttom navbar speedDial.setVisibility(View.GONE); callLog.setVisibility(View.GONE); contacts.setVisibility(View.GONE); //end int voicemailcurrentVisibility = voicemail.getVisibility(); if (voicemailpreviousVisibility != voicemailcurrentVisibility && voicemailpreviousVisibility == View.VISIBLE && getSelectedTab() == TabIndex.VOICEMAIL) { LogUtil.i("OldMainActivityPeer.showVoicemail", "hid VM tab and moved to speed dial tab"); selectTab(TabIndex.SPEED_DIAL); } }
3、拨号主界面右上角菜单增加通话记录和快速拨号
packages/apps/Dialer/java/com/android/dialer/main/impl/toolbar/res/menu/main_menu.xml
<!-- UNISOC:modify for 1100488 @{ --> <item android:id="@+id/menu_call_history" android:title="@string/action_menu_call_history_description" app:showAsAction="collapseActionView"/> <item android:id="@+id/menu_speed_dial" android:title="@string/tab_title_speed_dial" app:showAsAction="collapseActionView"/>
packages/apps/Dialer/java/com/android/dialer/main/impl/MainSearchController.java
public boolean onMenuItemClicked(MenuItem menuItem) { if (menuItem.getItemId() == R.id.settings) { activity.startActivity(new Intent(activity, DialerSettingsActivity.class)); Logger.get(activity).logScreenView(ScreenEvent.Type.SETTINGS, activity); return true; } else if (menuItem.getItemId() == R.id.clear_frequents) { ClearFrequentsDialog.show(activity.getFragmentManager()); Logger.get(activity).logScreenView(ScreenEvent.Type.CLEAR_FREQUENTS, activity); return true; } else if (menuItem.getItemId() == R.id.menu_call_history) { /* final Intent intent = new Intent(activity, CallLogActivity.class); activity.startActivity(intent);*/ //cczheng change start bottomNav.selectTab(TabIndex.CALL_LOG); /* UNISOC: Add for bug1072695. @{ */ } else if (menuItem.getItemId() == R.id.menu_speed_dial) { bottomNav.selectTab(TabIndex.SPEED_DIAL);//end }
4、通话界面二次拨号数字键盘菜单错位问题
packages/apps/Dialer/java/com/android/incallui/incall/impl/res/layout/frag_incall_voice.xml
<com.android.incallui.incall.impl.InCallPaginator android:id="@+id/incall_paginator" android:layout_width="@dimen/paginator_width" android:layout_height="@dimen/paginator_height" android:layout_above="@+id/incall_end_call" android:layout_centerHorizontal="true" android:visibility="gone"/> <!--cczheng remove this for incallui DialpadFragment DialpadView smaller bug style="@style/DialpadContainer" android:layout_width="match_parent" android:layout_height="wrap_content" --> <FrameLayout android:id="@+id/incall_dialpad_container" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentBottom="true" android:clipChildren="false" android:clipToPadding="false" tools:background="@android:color/white" tools:visibility="gone"/>