diff options
author | xmao <xmao@codeaurora.org> | 2015-01-06 14:30:47 +0800 |
---|---|---|
committer | xmao <xmao@codeaurora.org> | 2015-01-31 13:07:19 +0800 |
commit | a0c714b05ea252afb632494a7e1d4c90802a4781 (patch) | |
tree | 4b47a8d10b763d6c58aab354594f026b5729b0a5 | |
parent | 9a6bf8bece29730e067e13240aeb93fae21772ae (diff) | |
download | android_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.mk | 1 | ||||
-rwxr-xr-x | AndroidManifest.xml | 14 | ||||
-rw-r--r-- | res/values-zh-rCN/strings.xml | 5 | ||||
-rw-r--r-- | res/values/strings.xml | 5 | ||||
-rwxr-xr-x | src/com/android/dialer/CallDetailActivity.java | 90 | ||||
-rw-r--r-- | src/com/android/dialer/DialerApplication.java | 2 |
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 |