ネットワーク設定画面(デバッグ用)を追加
@@ -1,36 +1,47 @@ | ||
1 | -<?xml version="1.0" encoding="utf-8"?> | |
2 | -<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | - package="jp.sourceforge.observoice" | |
4 | - android:versionCode="1" | |
5 | - android:versionName="1.0" > | |
6 | - | |
7 | - <uses-sdk android:minSdkVersion="13" /> | |
8 | - | |
9 | - <uses-permission android:name="android.permission.INTERNET" /> | |
10 | - | |
11 | - <application | |
12 | - android:icon="@drawable/ic_observoice" | |
13 | - android:label="@string/app_name" android:theme="@style/Theme.observoice" android:name="jp.sourceforge.observoice.util.ObsvApplication"> | |
14 | - <activity | |
15 | - android:name="jp.sourceforge.observoice.BootstrapActivity" | |
16 | - android:label="@string/app_name" > | |
17 | - <intent-filter> | |
18 | - <action android:name="android.intent.action.MAIN" /> | |
19 | - | |
20 | - <category android:name="android.intent.category.LAUNCHER" /> | |
21 | - </intent-filter> | |
22 | - </activity> | |
23 | - <activity android:name="jp.sourceforge.observoice.ObservoiceNetworkingSampleActivity" /> | |
24 | - <activity android:name="jp.sourceforge.observoice.LoginActivity" /> | |
25 | - <activity android:name="jp.sourceforge.observoice.StartActivity" /> | |
26 | - <activity android:name="jp.sourceforge.observoice.LectureSearchActivity" /> | |
27 | - <activity android:name="jp.sourceforge.observoice.LectureActivity" /> | |
28 | - <activity android:name="jp.sourceforge.observoice.DebugActivity" /> | |
29 | - <activity android:name="jp.sourceforge.observoice.ReviewLectureSearch" /> | |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + package="jp.sourceforge.observoice" | |
4 | + android:versionCode="1" | |
5 | + android:versionName="1.0" > | |
6 | + | |
7 | + <uses-sdk android:minSdkVersion="13" /> | |
8 | + | |
9 | + <uses-permission android:name="android.permission.INTERNET" /> | |
10 | + | |
11 | + <application | |
12 | + android:name="jp.sourceforge.observoice.util.ObsvApplication" | |
13 | + android:icon="@drawable/ic_observoice" | |
14 | + android:label="@string/app_name" | |
15 | + android:theme="@style/Theme.observoice" > | |
16 | + <activity | |
17 | + android:name="jp.sourceforge.observoice.BootstrapActivity" | |
18 | + android:label="@string/app_name" > | |
19 | + <intent-filter> | |
20 | + <action android:name="android.intent.action.MAIN" /> | |
21 | + | |
22 | + <category android:name="android.intent.category.LAUNCHER" /> | |
23 | + </intent-filter> | |
24 | + </activity> | |
25 | + <activity android:name="jp.sourceforge.observoice.ObservoiceNetworkingSampleActivity" /> | |
26 | + <activity android:name="jp.sourceforge.observoice.LoginActivity" /> | |
27 | + <activity android:name="jp.sourceforge.observoice.StartActivity" /> | |
28 | + <activity android:name="jp.sourceforge.observoice.LectureSearchActivity" /> | |
29 | + <activity android:name="jp.sourceforge.observoice.LectureActivity" /> | |
30 | + <activity android:name="jp.sourceforge.observoice.DebugActivity" /> | |
31 | + <activity android:name="jp.sourceforge.observoice.ReviewLectureSearch" /> | |
30 | 32 | <activity android:name="jp.sourceforge.observoice.ChartEngineTestActivity" /> |
31 | - <activity android:name="jp.sourceforge.observoice.ReviewLectureActivity"></activity> | |
32 | - <activity android:name="jp.sourceforge.observoice.FragmentTestActivity" /> | |
33 | - <activity android:name="jp.sourceforge.observoice.NicknameActivity"></activity> | |
34 | - </application> | |
35 | - | |
33 | + <activity android:name="jp.sourceforge.observoice.ReviewLectureActivity" /> | |
34 | + <activity android:name="jp.sourceforge.observoice.FragmentTestActivity" /> | |
35 | + <activity android:name="jp.sourceforge.observoice.NicknameActivity" /> | |
36 | + <activity | |
37 | + android:name="jp.sourceforge.observoice.NetworkConfigurationActivity" | |
38 | + android:label="@string/title_activity_network_configuration" > | |
39 | + <intent-filter> | |
40 | + <action android:name="android.intent.action.MAIN" /> | |
41 | + | |
42 | + <category android:name="android.intent.category.LAUNCHER" /> | |
43 | + </intent-filter> | |
44 | + </activity> | |
45 | + </application> | |
46 | + | |
36 | 47 | </manifest> |
\ No newline at end of file |
@@ -76,7 +76,8 @@ | ||
76 | 76 | // インテントを投げるだけの簡単なデバッグ項目はここへ追加する。 |
77 | 77 | final List<ActivityDebugMenu> debugMenuListOfActivity = Arrays.asList( |
78 | 78 | new ActivityDebugMenu(this, ChartEngineTestActivity.class, "グラフのテスト"), |
79 | - new ActivityDebugMenu(this, FragmentTestActivity.class, "フラグメントのテスト")); | |
79 | + new ActivityDebugMenu(this, FragmentTestActivity.class, "フラグメントのテスト"), | |
80 | + new ActivityDebugMenu(this, NetworkConfigurationActivity.class, "ネットワーク設定")); | |
80 | 81 | |
81 | 82 | // ネットワークタスクのリスナ設定 |
82 | 83 | for (NetworkTaskDebugMenu m : debugMenuListOfNetwork) { |
@@ -5,6 +5,7 @@ | ||
5 | 5 | import jp.sourceforge.observoice.util.ObsvApplication; |
6 | 6 | |
7 | 7 | import android.content.SharedPreferences; |
8 | +import android.content.SharedPreferences.Editor; | |
8 | 9 | import android.util.Log; |
9 | 10 | |
10 | 11 | /** |
@@ -53,4 +54,14 @@ | ||
53 | 54 | Log.d("obsv", "API_KEY is " + conf.getApiKey()); |
54 | 55 | return conf; |
55 | 56 | } |
57 | + | |
58 | + public void saveToSharedPreferences() { | |
59 | + SharedPreferences pref = ObsvApplication.getInstance().getObsvSharedPreferences(); | |
60 | + Editor e = pref.edit(); | |
61 | + e.putString("HOST_NAME", host.getHostName()); | |
62 | + e.putInt("HOST_PORT", host.getPort()); | |
63 | + e.putString("API_BASE_PATH", apiBasePath); | |
64 | + e.putString("API_KEY", apiKey); | |
65 | + e.commit(); | |
66 | + } | |
56 | 67 | } |
@@ -0,0 +1,60 @@ | ||
1 | +package jp.sourceforge.observoice; | |
2 | + | |
3 | +import java.net.InetSocketAddress; | |
4 | + | |
5 | +import jp.sourceforge.observoice.network.RequestConfiguration; | |
6 | +import roboguice.activity.RoboActivity; | |
7 | +import roboguice.inject.InjectView; | |
8 | +import android.os.Bundle; | |
9 | +import android.app.Activity; | |
10 | +import android.content.SharedPreferences; | |
11 | +import android.view.Menu; | |
12 | +import android.view.View; | |
13 | +import android.view.View.OnClickListener; | |
14 | +import android.widget.Button; | |
15 | +import android.widget.EditText; | |
16 | + | |
17 | +public class NetworkConfigurationActivity extends RoboActivity implements | |
18 | + OnClickListener { | |
19 | + | |
20 | + @InjectView(R.id.hostName) | |
21 | + EditText hostName; | |
22 | + | |
23 | + @InjectView(R.id.portNumber) | |
24 | + EditText portNumber; | |
25 | + | |
26 | + @InjectView(R.id.apiBasePath) | |
27 | + EditText apiBasePath; | |
28 | + | |
29 | + @InjectView(R.id.saveButton) | |
30 | + Button saveButton; | |
31 | + | |
32 | + @Override | |
33 | + public void onCreate(Bundle savedInstanceState) { | |
34 | + super.onCreate(savedInstanceState); | |
35 | + setContentView(R.layout.network_configuration_activity); | |
36 | + | |
37 | + RequestConfiguration conf = RequestConfiguration.load(); | |
38 | + hostName.setText(conf.getHost().getHostName()); | |
39 | + portNumber.setText(String.valueOf(conf.getHost().getPort())); | |
40 | + apiBasePath.setText(conf.getApiBasePath()); | |
41 | + | |
42 | + saveButton.setOnClickListener(this); | |
43 | + } | |
44 | + | |
45 | + @Override | |
46 | + public boolean onCreateOptionsMenu(Menu menu) { | |
47 | + getMenuInflater().inflate(R.menu.network_configuration_activity, menu); | |
48 | + return true; | |
49 | + } | |
50 | + | |
51 | + @Override | |
52 | + public void onClick(View v) { | |
53 | + RequestConfiguration conf = RequestConfiguration.load(); | |
54 | + conf.setHost(InetSocketAddress.createUnresolved( | |
55 | + hostName.getText().toString(), | |
56 | + Integer.parseInt(portNumber.getText().toString()))); | |
57 | + conf.setApiBasePath(apiBasePath.getText().toString()); | |
58 | + conf.saveToSharedPreferences(); | |
59 | + } | |
60 | +} |
@@ -1,91 +1,93 @@ | ||
1 | -<?xml version="1.0" encoding="utf-8"?> | |
2 | -<resources> | |
3 | - | |
4 | - <string name="shared_preferences_filename">obsv</string> | |
5 | - | |
6 | - <string name="hello">Hello World, ObservoiceActivity!</string> | |
7 | - <string name="app_name">observoice</string> | |
8 | - <string name="text">test</string> | |
9 | - <string name="searchlecture">講義を探す</string> | |
10 | - <string name="review">復習する</string> | |
11 | - <string name="understand">わかった!</string> | |
12 | - <string name="dontunderstand">わからん!</string> | |
13 | - <string name="watch_alert_title">ウォッチ情報</string> | |
14 | - <string name="watch_alert_watch_or_not">この授業をウォッチしますか?</string> | |
15 | - <string name="yes">はい</string> | |
16 | - <string name="no">いいえ</string> | |
17 | - <string name="watch_alert_already_watching">この授業はすでにウォッチしています</string> | |
18 | - <string name="showLectureDetail">詳細</string> | |
19 | - <string name="detail_alert_title">講義詳細</string> | |
20 | - <string name="detail_alert_show_or_not">この授業の詳細ページを表示しますか?</string> | |
21 | - <string name="lecture_comment_hint">ここにコメントを入力してください</string> | |
22 | - <string name="LectureSearch_period_label">時限</string> | |
23 | - <string name="LectureSearch_day_label">曜日</string> | |
24 | - <string name="LectureSearch_free_word_label">フリーワード</string> | |
25 | - <string name="LectureSearch_free_word"></string> | |
26 | - <string name="LectureSearch_free_word_hint">講義名の一部</string> | |
27 | - <string name="lecture_search_past_lecture_show_or_not_label">昨年度以前の授業を表示する</string> | |
28 | - <string name="LectureSearch_search_label">検索</string> | |
29 | - <string name="LectureSearch_start_label">GO</string> | |
30 | - <string name="retry">リトライ</string> | |
31 | - <string name="exit">終了</string> | |
32 | - <string name="login_path">/web/login</string> | |
33 | - <string name="login_connect_failed">サーバに接続できませんでした</string> | |
34 | - <string name="login_host_lookup_failed">ホスト名を解決できませんでした</string> | |
35 | - | |
36 | - <string-array name="lectureDayOfWeek"> | |
37 | - <item>曜日指定なし</item> | |
38 | - <item>月曜日</item> | |
39 | - <item>火曜日</item> | |
40 | - <item>水曜日</item> | |
41 | - <item>木曜日</item> | |
42 | - <item>金曜日</item> | |
43 | - <item>土曜日</item> | |
44 | - <item>日曜日</item> | |
45 | - </string-array> | |
46 | - <string-array name="lectureTimeSlots"> | |
47 | - <item>時限指定なし</item> | |
48 | - <item>1時限</item> | |
49 | - <item>2時限</item> | |
50 | - <item>3時限</item> | |
51 | - <item>4時限</item> | |
52 | - <item>5時限</item> | |
53 | - <item>6時限</item> | |
54 | - <item>7時限</item> | |
55 | - <item>8時限</item> | |
56 | - <item>9時限</item> | |
57 | - <item>10時限</item> | |
58 | - </string-array> | |
59 | - | |
60 | - <string name="require_api_key">APIキーをここにコピーしてください</string> | |
61 | - <string name="ok">OK</string> | |
62 | - <string name="postCommentSuccessfulMessage">コメント投稿が成功しました</string> | |
63 | - | |
64 | - <string name="jsonResponseParseErrorMessage">サーバからのレスポンスがただしくないようです</string> | |
65 | - | |
66 | - | |
67 | - <!-- デバッグ画面用 --> | |
68 | - <string name="get_comments">コメントの一覧を取得する</string> | |
69 | - <string name="get_courses">講義情報の一覧を取得する</string> | |
70 | - <string name="get_course">講義情報を取得する</string> | |
71 | - <string name="get_current_courses">現在開講している講義情報の一覧を取得する</string> | |
72 | - <string name="post_comment">コメントを投稿する</string> | |
73 | - <string name="debug">デバッグ</string> | |
74 | - <string name="remote_api_key">APIキーを削除する</string> | |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<resources> | |
3 | + | |
4 | + <string name="shared_preferences_filename">obsv</string> | |
5 | + <string name="hello">Hello World, ObservoiceActivity!</string> | |
6 | + <string name="app_name">observoice</string> | |
7 | + <string name="text">test</string> | |
8 | + <string name="searchlecture">講義を探す</string> | |
9 | + <string name="review">復習する</string> | |
10 | + <string name="understand">わかった!</string> | |
11 | + <string name="dontunderstand">わからん!</string> | |
12 | + <string name="watch_alert_title">ウォッチ情報</string> | |
13 | + <string name="watch_alert_watch_or_not">この授業をウォッチしますか?</string> | |
14 | + <string name="yes">はい</string> | |
15 | + <string name="no">いいえ</string> | |
16 | + <string name="watch_alert_already_watching">この授業はすでにウォッチしています</string> | |
17 | + <string name="showLectureDetail">詳細</string> | |
18 | + <string name="detail_alert_title">講義詳細</string> | |
19 | + <string name="detail_alert_show_or_not">この授業の詳細ページを表示しますか?</string> | |
20 | + <string name="lecture_comment_hint">ここにコメントを入力してください</string> | |
21 | + <string name="LectureSearch_period_label">時限</string> | |
22 | + <string name="LectureSearch_day_label">曜日</string> | |
23 | + <string name="LectureSearch_free_word_label">フリーワード</string> | |
24 | + <string name="LectureSearch_free_word"></string> | |
25 | + <string name="LectureSearch_free_word_hint">講義名の一部</string> | |
26 | + <string name="lecture_search_past_lecture_show_or_not_label">昨年度以前の授業を表示する</string> | |
27 | + <string name="LectureSearch_search_label">検索</string> | |
28 | + <string name="LectureSearch_start_label">GO</string> | |
29 | + <string name="retry">リトライ</string> | |
30 | + <string name="exit">終了</string> | |
31 | + <string name="login_path">/web/login</string> | |
32 | + <string name="login_connect_failed">サーバに接続できませんでした</string> | |
33 | + <string name="login_host_lookup_failed">ホスト名を解決できませんでした</string> | |
34 | + | |
35 | + <string-array name="lectureDayOfWeek"> | |
36 | + <item>曜日指定なし</item> | |
37 | + <item>月曜日</item> | |
38 | + <item>火曜日</item> | |
39 | + <item>水曜日</item> | |
40 | + <item>木曜日</item> | |
41 | + <item>金曜日</item> | |
42 | + <item>土曜日</item> | |
43 | + <item>日曜日</item> | |
44 | + </string-array> | |
45 | + <string-array name="lectureTimeSlots"> | |
46 | + <item>時限指定なし</item> | |
47 | + <item>1時限</item> | |
48 | + <item>2時限</item> | |
49 | + <item>3時限</item> | |
50 | + <item>4時限</item> | |
51 | + <item>5時限</item> | |
52 | + <item>6時限</item> | |
53 | + <item>7時限</item> | |
54 | + <item>8時限</item> | |
55 | + <item>9時限</item> | |
56 | + <item>10時限</item> | |
57 | + </string-array> | |
58 | + | |
59 | + <string name="require_api_key">APIキーをここにコピーしてください</string> | |
60 | + <string name="ok">OK</string> | |
61 | + <string name="postCommentSuccessfulMessage">コメント投稿が成功しました</string> | |
62 | + <string name="jsonResponseParseErrorMessage">サーバからのレスポンスがただしくないようです</string> | |
63 | + | |
64 | + <!-- デバッグ画面用 --> | |
65 | + <string name="get_comments">コメントの一覧を取得する</string> | |
66 | + <string name="get_courses">講義情報の一覧を取得する</string> | |
67 | + <string name="get_course">講義情報を取得する</string> | |
68 | + <string name="get_current_courses">現在開講している講義情報の一覧を取得する</string> | |
69 | + <string name="post_comment">コメントを投稿する</string> | |
70 | + <string name="debug">デバッグ</string> | |
71 | + <string name="remote_api_key">APIキーを削除する</string> | |
75 | 72 | <string name="restart">再起動する</string> |
76 | - | |
77 | 73 | <string name="status400_message">400 Bad Request - パラメータが不正です</string> |
78 | - <string name="status403_message">403 Forbidden - サーバが要求の実行を拒否しています</string><string name="status404_message">404 Not Found - 接続先が存在しません</string> | |
79 | - <string name="status500_message">500 Internal Server Error - サーバで問題が発生しています</string><string name="http_response_error_message">サーバからエラーコードが返されました</string><string name="http_connection_error_message">サーバーと接続できません。時間をおいて再度試してください。</string> | |
80 | - <string name="watchLecture">ウォッチ</string> | |
81 | - <string name="get_watching_courses">ウォッチ一覧取得</string> | |
82 | - <string name="debug_please_select_from_option">他のデバッグメニューは右上のメニューから選べます</string> | |
83 | - <string name="review_day_selecter_label_string">日付:</string> | |
84 | - <string name="review_day_begin">から</string> | |
85 | - <string name="review_day_end">まで</string> | |
86 | - <string name="get_account">アカウント情報取得><</string> | |
87 | - <string name="nickname_menu_title">ニックネーム変更</string> | |
88 | - <string name="nickname_path">/web/user/userinfo</string> | |
74 | + <string name="status403_message">403 Forbidden - サーバが要求の実行を拒否しています</string> | |
75 | + <string name="status404_message">404 Not Found - 接続先が存在しません</string> | |
76 | + <string name="status500_message">500 Internal Server Error - サーバで問題が発生しています</string> | |
77 | + <string name="http_response_error_message">サーバからエラーコードが返されました</string> | |
78 | + <string name="http_connection_error_message">サーバーと接続できません。時間をおいて再度試してください。</string> | |
79 | + <string name="watchLecture">ウォッチ</string> | |
80 | + <string name="get_watching_courses">ウォッチ一覧取得</string> | |
81 | + <string name="debug_please_select_from_option">他のデバッグメニューは右上のメニューから選べます</string> | |
82 | + <string name="review_day_selecter_label_string">日付:</string> | |
83 | + <string name="review_day_begin">から</string> | |
84 | + <string name="review_day_end">まで</string> | |
85 | + <string name="get_account">アカウント情報取得><</string> | |
86 | + <string name="nickname_menu_title">ニックネーム変更</string> | |
87 | + <string name="nickname_path">/web/user/userinfo</string> | |
88 | + <string name="hello_world">Hello world!</string> | |
89 | + <string name="menu_settings">Settings</string> | |
90 | + <string name="title_activity_network_configuration">NetworkConfigurationActivity</string> | |
89 | 91 | <string name="watch_menu">ウォッチする</string> |
90 | 92 | <string name="unwatch_menu">ウォッチをやめる</string> |
91 | 93 | <string name="watch_done_message">ウォッチしました</string> |
@@ -0,0 +1,6 @@ | ||
1 | +<menu xmlns:android="http://schemas.android.com/apk/res/android"> | |
2 | + <item android:id="@+id/menu_settings" | |
3 | + android:title="option menu" | |
4 | + android:orderInCategory="100" | |
5 | + android:showAsAction="never" /> | |
6 | +</menu> |
@@ -0,0 +1,43 @@ | ||
1 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
2 | + xmlns:tools="http://schemas.android.com/tools" | |
3 | + android:layout_width="match_parent" | |
4 | + android:layout_height="match_parent" > | |
5 | + | |
6 | + <EditText | |
7 | + android:id="@+id/hostName" | |
8 | + android:layout_width="fill_parent" | |
9 | + android:layout_height="wrap_content" | |
10 | + android:layout_alignParentLeft="true" | |
11 | + android:layout_alignParentTop="true" | |
12 | + android:layout_marginLeft="34dp" | |
13 | + android:hint="host name" > | |
14 | + | |
15 | + <requestFocus /> | |
16 | + </EditText> | |
17 | + | |
18 | + <EditText | |
19 | + android:id="@+id/portNumber" | |
20 | + android:hint="port number" | |
21 | + android:layout_width="fill_parent" | |
22 | + android:layout_height="wrap_content" | |
23 | + android:layout_alignLeft="@+id/hostName" | |
24 | + android:layout_below="@+id/hostName" | |
25 | + android:inputType="number" /> | |
26 | + | |
27 | + <EditText | |
28 | + android:id="@+id/apiBasePath" | |
29 | + android:hint="api base path" | |
30 | + android:layout_width="fill_parent" | |
31 | + android:layout_height="wrap_content" | |
32 | + android:layout_alignLeft="@+id/hostName" | |
33 | + android:layout_below="@+id/portNumber" /> | |
34 | + | |
35 | + <Button | |
36 | + android:id="@+id/saveButton" | |
37 | + android:layout_width="wrap_content" | |
38 | + android:layout_height="wrap_content" | |
39 | + android:layout_alignLeft="@+id/hostName" | |
40 | + android:layout_alignParentBottom="true" | |
41 | + android:text="Save" /> | |
42 | + | |
43 | +</RelativeLayout> |