OSDN Git Service

ストレージを外部ストレージではなくて内部ストレージに変更する。
[gokigen/MeMoMa.git] / app / src / main / java / jp / sourceforge / gokigen / memoma / Main.kt
1 package jp.sourceforge.gokigen.memoma
2
3 import android.app.Dialog
4 import android.content.Intent
5 import android.os.Bundle
6 import android.util.Log
7 import android.view.Menu
8 import android.view.MenuItem
9 import android.view.Window
10 import androidx.appcompat.app.AppCompatActivity
11 import jp.sourceforge.gokigen.memoma.io.MeMoMaDataInOutManager
12
13 /**
14  * メイン画面の処理
15  */
16 class Main : AppCompatActivity()
17 {
18     private lateinit var listener: MeMoMaListener // イベント処理クラス
19
20     public override fun onCreate(savedInstanceState: Bundle?)
21     {
22         super.onCreate(savedInstanceState)
23
24         // リスナクラスを生成する
25         listener = MeMoMaListener(this, MeMoMaDataInOutManager(this))
26
27         // タイトルにプログレスバーを出せるようにする
28         supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)
29
30         // タイトルバーにアクションバーを出す
31         supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY)
32
33         // レイアウトを設定する **/
34         setContentView(R.layout.main)
35
36         try
37         {
38             // リスナクラスの準備
39             listener.prepareListener()
40         }
41         catch (e: Exception)
42         {
43             e.printStackTrace()
44         }
45         Log.v(TAG, " START MEMOMA...");
46     }
47
48     /**
49      * メニューの生成
50      */
51     override fun onCreateOptionsMenu(menu: Menu): Boolean
52     {
53         try
54         {
55             val menu0 = listener.onCreateOptionsMenu(menu)
56             return (super.onCreateOptionsMenu(menu0))
57         }
58         catch (e: Exception)
59         {
60             e.printStackTrace()
61         }
62         return false
63     }
64
65     /**
66      * メニューアイテムの選択
67      */
68     override fun onOptionsItemSelected(item: MenuItem): Boolean
69     {
70         try
71         {
72             return listener.onOptionsItemSelected(item)
73         }
74         catch (e: Exception)
75         {
76             e.printStackTrace()
77         }
78         return false
79     }
80
81     /**
82      * メニュー表示前の処理
83      */
84     override fun onPrepareOptionsMenu(menu: Menu): Boolean
85     {
86         try
87         {
88             listener.onPrepareOptionsMenu(menu)
89             return (super.onPrepareOptionsMenu(menu))
90         }
91         catch (e: Exception)
92         {
93             e.printStackTrace()
94         }
95         return false
96     }
97
98     /**
99      * 画面が裏に回ったときの処理
100      */
101     public override fun onPause()
102     {
103         super.onPause()
104         try
105         {
106             // 動作を止めるようイベント処理クラスに指示する
107             listener.shutdown()
108         }
109         catch (ex: Exception)
110         {
111             ex.printStackTrace()
112         }
113     }
114
115     /**
116      * 画面が表に出てきたときの処理
117      */
118     public override fun onResume()
119     {
120         super.onResume()
121         try
122         {
123             // 動作準備するようイベント処理クラスに指示する
124             listener.prepareToStart()
125         }
126         catch (ex: Exception)
127         {
128             ex.printStackTrace()
129         }
130     }
131
132     /**
133      * 終了時の処理
134      */
135     override fun onDestroy()
136     {
137         try
138         {
139             listener.finishListener()
140             super.onDestroy()
141         }
142         catch (e: Exception)
143         {
144             e.printStackTrace()
145         }
146     }
147
148     /**
149      *
150      */
151     override fun onSaveInstanceState(outState: Bundle)
152     {
153         try
154         {
155             super.onSaveInstanceState(outState)
156             if (::listener.isInitialized)
157             {
158                 // ここでActivityの情報を覚える
159                 listener.onSaveInstanceState(outState)
160             }
161         }
162         catch (e: Exception)
163         {
164             e.printStackTrace()
165         }
166     }
167
168     /**
169      *
170      */
171     override fun onRestoreInstanceState(savedInstanceState: Bundle)
172     {
173         super.onRestoreInstanceState(savedInstanceState)
174         try
175         {
176             if (::listener.isInitialized)
177             {
178                 // ここでActivityの情報を展開する
179                 listener.onRestoreInstanceState(savedInstanceState)
180             }
181         }
182         catch (e: Exception)
183         {
184             e.printStackTrace()
185         }
186     }
187
188     /**
189      * ダイアログ表示の準備
190      *
191      */
192     override fun onCreateDialog(id: Int): Dialog
193     {
194         return listener.onCreateDialog(id)
195     }
196
197     /**
198      * ダイアログ表示の準備
199      *
200      */
201     override fun onPrepareDialog(id: Int, dialog: Dialog)
202     {
203         try
204         {
205             listener.onPrepareDialog(id, dialog)
206         }
207         catch (e: Exception)
208         {
209             e.printStackTrace()
210         }
211     }
212
213     /**
214      * 子画面から応答をもらったときの処理
215      */
216     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)
217     {
218         super.onActivityResult(requestCode, resultCode, data)
219         try
220         {
221             // 子画面からもらった情報の応答処理をイベント処理クラスに依頼する
222             listener.onActivityResult(requestCode, resultCode, data)
223         }
224         catch (ex: Exception)
225         {
226             ex.printStackTrace()
227         }
228     }
229
230     companion object {
231         const val APP_NAMESPACE = "gokigen"
232         private val TAG = Main::class.java.simpleName
233     }
234 }