refs #6004 add:saveData

This commit is contained in:
Sergio De la torre 2023-12-07 09:04:46 +01:00
parent 642ed4c283
commit dc3fe4c228
8 changed files with 53 additions and 274 deletions

View File

@ -28,11 +28,11 @@ import es.verdnatura.presentation.view.feature.main.activity.MainActivity
import org.json.JSONObject
import org.koin.androidx.viewmodel.ext.android.viewModel
import timber.log.Timber
import timber.log.Timber.d
import java.util.*
import kotlin.collections.Map.*
import kotlin.reflect.KClass
abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
viewModelClass: KClass<V>
) : Fragment() {
@ -60,7 +60,6 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
protected val WORKFORMSELECTED = "workFormSelected"
protected val SUPPLIERID = "SUPPLIERID"
protected val ITEMPACKING = "itemPackingType"
protected val ITEMPACKINGFK = "itemPackingTypeFk"
@ -96,7 +95,6 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
savedInstanceState: Bundle?
): View? = inflater.inflate(getLayoutId(), container, false)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initDataBinding()
@ -107,10 +105,8 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
//requestCallPhonePermissionNew()
init()
}
@LayoutRes
abstract fun getLayoutId(): Int
open fun init() {}
@ -196,7 +192,6 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
R.drawable.ic_sort -> getString(R.string.sortRouteSalix)
R.drawable.ic_sign_ticket -> getString(R.string.signed)
R.drawable.ic_send -> getString(R.string.sendDriverRoute)
R.drawable.ic_remove_checks -> getString(R.string.deleteChecked)
else -> {
""
}
@ -204,7 +199,6 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
}
private fun requestCallPhonePermission() {
val permissionLauncher = registerForActivityResult(
ActivityResultContracts.RequestPermission()
@ -243,9 +237,9 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
)
{ isGranted ->
if (isGranted) {
Timber.i("permisos ok")
d("permisos ok")
} else {
Timber.i("Denegados permisos")
d("Denegados permisos")
}
}
@ -389,7 +383,6 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
val keys: Map<String, *> = prefs.all
for (Map in keys) {
var json2 = JSONObject(Map.value.toString())
listForms.add(
@ -400,7 +393,6 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
json2.get("isShowDelete").toString().toBoolean(),
json2.get("created") as Long
)
)
@ -469,11 +461,9 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
"",
created = Calendar.getInstance().timeInMillis + Calendar.getInstance().timeInMillis
)
)
}
fun saveData(name: String, value: Any) {
@ -483,7 +473,6 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
when (name) {
//ANDROID_ID -> editor.putString(name, value.toString())
"base_url" -> {
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
val editorPref = preferences.edit()
@ -514,7 +503,6 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
}
editor.commit()
}
fun saveDataInt(name: String, value: Int) {
@ -551,7 +539,6 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
}
fun saveDataLong(name: String, value: Long) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
@ -579,32 +566,16 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
return lista
}
fun saveBuyer(buyernickname: String) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
val editor = prefs.edit()
editor.putString(BUYER, buyernickname)
editor.apply()
fun saveBuyer(buyernickname: String, buyerid: String) {
val prefsEditor: SharedPreferences.Editor = mobileApplication.getPrefsEditor()
prefsEditor.putString(BUYER, buyernickname)
prefsEditor.putString(BUYERID, buyerid)
prefsEditor.apply()
}
fun saveBuyerId(buyerid: String) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
val editor = prefs.edit()
editor.putString(BUYERID, buyerid)
editor.apply()
}
fun getIMEI(): String {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
val imei = prefs.getString("IMEI", "0")
return imei.toString()
}
fun getMessageFromJSON(json: String): String {
val gson = Gson()
var message = ""
// val mapType = object : TypeToken<Map<String, Any>>() {}.type
var tutorialMap: Map<String, Any> =
gson.fromJson(json, object : TypeToken<Map<String, Any>>() {}.type)
tutorialMap.forEach {
@ -618,9 +589,7 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
fun getListFromJSON(json: String): List<String> {
val gson = Gson()
var list = mutableListOf<String>()
// val mapType = object : TypeToken<Map<String, Any>>() {}.type
var tutorialMap: Map<String, Any> =
gson.fromJson(json, object : TypeToken<Map<String, Any>>() {}.type)
tutorialMap.forEach {
@ -634,12 +603,10 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
}
fun database(myContext: Context): DeliveryDatabase {
val db = Room.databaseBuilder(
return Room.databaseBuilder(
myContext,
DeliveryDatabase::class.java, "expediciones.db"
).build()
return db
}

View File

@ -27,27 +27,19 @@ import ir.mirrajabi.searchdialog.core.SearchResultListener
class InventaryFragment :
BaseFragment<FragmentInventaryBinding, InventaryViewModel>(InventaryViewModel::class) {
private var adapter: InventoryAdapter? = null
private lateinit var customDialogInput: CustomDialogInput
private var listInvetory: ArrayList<ItemInventaryVO> = ArrayList()
private var listInvetoryAux: ArrayList<ItemInventaryVO> = ArrayList()
private lateinit var customDialog: CustomDialog
private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null
// private var reload = false
// private var hideLoad = true
private var layoutManager: LinearLayoutManager? = null
private var firstVisiblePosition = 0
private var secondVisiblePosition = 1
private lateinit var itemClicked: ItemInventaryVO
//sergio : cmbios para insertar lista compradores en inventary en el searchable
private val items = ArrayList<SearchBuyerModel>()
private lateinit var buyerId: String
companion object {
fun newInstance() = InventaryFragment()
}
@ -59,7 +51,6 @@ class InventaryFragment :
super.onAttach(context)
}
override fun init() {
binding.splashProgress.visibility = View.VISIBLE
@ -81,9 +72,8 @@ class InventaryFragment :
SearchResultListener { baseSearchDialogCompat, nombre, position ->
binding.filterBuyer.text = (nombre.title)
saveBuyer(nombre.getBuyerNickname())
saveBuyerId(nombre.getBuyerId())
buyerId = nombre.getBuyerId()
saveBuyer(nombre.getBuyerNickname(),nombre.getBuyerId())
viewModel.getInventory(
nombre.getBuyerId().toInt(),
getDataInt(WAREHOUSEFK)
@ -96,7 +86,6 @@ class InventaryFragment :
customDialogInput = CustomDialogInput(requireContext())
customDialog = CustomDialog(requireContext())
binding.splashProgress.visibility = View.VISIBLE
binding.mainToolbar.toolbarTitle.text = getString(R.string.itemShelvingRadar)
setToolBar()
@ -106,19 +95,15 @@ class InventaryFragment :
private fun setToolBar() {
ma.hideBottomNavigation(View.GONE)
val listIcons: ArrayList<ImageView> = ArrayList()
val iconReload = ImageView(context)
iconReload.setImageResource(R.drawable.ic_autorenew_black_24dp)
iconReload.setImageResource(R.drawable.ic_autorenew_black_24dp)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
iconReload.tooltipText = getTooltip(R.drawable.ic_autorenew_black_24dp)
}
listIcons.add(iconReload)
binding.mainToolbar.toolbarIcons.adapter =
ToolBarAdapterTooltip(listIcons, object : OnOptionsSelectedListener {
override fun onOptionsItemSelected(item: Drawable) {
@ -156,7 +141,6 @@ class InventaryFragment :
binding.mainToolbar.backButton.setOnClickListener {
requireActivity().onBackPressed()
}
binding.filterItemFk.setOnKeyListener { v, keyCode, event ->
if (binding.filterItemFk.text.toString().isEmpty()) {
@ -205,14 +189,11 @@ class InventaryFragment :
override fun observeViewModel() {
with(viewModel) {
//sergio: para compradores
buyersList.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = View.GONE
createBuyerList(it.list)
})
inventaryList.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = View.GONE
listInvetory = ArrayList()
@ -257,10 +238,8 @@ class InventaryFragment :
)
}
})
response.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = View.GONE
if (it.isError) {
@ -294,6 +273,7 @@ class InventaryFragment :
try {
items.add(SearchBuyerModel(buyer.nickname, buyer.userFk))
} catch (e: Exception) {
}
}
}

View File

@ -34,7 +34,6 @@ import java.io.File
import java.util.*
import kotlin.system.exitProcess
class LoginFragment(var imageUri: Uri?) :
BaseFragment<FragmentLoginBinding, LoginViewModel>(LoginViewModel::class) {
@ -44,7 +43,6 @@ class LoginFragment(var imageUri: Uri?) :
private lateinit var customDialogList: CustomDialogList
private lateinit var listForms: List<WorkForms>
companion object {
fun newInstance(imageUri: Uri?) = LoginFragment(imageUri)
}
@ -56,13 +54,9 @@ class LoginFragment(var imageUri: Uri?) :
customDialogList = CustomDialogList(requireContext())
customDialog = CustomDialog(requireContext())
/*Tarea 4815*/
createFolderSerial()
saveIdentifiers()
checkUser()
//Tarea 5613
//viewModel.getAccessTokenConfigs()
binding.buttonLogin.setOnClickListener {
binding.splashProgress.visibility = View.VISIBLE
viewModel.loginSalix(
@ -72,7 +66,6 @@ class LoginFragment(var imageUri: Uri?) :
)
}
//Tarea 5613 se quita porque debe hacerse login. Ya no se guarda user y password per
if (getData(TOKEN).isNotBlank() && binding.switchRemember.isChecked) {
viewModel.operator_add()
}
@ -94,8 +87,6 @@ class LoginFragment(var imageUri: Uri?) :
// se crean/listan las opciones de formas de trabajo
//deleteWorkForm("all")
listForms = getWorkForm().sortedBy { it.created }
binding.edittextServer.keyListener = null
binding.edittextServer.setOnLongClickListener {
showWorkingForms()
@ -133,7 +124,7 @@ class LoginFragment(var imageUri: Uri?) :
override fun OnWorkFormsItemRowClickListener(item: WorkForms) {
when (item.name) {
"Añadir..." -> {
getString(R.string.add) -> {
showNewForm()
}
@ -166,11 +157,9 @@ class LoginFragment(var imageUri: Uri?) :
saveData(WORKFORMSELECTED, "Producción")
exitProcess(1)
}
.show()
}
})
@ -188,7 +177,6 @@ class LoginFragment(var imageUri: Uri?) :
}
.show()
}
@SuppressLint("HardwareIds")
@ -352,12 +340,6 @@ class LoginFragment(var imageUri: Uri?) :
}
/* workerId.observe(viewLifecycleOwner) {
if (!it.isError) {
saveUserFkPref(it.Id.toString())
}
}*/
//Tarea 5870
workerOperator.observe(viewLifecycleOwner) {
if (it.isError) {
customDialog.setTitle(getString(R.string.info))
@ -429,18 +411,11 @@ class LoginFragment(var imageUri: Uri?) :
//saveTokenPref("RTymwJzRuVchAMY5u8xG2wpgcjPf7t0DQImLvMsTdNFmbFwDiVsa8lA6fr1XSaBo","2026-29-06")
// local
//saveTokenPref("1ZGV1OGhpcrZZwvNALXnPeSVe0GCE4tgpKbv8nZu4EXay75QZrVY5GZDnpsqlxFz",it.ttl )
//Tarea 5613 borrar que se guarde
/* saveUserAccesPref(
binding.edittextUsername.text.toString(),
binding.edittextPassword.text.toString()
)*/
app.userName = binding.edittextUsername.text.toString()
app.userPassword = binding.edittextPassword.text.toString()
//Tarea 5613
viewModel.getAccessTokenConfigs()
//viewModel.operator_add()
}
}
loadAccessConfigSalixList.observe(viewLifecycleOwner, Observer { event ->
@ -489,26 +464,10 @@ class LoginFragment(var imageUri: Uri?) :
editor.apply()
}
private fun saveUserFkPref(workerId: String) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
val editor = prefs.edit()
editor.putString(USERFK, workerId)
editor.apply()
}
private fun saveUserAccesPref(user: String, password: String) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
val editor = prefs.edit()
editor.putString(USER, user)
editor.putString(PASSWORD, password)
editor.apply()
}
private fun saveRemember(remember: Boolean) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
val editor = prefs.edit()
editor.putBoolean(REMEMBER, remember)
editor.apply()
val prefsEditor = (mobileApplication).getPrefsEditor()
prefsEditor.putBoolean(REMEMBER, remember)
prefsEditor.apply()
}
private fun goToMain() {

View File

@ -102,17 +102,15 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
private var lastBottomMenuItemSelected: ItemMenuVO? = null
private lateinit var customDialog: CustomDialogMainActivity
var firstItem: ItemMenuVO? = null
var fm = supportFragmentManager
private var firstItem: ItemMenuVO? = null
private var fm = supportFragmentManager
var mperror: MediaPlayer? = null
var mpok: MediaPlayer? = null
var mpErrorRepeat: MediaPlayer? = null
private var mpErrorRepeat: MediaPlayer? = null
private var scheduledFuture: ScheduledFuture<*>? = null
private var scheduledExecutor: ScheduledExecutorService? = null
private val _renewTokenResponse = MutableLiveData<RenewToken>()
private lateinit var networkUtils: NetworkUtils
//Tarea #4815
private var myTimeUserInteraction = (System.currentTimeMillis() / 1000 / 3600)
private var comeFromDelivery: Boolean? = null
override fun getLayoutId(): Int = R.layout.activity_main
@ -120,7 +118,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
override fun onPause() {
super.onPause()
scheduledFuture?.cancel(false)
// networkUtils.unregisterNetworkCallback()
}
@ -200,92 +197,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
@RequiresApi(Build.VERSION_CODES.O)
private fun setFragments() {
try {
val extras = intent.extras
val uriImage = intent.data
if (extras != null && extras.containsKey("menu")) {
comeFromDelivery = true
val option = extras.getString("menu")
//Tarea 5613 borrar que se guarde
/* saveDataInt("USERFK", extras.getString("userfk")!!.toInt())
saveUserAccesPref(
extras.getString("user").toString(),
extras.getString("password").toString()
)*/
// A borrar toda esta parte cuando está oficialmente delivery en picking
var app = application as MobileApplication
app.userName = extras.getString("user").toString()
app.userId = extras.getString("userfk").toString().toInt()
app.userPassword = extras.getString("password").toString()
val prefs: SharedPreferences = getSharedPreferences("es.verdnatura.user.prefs", 0)
val editor = prefs.edit()
editor.putString("token", extras.getString("token").toString())
editor.commit()
when (option) {
"log" -> onPasillerosItemClickListener(
PasillerosItemVO(
30,
R.drawable.expedition_find,
getString(R.string.titleLog),
R.string.titleLog,
getString(
R.string.titleLogDescrip
)
), getString(R.string.titleLog)
)
"info" -> onPasillerosItemClickListener(
PasillerosItemVO(
30,
R.drawable.ic_info,
getString(R.string.titleInfo),
R.string.titleInfo,
getString(
R.string.titleInfoDescription
)
), getString(R.string.titleInfo)
)
"summary" -> {
onPasillerosItemClickListener(
PasillerosItemVO(
30,
R.drawable.ic_info,
getString(R.string.titleDeliverySummary),
R.string.titleDeliverySummary,
getString(
R.string.titleDeliverySummary
)
), extras.getString("route").toString()
)
}
"unload" -> {
onPasillerosItemClickListener(
PasillerosItemVO(
30,
R.drawable.ic_info,
getString(R.string.titleInfo),
R.string.titleInfo,
getString(
R.string.titleInfoDescription
)
), getString(R.string.titleInfo)
)
}
}
} else {
//Tarea 5613
startRepeatingTask(
(application as MobileApplication).getPrefsShared().getLong("renewInterval", 0)
)
@ -318,8 +230,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
}
} catch (exception: Exception) {
getString(R.string.error).toast(this)
}
@ -333,25 +243,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
fun saveDataInt(name: String, value: Int) {
val prefs: SharedPreferences = getSharedPreferences("es.verdnatura.user.prefs", 0)
val editor = prefs.edit()
when (name) {
name -> editor.putInt(name, value)
}
editor.apply()
}
private fun saveUserAccesPref(user: String, password: String) {
val prefs: SharedPreferences = this.getSharedPreferences("es.verdnatura.user.prefs", 0)
val editor = prefs.edit()
editor.putString("user", user)
editor.putString("password", password)
editor.apply()
}
fun havePrinter(): Boolean {
val prefs: SharedPreferences = getSharedPreferences("es.verdnatura.user.prefs", 0)
val printerFk = prefs.getInt("printerFk", -1)
@ -362,9 +253,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
@DelicateCoroutinesApi
fun setBottomMenuFragment() {
val bottomMenu = binding.mainBottomNavigation
//iconos abajo sin texto
bottomMenu.labelVisibilityMode = LABEL_VISIBILITY_UNLABELED
bottomMenu.itemIconTintList = null
GlobalScope.launch(Dispatchers.Main) {
val bottomMenuItems: ArrayList<ItemMenuVO> = ArrayList()
@ -985,7 +874,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
try {
fm.executePendingTransactions()
} catch (ex: Exception) {
d("${ex.message}")
d("$ex")
}
if (fm.backStackEntryCount > 0) {
@ -1105,8 +994,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
ControlVehiculoFragment.TAG,
true
)
//sergio: de esta manera la llamada del fragment no se vuelve a repetir.
// addFragmentOnTop(ControlVehiculoFragment.newInstance(tag))
}
fun openSummaryFragment(route: Int, state: String) {
@ -1132,7 +1019,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
true
)
//addFragmentOnTop(SacadorFragment.newInstance())
}
@ -1154,16 +1040,11 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
fun openFragmentExpeditionState() {
//delete_Fragments()
// fm.popBackStack(null,FragmentManager.POP_BACK_STACK_INCLUSIVE)
// addFragment(ExpeditionStateFragment.newInstance("main"),R.id.main_frame_layout, ExpeditionStateFragment.TAG,false)
addFragmentOnTop(ExpeditionStateFragment.newInstance(getString(R.string.titleExpeditionState)))
}
fun openFragmentReubications(list: MutableList<Reubication>, shelving: String) {
addFragmentOnTop(ReubicationCollectionFragment.newInstance(list, shelving))
}
@ -1204,7 +1085,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
/*Tarea 4815*/
override fun onUserInteraction() {
super.onUserInteraction()
if ((System.currentTimeMillis() / 1000 / 3600) - myTimeUserInteraction > 4) {
@ -1224,22 +1104,11 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
@RequiresApi(Build.VERSION_CODES.O)
//Tarea 5613
fun checkTokenRenew() {
val prefs = (application as MobileApplication).getPrefsShared()
val renewPeriod = prefs.getLong("renewPeriod", 0)
var min = minOf(prefs.getLong("ttl", 0), renewPeriod) * 1000
/* println("Renovar: ****************************")
println("Renovar: el min es " + min)
println("Renovar: el ttl es " + prefs.getLong("ttl", 0))
println("Renovar: el renewPeriod será $renewPeriod")
println("Renovar segundos :" + (min + Date().time) / 1000)
println("Renovar token created :" + prefs.getLong("tokenCreated", 0))
println("Renovar fecha vida:" + (min + prefs.getLong("ttl", 0)))
println("Renovar fecha hui:" + Date().time)
println("Renovar: ****************************")
*/
val min = minOf(prefs.getLong("ttl", 0), renewPeriod) * 1000
if (Date().time < (min + prefs.getLong("tokenCreated", 0))) {
val loginViewModel = LoginViewModel(application as MobileApplication)

View File

@ -690,6 +690,7 @@
<string name="savePackages">Para guardar pulsa el icono del tick de la parte superior. ¿Quieres guardarlos?</string>
<string name="yes">SI</string>
<string name="no">NO</string>
<string name="add">Añadir...</string>
</resources>

View File

@ -690,6 +690,7 @@
<string name="savePackages">Pour sauvegarder, appuyez sur l\'icône de coche en haut. Voulez-vous les sauvegarder ?</string>
<string name="yes">OUI</string>
<string name="no">NON</string>
<string name="add">Añadir...</string>
</resources>

View File

@ -690,6 +690,7 @@
<string name="savePackages">Para salvar, toque no ícone de marca de seleção na parte superior. Você quer salvá-los?</string>
<string name="yes">SIM</string>
<string name="no">NÃO</string>
<string name="add">Añadir...</string>
</resources>

View File

@ -689,5 +689,6 @@
<string name="savePackages">To save, tap the checkmark icon at the top. Do you want to save them?</string>
<string name="yes">YES</string>
<string name="no">NO</string>
<string name="add">Añadir...</string>
</resources>