Adjust tap targets in history

- Fix a crash if an app couldn't be launched
- Fix the height of tap targets and overlap of text

Fixes: 152977855
Fixes: 153199215
Change-Id: Id623f942c7663c977c61df3d1188fe498cab8acc
diff --git a/res/layout/notification_history_log_row.xml b/res/layout/notification_history_log_row.xml
index d2d7cd6..b1357e9 100644
--- a/res/layout/notification_history_log_row.xml
+++ b/res/layout/notification_history_log_row.xml
@@ -16,6 +16,7 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:minHeight="48dp"
     android:paddingBottom="6dp"
     android:paddingTop="6dp"
     android:paddingStart="?android:attr/listPreferredItemPaddingStart"
@@ -25,65 +26,57 @@
 
     <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:minHeight="48dp"
-        android:orientation="vertical"
-        android:layout_marginBottom="6dp">
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="@*android:dimen/status_bar_icon_size"
-            android:gravity="center_vertical">
-
-            <TextView
-                android:id="@+id/title"
-                android:layout_weight="1"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_centerVertical="true"
-                android:ellipsize="end"
-                android:singleLine="true"
-                android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification.Title"
-                android:layout_toStartOf="@id/alerted_icon"
-                android:textAlignment="viewStart"/>
-
-            <ImageView
-                android:id="@+id/alerted_icon"
-                android:layout_width="@*android:dimen/status_bar_icon_size"
-                android:layout_height="@*android:dimen/status_bar_icon_size"
-                android:layout_centerVertical="true"
-                android:layout_marginStart="6dp"
-                android:paddingTop="1dp"
-                android:scaleType="fitCenter"
-                android:visibility="invisible"
-                android:layout_toEndOf="@id/title"
-                android:layout_toStartOf="@id/timestamp"
-                android:tint="?android:attr/textColorSecondary"
-                android:src="@drawable/ic_notifications_alert"/>
-
-            <DateTimeView
-                android:id="@+id/timestamp"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_alignParentEnd="true"
-                android:layout_centerVertical="true"
-                android:ellipsize="end"
-                android:singleLine="true"
-                android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
-                android:textAlignment="viewEnd"
-                />
-        </LinearLayout>
+        android:layout_height="@*android:dimen/status_bar_icon_size"
+        android:gravity="center_vertical">
 
         <TextView
-            android:id="@+id/text"
-            android:layout_width="match_parent"
+            android:id="@+id/title"
+            android:layout_weight="1"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:layout_gravity="left|center_vertical"
+            android:layout_centerVertical="true"
             android:ellipsize="end"
             android:singleLine="true"
-            android:paddingTop="3dp"
-            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
-            android:textAlignment="viewStart" />
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification.Title"
+            android:layout_toStartOf="@id/alerted_icon"
+            android:textAlignment="viewStart"/>
 
+        <ImageView
+            android:id="@+id/alerted_icon"
+            android:layout_width="@*android:dimen/status_bar_icon_size"
+            android:layout_height="@*android:dimen/status_bar_icon_size"
+            android:layout_centerVertical="true"
+            android:layout_marginStart="6dp"
+            android:paddingTop="1dp"
+            android:scaleType="fitCenter"
+            android:visibility="invisible"
+            android:layout_toEndOf="@id/title"
+            android:layout_toStartOf="@id/timestamp"
+            android:tint="?android:attr/textColorSecondary"
+            android:src="@drawable/ic_notifications_alert"/>
+
+        <DateTimeView
+            android:id="@+id/timestamp"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentEnd="true"
+            android:layout_centerVertical="true"
+            android:ellipsize="end"
+            android:singleLine="true"
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
+            android:textAlignment="viewEnd"
+        />
     </LinearLayout>
 
+    <TextView
+        android:id="@+id/text"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="left|center_vertical"
+        android:ellipsize="end"
+        android:singleLine="true"
+        android:paddingTop="3dp"
+        android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
+        android:textAlignment="viewStart" />
+
 </LinearLayout>
diff --git a/res/layout/notification_sbn_log_row.xml b/res/layout/notification_sbn_log_row.xml
index 3eb6796..3b731ac 100644
--- a/res/layout/notification_sbn_log_row.xml
+++ b/res/layout/notification_sbn_log_row.xml
@@ -16,44 +16,44 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:paddingBottom="6dp"
     android:paddingTop="6dp"
