summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDvTonder <david.vantonder@gmail.com>2014-01-21 10:29:22 -0500
committerRoman Birg <roman@cyngn.com>2014-11-19 16:39:43 -0800
commitd24f251e8d20ff93a26c36e0a3ed48fc0477cefe (patch)
tree1043e3648b181a7fc2fa3884796e7b8210876c87
parentbf84a18a31ec8e6e930b6690ecf00e2bec423ba5 (diff)
downloadandroid_packages_apps_InCallUI-d24f251e8d20ff93a26c36e0a3ed48fc0477cefe.tar.gz
android_packages_apps_InCallUI-d24f251e8d20ff93a26c36e0a3ed48fc0477cefe.tar.bz2
android_packages_apps_InCallUI-d24f251e8d20ff93a26c36e0a3ed48fc0477cefe.zip
InCallUI: Port "Add to blacklist" support to in-call ui (1 of 2)
Place into overflow menu for cm-12.0 Change-Id: I3f9777c112a4d25499b474762f83d187782c6ca0
-rw-r--r--res/layout/call_button_fragment.xml2
-rw-r--r--res/menu/incall_more_menu.xml4
-rw-r--r--res/values/cm_strings.xml7
-rw-r--r--src/com/android/incallui/CallButtonFragment.java17
-rw-r--r--src/com/android/incallui/CallButtonPresenter.java28
5 files changed, 48 insertions, 10 deletions
diff --git a/res/layout/call_button_fragment.xml b/res/layout/call_button_fragment.xml
index 44cc3f55..bc63c74c 100644
--- a/res/layout/call_button_fragment.xml
+++ b/res/layout/call_button_fragment.xml
@@ -170,7 +170,7 @@
<ImageButton
android:id="@+id/moreMenuButton"
style="@style/InCallButton"
- android:src="@drawable/ic_menu_overflow_lt"
+ android:background="@drawable/btn_overflow"
android:contentDescription="@string/onscreenMoreMenuText" />
</LinearLayout>
diff --git a/res/menu/incall_more_menu.xml b/res/menu/incall_more_menu.xml
index 37cd1bfc..ac5b10cb 100644
--- a/res/menu/incall_more_menu.xml
+++ b/res/menu/incall_more_menu.xml
@@ -36,4 +36,8 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<item
android:id="@+id/menu_stop_record"
android:title="@string/menu_stop_record" />
+
+ <item
+ android:id="@+id/menu_add_to_blacklist"
+ android:title="@string/add_to_black_list"/>
</menu>
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
index 90cfe0b0..73acd9b8 100644
--- a/res/values/cm_strings.xml
+++ b/res/values/cm_strings.xml
@@ -29,4 +29,11 @@
<!-- In-call screen: status label for a call that is held remotely -->
<string name="card_title_waiting_call">Waiting call</string>
+
+ <!-- Text for the onscreen "Blacklist" button -->
+ <string name="onscreenBlacklistText">Blacklist</string>
+
+ <!-- Blacklist confirmation dialog -->
+ <string name="blacklist_dialog_title">Add to blacklist</string>
+ <string name="blacklist_dialog_message">Future calls from <xliff:g id="number">%s</xliff:g> will be blocked</string>
</resources>
diff --git a/src/com/android/incallui/CallButtonFragment.java b/src/com/android/incallui/CallButtonFragment.java
index b960c71b..c5604b17 100644
--- a/src/com/android/incallui/CallButtonFragment.java
+++ b/src/com/android/incallui/CallButtonFragment.java
@@ -21,9 +21,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.res.Resources;
import android.graphics.drawable.LayerDrawable;
-import android.net.Uri;
import android.os.Bundle;
-import android.os.Message;
import android.telecom.AudioState;
import android.telecom.VideoProfile;
import android.view.ContextThemeWrapper;
@@ -40,6 +38,7 @@ import android.widget.PopupMenu;
import android.widget.Toast;
import android.widget.PopupMenu.OnDismissListener;
import android.widget.PopupMenu.OnMenuItemClickListener;
+import com.android.internal.telephony.util.BlacklistUtils;
import java.util.ArrayList;
@@ -131,11 +130,13 @@ public class CallButtonFragment
mMoreMenuButton = (ImageButton) parent.findViewById(R.id.moreMenuButton);
if (mMoreMenuButton != null) {
boolean canRecordCalls = ((InCallActivity)getActivity()).isCallRecorderEnabled();
- if (canRecordCalls) {
+ boolean blacklistEnabled = BlacklistUtils.isBlacklistEnabled(getActivity());
+ if (canRecordCalls || blacklistEnabled) {
mMoreMenuButton.setOnClickListener(this);
- mMoreMenu = new MorePopupMenu(parent.getContext(), mMoreMenuButton);
-
- mMoreMenu.inflate(R.menu.incall_more_menu);
+ final ContextThemeWrapper contextWrapper = new ContextThemeWrapper(getActivity(),
+ R.style.InCallPopupMenuStyle);
+ mMoreMenu = new MorePopupMenu(contextWrapper, mMoreMenuButton /* anchorView */);
+ mMoreMenu.getMenuInflater().inflate(R.menu.incall_more_menu, mMoreMenu.getMenu());
mMoreMenu.setOnMenuItemClickListener(this);
mMoreMenuButton.setOnTouchListener(mMoreMenu.getDragToOpenListener());
@@ -546,6 +547,10 @@ public class CallButtonFragment
return true;
+ case R.id.menu_add_to_blacklist:
+ getPresenter().blacklistClicked(getActivity());
+ return true;
+
default:
Log.e(this, "onMenuItemClick: unexpected View ID " + item.getItemId()
+ " (MenuItem = '" + item + "')");
diff --git a/src/com/android/incallui/CallButtonPresenter.java b/src/com/android/incallui/CallButtonPresenter.java
index 44523401..69f0e902 100644
--- a/src/com/android/incallui/CallButtonPresenter.java
+++ b/src/com/android/incallui/CallButtonPresenter.java
@@ -29,10 +29,9 @@ import com.android.incallui.InCallPresenter.InCallStateListener;
import com.android.incallui.InCallPresenter.IncomingCallListener;
import com.android.incallui.InCallPresenter.InCallDetailsListener;
-import java.util.ArrayList;
-
+import android.content.DialogInterface;
import android.telephony.PhoneNumberUtils;
-import android.widget.Toast;
+import com.android.internal.telephony.util.BlacklistUtils;
import java.util.Objects;
@@ -246,6 +245,29 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
videoCall.sendSessionModifyRequest(videoProfile);
}
+ public void blacklistClicked(final Context context) {
+ if (mCall == null) {
+ return;
+ }
+
+ final String number = mCall.getNumber();
+ final String message = context.getString(R.string.blacklist_dialog_message, number);
+
+ new AlertDialog.Builder(context)
+ .setTitle(R.string.blacklist_dialog_title)
+ .setMessage(message)
+ .setPositiveButton(R.string.pause_prompt_yes, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ Log.d(this, "hanging up due to blacklist: " + mCall.getId());
+ TelecomAdapter.getInstance().disconnectCall(mCall.getId());
+ BlacklistUtils.addOrUpdate(context, mCall.getNumber(), BlacklistUtils.BLOCK_CALLS, BlacklistUtils.BLOCK_CALLS);
+ }
+ })
+ .setNegativeButton(R.string.pause_prompt_no, null)
+ .show();
+ }
+
public void showDialpadClicked(boolean checked) {
Log.v(this, "Show dialpad " + String.valueOf(checked));
getUi().displayDialpad(checked /* show */, true /* animate */);