Amazon Fire HD 8 の「ドキュメント」

Fire HD 8 にデフォルトでインストールされているアプリ「ドキュメント」.

パッケージ名は com.amazon.zico .

いわゆる「ファイルマネージャ」アプリです.

電子書籍を中心としたドキュメント系のファイルを操作するためにつくられたAmazon製のアプリです.

起動すると以下3つのタブが表示されます.

それぞれ見ていきます.

SEND-TO-KINDLEストレージ

以下サービスを利用して端末に送信したファイルを参照できます.

Amazon.co.jp ヘルプ: Kindleパーソナル・ドキュメントサービス

Amazon.co.jp ヘルプ: Send-to-Kindle Eメールアドレスの使い方について

私, なぜか送信できません. 無反応です. 謎です.

もしかして, 許可する送信元アドレスが gmail ではダメだったりする?

CLOUD DRIVE

以下のクラウドストレージにパソコンなどからアップロードしたファイルが自動的に同期されます.

Amazon Drive

ローカルストレージ

文字通りローカルの保存場所です.

Android が持っている内部ストレージ のディレクトリを参照していくことができます.

Androidでいうファイルマネージャアプリのようにディレクトリをタップするとそれを開きファイルをタップするとそれに対応したアプリで開こうとします.

なのでここで確認できる(端末内で保存している)ファイルが mobi または pdf 形式のファイルの場合は Kindle アプリが起動して電子書籍を読むことができます.

対応するアプリがインストールされていなければ epub 形式のファイルは読めません.

「Kindle Fire HD 8」の対応ファイルとインテントフィルター

以下の形式のファイルが対応(推奨?) されているようです.

Kindle Fireドライブを開き、内部ストレージフォルダを開きます。
コンピュータにコンテンツをダウンロードしたフォルダから、端末の該当フォルダにドラッグします。
Books: AZW(.azw3), MOBI(non-DRM), KF8
Documents: TXT, PDF, PRC, DOC, DOCX
Music: MP3, non-DRM AAC (.m4a), MIDI, PCM/WAVE, OGG, WAV
Pictures: JPEG, GIF, PNG, BMP
Movies: MP4, 3GP, VP8 (.webm)

Amazon.co.jp ヘルプ: コンピュータからKindle Fireへコンテンツを転送する

Amazon.co.jp ヘルプ: USB経由でFireタブレットまたはKindle端末にパーソナル・ドキュメントを転送する

画面左から表示されるメニューのそれぞれにSDカード以下各ディレクトリが対応しているようです.


shell@douglas:/sdcard $ ls -d */
Alarms/
Android/
Books/
DCIM/
Documents/ <-- ドキュメント
Download/  <-- ダウンロード (この下に 添付ファイル)
Movies/
Music/
Notifications/
Pictures/
Podcasts/
Ringtones/
kindle/

おまけ

以下からAmazon公式にWEB版リーダーも公開されています.

Kindle Cloud Reader

(つづく)


Convert Java File to Kotlin の後に その2 「apply」

View や Presenter内での処理振り分け.


private void showFilterLabel() {
    switch (mCurrentFiltering) {
        case ACTIVE_TASKS:
            mTasksView.showActiveFilterLabel();
            break;
        case COMPLETED_TASKS:
            mTasksView.showCompletedFilterLabel();
            break;
        default:
            mTasksView.showAllFilterLabel();
            break;
    }
}

android-architecture/TasksPresenter.java at todo-mvp · googlesamples/android-architecture

apply

同じオブジェクトに対して複数のメソッドをすばやく呼び出す必要がある場合は、apply {} を使用します


private fun showFilterLabel() {
    tasksView.apply {
        when (filtering) {
            TasksFilterType.ACTIVE_TASKS -> showActiveFilterLabel()
            TasksFilterType.COMPLETED_TASKS -> showCompletedFilterLabel()
            else -> showAllFilterLabel()
        }
    }
}

「with」との区別が良く話題になっていますので見ておくといいです.

Mindorks | Become a complete and happy Android developer

Convert Java File to Kotlin の後に その1「メンバとコンストラクタ」

Convert Java File to Kotlin の後に その2 「apply」

Convert Java File to Kotlin の後に その3 「Null Safety」

Convert Java File to Kotlin の後に その4 「lateinit」

Convert Java File to Kotlin の後に その5 「String Templates」


Convert Java File to Kotlin の後に その1「メンバとコンストラクタ」

まずは「Convert Java File to Kotlin」で変換してなんとなくは動いていますが.

一通り公式リファレンスは流し読みしていましたが

コードをみているとKotolinの持つ恩恵を得ているような気がしません.

逆に分かりづらくなったようにも思えたりします.

先人たちのコードを見ながら自然なKotlinコードに書き換えていきましょう.

メンバとコンストラクタ

以下のようなJavaコード.


public class TasksPresenter implements TasksContract.Presenter {

    private final TasksRepository mTasksRepository;

    private final TasksContract.View mTasksView;

    private TasksFilterType mCurrentFiltering = TasksFilterType.ALL_TASKS;

    private boolean mFirstLoad = true;

    public TasksPresenter(@NonNull TasksRepository tasksRepository, @NonNull TasksContract.View tasksView) {
        mTasksRepository = checkNotNull(tasksRepository, "tasksRepository cannot be null");
        mTasksView = checkNotNull(tasksView, "tasksView cannot be null!");

        mTasksView.setPresenter(this);
    }

android-architecture/TasksPresenter.java at todo-mvp · googlesamples/android-architecture

Kotlin のプロパティを使って適切に初期化します. ほとんどのメンバ変数に割り当てられたコンストラクタパラメータは必要ありません.


class TasksPresenter(val tasksRepository: TasksRepository, val tasksView: TasksContract.View)
    : TasksContract.Presenter {

    override var filtering = TasksFilterType.ALL_TASKS

    private var mFirstLoad = true

    init {
        tasksView.setPresenter(this)
    }

主コンストラクタに注釈や可視性修飾子がない場合は、コンストラクタキーワードを省略できます。

Classes and Inheritance - Kotlin Programming Language

Convert Java File to Kotlin の後に その1「メンバとコンストラクタ」

Convert Java File to Kotlin の後に その2 「apply」

Convert Java File to Kotlin の後に その3 「Null Safety」

Convert Java File to Kotlin の後に その4 「lateinit」

Convert Java File to Kotlin の後に その5 「String Templates」