Gカ検索[GcalSearch]

<アプリの簡単な紹介と目次>

※本ブログは6月末で他サイトに移設する予定です。これまで閲覧ありがとうございました。

[note] this blog is planed to be moved to other site until end of June. See you in there


 Googleカレンダの検索アプリ。PC版で用意されているカレンダ検索機能が標準装備されていないandroid端末で、検索が行えます。限定公開URLでアクセスするのでカレンダを誤って壊してしまう心配もありません。googleアカウントのない端末でのカレンダ検索や、自分以外のgoogleアカウントのカレンダ検索も可能です。

 限定公開URLを設定して検索窓にキーワードを入れて検索ボタンを
押すだけ。

<特長>
<使い方>
<カレンダリストの新規作成>
<カレンダリストの元となるテキスト形式>
<表示の種類>
<メニュ>
<設定>
<OS版数、動作確認端末など>
<制限および注意>

©2010-2011 KrasavKana
<特長[Features]>

 ◆特長①[1st feature] Googleカレンダの検索が行えます。PC版で普通に使えるカレンダ検索機能が、なぜandroid端末に標準装備されていないのか不明(*1)ですが、本アプリにてそうした検索機能を補うことができます。Googleカレンダにアクセスする際、限定公開URLを使って読み込みモードでアクセスするので元のカレンダを誤って壊してしまう心配もありません。カレンダを用途に応じてprivate,work,communityなどと複数個に分けて管理している場合も多いと思います。本アプリに、各カレンダに対応した複数の限定公開URLを登録しておけば一度にアクセスできます。複数のカレンダから検索する場合、検索対象のカレンダを絞り込めると便利ですが、本アプリではそれをカレンダリストのチェックボタンのOn/Offで実現します。
[searching events of specific keyword on google calendar. Without searching of internal DB in android device, searching directly google calendar so that all events of your google calendar events in PC can be traversed.]

*1: おそらくこういう理由だと思います。通常のカレンダアプリはgoogleカレンダを直接アクセスしないでカレンダ用内部DBを読み書きしそれを別プロセスで同期させることであたかもgoogleカレンダを読み書きしているように見せています。注意すべきは、「カレンダ用内部DB」はgoogleカレンダの全てを同期しない仕様になっていることです。長い間アクセスされない、または更新されないイベントは「カレンダ用内部DB」に同期されないようです。一方で「検索」は全てを対象にしたくなります。それがデバイスや通信環境に負担になるからではないでしょうか。有名アプリでもきちんと検索できないのはそうした理由になると思います。

◆特長②[2nd feature] Wellからの入力をサポートします


あらかじめ限定公開URLに関する情報をPCでリストにしておきメールでケータイに送付しておきます。ケータイメールのコピペ機能を使って本アプリのWELL画面に貼り付けて作成ボタンを押すだけで、カレンダアクセスの環境が揃います。
[input private URL one by one is fairly tough. You can make URL list using PC or other convenient device, mail it to android, copy and paste it with the well input view.]

 ★注意[caution] 外部媒体(Sdcard)からの取り込みもできます

 ◆特長③[3rd feature] キーワードの設定やカレンダの絞込みのほかに、検索開始日と検索期間(日数)、最大検索数(1つのカレンダ当り)を指定できます
[day that begins searching, number of days form the beginning day, and number of maximum results for each calendar URL. These can be used as other searching condition besides keyword.]

 ◆特長④[4th feature] 検索結果(イベントタイトルおよびイベント内容)に含まれる文字列のうち検索キーワードにマッチした箇所に色付けします。元データはもちろん変わりません。
[can make its color change. On results view, keywords of the results can be colored or highlighted in other ways.]

 ★注意[caution] 色づけの他に、太字、斜字、大きめの字、なにもしないを選択できます

 ★注意[caution] httpで始まるURLにAutoLink機能をつけています。青くなったリンクをタッチするとブラウザを呼び出してリンク先にアクセスします。

 ◆特長⑤[5th feature] 検索履歴を再利用できます。検索履歴の中から適当なものを長押しして検索キーワードを検索窓にコピーできます
[can reuse keyword in history.]

©2010-2011 KrasavKana
<使い方[Usage]>

Step1:「メニュ」「ウェル」を選択してあらかじめ作成しておいた「限定公開URLのリスト」を貼り付けてOKボタンを押す。すると自動でカレンダリストの表示画面に移動する
[On menu-well, copy and paste private URL list and push OK. When read normally, current view goes to calendar list view.]

Step2:リスト表示するので、チェックボックス(検索対象(On)/非対象(Off))をチェックする。検索したいカレンダ名横のチェックボックスをチェックします
[Check checkboxed so that only checked calendar should be searched.]

★注意[caution] チェックボックスの状態の初期値は上記「限定公開URLのリスト」に記載されたとおりになります

Step3:検索窓に検索したいキーワードを入れて検索ボタンをタッチする。
[Input a keyword you want search with, touch the search button.]


★注意[caution] 検索でなにも見つからない場合は画面に「見つかりませんでした」が出ます。その場合にはキーワードや他の条件を変更して再度検索してください
[When you see 'keyword not found', change other conditions as well as changing keyword.]

Step4:検索の結果1つ以上見つかった場合、自動で検索結果画面に切り替わります。検索結果はリスト表示され、検索された順番(早く検索されたものほど上に、の意味)にイベントのタイトルが並んでいます。リスト中のイベントタイトルのいづれかをタッチすると、(結果詳細画面に)画面が切り替わってイベントに関するタイトルと内容を個別表示します
[When searching is successed, the current view goes to results view. If you want to see details of the list, you can go to contents by touching an item of list]

★注意 イベントの開始時刻や更新時刻等で検索を順番づけたい場合や昇順・降順の指定等は、本アプリではサポートしていません。代わりに、次のような文字列を限定公開URLの後につけてカレンダ情報として保存しておきます。start-min,start-max,max-resultsはアプリがgoogleへの問い合わせ処理(HTTP-GET)中にオプションとして付加しています

   orderby=starttime  開始時刻で並び替え(なにもつけないと更新時刻になる)
   sortorder=ascending  昇順(descendingを指定すると降順)
   futureevents=false  将来/過去のイベントを対象とするかの指定(省略値はfalse)
   singleevents=true  繰り返しイベントを展開しないか/(するか)の指定(省略値はtrue)
   start-min=1970-01-01  指定日(時刻も指定できる)以降を対象とする(省略値は1970-01-01T00:00:00)
   start-max=2030-01-01  指定日(時刻も指定できる)以前(その時刻や日は入らない)を対象とする
(省略値は2031-01-01T00:00:00)
   max-results=10  最大出力数(省略値は25)

Step5:結果詳細画面の下段に並んでいるボタンを使って検索結果を個別に参照します
[Using buttons in results view, you can see the next or previous results.]

戻りボタン:リスト表示に戻る
前ボタン:検索結果のリストの前(上)の検索結果画面に移動する(なければ移動しない)
次ボタン:リストの次(下)の検索結果画面に移動する(なければ移動しない) 

Step6:「戻りボタン」でリスト表示に戻ると検索窓が現れるので対象カレンダや条件を変えて再度検索します
[Back to the main view, search again after changing checked calendars or other conditions.]

<トーストやアラート集>

限定公開URLですか? 「限定公開URL XML」で検索してみてください
[意味[meaning]] 限定公開URLの最初のフレーズは(googleカレンダの仕様が変わらない限り)同一で、そのチェックをしたところ、マッチしなかったです。
[対処[action]] 限定公開URL自体が正しそうなら、その前の情報は?対象/非対象、カレンダ名等を”,”で区切っていますか?

解釈不可能な箇所があります
[意味] テキスト形式が間違っているようです
[対処] 対象/非対象、カレンダ名等を”,”で区切っていますか?空行はありませんか?

ファイルがありません
[意味] sdcard等の外部媒体のファイルを読み込み時、ファイルが見つかりませんでした
[対処] ファイル名がただしいか(readsd.txt)確認してください

見つかりませんでした
[対処] 対象カレンダがない場合にもこのようにでますので、チェックしてください。キーワードや検索条件を変えてください

接続できませんでした
[対処] 限定公開URL自体が間違っていたり、正しくてもインタネット接続ができなかったり、いろいろな場合が考えられます(アプリのバグである可能性もあります)。エラーコードがでますので、「HTTP Status Code」等で調べてみてください。

1xx:情報提供 2xx:成功 3xx:転送 4xx:クライアントエラー 5xx:サーバエラー


