海月玲二

カテゴリ別リスト:マイカテゴリ-リリース情報(78件):新しい順

検索結果:78件中 1件-25件


使ってて不便だった部分をちょこちょこ機能追加した.

まず,「長くなってくるとスクロールがめんどい」問題のため,ListViewとかにもあるFastScrollerを追加してみた.

というか,俺は長い間この機能はTextViewにもあるものだとばかり思っていて,いろいろ調べたり試したりしてもうまくいかず困っていたのだが,実際にはこれはListViewにしかない機能だったんだな.Jota Text Editorにはついていたので,TextViewの機能だと思いこんでいたのだ.Jotaでは,ListView用のものを元にして自前で実装していたことに,ようやく気付いた次第である.

しょうがないので,Jotaの実装を簡略化してKotlinで書いて,やっつけで実装してみた.やっつけのわりにはそれらしく動いている.

それから,「一旦レベルを深くしてから戻すとき,しばらく前のやつと同じレベルに戻したいことがよくあるのに,何回Shift+Tabすればいいのかぱっとわからない」問題に対応するため,レベル数を表す縦線を入れてみた.これはVisual Studio Codeにあった,インデントレベルを表示する拡張機能のパクりである.あんなにカラフルじゃないけど.

あと,やっとフォントサイズ変更ダイアログをつけてみて,ついでに,インデント量や行頭ドットの大きさなんかも合わせて変わるようにしてみた.だいぶ見栄えがよくなってきた.

正直,日本ではアウトライナーというと2ペイン型が人気のようなので,KLOAは俺以外誰も使ってないんじゃないだろうか.TreeNoteのほうが好きな人は,自由に勝手版などを作って楽しむといいと思う.俺のクソコードを読むぐらいならイチから書いたほうがいいかもしれんが.

▽モード(漢字の読みを入力中)にバックスペースで文字を消していって,最後の一文字を消してしまうと▽モードを抜けてしまうようになっていたのを,▽が残るように修正してみた.「SKK日本語FEPではこうなってるので,AndroidSKKでも合わせたらどうか」という意見をもらったので試してみた次第.よく考えたらuim-skkとかもこういう動作だな.確かにシフトキーを押しなおすのは若干めんどうな気もする(emacsではどうだったかもう覚えてない).

ついでに再変換のときに表示が変だったり,Abbrevモードの再変換したときの動作が変だったり,フリック感度の調整が若干変だったりしたのをちょこちょこ直した.まあどうせ再変換とかAbbrevモードとか誰も使ってないかな.

さらに言えば,AndroidのKotlin style guideとか出てきたので,それに合わせて改行とか直してみたけど,これは本当にどうでもいい.

今回は少々操作感が変わるところがあるので,アップグレードしてみる人は注意してほしい.ダウンロードページに3.2も置いておいたので,どうもやっぱり嫌だというひとは,元に戻すことも可能.

  • フリック判定の再調整

フリック・カーブフリック操作の判定を見直してみた.フリック感度の設定もリセットされるはず.俺個人は,3.3は以前より誤認識が減ったような気がしてるけど,俺の気のせいかもしれない.ご意見募集中.

  • 音声入力キーボードの追加

日本語モードから,「カナ」の下フリックで音声入力モードに入れる.音声入力しながら句読点やカッコも入れられるので,いちおう長文も入力できると思う.

ただし,下フリックをつけなければいけなかったので,一番下のキーではどうにも入力が難しく,やむなく「ABC」キーと位置を入れかえた.これもちょっと慣れるまで気になると思う.しばらく使ってたら,qwertyモードと同じ位置になったわけなので,むしろいいような気もしてきたけど.

こないだの旅行中,スマートフォンに向かって音声でメモか何かを取ってるやつをけっこう見かけて,なんかうらやましくなったので付けてみた機能である.じっさい付けてみると,GoogleのSpeechRecognizerが,日本語の文でもかなり実用できそうな精度で認識するのでびっくりした.オフラインですらほぼ問題ない.こんな小さなコンピューターでここまでのことが可能とは,すごい時代になったものだ.

