2014年11月11日火曜日

[XClip]XClip更新した

要望がたくさん来ていた削除の件。
長押しで削除出来る様にしました。

後、ブラウザ対応とFacebookのチャットヘッド対応。
こっちはちょっと微妙(無理やり作った)ので実験機能にしてある。


話ずれるけど、ちょっと愚痴を。

お金払うアプリは住所の登録が必要だってことで、有料アプリを削除したんだけど、FlipClipとそのFree修正終わってテスト中だったのに日の目を見ることなく死んでいくことになるな。
ホント個人デベロッパのやる気をそぐような事ばっかしやがって。

あ、Freeの方は更新してもいいんだけど、プロ版購入してくれた方に申し訳ないから放置することにしました。

こういうのって、難しいね。

もうさ、ソース公開しちゃってもいいんだけど、購入してくれた人も居ると思うと放置がベストな対応って気がしちゃって。
ソース汚いから公開するにしても修正作業タップリだけど。
なんか、こんな書き方するんだダセーって思われるのもアレだしw

個人的にAPK欲しいって人が居ればなんか考えますよ。

2014年9月30日火曜日

え?

GooglePlay、開発者が住所登録しなきゃダメなの?

ふーん。
個人だから絶対に嫌。

という事で、有料アプリ抹殺されるかもしれませんのであしからず。

というか、リジェクトアプリがもうそろそろ限界かも。
不本意だけど、悪質な開発者みたいになってる。
このアカウント削除されたらきついんだよなぁ。

移行するか。
めんどくせぇなぁ。

このアカウントでアプリ登録するんじゃなかった(涙)

有料アプリだけか!
分かった、とりあえず、落ち着くまで有料アプリ公開やめる!
ばいなら。

2014年9月19日金曜日

[XClip]わかった!!

さっき怪しいところログ出すようにしてリリースしたら、アリさんから早速連絡が来たよ!

結果・・・・

凡ミスでした(汗)

「貼り付けメニュー」がONになっていないと長押しで落ちるという。
全ONにしてたから気づかなかった。

とりあえず、ついさっきだからもっかいアップしちゃおうかな。

ふぅ。
これでひとまずコイツの開発が手を離れる。

めでたしめでたし。

※このブログのコメントでもらったFacebookMessengerのチャットヘッドでリストが出ない件

一覧はダイアログで作っているんだけど、ダイアログを表示するためにはコンテキストが必要。
コンテキストはいくつか種類がある。
BaseContext(大ボス)
 └ApplicationContext(アプリ単位)
   ├ActivityContext(画面単位)
   └ServiceContext(サービス単位)

チョットややこしいんだけど、ダイアログ表示には上のうちActivityContextが必要。

超ざっくりいうと、画面が無いとダイアログ出しちゃダメだろ?って事だと思う。
まぁ、そうだよね。
スマホいじってたら、いきなり悪意あるサービスがダイアログ出してっていうのが出来ちゃうのって、想像しただけでちょっと怖いよね。

んで、今回はViewからContextを取得している。
Viewに格納されるContextはActivityContextかServiceContext

で、あのチャットヘッドはオーバーレイで作られているのでサービスで実装している。
つまり、ServiceContextが渡ってきてる。

ダイアログ出せません。

ボーン。

駆け足で書いちゃったし、あんまりこの辺詳しくないので調べながら書いたので、間違っていることも多々ありそうだけど、ちょっと無理そうだねって事で。
とりあえず、落ちなくしたから良いっしょ!(適当)


まぁ、負けじとオーバーレイでリスト作って出しゃぁ良いじゃんって話なんだけれども。

2014年9月18日木曜日

[XClip]マーケットリジェクトw

そんなこんなしてたらマーケットからリジェクトされた。
寄付リンクが癇に障ったみたい。

墓場に置いておくよ。
http://toramamma.blogspot.jp/p/xclip.html

[XClip]バグつぶし

アリさんって方からバグレポ貰って対応してたんだけど、全然直らないくさいw

ごめんアリさん。

リリースが続いたから、簡単な履歴を。
そして自分の頭の中を整理する。

---さかのぼること2か月前---

