diff options
Diffstat (limited to 'src/com/android/packageinstaller/television/UninstallAppProgressFragment.java')
-rw-r--r-- | src/com/android/packageinstaller/television/UninstallAppProgressFragment.java | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/src/com/android/packageinstaller/television/UninstallAppProgressFragment.java b/src/com/android/packageinstaller/television/UninstallAppProgressFragment.java new file mode 100644 index 00000000..772bb3dd --- /dev/null +++ b/src/com/android/packageinstaller/television/UninstallAppProgressFragment.java @@ -0,0 +1,108 @@ +/* + * 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 + */ + +package com.android.packageinstaller.television; + +import android.app.Fragment; +import android.content.Intent; +import android.os.Bundle; +import android.provider.Settings; +import android.support.annotation.Nullable; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.TextView; + +import com.android.packageinstaller.PackageUtil; +import com.android.packageinstaller.R; + +public class UninstallAppProgressFragment extends Fragment implements View.OnClickListener, + UninstallAppProgress.ProgressFragment { + private static final String TAG = "UninstallAppProgressF"; // full class name is too long + + private Button mOkButton; + private Button mDeviceManagerButton; + private Button mUsersButton; + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, + Bundle savedInstanceState) { + final View root = inflater.inflate(R.layout.uninstall_progress, container, false); + // Initialize views + View snippetView = root.findViewById(R.id.app_snippet); + PackageUtil.initSnippetForInstalledApp(getContext(), + ((UninstallAppProgress)getActivity()).getAppInfo(), snippetView); + mDeviceManagerButton = (Button) root.findViewById(R.id.device_manager_button); + mUsersButton = (Button) root.findViewById(R.id.users_button); + mDeviceManagerButton.setVisibility(View.GONE); + mDeviceManagerButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(); + intent.setClassName("com.android.settings", + "com.android.settings.Settings$DeviceAdminSettingsActivity"); + intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); + getActivity().finish(); + } + }); + mUsersButton.setVisibility(View.GONE); + mUsersButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(Settings.ACTION_USER_SETTINGS); + intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); + getActivity().finish(); + } + }); + // Hide button till progress is being displayed + mOkButton = (Button) root.findViewById(R.id.ok_button); + mOkButton.setOnClickListener(this); + + return root; + } + + public void onClick(View v) { + final UninstallAppProgress activity = (UninstallAppProgress) getActivity(); + if(v == mOkButton && activity != null) { + Log.i(TAG, "Finished uninstalling pkg: " + + activity.getAppInfo().packageName); + activity.setResultAndFinish(); + } + } + + @Override + public void setUsersButtonVisible(boolean visible) { + mUsersButton.setVisibility(visible ? View.VISIBLE : View.GONE); + } + + @Override + public void setDeviceManagerButtonVisible(boolean visible) { + mDeviceManagerButton.setVisibility(visible ? View.VISIBLE : View.GONE); + } + + @Override + public void showCompletion(CharSequence statusText) { + final View root = getView(); + root.findViewById(R.id.progress_view).setVisibility(View.GONE); + root.findViewById(R.id.status_view).setVisibility(View.VISIBLE); + ((TextView) root.findViewById(R.id.status_text)).setText(statusText); + root.findViewById(R.id.ok_panel).setVisibility(View.VISIBLE); + } +} |