画面・リソース
各画面のカスタマイズ
Warning
画面クラスの修正は、popinfo-sdk プロジェクト内の画面クラスファイルを直接修正や継承しないで使用してください。
アプリケーションモジュール内に popinfo-sdk よりコピーし(クラス名変更可能)編集することを推奨しております。
これは、popinfo-sdk プロジェクトを直接修正すると、SDK をアップデートする際に画面クラスをアップデートすることが難しくなってしまうためです。
また、各画面クラスで継承している PopinfoBase~ クラスは、変更せずにご使用いただくことを推奨しております。
- 各画面クラスを修正し、独自の画面を作成する場合は、
popinfo-sdk/src/配下のパッケージ内にある各種画面クラスとそれに対応するレイアウトファイルをアプリプロジェクトにコピーしていただき、独自処理を実装してください。 -
作成した独自画面クラスへの遷移制御は
popinfo-sdk/res/values/popinfo_values.xmlで行います。アプリモジュールのres/valuesにコピーして変更してください。- 以下、独自のお知らせ一覧画面を作成した場合の遷移先記述例になります。
- ※ コピーした popinfo_values.xml の以下の部分を変更します。パッケージ名を含めたクラス名で記述してください。
<!-- お知らせ一覧画面 --> <string name="popinfo_class_list">パッケージ名含めた遷移先クラス名</string> -
AndroidManifest.xmlに追加した Activity クラスを設定します。
各メソッドの詳細につきましては、同梱のpopinfo_javadoc をご確認ください。
FANSHIP 通知音/バイブレーションパターン指定
- 独自の着信音を設定する場合は
popinfo_alarm.oggという名前でoggファイルを作成し、/res/raw/popinfo_alarm.oggと差し替えてください。 - 独自のバイブレーションパターンを設定する場合は
@array/popinfo_vibration_pattern(/res/values/popinfo_arrays.xml)を変更してください。- 配列は、バイブレーションOff の時間、ONの時間、OFFの時間、ONの時間…の順にミリ秒単位の数値で設定します。
- 独自の着信音を設定した場合や、バイブレーションパターンを変更した場合は、
再インストール後に反映されます。(アプリアップデートでは反映されません)
その他リソースファイルについて
その他のリソースファイルも通常の Android プロジェクトと同様に修正可能です。
アプリプロジェクト内の同フォルダ内にコピーして編集していただくことを推奨しております。
Android15画面対応が不要な場合(SDK v.11.0.0 以降)
Android15のアプリの全画面化 に伴いまして、11.0.0 では
PopinfoList (お知らせ一覧画面) など提供している画面クラスで「全画面化しない対応」をいれております。
「全画面化しない対応が不要」「独自で全画面対応をしたい」などの理由により「全画面化しない対応」が不要な場合は
「SDK 提供の画面クラス」または「PopinfoBase~を継承した画面クラス」にて、以下の処理を追加しオーバーライドしてください。
/**
* ナビゲーション領域とステータスバー領域をフィット
* @return true=フィットさせる false=フィットさせない
*/
override fun isFitsSystemWindows(): Boolean {
return false
}
/**
* ステータスバーを不透明化
* @return true=不透明化 false=透明化
*/
override fun isStatusBarContrastEnforced(): Boolean {
return false
}
/**
* ナビゲーション領域とステータスバー領域をフィット
* @return true=フィットさせる false=フィットさせない
*/
@Override
public boolean isFitsSystemWindows() {
return false;
}
/**
* ステータスバーを不透明化
* @return true=不透明化 false=透明化
*/
@Override
public boolean isStatusBarContrastEnforced() {
return false;
}
全画面に対して一括で「Android15画面対応を入れない」場合
各画面のカスタマイズ を参考に、アプリモジュールへ popinfo_values.xml をコピーいただき、以下のように記載してください。
<resources>
<!-- Android15対応 ステータスバーの非透明化 を使用するかどうか -->
<bool name="popinfo_is_statusbar_contrast_enforced_all_for_api35">false</bool>
<!-- Android15対応 ナビゲーションバーとステータスバーの保護 を使用するかどうか -->
<bool name="popinfo_is_fits_system_windows_all_for_api35">false</bool>
</resources>
一括変更 x 個別画面ごとの設定での組み合わせ
| 条件 | 個別画面で処理なし | 個別画面でTRUE設定 | 個別画面でFALSE設定 |
|---|---|---|---|
| popinfo_values に記述がない | 対応あり | 対応あり | 対応なし |
| popinfo_values の一括設定がON | 対応あり | 対応あり | 対応なし |
| popinfo_values の一括設定がOFF | 対応なし | 対応あり | 対応なし |
popinfo_valuesを使って一括で変更した場合でも、各画面で設定した値が優先されます
独自のカスタム画面に対して「Android15画面対応」を入れたい場合
SDK v.11.0.0 以降
独自のカスタム画面に対して FANSHIP デフォルトの提供画面と同じ「Android15画面対応」を入れたい場合は
optimizeWindowForApi35() メソッドを初期化時に呼ぶことで対応可能です。