summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/app/calllog/CallLogActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/app/calllog/CallLogActivity.java')
-rw-r--r--java/com/android/dialer/app/calllog/CallLogActivity.java55
1 files changed, 44 insertions, 11 deletions
diff --git a/java/com/android/dialer/app/calllog/CallLogActivity.java b/java/com/android/dialer/app/calllog/CallLogActivity.java
index 443171d3f..1bb894c59 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,9 +32,14 @@ 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.calldetails.CallDetailsActivity;
+import com.android.dialer.constants.ActivityRequestCodes;
import com.android.dialer.database.CallLogQueryHandler;
import com.android.dialer.logging.Logger;
import com.android.dialer.logging.ScreenEvent;
+import com.android.dialer.logging.UiAction;
+import com.android.dialer.performancereport.PerformanceReport;
+import com.android.dialer.postcall.PostCall;
import com.android.dialer.util.TransactionSafeActivity;
import com.android.dialer.util.ViewUtil;
@@ -48,7 +54,6 @@ public class CallLogActivity extends TransactionSafeActivity
private ViewPagerTabs mViewPagerTabs;
private ViewPagerAdapter mViewPagerAdapter;
private CallLogFragment mAllCallsFragment;
- private CallLogFragment mMissedCallsFragment;
private String[] mTabTitles;
private boolean mIsResumed;
@@ -93,9 +98,16 @@ public class CallLogActivity extends TransactionSafeActivity
@Override
protected void onResume() {
+ // Some calls may not be recorded (eg. from quick contact),
+ // so we should restart recording after these calls. (Recorded call is stopped)
+ PostCall.restartPerformanceRecordingIfARecentCallExist(this);
+ if (!PerformanceReport.isRecording()) {
+ PerformanceReport.startRecording();
+ }
+
mIsResumed = true;
super.onResume();
- sendScreenViewForChildFragment(mViewPager.getCurrentItem());
+ sendScreenViewForChildFragment();
}
@Override
@@ -129,6 +141,7 @@ public class CallLogActivity extends TransactionSafeActivity
}
if (item.getItemId() == android.R.id.home) {
+ PerformanceReport.recordClick(UiAction.Type.CLOSE_CALL_HISTORY_WITH_CANCEL_BUTTON);
final Intent intent = new Intent(this, DialtactsActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
@@ -148,7 +161,7 @@ public class CallLogActivity extends TransactionSafeActivity
@Override
public void onPageSelected(int position) {
if (mIsResumed) {
- sendScreenViewForChildFragment(position);
+ sendScreenViewForChildFragment();
}
mViewPagerTabs.onPageSelected(position);
}
@@ -158,7 +171,7 @@ public class CallLogActivity extends TransactionSafeActivity
mViewPagerTabs.onPageScrollStateChanged(state);
}
- private void sendScreenViewForChildFragment(int position) {
+ private void sendScreenViewForChildFragment() {
Logger.get(this).logScreenView(ScreenEvent.Type.CALL_LOG_FILTER, this);
}
@@ -169,6 +182,12 @@ public class CallLogActivity extends TransactionSafeActivity
return position;
}
+ @Override
+ public void onBackPressed() {
+ PerformanceReport.recordClick(UiAction.Type.PRESS_ANDROID_BACK_BUTTON);
+ super.onBackPressed();
+ }
+
/** Adapter for the view pager. */
public class ViewPagerAdapter extends FragmentPagerAdapter {
@@ -189,20 +208,16 @@ public class CallLogActivity extends TransactionSafeActivity
CallLogQueryHandler.CALL_TYPE_ALL, true /* isCallLogActivity */);
case TAB_INDEX_MISSED:
return new CallLogFragment(Calls.MISSED_TYPE, true /* isCallLogActivity */);
+ default:
+ throw new IllegalStateException("No fragment at position " + position);
}
- throw new IllegalStateException("No fragment at position " + position);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
final CallLogFragment fragment = (CallLogFragment) super.instantiateItem(container, position);
- switch (position) {
- case TAB_INDEX_ALL:
+ if (position == TAB_INDEX_ALL) {
mAllCallsFragment = fragment;
- break;
- case TAB_INDEX_MISSED:
- mMissedCallsFragment = fragment;
- break;
}
return fragment;
}
@@ -217,4 +232,22 @@ public class CallLogActivity extends TransactionSafeActivity
return TAB_INDEX_COUNT;
}
}
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (requestCode == ActivityRequestCodes.DIALTACTS_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);
+ }
}