1 /*
2  * Copyright (C) 2020 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.systemui.dump;
18 
19 import android.app.Service;
20 import android.content.Intent;
21 import android.os.IBinder;
22 
23 import java.io.FileDescriptor;
24 import java.io.PrintWriter;
25 
26 import javax.inject.Inject;
27 
28 /**
29  * Service for dumping extremely verbose content during a bug report
30  *
31  * Our primary service, SystemUIService, is dumped during the CRITICAL section of a bug report.
32  * This has some advantages (we get to go first!), but also imposes strict limitations on how much
33  * we can dump. This service exists to handle any content that is too large to be safely dumped
34  * within those constraints, namely log buffers. It's dumped during the NORMAL section, along with
35  * all other services.
36  */
37 public class SystemUIAuxiliaryDumpService extends Service {
38     private final DumpHandler mDumpHandler;
39 
40     @Inject
SystemUIAuxiliaryDumpService(DumpHandler dumpHandler)41     public SystemUIAuxiliaryDumpService(DumpHandler dumpHandler) {
42         mDumpHandler = dumpHandler;
43     }
44 
45     @Override
onBind(Intent intent)46     public IBinder onBind(Intent intent) {
47         return null;
48     }
49 
50     @Override
dump(FileDescriptor fd, PrintWriter pw, String[] args)51     protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
52         // Simulate the NORMAL priority arg being passed to us
53         mDumpHandler.dump(
54                 fd,
55                 pw,
56                 new String[] { DumpHandler.PRIORITY_ARG, DumpHandler.PRIORITY_ARG_NORMAL });
57     }
58 }
59