comparison android/DWindows.kt @ 2489:6c01b0132813

Android: Implement window and clipboard text setter and getters.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Fri, 30 Apr 2021 02:33:21 +0000
parents 666af45f33b5
children 62e124eecd82
comparison
equal deleted inserted replaced
2488:666af45f33b5 2489:6c01b0132813
1 package org.dbsoft.dwindows 1 package org.dbsoft.dwindows
2 2
3 import android.content.ClipData
4 import android.content.ClipboardManager
3 import android.content.DialogInterface 5 import android.content.DialogInterface
4 import android.content.pm.ActivityInfo 6 import android.content.pm.ActivityInfo
5 import android.os.Bundle 7 import android.os.Bundle
6 import android.os.Looper 8 import android.os.Looper
7 import android.text.method.PasswordTransformationMethod 9 import android.text.method.PasswordTransformationMethod
8 import android.util.Log 10 import android.util.Log
9 import android.view.Gravity 11 import android.view.*
10 import android.view.LayoutInflater
11 import android.view.View
12 import android.view.ViewGroup
13 import android.widget.* 12 import android.widget.*
14 import androidx.appcompat.app.AlertDialog 13 import androidx.appcompat.app.AlertDialog
15 import androidx.appcompat.app.AppCompatActivity 14 import androidx.appcompat.app.AppCompatActivity
16 import androidx.collection.SimpleArrayMap 15 import androidx.collection.SimpleArrayMap
16 import androidx.core.content.res.TypedArrayUtils.getText
17 import androidx.fragment.app.Fragment 17 import androidx.fragment.app.Fragment
18 import androidx.fragment.app.FragmentActivity 18 import androidx.fragment.app.FragmentActivity
19 import androidx.fragment.app.FragmentManager 19 import androidx.fragment.app.FragmentManager
20 import androidx.fragment.app.FragmentStatePagerAdapter 20 import androidx.fragment.app.FragmentStatePagerAdapter
21 import androidx.recyclerview.widget.RecyclerView 21 import androidx.recyclerview.widget.RecyclerView
121 fun windowSetEnabled(window: View, state: Boolean) 121 fun windowSetEnabled(window: View, state: Boolean)
122 { 122 {
123 window.setEnabled(state) 123 window.setEnabled(state)
124 } 124 }
125 125
126 fun windowSetText(window: View, text: String)
127 {
128 if(window is TextView)
129 {
130 var textview: TextView = window as TextView
131 textview.text = text
132 }
133 else if(window is Button)
134 {
135 var button: Button = window as Button
136 button.text = text
137 }
138 else if(window is LinearLayout)
139 {
140 // TODO: Make sure this is actually the top-level layout, not just a box
141 this.title = text
142 }
143 }
144
145 fun windowGetText(window: View): String?
146 {
147 if(window is TextView)
148 {
149 var textview: TextView = window as TextView
150 return textview.text.toString()
151 }
152 else if(window is Button)
153 {
154 var button: Button = window as Button
155 return button.text.toString()
156 }
157 else if(window is LinearLayout)
158 {
159 // TODO: Make sure this is actually the top-level layout, not just a box
160 return this.title.toString()
161 }
162 return null
163 }
164
165 fun clipboardGetText(): String
166 {
167 var cm: ClipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
168 var clipdata = cm.primaryClip
169
170 if(clipdata != null && clipdata.itemCount > 0)
171 {
172 return clipdata.getItemAt(0).coerceToText(this).toString()
173 }
174 return ""
175 }
176
177 fun clipboardSetText(text: String)
178 {
179 var cm: ClipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
180 var clipdata = ClipData.newPlainText("text", text)
181
182 cm.setPrimaryClip(clipdata)
183 }
184
126 fun boxNew(type: Int, pad: Int): LinearLayout 185 fun boxNew(type: Int, pad: Int): LinearLayout
127 { 186 {
128 val box = LinearLayout(this) 187 val box = LinearLayout(this)
129 var dataArrayMap = SimpleArrayMap<String, Long>() 188 var dataArrayMap = SimpleArrayMap<String, Long>()
130 189