summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorxmao <xmao@codeaurora.org>2015-01-06 14:30:47 +0800
committerxmao <xmao@codeaurora.org>2015-01-31 13:07:19 +0800
commita0c714b05ea252afb632494a7e1d4c90802a4781 (patch)
tree4b47a8d10b763d6c58aab354594f026b5729b0a5
parent9a6bf8bece29730e067e13240aeb93fae21772ae (diff)
downloadandroid_packages_apps_Dialer-a0c714b05ea252afb632494a7e1d4c90802a4781.tar.gz
android_packages_apps_Dialer-a0c714b05ea252afb632494a7e1d4c90802a4781.tar.bz2
android_packages_apps_Dialer-a0c714b05ea252afb632494a7e1d4c90802a4781.zip
Dialer:add black and white list menu
- add black and white list menu in CallDetailActivity - add RcsApiManage init in Dialer application CRs-Fixed: 770912 Change-Id: Ib8dfa5baf3ea0e02734030e3cbf91b4242ab42a1
-rw-r--r--Android.mk1
-rwxr-xr-xAndroidManifest.xml14
-rw-r--r--res/values-zh-rCN/strings.xml5
-rw-r--r--res/values/strings.xml5
-rwxr-xr-xsrc/com/android/dialer/CallDetailActivity.java90
-rw-r--r--src/com/android/dialer/DialerApplication.java2
6 files changed, 99 insertions, 18 deletions
diff --git a/Android.mk b/Android.mk
index 1f9c4deb4..94f891b7d 100644
--- a/Android.mk
+++ b/Android.mk
@@ -28,6 +28,7 @@ LOCAL_AAPT_FLAGS := \
--extra-packages com.android.phone.common
LOCAL_JAVA_LIBRARIES := telephony-common
+LOCAL_JAVA_LIBRARIES += rcs_service_api
LOCAL_STATIC_JAVA_LIBRARIES := \
com.android.services.telephony.common \
com.android.vcard \
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index aac72ba6c..ce97ab5f0 100755
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -57,6 +57,18 @@
<uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="com.qualcomm.permission.USE_PHONE_SERVICE" />
+ <uses-permission android:name="com.android.firewall.READ_GRAVITY"/>
+ <uses-permission android:name="com.android.firewall.WRITE_GRAVITY"/>
+ <uses-permission android:name="android.permission.READ_SMS"/>
+ <uses-permission android:name="android.permission.WRITE_SMS"/>
+ <!-- RCS -->
+ <uses-permission android:name="android.permission.INTERNET" />
+ <!-- wifi -->
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+ <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
+ <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:name="DialerApplication"
@@ -70,7 +82,7 @@
android:value="AEdPqrEAAAAIBXgtCEKQ6W0PXVnW-ZVia2KmlV2AxsTw3GjAeQ" />
<uses-library android:name="com.qualcomm.qti.smartsearch" />
-
+ <uses-library android:name="com.suntek.mway.rcs.client.api" android:required="false" />
<!-- The entrance point for Phone UI.
stateAlwaysHidden is set to suppress keyboard show up on
dialpad screen. -->
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 5c2e3fe25..96a2200e7 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -221,4 +221,9 @@
<string name="add_to_black_list">加入黑名单</string>
<string name="video_call">视频电话</string>
<string name="menu_add_to_4g_conference_call">加入4G电话会议</string>
+ <string name="firewall_number_len_not_valid">号码错误</string>
+ <string name="firewall_number_in_black">"该号码已在黑名单中"</string>
+ <string name="firewall_number_in_white">"该号码已在白名单中"</string>
+ <string name="firewall_save_success">保存成功</string>
+ <string name="firewall_add_blacklist_wring">如果将该号码加入黑名单,你将不会再收到该号码的消息和来电</string>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index d7f123908..875c2d96d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -841,5 +841,10 @@
<string name="add_to_white_list">Add to white list</string>
<string name="add_to_black_list">Add to black list</string>
<string name="dialog_title">Tip</string>
+ <string name="firewall_number_len_not_valid">Number is wrong</string>
+ <string name="firewall_number_in_black">"Number already in blacklist"</string>
+ <string name="firewall_number_in_white">"Number already in whitelist"</string>
+ <string name="firewall_save_success">Saved successfully</string>
+ <string name="firewall_add_blacklist_wring">if you add this number to blacklsit, you will not receive the messages and calls from it</string>
</resources>
diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java
index a12df4011..6e6fc735f 100755
--- a/src/com/android/dialer/CallDetailActivity.java
+++ b/src/com/android/dialer/CallDetailActivity.java
@@ -51,6 +51,10 @@ import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.DialogInterface.OnClickListener;
+import android.content.DialogInterface;
import com.android.contacts.common.CallUtil;
import com.android.contacts.common.GeoUtil;
@@ -87,6 +91,11 @@ public class CallDetailActivity extends AnalyticsActivity implements ProximitySe
private static final int LOADER_ID = 0;
private static final String BUNDLE_CONTACT_URI_EXTRA = "contact_uri_extra";
+ //add firewall menu
+ private static final Uri WHITELIST_CONTENT_URI = Uri
+ .parse("content://com.android.firewall/whitelistitems");
+ private static final Uri BLACKLIST_CONTENT_URI = Uri
+ .parse("content://com.android.firewall/blacklistitems");
/** The time to wait before enabling the blank the screen due to the proximity sensor. */
private static final long PROXIMITY_BLANK_DELAY_MILLIS = 100;
/** The time to wait before disabling the blank the screen due to the proximity sensor. */
@@ -642,26 +651,73 @@ public class CallDetailActivity extends AnalyticsActivity implements ProximitySe
public void onMenuAddToBlackList(MenuItem menuItem) {
Bundle blackBundle = new Bundle();
- blackBundle.putString(NUMBER_KEY, mNumber);
- blackBundle.putString(MODE_KEY, "blacklist");
-
- Intent blackIntent = new Intent();
- blackIntent.setClassName(FIREWALL_APK_NAME, FIREWALL_BLACK_WHITE_LIST);
- blackIntent.setAction(Intent.ACTION_INSERT);
- blackIntent.putExtras(blackBundle);
- startActivity(blackIntent);
+ new AlertDialog.Builder(this)
+ .setMessage(getString(R.string.firewall_add_blacklist_wring))
+ .setPositiveButton(android.R.string.ok, new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ if(addNumberToFirewall(true , mNumber)){
+ Toast.makeText(CallDetailActivity.this,
+ getString(R.string.firewall_save_success),
+ Toast.LENGTH_SHORT).show();
+ }
+ }
+ })
+ .setNegativeButton(android.R.string.cancel, null)
+ .create().show();
+
}
public void onMenuAddToWhiteList(MenuItem menuItem) {
- Bundle whiteBundle = new Bundle();
- whiteBundle.putString(NUMBER_KEY, mNumber);
- whiteBundle.putString(MODE_KEY, "whitelist");
-
- Intent whiteIntent = new Intent();
- whiteIntent.setClassName(FIREWALL_APK_NAME, FIREWALL_BLACK_WHITE_LIST);
- whiteIntent.setAction(Intent.ACTION_INSERT);
- whiteIntent.putExtras(whiteBundle);
- startActivity(whiteIntent);
+ if(addNumberToFirewall(false , mNumber)){
+ Toast.makeText(CallDetailActivity.this,
+ getString(R.string.firewall_save_success),
+ Toast.LENGTH_SHORT).show();
+ }
+
+ }
+
+ private boolean addNumberToFirewall(boolean isBlacklist,String number){
+ Log.d(TAG, "number: " + number);
+ if (TextUtils.isEmpty(number)) {
+ Toast.makeText(CallDetailActivity.this,
+ getString(R.string.firewall_number_len_not_valid),
+ Toast.LENGTH_SHORT).show();
+ return false;
+ }
+ boolean ret = true;
+ ContentValues values = new ContentValues();
+ String queryNumber = number.replaceAll("[\\-\\/ ]", "");
+ int len = queryNumber.length();
+ if (len > 11){
+ queryNumber = number.substring(len - 11, len);
+ }
+ Uri firewallUri = isBlacklist? BLACKLIST_CONTENT_URI: WHITELIST_CONTENT_URI;
+ Cursor fiewallCursor = getContentResolver().query(firewallUri,
+ new String[] {
+ "_id", "number", "person_id", "name"
+ },
+ "number" + " LIKE '%" + queryNumber + "'",
+ null,
+ null);
+ if (fiewallCursor != null){
+ if (fiewallCursor.getCount() > 0) {
+ fiewallCursor.close();
+ fiewallCursor = null;
+ String Stoast = isBlacklist?getString(R.string.firewall_number_in_black)
+ :getString(R.string.firewall_number_in_white);
+ Toast.makeText(CallDetailActivity.this, Stoast,
+ Toast.LENGTH_SHORT).show();
+ return false;
+ }
+ fiewallCursor.close();
+ fiewallCursor = null;
+ }
+ values.put("number", queryNumber);
+ values.put("name", "");
+ // add new
+ Uri mUri = getContentResolver().insert(firewallUri, values);
+ return ret;
}
public void onMenuRemoveFromCallLog(MenuItem menuItem) {
diff --git a/src/com/android/dialer/DialerApplication.java b/src/com/android/dialer/DialerApplication.java
index e7881441a..683bea2a7 100644
--- a/src/com/android/dialer/DialerApplication.java
+++ b/src/com/android/dialer/DialerApplication.java
@@ -20,6 +20,7 @@ import android.app.Application;
import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.extensions.ExtensionsFactory;
+import com.android.incallui.RcsApiManager;
public class DialerApplication extends Application {
@@ -29,6 +30,7 @@ public class DialerApplication extends Application {
public void onCreate() {
super.onCreate();
ExtensionsFactory.init(getApplicationContext());
+ RcsApiManager.init(getApplicationContext());
}
@Override