package com.doplgangr.secrecy.Views;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.ActionBarActivity;
import com.balysv.materialmenu.MaterialMenuDrawable;
import com.balysv.materialmenu.extras.abc.MaterialMenuIconCompat;
import com.doplgangr.secrecy.Config;
import com.doplgangr.secrecy.FileSystem.storage;
import com.doplgangr.secrecy.R;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.Extra;
import org.androidannotations.annotations.OptionsItem;
import org.androidannotations.annotations.OptionsMenu;
import de.greenrobot.event.EventBus;
@EActivity(R.layout.activity_files)
@OptionsMenu(R.menu.main)
public class FilesActivity extends ActionBarActivity
implements
VaultsListFragment.OnFragmentFinishListener {
FragmentManager fragmentManager;
@Extra(Config.vault_extra)
String vault;
@Extra(Config.password_extra)
String password;
MaterialMenuIconCompat materialMenu;
@AfterViews
void onCreate() {
if (!EventBus.getDefault().isRegistered(this))
EventBus.getDefault().register(this);
overridePendingTransition(R.anim.slide_in_right, R.anim.fadeout);
fragmentManager = getSupportFragmentManager();
FilesListFragment_ fragment = new FilesListFragment_();
Bundle bundle = new Bundle();
bundle.putString(Config.vault_extra, vault);
bundle.putString(Config.password_extra, password);
fragment.setArguments(bundle);
fragmentManager.beginTransaction()
.replace(android.R.id.content, fragment)
.commit();
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
materialMenu = new MaterialMenuIconCompat(this, Color.WHITE, MaterialMenuDrawable.Stroke.THIN);
materialMenu.animateState(MaterialMenuDrawable.IconState.ARROW);
}
@Override
public void onPause() {
overridePendingTransition(R.anim.fadein, R.anim.slide_out_right);
super.onPause();
}
@Override
public void onFinish(Fragment fragment) {
fragmentManager.beginTransaction()
.remove(fragment)
.commit();
}
@Override
public void onNew(Bundle bundle, Fragment fragment) {
fragment.setArguments(bundle);
switchFragment(fragment);
}
void switchFragment(final Fragment fragment) {
String tag = fragment.getClass().getName();
fragmentManager.beginTransaction()
.replace(android.R.id.content, fragment, tag)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.commit();
}
@Override
public void onDestroy() {
storage.deleteTemp(); //Cleanup every time
EventBus.getDefault().post(new shouldRefresh());
super.onDestroy();
}
@Override
public void onBackPressed() {
EventBus.getDefault().post(new OnBackPressedEvent(this));
}
public void onEventMainThread(FilesListFragment.OnBackPressedUnhandledEvent event) {
//Back is pressed. should continue with default activity.
if (event.activity == this)
super.onBackPressed();
}
@OptionsItem(R.id.home)
void supporthomePressed() {
onBackPressed();
}
@OptionsItem(android.R.id.home)
void homePressed() {
onBackPressed();
}
public class OnBackPressedEvent {
public Activity activity;
public OnBackPressedEvent(Activity activity) {
this.activity = activity;
}
}
public class shouldRefresh {
}
}