diff options
author | Svetoslav <svetoslavganov@google.com> | 2015-11-20 14:00:11 -0800 |
---|---|---|
committer | Svetoslav <svetoslavganov@google.com> | 2015-11-20 14:02:19 -0800 |
commit | ef861375eebd9ac6cce7c0bb163380ab1c951063 (patch) | |
tree | 870ae89605e49658de3e5abca2797b68c5efbb26 /src/com/android/packageinstaller/permission/ui/television/GrantPermissionsViewHandlerImpl.java | |
parent | 9c78316fe6baa4f7fd7d5108349ecf8a2532b047 (diff) | |
download | android_packages_apps_PackageInstaller-ef861375eebd9ac6cce7c0bb163380ab1c951063.tar.gz android_packages_apps_PackageInstaller-ef861375eebd9ac6cce7c0bb163380ab1c951063.tar.bz2 android_packages_apps_PackageInstaller-ef861375eebd9ac6cce7c0bb163380ab1c951063.zip |
resolve merge conflicts of c10abb25f3 to cw-e-dev.
Change-Id: I3fe38a9ac62466b38efec834dceb712d2782c518
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/television/GrantPermissionsViewHandlerImpl.java')
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/television/GrantPermissionsViewHandlerImpl.java | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/television/GrantPermissionsViewHandlerImpl.java b/src/com/android/packageinstaller/permission/ui/television/GrantPermissionsViewHandlerImpl.java new file mode 100644 index 00000000..a2538821 --- /dev/null +++ b/src/com/android/packageinstaller/permission/ui/television/GrantPermissionsViewHandlerImpl.java @@ -0,0 +1,131 @@ +package com.android.packageinstaller.permission.ui.television; + +import android.content.Context; +import android.graphics.PixelFormat; +import android.graphics.drawable.Icon; +import android.os.Bundle; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.WindowManager; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.android.packageinstaller.R; +import com.android.packageinstaller.permission.ui.GrantPermissionsViewHandler; + +/** + * TV-specific view handler for the grant permissions activity. + */ +public final class GrantPermissionsViewHandlerImpl implements GrantPermissionsViewHandler, OnClickListener { + + private static final String ARG_GROUP_NAME = "ARG_GROUP_NAME"; + + private final Context mContext; + + private ResultListener mResultListener; + + private String mGroupName; + + private LinearLayout mRootView; + private TextView mMessageView; + private ImageView mIconView; + private TextView mCurrentGroupView; + private Button mAllowButton; + private Button mSoftDenyButton; + private Button mHardDenyButton; + + public GrantPermissionsViewHandlerImpl(Context context) { + mContext = context; + } + + @Override + public GrantPermissionsViewHandlerImpl setResultListener(ResultListener listener) { + mResultListener = listener; + return this; + } + + @Override + public View createView() { + mRootView = (LinearLayout) LayoutInflater.from(mContext) + .inflate(R.layout.grant_permissions, null); + + mMessageView = (TextView) mRootView.findViewById(R.id.permission_message); + mIconView = (ImageView) mRootView.findViewById(R.id.permission_icon); + mCurrentGroupView = (TextView) mRootView.findViewById(R.id.current_page_text); + mAllowButton = (Button) mRootView.findViewById(R.id.permission_allow_button); + mSoftDenyButton = (Button) mRootView.findViewById(R.id.permission_deny_button); + mHardDenyButton = (Button) mRootView.findViewById( + R.id.permission_deny_dont_ask_again_button); + + mAllowButton.setOnClickListener(this); + mSoftDenyButton.setOnClickListener(this); + mHardDenyButton.setOnClickListener(this); + + return mRootView; + } + + @Override + public void updateWindowAttributes(WindowManager.LayoutParams outLayoutParams) { + outLayoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; + outLayoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT; + outLayoutParams.format = PixelFormat.OPAQUE; + outLayoutParams.gravity = Gravity.BOTTOM; + outLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG; + outLayoutParams.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; + } + + @Override + public void updateUi(String groupName, int groupCount, int groupIndex, Icon icon, + CharSequence message, boolean showDoNotAsk) { + mGroupName = groupName; + + mMessageView.setText(message); + mIconView.setImageIcon(icon); + mHardDenyButton.setVisibility(showDoNotAsk ? View.VISIBLE : View.GONE); + if (groupCount > 1) { + mCurrentGroupView.setVisibility(View.VISIBLE); + mCurrentGroupView.setText(mContext.getString(R.string.current_permission_template, + groupIndex + 1, groupCount)); + } else { + mCurrentGroupView.setVisibility(View.INVISIBLE); + } + } + + @Override + public void saveInstanceState(Bundle outState) { + outState.putString(ARG_GROUP_NAME, mGroupName); + } + + @Override + public void loadInstanceState(Bundle savedInstanceState) { + mGroupName = savedInstanceState.getString(ARG_GROUP_NAME); + } + + @Override + public void onClick(View view) { + boolean granted = false; + boolean doNotAskAgain = false; + switch (view.getId()) { + case R.id.permission_allow_button: + granted = true; + break; + case R.id.permission_deny_dont_ask_again_button: + doNotAskAgain = true; + break; + } + if (mResultListener != null) { + mResultListener.onPermissionGrantResult(mGroupName, granted, doNotAskAgain); + } + } + + @Override + public void onBackPressed() { + if (mResultListener != null) { + mResultListener.onPermissionGrantResult(mGroupName, false, false); + } + } +} |