Mercurial > dwindows
comparison android/DWindows.kt @ 2833:469e5748c8a5
Android: In preparation for the container mode changes... I needed to
implement localized date handling. I had skipped that code previous since I
couldn't use the C locale code I use on other platforms since Android NDK is
always US_EN. Plus since we only previously displayed one column, that code
would never need to be run.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sun, 11 Sep 2022 12:43:08 +0000 |
parents | f81e92947f4a |
children | 0cbe8201db3c |
comparison
equal
deleted
inserted
replaced
2832:df16bb0a11b2 | 2833:469e5748c8a5 |
---|---|
30 import android.provider.MediaStore | 30 import android.provider.MediaStore |
31 import android.system.OsConstants | 31 import android.system.OsConstants |
32 import android.text.InputFilter | 32 import android.text.InputFilter |
33 import android.text.InputFilter.LengthFilter | 33 import android.text.InputFilter.LengthFilter |
34 import android.text.InputType | 34 import android.text.InputType |
35 import android.text.format.DateFormat | |
35 import android.text.method.PasswordTransformationMethod | 36 import android.text.method.PasswordTransformationMethod |
36 import android.util.* | 37 import android.util.* |
37 import android.util.Base64 | 38 import android.util.Base64 |
38 import android.view.* | 39 import android.view.* |
39 import android.view.View.OnTouchListener | 40 import android.view.View.OnTouchListener |
60 import androidx.viewpager2.widget.ViewPager2 | 61 import androidx.viewpager2.widget.ViewPager2 |
61 import com.google.android.material.tabs.TabLayout | 62 import com.google.android.material.tabs.TabLayout |
62 import com.google.android.material.tabs.TabLayout.OnTabSelectedListener | 63 import com.google.android.material.tabs.TabLayout.OnTabSelectedListener |
63 import com.google.android.material.tabs.TabLayoutMediator | 64 import com.google.android.material.tabs.TabLayoutMediator |
64 import java.io.* | 65 import java.io.* |
66 import java.text.ParseException | |
67 import java.text.SimpleDateFormat | |
65 import java.util.* | 68 import java.util.* |
66 import java.util.concurrent.locks.ReentrantLock | 69 import java.util.concurrent.locks.ReentrantLock |
67 import java.util.zip.ZipEntry | 70 import java.util.zip.ZipEntry |
68 import java.util.zip.ZipFile | 71 import java.util.zip.ZipFile |
69 import kotlin.math.* | 72 import kotlin.math.* |
5111 | 5114 |
5112 adapter.model.setRowAndColumn(row, column, icon) | 5115 adapter.model.setRowAndColumn(row, column, icon) |
5113 } | 5116 } |
5114 } | 5117 } |
5115 | 5118 |
5116 fun containerChangeItemInt(cont: ListView, column: Int, row: Int, num: Int) | 5119 fun containerChangeItemInt(cont: ListView, column: Int, row: Int, num: Long) |
5117 { | 5120 { |
5118 waitOnUiThread { | 5121 waitOnUiThread { |
5119 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter | 5122 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
5120 | 5123 |
5121 adapter.model.setRowAndColumn(row, column, num) | 5124 adapter.model.setRowAndColumn(row, column, num) |
5125 } | |
5126 } | |
5127 | |
5128 fun timeString(num: Int): String | |
5129 { | |
5130 if(num > 0 && num < 60) { | |
5131 if(num > 9) | |
5132 return num.toString() | |
5133 else | |
5134 return "0" + num.toString() | |
5135 } | |
5136 return "01" | |
5137 } | |
5138 | |
5139 fun yearString(year: Int): String | |
5140 { | |
5141 if(year < 100) | |
5142 { | |
5143 if(year < 70) | |
5144 return "19" + year.toString() | |
5145 else | |
5146 return "20" + year.toString() | |
5147 } | |
5148 if(year in 1901..2199) | |
5149 return year.toString() | |
5150 val calendar = Calendar.getInstance() | |
5151 val thisyear = calendar[Calendar.YEAR] | |
5152 return thisyear.toString() | |
5153 } | |
5154 | |
5155 fun containerChangeItemDate(cont: ListView, column: Int, row: Int, year: Int, month: Int, day: Int) | |
5156 { | |
5157 waitOnUiThread { | |
5158 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter | |
5159 val dateString = timeString(day) + "/" + timeString(month) + "/" + yearString(year) | |
5160 val sdf = SimpleDateFormat("dd/MM/yyyy") | |
5161 var date: Date? = null | |
5162 var s = dateString | |
5163 try { | |
5164 date = sdf.parse(dateString) | |
5165 val dateFormat = DateFormat.getDateFormat(this) | |
5166 s = dateFormat.format(date) | |
5167 } catch (e: ParseException) { | |
5168 // handle exception here ! | |
5169 } | |
5170 adapter.model.setRowAndColumn(row, column, s) | |
5171 } | |
5172 } | |
5173 | |
5174 fun containerChangeItemTime(cont: ListView, column: Int, row: Int, hour: Int, minute: Int, second: Int) | |
5175 { | |
5176 waitOnUiThread { | |
5177 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter | |
5178 val timeStr = timeString(hour) + ":" + timeString(minute) + ":" + timeString(second) | |
5179 val sdf = SimpleDateFormat("hh:mm:ss") | |
5180 var date: Date? = null | |
5181 var s = timeStr | |
5182 try { | |
5183 date = sdf.parse(timeStr) | |
5184 val timeFormat = DateFormat.getTimeFormat(this) | |
5185 s = timeFormat.format(date) | |
5186 } catch (e: ParseException) { | |
5187 // handle exception here ! | |
5188 } | |
5189 adapter.model.setRowAndColumn(row, column, s) | |
5122 } | 5190 } |
5123 } | 5191 } |
5124 | 5192 |
5125 fun containerChangeRowData(cont: ListView, row: Int, data: Long) | 5193 fun containerChangeRowData(cont: ListView, row: Int, data: Long) |
5126 { | 5194 { |