Android Open Source - android-model-record Main Activity






From Project

Back to project page android-model-record.

License

The source code is released under:

MIT License

If you think the Android project android-model-record listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.fanpics.opensource.android.modelrecord.sample.ui.activity;
//from  w  ww . j  a v a  2 s  . c  o  m
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ListView;
import android.widget.Toast;

import com.fanpics.opensource.android.modelrecord.sample.R;
import com.fanpics.opensource.android.modelrecord.sample.data.model.ImgurItem;
import com.fanpics.opensource.android.modelrecord.sample.data.model.record.ImgurDataRecord;
import com.fanpics.opensource.android.modelrecord.sample.event.ImgurDataLoadFailedEvent;
import com.fanpics.opensource.android.modelrecord.sample.event.ImgurDataLoadSucceededEvent;
import com.fanpics.opensource.android.modelrecord.sample.ui.adapter.ImgurAdapter;
import com.squareup.otto.Bus;
import com.squareup.otto.Subscribe;

import java.util.List;


public class MainActivity extends ActionBarActivity {

    private Bus bus;
    private List<ImgurItem> imgurItems;
    private ImgurAdapter adapter;
    private MenuItem refreshButton;
    private boolean isLoading;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setupEventBus();
        setupList();
        loadData();
    }

    private void setupEventBus() {
        bus = new Bus();
        bus.register(this);
    }

    private void setupList() {
        adapter = new ImgurAdapter(LayoutInflater.from(this), this);
        ListView list = (ListView) findViewById(R.id.list);
        list.setAdapter(adapter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        bus.unregister(this);
    }

    private void loadData() {
        new ImgurDataRecord(this, bus).load();
        isLoading = true;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        refreshButton = menu.findItem(R.id.action_refresh);
        if (isLoading) {
            startReloadAnimation();
        }
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();

        if (id == R.id.action_refresh) {
            startReloadAnimation();
            new ImgurDataRecord(this, bus).refresh();
            isLoading = true;
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    @Subscribe
    public void onListLoaded(ImgurDataLoadSucceededEvent event) {
        imgurItems = event.getResult().getFirstTenItems();
        displayImgurData();
        if (event.hasFinished()) {
            isLoading = false;
            stopReloadAnimation();
        }
    }

    private void displayImgurData() {
        adapter.setImgurItems(imgurItems);
    }

    private void stopReloadAnimation() {
        refreshButton.setEnabled(true);
        refreshButton.setActionView(null);
    }

    private void startReloadAnimation() {
        refreshButton.setEnabled(false);
        refreshButton.setActionView(R.layout.action_refresh);
    }

    @Subscribe
    public void onListLoadFailed(ImgurDataLoadFailedEvent event) {
        isLoading = false;
        stopReloadAnimation();

        displayLoadFailedToast();
    }

    private void displayLoadFailedToast() {
        Toast.makeText(this, R.string.could_not_load, Toast.LENGTH_LONG).show();
    }
}




Java Source Code List

com.fanpics.opensource.android.modelrecord.HttpReport.java
com.fanpics.opensource.android.modelrecord.ModelRecordTest.java
com.fanpics.opensource.android.modelrecord.ModelRecord.java
com.fanpics.opensource.android.modelrecord.RecordCache.java
com.fanpics.opensource.android.modelrecord.ResponseParser.java
com.fanpics.opensource.android.modelrecord.Result.java
com.fanpics.opensource.android.modelrecord.callback.BaseRecordCallback.java
com.fanpics.opensource.android.modelrecord.callback.CreateCallback.java
com.fanpics.opensource.android.modelrecord.callback.DeleteCallbackTest.java
com.fanpics.opensource.android.modelrecord.callback.DeleteCallback.java
com.fanpics.opensource.android.modelrecord.callback.FailureCallback.java
com.fanpics.opensource.android.modelrecord.callback.LoadCallback.java
com.fanpics.opensource.android.modelrecord.callback.LoadListCallback.java
com.fanpics.opensource.android.modelrecord.callback.RecordCallbackTest.java
com.fanpics.opensource.android.modelrecord.callback.RecordCallback.java
com.fanpics.opensource.android.modelrecord.callback.SuccessCallback.java
com.fanpics.opensource.android.modelrecord.callback.UpdateCallback.java
com.fanpics.opensource.android.modelrecord.configuration.BaseRecordConfigurationTest.java
com.fanpics.opensource.android.modelrecord.configuration.BaseRecordConfiguration.java
com.fanpics.opensource.android.modelrecord.configuration.MultiRecordConfigurationTest.java
com.fanpics.opensource.android.modelrecord.configuration.MultiRecordConfiguration.java
com.fanpics.opensource.android.modelrecord.configuration.SingleRecordConfigurationTest.java
com.fanpics.opensource.android.modelrecord.configuration.SingleRecordConfiguration.java
com.fanpics.opensource.android.modelrecord.event.EventProcessor.java
com.fanpics.opensource.android.modelrecord.event.FailureEvent.java
com.fanpics.opensource.android.modelrecord.event.OttoProcessorTest.java
com.fanpics.opensource.android.modelrecord.event.OttoProcessor.java
com.fanpics.opensource.android.modelrecord.event.SuccessEventTest.java
com.fanpics.opensource.android.modelrecord.event.SuccessEvent.java
com.fanpics.opensource.android.modelrecord.sample.data.cache.ImgurDataCache.java
com.fanpics.opensource.android.modelrecord.sample.data.model.ImgurData.java
com.fanpics.opensource.android.modelrecord.sample.data.model.ImgurItem.java
com.fanpics.opensource.android.modelrecord.sample.data.model.record.ImgurDataRecord.java
com.fanpics.opensource.android.modelrecord.sample.data.network.ImgurItemService.java
com.fanpics.opensource.android.modelrecord.sample.event.ImgurDataLoadFailedEvent.java
com.fanpics.opensource.android.modelrecord.sample.event.ImgurDataLoadSucceededEvent.java
com.fanpics.opensource.android.modelrecord.sample.ui.activity.MainActivity.java
com.fanpics.opensource.android.modelrecord.sample.ui.adapter.ImgurAdapter.java