Fabの操作を独立させた
This commit is contained in:
parent
0caed0860f
commit
47008d5c35
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);
|
||||
}
|
||||
|
||||
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