限定公開URLを表示する設定にしてください
[意味] 非表示オプションがあり、それが非表示(隠す)に設定されていながら、限定公開URLを表示しようとしています
[対処] 設定画面(メニュ-設定)から設定を変更してください

テキスト形式が正しくありません
[意味] テキスト形式が間違っているようです
[対処] 対象/非対象、カレンダ名等を”,”で区切っていますか?空行はありませんか?

新規作成モードで読み込みます。
[意味] sdcardからの読み込み前に既存の設定を消去します
[対処] 確認してください。特に設定画面で設定を変えてもモードがすぐに変更されない場合があります。よければ次に進み、設定が反映されていないようなら、一旦終了して再度起動するか、画面を縦横にまわして見る等してみてください

追加モードで読み込みます。
[意味] sdcardからの読み込み前に既存の設定を消去しません
[対処] 確認してください。特に設定画面で設定を変えてもモードがすぐに変更されない場合があります。よければ次に進み、設定が反映されていないようなら、一旦終了して再度起動するか、画面を縦横にまわして見る等してみてください

©2010-2011 KrasavKana
<カレンダリストの新規作成[Calendar List Settings]>

カレンダリストの設定方法は2通りあります

設定方法1:ウェル(Well)画面からの読み込み


「メニュ」から「ウェル」を選択して文字入力可能な画面にしたあと、「カレンダリストテキスト形式」に従い入力します。

 ★注意[caution] 数個程度のカレンダの限定公開URLなら手入力できますが、それ以上だと、PC等で作ったテキストをメール等でケータイに送ってコピペした方が、全然楽です

設定方法2:sdcard(外部媒体)からの読み込み

PC等で作ったテキスト(WINDOWSのメモ帳やTeraPadなどで作成します)をsdcardにコピーして、「メニュ」の「外部読込」を選択して入力します
 ★注意[caution] テキストの格納場所は
/sdcard/gcalsearch/readsd.txt
 ★注意[caution] sdcardの場合は先頭行に1カラム目から*gcalsearch 行が必要です(行末まで読み飛ばされます)
 ★注意[caution] カレンダ名称に日本語を含むときはUTF-8形式で作成する必要があります。TeraPadでは名前を指定して保存(コードはUTF-8N)が無難です

©2010-2011 KrasavKana
<カレンダURLテキスト形式[Format]>

・数字の0または1
・カレンダ名
・限定公開URL
を1行にカンマ(,)で区切って並べます。

(例の始まり)

0,private,http://www.google.com/calendar/feeds/account-name%40gmail.com/private-xxxxxx/basic

0,work,http://www.google.com/calendar/feeds/account-name%40gmail.com/private-xxxxxx/basic

0,community,http://www.google.com/calendar/feeds/account-name%40gmail.com/private-xxxxxx/basic

(例の終わり)

限定公開URLは、
http://www.google.com/calendar/feeds/account-name%40gmail.com/private-xxxxxx/basic
のような感じの文字列です。「限定公開URL XML」で検索(googling)してみてください

 ★注意[caution] 限定公開URLは取り扱いに注意してください。他人が入手してアクセスすると(ご自分の設定した公開ポリシーにかかわらず)容易に内容を見ることができます。その疑いのあるときはPCからGoogleカレンダにアクセスして、限定公開URLのリセットを行ってください。そうすればまったく新しいURLが設定され、古いURLではアクセスできなくなります
★注意[caution] イベントの開始時刻や更新時刻等で検索を順番づけたい場合や昇順・降順の指定等は、本アプリではサポートしていません。代わりに、次のような文字列を限定公開URLの後につけてカレンダ情報として保存しておきます。


(例2の始まり)

0,private,http://www.google.com/.../private-xxxxxx/basic?orderby=starttime&sortorder=ascending

(例2の終わり)


ただし、start-min,start-max,max-resultsはアプリがgoogleへの問い合わせ処理(HTTP-GET)中に
オプションとして付加しています
   orderby=starttime開始時刻で並び替え(なにもつけないと更新時刻になる)
   sortorder=ascending昇順(descendingを指定すると降順)
   futureevents=false将来/過去のイベントを対象とするかの指定(省略値はfalse)
   singleevents=true繰り返しイベントを展開しないか/(するか)の指定(省略値はtrue)
   start-min=1970-01-01指定日(時刻も指定できる)以降を対象とする(省略値は1970-01-01T00:00:00)
   start-max=2030-01-01指定日(時刻も指定できる)以前(その時刻や日は入らない)を対象とする
