diff --git a/feature/offline/src/main/java/com/mifos/feature/offline/navigation/offlineNavigation.kt b/feature/offline/src/main/java/com/mifos/feature/offline/navigation/offlineNavigation.kt index 6a03ee5845a..a58b9e618cc 100644 --- a/feature/offline/src/main/java/com/mifos/feature/offline/navigation/offlineNavigation.kt +++ b/feature/offline/src/main/java/com/mifos/feature/offline/navigation/offlineNavigation.kt @@ -122,10 +122,6 @@ fun NavGraphBuilder.syncLoanRepaymentScreen( } } -fun NavController.navigateToOfflineDashboardScreen() { - navigate(OfflineScreens.OfflineDashboardScreens.route) -} - fun NavController.navigateToSyncCenterPayloadsScreen(){ navigate(OfflineScreens.SyncCenterPayloadsScreens.route) } diff --git a/mifosng-android/src/main/AndroidManifest.xml b/mifosng-android/src/main/AndroidManifest.xml index a95060cbee6..abeb87013e3 100755 --- a/mifosng-android/src/main/AndroidManifest.xml +++ b/mifosng-android/src/main/AndroidManifest.xml @@ -55,10 +55,6 @@ android:label="home_activity" android:screenOrientation="portrait" android:windowSoftInputMode="adjustPan" /> - - - - - - Unit -) : RecyclerView.Adapter() { - private val payloadNames: MutableList = ArrayList() - private val payloadCounts: MutableList = ArrayList() - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { - val viewHolder = ViewHolder( - LayoutInflater.from(parent.context) - .inflate(R.layout.item_offline_dashboard, parent, false) - ) - viewHolder.itemView.setOnClickListener { - if(viewHolder.adapterPosition != RecyclerView.NO_POSITION) - onItemClick(viewHolder.adapterPosition) - } - return viewHolder - } - - override fun onBindViewHolder(holder: ViewHolder, position: Int) { - holder.tv_payload_name.setText(payloadNames[position]) - holder.tv_item_count.text = payloadCounts[position] - } - - override fun getItemCount() = payloadNames.size - - - fun showCard(clientPayloadCount: String, cardName: Int) { - payloadCounts.add(clientPayloadCount) - payloadNames.add(cardName) - notifyDataSetChanged() - } - - fun removeAllCards() { - payloadNames.clear() - payloadCounts.clear() - notifyDataSetChanged() - } - - class ViewHolder(v: View) : RecyclerView.ViewHolder(v) { - val tv_item_count: TextView = v.findViewById(R.id.tv_payload_count) - val tv_payload_name: TextView = v.findViewById(R.id.tv_payload_name) - val iv_payload_image: ImageView = v.findViewById(R.id.iv_payload_image) - } -} diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/SyncCenterPayloadAdapter.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/SyncCenterPayloadAdapter.kt deleted file mode 100644 index 2cce7e6661e..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/SyncCenterPayloadAdapter.kt +++ /dev/null @@ -1,58 +0,0 @@ -package com.mifos.mifosxdroid.adapters - -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.recyclerview.widget.RecyclerView -import com.mifos.mifosxdroid.databinding.ItemSyncCenterBinding -import com.mifos.core.data.CenterPayload -import javax.inject.Inject - -/** - * Created by mayankjindal on 04/07/17. - */ -class SyncCenterPayloadAdapter @Inject constructor() : - RecyclerView.Adapter() { - private var mCenterPayloads: List - - init { - mCenterPayloads = ArrayList() - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { - return ViewHolder( - ItemSyncCenterBinding.inflate( - LayoutInflater.from(parent.context), - parent, - false - ) - ) - } - - override fun onBindViewHolder(holder: ViewHolder, position: Int) { - val centerPayload = mCenterPayloads[position] - holder.binding.tvName.text = centerPayload.name - holder.binding.tvOfficeId.text = centerPayload.officeId.toString() - holder.binding.tvActivationDate.text = centerPayload.activationDate - if (centerPayload.active) { - holder.binding.tvActiveStatus.text = true.toString() - } else { - holder.binding.tvActiveStatus.text = false.toString() - } - if (mCenterPayloads[position].errorMessage != null) { - holder.binding.tvErrorMessage.text = centerPayload.errorMessage - holder.binding.tvErrorMessage.visibility = View.VISIBLE - } - } - - override fun getItemCount(): Int { - return mCenterPayloads.size - } - - fun setCenterPayload(centerPayload: List) { - mCenterPayloads = centerPayload - notifyDataSetChanged() - } - - class ViewHolder(val binding: ItemSyncCenterBinding) : RecyclerView.ViewHolder(binding.root) -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/SyncLoanRepaymentAdapter.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/SyncLoanRepaymentAdapter.kt deleted file mode 100644 index bef52cddb1c..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/SyncLoanRepaymentAdapter.kt +++ /dev/null @@ -1,71 +0,0 @@ -package com.mifos.mifosxdroid.adapters - -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.recyclerview.widget.RecyclerView -import com.mifos.core.objects.accounts.loan.LoanRepaymentRequest -import com.mifos.mifosxdroid.databinding.ItemSyncLoanRepaymentBinding -import com.mifos.utils.Utils.getPaymentTypeName -import javax.inject.Inject - -/** - * Created by Rajan Maurya on 30/07/16. - */ -class SyncLoanRepaymentAdapter @Inject constructor() : - RecyclerView.Adapter() { - private var loanRepaymentRequests: List - private var mPaymentTypeOptions: List - - init { - loanRepaymentRequests = ArrayList() - mPaymentTypeOptions = ArrayList() - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { - return ViewHolder( - ItemSyncLoanRepaymentBinding.inflate( - LayoutInflater.from(parent.context), - parent, - false - ) - ) - } - - override fun onBindViewHolder(holder: ViewHolder, position: Int) { - val loanRepaymentRequest = loanRepaymentRequests[position] - val paymentTypeName = loanRepaymentRequest.paymentTypeId?.let { - getPaymentTypeName( - it.toInt(), mPaymentTypeOptions - ) - } - holder.binding.tvLoanId.text = loanRepaymentRequest.loanId.toString() - holder.binding.tvAccountNumber.text = loanRepaymentRequest.accountNumber - if (mPaymentTypeOptions.isNotEmpty()) { - holder.binding.tvPaymentType.text = paymentTypeName - } - holder.binding.tvTransactionAmount.text = loanRepaymentRequest.transactionAmount - holder.binding.tvTransactionDate.text = loanRepaymentRequest.transactionDate - if (loanRepaymentRequest.errorMessage != null) { - holder.binding.tvErrorMessage.text = loanRepaymentRequest.errorMessage - holder.binding.tvErrorMessage.visibility = View.VISIBLE - } - } - - override fun getItemCount(): Int { - return loanRepaymentRequests.size - } - - fun setLoanRepaymentRequests(repaymentRequests: List) { - loanRepaymentRequests = repaymentRequests - notifyDataSetChanged() - } - - fun setPaymentTypeOptions(paymentTypeOptions: List) { - mPaymentTypeOptions = paymentTypeOptions - notifyDataSetChanged() - } - - class ViewHolder(val binding: ItemSyncLoanRepaymentBinding) : - RecyclerView.ViewHolder(binding.root) -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/SyncSavingsAccountTransactionAdapter.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/SyncSavingsAccountTransactionAdapter.kt deleted file mode 100644 index d08594944bc..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/SyncSavingsAccountTransactionAdapter.kt +++ /dev/null @@ -1,72 +0,0 @@ -package com.mifos.mifosxdroid.adapters - -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.recyclerview.widget.RecyclerView -import com.mifos.core.objects.accounts.savings.SavingsAccountTransactionRequest -import com.mifos.mifosxdroid.databinding.ItemSyncSavingsAccountTransactionBinding -import com.mifos.utils.Utils.getPaymentTypeName -import javax.inject.Inject - -/** - * Created by Rajan Maurya on 19/08/16. - */ -class SyncSavingsAccountTransactionAdapter @Inject constructor() : - RecyclerView.Adapter() { - private var mSavingsAccountTransactionRequests: List - private var mPaymentTypeOptions: List - - init { - mSavingsAccountTransactionRequests = ArrayList() - mPaymentTypeOptions = ArrayList() - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { - return ViewHolder( - ItemSyncSavingsAccountTransactionBinding.inflate( - LayoutInflater.from( - parent.context - ), parent, false - ) - ) - } - - fun setSavingsAccountTransactions( - savingsAccountTransactions: List - ) { - mSavingsAccountTransactionRequests = savingsAccountTransactions - notifyDataSetChanged() - } - - fun setPaymentTypeOptions(paymentTypeOptions: List) { - mPaymentTypeOptions = paymentTypeOptions - notifyDataSetChanged() - } - - override fun onBindViewHolder(holder: ViewHolder, position: Int) { - val transaction = mSavingsAccountTransactionRequests[position] - val paymentTypeName = transaction.paymentTypeId?.toInt()?.let { - getPaymentTypeName( - it, - mPaymentTypeOptions - ) - } - holder.binding.tvSavingsAccountId.text = transaction.savingAccountId.toString() - holder.binding.tvPaymentType.text = paymentTypeName - holder.binding.tvTransactionType.text = transaction.transactionType - holder.binding.tvTransactionAmount.text = transaction.transactionAmount - holder.binding.tvTransactionDate.text = transaction.transactionDate - if (transaction.errorMessage != null) { - holder.binding.tvErrorMessage.text = transaction.errorMessage - holder.binding.tvErrorMessage.visibility = View.VISIBLE - } - } - - override fun getItemCount(): Int { - return mSavingsAccountTransactionRequests.size - } - - class ViewHolder(val binding: ItemSyncSavingsAccountTransactionBinding) : - RecyclerView.ViewHolder(binding.root) -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/formwidgets/FormEditText.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/formwidgets/FormEditText.kt deleted file mode 100644 index f7fa5354894..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/formwidgets/FormEditText.kt +++ /dev/null @@ -1,73 +0,0 @@ -/* - * This project is licensed under the open source MPL V2. - * See https://github.com/openMF/android-client/blob/master/LICENSE.md - */ -package com.mifos.mifosxdroid.formwidgets - -import android.content.Context -import android.view.MotionEvent -import android.view.inputmethod.EditorInfo -import android.widget.EditText -import android.widget.TextView -import androidx.fragment.app.FragmentManager -import com.mifos.mifosxdroid.uihelpers.MFDatePicker -import com.mifos.mifosxdroid.uihelpers.MFDatePicker.OnDatePickListener - -/** - * Created by ishankhanna on 01/08/14. - */ -class FormEditText(context: Context?, name: String?) : FormWidget(context, name) { - private var label: TextView - private var input: EditText - var isDateField: Boolean - - init { - label = TextView(context) - label.text = displayText - label.layoutParams = defaultLayoutParams - input = EditText(context) - input.layoutParams = defaultLayoutParams - input.imeOptions = EditorInfo.IME_ACTION_DONE - isDateField = false - layout.addView(label) - layout.addView(input) - } - - override var value: String - get() = input.text.toString() - set(value) { - input.setText(value) - } - - override fun setHint(value: String?) { - input.hint = value - } - - fun setIsDateField(isDateField: Boolean, fragmentManager: FragmentManager?) { - this.isDateField = isDateField - if (this.isDateField) { - input.setOnTouchListener { v, event -> - if (MotionEvent.ACTION_UP == event.action) { - val mfDatePicker = MFDatePicker() - mfDatePicker.onDatePickListener = object : OnDatePickListener { - override fun onDatePicked(date: String?) { - if (date != null) { - value = date - } - mfDatePicker.dismiss() - } - } - if (fragmentManager != null) { - mfDatePicker.show(fragmentManager, MFDatePicker.TAG) - } - } - true - } - } else { - throw RuntimeException( - "This EditText must be a Date Field! Please check if " + - "you've set isDateAvailable = true or not" - ) - } - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/formwidgets/FormNumericEditText.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/formwidgets/FormNumericEditText.kt deleted file mode 100644 index 2988b5494fc..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/formwidgets/FormNumericEditText.kt +++ /dev/null @@ -1,41 +0,0 @@ -/* - * This project is licensed under the open source MPL V2. - * See https://github.com/openMF/android-client/blob/master/LICENSE.md - */ -package com.mifos.mifosxdroid.formwidgets - -import android.content.Context -import android.text.InputType -import android.view.inputmethod.EditorInfo -import android.widget.EditText -import android.widget.TextView - -/** - * Created by ishankhanna on 01/08/14. - */ -class FormNumericEditText(context: Context?, property: String?) : FormWidget(context, property) { - private var label: TextView - private var input: EditText -// private var priority = 0 - - init { - label = TextView(context) - label.text = displayText - input = EditText(context) - input.inputType = InputType.TYPE_CLASS_PHONE - input.imeOptions = EditorInfo.IME_ACTION_NEXT - input.layoutParams = defaultLayoutParams - layout.addView(label) - layout.addView(input) - } - - override var value: String - get() = input.text.toString() - set(value) { - input.setText(value) - } - - override fun setHint(value: String?) { - input.hint = value - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/formwidgets/FormSpinner.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/formwidgets/FormSpinner.kt deleted file mode 100644 index 12d07bdb655..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/formwidgets/FormSpinner.kt +++ /dev/null @@ -1,47 +0,0 @@ -/* - * This project is licensed under the open source MPL V2. - * See https://github.com/openMF/android-client/blob/master/LICENSE.md - */ -package com.mifos.mifosxdroid.formwidgets - -import android.R -import android.content.Context -import android.widget.ArrayAdapter -import android.widget.Spinner -import android.widget.TextView - -/** - * Created by ishankhanna on 01/08/14. - */ -class FormSpinner( - context: Context?, - name: String?, - columnValues: List, - columnValueIds: List -) : FormWidget(context, name) { - private val label: TextView - private val spinner: Spinner - private val spinnerValueIdMap: MutableMap - - init { - label = TextView(context) - label.text = displayText - spinner = Spinner(context) - spinner.adapter = - ArrayAdapter(context!!, R.layout.simple_spinner_item, columnValues) - layout.addView(label) - layout.addView(spinner) - spinnerValueIdMap = HashMap() - for (i in columnValues.indices) { - spinnerValueIdMap[columnValues[i]] = columnValueIds[i] - } - } - - override var value: String - get() = spinner.selectedItem.toString() - set(value) {} - - fun getIdOfSelectedItem(key: String): Int { - return spinnerValueIdMap[key]!! - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/formwidgets/FormToggleButton.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/formwidgets/FormToggleButton.kt deleted file mode 100644 index 6451eda4ef0..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/formwidgets/FormToggleButton.kt +++ /dev/null @@ -1,43 +0,0 @@ -package com.mifos.mifosxdroid.formwidgets - -import android.content.Context -import android.view.Gravity -import android.widget.LinearLayout -import android.widget.TextView -import androidx.appcompat.widget.SwitchCompat - -/** - * Created by Tarun on 1/28/2017. - */ -class FormToggleButton(context: Context?, name: String?) : FormWidget(context, name) { - private var label: TextView - private var switchButton: SwitchCompat - private val weightedLayoutParams = LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, - LinearLayout.LayoutParams.WRAP_CONTENT, 0.5.toFloat() - ) - private var isTrue = false - - init { - val linearLayout = LinearLayout(context) - linearLayout.layoutParams = defaultLayoutParams - linearLayout.orientation = LinearLayout.HORIZONTAL - linearLayout.gravity = Gravity.CENTER_HORIZONTAL - label = TextView(context) - label.text = displayText - label.layoutParams = weightedLayoutParams - linearLayout.addView(label) - switchButton = SwitchCompat(context!!) - switchButton.layoutParams = weightedLayoutParams - switchButton.gravity = Gravity.CENTER_HORIZONTAL - switchButton.switchMinWidth = 50 - switchButton.isChecked = false - switchButton.setOnCheckedChangeListener { compoundButton, b -> isTrue = b } - linearLayout.addView(switchButton) - layout.addView(linearLayout) - } - - override var value: String - get() = if (isTrue) "true" else "false" - set(value) {} -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/formwidgets/FormWidget.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/formwidgets/FormWidget.kt deleted file mode 100644 index 6aa2f2e165d..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/formwidgets/FormWidget.kt +++ /dev/null @@ -1,162 +0,0 @@ -/* - * This project is licensed under the open source MPL V2. - * See https://github.com/openMF/android-client/blob/master/LICENSE.md - */ -package com.mifos.mifosxdroid.formwidgets - -import android.content.Context -import android.view.View -import android.widget.LinearLayout -import org.json.JSONObject -import java.util.Locale - -/** - * Created by ishankhanna on 01/08/14. - */ -abstract class FormWidget(context: Context?, name: String?) { - - - /** - * returns the un-modified name of the property this widget represents - */ - var propertyName: String - protected set - - /** - * returns a title case version of this property - * - * @return - */ - var displayText: String - protected set - /** - * returns visual priority - * - * @return - */ - /** - * sets the visual priority of this widget - * essentially this means it's physical location in the form - */ - var priority = 0 - protected var layout: LinearLayout - var returnType: String - - init { - layout = LinearLayout(context) - layout.layoutParams = defaultLayoutParams - layout.orientation = LinearLayout.VERTICAL - layout.setPadding(4, 4, 4, 4) - propertyName = name!! - displayText = name.replace("", " ") - displayText = toTitleCase(displayText) - returnType = SCHEMA_KEY_TEXT - } - // ----------------------------------------------- - // - // view - // - // ----------------------------------------------- - /** - * return LinearLayout containing this widget's view elements - */ - val view : View - get() = layout - - /** - * toggles the visibility of this widget - * - * @param value - */ - fun setVisibility(value: Int) { - layout.visibility = value - } - // ----------------------------------------------- - // - // set / get value - // - // ----------------------------------------------- - /** - * returns value of this widget as String - */// -- override - /** - * sets value of this widget, method should be overridden in sub-class - * - * @param value - */ - open var value: String - get() = "" - set(value) { - // -- override - } - // ----------------------------------------------- - // - // modifiers - // - // ----------------------------------------------- - /** - * sets the hint for the widget, method should be overriden in sub-class - */ - open fun setHint(value: String?) { - // -- override - } - - /** - * sets an object that contains keys for special properties on an object - * - * @param modifiers - */ - fun setModifiers(modifiers: JSONObject?) { - // -- override - } - // ----------------------------------------------- - // - // set / get priority - // - // ----------------------------------------------- - // ----------------------------------------------- - // - // property name mods - // - // ----------------------------------------------- - /** - * takes a property name and modifies - * - * @param s - * @return - */ - fun toTitleCase(s: String): String { - val chars = s.trim { it <= ' ' }.lowercase(Locale.getDefault()).toCharArray() - var found = false - for (i in chars.indices) { - if (!found && Character.isLetter(chars[i])) { - chars[i] = chars[i].uppercaseChar() - found = true - } else if (Character.isWhitespace(chars[i])) { - found = false - } - } - return String(chars) - } - - companion object { - val defaultLayoutParams = LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, - LinearLayout.LayoutParams.WRAP_CONTENT - ) - const val SCHEMA_KEY_TYPE = "type" - const val SCHEMA_KEY_BOOL = "BOOLEAN" - const val SCHEMA_KEY_INT = "INTEGER" - const val SCHEMA_KEY_DECIMAL = "DECIMAL" - const val SCHEMA_KEY_STRING = "STRING" - const val SCHEMA_KEY_TEXT = "TEXT" - const val SCHEMA_KEY_CODELOOKUP = "CODELOOKUP" - const val SCHEMA_KEY_CODEVALUE = "CODEVALUE" - const val SCHEMA_KEY_DATE = "DATE" - const val SCHEMA_KEY_PRIORITY = "priority" - const val SCHEMA_KEY_DEFAULT = "default" - const val SCHEMA_KEY_OPTIONS = "options" - const val SCHEMA_KEY_META = "meta" - const val SCHEMA_KEY_HINT = "hint" - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/offlinedashbarod/OfflineDashboardFragment.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/offlinedashbarod/OfflineDashboardFragment.kt deleted file mode 100644 index 449ee1558b9..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/offlinedashbarod/OfflineDashboardFragment.kt +++ /dev/null @@ -1,303 +0,0 @@ -//package com.mifos.mifosxdroid.offline.offlinedashbarod -// -//import android.content.Intent -//import android.os.Bundle -//import android.view.LayoutInflater -//import android.view.View -//import android.view.ViewGroup -//import androidx.lifecycle.ViewModelProvider -//import androidx.recyclerview.widget.DefaultItemAnimator -//import androidx.recyclerview.widget.GridLayoutManager -//import androidx.recyclerview.widget.LinearLayoutManager -//import com.mifos.core.data.CenterPayload -//import com.mifos.core.objects.accounts.loan.LoanRepaymentRequest -//import com.mifos.core.objects.accounts.savings.SavingsAccountTransactionRequest -//import com.mifos.core.objects.client.ClientPayload -//import com.mifos.core.objects.group.GroupPayload -//import com.mifos.mifosxdroid.R -//import com.mifos.mifosxdroid.adapters.OfflineDashboardAdapter -//import com.mifos.mifosxdroid.core.MifosBaseFragment -//import com.mifos.mifosxdroid.core.util.Toaster.show -//import com.mifos.mifosxdroid.databinding.FragmentOfflineDashboardBinding -//import com.mifos.mifosxdroid.offline.synccenterpayloads.SyncCenterPayloadActivity -//import com.mifos.mifosxdroid.offline.syncclientpayloads.SyncClientPayloadActivity -//import com.mifos.mifosxdroid.offline.syncgrouppayloads.SyncGroupPayloadsActivity -//import com.mifos.mifosxdroid.offline.syncloanrepaymenttransacition.SyncLoanRepaymentTransactionActivity -//import com.mifos.mifosxdroid.offline.syncsavingsaccounttransaction.SyncSavingsAccountTransactionActivity -//import com.mifos.utils.ItemOffsetDecoration -//import dagger.hilt.android.AndroidEntryPoint -// -///** -// * This Fragment is the Dashboard of the Offline sync of Clients, Groups, LoanRepayment etc. -// * In which presenter request the DataManager to get the offline created clients or groups or -// * LoanRepayment from DatabaseHelper and get the List of Groups, clients and LoanRepayment etc. -// * -// * if DataManager Response List is not equal to zero then add the Card Name and List Count in -// * OfflineDashboardAdapter.showCard(String cardName, String cardCount) and add the Class in -// * List mPayloadClasses, which will open onclick the card. -// * -// * mPayloadIndex, this is the counter value of the number of request we are making to the -// * DataManager to load the Clients, Groups, LoanRepayment etc list from DatabaseHelper -// * -// * SYNC_CARD_UI_NAMES is array of the card UI names, which contains the all possible name of cards. -// * due to this array we have maintain the single method in -// * OfflineDashboardAdapter.showCard(String cardName, String cardCount) and update the list. -// * -// * if DatabaseHelper returns the List size zero for all Clients, Groups, LoanRepayment etc -// * then showNoPayloadToShow() and Nothing to Sync. -// * -// * Created by Rajan Maurya on 20/07/16. -// */ -//@AndroidEntryPoint -//class OfflineDashboardFragment : MifosBaseFragment() { -// -// private lateinit var binding: FragmentOfflineDashboardBinding -// -// val LOG_TAG = javaClass.simpleName -// -// private lateinit var viewModel: com.mifos.feature.offline.dashboard.OfflineDashboardViewModel -// -// private lateinit var mOfflineDashboardAdapter: OfflineDashboardAdapter -// -// // update mPayloadIndex to number of request is going to fetch data in Presenter; -// private var mPayloadIndex = 5 -// private var mPayloadClasses: MutableList>? = null -// override fun onCreate(savedInstanceState: Bundle?) { -// super.onCreate(savedInstanceState) -// retainInstance = true -// mPayloadClasses = ArrayList() -// } -// -// override fun onCreateView( -// inflater: LayoutInflater, container: ViewGroup?, -// savedInstanceState: Bundle? -// ): View { -// binding = FragmentOfflineDashboardBinding.inflate(inflater, container, false) -// setToolbarTitle(requireActivity().resources.getString(R.string.offline)) -// viewModel = ViewModelProvider(this)[com.mifos.feature.offline.dashboard.OfflineDashboardViewModel::class.java] -// val mLayoutManager: LinearLayoutManager = GridLayoutManager(activity, GRID_COUNT) -// mLayoutManager.orientation = LinearLayoutManager.VERTICAL -// binding.rvOfflineDashboard.layoutManager = mLayoutManager -// binding.rvOfflineDashboard.setHasFixedSize(true) -// binding.rvOfflineDashboard.itemAnimator = DefaultItemAnimator() -// binding.rvOfflineDashboard.addItemDecoration( -// ItemOffsetDecoration( -// requireActivity(), -// R.dimen.item_offset -// ) -// ) -// mOfflineDashboardAdapter = OfflineDashboardAdapter { position: Int? -> -// if (position != null) { -// mPayloadClasses?.get(position)?.let { payloadClass -> -// startPayloadActivity(payloadClass) -// } -// } -// } -// binding.rvOfflineDashboard.adapter = mOfflineDashboardAdapter -// -// viewModel.offlineDashboardUiState.observe(viewLifecycleOwner) { -// when (it) { -// is OfflineDashboardUiState.ShowCenters -> { -// showProgressbar(false) -// showCenters(it.centerPayloads) -// } -// -// is OfflineDashboardUiState.ShowClients -> { -// showProgressbar(false) -// showClients(it.clientPayloads) -// } -// -// is OfflineDashboardUiState.ShowError -> { -// showProgressbar(false) -// showError(it.message) -// } -// -// is OfflineDashboardUiState.ShowGroups -> { -// showProgressbar(false) -// showGroups(it.groupPayloads) -// } -// -// is OfflineDashboardUiState.ShowLoanRepaymentTransactions -> { -// showProgressbar(false) -// showLoanRepaymentTransactions(it.loanRepaymentRequests) -// } -// -// is OfflineDashboardUiState.ShowProgressbar -> showProgressbar(true) -// -// is OfflineDashboardUiState.ShowSavingsAccountTransaction -> { -// showProgressbar(false) -// showSavingsAccountTransaction(it.transactionRequests) -// } -// } -// } -// -// return binding.root -// } -// -// override fun onStart() { -// super.onStart() -// mOfflineDashboardAdapter.removeAllCards() -// mPayloadClasses?.clear() -// mPayloadIndex = 5 -// viewModel.loadDatabaseClientPayload() -// viewModel.loadDatabaseGroupPayload() -// viewModel.loadDatabaseCenterPayload() -// viewModel.loadDatabaseLoanRepaymentTransactions() -// viewModel.loadDatabaseSavingsAccountTransactions() -// } -// -// /** -// * This method set the response of DataManager from DatabaseHelper that if List -// * Size is zero the decrease the value of mPayloadIndex by 1 and if size is not equal to zero -// * the update the adapter and add the Card UI name and size() of the List to sync. -// * -// * @param clientPayloads List from DatabaseHelperClient -// */ -// private fun showClients(clientPayloads: List) { -// if (clientPayloads.isNotEmpty()) { -// mOfflineDashboardAdapter.showCard( -// activity -// ?.resources?.getString(R.string.payloads_count) + -// clientPayloads.size, SYNC_CARD_UI_NAMES[0] -// ) -// mPayloadClasses?.add(SyncClientPayloadActivity::class.java) -// } else { -// mPayloadIndex -= 1 -// showNoPayloadToShow() -// } -// } -// -// /** -// * This method set the response of DataManager from DatabaseHelper that if List -// * Size is zero, then decrease the value of mPayloadIndex by 1 and if size is not equal to zero -// * the update the adapter and add the Card UI name and size() of the List to sync. -// * -// * @param groupPayloads List from DatabaseHelperGroup -// */ -// private fun showGroups(groupPayloads: List) { -// if (groupPayloads.isNotEmpty()) { -// mOfflineDashboardAdapter.showCard( -// activity -// ?.resources?.getString(R.string.payloads_count) + -// groupPayloads.size, SYNC_CARD_UI_NAMES[1] -// ) -// mPayloadClasses?.add(SyncGroupPayloadsActivity::class.java) -// } else { -// mPayloadIndex -= 1 -// showNoPayloadToShow() -// } -// } -// -// /** -// * This method set the response of DataManager from DatabaseHelper that if List -// * Size is zero, then decrease the value of mPayloadIndex by 1 and if size is not equal to zero -// * the update the adapter and add the Card UI name and size() of the List to sync. -// * -// * @param centerPayloads List from DatabaseHelperGroup -// */ -// private fun showCenters(centerPayloads: List) { -// if (centerPayloads.isNotEmpty()) { -// mOfflineDashboardAdapter.showCard( -// activity -// ?.resources?.getString(R.string.payloads_count) + -// centerPayloads.size, SYNC_CARD_UI_NAMES[2] -// ) -// mPayloadClasses?.add(SyncCenterPayloadActivity::class.java) -// } else { -// mPayloadIndex -= 1 -// showNoPayloadToShow() -// } -// } -// -// /** -// * This method set the response of DataManager from DatabaseHelper that if -// * List Size is zero, then decrease the value of mPayloadIndex by 1 and -// * if size is not equal to zero the update the adapter and add the Card UI name and size() of -// * the List to sync. -// * -// * @param loanRepaymentRequests List from DatabaseHelperLoan -// */ -// private fun showLoanRepaymentTransactions(loanRepaymentRequests: List) { -// if (loanRepaymentRequests.isNotEmpty()) { -// mOfflineDashboardAdapter.showCard( -// requireActivity().resources -// .getString(R.string.transactions_count) + -// loanRepaymentRequests.size, SYNC_CARD_UI_NAMES[3] -// ) -// mPayloadClasses?.add(SyncLoanRepaymentTransactionActivity::class.java) -// } else { -// mPayloadIndex -= 1 -// showNoPayloadToShow() -// } -// } -// -// /** -// * This method set the response of DataManager from DatabaseHelper, if -// * List Size is zero, then decrease the value of -// * mPayloadIndex by 1 and if size is not equal to zero then update the adapter and add the -// * Card UI name and size() of the List to sync. -// * -// * @param transactions List -// */ -// private fun showSavingsAccountTransaction(transactions: List) { -// if (transactions.isNotEmpty()) { -// mOfflineDashboardAdapter.showCard( -// requireActivity().resources -// .getString(R.string.transactions_count) + -// transactions.size, SYNC_CARD_UI_NAMES[4] -// ) -// mPayloadClasses?.add(SyncSavingsAccountTransactionActivity::class.java) -// } else { -// mPayloadIndex -= 1 -// showNoPayloadToShow() -// } -// } -// -// /** -// * This Method setting the main UI RecyclerView.setVisibility(View.GONE) and Set text TO -// * TextView that Nothing to Sync when mPayloadIndex = 0. It means there is nothing in the -// * Database to sync to the Server. -// */ -// private fun showNoPayloadToShow() { -// if (mPayloadIndex == 0) { -// binding.rvOfflineDashboard.visibility = View.GONE -// binding.llError.visibility = View.VISIBLE -// binding.noPayloadText.text = activity -// ?.resources?.getString(R.string.nothing_to_sync) -// binding.noPayloadIcon.setImageResource(R.drawable.ic_assignment_turned_in_black_24dp) -// } -// } -// -// private fun showError(stringId: String) { -// show(binding.root, stringId) -// } -// -// private fun showProgressbar(b: Boolean) { -// if (b) { -// binding.pbOfflineDashboard.visibility = View.VISIBLE -// } else { -// binding.pbOfflineDashboard.visibility = View.GONE -// } -// } -// -// /** -// * This is the Generic Type method for starting the activity. -// * @param t Activity Class that is user wants to start -// * @param -// */ -// private fun startPayloadActivity(t: Class<*>) { -// val intent = Intent(activity, t) -// startActivity(intent) -// } -// -// companion object { -// private const val GRID_COUNT = 2 -// val SYNC_CARD_UI_NAMES = intArrayOf( -// R.string.sync_clients, -// R.string.sync_groups, -// R.string.sync_centers, -// R.string.sync_loanrepayments, -// R.string.sync_savingsaccounttransactions -// ) -// } -//} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/synccenterpayloads/SyncCenterPayloadActivity.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/synccenterpayloads/SyncCenterPayloadActivity.kt deleted file mode 100644 index 5709510a2cf..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/synccenterpayloads/SyncCenterPayloadActivity.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.mifos.mifosxdroid.offline.synccenterpayloads - -import android.os.Bundle -import com.mifos.mifosxdroid.R -import com.mifos.mifosxdroid.core.MifosBaseActivity -import com.mifos.mifosxdroid.offline.synccenterpayloads.SyncCenterPayloadsFragment.Companion.newInstance - -class SyncCenterPayloadActivity : MifosBaseActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_toolbar_container) - showBackButton() - replaceFragment(newInstance(), false, R.id.container) - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/synccenterpayloads/SyncCenterPayloadsFragment.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/synccenterpayloads/SyncCenterPayloadsFragment.kt deleted file mode 100644 index c7667fb5fa8..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/synccenterpayloads/SyncCenterPayloadsFragment.kt +++ /dev/null @@ -1,42 +0,0 @@ -package com.mifos.mifosxdroid.offline.synccenterpayloads - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.compose.ui.platform.ComposeView -import androidx.compose.ui.platform.ViewCompositionStrategy -import androidx.navigation.fragment.findNavController -import com.mifos.feature.offline.sync_center_payloads.SyncCenterPayloadsScreenRoute -import com.mifos.mifosxdroid.core.MifosBaseFragment -import dagger.hilt.android.AndroidEntryPoint - -@AndroidEntryPoint -class SyncCenterPayloadsFragment : MifosBaseFragment() { - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - return ComposeView(requireContext()).apply { - setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) - setContent { - SyncCenterPayloadsScreenRoute( - onBackPressed = { - findNavController().popBackStack() - } - ) - } - } - } - - companion object { - @JvmStatic - fun newInstance(): SyncCenterPayloadsFragment { - val arguments = Bundle() - val fragment = SyncCenterPayloadsFragment() - fragment.arguments = arguments - return fragment - } - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncclientpayloads/SyncClientPayloadActivity.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncclientpayloads/SyncClientPayloadActivity.kt deleted file mode 100644 index 399dedf81db..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncclientpayloads/SyncClientPayloadActivity.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.mifos.mifosxdroid.offline.syncclientpayloads - -import android.os.Bundle -import com.mifos.mifosxdroid.R -import com.mifos.mifosxdroid.core.MifosBaseActivity -import com.mifos.mifosxdroid.offline.syncclientpayloads.SyncClientPayloadsFragment.Companion.newInstance - -/** - * Created by Rajan Maurya on 21/07/16. - */ -class SyncClientPayloadActivity : MifosBaseActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_toolbar_container) - showBackButton() - replaceFragment(newInstance(), false, R.id.container) - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncclientpayloads/SyncClientPayloadsFragment.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncclientpayloads/SyncClientPayloadsFragment.kt deleted file mode 100644 index 8b698181188..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncclientpayloads/SyncClientPayloadsFragment.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.mifos.mifosxdroid.offline.syncclientpayloads - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.compose.ui.platform.ComposeView -import androidx.compose.ui.platform.ViewCompositionStrategy -import androidx.navigation.fragment.findNavController -import com.mifos.feature.offline.sync_client_payload.SyncClientPayloadsScreenRoute -import com.mifos.mifosxdroid.core.MifosBaseFragment -import dagger.hilt.android.AndroidEntryPoint - -/** - * This Class for Syncing the clients that is created in offline mode. - * For syncing the clients user make sure that he/she is in the online mode. - * - * - * Created by Rajan Maurya on 08/07/16. - */ -@AndroidEntryPoint -class SyncClientPayloadsFragment : MifosBaseFragment() { - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - return ComposeView(requireContext()).apply { - setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) - setContent { - SyncClientPayloadsScreenRoute( - onBackPressed = { - findNavController().popBackStack() - } - ) - } - } - } - - companion object { - @JvmStatic - fun newInstance(): SyncClientPayloadsFragment { - val arguments = Bundle() - val fragment = SyncClientPayloadsFragment() - fragment.arguments = arguments - return fragment - } - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncgrouppayloads/SyncGroupPayloadsActivity.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncgrouppayloads/SyncGroupPayloadsActivity.kt deleted file mode 100644 index 338a867bd28..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncgrouppayloads/SyncGroupPayloadsActivity.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.mifos.mifosxdroid.offline.syncgrouppayloads - -import android.os.Bundle -import com.mifos.mifosxdroid.R -import com.mifos.mifosxdroid.core.MifosBaseActivity - -/** - * Created by Rajan Maurya on 21/07/16. - */ -class SyncGroupPayloadsActivity : MifosBaseActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_toolbar_container) - showBackButton() - replaceFragment(SyncGroupPayloadsFragment.newInstance(), false, R.id.container) - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncgrouppayloads/SyncGroupPayloadsFragment.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncgrouppayloads/SyncGroupPayloadsFragment.kt deleted file mode 100644 index d68be1313a2..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncgrouppayloads/SyncGroupPayloadsFragment.kt +++ /dev/null @@ -1,42 +0,0 @@ -package com.mifos.mifosxdroid.offline.syncgrouppayloads - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.compose.ui.platform.ComposeView -import androidx.compose.ui.platform.ViewCompositionStrategy -import androidx.navigation.findNavController -import com.mifos.feature.offline.sync_group_payloads.SyncGroupPayloadsScreenRoute -import com.mifos.mifosxdroid.core.MifosBaseFragment -import dagger.hilt.android.AndroidEntryPoint - -/** - * Created by Rajan Maurya on 19/07/16. - */ -@AndroidEntryPoint -class SyncGroupPayloadsFragment : MifosBaseFragment() { - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - return ComposeView(requireContext()).apply { - setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) - setContent { - SyncGroupPayloadsScreenRoute( - onBackPressed = { findNavController().popBackStack() } - ) - } - } - } - - companion object { - fun newInstance(): SyncGroupPayloadsFragment { - val arguments = Bundle() - val fragment = SyncGroupPayloadsFragment() - fragment.arguments = arguments - return fragment - } - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncloanrepaymenttransacition/SyncLoanRepaymentTransactionActivity.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncloanrepaymenttransacition/SyncLoanRepaymentTransactionActivity.kt deleted file mode 100644 index 18c691f17ec..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncloanrepaymenttransacition/SyncLoanRepaymentTransactionActivity.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.mifos.mifosxdroid.offline.syncloanrepaymenttransacition - -import android.os.Bundle -import com.mifos.mifosxdroid.R -import com.mifos.mifosxdroid.core.MifosBaseActivity -import com.mifos.mifosxdroid.offline.syncloanrepaymenttransacition.SyncLoanRepaymentTransactionFragment.Companion.newInstance - -/** - * Created by Rajan Maurya on 30/07/16. - */ -class SyncLoanRepaymentTransactionActivity : MifosBaseActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_toolbar_container) - showBackButton() - replaceFragment(newInstance(), false, R.id.container) - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncloanrepaymenttransacition/SyncLoanRepaymentTransactionFragment.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncloanrepaymenttransacition/SyncLoanRepaymentTransactionFragment.kt deleted file mode 100644 index 6319242af88..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncloanrepaymenttransacition/SyncLoanRepaymentTransactionFragment.kt +++ /dev/null @@ -1,45 +0,0 @@ -package com.mifos.mifosxdroid.offline.syncloanrepaymenttransacition - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.compose.ui.platform.ComposeView -import androidx.compose.ui.platform.ViewCompositionStrategy -import androidx.navigation.fragment.findNavController -import com.mifos.feature.offline.syncLoanRepaymentTransaction.SyncLoanRepaymentTransactionScreenRoute -import com.mifos.mifosxdroid.core.MifosBaseFragment -import dagger.hilt.android.AndroidEntryPoint - -/** - * Created by Rajan Maurya on 28/07/16. - */ -@AndroidEntryPoint -class SyncLoanRepaymentTransactionFragment : MifosBaseFragment() { - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - return ComposeView(requireContext()).apply { - setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) - setContent { - SyncLoanRepaymentTransactionScreenRoute( - onBackPressed = { - findNavController().popBackStack() - } - ) - } - } - } - - companion object { - @JvmStatic - fun newInstance(): SyncLoanRepaymentTransactionFragment { - val arguments = Bundle() - val fragment = SyncLoanRepaymentTransactionFragment() - fragment.arguments = arguments - return fragment - } - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncsavingsaccounttransaction/SyncSavingsAccountTransactionActivity.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncsavingsaccounttransaction/SyncSavingsAccountTransactionActivity.kt deleted file mode 100644 index 11115b0328e..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncsavingsaccounttransaction/SyncSavingsAccountTransactionActivity.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.mifos.mifosxdroid.offline.syncsavingsaccounttransaction - -import android.os.Bundle -import com.mifos.mifosxdroid.R -import com.mifos.mifosxdroid.core.MifosBaseActivity -import com.mifos.mifosxdroid.offline.syncsavingsaccounttransaction.SyncSavingsAccountTransactionFragment.Companion.newInstance - -/** - * Created by Rajan Maurya on 20/08/16. - */ -class SyncSavingsAccountTransactionActivity : MifosBaseActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_toolbar_container) - showBackButton() - replaceFragment(newInstance(), false, R.id.container) - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncsavingsaccounttransaction/SyncSavingsAccountTransactionFragment.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncsavingsaccounttransaction/SyncSavingsAccountTransactionFragment.kt deleted file mode 100644 index f2374a2ca44..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offline/syncsavingsaccounttransaction/SyncSavingsAccountTransactionFragment.kt +++ /dev/null @@ -1,45 +0,0 @@ -package com.mifos.mifosxdroid.offline.syncsavingsaccounttransaction - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.compose.ui.platform.ComposeView -import androidx.compose.ui.platform.ViewCompositionStrategy -import androidx.navigation.fragment.findNavController -import com.mifos.feature.offline.sync_savings_account_transaction.SyncSavingsAccountTransactionScreenRoute -import com.mifos.mifosxdroid.core.MifosBaseFragment -import dagger.hilt.android.AndroidEntryPoint - -/** - * Created by Rajan Maurya on 19/08/16. - */ -@AndroidEntryPoint -class SyncSavingsAccountTransactionFragment : MifosBaseFragment() { - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - return ComposeView(requireContext()).apply { - setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) - setContent { - SyncSavingsAccountTransactionScreenRoute( - onBackPressed = { - findNavController().popBackStack() - } - ) - } - } - } - - companion object { - @JvmStatic - fun newInstance(): SyncSavingsAccountTransactionFragment { - val arguments = Bundle() - val sync = SyncSavingsAccountTransactionFragment() - sync.arguments = arguments - return sync - } - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineJobCreator.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineJobCreator.kt deleted file mode 100644 index 9f4c549926f..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineJobCreator.kt +++ /dev/null @@ -1,21 +0,0 @@ -package com.mifos.mifosxdroid.offlinejobs - -import com.evernote.android.job.Job -import com.evernote.android.job.JobCreator -import com.mifos.utils.Tags - -/** - * Created by aksh on 17/7/18. - */ -class OfflineJobCreator : JobCreator { - override fun create(tag: String): Job? { - return when (tag) { - Tags.OfflineSyncCenter -> OfflineSyncCenter() - Tags.OfflineSyncClient -> OfflineSyncClient() - Tags.OfflineSyncGroup -> OfflineSyncGroup() - Tags.OfflineSyncSavingsAccount -> OfflineSyncSavingsAccount() - Tags.OfflineSyncLoanRepayment -> OfflineSyncLoanRepayment() - else -> null - } - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineSyncCenter.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineSyncCenter.kt deleted file mode 100644 index dc9c818963f..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineSyncCenter.kt +++ /dev/null @@ -1,161 +0,0 @@ -package com.mifos.mifosxdroid.offlinejobs - -import com.evernote.android.job.Job -import com.evernote.android.job.JobRequest -import com.mifos.core.data.CenterPayload -import com.mifos.core.network.datamanager.DataManagerCenter -import com.mifos.core.objects.response.SaveResponse -import com.mifos.utils.PrefManager.userStatus -import com.mifos.utils.Tags -import rx.Observer -import rx.Subscriber -import rx.android.schedulers.AndroidSchedulers -import rx.schedulers.Schedulers -import rx.subscriptions.CompositeSubscription -import java.util.concurrent.TimeUnit -import javax.inject.Inject - -/** - * Created by aksh on 17/7/18. - */ -class OfflineSyncCenter : Job() { - @JvmField - @Inject - var mDataManagerCenter: DataManagerCenter? = null - var centerPayloads: MutableList? = null - private var mSubscriptions: CompositeSubscription? = null - private var mCenterSyncIndex = 0 - override fun onRunJob(params: Params): Result { - mSubscriptions = CompositeSubscription() - centerPayloads = ArrayList() - return if (!userStatus) { - loadDatabaseCenterPayload() - Result.SUCCESS - } else { - Result.FAILURE - } - } - - private fun loadDatabaseCenterPayload() { - mSubscriptions!!.add( - mDataManagerCenter!!.allDatabaseCenterPayload - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber>() { - override fun onCompleted() { - mCenterSyncIndex = 0 - startSync() - } - - override fun onError(e: Throwable) {} - override fun onNext(centerPayloads: List) { - showCenters(centerPayloads) - } - }) - ) - } - - fun showCenters(centerPayload: List) { - centerPayloads = centerPayload.toMutableList() - } - - fun startSync() { - for (i in mCenterSyncIndex until centerPayloads!!.size) { - if (centerPayloads!![i].errorMessage == null) { - mCenterSyncIndex = i - syncCenterPayload(centerPayloads!![i]) - break - } - } - } - - fun syncCenterPayload(centerPayload: CenterPayload?) { - mSubscriptions!!.add( - mDataManagerCenter!!.createCenter(centerPayload!!) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Observer { - override fun onCompleted() {} - override fun onError(e: Throwable) { - showCenterSyncFailed(e.message.toString()) - } - - override fun onNext(center: SaveResponse?) { - showCenterSyncResponse() - } - }) - ) - } - - fun showCenterSyncResponse() { - deleteAndUpdateCenterPayload( - centerPayloads - !![mCenterSyncIndex].id - ) - } - - private fun deleteAndUpdateCenterPayload(id: Int) { - mSubscriptions!!.add( - mDataManagerCenter!!.deleteAndUpdateCenterPayloads(id) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Observer> { - override fun onCompleted() {} - override fun onError(e: Throwable) {} - override fun onNext(centerPayloads: List) { - showPayloadDeletedAndUpdatePayloads(centerPayloads) - } - }) - ) - } - - fun showPayloadDeletedAndUpdatePayloads(centers: List) { - mCenterSyncIndex = 0 - centerPayloads = centers.toMutableList() - if (centerPayloads!!.isNotEmpty()) { - startSync() - } - } - - fun showCenterSyncFailed(errorMessage: String?) { - val centerPayload = centerPayloads!![mCenterSyncIndex] - centerPayload.errorMessage = errorMessage - updateCenterPayload(centerPayload) - } - - fun showCenterPayloadUpdated(centerPayload: CenterPayload) { - centerPayloads!![mCenterSyncIndex] = centerPayload - mCenterSyncIndex += 1 - if (centerPayloads!!.size != mCenterSyncIndex) { - startSync() - } - } - - private fun updateCenterPayload(centerPayload: CenterPayload?) { - mSubscriptions!!.add( - mDataManagerCenter!!.updateCenterPayload(centerPayload!!) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber() { - override fun onCompleted() {} - override fun onError(e: Throwable) {} - override fun onNext(centerPayload: CenterPayload) { - showCenterPayloadUpdated(centerPayload) - } - }) - ) - } - - companion object { - @JvmStatic - fun schedulePeriodic() { - JobRequest.Builder(Tags.OfflineSyncCenter) - .setPeriodic( - TimeUnit.MINUTES.toMillis(15), - TimeUnit.MINUTES.toMillis(5) - ) - .build() - .schedule() - } - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineSyncClient.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineSyncClient.kt deleted file mode 100644 index e3907c725e4..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineSyncClient.kt +++ /dev/null @@ -1,166 +0,0 @@ -package com.mifos.mifosxdroid.offlinejobs - -import com.evernote.android.job.Job -import com.evernote.android.job.JobRequest -import com.mifos.core.network.datamanager.DataManagerClient -import com.mifos.core.objects.client.Client -import com.mifos.core.objects.client.ClientPayload -import com.mifos.utils.PrefManager.userStatus -import com.mifos.utils.Tags -import rx.Observer -import rx.Subscriber -import rx.android.schedulers.AndroidSchedulers -import rx.schedulers.Schedulers -import rx.subscriptions.CompositeSubscription -import java.util.concurrent.TimeUnit -import javax.inject.Inject - -/** - * Created by aksh on 22/7/18. - */ -class OfflineSyncClient : Job() { - @Inject - lateinit var mDataManagerClient: DataManagerClient - var clientPayloads: MutableList = ArrayList() - private var mSubscriptions: CompositeSubscription? = null - private var mClientSyncIndex = 0 - override fun onRunJob(params: Params): Result { - mSubscriptions = CompositeSubscription() - return if (!userStatus) { - loadDatabaseClientPayload() - Result.SUCCESS - } else { - Result.FAILURE - } - } - - private fun loadDatabaseClientPayload() { - mSubscriptions?.add( - mDataManagerClient.allDatabaseClientPayload - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber>() { - override fun onCompleted() { - mClientSyncIndex = 0 - syncClient() - } - - override fun onError(e: Throwable) {} - override fun onNext(clientPayloads: List) { - showPayloads(clientPayloads) - } - }) - ) - } - - fun showPayloads(clientPayload: List) { - clientPayloads = clientPayload as MutableList - } - - fun syncClient() { - for (i in mClientSyncIndex until clientPayloads.size) { - if (clientPayloads[i].errorMessage == null) { - syncClientPayload(clientPayloads[i]) - mClientSyncIndex = i - break - } - } - } - - private fun syncClientPayload(clientPayload: ClientPayload?) { - mSubscriptions?.add( - mDataManagerClient.createClient(clientPayload!!) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Observer { - override fun onCompleted() {} - override fun onError(e: Throwable) { - showClientSyncFailed(e.message.toString()) - } - - override fun onNext(client: Client) { - showSyncResponse() - } - }) - ) - } - - fun showClientSyncFailed(errorMessage: String?) { - val clientPayload = clientPayloads[mClientSyncIndex] - clientPayload.errorMessage = errorMessage - updateClientPayload(clientPayload) - } - - fun showSyncResponse() { - clientPayloads[mClientSyncIndex].id?.let { - clientPayloads[mClientSyncIndex].clientCreationTime?.let { it1 -> - deleteAndUpdateClientPayload( - it, - it1 - ) - } - } - } - - private fun deleteAndUpdateClientPayload(id: Int, clientCreationTIme: Long) { - mSubscriptions?.add( - mDataManagerClient.deleteAndUpdatePayloads( - id, - clientCreationTIme - ) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Observer> { - override fun onCompleted() {} - override fun onError(e: Throwable) {} - override fun onNext(clientPayloads: List) { - showPayloadDeletedAndUpdatePayloads(clientPayloads) - } - }) - ) - } - - private fun updateClientPayload(clientPayload: ClientPayload?) { - mSubscriptions?.add( - mDataManagerClient.updateClientPayload(clientPayload!!) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber() { - override fun onCompleted() {} - override fun onError(e: Throwable) {} - override fun onNext(clientPayload: ClientPayload) { - showClientPayloadUpdated(clientPayload) - } - }) - ) - } - - fun showPayloadDeletedAndUpdatePayloads(clients: List) { - mClientSyncIndex = 0 - clientPayloads.clear() - clientPayloads = clients as MutableList - if (clientPayloads.size != 0) { - syncClient() - } - } - - fun showClientPayloadUpdated(clientPayload: ClientPayload) { - clientPayloads[mClientSyncIndex] = clientPayload - mClientSyncIndex += 1 - if (clientPayloads.size != mClientSyncIndex) { - syncClient() - } - } - - companion object { - fun schedulePeriodic() { - JobRequest.Builder(Tags.OfflineSyncClient) - .setPeriodic( - TimeUnit.MINUTES.toMillis(15), - TimeUnit.MINUTES.toMillis(5) - ) - .build() - .schedule() - } - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineSyncGroup.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineSyncGroup.kt deleted file mode 100644 index 736484d86ad..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineSyncGroup.kt +++ /dev/null @@ -1,155 +0,0 @@ -package com.mifos.mifosxdroid.offlinejobs - -import com.evernote.android.job.Job -import com.evernote.android.job.JobRequest -import com.mifos.core.network.datamanager.DataManagerGroups -import com.mifos.core.objects.group.GroupPayload -import com.mifos.core.objects.response.SaveResponse -import com.mifos.utils.PrefManager.userStatus -import com.mifos.utils.Tags -import rx.Subscriber -import rx.android.schedulers.AndroidSchedulers -import rx.schedulers.Schedulers -import rx.subscriptions.CompositeSubscription -import java.util.concurrent.TimeUnit -import javax.inject.Inject - -/** - * Created by aksh on 22/7/18. - */ -class OfflineSyncGroup : Job() { - var mSubscriptions: CompositeSubscription? = null - var groupPayloads: MutableList = ArrayList() - - @Inject - lateinit var mDataManagerGroups: DataManagerGroups - private var mClientSyncIndex = 0 - override fun onRunJob(params: Params): Result { - mSubscriptions = CompositeSubscription() - return if (!userStatus) { - loadDatabaseGroupPayload() - Result.SUCCESS - } else { - Result.FAILURE - } - } - - private fun loadDatabaseGroupPayload() { - mSubscriptions?.add( - mDataManagerGroups.allDatabaseGroupPayload - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber>() { - override fun onCompleted() { - mClientSyncIndex = 0 - startSync() - } - - override fun onError(e: Throwable) {} - override fun onNext(groupPayloads: List) { - showGroups(groupPayloads) - } - }) - ) - } - - fun showGroups(groupPayload: List) { - groupPayloads = groupPayload as MutableList - } - - fun startSync() { - for (i in mClientSyncIndex until groupPayloads.size) { - if (groupPayloads[i].errorMessage == null) { - syncGroupPayload(groupPayloads[i]) - mClientSyncIndex = i - break - } - } - } - - private fun syncGroupPayload(groupPayload: GroupPayload?) { - mSubscriptions?.add( - mDataManagerGroups.createGroup(groupPayload!!) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber() { - override fun onCompleted() {} - override fun onError(e: Throwable) { - showGroupSyncFailed(e.message.toString()) - } - - override fun onNext(group: SaveResponse) { - showGroupSyncResponse() - } - }) - ) - } - - fun showGroupSyncFailed(errorMessage: String?) { - val groupPayload = groupPayloads[mClientSyncIndex] - groupPayload.errorMessage = errorMessage - updateGroupPayload(groupPayload) - } - - fun showGroupSyncResponse() { - deleteAndUpdateGroupPayload( - groupPayloads[mClientSyncIndex].id - ) - } - - private fun updateGroupPayload(groupPayload: GroupPayload?) { - mSubscriptions?.add( - mDataManagerGroups.updateGroupPayload(groupPayload!!) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber() { - override fun onCompleted() {} - override fun onError(e: Throwable) {} - override fun onNext(groupPayload: GroupPayload) { - showGroupPayloadUpdated(groupPayload) - } - }) - ) - } - - private fun deleteAndUpdateGroupPayload(id: Int) { - mSubscriptions?.add( - mDataManagerGroups.deleteAndUpdateGroupPayloads(id) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber>() { - override fun onCompleted() {} - override fun onError(e: Throwable) {} - override fun onNext(groupPayloads: List) { - showPayloadDeletedAndUpdatePayloads(groupPayloads) - } - }) - ) - } - - fun showGroupPayloadUpdated(groupPayload: GroupPayload) { - groupPayloads[mClientSyncIndex] = groupPayload - mClientSyncIndex += 1 - if (groupPayloads.size != mClientSyncIndex) { - startSync() - } - } - - fun showPayloadDeletedAndUpdatePayloads(groups: List) { - mClientSyncIndex = 0 - groupPayloads = groups as MutableList - if (groupPayloads.size != 0) { - startSync() - } - } - - companion object { - fun schedulePeriodic() { - JobRequest.Builder(Tags.OfflineSyncGroup) - .setPeriodic(TimeUnit.MINUTES.toMillis(15), TimeUnit.MINUTES.toMillis(5)) - .setUpdateCurrent(true) - .build() - .schedule() - } - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineSyncLoanRepayment.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineSyncLoanRepayment.kt deleted file mode 100644 index 9514a4ce514..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineSyncLoanRepayment.kt +++ /dev/null @@ -1,166 +0,0 @@ -package com.mifos.mifosxdroid.offlinejobs - -import com.evernote.android.job.Job -import com.evernote.android.job.JobRequest -import com.mifos.core.network.datamanager.DataManagerLoan -import com.mifos.core.objects.accounts.loan.LoanRepaymentRequest -import com.mifos.core.objects.accounts.loan.LoanRepaymentResponse -import com.mifos.utils.PrefManager.userStatus -import com.mifos.utils.Tags -import rx.Subscriber -import rx.android.schedulers.AndroidSchedulers -import rx.schedulers.Schedulers -import rx.subscriptions.CompositeSubscription -import java.util.concurrent.TimeUnit -import javax.inject.Inject - -/** - * Created by aksh on 27/7/18. - */ -class OfflineSyncLoanRepayment : Job() { - - @Inject - lateinit var mDataManagerLoan: DataManagerLoan - private var mSubscriptions: CompositeSubscription? = null - private var mLoanRepaymentRequests: MutableList = ArrayList() - private var mClientSyncIndex = 0 - override fun onRunJob(params: Params): Result { - mSubscriptions = CompositeSubscription() - return if (!userStatus) { - loadDatabaseLoanRepaymentTransactions() - Result.SUCCESS - } else { - Result.FAILURE - } - } - - private fun loadDatabaseLoanRepaymentTransactions() { - mSubscriptions?.add( - mDataManagerLoan.databaseLoanRepayments - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber>() { - override fun onCompleted() { - mClientSyncIndex = 0 - syncGroupPayload() - } - - override fun onError(e: Throwable) {} - override fun onNext(loanRepaymentRequests: List) { - showLoanRepaymentTransactions(loanRepaymentRequests) - } - }) - ) - } - - fun showLoanRepaymentTransactions(loanRepaymentRequests: List) { - mLoanRepaymentRequests = loanRepaymentRequests as MutableList - } - - fun syncGroupPayload() { - for (i in mClientSyncIndex until mLoanRepaymentRequests.size) { - if (mLoanRepaymentRequests[i].errorMessage == null) { - mLoanRepaymentRequests[i] - .loanId?.let { - syncLoanRepayment( - it, mLoanRepaymentRequests[i] - ) - } - mClientSyncIndex = i - break - } - } - } - - private fun syncLoanRepayment(loanId: Int, loanRepaymentRequest: LoanRepaymentRequest?) { - mSubscriptions?.add( - mDataManagerLoan.submitPayment(loanId, loanRepaymentRequest!!) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber() { - override fun onCompleted() {} - override fun onError(e: Throwable) { - showPaymentFailed(e.message.toString()) - } - - override fun onNext(loanRepaymentResponse: LoanRepaymentResponse) { - showPaymentSubmittedSuccessfully() - } - }) - ) - } - - fun showPaymentFailed(errorMessage: String?) { - val loanRepaymentRequest = mLoanRepaymentRequests[mClientSyncIndex] - loanRepaymentRequest.errorMessage = errorMessage - updateLoanRepayment(loanRepaymentRequest) - } - - private fun updateLoanRepayment(loanRepaymentRequest: LoanRepaymentRequest?) { - mSubscriptions?.add( - mDataManagerLoan.updateLoanRepaymentTransaction(loanRepaymentRequest!!) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber() { - override fun onCompleted() {} - override fun onError(e: Throwable) {} - override fun onNext(loanRepaymentRequest: LoanRepaymentRequest) { - showLoanRepaymentUpdated(loanRepaymentRequest) - } - }) - ) - } - - fun showLoanRepaymentUpdated(loanRepaymentRequest: LoanRepaymentRequest) { - mLoanRepaymentRequests[mClientSyncIndex] = loanRepaymentRequest - mClientSyncIndex += 1 - if (mLoanRepaymentRequests.size != mClientSyncIndex) { - syncGroupPayload() - } - } - - fun showPaymentSubmittedSuccessfully() { - mLoanRepaymentRequests[mClientSyncIndex].loanId?.let { - deleteAndUpdateLoanRepayments( - it - ) - } - } - - private fun deleteAndUpdateLoanRepayments(loanId: Int) { - mSubscriptions?.add( - mDataManagerLoan.deleteAndUpdateLoanRepayments(loanId) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber>() { - override fun onCompleted() {} - override fun onError(e: Throwable) {} - override fun onNext(loanRepaymentRequests: List) { - showLoanRepaymentDeletedAndUpdateLoanRepayment( - loanRepaymentRequests - ) - } - }) - ) - } - - fun showLoanRepaymentDeletedAndUpdateLoanRepayment(loanRepaymentRequests: List) { - mClientSyncIndex = 0 - mLoanRepaymentRequests = loanRepaymentRequests as MutableList - if (mLoanRepaymentRequests.size != 0) { - syncGroupPayload() - } - } - - companion object { - fun schedulePeriodic() { - JobRequest.Builder(Tags.OfflineSyncLoanRepayment) - .setPeriodic( - TimeUnit.MINUTES.toMillis(15), - TimeUnit.MINUTES.toMillis(5) - ) - .build() - .schedule() - } - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineSyncSavingsAccount.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineSyncSavingsAccount.kt deleted file mode 100644 index 6681986cdfc..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/offlinejobs/OfflineSyncSavingsAccount.kt +++ /dev/null @@ -1,191 +0,0 @@ -package com.mifos.mifosxdroid.offlinejobs - -import com.evernote.android.job.Job -import com.evernote.android.job.JobRequest -import com.mifos.core.network.datamanager.DataManagerLoan -import com.mifos.core.network.datamanager.DataManagerSavings -import com.mifos.core.objects.accounts.savings.SavingsAccountTransactionRequest -import com.mifos.core.objects.accounts.savings.SavingsAccountTransactionResponse -import com.mifos.utils.PrefManager.userStatus -import com.mifos.utils.Tags -import rx.Subscriber -import rx.android.schedulers.AndroidSchedulers -import rx.schedulers.Schedulers -import rx.subscriptions.CompositeSubscription -import java.util.concurrent.TimeUnit -import javax.inject.Inject - -/** - * Created by aksh on 27/7/18. - */ -class OfflineSyncSavingsAccount : Job() { - @Inject - lateinit var mDataManagerSavings: DataManagerSavings - - @JvmField - @Inject - var mDataManagerLoan: DataManagerLoan? = null - private var mSubscriptions: CompositeSubscription? = null - private var mSavingsAccountTransactionRequests: MutableList = - ArrayList() - private var mTransactionIndex = 0 - override fun onRunJob(params: Params): Result { - mSubscriptions = CompositeSubscription() - mSavingsAccountTransactionRequests = ArrayList() - return if (!userStatus) { - loadDatabaseSavingsAccountTransactions() - Result.SUCCESS - } else { - Result.FAILURE - } - } - - private fun loadDatabaseSavingsAccountTransactions() { - mSubscriptions!!.add( - mDataManagerSavings.allSavingsAccountTransactions - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber>() { - override fun onCompleted() { - syncNow() - } - - override fun onError(e: Throwable) {} - override fun onNext(transactionRequests: List) { - if (transactionRequests.isNotEmpty()) { - mSavingsAccountTransactionRequests = transactionRequests.toMutableList() - } - } - }) - ) - } - - fun syncNow() { - if (mSavingsAccountTransactionRequests.isNotEmpty()) { - mTransactionIndex = 0 - checkErrorAndSync() - } - } - - private fun checkErrorAndSync() { - for (i in mTransactionIndex until mSavingsAccountTransactionRequests.size) { - if (mSavingsAccountTransactionRequests[i].errorMessage == null) { - mTransactionIndex = i - val savingAccountType = mSavingsAccountTransactionRequests[i].savingsAccountType - val savingAccountId = mSavingsAccountTransactionRequests[i].savingAccountId - val transactionType = mSavingsAccountTransactionRequests - .get(i).transactionType - if (savingAccountId != null) { - processTransaction( - savingAccountType, savingAccountId, transactionType, - mSavingsAccountTransactionRequests[i] - ) - } - break - } - } - } - - private fun processTransaction( - type: String?, accountId: Int, transactionType: String?, - request: SavingsAccountTransactionRequest - ) { - mSubscriptions?.add( - mDataManagerSavings - .processTransaction(type, accountId, transactionType, request) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber() { - override fun onCompleted() {} - override fun onError(e: Throwable) { - showTransactionSyncFailed(e.message.toString()) - } - - override fun onNext(savingsAccountTransactionResponse: SavingsAccountTransactionResponse) { - showTransactionSyncSuccessfully() - } - }) - ) - } - - fun showTransactionSyncFailed(errorMessage: String?) { - val transaction = mSavingsAccountTransactionRequests - .get(mTransactionIndex) - transaction.errorMessage = errorMessage - updateSavingsAccountTransaction(transaction) - } - - private fun updateSavingsAccountTransaction(request: SavingsAccountTransactionRequest) { - mSubscriptions!!.add( - mDataManagerSavings.updateLoanRepaymentTransaction(request) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber() { - override fun onCompleted() {} - override fun onError(e: Throwable) {} - override fun onNext(savingsAccountTransactionRequest: SavingsAccountTransactionRequest) { - showTransactionUpdatedSuccessfully(savingsAccountTransactionRequest) - } - }) - ) - } - - fun showTransactionUpdatedSuccessfully(transaction: SavingsAccountTransactionRequest) { - mSavingsAccountTransactionRequests[mTransactionIndex] = transaction - mTransactionIndex += 1 - if (mSavingsAccountTransactionRequests.size != mTransactionIndex) { - syncSavingsAccountTransactions() - } - } - - fun showTransactionSyncSuccessfully() { - mSavingsAccountTransactionRequests[mTransactionIndex].savingAccountId?.let { - deleteAndUpdateSavingsAccountTransaction( - it - ) - } - } - - private fun deleteAndUpdateSavingsAccountTransaction(savingsAccountId: Int) { - mSubscriptions!!.add( - mDataManagerSavings.deleteAndUpdateTransactions(savingsAccountId) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeOn(Schedulers.io()) - .subscribe(object : Subscriber>() { - override fun onCompleted() {} - override fun onError(e: Throwable) {} - override fun onNext(savingsAccountTransactionRequests: List) { - showTransactionDeletedAndUpdated(savingsAccountTransactionRequests) - } - }) - ) - } - - fun showTransactionDeletedAndUpdated(transactions: List) { - mTransactionIndex = 0 - mSavingsAccountTransactionRequests = transactions.toMutableList() - if (mSavingsAccountTransactionRequests.isNotEmpty()) { - syncSavingsAccountTransactions() - } - } - - private fun syncSavingsAccountTransactions() { - if (mSavingsAccountTransactionRequests.isNotEmpty()) { - mTransactionIndex = 0 - checkErrorAndSync() - } - } - - companion object { - @JvmStatic - fun schedulePeriodic() { - JobRequest.Builder(Tags.OfflineSyncSavingsAccount) - .setPeriodic( - TimeUnit.MINUTES.toMillis(15), - TimeUnit.MINUTES.toMillis(5) - ) - .build() - .schedule() - } - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/online/DashboardActivity.kt b/mifosng-android/src/main/java/com/mifos/mifosxdroid/online/DashboardActivity.kt deleted file mode 100644 index 8bbd9e269b6..00000000000 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/online/DashboardActivity.kt +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This project is licensed under the open source MPL V2. - * See https://github.com/openMF/android-client/blob/master/LICENSE.md - */ -package com.mifos.mifosxdroid.online - -import android.os.Bundle -import com.mifos.mifosxdroid.R -import com.mifos.mifosxdroid.core.MifosBaseActivity -import com.mifos.mifosxdroid.offlinejobs.OfflineSyncCenter -import com.mifos.mifosxdroid.offlinejobs.OfflineSyncClient -import com.mifos.mifosxdroid.offlinejobs.OfflineSyncGroup -import com.mifos.mifosxdroid.offlinejobs.OfflineSyncLoanRepayment -import com.mifos.mifosxdroid.offlinejobs.OfflineSyncSavingsAccount -import com.mifos.mifosxdroid.online.search.SearchFragment - -/** - * Created by shashankpriyadarshi on 19/06/20. - */ -class DashboardActivity : MifosBaseActivity() { - public override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_dashboard) - - //runJobs(); - replaceFragment(SearchFragment(), false, R.id.container) - } - - private fun runJobs() { - OfflineSyncCenter.schedulePeriodic() - OfflineSyncGroup.schedulePeriodic() - OfflineSyncClient.schedulePeriodic() - OfflineSyncSavingsAccount.schedulePeriodic() - OfflineSyncLoanRepayment.schedulePeriodic() - } -} \ No newline at end of file diff --git a/mifosng-android/src/main/res/layout/activity_center_details.xml b/mifosng-android/src/main/res/layout/activity_center_details.xml old mode 100755 new mode 100644 diff --git a/mifosng-android/src/main/res/layout/activity_center_list.xml b/mifosng-android/src/main/res/layout/activity_center_list.xml old mode 100755 new mode 100644 diff --git a/mifosng-android/src/main/res/layout/activity_dashboard.xml b/mifosng-android/src/main/res/layout/activity_dashboard.xml deleted file mode 100644 index e3f2aa72110..00000000000 --- a/mifosng-android/src/main/res/layout/activity_dashboard.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - diff --git a/mifosng-android/src/main/res/layout/dialog_fragment_sync_centers.xml b/mifosng-android/src/main/res/layout/dialog_fragment_sync_centers.xml deleted file mode 100644 index d691f186989..00000000000 --- a/mifosng-android/src/main/res/layout/dialog_fragment_sync_centers.xml +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -