use of de.baumann.browser.view.GridAdapter in project browser by scoute-dich.
the class BrowserActivity method initHomeGrid.
private void initHomeGrid(final NinjaRelativeLayout layout) {
final int current_tab = layout.getFlag();
if (currentAlbumController != null) {
AlbumController holder;
holder = layout;
showAlbum(holder, true);
updateOmnibox();
}
final DynamicGridView gridView = layout.findViewById(R.id.home_grid);
final ListView home_list = layout.findViewById(R.id.home_list);
final View open_newTabView = layout.findViewById(R.id.open_newTabView);
final View open_filesView = layout.findViewById(R.id.open_filesView);
final View open_passView = layout.findViewById(R.id.open_passView);
final View open_bookmarkView = layout.findViewById(R.id.open_bookmarkView);
final View open_historyView = layout.findViewById(R.id.open_historyView);
ImageButton open_pass = layout.findViewById(R.id.open_pass);
ImageButton open_newTab = layout.findViewById(R.id.open_newTab);
ImageButton open_files = layout.findViewById(R.id.open_files);
ImageButton open_bookmark = layout.findViewById(R.id.open_bookmark);
ImageButton open_history = layout.findViewById(R.id.open_history);
if (current_tab == BrowserUnit.FLAG_HOME) {
open_newTabView.setVisibility(View.VISIBLE);
open_filesView.setVisibility(View.INVISIBLE);
open_passView.setVisibility(View.INVISIBLE);
open_bookmarkView.setVisibility(View.INVISIBLE);
open_historyView.setVisibility(View.INVISIBLE);
layout.setAlbumTitle(getString(R.string.album_title_home));
gridView.setVisibility(View.VISIBLE);
home_list.setVisibility(View.GONE);
updateProgress(BrowserUnit.PROGRESS_MAX);
RecordAction action = new RecordAction(this);
action.open(false);
final List<GridItem> gridList = action.listGrid();
action.close();
final de.baumann.browser.View.GridAdapter gridAdapter;
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
gridAdapter = new de.baumann.browser.View.GridAdapter(this, gridList, 3);
} else {
gridAdapter = new de.baumann.browser.View.GridAdapter(this, gridList, 2);
}
gridView.setAdapter(gridAdapter);
gridAdapter.notifyDataSetChanged();
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
updateAlbum(gridList.get(position).getURL());
}
});
gridView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
showGridMenu(gridList.get(position));
return true;
}
});
} else {
gridView.setVisibility(View.GONE);
home_list.setVisibility(View.VISIBLE);
if (current_tab == BrowserUnit.FLAG_BOOKMARKS) {
open_newTabView.setVisibility(View.INVISIBLE);
open_filesView.setVisibility(View.INVISIBLE);
open_passView.setVisibility(View.INVISIBLE);
open_bookmarkView.setVisibility(View.VISIBLE);
open_historyView.setVisibility(View.INVISIBLE);
layout.setAlbumTitle(getString(R.string.album_title_bookmarks));
layout.setFlag(BrowserUnit.FLAG_BOOKMARKS);
initBHList(layout);
} else if (current_tab == BrowserUnit.FLAG_HISTORY) {
open_newTabView.setVisibility(View.INVISIBLE);
open_filesView.setVisibility(View.INVISIBLE);
open_passView.setVisibility(View.INVISIBLE);
open_bookmarkView.setVisibility(View.INVISIBLE);
open_historyView.setVisibility(View.VISIBLE);
layout.setAlbumTitle(getString(R.string.album_title_history));
layout.setFlag(BrowserUnit.FLAG_HISTORY);
initBHList(layout);
} else if (current_tab == BrowserUnit.FLAG_FILES) {
if (android.os.Build.VERSION.SDK_INT >= 23) {
int hasWRITE_EXTERNAL_STORAGE = checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (hasWRITE_EXTERNAL_STORAGE != PackageManager.PERMISSION_GRANTED) {
NinjaToast.show(BrowserActivity.this, R.string.toast_permission_sdCard_sec);
} else {
open_newTabView.setVisibility(View.INVISIBLE);
open_filesView.setVisibility(View.VISIBLE);
open_passView.setVisibility(View.INVISIBLE);
open_bookmarkView.setVisibility(View.INVISIBLE);
open_historyView.setVisibility(View.INVISIBLE);
layout.setAlbumTitle(getString(R.string.album_title_files));
layout.setFlag(BrowserUnit.FLAG_FILES);
sp.edit().putString("files_startFolder", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath()).apply();
initFEList(layout);
}
} else {
open_newTabView.setVisibility(View.INVISIBLE);
open_filesView.setVisibility(View.VISIBLE);
open_passView.setVisibility(View.INVISIBLE);
open_bookmarkView.setVisibility(View.INVISIBLE);
open_historyView.setVisibility(View.INVISIBLE);
layout.setAlbumTitle(getString(R.string.album_title_files));
layout.setFlag(BrowserUnit.FLAG_FILES);
sp.edit().putString("files_startFolder", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath()).apply();
initFEList(layout);
}
} else if (current_tab == BrowserUnit.FLAG_PASS) {
open_newTabView.setVisibility(View.INVISIBLE);
open_filesView.setVisibility(View.INVISIBLE);
open_passView.setVisibility(View.VISIBLE);
open_bookmarkView.setVisibility(View.INVISIBLE);
open_historyView.setVisibility(View.INVISIBLE);
layout.setAlbumTitle(getString(R.string.album_title_pass));
layout.setFlag(BrowserUnit.FLAG_PASS);
initPSList(layout);
}
}
open_pass.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
layout.setFlag(BrowserUnit.FLAG_PASS);
layout.setAlbumTitle(getString(R.string.album_title_pass));
initHomeGrid(layout);
}
});
open_newTab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
layout.setFlag(BrowserUnit.FLAG_HOME);
layout.setAlbumTitle(getString(R.string.album_title_home));
initHomeGrid(layout);
}
});
open_files.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
layout.setFlag(BrowserUnit.FLAG_FILES);
layout.setAlbumTitle(getString(R.string.album_title_files));
initHomeGrid(layout);
}
});
open_bookmark.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
layout.setFlag(BrowserUnit.FLAG_BOOKMARKS);
layout.setAlbumTitle(getString(R.string.album_title_bookmarks));
initHomeGrid(layout);
}
});
open_history.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
layout.setFlag(BrowserUnit.FLAG_HISTORY);
layout.setAlbumTitle(getString(R.string.album_title_history));
initHomeGrid(layout);
}
});
}
use of de.baumann.browser.view.GridAdapter 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;
}
}
Aggregations