Search in sources :

Example 16 with UIHandler

use of com.cpjd.roblu.ui.UIHandler in project Roblu by wdavies973.

the class TeamsView method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_teams_view);
    io = new IO(getApplicationContext());
    // Initialize startup requirements
    // sets width for UI, needed for RMetricToUI
    Utils.initWidth(this);
    if (IO.init(getApplicationContext())) {
        // checks if we need to show startup dialog
        startActivity(new Intent(this, SetupActivity.class));
        finish();
        return;
    }
    // setup TBA api vars
    TBA.setID("Roblu", "Scouting-App", "v3");
    settings = io.loadSettings();
    /*
         * Setup UI
         */
    // Toolbar
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    if (getSupportActionBar() != null) {
        getSupportActionBar().setTitle("Roblu");
        getSupportActionBar().setDisplayHomeAsUpEnabled(false);
    }
    // Progress bar, also make sure to hide it
    bar = findViewById(R.id.progress_bar);
    bar.setVisibility(View.GONE);
    // Recycler View, UI front-end to teams array
    rv = findViewById(R.id.teams_recycler);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
    linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    rv.setLayoutManager(linearLayoutManager);
    ((SimpleItemAnimator) rv.getItemAnimator()).setSupportsChangeAnimations(false);
    // Setup the team adapter
    adapter = new TeamsRecyclerAdapter(this, this);
    rv.setAdapter(adapter);
    // Setup the UI gestures manager and link to recycler view
    ItemTouchHelper.Callback callback = new TeamsRecyclerTouchHelper(adapter);
    ItemTouchHelper helper = new ItemTouchHelper(callback);
    helper.attachToRecyclerView(rv);
    // Search view
    searchView = findViewById(R.id.search_view);
    searchView.setHintTextColor(Color.BLACK);
    searchView.setHint("Name, number, or match");
    // Search button
    searchButton = findViewById(R.id.fab);
    searchButton.setOnClickListener(this);
    searchButton.setOnLongClickListener(this);
    // Link the search button appearance to the scrolling behavior of the recycler view
    rv.addOnScrollListener(new RecyclerView.OnScrollListener() {

        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            if (dy > 0 && searchButton.isShown())
                searchButton.hide();
            if (dy < 0 && !searchButton.isShown())
                searchButton.show();
        }

        @Override
        public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
            if (newState == RecyclerView.SCROLL_STATE_IDLE)
                searchButton.show();
            super.onScrollStateChanged(recyclerView, newState);
        }
    });
    // If the user closes the search bar, refresh the teams view with all the original items
    searchView.setOnSearchViewListener(new MaterialSearchView.SearchViewListener() {

        @Override
        public void onSearchViewShown() {
        }

        @Override
        public void onSearchViewClosed() {
            executeLoadTeamsTask(lastFilter, false);
            searchButton.setVisibility(FloatingActionButton.VISIBLE);
        }
    });
    // Listen for text in the search view, if text is found, complete teh search
    searchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener() {

        @Override
        public boolean onQueryTextSubmit(String query) {
            searchView.closeSearch();
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            lastQuery = newText;
            if (lastFilter == SORT_TYPE.CUSTOM_SORT)
                executeLoadTeamsTask(SORT_TYPE.CUSTOM_SORT, false);
            else
                executeLoadTeamsTask(SORT_TYPE.SEARCH, false);
            return true;
        }
    });
    // Make general changes to UI, keep it synced with RUI
    new UIHandler(this, toolbar, searchButton, true).update();
    // Reload last filter, custom sort, and query
    lastFilter = settings.getLastFilter();
    // custom sort or search can't be loaded at startup because lastQuery and lastCustomSortFilter aren't saved
    if (lastFilter == SORT_TYPE.CUSTOM_SORT || lastFilter == SORT_TYPE.SEARCH)
        lastFilter = SORT_TYPE.NUMERICAL;
    /*
         * Setup events drawer and load events to it
         */
    eventDrawerManager = new EventDrawerManager(this, toolbar, this);
    eventDrawerManager.selectEvent(settings.getLastEventID());
    // Check to see if the background service is running, if it isn't, start it
    serviceFilter = new IntentFilter();
    serviceFilter.addAction(Constants.SERVICE_ID);
    Log.d("RBS", "Is service running: " + Utils.isMyServiceRunning(getApplicationContext()));
    if (!Utils.isMyServiceRunning(getApplicationContext())) {
        Intent serviceIntent = new Intent(this, Service.class);
        startService(serviceIntent);
    }
    /*
         * Display update messages
         *
         */
    if (settings.getUpdateLevel() != Constants.VERSION) {
        settings.setUpdateLevel(Constants.VERSION);
        AlertDialog.Builder builder = new AlertDialog.Builder(TeamsView.this).setTitle("Changelist for Version 4.4.5").setMessage(Constants.UPDATE_MESSAGE).setPositiveButton("Rock on", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });
        AlertDialog dialog = builder.create();
        if (dialog.getWindow() != null) {
            dialog.getWindow().getAttributes().windowAnimations = settings.getRui().getDialogDirection();
            dialog.getWindow().setBackgroundDrawable(new ColorDrawable(settings.getRui().getBackground()));
        }
        dialog.show();
        dialog.getButton(Dialog.BUTTON_POSITIVE).setTextColor(settings.getRui().getAccent());
        io.saveSettings(settings);
    }
}
Also used : AlertDialog(android.app.AlertDialog) DialogInterface(android.content.DialogInterface) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) EventDrawerManager(com.cpjd.roblu.ui.events.EventDrawerManager) ItemTouchHelper(android.support.v7.widget.helper.ItemTouchHelper) SetupActivity(com.cpjd.roblu.ui.setup.SetupActivity) Toolbar(android.support.v7.widget.Toolbar) IntentFilter(android.content.IntentFilter) SimpleItemAnimator(android.support.v7.widget.SimpleItemAnimator) UIHandler(com.cpjd.roblu.ui.UIHandler) IO(com.cpjd.roblu.io.IO) Intent(android.content.Intent) ColorDrawable(android.graphics.drawable.ColorDrawable) MaterialSearchView(com.miguelcatalan.materialsearchview.MaterialSearchView) RecyclerView(android.support.v7.widget.RecyclerView)