最初は,一般的なGoogle音声入力のダイアログを出すだけにしようと思ったのだが,あれだと句読点が入れられないのな.俺が音声入力するとすれば,それは旅行中の日記を書くときなので,句読点が入れられないのは不便なのだ.しかたがないので自前で音声モードをつけることにした.まあ外国なら,日本語で音声入力しても内容を聞かれるおそれもないしな!

KLOAは所詮俺の俺による俺用のアプリなので,実は今まで行頭ドットのサイズはピクセルサイズ決め打ちだった(つまりZC553KLの画面が前提).なんとなく別解像度のエミュレータで見てみて,さすがにちょっとどうかという気がしてきたので,とりあえず行の高さを基準にするように直してみた.

あと横画面のときにノート表示しているとちゃんと右半分に出るようにした.これでいちおう,ZC553KLと違う画面でもそれなりに使える感じになっただろうか.

ところで,こいつのテキスト編集は要するにAndroidのEditTextそのままだし,しかもその上で入力を監視していちいちレイアウトを調整したりしているので,テキストサイズがでかくなってくると無理が出る.試しに,1万行ぐらいのファイルを作って読みこませてみたら,何か操作するたびに数秒待たされるようになって,とても使えたものではなかった.何かガチな用途で使おうと思った人は思いなおすといいと思う.

ホイストを実装すると多少マシになるかもしれんが,どうだろ.

まあその,要するにKotlinに書きかえてみただけなのだが,それだけではなんなので,いくつか修正したりちょっとした機能を加えたりしてみた.

今回追加した変換候補絞りこみ機能は,わりと適当に作ったので,なんか変な挙動とかあるかもしんない.あと本家SKKの機能と比べると,「スペースキーを押した後で」発動させるものだという点が違う.というかSKK日本語入力FEPのパクりだ.SKK日本語入力FEPの中の人も言っているが,この機能はスペースキーを押して「うわぁ同音の候補いっぱいじゃんめんどくせえ」ってなった後で発動できなければほぼ意味がないと思うので,こっちの仕様にした.最初から「樹木のジュ」とかわかってれば,樹木と入力して消したらいいんだよ.

あとAbbrevモードでスペースを押さずにenterを押すと,そのままアルファベットを確定する仕様にしたのも,SKK日本語入力FEPのページで読んだ意見にもとづく変更だ.確かに,一時的に英単語とかを入力するとき,このほうがCtrlとか押す手間がはぶけるな.

ところで,今までの版だとMarshmallowの端末でステータスバーのアイコン(ハードキーモードで出る,モードを示すやつ)がまっしろになるんだけど,俺の端末が変とかじゃないよね? 単なるビットマップのはずなのになんで一部だけ色とか変わるんだろう.しょうがないので,単色のVector Drawableのアイコンを用意してみたら,こんどはKitKat以下でちゃんと表示されなくてバージョンで分岐するはめになった.このアプリに限らずだんだんめんどくさくなってきたので,Lollipop以降だけ対象にしようかなあと思わなくもない.

また少しバグ修正.ハードウェアキーボードの接続が切れたときとか,最初や最後のアイテムを動かそうとしたときとかに落ちるのを回避した.あとテキスト折り返し位置がおかしくなるのをさらに何パターンか修正.初期バージョンに比べればまあまあ実際に使えないこともない気がしてきたが,まだバグとか変な挙動とかあると思うので,誰か気付いたら教えてください.

ていうかDynamicLayout#reflow()が思ったときに呼ばれないのはなんでなんだろうな……Spanが変わったら呼ばれるようにしといてもおかしくないと思うんだけど.

やっと「ノートを常時表示する」という機能を付けた.まだ横画面のときでも下に出てしまうけど.

なんかアレだ,TreeNoteのときはSplitPaneLayoutとか用意していろいろやってたけど,今回は単にViewのサイズをその場で変更するだけの単純な形式にしている.別にこれで問題ないんじゃなかろうか.

あと子項目の展開・格納,最下部のマージンを空ける機能をつけた.前者は技術的にちょっと面白い.「完全に何も表示されなくなるSpan」というものが必要な場合,draw()を空にしてgetSize()でゼロを返すだけではなくchooseHeight()でもゼロを設定するようにしないと,空の行が表示されちゃうのな.

