From 6a77ebec92edfbe76d68c316b12ef558f20f687e Mon Sep 17 00:00:00 2001 From: shimoda Date: Tue, 7 Mar 2017 08:30:42 +0900 Subject: [PATCH] Auto font sizing terminal windows in high density screen, refs #30 --- .../activity/ScriptPicker.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/android/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/ScriptPicker.java b/android/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/ScriptPicker.java index a4d5401a9..cf34b7fb2 100644 --- a/android/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/ScriptPicker.java +++ b/android/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/ScriptPicker.java @@ -19,9 +19,13 @@ import android.app.ListActivity; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.database.DataSetObserver; import android.os.Bundle; import android.os.Parcelable; +import android.preference.PreferenceManager; +import android.util.DisplayMetrics; +import android.util.SparseArray; import android.view.View; import android.view.View.OnClickListener; import android.widget.ListView; @@ -66,6 +70,27 @@ public void onCreate(Bundle savedInstanceState) { mAdapter.registerDataSetObserver(new ScriptListObserver()); setListAdapter(mAdapter); // Analytics.trackActivity(this); + + SharedPreferences prf = PreferenceManager.getDefaultSharedPreferences( + this.getApplicationContext()); + if (!prf.contains("fontsize")) { + DisplayMetrics met = new DisplayMetrics(); + getWindowManager().getDefaultDisplay().getMetrics(met); + + SparseArray fontsizes = new SparseArray() {{ + append(500, 32); append(450, 24); + append(350, 18); append(300, 16); + append(200, 14); + append(Integer.MIN_VALUE, 10); + }}; + for (int i = 0; i < fontsizes.size(); i++) { + int dpi = fontsizes.keyAt(i); + if (met.densityDpi < dpi) {continue;} + int fs = fontsizes.valueAt(i); + prf.edit().putInt("fontsize", fs); + break; + } + } } @Override