From a2249d130ae530d394669024a95fd420e925f70e Mon Sep 17 00:00:00 2001 From: Victor Date: Sun, 5 Apr 2015 15:12:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D1=8C=20=D0=BE=D1=82=D0=BA=D1=80=D1=8B=D1=82?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=81=D1=86=D0=B5=D0=BD=D0=B0=D1=80=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B8=D0=B7=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2=D0=BE?= =?UTF-8?q?=D0=B9=20=D1=81=D0=B8=D1=81=D1=82=D0=B5=D0=BC=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AndroidManifest.xml | 12 +++++++++- .../everlastingsummer/ViewActivity.java | 22 ++++++++++++++++--- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 5e46a1a..46ebdd1 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -30,7 +30,17 @@ + android:label="@string/app_name"> + + + + + + diff --git a/src/com/annimon/everlastingsummer/ViewActivity.java b/src/com/annimon/everlastingsummer/ViewActivity.java index 6e0c65d..985874d 100644 --- a/src/com/annimon/everlastingsummer/ViewActivity.java +++ b/src/com/annimon/everlastingsummer/ViewActivity.java @@ -1,10 +1,13 @@ package com.annimon.everlastingsummer; +import java.io.InputStream; import java.util.HashMap; import java.util.Map; import android.annotation.SuppressLint; import android.app.Activity; +import android.content.Intent; import android.media.MediaPlayer; +import android.net.Uri; import android.os.Bundle; import android.text.*; import android.text.style.ForegroundColorSpan; @@ -97,10 +100,23 @@ public final class ViewActivity extends Activity { names.put("odn", new Person("Одногруппник", 0xFFC0C0C0)); names.put("mt_voice", new Person("Голос", 0xFF00EA32)); // night 0xFF00B627, sunset: 0xFF00EA32, day: 0xFF00EA32, prolog: 0xFF00EA32 - final String name = getIntent().getStringExtra(EXTRA_NAME); - final String scriptpath = PathResolver.script(name); + String scriptpath = ""; + final Intent intent = getIntent(); try { - Parser.parse(Lexer.tokenize( IOUtil.readContents(getAssets().open(scriptpath)) )); + InputStream stream = null; + if (intent.hasExtra(EXTRA_NAME)) { + scriptpath = PathResolver.script( intent.getStringExtra(EXTRA_NAME) ); + stream = getAssets().open(scriptpath); + } else if (intent.getData() != null) { + final Uri fileUri = intent.getData(); + scriptpath = fileUri.getPath(); + stream = getContentResolver().openInputStream(fileUri); + } else { + Toast.makeText(this, "Нет данных для отображения", Toast.LENGTH_LONG).show(); + finish(); + } + + Parser.parse(Lexer.tokenize( IOUtil.readContents(stream) )); Parser.getInstance().next(); } catch (Exception ex) { Toast.makeText(this, "Ошибка при открытии файла " + scriptpath, Toast.LENGTH_LONG).show();