diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-06-25 07:44:04 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-06-25 07:44:04 +0000 |
commit | da774c0c1b5d2a2d17da5e42817e53d696b58290 (patch) | |
tree | 742285fa641f62ba0b358a65a452f4f65db04ce2 /java/com/android/dialer/app/calllog | |
parent | a921616b689687d978d9ef0fff42ead24dd7833a (diff) | |
parent | 842a9777de13bebb1c82f9d57222c52f9ddec558 (diff) | |
download | android_packages_apps_Dialer-da774c0c1b5d2a2d17da5e42817e53d696b58290.tar.gz android_packages_apps_Dialer-da774c0c1b5d2a2d17da5e42817e53d696b58290.tar.bz2 android_packages_apps_Dialer-da774c0c1b5d2a2d17da5e42817e53d696b58290.zip |
release-request-c5216b17-dc50-4b24-831c-dc696ed657cc-for-git_oc-dr1-release-4133426 snap-temp-L83500000077479774
Change-Id: I93724a7de0e31ffd41bd0b565f4f7ca915253a7d
Diffstat (limited to 'java/com/android/dialer/app/calllog')
6 files changed, 69 insertions, 10 deletions
diff --git a/java/com/android/dialer/app/calllog/CallLogActivity.java b/java/com/android/dialer/app/calllog/CallLogActivity.java index 6433af9a6..35e05bc39 100644 --- a/java/com/android/dialer/app/calllog/CallLogActivity.java +++ b/java/com/android/dialer/app/calllog/CallLogActivity.java @@ -21,6 +21,7 @@ import android.content.Intent; import android.os.Bundle; import android.provider.CallLog; import android.provider.CallLog.Calls; +import android.support.design.widget.Snackbar; import android.support.v13.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.ActionBar; @@ -31,7 +32,10 @@ import android.view.ViewGroup; import com.android.contacts.common.list.ViewPagerTabs; import com.android.dialer.app.DialtactsActivity; import com.android.dialer.app.R; +import com.android.dialer.app.calllog.ClearCallLogDialog.Listener; +import com.android.dialer.calldetails.CallDetailsActivity; import com.android.dialer.database.CallLogQueryHandler; +import com.android.dialer.enrichedcall.EnrichedCallComponent; import com.android.dialer.logging.Logger; import com.android.dialer.logging.ScreenEvent; import com.android.dialer.logging.UiAction; @@ -42,7 +46,7 @@ import com.android.dialer.util.ViewUtil; /** Activity for viewing call history. */ public class CallLogActivity extends TransactionSafeActivity - implements ViewPager.OnPageChangeListener { + implements ViewPager.OnPageChangeListener, Listener { private static final int TAB_INDEX_ALL = 0; private static final int TAB_INDEX_MISSED = 1; @@ -144,7 +148,7 @@ public class CallLogActivity extends TransactionSafeActivity startActivity(intent); return true; } else if (item.getItemId() == R.id.delete_all) { - ClearCallLogDialog.show(getFragmentManager()); + ClearCallLogDialog.show(getFragmentManager(), this); return true; } return super.onOptionsItemSelected(item); @@ -180,6 +184,15 @@ public class CallLogActivity extends TransactionSafeActivity } @Override + public void callHistoryDeleted() { + if (EnrichedCallComponent.get(this).getEnrichedCallManager().hasStoredData()) { + Snackbar.make( + findViewById(R.id.calllog_frame), getString(R.string.multiple_ec_data_deleted), 5_000) + .show(); + } + } + + @Override public void onBackPressed() { PerformanceReport.recordClick(UiAction.Type.PRESS_ANDROID_BACK_BUTTON); super.onBackPressed(); @@ -229,4 +242,22 @@ public class CallLogActivity extends TransactionSafeActivity return TAB_INDEX_COUNT; } } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == DialtactsActivity.ACTIVITY_REQUEST_CODE_CALL_DETAILS) { + if (resultCode == RESULT_OK + && data != null + && data.getBooleanExtra(CallDetailsActivity.EXTRA_HAS_ENRICHED_CALL_DATA, false)) { + String number = data.getStringExtra(CallDetailsActivity.EXTRA_PHONE_NUMBER); + Snackbar.make(findViewById(R.id.calllog_frame), getString(R.string.ec_data_deleted), 5_000) + .setAction( + R.string.view_conversation, + v -> startActivity(IntentProvider.getSendSmsIntentProvider(number).getIntent(this))) + .setActionTextColor(getResources().getColor(R.color.dialer_snackbar_action_text_color)) + .show(); + } + } + super.onActivityResult(requestCode, resultCode, data); + } } diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java index f1d051a8c..5241d9c80 100644 --- a/java/com/android/dialer/app/calllog/CallLogAdapter.java +++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java @@ -317,6 +317,15 @@ public class CallLogAdapter extends GroupingListAdapter Logger.get(mActivity) .logImpression(DialerImpression.Type.MULTISELECT_SINGLE_PRESS_SELECT_ENTRY); checkMarkCallLogEntry(viewHolder); + // select all check box logic + if (getItemCount() == selectedItems.size()) { + LogUtil.i( + "mExpandCollapseListener.onClick", + "getitem count %d is equal to items select count %d, check select all box", + getItemCount(), + selectedItems.size()); + mMultiSelectRemoveView.tapSelectAll(); + } } return; } @@ -1394,5 +1403,7 @@ public class CallLogAdapter extends GroupingListAdapter void showMultiSelectRemoveView(boolean show); void setSelectAllModeToFalse(); + + void tapSelectAll(); } } diff --git a/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java b/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java index 10866aae2..b1ad0d9a2 100644 --- a/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java +++ b/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java @@ -110,7 +110,8 @@ public class CallLogAsyncTaskUtil { } public static void markCallAsRead(@NonNull final Context context, @NonNull final long[] callIds) { - if (!PermissionsUtil.hasPhonePermissions(context)) { + if (!PermissionsUtil.hasPhonePermissions(context) + || !PermissionsUtil.hasCallLogWritePermissions(context)) { return; } if (sAsyncTaskExecutor == null) { diff --git a/java/com/android/dialer/app/calllog/CallLogFragment.java b/java/com/android/dialer/app/calllog/CallLogFragment.java index b03a4ad64..aa765d90e 100644 --- a/java/com/android/dialer/app/calllog/CallLogFragment.java +++ b/java/com/android/dialer/app/calllog/CallLogFragment.java @@ -664,6 +664,13 @@ public class CallLogFragment extends Fragment } @Override + public void tapSelectAll() { + LogUtil.i("CallLogFragment.tapSelectAll", "imitating select all"); + selectAllMode = true; + updateSelectAllIcon(); + } + + @Override public void onClick(View v) { selectAllMode = !selectAllMode; if (selectAllMode) { diff --git a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java index c59f0dd61..b8b029f7b 100644 --- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java +++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java @@ -877,14 +877,13 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder // We check to see if we are starting a Lightbringer intent. The reason is Lightbringer // intents need to be started using startActivityForResult instead of the usual startActivity String packageName = intent.getPackage(); - if (getLightbringer().getPackageName().equals(packageName)) { + if (packageName != null && packageName.equals(getLightbringer().getPackageName())) { startLightbringerActivity(intent); + } else if (CallDetailsActivity.isLaunchIntent(intent)) { + PerformanceReport.recordClick(UiAction.Type.OPEN_CALL_DETAIL); + ((Activity) mContext) + .startActivityForResult(intent, DialtactsActivity.ACTIVITY_REQUEST_CODE_CALL_DETAILS); } else { - if (intent.getComponent() != null - && CallDetailsActivity.class.getName().equals(intent.getComponent().getClassName())) { - // We are going to open call detail - PerformanceReport.recordClick(UiAction.Type.OPEN_CALL_DETAIL); - } DialerUtils.startActivityWithErrorToast(mContext, intent); } } diff --git a/java/com/android/dialer/app/calllog/ClearCallLogDialog.java b/java/com/android/dialer/app/calllog/ClearCallLogDialog.java index 155a91618..5c3d4d9fa 100644 --- a/java/com/android/dialer/app/calllog/ClearCallLogDialog.java +++ b/java/com/android/dialer/app/calllog/ClearCallLogDialog.java @@ -29,16 +29,21 @@ import android.content.DialogInterface.OnClickListener; import android.os.AsyncTask; import android.os.Bundle; import android.provider.CallLog.Calls; +import android.support.annotation.NonNull; import com.android.dialer.app.R; +import com.android.dialer.common.Assert; import com.android.dialer.phonenumbercache.CachedNumberLookupService; import com.android.dialer.phonenumbercache.PhoneNumberCache; /** Dialog that clears the call log after confirming with the user */ public class ClearCallLogDialog extends DialogFragment { + private Listener listener; + /** Preferred way to show this dialog */ - public static void show(FragmentManager fragmentManager) { + public static void show(FragmentManager fragmentManager, @NonNull Listener listener) { ClearCallLogDialog dialog = new ClearCallLogDialog(); + dialog.listener = Assert.isNotNull(listener); dialog.show(fragmentManager, "deleteCallLog"); } @@ -76,6 +81,7 @@ public class ClearCallLogDialog extends DialogFragment { return; } + listener.callHistoryDeleted(); if (progressDialog != null && progressDialog.isShowing()) { progressDialog.dismiss(); } @@ -96,4 +102,8 @@ public class ClearCallLogDialog extends DialogFragment { .setCancelable(true) .create(); } + + interface Listener { + void callHistoryDeleted(); + } } |