use of de.baumann.browser.View.NinjaRelativeLayout in project browser by scoute-dich.
the class BrowserActivity method onClick.
@Override
public void onClick(View v) {
RecordAction action = new RecordAction(BrowserActivity.this);
if (currentAlbumController != null && currentAlbumController instanceof NinjaRelativeLayout) {
ninjaRelativeLayout = (NinjaRelativeLayout) currentAlbumController;
} else if (currentAlbumController != null && currentAlbumController instanceof NinjaWebView) {
ninjaWebView = (NinjaWebView) currentAlbumController;
try {
title = ninjaWebView.getTitle().trim();
url = ninjaWebView.getUrl().trim();
} catch (Exception e) {
e.printStackTrace();
}
}
switch(v.getId()) {
case R.id.tab_prev:
AlbumController controller = nextAlbumController(false);
showAlbum(controller, false);
viewOverflow();
break;
case R.id.tab_next:
AlbumController controller2 = nextAlbumController(true);
showAlbum(controller2, false);
viewOverflow();
break;
case R.id.web_prev:
if (ninjaWebView.canGoBack()) {
ninjaWebView.goBack();
viewOverflow();
} else {
bottomSheetDialog.cancel();
removeAlbum(currentAlbumController);
}
break;
case R.id.web_next:
if (ninjaWebView.canGoForward()) {
ninjaWebView.goForward();
viewOverflow();
} else {
bottomSheetDialog.cancel();
NinjaToast.show(BrowserActivity.this, R.string.toast_webview_forward);
}
break;
case R.id.tv_new_tabOpen:
bottomSheetDialog.cancel();
addAlbum(start_tab);
break;
case R.id.tv_closeTab:
bottomSheetDialog.cancel();
removeAlbum(currentAlbumController);
break;
case R.id.tv_tabPreview:
bottomSheetDialog.cancel();
showOmnibox();
new Handler().postDelayed(new Runnable() {
public void run() {
switcherPanel.collapsed();
}
}, 500);
break;
case R.id.tv_quit:
bottomSheetDialog.cancel();
doubleTapsQuit();
break;
case R.id.tv_shareScreenshot:
bottomSheetDialog.cancel();
sp.edit().putInt("screenshot", 1).apply();
new ScreenshotTask(BrowserActivity.this, ninjaWebView).execute();
break;
case R.id.tv_shareLink:
bottomSheetDialog.cancel();
if (prepareRecord()) {
NinjaToast.show(BrowserActivity.this, getString(R.string.toast_share_failed));
} else {
IntentUnit.share(BrowserActivity.this, title, url);
}
break;
case R.id.tv_shareClipboard:
bottomSheetDialog.cancel();
BrowserUnit.copyURL(BrowserActivity.this, url);
break;
case R.id.tv_openWith:
bottomSheetDialog.cancel();
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
Intent chooser = Intent.createChooser(intent, getString(R.string.menu_open_with));
startActivity(chooser);
break;
case R.id.tv_saveScreenshot:
bottomSheetDialog.cancel();
sp.edit().putInt("screenshot", 0).apply();
new ScreenshotTask(BrowserActivity.this, ninjaWebView).execute();
break;
case R.id.tv_saveBookmark:
bottomSheetDialog.cancel();
action.open(true);
if (action.checkBookmark(url)) {
NinjaToast.show(BrowserActivity.this, getString(R.string.toast_entry_exists));
} else {
action.addBookmark(new Record(title, url, System.currentTimeMillis()));
NinjaToast.show(BrowserActivity.this, getString(R.string.toast_add_bookmark_successful));
}
action.close();
updateBookmarks();
updateAutoComplete();
break;
case R.id.tv_saveStart:
bottomSheetDialog.cancel();
action.open(true);
if (action.checkGridItem(url)) {
NinjaToast.show(BrowserActivity.this, getString(R.string.toast_already_exist_in_home));
} else {
Bitmap bitmap = ViewUnit.capture(ninjaWebView, dimen156dp, dimen117dp, Bitmap.Config.ARGB_8888);
String filename = System.currentTimeMillis() + BrowserUnit.SUFFIX_PNG;
int ordinal = action.listGrid().size();
GridItem itemAlbum = new GridItem(title, url, filename, ordinal);
if (BrowserUnit.bitmap2File(BrowserActivity.this, bitmap, filename) && action.addGridItem(itemAlbum)) {
NinjaToast.show(BrowserActivity.this, getString(R.string.toast_add_to_home_successful));
} else {
NinjaToast.show(BrowserActivity.this, getString(R.string.toast_add_to_home_failed));
}
}
action.close();
break;
case R.id.tv_saveLogin:
bottomSheetDialog.cancel();
AlertDialog.Builder builder = new AlertDialog.Builder(BrowserActivity.this);
View dialogView = View.inflate(BrowserActivity.this, R.layout.dialog_login, null);
final EditText pass_title = dialogView.findViewById(R.id.pass_title);
final EditText pass_userName = dialogView.findViewById(R.id.pass_userName);
final EditText pass_userPW = dialogView.findViewById(R.id.pass_userPW);
new Handler().postDelayed(new Runnable() {
public void run() {
pass_title.setText(ninjaWebView.getTitle());
showSoftInput(pass_title);
}
}, 100);
builder.setView(dialogView);
builder.setTitle(R.string.menu_edit);
builder.setPositiveButton(R.string.app_ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String input_pass_title = pass_title.getText().toString().trim();
try {
MAHEncryptor mahEncryptor = MAHEncryptor.newInstance(sp.getString("saved_key", ""));
String encrypted_userName = mahEncryptor.encode(pass_userName.getText().toString().trim());
String encrypted_userPW = mahEncryptor.encode(pass_userPW.getText().toString().trim());
Pass db = new Pass(BrowserActivity.this);
db.open();
if (db.isExist(helper_main.secString(input_pass_title))) {
NinjaToast.show(BrowserActivity.this, R.string.toast_newTitle);
} else {
db.insert(input_pass_title, url, encrypted_userName, helper_main.secString(encrypted_userPW), String.valueOf(System.currentTimeMillis()));
NinjaToast.show(BrowserActivity.this, R.string.toast_edit_successful);
hideSoftInput(pass_title);
}
} catch (Exception e) {
e.printStackTrace();
NinjaToast.show(BrowserActivity.this, R.string.toast_error);
}
}
});
builder.setNegativeButton(R.string.app_cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
AlertDialog dialog = builder.create();
dialog.show();
break;
case R.id.tv_relayout:
bottomSheetDialog.cancel();
omnibox.setVisibility(View.GONE);
relayoutOK.setVisibility(View.VISIBLE);
final DynamicGridView gridView = ninjaRelativeLayout.findViewById(R.id.home_grid);
final List<GridItem> gridList = ((GridAdapter) gridView.getAdapter()).getList();
relayoutOK.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
relayoutOK.setTextColor(ContextCompat.getColor(BrowserActivity.this, (R.color.colorAccent)));
return false;
}
});
relayoutOK.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
gridView.stopEditMode();
relayoutOK.setVisibility(View.GONE);
omnibox.setVisibility(View.VISIBLE);
RecordAction action = new RecordAction(BrowserActivity.this);
action.open(true);
action.clearGrid();
for (GridItem item : gridList) {
action.addGridItem(item);
}
action.close();
NinjaToast.show(BrowserActivity.this, getString(R.string.toast_relayout_successful));
}
});
gridView.setOnDragListener(new DynamicGridView.OnDragListener() {
private GridItem dragItem;
@Override
public void onDragStarted(int position) {
dragItem = gridList.get(position);
}
@Override
public void onDragPositionsChanged(int oldPosition, int newPosition) {
if (oldPosition < newPosition) {
for (int i = newPosition; i > oldPosition; i--) {
GridItem item = gridList.get(i);
item.setOrdinal(i - 1);
}
} else if (oldPosition > newPosition) {
for (int i = newPosition; i < oldPosition; i++) {
GridItem item = gridList.get(i);
item.setOrdinal(i + 1);
}
}
dragItem.setOrdinal(newPosition);
Collections.sort(gridList, new Comparator<GridItem>() {
@Override
public int compare(GridItem first, GridItem second) {
if (first.getOrdinal() < second.getOrdinal()) {
return -1;
} else if (first.getOrdinal() > second.getOrdinal()) {
return 1;
} else {
return 0;
}
}
});
}
});
gridView.startEditMode();
break;
case R.id.tv_searchSite:
bottomSheetDialog.cancel();
hideSoftInput(inputBox);
showSearchPanel();
break;
case R.id.tv_settings:
bottomSheetDialog.cancel();
Intent settings = new Intent(BrowserActivity.this, Settings_Activity.class);
startActivity(settings);
break;
case R.id.tv_help:
bottomSheetDialog.cancel();
showHelpDialog();
break;
case R.id.floatButton_tab:
tv_new_tabOpen.setVisibility(View.VISIBLE);
tv_closeTab.setVisibility(View.VISIBLE);
tv_tabPreview.setVisibility(View.VISIBLE);
tv_quit.setVisibility(View.VISIBLE);
tv_shareScreenshot.setVisibility(View.GONE);
tv_shareLink.setVisibility(View.GONE);
tv_shareClipboard.setVisibility(View.GONE);
tv_openWith.setVisibility(View.GONE);
tv_saveScreenshot.setVisibility(View.GONE);
tv_saveBookmark.setVisibility(View.GONE);
tv_saveStart.setVisibility(View.GONE);
tv_saveLogin.setVisibility(View.GONE);
floatButton_tabView.setVisibility(View.VISIBLE);
floatButton_saveView.setVisibility(View.INVISIBLE);
floatButton_shareView.setVisibility(View.INVISIBLE);
floatButton_moreView.setVisibility(View.INVISIBLE);
tv_relayout.setVisibility(View.GONE);
tv_searchSite.setVisibility(View.GONE);
tv_placeHolder.setVisibility(View.GONE);
tv_placeHolder_2.setVisibility(View.GONE);
tv_settings.setVisibility(View.GONE);
tv_help.setVisibility(View.GONE);
break;
case R.id.floatButton_share:
tv_new_tabOpen.setVisibility(View.GONE);
tv_closeTab.setVisibility(View.GONE);
tv_tabPreview.setVisibility(View.GONE);
tv_quit.setVisibility(View.GONE);
tv_shareScreenshot.setVisibility(View.VISIBLE);
tv_shareLink.setVisibility(View.VISIBLE);
tv_shareClipboard.setVisibility(View.VISIBLE);
tv_openWith.setVisibility(View.VISIBLE);
tv_saveScreenshot.setVisibility(View.GONE);
tv_saveBookmark.setVisibility(View.GONE);
tv_saveStart.setVisibility(View.GONE);
tv_saveLogin.setVisibility(View.GONE);
floatButton_tabView.setVisibility(View.INVISIBLE);
floatButton_saveView.setVisibility(View.INVISIBLE);
floatButton_shareView.setVisibility(View.VISIBLE);
floatButton_moreView.setVisibility(View.INVISIBLE);
tv_relayout.setVisibility(View.GONE);
tv_searchSite.setVisibility(View.GONE);
tv_placeHolder.setVisibility(View.GONE);
tv_placeHolder_2.setVisibility(View.GONE);
tv_settings.setVisibility(View.GONE);
tv_help.setVisibility(View.GONE);
break;
case R.id.floatButton_save:
tv_new_tabOpen.setVisibility(View.GONE);
tv_closeTab.setVisibility(View.GONE);
tv_tabPreview.setVisibility(View.GONE);
tv_quit.setVisibility(View.GONE);
tv_shareScreenshot.setVisibility(View.GONE);
tv_shareLink.setVisibility(View.GONE);
tv_shareClipboard.setVisibility(View.GONE);
tv_openWith.setVisibility(View.GONE);
tv_saveScreenshot.setVisibility(View.VISIBLE);
tv_saveBookmark.setVisibility(View.VISIBLE);
tv_saveStart.setVisibility(View.VISIBLE);
tv_saveLogin.setVisibility(View.VISIBLE);
tv_relayout.setVisibility(View.GONE);
tv_searchSite.setVisibility(View.GONE);
floatButton_tabView.setVisibility(View.INVISIBLE);
floatButton_saveView.setVisibility(View.VISIBLE);
floatButton_shareView.setVisibility(View.INVISIBLE);
floatButton_moreView.setVisibility(View.INVISIBLE);
tv_placeHolder.setVisibility(View.GONE);
tv_placeHolder_2.setVisibility(View.GONE);
tv_settings.setVisibility(View.GONE);
tv_help.setVisibility(View.GONE);
break;
case R.id.floatButton_more:
tv_new_tabOpen.setVisibility(View.GONE);
tv_closeTab.setVisibility(View.GONE);
tv_tabPreview.setVisibility(View.GONE);
tv_quit.setVisibility(View.GONE);
tv_shareScreenshot.setVisibility(View.GONE);
tv_shareLink.setVisibility(View.GONE);
tv_shareClipboard.setVisibility(View.GONE);
tv_openWith.setVisibility(View.GONE);
tv_saveScreenshot.setVisibility(View.GONE);
tv_saveBookmark.setVisibility(View.GONE);
tv_saveStart.setVisibility(View.GONE);
tv_saveLogin.setVisibility(View.GONE);
floatButton_tabView.setVisibility(View.INVISIBLE);
floatButton_saveView.setVisibility(View.INVISIBLE);
floatButton_shareView.setVisibility(View.INVISIBLE);
floatButton_moreView.setVisibility(View.VISIBLE);
tv_placeHolder.setVisibility(View.VISIBLE);
tv_settings.setVisibility(View.VISIBLE);
tv_help.setVisibility(View.VISIBLE);
if (currentAlbumController != null && currentAlbumController instanceof NinjaRelativeLayout) {
tv_searchSite.setVisibility(View.GONE);
if (ninjaRelativeLayout.getFlag() == BrowserUnit.FLAG_HOME) {
tv_relayout.setVisibility(View.VISIBLE);
tv_placeHolder_2.setVisibility(View.GONE);
} else {
tv_relayout.setVisibility(View.GONE);
tv_placeHolder_2.setVisibility(View.VISIBLE);
}
} else if (currentAlbumController != null && currentAlbumController instanceof NinjaWebView) {
tv_searchSite.setVisibility(View.VISIBLE);
tv_relayout.setVisibility(View.GONE);
tv_placeHolder_2.setVisibility(View.GONE);
}
break;
case R.id.fab_imageButtonNav_center:
case R.id.fab_imageButtonNav_left:
case R.id.fab_imageButtonNav_right:
doubleTapsHide();
break;
case R.id.omnibox_refresh:
if (currentAlbumController == null) {
NinjaToast.show(BrowserActivity.this, getString(R.string.toast_refresh_failed));
return;
}
if (currentAlbumController instanceof NinjaWebView) {
ninjaWebView = (NinjaWebView) currentAlbumController;
if (ninjaWebView.isLoadFinish()) {
ninjaWebView.reload();
} else {
ninjaWebView.stopLoading();
}
} else if (currentAlbumController instanceof NinjaRelativeLayout) {
ninjaRelativeLayout = (NinjaRelativeLayout) currentAlbumController;
initHomeGrid(ninjaRelativeLayout);
} else {
NinjaToast.show(BrowserActivity.this, getString(R.string.toast_refresh_failed));
}
break;
case R.id.omnibox_overflow:
showOverflow();
break;
default:
break;
}
}
use of de.baumann.browser.View.NinjaRelativeLayout in project browser by scoute-dich.
the class BrowserActivity method addAlbum.
private synchronized void addAlbum(int flag) {
showOmnibox();
final AlbumController holder;
NinjaRelativeLayout layout = (NinjaRelativeLayout) getLayoutInflater().inflate(R.layout.main_home, nullParent, false);
layout.setBrowserController(this);
layout.setFlag(flag);
layout.setAlbumTitle(getString(R.string.app_name));
holder = layout;
View albumView = holder.getAlbumView();
BrowserContainer.add(holder);
switcherContainer.addView(albumView, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
showAlbum(holder, true);
initHomeGrid(layout);
}
use of de.baumann.browser.View.NinjaRelativeLayout in project browser by scoute-dich.
the class BrowserActivity method onPause.
@Override
public void onPause() {
Intent toHolderService = new Intent(this, HolderService.class);
IntentUnit.setClear(false);
stopService(toHolderService);
create = false;
inputBox.clearFocus();
if (currentAlbumController != null && currentAlbumController instanceof NinjaRelativeLayout) {
ninjaRelativeLayout = (NinjaRelativeLayout) currentAlbumController;
if (ninjaRelativeLayout.getFlag() == BrowserUnit.FLAG_HOME) {
DynamicGridView gridView = ninjaRelativeLayout.findViewById(R.id.home_grid);
if (gridView.isEditMode()) {
gridView.stopEditMode();
relayoutOK.setVisibility(View.GONE);
omnibox.setVisibility(View.VISIBLE);
initHomeGrid(ninjaRelativeLayout);
}
}
}
IntentUnit.setContext(this);
super.onPause();
}
use of de.baumann.browser.View.NinjaRelativeLayout in project browser by scoute-dich.
the class BrowserActivity method pinAlbums.
private synchronized void pinAlbums(String url) {
showOmnibox();
hideSoftInput(inputBox);
hideSearchPanel();
switcherContainer.removeAllViews();
ninjaWebView = new NinjaWebView(this);
for (AlbumController controller : BrowserContainer.list()) {
if (controller instanceof NinjaWebView) {
((NinjaWebView) controller).setBrowserController(this);
} else if (controller instanceof NinjaRelativeLayout) {
((NinjaRelativeLayout) controller).setBrowserController(this);
}
switcherContainer.addView(controller.getAlbumView(), LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT);
controller.getAlbumView().setVisibility(View.VISIBLE);
controller.deactivate();
}
if (BrowserContainer.size() < 1 && url == null) {
addAlbum(start_tab);
} else if (BrowserContainer.size() >= 1 && url == null) {
if (currentAlbumController != null) {
currentAlbumController.activate();
return;
}
int index = BrowserContainer.size() - 1;
currentAlbumController = BrowserContainer.get(index);
contentFrame.removeAllViews();
contentFrame.addView((View) currentAlbumController);
currentAlbumController.activate();
updateOmnibox();
} else {
// When url != null
ninjaWebView.setBrowserController(this);
ninjaWebView.setFlag(BrowserUnit.FLAG_NINJA);
ninjaWebView.setAlbumTitle(getString(R.string.album_untitled));
ViewUnit.bound(this, ninjaWebView);
ninjaWebView.loadUrl(url);
BrowserContainer.add(ninjaWebView);
final View albumView = ninjaWebView.getAlbumView();
switcherContainer.addView(albumView, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
contentFrame.removeAllViews();
contentFrame.addView(ninjaWebView);
if (currentAlbumController != null) {
currentAlbumController.deactivate();
}
currentAlbumController = ninjaWebView;
currentAlbumController.activate();
updateOmnibox();
}
}
use of de.baumann.browser.View.NinjaRelativeLayout in project browser by scoute-dich.
the class BrowserActivity method onConfigurationChanged.
@Override
public void onConfigurationChanged(Configuration newConfig) {
if (currentAlbumController != null && currentAlbumController instanceof NinjaRelativeLayout) {
ninjaRelativeLayout = (NinjaRelativeLayout) currentAlbumController;
if (ninjaRelativeLayout.getFlag() == BrowserUnit.FLAG_HOME) {
DynamicGridView gridView = ninjaRelativeLayout.findViewById(R.id.home_grid);
if (gridView.isEditMode()) {
gridView.stopEditMode();
relayoutOK.setVisibility(View.GONE);
omnibox.setVisibility(View.VISIBLE);
}
}
}
hideSoftInput(inputBox);
hideSearchPanel();
switcherPanel.expanded();
super.onConfigurationChanged(newConfig);
float coverHeight = ViewUnit.getWindowHeight(this) - ViewUnit.getStatusBarHeight(this) - dimen108dp - dimen16dp;
switcherPanel.setCoverHeight(coverHeight);
switcherPanel.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
switcherPanel.fixKeyBoardShowing(switcherPanel.getHeight());
switcherPanel.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
if (currentAlbumController != null && currentAlbumController instanceof NinjaRelativeLayout) {
ninjaRelativeLayout = (NinjaRelativeLayout) currentAlbumController;
initHomeGrid(ninjaRelativeLayout);
}
}
Aggregations