IME用に最下部にマージンを空ける機能は,ほかのアプリで見たことがないのだけど,実際にハードウェアキーボードでSKKと使ってるとすんごい便利である.入力中の文字がぴょこぴょこ上下しないので大変快適だ.というか,もしかすると普通のIMEは,ハードウェアキーボードを繋いでてもいちいち表示が出たり消えたりしないんだろうか? むしろSKKのほうで,候補表示のサイズのViewを表示し続けるようにしたほうがいいのかな?

内部的にもいろいろ整理して,だいぶんKotlinらしいプログラムになってきたかな.例によって一人で遊んでるだけだからよくわからないけど.

もうちょっと更新.

カットペーストや上下移動のときとかにレベルや親子関係がおかしくなるのとか,アンドゥでノートが復活しないのとか,いくつかバグを直してみた.なんとか普通に使えるようになってきたかな?

さっそくいくつかバグがあったので修正した.ノートのないところでアンドゥすると落ちたりする致命的なやつとか,ファイルを保存してもアンドゥボタンが押せちゃったりするやつとか.あと「改行コードの設定」が全然そうなってなかった.コピーして直すつもりで忘れてた間抜けなバグである.

TreeNoteで文章とか書くとき,トピック新規作成のテキストボックスが分かれていたり,既存のトピックを修正するのにいちいち長押ししたりするのは面倒だと,かなり前から思ってはいた.「EditTextにTextWatcherをつけて,改行されるごとに自動的にBulletSpan的なものを貼りなおしてやれば,箇条書きモードみたいにできるのではないか?」というのも,だいぶ前から思ってはいたのだ.

というわけで,yet anotherなアウトライナーである.「ListView系のものを使っていない」というのがほぼ唯一の特徴だ.なんかPowerPointで箇条書きを書くみたいなかんじで使える.例によってキーボードショートカット機能も完備しているので,物理キーボードがあればTabとかShift+Tabで階層の上げ下げができたりして,ますますPowerPointみたい.

今回,キーボードショートカットの仕組みをだいぶ改善したので,なんとモディファイヤキーも自由に設定できる.PromoteをShift+TabにしてMove UpをCtrl+Alt+kにするとか普通に可能だ.けっこう気にいったので,AndroidSKKとかHowmmにも入れようかな.

現バージョンだと,各トピックに対するノート(TreeNoteで言うところの「本文」のぶぶん)は,なんとノート編集画面に行かないとそもそも表示されない.たぶん2ペイン派には使いにくいかも.ちょっとあんまりなのでそのうちなんとかしたいけど,どういう形が便利だろうか.正直俺自身は1ペイン派なので,もひとつぴんと来ない.

あと,少なくとも検索機能とホイスト(ズーム)機能はそのうち付ける予定.

初回なのでURLも貼っておくとここである.使ってみるという人は,設定から手動で権限を許可しないとファイルのセーブ・ロードができないかもしれないこと(ページ冒頭の注意のとおり)と,なにぶん初期バージョンなので不安定なことにご注意を.現在のところ,トピックを上下に動かした時に表示レイアウトが崩れることがある,というバグが判明している.何か一文字打ったら直るのだが,どうも見苦しい.うーん.

どうでもいいが,相変らずアプリ名やアイコンをデザインするセンスがない.何かマシな案はないだろうか.

いろいろ要望とかもあったので,たまには更新してみた.

  • ソフトキーボードの数字モードを若干変更
  • ソフトキーボードの日本語モードで,括弧とかのキーを追加(シフト中)

記号をもうちょっと使いそうなやつに変えたりとか,そういう調整.かぎ括弧は本来最下段の下フリックにあったのだが,若干入れにくいので,シフトキー→記号キーフリックで入力するようにした.

  • 単語登録中にクリップボードから貼り付けできるようにした
  • 再帰的に単語登録できるように(単語登録中に別の単語登録が可能に)した

単語登録のちょっとした機能改善.

  • Gingerbreadの端末で,設定画面が開けないバグに対処