Example 17 with UIHandler

use of com.cpjd.roblu.ui.UIHandler in project Roblu by wdavies973.

the class CustomSort method onCreate.

@Override
public void onCreate(Bundle saveInstanceState) {
    super.onCreate(saveInstanceState);
    setContentView(R.layout.activity_customsort);
    /*
         * Load the form and remove the team NAME and NUMBER metrics (since the user can sort by
         * this already without using CustomSort). Good news is that we know the form will ALWAYS
         * keep the team NAME and NUMBER as ID 0 and 1 respectively.
         */
    RForm form = new IO(getApplicationContext()).loadForm(getIntent().getIntExtra("eventID", 0));
    for (int i = 0; i < form.getPit().size(); i++) {
        if (form.getPit().get(i).getID() == 0 || form.getPit().get(i).getID() == 1 || form.getPit().get(i) instanceof RDivider || form.getPit().get(i) instanceof RFieldDiagram) {
            form.getPit().remove(i);
            i--;
        }
    }
    // Remove dividers - they are useless for sorting
    for (int i = 0; i < form.getMatch().size(); i++) {
        if (form.getMatch().get(i) instanceof RDivider || form.getMatch().get(i) instanceof RFieldDiagram) {
            form.getMatch().remove(i);
            i--;
        }
    }
    /*
         * Setup UI
         */
    // Toolbar
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    if (getSupportActionBar() != null) {
        getSupportActionBar().setTitle("Custom sort");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }
    // Setup tabs
    TabLayout tabLayout = findViewById(R.id.tab_layout);
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
    tabLayout.setBackgroundColor(new IO(getApplicationContext()).loadSettings().getRui().getPrimaryColor());
    // Setup the adapter - the back-end to the UI (manages all the MetricFragments)
    MetricSortAdapter adapter = new MetricSortAdapter(getSupportFragmentManager(), form, getIntent().getIntExtra("eventID", 0));
    ViewPager pager = findViewById(R.id.pager);
    pager.addOnPageChangeListener(this);
    pager.setAdapter(adapter);
    tabLayout.setupWithViewPager(pager);
    // Sync UI with user preferences
    new UIHandler(this, toolbar).update();
}
Also used : RDivider(com.cpjd.roblu.models.metrics.RDivider) RForm(com.cpjd.roblu.models.RForm) UIHandler(com.cpjd.roblu.ui.UIHandler) IO(com.cpjd.roblu.io.IO) TabLayout(android.support.design.widget.TabLayout) RFieldDiagram(com.cpjd.roblu.models.metrics.RFieldDiagram) ViewPager(android.support.v4.view.ViewPager) Toolbar(android.support.v7.widget.Toolbar)

Example 18 with UIHandler

use of com.cpjd.roblu.ui.UIHandler in project Roblu by wdavies973.

