diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml index 0fe694d78..b9a96c667 100644 --- a/samples/ApiDemos/AndroidManifest.xml +++ b/samples/ApiDemos/AndroidManifest.xml @@ -998,6 +998,24 @@ + + + + + + + + + + diff --git a/samples/ApiDemos/res/layout/action_bar_navigation.xml b/samples/ApiDemos/res/layout/action_bar_navigation.xml new file mode 100644 index 000000000..81549503c --- /dev/null +++ b/samples/ApiDemos/res/layout/action_bar_navigation.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + diff --git a/samples/ApiDemos/res/layout/action_bar_navigation_target.xml b/samples/ApiDemos/res/layout/action_bar_navigation_target.xml new file mode 100644 index 000000000..1f8f063ae --- /dev/null +++ b/samples/ApiDemos/res/layout/action_bar_navigation_target.xml @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/samples/ApiDemos/res/values/strings.xml b/samples/ApiDemos/res/values/strings.xml index 8fd47a7d8..f26a70d30 100644 --- a/samples/ApiDemos/res/values/strings.xml +++ b/samples/ApiDemos/res/values/strings.xml @@ -886,6 +886,19 @@ Toggle tab mode Remove all tabs + App/Action Bar/Action Bar Navigation + Demonstrates various ways to navigate in + applications involving the action bar. This activity has been launched as the + root of the app\'s task. + New in-task activity + New document + + App Nav Child + This is a sub-activity launched by the + application. It may be in either the app\'s main task or another task. Press + up on the action bar to navigate up in the app\'s hierarchy, regardless of where + this activity appears. + diff --git a/samples/ApiDemos/src/com/example/android/apis/ApiDemos.java b/samples/ApiDemos/src/com/example/android/apis/ApiDemos.java index ffce0270b..fd0492c0e 100644 --- a/samples/ApiDemos/src/com/example/android/apis/ApiDemos.java +++ b/samples/ApiDemos/src/com/example/android/apis/ApiDemos.java @@ -143,7 +143,8 @@ public class ApiDemos extends ListActivity { protected void onListItemClick(ListView l, View v, int position, long id) { Map map = (Map)l.getItemAtPosition(position); - Intent intent = (Intent) map.get("intent"); + Intent intent = new Intent((Intent) map.get("intent")); + intent.addCategory(Intent.CATEGORY_SAMPLE_CODE); startActivity(intent); } } diff --git a/samples/ApiDemos/src/com/example/android/apis/app/ActionBarNavigation.java b/samples/ApiDemos/src/com/example/android/apis/app/ActionBarNavigation.java new file mode 100644 index 000000000..c22b5d3c3 --- /dev/null +++ b/samples/ApiDemos/src/com/example/android/apis/app/ActionBarNavigation.java @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.example.android.apis.app; + +import android.app.ActionBar; +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.Window; +import android.widget.TextView; +import android.widget.Toast; +import com.example.android.apis.R; + +/** + * This demonstrates implementing common navigation flows with the action bar. + */ +public class ActionBarNavigation extends Activity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Turn on the up affordance. + final ActionBar bar = getActionBar(); + bar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP); + + setContentView(R.layout.action_bar_navigation); + TextView text = (TextView)findViewById(R.id.launchedfrom); + if (getIntent().hasCategory(Intent.CATEGORY_SAMPLE_CODE)) { + text.setText("This was launched from ApiDemos"); + } else { + text.setText("This was created from up navigation"); + } + } + + public void onNewActivity(View button) { + Intent intent = new Intent(this, ActionBarNavigationTarget.class); + startActivity(intent); + } + + public void onNewDocument(View button) { + Intent intent = new Intent(this, ActionBarNavigationTarget.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); + startActivity(intent); + } +} diff --git a/samples/ApiDemos/src/com/example/android/apis/app/ActionBarNavigationTarget.java b/samples/ApiDemos/src/com/example/android/apis/app/ActionBarNavigationTarget.java new file mode 100644 index 000000000..9ddc2a219 --- /dev/null +++ b/samples/ApiDemos/src/com/example/android/apis/app/ActionBarNavigationTarget.java @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.example.android.apis.app; + +import android.app.ActionBar; +import android.app.Activity; +import android.os.Bundle; +import android.view.Menu; +import android.view.MenuItem; +import android.view.Window; +import android.widget.Toast; +import com.example.android.apis.R; + +/** + * Target launch activity for demonstrations from {@link ActionBarNavigation}. + */ +public class ActionBarNavigationTarget extends Activity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.action_bar_navigation_target); + + // Turn on the up affordance. + final ActionBar bar = getActionBar(); + bar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP); + } +} diff --git a/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.java b/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.java index c3e1ed2f0..568da2c0a 100644 --- a/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.java +++ b/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.java @@ -1061,6 +1061,14 @@ public class DeviceAdminSample extends PreferenceActivity { Toast.makeText(context, status, Toast.LENGTH_SHORT).show(); } + @Override + public void onReceive(Context context, Intent intent) { + if (intent.getAction() == ACTION_DEVICE_ADMIN_DISABLE_REQUESTED) { + abortBroadcast(); + } + super.onReceive(context, intent); + } + @Override public void onEnabled(Context context, Intent intent) { showToast(context, context.getString(R.string.admin_receiver_status_enabled));