na2co3氏の指摘で初めて気付いた.場当たり的に対処しただけなので,とりあえず落ちはしないはずだけど,画面は乱れたり真っ黒になったりするかも.動かしたら表示されると思うんだけど.

なお,na2co3氏におかれましては,再帰的単語登録についても氏のコードを参考に(というか丸写しに近い)させていただきました.感謝いたします.

しかしもうGingerbreadの対応も正直めんどうになってきたな.4以降だけ対応にしちゃってもいいかもしんない.

あといつも思うけど,「より一般的な機能が導入されたときに,それまでのやつをdeprecatedにする」ってのやめてほしいなあ.たとえば,テキストしか使わないのに,わざわざ複数の形式をサポートしたクリップボードapiを使って処理するのめんどくさい.初期からあるテキスト専用のやつは簡単でいいのに.Preference画面についても,いちいちFragment強要するのやめてほしい.たまにしか触らないんだし,画面がでかい端末でも,単なるリストで別に問題ないと思う.

メジャーバージョンが上がっているのは,内部的に大幅に書き変わっているためと,Android 2.2以下を切り捨てたからである.ついにIS01では全く使えなくなった.いやIS01なら1.6を使ったほうがいいと思うけど.

今回は,恐怖の巨大クラスSKKEngine.javaがついに整理されたという面が大きい.SKK関係とAndroid関係がだいたい分割されたので,jp.deadend.noname.skk.engineパッケージはjavaで書いたSKKライブラリと言えなくもないかもしれない.言いすぎか.

使う人にとっては,

  • Abbrevモード用ソフトキーボード追加(フリックモードで,シフトを押してからabbrキー)
  • 数字入力用ソフトキーボード追加(フリックモードで,カナキーを上フリック)
  • 複数辞書(設定画面の「辞書管理」で新しい辞書を読みこむ.UTF8に変換しておくこと)
  • ハードウェアキーボードでも,読み入力中の補完候補一覧をtabキーとピリオドキーで選択できる

あたりの機能は,それなりに使う人もいるかも.あとはそうだな,登録中にASCII文字も打てるようにしたり,変換候補にセミコロンやスラッシュが入ってても大丈夫にしたので,顔文字とか登録できるようになった.

大規模に変更したので,もしかしたら変な強制終了とか起きるかもしれない.その場合は/sdcard以下にstraceファイルができると思うので,内容を教えてもらえると助かります.あと,ユーザー辞書が重要な人は,バージョンアップする前に一回バックアップしておいたほうが安全かも.

あと今回は内部を大幅に変更したので,万一,ソースのどのへんをどう変えたのか知りたいという人がいたら,連絡してもらえればgitのbundleファイルを送ります.

前から気になっていた,ハードウェアキーボードを使ってるときに選択ノードがずれる問題を修正した.

今までのバージョンだと,ノードを複数作ってから,

フォーカスをツリーにうつして適当に真ん中へんのノードを選択→フォーカスを新規作成欄にうつして,さらにいくつかノードを追加→フォーカスを再びツリーに戻し,Enter長押しでノード内容を修正

とすると(すべてキーボードショートカットで操作),ずれた位置のノードが開くはずである.つまり,TreeNote的には選択位置を自前で管理しているのだが,ツリー表示は結局ListViewであり,カーソルキー等で選択した位置をこっちでも覚えているわけだな.実にめんどくせえ.

前回変換やりなおし機能を導入したわけだが,あれを使うときはつまり,前回確定した変換自体が意図したものではなかったはずなので,個人辞書に学習したのを取り消すようにしてみた.これで,SKKによくある「タイプミスの結果が個人辞書にたまる問題」がちょっと解消できるかもしんない.

ちょっとだけ新機能.キャンセルキーを設定してある場合,変換確定直後にキャンセルキーを押すと変換をやり直せるようにした.というか,その後一度も変換してなければ直後じゃなくてもできるけど,あんまりそんな必要ないか.

なんかもうアレだ,ソフトウェアキーボードもキャンセルありのほうをデフォルトにしようかという気がしないでもない.正直,カーブフリックがあれば濁点キーとか使わなくない?