the class EventCreateMethodPicker method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_create_event_picker);
    /*
         * Load dependencies
         */
    rui = new IO(getApplicationContext()).loadSettings().getRui();
    /*
         * Setup UI
         */
    // Toolbar
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    if (getSupportActionBar() != null) {
        getSupportActionBar().setHomeAsUpIndicator(R.drawable.clear);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle("Create event");
        getSupportActionBar().setSubtitle("Choose an option");
    }
    /*
         * Bind choices to UI and setup an adapter
         */
    ListView sharingView = findViewById(R.id.listView1);
    List<Map<String, String>> data = new ArrayList<>();
    for (int i = 0; i < items.length; i++) {
        Map<String, String> datum = new HashMap<>(2);
        datum.put("item", items[i]);
        datum.put("description", sub_items[i]);
        data.add(datum);
    }
    SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(), data, android.R.layout.simple_list_item_2, new String[] { "item", "description" }, new int[] { android.R.id.text1, android.R.id.text2 }) {

        public View getView(int position, View convertView, ViewGroup parent) {
            View view = super.getView(position, convertView, parent);
            TextView text1 = view.findViewById(android.R.id.text1);
            text1.setTextColor(rui.getText());
            text1 = view.findViewById(android.R.id.text2);
            text1.setTextColor(rui.getText());
            return view;
        }
    };
    sharingView.setAdapter(adapter);
    sharingView.setOnItemClickListener(this);
    /*
         * sync general UI settings
         */
    new UIHandler(this, toolbar).update();
}
Also used : UIHandler(com.cpjd.roblu.ui.UIHandler) HashMap(java.util.HashMap) IO(com.cpjd.roblu.io.IO) ViewGroup(android.view.ViewGroup) ArrayList(java.util.ArrayList) SimpleAdapter(android.widget.SimpleAdapter) View(android.view.View) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) ListView(android.widget.ListView) ListView(android.widget.ListView) TextView(android.widget.TextView) HashMap(java.util.HashMap) Map(java.util.Map) Toolbar(android.support.v7.widget.Toolbar)

Example 19 with UIHandler

use of com.cpjd.roblu.ui.UIHandler in project Roblu by wdavies973.

the class EventSettings method onCreate.

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_event_settings);
    /*
         * Receive parameters
         */
    event = (REvent) getIntent().getSerializableExtra("event");
    /*
         * Setup UI
         */
    // Toolbar
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    if (getSupportActionBar() != null) {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle(event.getName());
        getSupportActionBar().setSubtitle("Event settings");
    }
    // Bind event to the UI
    getFragmentManager().beginTransaction().replace(R.id.blankFragment, new SettingsFragment()).commit();
    // Bind general user UI preferences
    new UIHandler(this, toolbar).update();
}
Also used : UIHandler(com.cpjd.roblu.ui.UIHandler) Toolbar(android.support.v7.widget.Toolbar)

Example 20 with UIHandler

use of com.cpjd.roblu.ui.UIHandler in project Roblu by wdavies973.

the class FormViewer method onCreateOptionsMenu.

/**
 * Inflates the menu, if master form, add the "import from event" menu button
 * @param menu the menu to inflate
 * @return true if the menu is created
 */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    if (getIntent().getBooleanExtra("master", false))
        inflater.inflate(R.menu.master_edit_form, menu);
    else
        inflater.inflate(R.menu.form_viewer, menu);
    new UIHandler(this, menu).updateMenu();
    return true;
}
Also used : UIHandler(com.cpjd.roblu.ui.UIHandler) MenuInflater(android.view.MenuInflater)

Aggregations

UIHandler (com.cpjd.roblu.ui.UIHandler)26 Toolbar (android.support.v7.widget.Toolbar)14 IO (com.cpjd.roblu.io.IO)10 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)5 SimpleItemAnimator (android.support.v7.widget.SimpleItemAnimator)5 ItemTouchHelper (android.support.v7.widget.helper.ItemTouchHelper)4 MenuInflater (android.view.MenuInflater)4 RForm (com.cpjd.roblu.models.RForm)4 ArrayList (java.util.ArrayList)4 RecyclerView (android.support.v7.widget.RecyclerView)3 IntentFilter (android.content.IntentFilter)2 View (android.view.View)2 AdapterView (android.widget.AdapterView)2 ListView (android.widget.ListView)2 SimpleAdapter (android.widget.SimpleAdapter)2 TextView (android.widget.TextView)2 RUI (com.cpjd.roblu.models.RUI)2 MaterialSearchView (com.miguelcatalan.materialsearchview.MaterialSearchView)2 HashMap (java.util.HashMap)2 AlertDialog (android.app.AlertDialog)1