17767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn/*
27767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * Copyright (C) 2012 The Android Open Source Project
37767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn *
47767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License");
57767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * you may not use this file except in compliance with the License.
67767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * You may obtain a copy of the License at
77767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn *
87767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn *      http://www.apache.org/licenses/LICENSE-2.0
97767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn *
107767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * Unless required by applicable law or agreed to in writing, software
117767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS,
127767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * See the License for the specific language governing permissions and
147767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * limitations under the License.
157767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn */
167767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
177767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackbornpackage android.content.pm;
187767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
197767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackbornimport static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
207767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
219f837a99d48c5bb8ad7fbc133943e5bf622ce065Jeff Sharkeyimport android.util.ArraySet;
227767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
237767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn/**
247767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * Per-user state information about a package.
258832c18d8b63367929c2d394c9c508f56003d400Dianne Hackborn * @hide
267767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn */
277767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackbornpublic class PackageUserState {
287767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    public boolean stopped;
297767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    public boolean notLaunched;
307767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    public boolean installed;
31e5bcff624fb58b6f95be8ddff7f5b6b3bf5d19c7Amith Yamasani    public boolean hidden; // Is the app restricted by owner / admin
327767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    public int enabled;
33c13053bf1c05b980421611487ce67677c08db299Kenny Guy    public boolean blockUninstall;
347767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
353fa3c28a356108a6558b6b54a0b10e1a5cc4f1b6Dianne Hackborn    public String lastDisableAppCaller;
363fa3c28a356108a6558b6b54a0b10e1a5cc4f1b6Dianne Hackborn
379f837a99d48c5bb8ad7fbc133943e5bf622ce065Jeff Sharkey    public ArraySet<String> disabledComponents;
389f837a99d48c5bb8ad7fbc133943e5bf622ce065Jeff Sharkey    public ArraySet<String> enabledComponents;
397767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
407767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    public PackageUserState() {
417767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        installed = true;
42e5bcff624fb58b6f95be8ddff7f5b6b3bf5d19c7Amith Yamasani        hidden = false;
437767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        enabled = COMPONENT_ENABLED_STATE_DEFAULT;
447767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    }
457767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
467767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    public PackageUserState(PackageUserState o) {
477767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        installed = o.installed;
487767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        stopped = o.stopped;
497767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        notLaunched = o.notLaunched;
507767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        enabled = o.enabled;
51e5bcff624fb58b6f95be8ddff7f5b6b3bf5d19c7Amith Yamasani        hidden = o.hidden;
523fa3c28a356108a6558b6b54a0b10e1a5cc4f1b6Dianne Hackborn        lastDisableAppCaller = o.lastDisableAppCaller;
537767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        disabledComponents = o.disabledComponents != null
549f837a99d48c5bb8ad7fbc133943e5bf622ce065Jeff Sharkey                ? new ArraySet<String>(o.disabledComponents) : null;
557767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        enabledComponents = o.enabledComponents != null
569f837a99d48c5bb8ad7fbc133943e5bf622ce065Jeff Sharkey                ? new ArraySet<String>(o.enabledComponents) : null;
57c13053bf1c05b980421611487ce67677c08db299Kenny Guy        blockUninstall = o.blockUninstall;
587767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    }
599f837a99d48c5bb8ad7fbc133943e5bf622ce065Jeff Sharkey}
60