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