Merge tag android-5.1.0_r1 into AOSP_5.1_MERGE
Change-Id: Iac0ab0e30d9cfdfc000757eb2bee30e0cc90d431
diff --git a/apps/LeanbackCustomizer/AndroidManifest.xml b/apps/LeanbackCustomizer/AndroidManifest.xml
index ed313c6..e931ca2 100644
--- a/apps/LeanbackCustomizer/AndroidManifest.xml
+++ b/apps/LeanbackCustomizer/AndroidManifest.xml
@@ -2,6 +2,10 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.leanbacklauncher.partnercustomizer">
+ <uses-sdk
+ android:minSdkVersion="21"
+ android:targetSdkVersion="21" />
+
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.INTERNET" />
@@ -19,5 +23,6 @@
<data android:scheme="package"/>
</intent-filter>
</receiver>
+
</application>
</manifest>
diff --git a/apps/LeanbackCustomizer/res/drawable-mdpi/ic_blank.png b/apps/LeanbackCustomizer/res/drawable-mdpi/ic_blank.png
deleted file mode 100644
index edae9c4..0000000
--- a/apps/LeanbackCustomizer/res/drawable-mdpi/ic_blank.png
+++ /dev/null
Binary files differ
diff --git a/apps/LeanbackCustomizer/res/values/config.xml b/apps/LeanbackCustomizer/res/values/config.xml
index 02f97e7..863c886 100644
--- a/apps/LeanbackCustomizer/res/values/config.xml
+++ b/apps/LeanbackCustomizer/res/values/config.xml
@@ -1,7 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
+ <bool name="partner_show_live_tv_on_start_up">true</bool>
+
+ <!-- DO NOT TRANSLATE -->
+ <string name="partner_app_sorting_mode" translatable="false">fixed</string>
<!-- DO NOT TRANSLATE -->
<string name="partner_wallpaper" translatable="false">bg_custom</string>
+ <!-- DO NOT TRANSLATE -->
+ <string name="partner_widget_provider_component_name" translatable="false">
+ com.google.android.leanbacklauncher.partnerwidget/.ClockWidgetProvider
+ </string>
+
+ <!-- DO NOT TRANSLATE -->
+ <string name="partner_search_icon" translatable="false">ic_launcher</string>
<!--
DO NOT TRANSLATE
@@ -43,5 +54,8 @@
<item type="drawable" name="settings_row_icon">@drawable/ic_title_settings</item>
<!-- DO NOT TRANSLATE -->
+ <string name="partner_font" translatable="false">sans-serif-bold</string>
+
+ <!-- DO NOT TRANSLATE -->
<string name="launcher_category" translatable="false">android.intent.category.LEANBACK_LAUNCHER</string>
</resources>
diff --git a/apps/LeanbackCustomizer/src/com/android/leanbacklauncher/partnercustomizer/PartnerReceiver.java b/apps/LeanbackCustomizer/src/com/google/android/leanbacklauncher/partnercustomizer/PartnerReceiver.java
similarity index 89%
rename from apps/LeanbackCustomizer/src/com/android/leanbacklauncher/partnercustomizer/PartnerReceiver.java
rename to apps/LeanbackCustomizer/src/com/google/android/leanbacklauncher/partnercustomizer/PartnerReceiver.java
index 2c1282b..daef196 100644
--- a/apps/LeanbackCustomizer/src/com/android/leanbacklauncher/partnercustomizer/PartnerReceiver.java
+++ b/apps/LeanbackCustomizer/src/com/google/android/leanbacklauncher/partnercustomizer/PartnerReceiver.java
@@ -16,34 +16,17 @@
package com.google.android.leanbacklauncher.partnercustomizer;
-import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
-import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.pm.ActivityInfo;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
-import android.provider.Settings;
-import android.text.TextUtils;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.util.ArrayList;
-import java.util.List;
/**
* This class posts notifications that are used to populate the Partner Row of the Leanback Launcher
@@ -70,7 +53,7 @@
private NotificationManager mNotifMan;
private PackageManager mPkgMan;
- // Cutoff value for when the Launcher displayes the Partner row as a single
+ // Cutoff value for when the Launcher displays the Partner row as a single
// row, or a two row grid. Can be used for correctly positioning the partner
// app entries.
private int mRowCutoff = 0;
diff --git a/apps/LeanbackCustomizer/src/com/android/leanbacklauncher/partnercustomizer/TestActivity.java b/apps/LeanbackCustomizer/src/com/google/android/leanbacklauncher/partnercustomizer/TestActivity.java
similarity index 100%
rename from apps/LeanbackCustomizer/src/com/android/leanbacklauncher/partnercustomizer/TestActivity.java
rename to apps/LeanbackCustomizer/src/com/google/android/leanbacklauncher/partnercustomizer/TestActivity.java
diff --git a/apps/LeanbackWidget/Android.mk b/apps/LeanbackWidget/Android.mk
new file mode 100644
index 0000000..7209b52
--- /dev/null
+++ b/apps/LeanbackWidget/Android.mk
@@ -0,0 +1,13 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_PATH := $(PRODUCT_OUT)/system/app
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := LeanbackWidget
+
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_PACKAGE)
diff --git a/apps/LeanbackWidget/AndroidManifest.xml b/apps/LeanbackWidget/AndroidManifest.xml
new file mode 100644
index 0000000..9474560
--- /dev/null
+++ b/apps/LeanbackWidget/AndroidManifest.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.google.android.leanbacklauncher.partnerwidget">
+
+ <uses-sdk
+ android:minSdkVersion="19"
+ android:targetSdkVersion="19" />
+
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+
+ <application android:label="@string/app_label">
+ <receiver android:name=".ClockWidgetProvider" >
+ <intent-filter>
+ <action android:name="android.net.conn.INET_CONDITION_ACTION" />
+ <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
+
+ <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
+ </intent-filter>
+
+ <meta-data
+ android:name="android.appwidget.provider"
+ android:resource="@xml/clock_widget_info" />
+ </receiver>
+
+ </application>
+</manifest>
diff --git a/apps/LeanbackWidget/proguard-project.txt b/apps/LeanbackWidget/proguard-project.txt
new file mode 100644
index 0000000..f2fe155
--- /dev/null
+++ b/apps/LeanbackWidget/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/apps/LeanbackWidget/res/drawable-hdpi/ic_launcher.png b/apps/LeanbackWidget/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..eb9dfe2
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/apps/LeanbackWidget/res/drawable-hdpi/ic_widget_ethernet_not_connected.png b/apps/LeanbackWidget/res/drawable-hdpi/ic_widget_ethernet_not_connected.png
new file mode 100644
index 0000000..df02569
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-hdpi/ic_widget_ethernet_not_connected.png
Binary files differ
diff --git a/apps/LeanbackWidget/res/drawable-hdpi/ic_widget_wifi_no_internet.png b/apps/LeanbackWidget/res/drawable-hdpi/ic_widget_wifi_no_internet.png
new file mode 100644
index 0000000..1b891de
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-hdpi/ic_widget_wifi_no_internet.png
Binary files differ
diff --git a/apps/LeanbackWidget/res/drawable-hdpi/ic_widget_wifi_not_connected.png b/apps/LeanbackWidget/res/drawable-hdpi/ic_widget_wifi_not_connected.png
new file mode 100644
index 0000000..d6d4a30
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-hdpi/ic_widget_wifi_not_connected.png
Binary files differ
diff --git a/apps/LeanbackWidget/res/drawable-mdpi/ic_launcher.png b/apps/LeanbackWidget/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..d8e46f3
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/apps/LeanbackWidget/res/drawable-mdpi/ic_widget_ethernet_not_connected.png b/apps/LeanbackWidget/res/drawable-mdpi/ic_widget_ethernet_not_connected.png
new file mode 100644
index 0000000..ece1478
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-mdpi/ic_widget_ethernet_not_connected.png
Binary files differ
diff --git a/apps/LeanbackWidget/res/drawable-mdpi/ic_widget_wifi_no_internet.png b/apps/LeanbackWidget/res/drawable-mdpi/ic_widget_wifi_no_internet.png
new file mode 100644
index 0000000..5054b40
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-mdpi/ic_widget_wifi_no_internet.png
Binary files differ
diff --git a/apps/LeanbackWidget/res/drawable-mdpi/ic_widget_wifi_not_connected.png b/apps/LeanbackWidget/res/drawable-mdpi/ic_widget_wifi_not_connected.png
new file mode 100644
index 0000000..ad53107
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-mdpi/ic_widget_wifi_not_connected.png
Binary files differ
diff --git a/apps/LeanbackWidget/res/drawable-xhdpi/ic_launcher.png b/apps/LeanbackWidget/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..e4e79c9
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/apps/LeanbackWidget/res/drawable-xhdpi/ic_widget_ethernet_not_connected.png b/apps/LeanbackWidget/res/drawable-xhdpi/ic_widget_ethernet_not_connected.png
new file mode 100644
index 0000000..5d0bfb9
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-xhdpi/ic_widget_ethernet_not_connected.png
Binary files differ
diff --git a/apps/LeanbackWidget/res/drawable-xhdpi/ic_widget_wifi_no_internet.png b/apps/LeanbackWidget/res/drawable-xhdpi/ic_widget_wifi_no_internet.png
new file mode 100644
index 0000000..909d020
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-xhdpi/ic_widget_wifi_no_internet.png
Binary files differ
diff --git a/apps/LeanbackWidget/res/drawable-xhdpi/ic_widget_wifi_not_connected.png b/apps/LeanbackWidget/res/drawable-xhdpi/ic_widget_wifi_not_connected.png
new file mode 100644
index 0000000..c892b26
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-xhdpi/ic_widget_wifi_not_connected.png
Binary files differ
diff --git a/apps/LeanbackWidget/res/drawable-xxhdpi/ic_launcher.png b/apps/LeanbackWidget/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..53ced36
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/apps/LeanbackWidget/res/drawable-xxhdpi/ic_widget_ethernet_not_connected.png b/apps/LeanbackWidget/res/drawable-xxhdpi/ic_widget_ethernet_not_connected.png
new file mode 100644
index 0000000..edb5a69
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-xxhdpi/ic_widget_ethernet_not_connected.png
Binary files differ
diff --git a/apps/LeanbackWidget/res/layout/clock_widget.xml b/apps/LeanbackWidget/res/layout/clock_widget.xml
new file mode 100644
index 0000000..3ceb63e
--- /dev/null
+++ b/apps/LeanbackWidget/res/layout/clock_widget.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="@dimen/widget_top_margin" >
+
+ <TextClock
+ android:id="@+id/clock"
+ android:layout_width="@dimen/clock_width"
+ android:layout_height="wrap_content"
+ android:layout_alignParentEnd="true"
+ android:gravity="center_vertical|end"
+ android:format12Hour="@string/widget_12_hours_format"
+ android:format24Hour="@string/widget_24_hours_format"
+ android:fontFamily="@string/light_font"
+ android:includeFontPadding="false"
+ android:textColor="@color/clock_text_color"
+ android:textSize="@dimen/clock_text_size" />
+
+ <ImageView
+ android:id="@+id/connectivity_indicator"
+ android:layout_width="@dimen/connectivity_status_size"
+ android:layout_height="@dimen/connectivity_status_size"
+ android:layout_toStartOf="@+id/clock"
+ android:layout_centerVertical="true"
+ android:src="@null" />
+
+</RelativeLayout>
diff --git a/apps/LeanbackWidget/res/values/colors.xml b/apps/LeanbackWidget/res/values/colors.xml
new file mode 100644
index 0000000..bcc3a80
--- /dev/null
+++ b/apps/LeanbackWidget/res/values/colors.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <color name="clock_text_color">#FFEEEEEE</color>
+</resources>
diff --git a/apps/LeanbackWidget/res/values/config.xml b/apps/LeanbackWidget/res/values/config.xml
new file mode 100644
index 0000000..9e4f1ba
--- /dev/null
+++ b/apps/LeanbackWidget/res/values/config.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <!-- DO NOT TRANSLATE -->
+ <string name="font" translatable="false">sans-serif-condensed</string>
+ <!-- DO NOT TRANSLATE -->
+ <string name="light_font" translatable="false">sans-serif-light</string>
+ <!-- DO NOT TRANSLATE -->
+ <string name="regular_font" translatable="false">sans-serif</string>
+
+ <string name="widget_12_hours_format" translatable="false">h:mm</string>
+ <string name="widget_24_hours_format" translatable="false">kk:mm</string>
+
+</resources>
diff --git a/apps/LeanbackWidget/res/values/dimens.xml b/apps/LeanbackWidget/res/values/dimens.xml
new file mode 100644
index 0000000..fe1728f
--- /dev/null
+++ b/apps/LeanbackWidget/res/values/dimens.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <dimen name="clock_text_size">36sp</dimen>
+ <dimen name="clock_width">106dp</dimen>
+ <dimen name="connectivity_status_size">32dp</dimen>
+ <dimen name="widget_top_margin">1dp</dimen>
+</resources>
diff --git a/apps/LeanbackWidget/res/values/strings.xml b/apps/LeanbackWidget/res/values/strings.xml
new file mode 100644
index 0000000..4f733a4
--- /dev/null
+++ b/apps/LeanbackWidget/res/values/strings.xml
@@ -0,0 +1,5 @@
+<resources>
+
+ <string name="app_label">LeanbackWidget</string>
+
+</resources>
diff --git a/apps/LeanbackWidget/res/xml/clock_widget_info.xml b/apps/LeanbackWidget/res/xml/clock_widget_info.xml
new file mode 100644
index 0000000..a877df8
--- /dev/null
+++ b/apps/LeanbackWidget/res/xml/clock_widget_info.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
+ android:updatePeriodMillis="1800000"
+ android:initialLayout="@layout/clock_widget"
+ android:widgetCategory="home_screen"
+ android:resizeMode="none" />
diff --git a/apps/LeanbackWidget/src/com/google/android/leanbacklauncher/partnerwidget/ClockWidgetProvider.java b/apps/LeanbackWidget/src/com/google/android/leanbacklauncher/partnerwidget/ClockWidgetProvider.java
new file mode 100644
index 0000000..77a2851
--- /dev/null
+++ b/apps/LeanbackWidget/src/com/google/android/leanbacklauncher/partnerwidget/ClockWidgetProvider.java
@@ -0,0 +1,95 @@
+package com.google.android.leanbacklauncher.partnerwidget;
+
+import android.appwidget.AppWidgetManager;
+import android.appwidget.AppWidgetProvider;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.os.Bundle;
+import android.widget.RemoteViews;
+
+public class ClockWidgetProvider extends AppWidgetProvider {
+
+ private static final String SHARED_PREFS = "widget-prefs";
+ private static final int INET_CONDITION_THRESHOLD = 50;
+ private static final String INET_CONDITION_ACTION = "android.net.conn.INET_CONDITION_ACTION";
+ private static final String EXTRA_INET_CONDITION = "inetCondition";
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String intentAction = intent.getAction();
+
+ if (INET_CONDITION_ACTION.equals(intentAction) ||
+ ConnectivityManager.CONNECTIVITY_ACTION.equals(intentAction)) {
+
+ if (INET_CONDITION_ACTION.equals(intentAction)) {
+ // a broadcast with this intent action is only fired when we are actually connected
+ // (i.e connectionStatus = 100). So, clearing connectivity status when changing
+ // networks is required
+ int connectionStatus = intent.getIntExtra(EXTRA_INET_CONDITION, -551);
+ writeConnectivity(context, connectionStatus > INET_CONDITION_THRESHOLD);
+ }
+
+ update(context);
+ }
+
+ super.onReceive(context, intent);
+ }
+
+ @Override
+ public void onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager,
+ int appWidgetId, Bundle newOptions) {
+ update(context);
+ }
+
+ public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
+ update(context);
+ super.onUpdate(context, appWidgetManager, appWidgetIds);
+ }
+
+ private void update(Context context) {
+ AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
+ ComponentName thisWidget = new ComponentName(context, ClockWidgetProvider.class);
+ appWidgetManager.updateAppWidget(thisWidget, getRemoteViews(context));
+ }
+
+ private RemoteViews getRemoteViews(Context context) {
+ RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.clock_widget);
+ remoteViews.setImageViewResource(R.id.connectivity_indicator, getConnectedResId(context));
+
+ return remoteViews;
+ }
+
+ private static int getConnectedResId(Context context) {
+ ConnectivityManager cm = (ConnectivityManager) context
+ .getSystemService(Context.CONNECTIVITY_SERVICE);
+ NetworkInfo info = cm.getActiveNetworkInfo();
+
+ int resId = 0;
+ if (info == null || !info.isAvailable() || !info.isConnected()) {
+ // can't have Internet access with no network
+ writeConnectivity(context, false);
+ resId = R.drawable.ic_widget_wifi_not_connected;
+ } else if (!readConnectivity(context)) {
+ resId = R.drawable.ic_widget_wifi_no_internet;
+ } else {
+ // internet is connected and working, show nothing
+ resId = android.R.color.transparent;
+ }
+
+ return resId;
+ }
+
+ private static void writeConnectivity(Context context, boolean inetConnected) {
+ context.getSharedPreferences(SHARED_PREFS, Context.MODE_PRIVATE).edit()
+ .putBoolean(EXTRA_INET_CONDITION, inetConnected).apply();
+ }
+
+ private static boolean readConnectivity(Context context) {
+ return context.getSharedPreferences(SHARED_PREFS, Context.MODE_PRIVATE).getBoolean(
+ EXTRA_INET_CONDITION, true);
+ }
+
+}
diff --git a/apps/SetupCustomizer/Android.mk b/apps/SetupCustomizer/Android.mk
new file mode 100644
index 0000000..9312a36
--- /dev/null
+++ b/apps/SetupCustomizer/Android.mk
@@ -0,0 +1,13 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_PATH := $(PRODUCT_OUT)/system/priv-app
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := TvSetupCustomizer
+
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_PACKAGE)
diff --git a/apps/SetupCustomizer/AndroidManifest.xml b/apps/SetupCustomizer/AndroidManifest.xml
new file mode 100644
index 0000000..bdd31ff
--- /dev/null
+++ b/apps/SetupCustomizer/AndroidManifest.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.google.android.tvsetup.partnercustomizer">
+
+ <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+ <uses-permission android:name="android.permission.INTERNET" />
+
+ <application android:label="@string/app_label">
+
+ <receiver android:name=".PartnerReceiver">
+ <intent-filter>
+ <action android:name="com.google.android.tvsetup.action.PARTNER_CUSTOMIZATION" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+
+ <intent-filter>
+ <action android:name="android.intent.action.PACKAGE_ADDED" />
+ <action android:name="android.intent.action.PACKAGE_REMOVED" />
+ <data android:scheme="package"/>
+ </intent-filter>
+ </receiver>
+ </application>
+</manifest>
diff --git a/apps/SetupCustomizer/proguard-project.txt b/apps/SetupCustomizer/proguard-project.txt
new file mode 100644
index 0000000..f2fe155
--- /dev/null
+++ b/apps/SetupCustomizer/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/apps/SetupCustomizer/res/drawable-xhdpi/welcome_background.png b/apps/SetupCustomizer/res/drawable-xhdpi/welcome_background.png
new file mode 100644
index 0000000..2f2533a
--- /dev/null
+++ b/apps/SetupCustomizer/res/drawable-xhdpi/welcome_background.png
Binary files differ
diff --git a/apps/SetupCustomizer/res/values-de/strings.xml b/apps/SetupCustomizer/res/values-de/strings.xml
new file mode 100644
index 0000000..2794b47
--- /dev/null
+++ b/apps/SetupCustomizer/res/values-de/strings.xml
@@ -0,0 +1,4 @@
+<resources>
+ <!-- Welcome message -->
+ <string name="welcome_message">a really really long welcome message, because german</string>
+</resources>
diff --git a/apps/SetupCustomizer/res/values-en-rCA/strings.xml b/apps/SetupCustomizer/res/values-en-rCA/strings.xml
new file mode 100644
index 0000000..2b19782
--- /dev/null
+++ b/apps/SetupCustomizer/res/values-en-rCA/strings.xml
@@ -0,0 +1,4 @@
+<resources>
+ <!-- Welcome message -->
+ <string name="welcome_message">welcome_message, eh?</string>
+</resources>
diff --git a/apps/SetupCustomizer/res/values/bools.xml b/apps/SetupCustomizer/res/values/bools.xml
new file mode 100644
index 0000000..4e19b14
--- /dev/null
+++ b/apps/SetupCustomizer/res/values/bools.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2012-2014 Google Inc. All Rights Reserved. -->
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <!-- Display "SKIP" in network selection screen -->
+ <bool name="show_skip_network">true</bool>
+
+ <!-- Allow user to skip Google signin at signin setup step -->
+ <bool name="show_skip_signin">true</bool>
+
+ <!-- Show wifi WPS option at top of list -->
+ <bool name="show_wps_at_top">true</bool>
+
+ <!-- Prevent users from returning to the pre-setup oem customization hook -->
+ <bool name="prevent_prehook_replay">true</bool>
+</resources>
diff --git a/apps/SetupCustomizer/res/values/dimens.xml b/apps/SetupCustomizer/res/values/dimens.xml
new file mode 100644
index 0000000..6907661
--- /dev/null
+++ b/apps/SetupCustomizer/res/values/dimens.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2012-2014 Google Inc. All Rights Reserved. -->
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <!-- Max width for welcome text (default: 536dp) -->
+ <dimen name="welcome_message_max_width">400dp</dimen>
+
+ <!-- Offset (positive or negative) for the welcome message (default: 0) -->
+ <dimen name="welcome_message_offset">-100dp</dimen>
+
+</resources>
diff --git a/apps/SetupCustomizer/res/values/strings.xml b/apps/SetupCustomizer/res/values/strings.xml
new file mode 100644
index 0000000..f53fb11
--- /dev/null
+++ b/apps/SetupCustomizer/res/values/strings.xml
@@ -0,0 +1,11 @@
+<resources>
+
+ <string name="app_label">SetupCustomizer</string>
+
+ <!-- Welcome message -->
+ <string name="welcome_message">welcome_message</string>
+
+ <!-- Custom wallpaper [DO NOT TRANSLATE] -->
+ <string name="setup_wallpaper_component" translatable="false">com.android.systemui/com.android.systemui.ImageWallpaper</string>
+
+</resources>
diff --git a/apps/SetupCustomizer/src/com/android/tvsetup/partnercustomizer/PartnerReceiver.java b/apps/SetupCustomizer/src/com/android/tvsetup/partnercustomizer/PartnerReceiver.java
new file mode 100644
index 0000000..cf8efd9
--- /dev/null
+++ b/apps/SetupCustomizer/src/com/android/tvsetup/partnercustomizer/PartnerReceiver.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2014 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.google.android.tvsetup.partnercustomizer;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+
+/**
+ * This class allows the system/setup app to find the partner customization package.
+ *
+ * Package must be a system app to be used for partner customization.
+ */
+public class PartnerReceiver extends BroadcastReceiver {
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ }
+}
diff --git a/etc/apns-full-conf.xml b/etc/apns-full-conf.xml
index 14f6e91..a78ea97 100755
--- a/etc/apns-full-conf.xml
+++ b/etc/apns-full-conf.xml
@@ -4097,48 +4097,6 @@
type="mms"
/>
- <apn carrier="BiBoB Internet profil"
- mcc="238"
- mnc="02"
- apn="internet.bibob.dk"
- type="default,supl"
- mvno_type="spn"
- mvno_match_data="BiBoB"
- />
-
- <apn carrier="BiBoB"
- mcc="238"
- mnc="02"
- apn="mms.bibob.dk"
- mmsproxy="212.88.64.8"
- mmsport="8080"
- mmsc="http://mms.telenor.dk"
- type="mms"
- mvno_type="spn"
- mvno_match_data="BiBoB"
- />
-
- <apn carrier="CBB Internet"
- mcc="238"
- mnc="02"
- apn="internet"
- type="default,supl"
- mvno_type="spn"
- mvno_match_data="CBB Mobil"
- />
-
- <apn carrier="CBB MMS"
- mcc="238"
- mnc="02"
- apn="telenor"
- mmsproxy="212.88.64.8"
- mmsport="8080"
- mmsc="http://mms.telenor.dk"
- type="mms"
- mvno_type="spn"
- mvno_match_data="CBB Mobil"
- />
-
<apn carrier="3"
mcc="238"
mnc="06"
@@ -4431,15 +4389,38 @@
type="mms"
/>
- <apn carrier="Tele2"
+ <apn carrier="Tele2 Internet"
mcc="240"
mnc="07"
- apn="internet.tele2.no"
- mmsc="http://mmsc.tele2.no"
- mmsproxy="193.12.40.14"
+ apn="4g.tele2.se"
+ type="default,supl"
+ />
+
+ <apn carrier="Tele2 MMS"
+ mcc="240"
+ mnc="07"
+ apn="4g.tele2.se"
+ mmsc="http://mmsc.tele2.se"
+ mmsproxy="130.244.202.30"
mmsport="8080"
- protocol="IP"
- type="default,supl,mms"
+ type="mms"
+ />
+
+ <apn carrier="Tele2 Internet 3G"
+ mcc="240"
+ mnc="07"
+ apn="internet.tele2.se"
+ type="default,supl"
+ />
+
+ <apn carrier="Tele2 MMS 3G"
+ mcc="240"
+ mnc="07"
+ apn="internet.tele2.se"
+ mmsc="http://mmsc.tele2.se"
+ mmsproxy="130.244.202.30"
+ mmsport="8080"
+ type="mms"
/>
<apn carrier="Tele2 Internet"
@@ -5831,9 +5812,7 @@
mcc="260"
mnc="06"
apn="mms"
- mmsc="http://10.10.28.164/mms/wapenc"
- mmsproxy="10.10.25.5"
- mmsport="8080"
+ mmsc="http://mmsc.play.pl/mms/wapenc"
type="mms"
/>
@@ -5995,8 +5974,6 @@
user="vodafone"
password="vodafone"
authtype="1"
- proxy="iproxy.vodafone.pt"
- port="80"
mmsc="http://mms.vodafone.pt/servlets/mms"
mmsproxy="iproxy.vodafone.pt"
mmsport="80"
@@ -6011,39 +5988,6 @@
type="dun"
/>
- <apn carrier="ZON Internet"
- mcc="268"
- mnc="01"
- apn=""
- type="ia"
- mvno_match_data="ZON"
- mvno_type="spn"
- />
-
- <apn carrier="ZON Internet"
- mcc="268"
- mnc="01"
- apn="internet.zon.pt"
- type="default,supl"
- mvno_match_data="ZON"
- mvno_type="spn"
- />
-
- <apn carrier="ZON MMS"
- mcc="268"
- mnc="01"
- apn="vas.zon.pt"
- user="vas"
- password="vas"
- authtype="1"
- mmsc="http://mms/servlets/mms"
- mmsproxy="213.30.27.63"
- mmsport="8799"
- type="mms"
- mvno_match_data="ZON"
- mvno_type="spn"
- />
-
<apn carrier="PortalOptimus"
mcc="268"
mnc="03"
@@ -6134,11 +6078,11 @@
type="mms"
/>
- <apn carrier="Vox Mobile"
+ <apn carrier="Orange"
mcc="270"
mnc="99"
- apn="vox.lu"
- mmsc="http://mms.vox.lu"
+ apn="orange.lu"
+ mmsc="http://mms.orange.lu"
mmsproxy="212.88.139.44"
mmsport="8080"
type="default,supl,mms"
@@ -7085,7 +7029,7 @@
<apn carrier="Verizon CDMA HRPD"
mcc="310"
- mnc="00"
+ mnc="000"
mmsc="http://mms.vzwreseller.com/servlets/mms"
type="default,mms,hipri,dun,supl"
mvno_type="spn"
@@ -9826,6 +9770,16 @@
mmsport="80"
/>
+ <apn carrier="ATT Phone"
+ mcc="310"
+ mnc="410"
+ apn="phone"
+ type="default,mms,supl,fota,hipri"
+ mmsc="http://mmsc.mobile.att.net"
+ mmsproxy="proxy.mobile.att.net"
+ mmsport="80"
+ />
+
<apn carrier="ATT WAP"
mcc="310"
mnc="410"
@@ -27770,6 +27724,24 @@
type="mms"
/>
+ <apn carrier="China Unicom 3G"
+ apn="3gnet"
+ mcc="460"
+ mnc="09"
+ port="80"
+ type="default, supl"/>
+
+ <apn carrier="China Unicom wap"
+ apn="3gwap"
+ mcc="460"
+ mnc="09"
+ proxy="10.0.0.172"
+ port="80"
+ mmsproxy="10.0.0.172"
+ mmsport="80"
+ mmsc="http://mmsc.myuni.com.cn"
+ type="default, mms"/>
+
<apn carrier="遠傳電信(Far EasTone) (MMS)"
mcc="466"
mnc="01"
@@ -32983,7 +32955,7 @@
mvno_type="spn"
/>
- <apn carrier="Internet Éito"
+ <apn carrier="Internet Éxito"
mcc="732"
mnc="103"
apn="movilexito.net.co"
@@ -33050,7 +33022,7 @@
mvno_type="spn"
/>
- <apn carrier="Internet Éito"
+ <apn carrier="Internet Éxito"
mcc="732"
mnc="111"
apn="movilexito.net.co"
@@ -33123,6 +33095,14 @@
type="default"
/>
+ <apn carrier="ETB 4G"
+ mcc="732"
+ mnc="187"
+ apn="internetmovil.etb.net.co"
+ authtype="0"
+ type="default"
+ />
+
<apn carrier="Digitel 412"
mcc="734"
mnc="01"