(省略値は2031-01-01T00:00:00)
   max-results=10最大出力数(省略値は25)
   上記のオプションのつけ方にはルールがあることに注意してください。HTML等書いているひとには当たり前のことかも知れませんが、各オプションを「&」または「?」で区切ります。オプションを1つつけるときは「?」を、2つ以上つけるときは2つ目以降は「&」で区切ります(上記例2のようにします)。サーバが「?」以降をオプション群として認識し、そのオプション群を「&」で区切って処理してくれます
 ★注意[caution] カレンダ名は日本語でもかまいませんが、その場合はUTF8のコードである必要があります。
 ★注意[caution] 外部媒体から本テキストを読み込ませる場合には先頭行に*gcalsearch 行が必要です。Wellからの入力の場合は必要ありません

©2010-2011 KrasavKana
<表示の種類[View]>

画面はヘルプ画面、設定画面のほかに5種類あります 。
メイン画面(カレンダリスト、検索履歴、検索結果)、補助画面(限定公開URL)、補助画面(結果詳細)、WELL画面、編集画面(編集・追加)
[5 views except Help view, and Setting View]

[カレンダリスト[Main view(Calendar)]]




カレンダリスト作成時につけたカレンダ名のリストが表示されます。カレンダ名をタッチするとその内容が表示されますカレンダ名を長押しすると編集モードになりカレンダ名と限定公開URLの内容を修正できます。

[限定公開URL[Calendar URL view]]

カレンダ名、限定公開URL、および検索対象にする/しないを示すチェックボックスが表示されますまた、下段には、
戻りボタン:リスト表示に戻る
前ボタン:リストの前(上)の問題解答画面に移動する(なければ移動しない)
次ボタン:リストの次(下)の問題解答画面に移動する(なければ移動しない)
が表示されます。これらのボタンを使ってカレンダリスト画面に戻ったりリストの前後にあるカレンダ情報を表示します。
 ★注意[caution] 設定の限定公開URL表示モードがOffになっていると本画面は表示されません


[検索履歴[Main view(History)]]

検索時に設定した検索条件が履歴として表示されます。

 ★注意[caution] 履歴は新しいものから時系列で表示されます

[検索結果[Main view(Results)]]

検索時に結果が古いものから時系列順に表示されます。

[モード設定[Main view(bottom)]]

メイン画面の下段のボタンを押すと、中段のリスト表示の内容が、それぞれ、カレンダリスト、検索履歴、および検索結果になります。上段部分と下段部分のボタンの見え方はほぼ同じです。

カレンダボタン:画面中段にカレンダリストを表示します
検索履歴ボタン:画面中段に検索履歴を表示します
検索結果ボタン:画面中段に検索結果を表示します

[メイン画面:共通上段部分]

検索窓、検索ボタンがあり、ここに検索したいキーワードや検索条件を入力して検索ボタンを押します

 ★注意[caution] 検索結果が1以上見つかったときは検索結果画面に移動します

[ウェル[Well view]]


・Sdcardなどの外部媒体でデータ移送できない機種で使いたい
・PCでカレンダ情報を編集したカレンダリストをメール送付してカレンダリスト登録して使うなどといった状況を想定して、WELL画面にカレンダリストに関するデータを貼り付けるだけでカレンダへのアクセス環境が揃えられます。

©2010 KrasavKana
<メニュ[Menu]>

<メニュ[Menu]>
メイン画面からメニュを表示できます。その他の画面からは、「戻る」ボタンで一旦メイン画面に戻ってから、メニュを起動してください。
[menu can be launched on the main view. When you want from other views, back to the main view.]

[履歴消去]:検索履歴を消去します[clear history]
[結果消去]:検索結果を消去します[clear results]
[ヘルプ]: ヘルプ画面を表示します[go to HELP]
[設定]: 設定画面に移動します[go to SETTINGS]
[終了]: アプリを終了します。設定画面で各種の設定を変更したとき設定を有効にするために一旦終了して再度起動します。もしくは画面の縦横をモード変更してみます[finish app.]


