summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/main
diff options
context:
space:
mode:
authorwangqi <wangqi@google.com>2018-05-09 16:43:35 -0700
committerCopybara-Service <copybara-piper@google.com>2018-05-11 11:41:42 -0700
commit810d43daa31bf481f09c9ed46ac020d6e7c685d3 (patch)
treeaba0fa666de36284aed5fd2a709e76e0ad32ac07 /java/com/android/dialer/main
parentced93f2d22bffce3b4cfb9c3bfce862b385537dd (diff)
Add RTT after call promo bottomsheet.
Bug: 67596257 Test: unit tests PiperOrigin-RevId: 196049621 Change-Id: I6f9c6292b1d56e3faf7808aa668b03d07230a70b
Diffstat (limited to 'java/com/android/dialer/main')
-rw-r--r--java/com/android/dialer/main/impl/OldMainActivityPeer.java48
-rw-r--r--java/com/android/dialer/main/impl/res/layout/main_activity.xml3
-rw-r--r--java/com/android/dialer/main/impl/res/layout/promotion_bottom_sheet.xml81
3 files changed, 130 insertions, 2 deletions
diff --git a/java/com/android/dialer/main/impl/OldMainActivityPeer.java b/java/com/android/dialer/main/impl/OldMainActivityPeer.java
index e426ed215..39a43718e 100644
--- a/java/com/android/dialer/main/impl/OldMainActivityPeer.java
+++ b/java/com/android/dialer/main/impl/OldMainActivityPeer.java
@@ -36,6 +36,7 @@ import android.provider.ContactsContract.QuickContact;
import android.provider.VoicemailContract;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.design.bottomsheet.BottomSheetBehavior;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.content.ContextCompat;
@@ -46,9 +47,11 @@ import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
+import android.text.method.LinkMovementMethod;
import android.view.DragEvent;
import android.view.View;
import android.widget.ImageView;
+import android.widget.TextView;
import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
import com.android.dialer.animation.AnimUtils;
import com.android.dialer.app.DialtactsActivity;
@@ -104,6 +107,8 @@ import com.android.dialer.metrics.Metrics;
import com.android.dialer.metrics.MetricsComponent;
import com.android.dialer.postcall.PostCall;
import com.android.dialer.precall.PreCall;
+import com.android.dialer.promotion.Promotion;
+import com.android.dialer.promotion.RttPromotion;
import com.android.dialer.searchfragment.list.NewSearchFragment.SearchFragmentListener;
import com.android.dialer.smartdial.util.SmartDialPrefix;
import com.android.dialer.speeddial.SpeedDialFragment;
@@ -196,6 +201,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
private MissedCallCountObserver missedCallCountObserver;
private UiListener<String> getLastOutgoingCallListener;
private UiListener<Integer> missedCallObserverUiListener;
+ private View bottomSheet;
public static Intent getShowTabIntent(Context context, @TabIndex int tabIndex) {
Intent intent = new Intent(context, MainActivity.class);
@@ -240,6 +246,9 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
dialpadFragmentHostInterface = new MainDialpadFragmentHost();
snackbarContainer = activity.findViewById(R.id.coordinator_layout);
+ bottomSheet = activity.findViewById(R.id.promotion_bottom_sheet);
+ BottomSheetBehavior<View> bottomSheetBehavior = BottomSheetBehavior.from(bottomSheet);
+ bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
FloatingActionButton fab = activity.findViewById(R.id.fab);
fab.setOnClickListener(
@@ -255,7 +264,11 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
bottomNav = activity.findViewById(R.id.bottom_nav_bar);
bottomNavTabListener =
new MainBottomNavBarBottomNavTabListener(
- activity, activity.getFragmentManager(), activity.getSupportFragmentManager(), fab);
+ activity,
+ activity.getFragmentManager(),
+ activity.getSupportFragmentManager(),
+ fab,
+ bottomSheet);
bottomNav.addOnTabSelectedListener(bottomNavTabListener);
// TODO(uabdullah): Handle case of when a sim is inserted/removed while the activity is open.
boolean showVoicemailTab = canVoicemailTabBeShown(activity);
@@ -1245,6 +1258,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
private final FragmentManager fragmentManager;
private final android.support.v4.app.FragmentManager supportFragmentManager;
private final FloatingActionButton fab;
+ private final View bottomSheet;
@TabIndex private int selectedTab = -1;
@@ -1252,11 +1266,13 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
TransactionSafeActivity activity,
FragmentManager fragmentManager,
android.support.v4.app.FragmentManager supportFragmentManager,
- FloatingActionButton fab) {
+ FloatingActionButton fab,
+ View bottomSheet) {
this.activity = activity;
this.fragmentManager = fragmentManager;
this.supportFragmentManager = supportFragmentManager;
this.fab = fab;
+ this.bottomSheet = bottomSheet;
}
@Override
@@ -1300,6 +1316,34 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
showFragment(fragment == null ? new CallLogFragment() : fragment, CALL_LOG_TAG);
}
fab.show();
+ showPromotionBottomSheet(activity, bottomSheet);
+ }
+
+ private static void showPromotionBottomSheet(Context context, View view) {
+ // TODO(a bug): Use a promotion manager to get promotion to show.
+ Promotion promotion = new RttPromotion(context);
+ BottomSheetBehavior<View> bottomSheetBehavior = BottomSheetBehavior.from(view);
+
+ if (!promotion.shouldShow()) {
+ bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
+ return;
+ }
+ ImageView icon = view.findViewById(R.id.promotion_icon);
+ icon.setImageResource(promotion.getIconRes());
+ TextView details = view.findViewById(R.id.promotion_details);
+ details.setText(promotion.getDetails());
+ // Required to make link clickable.
+ details.setMovementMethod(LinkMovementMethod.getInstance());
+ TextView title = view.findViewById(R.id.promotion_title);
+ title.setText(promotion.getTitle());
+ view.findViewById(R.id.ok_got_it)
+ .setOnClickListener(
+ v -> {
+ promotion.dismiss();
+ bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
+ });
+ view.setVisibility(View.VISIBLE);
+ bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}
void disableNewCallLogFragment() {
diff --git a/java/com/android/dialer/main/impl/res/layout/main_activity.xml b/java/com/android/dialer/main/impl/res/layout/main_activity.xml
index a1d6e5372..b47806ece 100644
--- a/java/com/android/dialer/main/impl/res/layout/main_activity.xml
+++ b/java/com/android/dialer/main/impl/res/layout/main_activity.xml
@@ -63,6 +63,9 @@
android:src="@drawable/quantum_ic_dialpad_white_24"
android:contentDescription="@string/dialpad_button_content_description"
app:backgroundTint="?android:attr/colorAccent"/>
+
+ <include android:id="@+id/promotion_bottom_sheet"
+ layout="@layout/promotion_bottom_sheet"/>
</android.support.design.widget.CoordinatorLayout>
<!-- BottomNavBar -->
diff --git a/java/com/android/dialer/main/impl/res/layout/promotion_bottom_sheet.xml b/java/com/android/dialer/main/impl/res/layout/promotion_bottom_sheet.xml
new file mode 100644
index 000000000..b608cd535
--- /dev/null
+++ b/java/com/android/dialer/main/impl/res/layout/promotion_bottom_sheet.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="24dp"
+ android:paddingBottom="8dp"
+ android:paddingStart="16dp"
+ android:paddingEnd="24dp"
+ android:background="#FAFAFA"
+ android:clickable="true"
+ android:elevation="8dp"
+ android:orientation="horizontal"
+ android:visibility="gone"
+ app:behavior_hideable="true"
+ app:behavior_skipCollapsed="true"
+ app:layout_behavior="android.support.design.bottomsheet.BottomSheetBehavior"
+ app:layout_insetEdge="bottom">
+
+ <ImageView
+ android:id="@+id/promotion_icon"
+ android:layout_width="36dp"
+ android:layout_height="36dp"
+ android:tint="@color/dialer_theme_color"/>
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="32dp"
+ android:orientation="vertical">
+ <TextView
+ android:id="@+id/promotion_title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:fontFamily="sans-serif-medium"
+ android:textColor="#DD000000"
+ android:textSize="16sp"
+ />
+ <TextView
+ android:id="@+id/promotion_details"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:layout_marginBottom="16dp"
+ android:lineSpacingMultiplier="1.5"
+ android:textColor="#DD000000"
+ android:textSize="14sp"/>
+ <Button
+ android:id="@+id/ok_got_it"
+ style="@style/Widget.AppCompat.Button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:layout_marginBottom="8dp"
+ android:layout_gravity="end"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp"
+ android:backgroundTint="@color/dialer_theme_color"
+ android:fontFamily="sans-serif-medium"
+ android:stateListAnimator="@null"
+ android:text="@string/ok_got_it"
+ android:textColor="@android:color/white"
+ android:textSize="16sp"/>
+ </LinearLayout>
+
+</LinearLayout> \ No newline at end of file