diff options
author | DvTonder <david.vantonder@gmail.com> | 2014-01-21 10:29:22 -0500 |
---|---|---|
committer | Roman Birg <roman@cyngn.com> | 2014-11-19 16:39:43 -0800 |
commit | d24f251e8d20ff93a26c36e0a3ed48fc0477cefe (patch) | |
tree | 1043e3648b181a7fc2fa3884796e7b8210876c87 /src | |
parent | bf84a18a31ec8e6e930b6690ecf00e2bec423ba5 (diff) | |
download | packages_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.java | 17 | ||||
-rw-r--r-- | src/com/android/incallui/CallButtonPresenter.java | 28 |
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 */); |