AndroidのIMEは,たいてい,状況に応じてEnterキーが「送信」とか「完了」みたいな動作をするようになっているようだ.とりあえずAndroidSKKでもそんな感じで動作するように修正してみた.別にボタンの見た目は変わんないけど.

要は,単純にキーイベントを発生する代わりに,EditorInfoを覚えておいて適切にInputConnection#performEditorAction()するようにしただけだ.

どうも,世の中には「送信」などのボタンを自前で用意していないアプリがあるらしく,この機能がないIMEでは使えないらしい.俺はそういうのを使っていないので,いちおうテストしたつもりだけど,本当にこの修正でいいのかよくわからない.なんか違うようだったらコメントください.

あとキリル文字モードパッチについては,もうブランチを分けておいてバージョンアップごとにgit rebaseしたほうが楽なような気がしてきた.Flavorって基本リソースを変えるぐらいしか想定してない気がする.

Howmmを今ふうのデザインにしてみた.

*このバージョンからandroid 1.6のサポートはしていない*ので,IS01を今でもデフォルト環境で使ってる人とかはあしからずご了承ください.もういないか.CM4IS01とかなら動かないこともないと思うけど,試してないので不明.

まあ見た目が変わっただけで,中身はあまり変わってないけどね.これまでとの違いとしては,まず

・オリジナルhowmm互換の予定表示は,デフォルトではオフになった

この設定をいじってない人は,微妙に表示順が変わったと思うかも.あとは

・トップ画面に,予定だけじゃなくて最近のメモも出るようになった
・並びかえや期間限定などは,検索したあとの画面で指定するようになった
・メモの内容表示を全画面にできるようになった

ぐらいか.

正直,現在のトップ画面でいいかは微妙である.タブ表示にしてメモ一覧と予定一覧を切り替えられるようにする案も考えたけど,「必ず直近の予定とメモが両方目に入る」というほうがいいかなと思って,今のところこのような感じにしてある.

今のままで,トップ画面のリストをスクロールできるようにする,というのでもいいけど,トップ画面でメモ一覧を全部アクセスできるようにすると,並びかえや期間限定指定をトップ画面にも出さないといけないしなあ.そうなるとけっこう中身を書きかえないといけないのでわりと大変だ.

やはり,カーブフリックの角度認識は今までのほうがいい,という人もいるようなので,設定で選択できるようにした.「高」が最近のデフォルト,「中」だと2.5以前までの感度,「低」にするとさらにもっと曲げないと認識されないはずである.

それと,前から気にはなっていた,ソフトウェアキーボードで候補選択中にASCIIモードにすると,確定されず消えてしまうのを直した.暗黙の確定はSKKの特徴の一つだし,さっさと直すべきだった.よく考えたら簡単に直せたし.

あと,「ドコモメールで使うと件名欄だけおかしくなる」という報告をもらったけど,うちには試せる環境がないのでちょっとどうしようもない.悪しからずご了承ください.

なんか公開後すぐ修正して間抜けな感じ.

フリック入力中,たまにキーを押した時点で既に下方向に入ってることがあるようだったので,ちょっと調べてみた.どうも,スクリーンから手を離した時点で呼ばれるはずのKeyboardView.OnKeyboardActionListener#onRelease()が,呼ばれないことが稀にあるらしい.ナンデ? 発生条件もさっぱりわからず,「たまに起きる」としか思えない一番面倒なパターンだ.
しょうがないので,とりあえずonRelease()で処理するのをやめて,onTouchEvent()でACTION_UPを検出した時点で明示的に処理を呼ぶことにしたら,一応改善されたような気がする.

ともかく,「たまに最初からフリックが入っている」という現象を解消したつもり.もし直ってないことに気付いた人は教えてもらえるとありがたい.というかこの現象ってもしかすると前からあったのかな…….

あとついでに,カーブフリックが存在しないキー(「な」とか「ま」とか)で斜め上にフリックすると反応しないだけだったのを,上か左右のどっちかにちゃんと反応するようにしてみた.

例によって,旅行中使っててイラっときた点とかを修正した.

