summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYanuar Harry <ai.the.smarties.physics@gmail.com>2015-04-07 18:54:50 +0200
committerAdnan Begovic <adnan@cyngn.com>2015-04-19 23:03:22 +0000
commit1cd8b6ba713f3ff3b3c74fbfa2e447fb9b9981ac (patch)
tree76a1e5623db6f437f7dc04bba97c1e7fa62ee952
parent04ec9ba373dedc490480ac567079916753c8eff2 (diff)
downloadandroid_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.xml5
-rw-r--r--res/xml/general_settings.xml6
-rw-r--r--src/com/android/dialer/dialpad/DialpadFragment.java35
-rw-r--r--src/com/android/dialer/settings/GeneralSettingsFragment.java1
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;