import
androidx.annotation.NonNull;
import
androidx.appcompat.app.AppCompatActivity;
import
androidx.appcompat.widget.SearchView;
import
android.annotation.SuppressLint;
import
android.graphics.Bitmap;
import
android.os.Bundle;
import
android.view.Menu;
import
android.view.MenuInflater;
import
android.view.MenuItem;
import
android.view.View;
import
android.webkit.WebView;
import
android.webkit.WebViewClient;
import
com.example.geeksforgeeks.databinding.ActivityMainBinding;
public
class
MainActivity
extends
AppCompatActivity {
private
ActivityMainBinding binding;
private
Menu createMenu;
@SuppressLint
(
"SetJavaScriptEnabled"
)
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
binding.webView.getSettings().setJavaScriptEnabled(
true
);
binding.webView.setWebViewClient(
new
WebViewClient(){
@Override
public
void
onPageStarted(WebView view, String url, Bitmap favicon) {
super
.onPageStarted(view, url, favicon);
binding.progressBar.setVisibility(View.VISIBLE);
}
@Override
public
void
onPageFinished(WebView view, String url) {
super
.onPageFinished(view, url);
binding.progressBar.setVisibility(View.GONE);
}
});
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
super
.onCreateOptionsMenu(menu);
createMenu = menu;
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return
true
;
}
@SuppressLint
(
"NonConstantResourceId"
)
@Override
public
boolean
onOptionsItemSelected(
@NonNull
MenuItem item) {
switch
(item.getItemId()){
case
R.id.itemSearch:
SearchView searchView = (SearchView) item.getActionView();
searchView.setMaxWidth(Integer.MAX_VALUE);
searchView.setQueryHint(
"Search any keyword.."
);
searchView.setOnQueryTextListener(
new
SearchView.OnQueryTextListener() {
@Override
public
boolean
onQueryTextSubmit(String query) {
searchView.clearFocus();
return
false
;
}
@Override
public
boolean
onQueryTextChange(String query) {
if
(query.length()>
0
){
binding.webView.findAllAsync(query);
createMenu.getItem(
1
).setVisible(
true
);
createMenu.getItem(
2
).setVisible(
true
);
}
else
{
binding.webView.clearMatches();
createMenu.getItem(
1
).setVisible(
false
);
createMenu.getItem(
2
).setVisible(
false
);
}
return
true
;
}
});
break
;
case
R.id.itemNext:
binding.webView.findNext(
true
);
break
;
case
R.id.itemPrevious:
binding.webView.findNext(
false
);
}
return
super
.onOptionsItemSelected(item);
}
}