Courtesy: GitHub

Android DocumentCentricRecents Sample

Sample demonstrating the basic usage of the new 'Document Centric Apps' API. It let's you create new documents in the system overview menu and persists its state through reboots.

Introduction

This sample shows the basic usage of the new Document-Centric Apps API. The new API modifies the meaning of the Intent#FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET flag, which is now deprecated. In versions before L it serves to define a boundary between the main task and a subtask. The subtask holds a different thumbnail and all activities in it are finished when the task is reset. In L this flag causes a full break with the task that launched it. As such it has been renamed to Intent#FLAG_ACTIVITY_NEW_DOCUMENT.

This sample mainly uses Intent flags in code. But Activities can also specify in their manifests that they shall always be launched into a new task in the above manner using the new activity attribute documentLaunchMode which may take on one of three values, “intoExisting” equivalent to NEW_DOCUMENT, “always” equivalent to NEW_DOCUMENT | MULTIPLE_TASK, “none” the default, and “never” which will negate the effect of any attempt to launch the activity with NEW_DOCUMENT.

Pre-requisites

  • Android SDK 26
  • Android Build Tools v26.0.1
  • Android Support Repository

Screenshots

Screenshot Screenshot

Getting Started

This sample uses the Gradle build system. To build this project, use the "gradlew build" command or use "Import Project" in Android Studio.

Support

If you've found an error in this sample, please file an issue: https://github.com/googlesamples/android-DocumentCentricRecents

Patches are encouraged, and may be submitted by forking this project and submitting a pull request through GitHub. Please see CONTRIBUTING.md for more details.

License

Copyright 2017 The Android Open Source Project, Inc.

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you 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.

compile "com.android.support:support-v4:26.1.0"

compile "com.android.support:support-v13:26.1.0"

compile "com.android.support:cardview-v7:26.1.0"

compile "com.android.support:appcompat-v7:26.1.0"

compileSdkVersion 26

minSdkVersion 21

targetSdkVersion 26

package com.example.android.documentcentricapps

versionCode 1

versionName 1.0

DocumentCentricActivity

DocumentCentricActivity shows the basic usage of the new Document-Centric Apps API. The new API modifies the meaning of the {@link Intent#FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET} flag, which is now deprecated. In versions before L it serves to define a boundary between the main task and a subtask. The subtask holds a different thumbnail and all activities in it are finished when the task is reset. In L this flag causes a full break with the task that launched it. As such it has been renamed to {@link Intent#FLAG_ACTIVITY_NEW_DOCUMENT}. * This sample mainly uses Intent flags in code. But Activities can also specify in their manifests that they shall always be launched into a new task in the above manner using the new activity attribute documentLaunchMode which may take on one of three values, “intoExisting” equivalent to NEW_DOCUMENT, “always” equivalent to NEW_DOCUMENT | MULTIPLE_TASK, “none” the default, and “never” which will negate the effect of any attempt to launch the activity with NEW_DOCUMENT.

Returns an new {@link Intent} to start {@link NewDocumentActivity} as a new document in overview menu. To start a new document task {@link Intent#FLAG_ACTIVITY_NEW_DOCUMENT} must be used. The system will search through existing tasks for one whose Intent matches the Intent component name and the Intent data. If it finds one then that task will be brought to the front and the new Intent will be passed to onNewIntent(). Activities launched with the NEW_DOCUMENT flag must be created with launchMode="standard".

NewDocumentActivity

Represents a "document" in the new overview notion. This is just a placeholder. Real world examples of this could be: *

  • Document Editing
  • Browser tabs
  • Message composition
  • Sharing
  • Shopping item details