15e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal/*
25e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal * Copyright (C) 2012 Google Inc.
35e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal * Licensed to The Android Open Source Project.
45e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal *
55e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal * Licensed under the Apache License, Version 2.0 (the "License");
65e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal * you may not use this file except in compliance with the License.
75e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal * You may obtain a copy of the License at
85e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal *
95e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal *      http://www.apache.org/licenses/LICENSE-2.0
105e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal *
115e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal * Unless required by applicable law or agreed to in writing, software
125e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal * distributed under the License is distributed on an "AS IS" BASIS,
135e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
145e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal * See the License for the specific language governing permissions and
155e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal * limitations under the License.
165e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal */
175e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
181ddcf0f2bf44d3c9db89112ef52510d9b2433ac4Vikram Aggarwalpackage com.android.mail.ui;
195e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
205e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwalimport android.app.ActionBar;
215e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwalimport android.app.Activity;
225e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwalimport android.app.Application;
235e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwalimport android.app.FragmentManager;
245e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwalimport android.app.LoaderManager;
255e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwalimport android.content.ComponentName;
265e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwalimport android.content.ContentResolver;
275e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwalimport android.content.Context;
285e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwalimport android.content.Intent;
295e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwalimport android.os.Bundle;
305e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwalimport android.view.ActionMode;
315e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwalimport android.view.MenuInflater;
325ff63747a1b5c6e2197528972cbc3ba808b09d8dAndy Huangimport android.view.MenuItem;
335e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwalimport android.view.View;
345e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwalimport android.view.Window;
355e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
367c401b7896910c00e6234e8774aab0be45740d32Vikram Aggarwal// Should not rely on any mail-specific packages.
37efe3d25aa19da172fd5c3ec39539cdd91f29e927Mindy Pereira
385e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal/**
394a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal * {@link RestrictedActivity} gives access to a subset of {@link Activity} methods. These methods
404a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal * match the signatures from {@link Activity}.
415e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal */
425e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwalpublic interface RestrictedActivity {
434a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /*
444a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * All methods are from android.app.Activity, and the doc strings need to point to the
454a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * underlying methods.
464a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
474a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal
484a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
494a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#findViewById(int)
504a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
514a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    View findViewById(int id);
524a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal
534a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
544a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#finish()
554a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
564a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    void finish();
574a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal
584a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
594a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#getActionBar()
604a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
614a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    ActionBar getActionBar();
624a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal
634a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
644a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#getApplication()
654a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
665e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal    Application getApplication();
675e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
684a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
694a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#getComponentName()
704a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
715e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal    ComponentName getComponentName();
725e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
734a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
744a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#getContentResolver()
754a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
765e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal    ContentResolver getContentResolver();
775e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
784a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
794a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#getFragmentManager()
804a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
815e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal    FragmentManager getFragmentManager();
825e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
834a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
844a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#getIntent()
854a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
865e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal    Intent getIntent();
875e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
884a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
894a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#getLoaderManager()
904a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
914a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    LoaderManager getLoaderManager();
924a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal
934a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
944a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#getMenuInflater()
954a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
965e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal    MenuInflater getMenuInflater();
975e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
984a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
994a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#getWindow()
1004a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
1014a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    Window getWindow();
1025e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
1034a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
1044a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#invalidateOptionsMenu()
1054a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
1064a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    void invalidateOptionsMenu();
1075e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
1084a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
1094a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#isChangingConfigurations()
1104a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
1115e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal    boolean isChangingConfigurations();
1125e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
1134a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
1144a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#isFinishing()
1154a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
1165e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal    boolean isFinishing();
1175e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
1184a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
1194a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#onBackPressed()
1204a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
1214a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    void onBackPressed();
1225e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
1234a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
1244a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#setContentView(int)
1254a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
1264a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    void setContentView(int layoutResId);
1275e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
1284a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
1294a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#setDefaultKeyMode(int)
1304a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
1314a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    void setDefaultKeyMode(int mode);
1325e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
1334a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
1344a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#setResult(int, Intent)
1354a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
1365e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal    void setResult(int resultCode, Intent data);
1375e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
1384a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
1394a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#setTitle(CharSequence)
1404a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
1414a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    void setTitle(CharSequence title);
1424a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal
1434a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
1444a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#showDialog(int)
1454a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
1465e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal    void showDialog(int id);
1475e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
1484a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
1494a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#startActionMode(android.view.ActionMode.Callback)
1504a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
1515e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal    ActionMode startActionMode(ActionMode.Callback callback);
1525e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
1534a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
1544a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#startActivityForResult(Intent, int)
1554a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
1564a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    void startActivityForResult(Intent intent, int requestCode);
1575e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
1584a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
1592861b6a649090ce1401b4bb04dd87df5bb26472bPaul Westbrook     * @see android.app.Activity#startActivityForResult(Intent, int)
1602861b6a649090ce1401b4bb04dd87df5bb26472bPaul Westbrook     */
1612861b6a649090ce1401b4bb04dd87df5bb26472bPaul Westbrook    void startActivity(Intent intent);
1622861b6a649090ce1401b4bb04dd87df5bb26472bPaul Westbrook
1632861b6a649090ce1401b4bb04dd87df5bb26472bPaul Westbrook    /**
1644a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#startSearch(String, boolean, Bundle, boolean)
1654a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
1664a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    void startSearch(String initialQuery, boolean selectInitialQuery,
1675e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal            Bundle appSearchData, boolean globalSearch);
1685e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal
1694a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    /**
1704a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     * @see android.app.Activity#getApplicationContext()
1714a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal     */
1724a5c530b0a67e22bd74df8f10f29278dc8d86459Vikram Aggarwal    Context getApplicationContext();
173cd8bf0a4c081f95ac8666025adb85d4908c2018aVikram Aggarwal
174cd8bf0a4c081f95ac8666025adb85d4908c2018aVikram Aggarwal    /**
175cd8bf0a4c081f95ac8666025adb85d4908c2018aVikram Aggarwal     * Returns the context associated with the activity. This is different from the value returned
176cd8bf0a4c081f95ac8666025adb85d4908c2018aVikram Aggarwal     * by {@link #getApplicationContext()}, which is the single context of the root activity. Some
177cd8bf0a4c081f95ac8666025adb85d4908c2018aVikram Aggarwal     * components (dialogs) require the context of the activity. When implementing this, you can
178cd8bf0a4c081f95ac8666025adb85d4908c2018aVikram Aggarwal     * return this, since each activity is also a context.
179cd8bf0a4c081f95ac8666025adb85d4908c2018aVikram Aggarwal     * @return the context associated with this activity.
180cd8bf0a4c081f95ac8666025adb85d4908c2018aVikram Aggarwal     */
181cd8bf0a4c081f95ac8666025adb85d4908c2018aVikram Aggarwal    Context getActivityContext();
182efe3d25aa19da172fd5c3ec39539cdd91f29e927Mindy Pereira
183efe3d25aa19da172fd5c3ec39539cdd91f29e927Mindy Pereira    /**
1845ff63747a1b5c6e2197528972cbc3ba808b09d8dAndy Huang     * @see Activity#onOptionsItemSelected(MenuItem)
1855ff63747a1b5c6e2197528972cbc3ba808b09d8dAndy Huang     */
1865ff63747a1b5c6e2197528972cbc3ba808b09d8dAndy Huang    boolean onOptionsItemSelected(MenuItem item);
1874765c5c90802d0abcf2b05c4967e7dd7d2284f9aMindy Pereira
1885ddd1dd97bfd168f00fe5cf553cccbe6989c9b64Paul Westbrook    /**
1895ddd1dd97bfd168f00fe5cf553cccbe6989c9b64Paul Westbrook     * @see Activity#hasWindowFocus()
1905ddd1dd97bfd168f00fe5cf553cccbe6989c9b64Paul Westbrook     */
1915ddd1dd97bfd168f00fe5cf553cccbe6989c9b64Paul Westbrook    public boolean hasWindowFocus();
1925ddd1dd97bfd168f00fe5cf553cccbe6989c9b64Paul Westbrook
1934765c5c90802d0abcf2b05c4967e7dd7d2284f9aMindy Pereira    void setPendingToastOperation(ToastBarOperation op);
1944765c5c90802d0abcf2b05c4967e7dd7d2284f9aMindy Pereira
1954765c5c90802d0abcf2b05c4967e7dd7d2284f9aMindy Pereira    ToastBarOperation getPendingToastOperation();
1965e5ac748eadbb17eee84b39a424b8b9270ade46cVikram Aggarwal}
197