+    android:minHeight="48dp"
     android:paddingStart="?android:attr/listPreferredItemPaddingStart"
     android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
     android:orientation="vertical"
     android:background="?android:attr/selectableItemBackground"
     >
 
-    <RelativeLayout
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        >
+        android:minHeight="@*android:dimen/status_bar_icon_size"
+        android:paddingBottom="6dp">
 
         <ImageView
             android:id="@+id/icon"
-            android:layout_width="@*android:dimen/status_bar_icon_size"
             android:layout_height="@*android:dimen/status_bar_icon_size"
+            android:layout_width="@*android:dimen/status_bar_icon_size"
             android:layout_centerVertical="true"
-            android:layout_toEndOf="@+id/pkgicon"
             android:layout_marginStart="0dp"
             android:layout_marginEnd="8dp"
             android:contentDescription="@null"
             android:adjustViewBounds="true"
             android:tint="?android:attr/textColorPrimary"
-            android:maxHeight="@*android:dimen/status_bar_icon_size"
-            android:maxWidth="@*android:dimen/status_bar_icon_size"
             android:scaleType="fitCenter" />
 
         <TextView
             android:id="@+id/pkgname"
-            android:layout_width="wrap_content"
+            android:layout_weight="1"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:layout_centerVertical="true"
-            android:layout_toEndOf="@id/icon"
             android:ellipsize="end"
             android:singleLine="true"
             android:textColor="?android:attr/textColorPrimary"
             android:textAppearance="?android:attr/textAppearanceSmall"
+            android:marqueeRepeatLimit = "marquee_forever"
+            android:scrollHorizontally = "true"
             android:textStyle="bold"
             android:textAlignment="viewStart" />
 
@@ -66,7 +66,6 @@
             android:paddingTop="1dp"
             android:scaleType="fitCenter"
             android:visibility="gone"
-            android:layout_toEndOf="@id/pkgname"
             android:tint="?android:attr/textColorSecondary"
             android:src="@drawable/ic_notifications_alert"
         />
@@ -87,8 +86,7 @@
             android:id="@+id/timestamp"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:paddingTop="13dp"
-            android:paddingBottom="13dp"
+            android:minHeight="@*android:dimen/status_bar_icon_size"
             android:layout_alignBottom="@android:id/widget_frame"
             android:layout_alignParentEnd="true"
             android:layout_alignTop="@android:id/widget_frame"
@@ -98,13 +96,12 @@
             android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
             android:textAlignment="viewEnd"
             />
-    </RelativeLayout>
+    </LinearLayout>
 
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:orientation="vertical"
-        android:minHeight="48dp"
         android:layout_marginStart="30dp"
         android:layout_marginBottom="6dp"
         >
diff --git a/src/com/android/settings/notification/history/NotificationSbnViewHolder.java b/src/com/android/settings/notification/history/NotificationSbnViewHolder.java
index 27b4b73..dabf3f3 100644
--- a/src/com/android/settings/notification/history/NotificationSbnViewHolder.java
+++ b/src/com/android/settings/notification/history/NotificationSbnViewHolder.java
@@ -17,6 +17,7 @@
 package com.android.settings.notification.history;
 
 import android.app.PendingIntent;
+import android.content.ActivityNotFoundException;
 import android.content.Intent;
 import android.graphics.drawable.Drawable;
 import android.os.UserHandle;
@@ -91,10 +92,14 @@
                     Slog.e(TAG, "Could not launch", e);
                 }
             } else {
-                Intent appIntent = new Intent(Intent.ACTION_MAIN)
-                        .setPackage(pkg);
+                Intent appIntent = itemView.getContext().getPackageManager()
+                        .getLaunchIntentForPackage(pkg);
                 appIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                itemView.getContext().startActivityAsUser(appIntent, UserHandle.of(userId));
+                try {
+                    itemView.getContext().startActivityAsUser(appIntent, UserHandle.of(userId));
+                } catch (ActivityNotFoundException e) {
+                    Slog.e(TAG, "no launch activity", e);
+                }
             }
         });
         ViewCompat.setAccessibilityDelegate(itemView, new AccessibilityDelegateCompat() {