Posts

Android java : How to load html files in assets via WebView?

Image
The base url for html files under the assets of your app is "file:///android_asset/" WebView wv = new WebView(context); wv.getSettings().setJavaScriptEnabled(true); wv.loadUrl("file:///android_asset/coca/coca_00001_the.html");

Android java : How to copy/move file from assets to absolute path?

private void moveAssets(String assets_file_path, String absolutePath) throws IOException { File wwwFile = new File(absolutePath); if (wwwFile.exists()) return; InputStream is = activity.getAssets().open(assets_file_path); byte[] buffer = new byte[is.available()]; is.read(buffer); is.close(); wwwFile.createNewFile(); FileOutputStream os = new FileOutputStream(wwwFile); os.write(buffer); os.close(); }

TOP 16515 words from Corpus of Contemporary American English

Image
Download for Android https://play.google.com/store/apps/details?id=com.lengerrong.coca

Android java: How to orientation activity layout automatically ?

Add ~ android:screenOrientation="fullSensor" ~ to the activity AndroidManifest.xml activity android:name=".MainActivity" android:screenOrientation="fullSensor"

shell bash scripts : check process existed or not, if not existed then restart it

Put below scripts in your ~/.bash_profile or ~/.bashrc It will auto run "unison" process if not running yet when you open a new bash shell every time. Change the process name "unison" for your case. :) auto_unison() { u=`ps aux | grep unison | grep -v grep | wc -l` if [ $u -eq 0 ] then unison > /dev/null 2>&1 & fi } auto_unison

Android how to detect/register language/locale change listener/receiver

The easy way is to register a BroadcastReceiver for Intent.ACTION_LOCALE_CHANGED . Example: change your ViewModel data when language/locale changed. public class QASViewModel extends ViewModel { @SuppressLint ( "StaticFieldLeak" ) private final FragmentActivity activity ; public QASViewModel ( @NonNull FragmentActivity activity ) { this . activity = activity ; setLangReceiver (); } private void setLangReceiver () { final QASViewModel qasViewModel = this ; final BroadcastReceiver langReceiver = new BroadcastReceiver () { @Override public void onReceive ( Context context , Intent intent ) { // do action when language change } }; activity . getApplicationContext (). registerReceiver ( langReceiver , new IntentFilter ( Intent . ACTION_LOCALE_CHANGED )); } }

Android ViewModel with ArgsConstructor via Custom ViewModelFactory

Android ViewModel is very useful. However ViewModel has no args constructor by default. Typical usage of ViewModel looks like: public class UserModel extends ViewModel { } final UserModel viewModel = ViewModelProviders . of ( this ). get ( UserModel . class ); Let's look the definition of ViewModelProviders.of method. /** * Creates a {@link ViewModelProvider}, which retains ViewModels while a scope of given Activity * is alive. More detailed explanation is in {@link ViewModel}. * * It uses the given {@link Factory} to instantiate new ViewModels. * * @param activity an activity, in whose scope ViewModels should be retained * @param factory a {@code Factory} to instantiate new ViewModels * @return a ViewModelProvider instance */ @NonNull @MainThread public static ViewModelProvider of ( @NonNull FragmentActivity activity , @Nullable Factory factory ) { Have you found it? We can pas