summaryrefslogtreecommitdiffstats
path: root/java/com/android/dialer/binary
diff options
context:
space:
mode:
authorEric Erfanian <erfanian@google.com>2017-06-19 17:28:33 -0700
committerEric Erfanian <erfanian@google.com>2017-06-19 17:28:33 -0700
commit2d6bc36921c4a41b17bc1870c133ee42f1388b51 (patch)
treeccf7310c8466dbc94a5646969613db81833c1ddd /java/com/android/dialer/binary
parentecc0957193e971e8f94f39efdbb37b0e4ed4f988 (diff)
downloadandroid_packages_apps_Dialer-2d6bc36921c4a41b17bc1870c133ee42f1388b51.tar.gz
android_packages_apps_Dialer-2d6bc36921c4a41b17bc1870c133ee42f1388b51.tar.bz2
android_packages_apps_Dialer-2d6bc36921c4a41b17bc1870c133ee42f1388b51.zip
Add "Simulator" for Enriched Calling
An annoying part of development on enriched calling is that it was difficult to determine what sessions were in memory. We have a number of bugs related to incorrect sessions being shown, and knowing exactly what sessions are available in memory can help debug them. This CL adds a "Simulator" for enriched calling. This is more of a debug tool than a simulator since it doesn't yet support adding a new enriched calling session. To allow the simulator to view all of the sessions in memory, a new EnrichedCallManager API was introduced: getAllSessionsView. This API was designed in a way to prevent abuse, so it returns a list of string representations of the sessions. Just returning the full list of sessions would have allowed clients to bypass the getSession logic and examine sessions that shouldn't be available. Also in this change: * Integrate changes to form a base for future copybara imports. Test: TH PiperOrigin-RevId: 159445010 Change-Id: Ie8fc35d817a4e3b0eac37e0c34a6592060c43b23
Diffstat (limited to 'java/com/android/dialer/binary')
-rw-r--r--java/com/android/dialer/binary/google/AndroidManifest.xml118
-rw-r--r--java/com/android/dialer/binary/google/GoogleStubDialerApplication.java37
-rw-r--r--java/com/android/dialer/binary/google/GoogleStubDialerRootComponent.java52
3 files changed, 207 insertions, 0 deletions
diff --git a/java/com/android/dialer/binary/google/AndroidManifest.xml b/java/com/android/dialer/binary/google/AndroidManifest.xml
new file mode 100644
index 000000000..f393b8b11
--- /dev/null
+++ b/java/com/android/dialer/binary/google/AndroidManifest.xml
@@ -0,0 +1,118 @@
+<!-- Copyright (C) 2016 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ coreApp="true"
+ package="com.google.android.google_stub_dialer"
+ android:versionCode="140000"
+ android:versionName="11.0">
+
+ <uses-sdk
+ android:minSdkVersion="23"
+ android:targetSdkVersion="26"/>
+
+ <uses-permission android:name="android.permission.CALL_PHONE"/>
+ <uses-permission android:name="android.permission.READ_CONTACTS"/>
+ <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
+ <uses-permission android:name="android.permission.READ_CALL_LOG"/>
+ <uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
+ <uses-permission android:name="android.permission.READ_PROFILE"/>
+ <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
+ <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
+ <uses-permission android:name="android.permission.GET_ACCOUNTS_PRIVILEGED"/>
+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
+ <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
+ <uses-permission android:name="android.permission.INTERNET"/>
+ <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
+ <uses-permission android:name="android.permission.NFC"/>
+ <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
+ <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
+ <uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
+ <uses-permission android:name="android.permission.WAKE_LOCK"/>
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+ <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
+ <uses-permission android:name="android.permission.USE_CREDENTIALS"/>
+ <uses-permission android:name="android.permission.VIBRATE"/>
+ <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
+ <uses-permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL"/>
+ <uses-permission android:name="com.android.voicemail.permission.WRITE_VOICEMAIL"/>
+ <uses-permission android:name="com.android.voicemail.permission.READ_VOICEMAIL"/>
+ <uses-permission android:name="android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK"/>
+ <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
+ <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
+ <uses-permission android:name="android.permission.BROADCAST_STICKY"/>
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
+
+ <uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
+ <!-- We use this to disable the status bar buttons of home, back and recent
+ during an incoming call. By doing so this allows us to not show the user
+ is viewing the activity in full screen alert, on a fresh system/factory
+ reset state of the app. -->
+ <uses-permission android:name="android.permission.STATUS_BAR"/>
+ <uses-permission android:name="android.permission.CAMERA"/>
+
+ <!-- This tells the activity manager to not delay any of our activity
+ start requests, even if they happen immediately after the user
+ presses home. -->
+ <uses-permission android:name="android.permission.STOP_APP_SWITCHES"/>
+
+ <!-- Permissions needed for badger count showing on launch icon. -->
+
+ <!--for Samsung-->
+ <uses-permission android:name="com.sec.android.provider.badge.permission.READ"/>
+ <uses-permission android:name="com.sec.android.provider.badge.permission.WRITE"/>
+
+ <!--for htc-->
+ <uses-permission android:name="com.htc.launcher.permission.READ_SETTINGS"/>
+ <uses-permission android:name="com.htc.launcher.permission.UPDATE_SHORTCUT"/>
+
+ <!--for sony-->
+ <uses-permission android:name="com.sonyericsson.home.permission.BROADCAST_BADGE"/>
+ <uses-permission android:name="com.sonymobile.home.permission.PROVIDER_INSERT_BADGE"/>
+
+ <!--for apex-->
+ <uses-permission android:name="com.anddoes.launcher.permission.UPDATE_COUNT"/>
+
+ <!--for solid-->
+ <uses-permission android:name="com.majeur.launcher.permission.UPDATE_BADGE"/>
+
+ <!--for huawei-->
+ <uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
+ <uses-permission android:name="com.huawei.android.launcher.permission.READ_SETTINGS"/>
+ <uses-permission android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS"/>
+
+ <!--for ZUK-->
+ <uses-permission android:name="android.permission.READ_APP_BADGE"/>
+
+ <!--for OPPO-->
+ <uses-permission android:name="com.oppo.launcher.permission.READ_SETTINGS"/>
+ <uses-permission android:name="com.oppo.launcher.permission.WRITE_SETTINGS"/>
+
+ <application
+ android:backupAgent='com.android.dialer.backup.DialerBackupAgent'
+ android:fullBackupOnly="true"
+ android:restoreAnyVersion="true"
+ android:hardwareAccelerated="true"
+ android:icon="@mipmap/ic_launcher_phone"
+ android:label="@string/applicationLabel"
+ android:name="com.android.dialer.binary.google.GoogleStubDialerApplication"
+ android:supportsRtl="true"
+ android:usesCleartextTraffic="false">
+
+
+
+ </application>
+
+</manifest>
diff --git a/java/com/android/dialer/binary/google/GoogleStubDialerApplication.java b/java/com/android/dialer/binary/google/GoogleStubDialerApplication.java
new file mode 100644
index 000000000..e9289af73
--- /dev/null
+++ b/java/com/android/dialer/binary/google/GoogleStubDialerApplication.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2017 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
+ */
+
+package com.android.dialer.binary.google;
+
+import android.support.annotation.NonNull;
+import com.android.dialer.binary.common.DialerApplication;
+import com.android.dialer.inject.ContextModule;
+
+/**
+ * The application class for the Google Stub Dialer. This is a version of the Dialer app that
+ * depends on Google Play Services.
+ */
+public class GoogleStubDialerApplication extends DialerApplication {
+
+ /** Returns a new instance of the root component for the Google Stub Dialer. */
+ @Override
+ @NonNull
+ protected Object buildRootComponent() {
+ return DaggerGoogleStubDialerRootComponent.builder()
+ .contextModule(new ContextModule(this))
+ .build();
+ }
+}
diff --git a/java/com/android/dialer/binary/google/GoogleStubDialerRootComponent.java b/java/com/android/dialer/binary/google/GoogleStubDialerRootComponent.java
new file mode 100644
index 000000000..2b4de974b
--- /dev/null
+++ b/java/com/android/dialer/binary/google/GoogleStubDialerRootComponent.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2017 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
+ */
+
+package com.android.dialer.binary.google;
+
+import com.android.dialer.binary.basecomponent.BaseDialerRootComponent;
+import com.android.dialer.calllog.CallLogModule;
+import com.android.dialer.common.concurrent.DialerExecutorModule;
+import com.android.dialer.configprovider.SharedPrefConfigProviderModule;
+import com.android.dialer.enrichedcall.stub.StubEnrichedCallModule;
+import com.android.dialer.inject.ContextModule;
+import com.android.dialer.lightbringer.stub.StubLightbringerModule;
+import com.android.dialer.simulator.impl.SimulatorModule;
+import com.android.incallui.calllocation.impl.CallLocationModule;
+import com.android.incallui.maps.impl.MapsModule;
+import com.android.voicemail.impl.VoicemailModule;
+import dagger.Component;
+import javax.inject.Singleton;
+
+/**
+ * Root component for the Google Stub Dialer application. Unlike the AOSP variant, this component
+ * can pull in modules that depend on Google Play Services like the maps module.
+ */
+@Singleton
+@Component(
+ modules = {
+ CallLocationModule.class,
+ CallLogModule.class,
+ ContextModule.class,
+ DialerExecutorModule.class,
+ SharedPrefConfigProviderModule.class,
+ SimulatorModule.class,
+ StubEnrichedCallModule.class,
+ MapsModule.class,
+ VoicemailModule.class,
+ StubLightbringerModule.class
+ }
+)
+public interface GoogleStubDialerRootComponent extends BaseDialerRootComponent {}