summaryrefslogtreecommitdiffstats
path: root/java/com/android/dialer/app/calllog
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-06-25 07:44:04 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-06-25 07:44:04 +0000
commitda774c0c1b5d2a2d17da5e42817e53d696b58290 (patch)
tree742285fa641f62ba0b358a65a452f4f65db04ce2 /java/com/android/dialer/app/calllog
parenta921616b689687d978d9ef0fff42ead24dd7833a (diff)
parent842a9777de13bebb1c82f9d57222c52f9ddec558 (diff)
downloadandroid_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')
-rw-r--r--java/com/android/dialer/app/calllog/CallLogActivity.java35
-rw-r--r--java/com/android/dialer/app/calllog/CallLogAdapter.java11
-rw-r--r--java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java3
-rw-r--r--java/com/android/dialer/app/calllog/CallLogFragment.java7
-rw-r--r--java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java11
-rw-r--r--java/com/android/dialer/app/calllog/ClearCallLogDialog.java12
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();
+ }
}