Fab追加 #129
53
app/src/main/java/one/nem/kidshift/FabManager.java
Normal file
53
app/src/main/java/one/nem/kidshift/FabManager.java
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
package one.nem.kidshift;
|
||||||
|
|
||||||
|
// HiltのSingletonインスタンス
|
||||||
|
// FloatingActionButtonを別モジュールから制御するためのクラス
|
||||||
|
|
||||||
|
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import one.nem.kidshift.model.callback.FabEventCallback;
|
||||||
|
import one.nem.kidshift.utils.KSLogger;
|
||||||
|
import one.nem.kidshift.utils.factory.KSLoggerFactory;
|
||||||
|
|
||||||
|
public class FabManager {
|
||||||
|
private FloatingActionButton fab;
|
||||||
|
|
||||||
|
private final KSLogger logger;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public FabManager(KSLoggerFactory loggerFactory) {
|
||||||
|
this.logger = loggerFactory.create("FabManager");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFab(FloatingActionButton fab) {
|
||||||
|
this.fab = fab;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkFab() {
|
||||||
|
if (fab == null) {
|
||||||
|
logger.error("Fab is not set");
|
||||||
|
throw new IllegalStateException("Fab is not set");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void show() {
|
||||||
|
checkFab();
|
||||||
|
fab.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void hide() {
|
||||||
|
checkFab();
|
||||||
|
fab.hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFabEventCallback(FabEventCallback callback) {
|
||||||
|
checkFab();
|
||||||
|
fab.setOnClickListener(v -> callback.onClicked());
|
||||||
|
fab.setOnLongClickListener(v -> {
|
||||||
|
callback.onLongClicked();
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -80,28 +80,6 @@ public class MainActivity extends AppCompatActivity {
|
||||||
fab = findViewById(R.id.mainFab);
|
fab = findViewById(R.id.mainFab);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class FabControl{
|
|
||||||
public void showFab() {
|
|
||||||
fab.setVisibility(View.VISIBLE);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void hideFab() {
|
|
||||||
fab.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFabIcon(int iconResId) {
|
|
||||||
fab.setImageResource(iconResId);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFabEventCallback(FabEventCallback callback) {
|
|
||||||
fab.setOnClickListener(v -> callback.onClicked());
|
|
||||||
fab.setOnLongClickListener(v -> {
|
|
||||||
callback.onLongClicked();
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 起動時にバックグラウンドで行う各種更新処理とか
|
* 起動時にバックグラウンドで行う各種更新処理とか
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue
Block a user