mirror of https://github.com/kurisufriend/Clover
parent
0ea9775396
commit
64b5ee16da
@ -0,0 +1,107 @@ |
||||
/* |
||||
* Clover - 4chan browser https://github.com/Floens/Clover/
|
||||
* Copyright (C) 2014 Floens |
||||
* |
||||
* This program is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation, either version 3 of the License, or |
||||
* (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/ |
||||
package org.floens.chan.ui.controller; |
||||
|
||||
import android.content.ClipData; |
||||
import android.content.ClipboardManager; |
||||
import android.content.Context; |
||||
import android.view.ViewGroup; |
||||
import android.widget.ScrollView; |
||||
import android.widget.TextView; |
||||
import android.widget.Toast; |
||||
|
||||
import org.floens.chan.R; |
||||
import org.floens.chan.controller.Controller; |
||||
import org.floens.chan.ui.toolbar.ToolbarMenu; |
||||
import org.floens.chan.ui.toolbar.ToolbarMenuItem; |
||||
import org.floens.chan.ui.view.FloatingMenuItem; |
||||
import org.floens.chan.utils.AndroidUtils; |
||||
import org.floens.chan.utils.IOUtils; |
||||
import org.floens.chan.utils.Logger; |
||||
|
||||
import java.io.IOException; |
||||
import java.io.InputStream; |
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
import static org.floens.chan.utils.AndroidUtils.getAttrColor; |
||||
|
||||
public class LogsController extends Controller implements ToolbarMenuItem.ToolbarMenuItemCallback { |
||||
private static final String TAG = "LogsController"; |
||||
|
||||
private static final int COPY_ID = 101; |
||||
|
||||
private TextView logTextView; |
||||
|
||||
private String logText; |
||||
|
||||
public LogsController(Context context) { |
||||
super(context); |
||||
} |
||||
|
||||
@Override |
||||
public void onCreate() { |
||||
super.onCreate(); |
||||
|
||||
navigationItem.setTitle(org.floens.chan.R.string.settings_logs_screen); |
||||
|
||||
navigationItem.menu = new ToolbarMenu(context); |
||||
List<FloatingMenuItem> items = new ArrayList<>(); |
||||
items.add(new FloatingMenuItem(COPY_ID, R.string.settings_logs_copy)); |
||||
navigationItem.createOverflow(context, this, items); |
||||
|
||||
ScrollView container = new ScrollView(context); |
||||
container.setBackgroundColor(getAttrColor(context, org.floens.chan.R.attr.backcolor)); |
||||
logTextView = new TextView(context); |
||||
container.addView(logTextView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); |
||||
|
||||
view = container; |
||||
|
||||
loadLogs(); |
||||
} |
||||
|
||||
@Override |
||||
public void onMenuItemClicked(ToolbarMenuItem item) { |
||||
} |
||||
|
||||
@Override |
||||
public void onSubMenuItemClicked(ToolbarMenuItem parent, FloatingMenuItem item) { |
||||
if ((int) item.getId() == COPY_ID) { |
||||
ClipboardManager clipboard = (ClipboardManager) AndroidUtils.getAppContext().getSystemService(Context.CLIPBOARD_SERVICE); |
||||
ClipData clip = ClipData.newPlainText("Logs", logText); |
||||
clipboard.setPrimaryClip(clip); |
||||
Toast.makeText(context, R.string.settings_logs_copied_to_clipboard, Toast.LENGTH_SHORT).show(); |
||||
} |
||||
} |
||||
|
||||
private void loadLogs() { |
||||
Process process; |
||||
try { |
||||
process = new ProcessBuilder() |
||||
.command("logcat", "-d", "-v", "tag") |
||||
.start(); |
||||
} catch (IOException e) { |
||||
Logger.e(TAG, "Error starting logcat", e); |
||||
return; |
||||
} |
||||
|
||||
InputStream outputStream = process.getInputStream(); |
||||
logText = IOUtils.readString(outputStream); |
||||
logTextView.setText(logText); |
||||
} |
||||
} |
Loading…
Reference in new issue