Search in sources :

Example 1 with Record

use of de.baumann.browser.database.Record in project browser by scoute-dich.

the class BrowserActivity method updateAutoComplete.

@Override
public void updateAutoComplete() {
    RecordAction action = new RecordAction(this);
    action.open(false);
    List<Record> list = action.listBookmarks();
    list.addAll(action.listHistory());
    action.close();
    CompleteAdapter adapter = new CompleteAdapter(this, list);
    inputBox.setAdapter(adapter);
    adapter.notifyDataSetChanged();
    inputBox.setDropDownWidth(ViewUnit.getWindowWidth(this));
    inputBox.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String url = ((TextView) view.findViewById(R.id.record_item_url)).getText().toString();
            inputBox.setText(url);
            inputBox.setSelection(url.length());
            updateAlbum(url);
            hideSoftInput(inputBox);
        }
    });
}
Also used : ImageView(android.widget.ImageView) HorizontalScrollView(android.widget.HorizontalScrollView) NinjaWebView(de.baumann.browser.View.NinjaWebView) AutoCompleteTextView(android.widget.AutoCompleteTextView) DynamicGridView(org.askerov.dynamicgrid.DynamicGridView) View(android.view.View) AdapterView(android.widget.AdapterView) WebView(android.webkit.WebView) TextView(android.widget.TextView) ListView(android.widget.ListView) VideoView(android.widget.VideoView) Paint(android.graphics.Paint) RecordAction(de.baumann.browser.Database.RecordAction) Record(de.baumann.browser.Database.Record) Adapter_Record(de.baumann.browser.View.Adapter_Record) CompleteAdapter(de.baumann.browser.View.CompleteAdapter) AdapterView(android.widget.AdapterView) AutoCompleteTextView(android.widget.AutoCompleteTextView) TextView(android.widget.TextView)

Example 2 with Record

use of de.baumann.browser.database.Record 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;
    }
}
Also used : AlertDialog(android.support.v7.app.AlertDialog) ScreenshotTask(de.baumann.browser.Task.ScreenshotTask) DialogInterface(android.content.DialogInterface) NinjaWebView(de.baumann.browser.View.NinjaWebView) GridAdapter(de.baumann.browser.View.GridAdapter) Comparator(java.util.Comparator) Bitmap(android.graphics.Bitmap) GridItem(de.baumann.browser.View.GridItem) Pass(de.baumann.browser.Database.Pass) Record(de.baumann.browser.Database.Record) Adapter_Record(de.baumann.browser.View.Adapter_Record) AlbumController(de.baumann.browser.Browser.AlbumController) EditText(android.widget.EditText) Handler(android.os.Handler) PendingIntent(android.app.PendingIntent) Intent(android.content.Intent) ImageView(android.widget.ImageView) HorizontalScrollView(android.widget.HorizontalScrollView) NinjaWebView(de.baumann.browser.View.NinjaWebView) AutoCompleteTextView(android.widget.AutoCompleteTextView) DynamicGridView(org.askerov.dynamicgrid.DynamicGridView) View(android.view.View) AdapterView(android.widget.AdapterView) WebView(android.webkit.WebView) TextView(android.widget.TextView) ListView(android.widget.ListView) VideoView(android.widget.VideoView) Paint(android.graphics.Paint) MotionEvent(android.view.MotionEvent) NinjaRelativeLayout(de.baumann.browser.View.NinjaRelativeLayout) DynamicGridView(org.askerov.dynamicgrid.DynamicGridView) RecordAction(de.baumann.browser.Database.RecordAction) MAHEncryptor(com.mobapphome.mahencryptorlib.MAHEncryptor)

Example 3 with Record

use of de.baumann.browser.database.Record in project browser by scoute-dich.

the class BrowserActivity method showEditDialog.

private void showEditDialog(final Adapter_Record adapterRecord, List<Record> recordList, int location) {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    View dialogView = View.inflate(BrowserActivity.this, R.layout.dialog_edit, null);
    final Record record = recordList.get(location);
    final EditText editText = dialogView.findViewById(R.id.dialog_edit);
    editText.setHint(R.string.dialog_title_hint);
    editText.setText(record.getTitle());
    editText.setSelection(record.getTitle().length());
    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 text = editText.getText().toString().trim();
            if (text.isEmpty()) {
                NinjaToast.show(BrowserActivity.this, getString(R.string.toast_input_empty));
            }
            RecordAction action = new RecordAction(BrowserActivity.this);
            action.open(true);
            record.setTitle(text);
            action.updateBookmark(record);
            action.close();
            adapterRecord.notifyDataSetChanged();
            hideSoftInput(editText);
        }
    });
    builder.setNegativeButton(R.string.app_cancel, new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int whichButton) {
            dialog.cancel();
            hideSoftInput(editText);
        }
    });
    AlertDialog dialog = builder.create();
    dialog.show();
    showSoftInput(editText);
}
Also used : AlertDialog(android.support.v7.app.AlertDialog) EditText(android.widget.EditText) DialogInterface(android.content.DialogInterface) Record(de.baumann.browser.Database.Record) Adapter_Record(de.baumann.browser.View.Adapter_Record) RecordAction(de.baumann.browser.Database.RecordAction) ImageView(android.widget.ImageView) HorizontalScrollView(android.widget.HorizontalScrollView) NinjaWebView(de.baumann.browser.View.NinjaWebView) AutoCompleteTextView(android.widget.AutoCompleteTextView) DynamicGridView(org.askerov.dynamicgrid.DynamicGridView) View(android.view.View) AdapterView(android.widget.AdapterView) WebView(android.webkit.WebView) TextView(android.widget.TextView) ListView(android.widget.ListView) VideoView(android.widget.VideoView) Paint(android.graphics.Paint)

