PolicyService.java revision f419287f22ae44f25e1ba1f757ec33c7941bbfa8
19ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank/* 29ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank * Copyright (C) 2011 The Android Open Source Project 39ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank * 49ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank * Licensed under the Apache License, Version 2.0 (the "License"); 59ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank * you may not use this file except in compliance with the License. 69ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank * You may obtain a copy of the License at 79ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank * 89ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank * http://www.apache.org/licenses/LICENSE-2.0 99ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank * 109ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank * Unless required by applicable law or agreed to in writing, software 119ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank * distributed under the License is distributed on an "AS IS" BASIS, 129ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank * See the License for the specific language governing permissions and 149ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank * limitations under the License. 159ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank */ 169ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank 179ba506c4dd498150555f6c59aa758f7467bf9236Marc Blankpackage com.android.email.service; 189ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank 199ba506c4dd498150555f6c59aa758f7467bf9236Marc Blankimport android.app.Service; 209ba506c4dd498150555f6c59aa758f7467bf9236Marc Blankimport android.content.Context; 219ba506c4dd498150555f6c59aa758f7467bf9236Marc Blankimport android.content.Intent; 229ba506c4dd498150555f6c59aa758f7467bf9236Marc Blankimport android.os.IBinder; 239ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank 24f419287f22ae44f25e1ba1f757ec33c7941bbfa8Marc Blankimport com.android.email.SecurityPolicy; 25f419287f22ae44f25e1ba1f757ec33c7941bbfa8Marc Blankimport com.android.emailcommon.provider.Policy; 26f419287f22ae44f25e1ba1f757ec33c7941bbfa8Marc Blankimport com.android.emailcommon.service.IPolicyService; 27f419287f22ae44f25e1ba1f757ec33c7941bbfa8Marc Blank 289ba506c4dd498150555f6c59aa758f7467bf9236Marc Blankpublic class PolicyService extends Service { 299ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank 309ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank private SecurityPolicy mSecurityPolicy; 319ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank private Context mContext; 329ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank 339ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank private final IPolicyService.Stub mBinder = new IPolicyService.Stub() { 34aeee10e57ef4d931e7708fde218d590453a82aeaMarc Blank public boolean isActive(Policy policy) { 35aeee10e57ef4d931e7708fde218d590453a82aeaMarc Blank return mSecurityPolicy.isActive(policy); 369ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank } 379ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank 389ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank public void setAccountHoldFlag(long accountId, boolean newState) { 399ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank SecurityPolicy.setAccountHoldFlag(mContext, accountId, newState); 409ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank } 419ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank 429ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank public void remoteWipe() { 439ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank mSecurityPolicy.remoteWipe(); 449ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank } 459ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank 46f419287f22ae44f25e1ba1f757ec33c7941bbfa8Marc Blank public void setAccountPolicy(long accountId, Policy policy, String securityKey) { 47f419287f22ae44f25e1ba1f757ec33c7941bbfa8Marc Blank mSecurityPolicy.setAccountPolicy(accountId, policy, securityKey); 489ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank } 499ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank }; 509ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank 519ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank @Override 529ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank public IBinder onBind(Intent intent) { 539ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank // When we bind this service, save the context and SecurityPolicy singleton 549ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank mContext = this; 559ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank mSecurityPolicy = SecurityPolicy.getInstance(this); 569ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank return mBinder; 579ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank } 589ba506c4dd498150555f6c59aa758f7467bf9236Marc Blank}