package com.android_mvc.framework.common;
import android.content.Context;
/**
* アプリのユーザ定義設定項目を詰め込んだクラスのインタフェース。
* @author id:language_and_engineering
*
*/
public abstract class AbstractAppSettings
{
/* ------ 下記のメンバは,子クラス初期化時に本物の値をセットする。 ------ */
protected String APP_TAG_FOR_LOG = "TODO:";
protected String DB_NAME = "TODO:";
protected String DB_FULLPATH = "TODO:";
protected boolean DEBUGGING_FLAG = false;
protected boolean FORGET_PREFS_ON_DEBUG = false;
protected boolean FORGET_RDB_ON_DEBUG = false;
protected String GMAPS_API_KEY = "";
/* ---------------------------------------------------------------------- */
/**
* FW用の設定項目を初期化する。
*/
protected abstract void initForFW(Context context);
/**
* コンストラクタ内の処理を隠ぺい
*/
public AbstractAppSettings(Context context)
{
// NOTE: この時点では,まだロガーのタグが初期化されていない。それを初期化するのがこの処理なので…。
//FWUtil.d("デフォルトコンストラクタがコールされました。");
initForFW(context);
//FWUtil.d("FW用の設定項目を,AP側で定義完了。");
}
// NOTE: 引数のないコンストラクタである点がミソ。子クラス内で呼ばなくても自動的に処理させるために。
// @see http://msugai.fc2web.com/java/overrideConstructor.html
// 以下getter
/**
* このアプリのログ出力時用のタグ
*/
public String getAppTagForLog() {
return APP_TAG_FOR_LOG;
}
/**
* RDBの物理名
*/
public String getDbName() {
return DB_NAME;
}
/**
* RDBのフルパス
*/
public String getDbFullpath() {
return DB_FULLPATH;
}
/**
* 開発中モードかどうか
*/
public boolean isDebuggingFlag() {
return DEBUGGING_FLAG;
}
/**
* 開発中モードであれば,アプリ起動時に毎回プリファレンスを削除するかどうか。
* USB経由でインストールした際に,FW初期化フラグなんかを消去してやり直すために必要。
*/
public boolean isForgetPrefsOnDebug() {
return FORGET_PREFS_ON_DEBUG;
}
/**
* 開発中モードであれば,アプリ起動時に毎回DBを削除するかどうか。
*/
public boolean isForgetRdbOnDebug() {
return FORGET_RDB_ON_DEBUG;
}
/**
* Google MapsのAPI Key
*/
public String getGoogleMapsAPIKey() {
return GMAPS_API_KEY;
}
}