summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/permission/ui/television/GrantPermissionsViewHandlerImpl.java
diff options
context:
space:
mode:
authorSvetoslav <svetoslavganov@google.com>2015-11-20 14:00:11 -0800
committerSvetoslav <svetoslavganov@google.com>2015-11-20 14:02:19 -0800
commitef861375eebd9ac6cce7c0bb163380ab1c951063 (patch)
tree870ae89605e49658de3e5abca2797b68c5efbb26 /src/com/android/packageinstaller/permission/ui/television/GrantPermissionsViewHandlerImpl.java
parent9c78316fe6baa4f7fd7d5108349ecf8a2532b047 (diff)
downloadandroid_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.java131
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);
+ }
+ }
+}