diff options
Diffstat (limited to 'library/src/main/java/moe/yuuta/flow/Header.java')
-rw-r--r-- | library/src/main/java/moe/yuuta/flow/Header.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/library/src/main/java/moe/yuuta/flow/Header.java b/library/src/main/java/moe/yuuta/flow/Header.java new file mode 100644 index 0000000..42d9124 --- /dev/null +++ b/library/src/main/java/moe/yuuta/flow/Header.java @@ -0,0 +1,54 @@ +package moe.yuuta.flow; + +import android.view.View; +import android.view.ViewGroup; +import android.widget.ProgressBar; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +class Header { + public enum WhichView { + TITLE, + SUBTITLE + } + + private ViewGroup mRoot; + private TextView mTitle; + private TextView mSubtitle; + private ProgressBar mProgressBar; + + Header() {} + + Header(@NonNull ViewGroup root) { + attach(root); + } + + /** + * The config will be reset after re-attaching. + */ + void attach(@NonNull ViewGroup root) { + mRoot = root; + mTitle = mRoot.findViewById(R.id.flow_header_title); + mSubtitle = mRoot.findViewById(R.id.flow_header_subtitle); + mProgressBar = mRoot.findViewById(R.id.flow_header_progressbar); + } + + @NonNull + private TextView getText(@NonNull WhichView position) { + switch (position) { + case TITLE: + return mTitle; + case SUBTITLE: + return mSubtitle; + default: + throw new IllegalArgumentException("Unexpected position"); + } + } + + void applyInfo(@NonNull HeaderConfig config) { + mTitle.setText(config.getTitleText()); + mSubtitle.setText(config.getSubtitleText()); + mProgressBar.setVisibility(config.getShowProgressBar() ? View.VISIBLE : View.GONE); + } +} |