sdk: Import SensitivePhoneNumbers

* In order to access the classes in Dialer, we need to expose them

This was extracted from the original implementation in Telecom

Author: Olaia Segovia <olaia.segovia@bq.com>
Date:   Thu Mar 16 08:40:30 2017 +0100

    (1/2) Make sensitive phone numbers not to be shown in call log history.

    Considering sensitive phone numbers to be, hotlines dealing with
    violence against women.
    In the EU, these numbers do not show up in the phone bill.
    In order to avoid these phone numbers to be listed in the Call Log, we
    have implemented a new XML file which is parsed with phone numbers
    from different countries to be filtered. This file needs to be copied to
    device via desired Android.mk file in order to be able to process it.
    The comparison is made checking the network MCC the SIM is connected to
    in order to consider roaming and multisim scenarios.

    Test: CallLogManagerTest.testDontLogCallsToSensitivePhoneNumber PASS

    Change-Id: I4a59ff0577942ce56924f1a434ae0a3a38eacc62
    Signed-off-by: Olaia Segovia <olaia.segovia@bq.com>

Author: Paul Keith <javelinanddart@gmail.com>
Date:   Thu Jun 22 19:40:56 2017 +0200

    SensitivePhoneNumbers: Handle lists of MCC codes

    * Some countries have multiple MCC codes, so handle it
    * In the sensitivePN network field, enter the list of
      MCCs like so: https://review.lineageos.org/178233

    Change-Id: I34225473404b2be2640ea9ab05691dc985c49fa0

Author: Paul Keith <javelinanddart@gmail.com>
Date:   Thu Jul 6 16:12:12 2017 -0500

    SensitivePhoneNumbers: Fix number comparison

    * Currently, we just compare the strings for equality,
      which results in incorrect detection of sensitive nums
      a lot of the time, because adding (or removing) the
      country code is enough to make the detection fail,
      meaning the call to that phone number is logged
    * Use Android's PhoneNumberUtils comparison method to
      fix this, since it takes these factors into account

    Change-Id: I26ac180f8a6552cf87a4bada1d370f0ebb884ee1

Author:     Michael W <baddaemon87@gmail.com>
AuthorDate: 2019-09-07 18:34:57 +0200

    CallLog: Fix improper call to SensitivePhoneNumbers

    * isSensitiveNumber expects a subId to be passed, but with the current
      implementation gets a PhoneAccountHandle
    * Actually pass the subId and make the call use an int, while on it
    * Fall back to the default subId only when we get an
      INVALID_SUBSCRIPTION_ID

    Change-Id: Id6d64f2c9f76d94d1b4d9851317ea2cc7e07323b

Change-Id: I241c1652105b82d1d15549332cb6e274d7c726ce
2 files changed
tree: 1546b881c5ba118c21d28fd6031d2e0b0fb5100e
  1. api/
  2. host/
  3. lineage/
  4. packages/
  5. samples/
  6. sdk/
  7. tests/
  8. .gitignore
  9. Android.bp
  10. Android.mk
  11. CleanSpec.mk
  12. org.lineageos.platform.xml
  13. README.md
README.md

LineageOS Platform SDK

The Platform SDK provides a set of APIs that give you easy access to a variety of different features within LineageOS. The SDK exposes APIs and system level framework access in the Android framework that aren't available in any other distribution.

Setup

You can either download from prebuilts hosted on github or pull directly via Gradle.

Building against release artifacts

Our stable releases are mirrored in Maven Central, and you can fetch the current release by setting your build.gradle dependencies to

dependencies {
    compile 'org.lineageos:platform.sdk:5.+'
}

Building against development snapshots

Within build.gradle make sure your repositories list sonatype OSS repos for snapshots

repositories {
    maven {
        url "https://oss.sonatype.org/content/repositories/snapshots/"
    }
}

You can target the future or development branch by setting your dependencies for 6.0-SNAPSHOT

dependencies {
    compile 'org.lineageos:platform.sdk:6.0-SNAPSHOT'
}

Wiki

For further inquiries regarding this project, please reference the wiki.