[アプリについて[About]]: アプリの更新履歴について表示します
[ウェル[Well]]: WELL画面に移動します。(限定公開URLを含む)カレンダリスト情報やその他の設定をここにコピペして作成ボタンを押すことで、googleカレンダ検索のための環境が整います
[go to well view. calendar URL and other info. are set from this view.]
[外部読込[External read]]: SDカードなどの外部媒体から限定公開URLに関する情報やその他の制御コマンドを読み込みます
[External media such as microSD. calendar URL and other info. are set from microSD.]
[追加[Add]]: 限定公開URLに関する情報を1つだけ追加するための追加画面に移動します。追加が多い場合には「ウェル」や「外部読込」から追加モードを使うことを進めます
[View for adding a calendar info.. Calendar URL and other info. are set.]


<ロングタッチメニュ[Context menu]>
[編集[Edit]]:メイン画面でカレンダリストのいづれかのカレンダ名を長押ししたときに出てきます。カレンダ名と限定公開URL、および検索対象On/Offの編集ができます
[検索窓にコピーします[Copy to search]]:メイン画面で検索履歴のリストのいづれかのキーワードを長押ししたときに出てきます。検索窓にコピーして再度検索を行わせることができます
[タイトルをコピー[Copy title to clipboard]]:サブ画面(検索結果詳細)の画面を長押ししたときに出てきます。画面に出ている「タイトル」をクリップボードにコピーします
[内容をコピー[Copy content to clipboard]]:サブ画面(検索結果詳細)の画面を長押ししたときに出てきます。画面に出ている「内容」をクリップボードにコピーします

©2010-2011 KrasavKana
<設定[Settings]>

設定画面からアプリの挙動をいろいろ変更することができます。


<カレンダリストの設定>

[限定公開URLを隠す]:カレンダリストの限定公開URLが他人に知られるとプライベートなカレンダの内容も他人に知られる可能性があります。
本オプションで
   On:カレンダ名のリストは表示するが、その内容(限定公開URLの見える画面)は表示しない
   Off:カレンダ名のリストを表示し、その内容(限定公開URLの見える画面)も表示する
を指定します。チェックボックスでOn/Offします

android:key="url_veil_key"
android:defaultValue="true"


[新規作成モード]: ウェル画面やsdcardからカレンダリストを読み込む際のモードを指定します
   On:既存のリストを消去して新規に作成するか
   Off:既存のリストを残したまま追加作成するか
チェックボックスでOn/Offします。
 ★注意 WELL画面の場合、現在の状態はタイトルバーに「Clr」「Add」のように表示します。外部媒体読み込みの場合は確認メッセージ
「新規作成で読み込みますがよろしいですか」
「追加作成で読み込みますがよろしいですか」
を出します。

android:key="calendar_clear_key"
android:defaultValue="true"


[カレンダ名の表示設定]:カレンダリストの
①文字色
②フォントサイズ
③背景色
を変更するときに使います。それぞれ選択リストから選択します

android:key="calendar_color_key"
android:defaultValue="800000"
android:key="calendar_fontsize_key"
android:defaultValue="24"
android:key="calendar_bgcolor_key"
android:defaultValue="800000"


[限定公開URLの表示設定]:カレンダリストの
①文字色
②フォントサイズ
③背景色
を変更するときに使います。それぞれ選択リストから選択します

android:key="url_color_key"
android:defaultValue="ffffff"
android:key="url_fontsize_key"
android:defaultValue="12"
android:key="url_bgcolor_key"
android:defaultValue="800000"


<検索履歴の設定>


[履歴表示機能]:検索履歴の機能について
   On:検索履歴を残すか
   Off:検索履歴を残さない
を設定します。チェックボックスでOn/Offします

android:key="history_on_key"
android:defaultValue="true"


[背景色]:検索履歴画面の表示について
①背景色
を設定します。それぞれ選択リストから選択します

android:key="history_bgcolor_key"
android:defaultValue="800000"

[検索履歴(1行目)の設定]:検索履歴のリストの1行目について
①文字色
②フォントサイズ
を設定します。それぞれ選択リストから選択します

android:key="history_color_key"
android:defaultValue="000000"
android:key="history_fontsize_key"
android:defaultValue="24"


android:key="historyattribute_color_key"
android:defaultValue="800000"
android:key="historyattribute_fontsize_key"
android:defaultValue="12"

