Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a3a3917 authored by Gergely Szell (sethyx)'s avatar Gergely Szell (sethyx) Committed by Danny Baumann
Browse files

Add Call statistics to Contacts (Phone)

Available from the local menu in the Phone application (except from
the Dialer Fragment).

Call-type filter can be selected in the actionbar.
If all call types are selected the incoming/outgoing rates show up in
blue/green respectively.
Tapping on an item starts a new activity that shows all call types with
details for the given contact or number.

Sample screenshots: http://files.sethyx.info/aokp/call_stats_sample.png

PS1: Import from AOKP
PS2: Cleanup, avoid code duplication, avoid broken call log for
     non-English locales
PS3: Add German translation, cleanup time formatting
PS4: Fix counting issues in header when not displaying all calls
PS5: Improve layout and duration formatting
PS6: Tweak details activity layout
PS7: Show number of incoming/outgoing calls in details activity.
PS8: Allow sorting by date, move filter reset out of date picker,
     prevent invalid date ranges, cleanup
PS9: Fix derp
PS10: Reduce code duplication
PS11: Whitespace fixes, remove now unneeded drawables
PS12: Final cleanup
PS13: Fix issues in number handling
PS14: Improve call lookup
PS15: Show total call count in details, fix rounding issues
PS16: Add a scroller to details activity for lower-res devices
PS17: Improve layout
PS18: Cleanup

Change-Id: I94cd49e167b82bc7eaeab9225ed96a273a33b18c
parent 45ed3142
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -664,6 +664,31 @@
            </intent-filter>
        </activity>

        <!-- "Call Statistics" UI, used only on voice-capable phone devices. -->
        <activity android:name=".callstats.CallStatsActivity"
                android:taskAffinity="android.task.contacts.phone"
                android:icon="@mipmap/ic_launcher_phone"
                android:label="@string/activity_title_call_stats"
                android:configChanges="orientation|screenSize|keyboardHidden"
                android:theme="@style/CallStatsActivityTheme">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity android:name=".callstats.CallStatsDetailActivity"
            android:label="@string/callStatsDetailTitle"
            android:theme="@style/CallDetailActivityTheme"
            android:screenOrientation="portrait"
            android:icon="@mipmap/ic_launcher_phone"
            android:taskAffinity="android.task.contacts.phone" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <service
            android:name=".calllog.CallLogNotificationsService"
            android:exported="false"
+550 B
Loading image diff...
+385 B
Loading image diff...
+751 B
Loading image diff...
+83 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2011 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.
-->

<!-- Layout parameters are set programmatically. -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="?android:attr/dividerHorizontal"
    android:orientation="vertical"
    android:showDividers="end" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingTop="@dimen/call_log_inner_margin" >

        <TextView
            android:id="@+id/date_filter"
            style="@style/ContactListSeparatorTextViewStyle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/call_log_outer_margin"
            android:layout_marginRight="@dimen/call_log_outer_margin"
            android:background="@null" />

        <TextView
            android:id="@+id/sum_header"
            style="@style/ContactListSeparatorTextViewStyle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/call_log_outer_margin"
            android:layout_marginRight="@dimen/call_log_outer_margin"
            android:paddingBottom="@dimen/call_log_inner_margin" />

        <View
            android:id="@+id/call_stats_divider"
            android:layout_width="match_parent"
            android:layout_height="1px"
            android:layout_gravity="bottom"
            android:layout_marginLeft="@dimen/call_log_outer_margin"
            android:layout_marginRight="@dimen/call_log_outer_margin"
            android:background="#55ffffff" />
    </LinearLayout>

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:divider="@null"
            android:fadingEdge="none"
            android:scrollbarStyle="outsideOverlay" />

        <TextView
            android:id="@android:id/empty"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="@dimen/empty_message_top_margin"
            android:gravity="center"
            android:text="@string/recentCalls_empty"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="?android:attr/textColorSecondary" />
    </FrameLayout>

</LinearLayout>
Loading