Example 4 with Record

use of de.baumann.browser.database.Record in project browser by scoute-dich.

the class NinjaWebViewClient method onPageFinished.

@Override
public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
    if (!ninjaWebView.getSettings().getLoadsImagesAutomatically()) {
        ninjaWebView.getSettings().setLoadsImagesAutomatically(true);
    }
    if (view.getTitle() == null || view.getTitle().isEmpty()) {
        ninjaWebView.update(context.getString(R.string.album_untitled), url);
    } else {
        ninjaWebView.update(view.getTitle(), url);
    }
    SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
    if (sp.getBoolean("saveHistory", true)) {
        RecordAction action = new RecordAction(context);
        action.open(true);
        if (action.checkHistory(url)) {
            action.deleteHistoryOld(url);
            action.addHistory(new Record(ninjaWebView.getTitle(), ninjaWebView.getUrl(), System.currentTimeMillis()));
        } else {
            action.addHistory(new Record(ninjaWebView.getTitle(), ninjaWebView.getUrl(), System.currentTimeMillis()));
        }
        action.close();
    }
    if (ninjaWebView.isForeground()) {
        ninjaWebView.invalidate();
    } else {
        ninjaWebView.postInvalidate();
    }
}
Also used : SharedPreferences(android.content.SharedPreferences) RecordAction(de.baumann.browser.Database.RecordAction) Record(de.baumann.browser.Database.Record)

Example 5 with Record

use of de.baumann.browser.database.Record in project browser by scoute-dich.

the class BrowserUnit method importBookmarks.

public static int importBookmarks(Context context) {
    String filename = context.getString(R.string.export_bookmarks);
    File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "browser_backup//" + filename + SUFFIX_HTML);
    List<Record> list = new ArrayList<>();
    try {
        RecordAction action = new RecordAction(context);
        action.open(true);
        BufferedReader reader = new BufferedReader(new FileReader(file));
        String line;
        while ((line = reader.readLine()) != null) {
            line = line.trim();
            if (!((line.startsWith("<dt><a ") && line.endsWith("</a>")) || (line.startsWith("<DT><A ") && line.endsWith("</A>")))) {
                continue;
            }
            String title = getBookmarkTitle(line);
            String url = getBookmarkURL(line);
            if (title.trim().isEmpty() || url.trim().isEmpty()) {
                continue;
            }
            Record record = new Record();
            record.setTitle(title);
            record.setURL(url);
            record.setTime(System.currentTimeMillis());
            if (!action.checkBookmark(record)) {
                list.add(record);
            }
        }
        reader.close();
        Collections.sort(list, new Comparator<Record>() {

            @Override
            public int compare(Record first, Record second) {
                return first.getTitle().compareTo(second.getTitle());
            }
        });
        for (Record record : list) {
            action.addBookmark(record);
        }
        action.close();
    } catch (Exception e) {
        Log.w("Browser", "Error adding record", e);
    }
    return list.size();
}
Also used : ArrayList(java.util.ArrayList) BufferedReader(java.io.BufferedReader) Record(de.baumann.browser.Database.Record) RecordAction(de.baumann.browser.Database.RecordAction) FileReader(java.io.FileReader) File(java.io.File) UnsupportedEncodingException(java.io.UnsupportedEncodingException)

Aggregations

Record (de.baumann.browser.Database.Record)12 RecordAction (de.baumann.browser.Database.RecordAction)8 View (android.view.View)6 TextView (android.widget.TextView)6 WebView (android.webkit.WebView)5 AdapterView (android.widget.AdapterView)5 AutoCompleteTextView (android.widget.AutoCompleteTextView)5 HorizontalScrollView (android.widget.HorizontalScrollView)5 ImageView (android.widget.ImageView)5 ListView (android.widget.ListView)5 VideoView (android.widget.VideoView)5 Adapter_Record (de.baumann.browser.View.Adapter_Record)5 NinjaWebView (de.baumann.browser.View.NinjaWebView)5 DynamicGridView (org.askerov.dynamicgrid.DynamicGridView)5 Paint (android.graphics.Paint)4 Intent (android.content.Intent)3 DialogInterface (android.content.DialogInterface)2 AlertDialog (android.support.v7.app.AlertDialog)2 EditText (android.widget.EditText)2 File (java.io.File)2