diff options
author | Yanuar Harry <ai.the.smarties.physics@gmail.com> | 2015-04-07 18:54:50 +0200 |
---|---|---|
committer | Adnan Begovic <adnan@cyngn.com> | 2015-04-19 23:03:22 +0000 |
commit | 1cd8b6ba713f3ff3b3c74fbfa2e447fb9b9981ac (patch) | |
tree | 76a1e5623db6f437f7dc04bba97c1e7fa62ee952 | |
parent | 04ec9ba373dedc490480ac567079916753c8eff2 (diff) | |
download | android_packages_apps_Dialer-1cd8b6ba713f3ff3b3c74fbfa2e447fb9b9981ac.tar.gz android_packages_apps_Dialer-1cd8b6ba713f3ff3b3c74fbfa2e447fb9b9981ac.tar.bz2 android_packages_apps_Dialer-1cd8b6ba713f3ff3b3c74fbfa2e447fb9b9981ac.zip |
[2/3] Dialer: Smart Dialer
Put on your ear, and this will automatically call current number in message or dialer
Change-Id: I424175181c3c71ae83d9605ce017506340c83ab2
Signed-off-by: linuxxxxx <joey@cyanogenmoditalia.it>
-rw-r--r-- | res/values/cm_strings.xml | 5 | ||||
-rw-r--r-- | res/xml/general_settings.xml | 6 | ||||
-rw-r--r-- | src/com/android/dialer/dialpad/DialpadFragment.java | 35 | ||||
-rw-r--r-- | src/com/android/dialer/settings/GeneralSettingsFragment.java | 1 |
4 files changed, 47 insertions, 0 deletions
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml index 2ef85bb36..0bc212b39 100644 --- a/res/values/cm_strings.xml +++ b/res/values/cm_strings.xml @@ -125,4 +125,9 @@ <string name="start_call_playback">Play recording</string> <string name="stop_call_playback">Stop</string> <string name="call_playback_error_message">Failed to play recording</string> + + <!-- Smart Call --> + <string name="smart_dialer_title">Smart call</string> + <string name="smart_dialer_summary">Automatically call the contact by moving your device to your ear</string> + </resources> diff --git a/res/xml/general_settings.xml b/res/xml/general_settings.xml index 1d70b9ac7..3ac3ec3f7 100644 --- a/res/xml/general_settings.xml +++ b/res/xml/general_settings.xml @@ -107,6 +107,12 @@ android:title="@string/detailed_incall_info_title" android:summary="@string/detailed_incall_info_summary" /> + <SwitchPreference + android:key="button_smart_dialer" + android:title="@string/smart_dialer_title" + android:summary="@string/smart_dialer_summary" + android:defaultValue="false" /> + <PreferenceScreen android:key="button_respond_via_sms_key" android:title="@string/respond_via_sms_setting_title" diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java index 5ebbb4976..680565ac3 100644 --- a/src/com/android/dialer/dialpad/DialpadFragment.java +++ b/src/com/android/dialer/dialpad/DialpadFragment.java @@ -29,6 +29,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.res.Configuration; import android.content.IntentFilter; +import android.content.SharedPreferences; import android.content.res.Resources; import android.database.Cursor; import android.graphics.Bitmap; @@ -37,6 +38,7 @@ import android.media.AudioManager; import android.media.ToneGenerator; import android.net.Uri; import android.os.Bundle; +import android.preference.PreferenceManager; import android.provider.Contacts.People; import android.provider.Contacts.Phones; import android.provider.Contacts.PhonesColumns; @@ -76,6 +78,7 @@ import com.android.contacts.common.CallUtil; import com.android.contacts.common.ContactsUtils; import com.android.contacts.common.GeoUtil; import com.android.contacts.common.MoreContactUtils; +import com.android.contacts.common.util.PickupGestureDetector; import com.android.contacts.common.util.PhoneNumberFormatter; import com.android.contacts.common.util.StopWatch; import com.android.contacts.common.widget.FloatingActionButtonController; @@ -88,6 +91,7 @@ import com.android.dialer.SpeedDialUtils; import com.android.dialer.util.DialerUtils; import com.android.internal.telephony.PhoneConstants; import com.android.dialer.calllog.PhoneAccountUtils; +import com.android.dialer.settings.GeneralSettingsFragment; import com.android.dialer.util.DialerUtils; import com.android.phone.common.CallLogAsync; import com.android.phone.common.HapticFeedback; @@ -109,6 +113,7 @@ public class DialpadFragment extends Fragment View.OnLongClickListener, View.OnKeyListener, AdapterView.OnItemClickListener, TextWatcher, PopupMenu.OnMenuItemClickListener, + PickupGestureDetector.PickupListener, DialpadKeyButton.OnPressedListener { private static final String TAG = DialpadFragment.class.getSimpleName(); @@ -184,6 +189,8 @@ public class DialpadFragment extends Fragment private final Object mToneGeneratorLock = new Object(); private View mSpacer; + private PickupGestureDetector mPickupDetector; + private FloatingActionButtonController mFloatingActionButtonController; /** @@ -282,6 +289,11 @@ public class DialpadFragment extends Fragment return (TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE); } + private boolean isSmartCallEnabled() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); + return prefs.getBoolean(GeneralSettingsFragment.BUTTON_SMART_DIALER_KEY, false); + } + private TelecomManager getTelecomManager() { return (TelecomManager) getActivity().getSystemService(Context.TELECOM_SERVICE); } @@ -355,6 +367,8 @@ public class DialpadFragment extends Fragment mCallStateReceiver = new CallStateReceiver(); ((Context) getActivity()).registerReceiver(mCallStateReceiver, callStateIntentFilter); } + + mPickupDetector = new PickupGestureDetector(getActivity(), this); } @Override @@ -683,6 +697,10 @@ public class DialpadFragment extends Fragment stopWatch.stopAndLog(TAG, 50); + if (!isPhoneInUse() && isSmartCallEnabled()) { + mPickupDetector.enable(); + } + mSmsPackageComponentName = DialerUtils.getSmsComponent(activity); // Populate the overflow menu in onResume instead of onCreate, so that if the SMS activity @@ -708,6 +726,8 @@ public class DialpadFragment extends Fragment mLastNumberDialed = EMPTY_NUMBER; // Since we are going to query again, free stale number. SpecialCharSequenceMgr.cleanup(); + + mPickupDetector.disable(); } @Override @@ -728,6 +748,21 @@ public class DialpadFragment extends Fragment } @Override + public void onPickup() { + if (!isDigitsEmpty()) { + mPickupDetector.disable(); + + final String number = mDigits.getText().toString(); + final DialtactsActivity activity = getActivity() instanceof DialtactsActivity + ? (DialtactsActivity) getActivity() : null; + final Intent intent = CallUtil.getCallIntent(number, + activity != null ? activity.getCallOrigin() : null); + startActivity(intent); + hideAndClearDialpad(false); + } + } + + @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putBoolean(PREF_DIGITS_FILLED_BY_INTENT, mDigitsFilledByIntent); diff --git a/src/com/android/dialer/settings/GeneralSettingsFragment.java b/src/com/android/dialer/settings/GeneralSettingsFragment.java index f839179dd..7bc52d8aa 100644 --- a/src/com/android/dialer/settings/GeneralSettingsFragment.java +++ b/src/com/android/dialer/settings/GeneralSettingsFragment.java @@ -54,6 +54,7 @@ public class GeneralSettingsFragment extends PreferenceFragment private static final String BUTTON_RESPOND_VIA_SMS_KEY = "button_respond_via_sms_key"; private static final String BUTTON_SPEED_DIAL_KEY = "speed_dial_settings"; private static final String BUTTON_T9_SEARCH_INPUT_LOCALE = "button_t9_search_input"; + public static final String BUTTON_SMART_DIALER_KEY = "button_smart_dialer"; private static final int MSG_UPDATE_RINGTONE_SUMMARY = 1; |