Infrastructure for showing instant app metadata in app header

This adds infrastructure for displaying the following instant app
metadata in the app header:
-Developer title
-Maturity Rating icon and description string
-Monetization notice (eg ads and/or in-app purchases)

Bug: 35098444
Test: includes new robotests in AppHeaderControllerTest.java
Change-Id: Ifadfedc7f5f349869d6616aeb5ed19eb2b22a038
This commit is contained in:
Antony Sargent
2017-02-07 11:28:58 -08:00
parent 99f0b44440
commit f3ddd87c7a
5 changed files with 400 additions and 0 deletions

View File

@@ -37,6 +37,7 @@ import android.widget.TextView;
import com.android.settings.AppHeader;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.applications.instantapps.InstantAppDetails;
import com.android.settingslib.applications.ApplicationsState;
import java.lang.annotation.Retention;
@@ -78,6 +79,8 @@ public class AppHeaderController {
@ActionType
private int mRightAction;
private InstantAppDetails mInstantAppDetails;
public AppHeaderController(Context context, Fragment fragment, View appHeader) {
mContext = context;
mFragment = fragment;
@@ -147,6 +150,11 @@ public class AppHeaderController {
return this;
}
public AppHeaderController setInstantAppDetails(InstantAppDetails instantAppDetails) {
mInstantAppDetails = instantAppDetails;
return this;
}
/**
* Binds app header view and data from {@code PackageInfo} and {@code AppEntry}.
*/
@@ -207,6 +215,29 @@ public class AppHeaderController {
if (rebindActions) {
bindAppHeaderButtons();
}
if (mInstantAppDetails != null) {
setText(R.id.instant_app_developer_title, mInstantAppDetails.developerTitle);
View maturity = mAppHeader.findViewById(R.id.instant_app_maturity);
if (maturity != null) {
String maturityText = mInstantAppDetails.maturityRatingString;
Drawable maturityIcon = mInstantAppDetails.maturityRatingIcon;
if (!TextUtils.isEmpty(maturityText) || maturityIcon != null) {
maturity.setVisibility(View.VISIBLE);
}
setText(R.id.instant_app_maturity_text, maturityText);
if (maturityIcon != null) {
ImageView maturityIconView = (ImageView) mAppHeader.findViewById(
R.id.instant_app_maturity_icon);
if (maturityIconView != null) {
maturityIconView.setImageDrawable(maturityIcon);
}
}
}
setText(R.id.instant_app_monetization, mInstantAppDetails.monetizationNotice);
}
return mAppHeader;
}