package com.aptoide.amethyst.ui;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
import com.aptoide.amethyst.Aptoide;
import com.aptoide.amethyst.AptoideBaseActivity;
import com.aptoide.amethyst.R;
import com.aptoide.amethyst.analytics.Analytics;
import com.aptoide.amethyst.database.AptoideDatabase;
import com.aptoide.amethyst.database.SimpleCursorLoader;
import com.squareup.otto.Subscribe;
import com.aptoide.amethyst.adapter.RollBackAdapter;
import com.aptoide.amethyst.adapter.RollbackSectionListAdapter;
import com.aptoide.amethyst.events.BusProvider;
import com.aptoide.amethyst.events.OttoEvents;
//TODO: strings refactor, flurry e feedbackactivity
public class RollbackActivity extends AptoideBaseActivity implements LoaderManager.LoaderCallbacks<Cursor> {
Toolbar mToolbar;
private RollBackAdapter rollBackAdapter;
@Subscribe
public void onInstalledApkEvent(OttoEvents.InstalledApkEvent event) {
refreshRollbackList();
}
@Subscribe
public void onUnistalledApkEvent(OttoEvents.UnInstalledApkEvent event) {
refreshRollbackList();
}
@Override
public void onCreate(Bundle savedInstanceState) {
// Aptoide.getThemePicker().setAptoideTheme(this);
super.onCreate(savedInstanceState);
setContentView(getContentView());
bindViews();
rollBackAdapter = new RollBackAdapter(this);
ListView lView = (ListView) findViewById(R.id.rollback_list);
lView.setDivider(null);
RollbackSectionListAdapter adapter = new RollbackSectionListAdapter(getLayoutInflater(), rollBackAdapter);
lView.setAdapter(adapter);
mToolbar.setCollapsible(false);
setSupportActionBar(mToolbar);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(true);
getSupportActionBar().setTitle(getString(R.string.rollback));
}
protected int getContentView() {
return R.layout.page_rollback;
}
protected void bindViews() {
mToolbar = (Toolbar) findViewById(R.id.toolbar);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int i = item.getItemId();
if (i == android.R.id.home) {
finish();
} else if (i == R.id.home) {
finish();
} else if (i == R.id.menu_clear_rollback) {
Analytics.Rollback.clear();
// FlurryAgent.logEvent("Rollback_Cleared_Rollback_List");
new AptoideDatabase(Aptoide.getDb()).deleteRollbackItems();
getSupportLoaderManager().restartLoader(17, null, this);
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_rollback_activity, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public Loader<Cursor> onCreateLoader(int i, Bundle bundle) {
return new SimpleCursorLoader(this) {
@Override
public Cursor loadInBackground() {
Cursor cursor = new AptoideDatabase(Aptoide.getDb()).getRollbackActions();
return cursor;
}
};
}
@Override
public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
rollBackAdapter.swapCursor(cursor);
if(cursor.getCount()==0){
findViewById(R.id.empty).setVisibility(View.VISIBLE);
}else{
findViewById(R.id.empty).setVisibility(View.GONE);
}
}
@Override
public void onLoaderReset(Loader<Cursor> cursorLoader) {
rollBackAdapter.swapCursor(null);
}
public void refreshRollbackList() {
getSupportLoaderManager().restartLoader(17, null, this);
}
@Override
protected void onResume() {
super.onResume();
BusProvider.getInstance().register(this);
getSupportLoaderManager().restartLoader(17, null, this);
}
@Override
protected void onPause() {
super.onPause();
BusProvider.getInstance().unregister(this);
}
@Override
protected void onStart() {
super.onStart();
// FlurryAgent.onStartSession(this, getResources().getString(R.string.FLURRY_KEY));
}
@Override
protected void onStop() {
super.onStop();
// FlurryAgent.onEndSession(this);
}
@Override
protected String getScreenName() {
return "Roolback";
}
}