・カーブフリックの角度調整

フリック入力のガイド表示だと斜め45度にカーブさせるとよさそうに見えるが,実は45度よりちょっとでも少ないと認識されず,むしろ直角に曲がるぐらいのほうが認識しやすかったので,けっこう誤爆してイラっときた.もうちょっとぬるいカーブでも濁音とかになるように緩和してみた.このへんの調整って好みもあるだろうけどなあ.

  • 個人辞書のブロック形式に仮対応

「大きい」って変換したあとに「多くの」とか入れようとすると「大く」とか出る問題.とりあえず,個人辞書にはブロック形式で送りがなも記憶するようにした.で,送りあり変換のときは,送りがなブロックに入ってない候補は先頭に出さない.これで一応前述の問題は解決できる.

ただ,間違って一度でも「大く」で確定しちゃうと,あとは一緒なんだよな.どうしたもんかな.

・フリック入力のガイド表示を効率化した

今までの版のガイド表示は,正直言って表示が遅い.一瞬待たないと出ないので,濁点とかは長押しだと誤解してた人もいたほどである.なので,すぐ出るように直した.

内部的には,PopupWindowをひとつにして,中にたくさんTextViewをRelativeLayoutで並べる方式に変更した.どうやらPopupWindowをたくさん一度に出すのはすげえ遅い処理だったらしい.

この変更のためにコードを整理して,わりといろいろ書きかえてるので,もしかしたら変な動きをするかもしれない.もし見つけたら,連絡してもらえると直せるかも.

音量キーは文字サイズ変更だったけど,ページアップ・ダウンに設定できるようにした.T62Dで使いやすいかと思って.

というかランチャーの文字サイズなんかそんな頻繁に変更しねえよ,という気がしてきた今日このごろ.フォントサイズを直接指定する方式のままでよかったかもしれん.

ZenFoneで新規にインストールして試してみたら,なんと新規の場合は落ちることに気付いてびっくりだ.もしかして2.0以降ずっとだめだったんじゃないだろうか.まあ,別に誰も使ってないだろうが,気になるので修正してみた.

ついでに,最近使ったアプリリストに入らないようにしてみたり,アンインストールされたアプリが残ることがあるのを修正した.というか後者は直したような気がするんだが,なんで直ってなかったんだろう.場当たり的に対処したけど,まじめに調べるのめんどくさいな…….

なんか要望があったのでバージョンアップ.

・かなモードキーにもモディファイヤーを設定できるようにした

Alt+Jとかそういうのにしたい人向け.

・かなモードキーをトグルにしない設定をつけた

本来のSKKと同じように,かなモードでもう一回押してもASCIIには戻らないようにできる.

あとオマケ機能として,

・アルファベットのソフトウェアキーボードは,上フリックで大文字になる

というのをつけてみた.微妙に便利.ただこれ,記号もやろうと思うと,ガイド表示かキートップ表示を真面目に修正しないとちょっとまずいよなあ.うーんめんどくさい.

1.8で入れたMarkdown関係ですこし修正.

  • 引用やコードブロックの中では,ボールドやイタリックが効かないようにした

コードなんかだとよくアンダーバーが出てくるし,そもそも引用やコードの中でボールドとかイタリック使わないだろうし.

  • 端末にボールドやイタリックのフォントが入ってなくても,ちゃんと表示されるように修正

android端末って,けっこう日本語フォントのボールドとかイタリックは入ってないのな.ボールドは入ってるときもあるけど.しょうがないからfakeBoldの類を使うことにした.

・テキスト強調のバグ修正

間に一文字だけ狭んでテキスト強調をすると変になっていたはずである.たとえば「この`AndroidManifest.xml`の`uses-sdk`の行を〜」みたいな文を書くと,後のほうがちゃんと表示されないはず.

何が原因でこうなってるのか結構悩んだ.要するに直前直後の一文字も正規表現でチェックしてたため,マッチすべき部分が重複してしまっていたせいなのだが(**と*を区別するのにはそのほうが楽かと思って),いやほんと正規表現って動作が直感的じゃなくて厄介だと思う.