19f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li/* 2f04335f899f2cce69f843692a3cb9cec229683c2tturney * Copyright (C) 2017 The Android Open Source Project 39f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li * 4f04335f899f2cce69f843692a3cb9cec229683c2tturney * Licensed under the Apache License, Version 2.0 (the "License"); 5f04335f899f2cce69f843692a3cb9cec229683c2tturney * you may not use this file except in compliance with the License. 6f04335f899f2cce69f843692a3cb9cec229683c2tturney * You may obtain a copy of the License at 79f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li * 8f04335f899f2cce69f843692a3cb9cec229683c2tturney * http://www.apache.org/licenses/LICENSE-2.0 99f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li * 109f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li * Unless required by applicable law or agreed to in writing, software 11f04335f899f2cce69f843692a3cb9cec229683c2tturney * distributed under the License is distributed on an "AS IS" BASIS, 12f04335f899f2cce69f843692a3cb9cec229683c2tturney * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f04335f899f2cce69f843692a3cb9cec229683c2tturney * See the License for the specific language governing permissions and 14f04335f899f2cce69f843692a3cb9cec229683c2tturney * limitations under the License. 159f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li */ 169f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 179f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Lipackage com.googlecode.android_scripting.trigger; 189f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 199f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liimport android.content.Context; 209f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liimport android.content.Intent; 219f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 229f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liimport com.googlecode.android_scripting.IntentBuilders; 239f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liimport com.googlecode.android_scripting.event.Event; 249f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 259f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liimport java.io.File; 269f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 279f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li/** 289f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li * A trigger implementation that launches a given script when the event occurs. 299f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li * 309f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li */ 319f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Lipublic class ScriptTrigger implements Trigger { 329f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li private static final long serialVersionUID = 1804599219214041409L; 339f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li private final File mScript; 349f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li private final String mEventName; 359f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 369f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li public ScriptTrigger(String eventName, File script) { 379f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li mEventName = eventName; 389f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li mScript = script; 399f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li } 409f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 419f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li @Override 429f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li public void handleEvent(Event event, Context context) { 439f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li Intent intent = IntentBuilders.buildStartInBackgroundIntent(mScript); 449f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li // This is required since the script is being started from the TriggerService. 459f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 469f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li context.startActivity(intent); 479f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li } 489f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 499f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li @Override 509f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li public String getEventName() { 519f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li return mEventName; 529f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li } 539f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 549f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li public File getScript() { 559f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li return mScript; 569f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li } 579f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li} 58