[検索履歴(2行目)の設定]:検索履歴のリストの2行目について
①文字色
②フォントサイズ
を設定します。それぞれ選択リストから選択します


<検索結果の設定>

[新規作成モード]: 検索結果をリスト表示する際、
   On:既存の検索結果を消去して新規に表示する
   Off:既存の検索結果を残して追加して表示する
を指定します。チェックボックスでOn/Offします

android:key="result_clear_key"
android:defaultValue="true"

[背景色]:検索結果画面の表示について
①背景色
を設定します。それぞれ選択リストから選択します

android:key="result_bgcolor_key"
android:defaultValue="800000"

[検索結果(1行目)の表示設定]:検索結果のリストの1行目について
①文字色
②フォントサイズ
を設定します。それぞれ選択リストから選択します

android:key="result_color_key"
android:defaultValue="000000"
android:key="result_fontsize_key"
android:defaultValue="24"

[検索結果(2行目)の表示設定]:検索結果のリストの2行目について
①文字色
②フォントサイズ
を設定します。それぞれ選択リストから選択します

android:key="resultattribute_color_key"
android:defaultValue="800000"
android:key="resultattribute_fontsize_key"
android:defaultValue="12"

<結果詳細の設定>

[強調表現]: 検索結果に含まれるキーワードの強調表現しますがその際の方法を設定します
   強調しない:
   色づけ:
   太字:
   斜体:
   文字を大きくする:
選択リストから選択します

android:key="content_decorate_key"
android:defaultValue="1"


[結果詳細の表示設定]:検索結果詳細の
①文字色
②フォントの大きさ
③背景色
を設定します。それぞれ選択リストから選択します

android:key="content_color_key"
android:defaultValue="ffffff"
android:key="content_fontsize_key"
android:defaultValue="12"
android:key="content_bgcolor_key"
android:defaultValue="000080"

<共通の設定>

[日時形式]:タイムスタンプの表示形式を選択します

android:key="common_dateformat_key"
android:defaultValue="yyyy/MM/dd HH:mm:ss"



 ★注意 フォントサイズは8,10,12,14,16,18,20,24,36,48,64,96,192,384から
選択できます
 ★注意 文字色や背景色は基本16色から選択できるようにしています。
   ■●white◆▲
   ■●yellow◆▲
   ■●olive◆▲
   ■●red◆▲
   ■●maroon◆▲
   ■●aqua◆▲
   ■●blue◆▲
   ■●navy◆▲
   ■●lime◆▲
   ■●teal◆▲
   ■●green◆▲
   ■●fuchsia◆▲
   ■●purple◆▲
   ■●silver◆▲
   ■●gray◆▲
   ■●black◆▲

©2010-2011 KrasavKana
<制限および注意[Constraints and cautions]>

★注意[caution] 限定公開URLが他人に知られるとカレンダの内容が他人に知られる可能性があります。そのような疑いのある場合には、必ずPCから限定公開URLのリセット処理を行ってください。限定公開URLを元URLから推測不可能なものに変えてくれます

 ★注意[caution] 日本語(英語)対応。他言語にも対応できると思いますが、そのためには、ケータイ端末自体の言語設定の変更が必要です。

他言語においても特殊な区切り文字(日本語の場合の全角スペース(空白)のようなもの)が存在するのかわかりませんが、恐らく半角スペースで事足りるのではないかと思います。本アプリにおいても日本語の全角スペースを区切り文字としておりません。ただ、全角スペースを単語としても仕方ないので、空行(半角スペースやTABなど見えない文字と改行文字で構成された行)の処理時にいちおう全角スペースも半角スペースとみなしてスキップさせています。不都合あれば連絡ください

 ★注意[caution] ケータイ端末によって違うのかも知れませんが、USB接続で外部記憶へのアクセスを可能にしていると、sdcard読み込みができません。一旦USB接続を切ってから試してください(Xperiaでの体験です)

 ★注意[caution] 本アプリの利用により生じたいかなる損害についても、アプリ作成者およびアプリ提供者は一切責任を負いません

<OS版数、動作確認端末など>

対象端末 Android1.6以上
テストADS Android1.6 Level4 with sdcard
実機動作確認端末 Xperia SO01B (OS 2.1)

©2010-2011 KrasavKana