package com.docd.purefm.ui.activities;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import com.docd.purefm.Environment;
import com.docd.purefm.R;
import com.docd.purefm.browser.Browser;
import com.docd.purefm.file.GenericFile;
import com.docd.purefm.settings.Settings;
import com.docd.purefm.ui.fragments.BrowserFragment;
import com.docd.purefm.ui.view.BreadCrumbTextView;
import com.docd.purefm.utils.MimeTypes;
import com.docd.purefm.utils.ThemeUtils;
public final class PickerActivity extends AbstractBrowserActivity {
private BreadCrumbTextView mBreadCrumbView;
/**
* GET_CONTENT mime type
*/
private String mGetContentMimeType;
private View mUp;
@Override
protected void onCreate(Bundle savedInstanceState) {
if (Settings.getInstance(this).getTheme() == Settings.Theme.DARK) {
setTheme(R.style.ThemeDark_Overlay);
} else {
setTheme(R.style.ThemeLight_Overlay);
}
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_picker);
this.checkIntentAction(getIntent());
this.initActionBar();
this.setWindowParams();
}
private void setWindowParams() {
final Resources res = getResources();
final Window window = getWindow();
final WindowManager.LayoutParams windowAttributes = window.getAttributes();
windowAttributes.width = (int) res.getDimension(R.dimen.picker_dialog_width);
windowAttributes.height = (int) res.getDimension(R.dimen.picker_dialog_height);
window.setAttributes(windowAttributes);
final View content = findViewById(R.id.activity_picker_content);
final ViewGroup.LayoutParams contentParams = content.getLayoutParams();
if (contentParams != null) {
contentParams.width = windowAttributes.width;
contentParams.height = windowAttributes.height;
content.setLayoutParams(contentParams);
}
}
@Override
public void setCurrentlyDisplayedFragment(BrowserFragment fragment) {
//do nothing
}
@Override
public void setOnSequenceClickListener(BreadCrumbTextView.OnSequenceClickListener sequenceListener) {
if (mBreadCrumbView != null) {
mBreadCrumbView.setOnSequenceClickListener(sequenceListener);
}
}
@Override
public boolean shouldShowBrowserFragmentMenu() {
return false;
}
@Override
public void invalidateList() {
//do nothing
}
@Override
public boolean isHistoryEnabled() {
return false;
}
@Override
protected boolean setThemeInOnCreate() {
return false;
}
@Override
protected void onNewIntent(final Intent intent) {
super.onNewIntent(intent);
checkIntentAction(intent);
}
private void checkIntentAction(Intent intent) {
final String action = intent.getAction();
if (Intent.ACTION_GET_CONTENT.equals(action)) {
mGetContentMimeType = intent.getType();
if (mGetContentMimeType == null || mGetContentMimeType.isEmpty()) {
mGetContentMimeType = MimeTypes.ALL_MIME_TYPES;
}
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setWindowParams();
final int actionBarSize = (int) ThemeUtils.getDimension(getTheme(), android.R.attr.actionBarSize);
final View actionBar = findViewById(R.id.activity_picker_actionbar);
final ViewGroup.LayoutParams actionBarParams = actionBar.getLayoutParams();
if (actionBarParams != null) {
actionBarParams.height = actionBarSize;
actionBar.setLayoutParams(actionBarParams);
mBreadCrumbView.fullScrollRight();
}
}
private void initActionBar() {
mBreadCrumbView = (BreadCrumbTextView) findViewById(R.id.bread_crumb_view);
mUp = findViewById(R.id.up);
final View home = findViewById(android.R.id.home);
home.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final BrowserFragment fragment = getCurrentlyDisplayedFragment();
if (fragment != null) {
final Browser browser = fragment.getBrowser();
if (browser != null) {
browser.up();
}
}
}
});
}
@Override
public String getGetContentMimeType() {
return mGetContentMimeType;
}
@Override
public void onNavigationCompleted(final GenericFile path) {
mBreadCrumbView.setFile(path.toFile());
mUp.setVisibility(path.getAbsolutePath().equals(Environment.sRootDirectory.getAbsolutePath()) ? View.INVISIBLE : View.VISIBLE);
}
@Override
protected void setActionBarIcon(final Drawable icon) {
((ImageView) findViewById(R.id.home_icon)).setImageDrawable(icon);
}
@Override
protected BrowserFragment getCurrentlyDisplayedFragment() {
return (BrowserFragment) getFragmentManager().findFragmentById(
R.id.activity_picker_fragment);
}
}