Xposedモジュールは各アプリの中で各アプリプロセスとして動作するから、xclipのリソースが見えない。
みえる様に出来るのかもしれないけど調べてない。
だから、クリップ履歴のデータをSDカードに保存するように作っていた。
これは、アプリ固有の領域(/data/data/pacakage)が見えないから。
で、SDカードに保存して読み込みしてた。
 →この状態がv1.0(2個目のv1.0は長押し以外も対応しただけ)


自分で使ってて、なんかのアプリで一覧でないなぁ~って思ってログ見てたら権限無いよ~って書いてあって、何かというとアプリの権限もそのままに利用するから、「android.permission.WRITE_EXTERNAL_STORAGE」の無いアプリは読み書きできなくて一覧が出なかった。
あーこの辺も各アプリプロセスとして動作するんだなぁっって事で、AIDL経由でXClipプロセスで読み書きするようにした。
これで、XClipの「android.permission.WRITE_EXTERNAL_STORAGE」権限で読み書きできるようになったので、一覧が出るようになった。
あと、コピーが不完全だったのでClipboardManager.setPrimaryClipだけじゃなくてClipboardManager.setTextもフックするように修正。
 →この状態がv1.3

でこれをアップしたあたりでアリさんから連絡。
なんかクラッシュすると。


で、調査してたら、10回に1回くらいの割合でリストが出ないことがあった。
これのことかなぁと思って調べたら、AIDLのバインドが終わっていない間に処理しようとしてリストが取れない事があった。
で、これを修正。
 →この状態がv1.4

で、アリさんからまだ駄目だと。


また調べてたらandroid4.4からSDカードの読み書きがいろいろ制限あると。
これかな?と思って、AIDL経由にしたし、アプリ領域使おうという事で、各アプリに割り当てられてる領域に保存するように修正。
 →この状態がv1.5

で、さっきまだ駄目って。。。
おかしいなぁと思って、クラッシュってどういうの?
って聞いたら、

アプリで長押し(入力エリアじゃなくても)すると、アプリが死ぬんだって。
マジで?
そんなの出たことないですぜ。

1.0は出ないんだって。
マニフェストなおし間違って1.0が2個あるんだけど、大きな修正は1.3で入れたからそこかな。

ていうか、1.0→1.3の修正って結構重要なんだよね。
そもそもAIDL経由にしないと正しく動かないしなぁ。

もうちょっと調査&バグフィックスリリース続くかもしれないけどごめんね。

2014年9月10日水曜日

[XClip]バグフィックス

上手くコピー出来ないバグがあったので対応。
しかし、、マーケットの仕様が変わってしまって、ヘッダー画像とか作らないといけないから、Xposedのリポジトリの方だけ更新。
画像を作ったらマーケットの方も更新する予定。
http://repo.xposed.info/module/tora.mamma.xclip


あと、今FlipClip対応入れてますので、しばしお待ちお
こっちも画像作らにゃいけないんだけど。

2014年7月14日月曜日

[XClip]また質問の回答&修正

質問来たので、またここに書いておきますね。

★レイアウトがばらばら、文字がでかい、など見た目の問題
 見た目作るの苦手なので起動したアプリのリソース使って履歴作ってたため、アプリ側がデフォルトのリストのレイアウト設定ちゃんとしていない場合とかにずれてたみたいです。
 まぁ、デフォルト設定しない方が多いかもしれない&自分が固定のアプリしか使わなかったから気づきませんでした。
 XClipでレイアウト追加したので、統一はされるはず。
 文字サイズは、起動したアプリのDPIに依存します。

★上の貼り付けメニューとか、選択した時に浮いてる貼り付けボタンではリスト出ないの?
 長押し以外を私があんまり使っていないという理由でやってなかったけど、使ってみたら確かに不便・・?というか違和感あったので追加しておきました。
 
 まず、設定画面で履歴を表示するアクションを選択してください。
 3つ作っておきました。
 ・長押し
 ・上の貼り付けメニュー
 ・選択時の貼り付けボタン

 有効にしたものでリストが出るようにしてあります。


主な変更点は以上。

動かない~っていうメールはやめてくださいw
わからない~としか返せないのでw

2014年7月9日水曜日

[XClip]質問の回答

