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 | |
| parent | bf84a18a31ec8e6e930b6690ecf00e2bec423ba5 (diff) | |
| download | android_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.xml | 2 | ||||
| -rw-r--r-- | res/menu/incall_more_menu.xml | 4 | ||||
| -rw-r--r-- | res/values/cm_strings.xml | 7 | ||||
| -rw-r--r-- | src/com/android/incallui/CallButtonFragment.java | 17 | ||||
| -rw-r--r-- | src/com/android/incallui/CallButtonPresenter.java | 28 |
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 */); |
