package com.xda.one.util;
import com.xda.one.R;
import com.xda.one.ui.BaseActivity;
import android.app.Activity;
import android.content.Context;
import android.support.v7.app.ActionBar;
import android.support.v7.widget.RecyclerView;
import android.util.TypedValue;
import android.view.View;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
public class UIUtils {
public static int calculateActionBarSize(final Context context) {
final TypedValue tv = new TypedValue();
context.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true);
return TypedValue.complexToDimensionPixelSize(tv.data,
context.getResources().getDisplayMetrics());
}
public static void updateEmptyViewState(final View view, final RecyclerView recyclerView,
boolean isEmpty) {
// Find the empty view from the main view - it's using the android id for it
final View emptyView = view.findViewById(android.R.id.empty);
// If we don't have any threads then simply tell the user this and quit
if (isEmpty) {
// Toggle what's happening with the view
showEmptyText(recyclerView, emptyView);
// TODO - find if there's a better way to do this
// For now simply show the empty view ...
emptyView.setVisibility(View.VISIBLE);
// ... and manually remove the recyler view
recyclerView.setVisibility(View.GONE);
return;
}
// TODO - find if there's a better way to do this
// For now simply show the recycler view ...
recyclerView.setVisibility(View.VISIBLE);
// ... and manually remove the loading view
emptyView.setVisibility(View.GONE);
}
public static void updateEmptyViewState(final View view, final RecyclerView recyclerView,
int itemCount) {
updateEmptyViewState(view, recyclerView, itemCount == 0);
}
public static void showEmptyText(final RecyclerView recyclerView, final View emptyView) {
recyclerView.setVisibility(GONE);
emptyView.setVisibility(VISIBLE);
final View textView = emptyView.findViewById(R.id.empty_view_text_view);
final View progressBar = emptyView.findViewById(R.id.empty_view_progress_bar);
textView.setVisibility(VISIBLE);
progressBar.setVisibility(GONE);
}
public static void showLoadingProgress(final RecyclerView recyclerView, final View emptyView) {
recyclerView.setVisibility(GONE);
emptyView.setVisibility(VISIBLE);
final View textView = emptyView.findViewById(R.id.empty_view_text_view);
final View progressBar = emptyView.findViewById(R.id.empty_view_progress_bar);
textView.setVisibility(GONE);
progressBar.setVisibility(VISIBLE);
}
public static ActionBar getSupportActionBar(final Activity activity) {
return getBaseActivity(activity).getSupportActionBar();
}
public static BaseActivity getBaseActivity(final Activity activity) {
return (BaseActivity) activity;
}
}