XClipの質問への返信ココに書いときますね。

★何するアプリ?
 クリップボードの拡張です。
 通常1件しか保持しないけど、10件保持します。


★動かないんだけど?
 まずXposedっていうの入れてください。
 Root必須です。
  http://repo.xposed.info/module/de.robv.android.xposed.installer

 次にXClipインストールして、Xposed上で有効にして再起動してください。


★どうやって使うの?
 Xclipの設定画面開いてStartをONにしてください。
 後は普通にコピペするだけ。
 [貼り付け]っていうボタン?の代わりに過去10件分の履歴が表示されます。
 一覧をタップすると、そのまま貼り付けます。


★それでも動かないんだけど(怒)?
 Xposedの機能は、ちょっとニュアンス違うけど、元々ある機能を上書きするっていう感じ。
 元々ある機能には名前がついてて、基本的にはみんなおんなじ名前のはず(copyとかpasteとか)。
 でも、メーカー固有のカスタマイズが入っている場合があって、メーカーが名前を変えちゃうときがある(copy2とかnew_pasteとか)。
 そうすると、上書きしようとしている機能が無いと判断されるので、動きません。

 分かりにくいかな?

 GoogleがAndroidを発表
  →この時はpasteっていう名前

 メーカーがAndroidを使ってスマホを作成
  →基本機能のpasteを拡張して作り直そう!名前はpaste_neoにしよう!

 XClipはpasteっていう名前の機能を上書きするので、paste_neoってなんじゃ?
  →動かない。

 余計わかりにくいかw
 一応、Googleが発表した状態のAndroid4.4では動作確認してるので。


★基本動くけど、動かない所もあるよ(怒)?
 TextViewっていう文字入力系のエリアだけ上書きしてます。
 なので、TextViewっていうのを使わずに作られた文字入力エリアやブラウザ内の文字入力エリアは動作しません。

 ※Webkitの中ちょっとめんどくさかったので放置。
  自分があまり利用しないし、時間が取れたらやるかも。

 ※ちょっと不具合あったので修正した。


★なんで10件?
 別に理由なんてないです。


★電池のヘリが・・・
 気のせいだと思うけど。
 クリップボード定期巡回もしてないし、そもそも呼ばれた時にしか動かないし。
 FlipClipよりも優秀のはず。


★なんでICS以上?
 昔の機種で動かないって言われても、対応する時間もないし確認する術が無いから。


★改善要望や軽微なバグ報告
 ごめんなさい。
 今忙しいので。


★深刻なバグ報告
 リリースした手前なんとかします。
 あんまないと思うけど。


2014年5月22日木曜日

りそうのくりっぷぼーどかくちょうができた

ちょっとインターネッツ見てたら、Xposedっていうフレームワークが有ることを知っちゃって。
細かい説明は省くけど、なんだかシステムアプリとか、他のアプリとかのメソッドやらをフック出来ると。

?あれ?これって、FlipClipでやりたかったこと出来るんじゃね?
って事でちょっと時間とって作っちゃった。

クリップボードへの追加をフックして10件まで履歴を保管。
TextViewの長押しをフックしてクリップボードの一覧を表示。
→表示されたリストから貼り付けたい物を選ぶとそのまま貼り付け。

クリップリスナーと同じことしてるからサービス常駐もしていないし、貼り付けたいものを選んだらそのまま貼り付けられる!
あーすっきりした。

Androidは長押しに切り取りとかも含まれているのでオケツにしか貼り付けられないけど仕方ないか。
テキストが選択状態の時は履歴表示しないようにしていますので。

FlipClipでもいいけど、Xposed導入している人はこっちのが使いやすいかも。
一応、私の目指していたクリップボード拡張アプリが出来たので、公開してみました。

XClip
https://play.google.com/store/apps/details?id=tora.mamma.xclip

あ、でも4.4.2でしか実機確認してない。
ライブラリ見た感じ動くとは思うけど、動かなかったらゴメンちゃい。

あと、細かい例外処理とかも入れてない。
Xposed入れてないのに、動かねーとか言わないでね。

自分がこれで満足しちゃってるので、特に拡張予定も無いし、相変わらず忙しいので放置することになりますw
という無責任報告。