summaryrefslogtreecommitdiffstats
path: root/src
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 /src
parentbf84a18a31ec8e6e930b6690ecf00e2bec423ba5 (diff)
downloadpackages_apps_InCallUI-d24f251e8d20ff93a26c36e0a3ed48fc0477cefe.tar.gz
packages_apps_InCallUI-d24f251e8d20ff93a26c36e0a3ed48fc0477cefe.tar.bz2
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
Diffstat (limited to 'src')
-rw-r--r--src/com/android/incallui/CallButtonFragment.java17
-rw-r--r--src/com/android/incallui/CallButtonPresenter.java28
2 files changed, 36 insertions, 9 deletions
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 */);