X-Git-Url: https://git.ktnx.net/?p=mobile-ledger-staging.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fasync%2FConfigWriter.java;fp=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fasync%2FConfigWriter.java;h=0000000000000000000000000000000000000000;hp=f72a2913f05d3b7cb5cac97f3c22b1ab9284bf21;hb=41d543229f3231469247e10ec6c197920c0e8bc4;hpb=833544eb24cb630dc1ce221e4aa3dedb3f6341e3
diff --git a/app/src/main/java/net/ktnx/mobileledger/async/ConfigWriter.java b/app/src/main/java/net/ktnx/mobileledger/async/ConfigWriter.java
deleted file mode 100644
index f72a2913..00000000
--- a/app/src/main/java/net/ktnx/mobileledger/async/ConfigWriter.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Copyright © 2021 Damyan Ivanov.
- * This file is part of MoLe.
- * MoLe is free software: you can distribute it and/or modify it
- * under the term of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your opinion), any later version.
- *
- * MoLe is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License terms for details.
- *
- * You should have received a copy of the GNU General Public License
- * along with MoLe. If not, see .
- */
-
-package net.ktnx.mobileledger.async;
-
-import android.content.Context;
-import android.net.Uri;
-import android.util.JsonWriter;
-
-import net.ktnx.mobileledger.db.Currency;
-import net.ktnx.mobileledger.db.DB;
-import net.ktnx.mobileledger.db.Profile;
-import net.ktnx.mobileledger.db.TemplateAccount;
-import net.ktnx.mobileledger.db.TemplateWithAccounts;
-import net.ktnx.mobileledger.json.API;
-import net.ktnx.mobileledger.model.Data;
-import net.ktnx.mobileledger.utils.Misc;
-
-import java.io.BufferedWriter;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.util.List;
-
-public class ConfigWriter extends ConfigIO {
- private final OnDoneListener onDoneListener;
- private JsonWriter w;
- public ConfigWriter(Context context, Uri uri, OnErrorListener onErrorListener,
- OnDoneListener onDoneListener) throws FileNotFoundException {
- super(context, uri, onErrorListener);
-
- this.onDoneListener = onDoneListener;
- }
- @Override
- protected String getStreamMode() {
- return "w";
- }
- @Override
- protected void initStream() {
- w = new JsonWriter(new BufferedWriter(
- new OutputStreamWriter(new FileOutputStream(pfd.getFileDescriptor()))));
- w.setIndent(" ");
- }
- @Override
- protected void processStream() throws IOException {
- w.beginObject();
- writeCommodities(w);
- writeProfiles(w);
- writeCurrentProfile(w);
- writeConfigTemplates(w);
- w.endObject();
- w.flush();
-
- if (onDoneListener != null)
- Misc.onMainThread(onDoneListener::done);
- }
- private void writeKey(JsonWriter w, String key, String value) throws IOException {
- if (value != null)
- w.name(key)
- .value(value);
- }
- private void writeKey(JsonWriter w, String key, Integer value) throws IOException {
- if (value != null)
- w.name(key)
- .value(value);
- }
- private void writeKey(JsonWriter w, String key, Long value) throws IOException {
- if (value != null)
- w.name(key)
- .value(value);
- }
- private void writeKey(JsonWriter w, String key, Float value) throws IOException {
- if (value != null)
- w.name(key)
- .value(value);
- }
- private void writeKey(JsonWriter w, String key, Boolean value) throws IOException {
- if (value != null)
- w.name(key)
- .value(value);
- }
- private void writeConfigTemplates(JsonWriter w) throws IOException {
- List templates = DB.get()
- .getTemplateDAO()
- .getAllTemplatesWithAccountsSync();
-
- if (templates.isEmpty())
- return;
-
- w.name("templates")
- .beginArray();
- for (TemplateWithAccounts t : templates) {
- w.beginObject();
-
- w.name(Keys.UUID)
- .value(t.header.getUuid());
- w.name(Keys.NAME)
- .value(t.header.getName());
- w.name(Keys.REGEX)
- .value(t.header.getRegularExpression());
- writeKey(w, Keys.TEST_TEXT, t.header.getTestText());
- writeKey(w, Keys.DATE_YEAR, t.header.getDateYear());
- writeKey(w, Keys.DATE_YEAR_GROUP, t.header.getDateYearMatchGroup());
- writeKey(w, Keys.DATE_MONTH, t.header.getDateMonth());
- writeKey(w, Keys.DATE_MONTH_GROUP, t.header.getDateMonthMatchGroup());
- writeKey(w, Keys.DATE_DAY, t.header.getDateDay());
- writeKey(w, Keys.DATE_DAY_GROUP, t.header.getDateDayMatchGroup());
- writeKey(w, Keys.TRANSACTION, t.header.getTransactionDescription());
- writeKey(w, Keys.TRANSACTION_GROUP, t.header.getTransactionDescriptionMatchGroup());
- writeKey(w, Keys.COMMENT, t.header.getTransactionComment());
- writeKey(w, Keys.COMMENT_GROUP, t.header.getTransactionCommentMatchGroup());
- w.name(Keys.IS_FALLBACK)
- .value(t.header.isFallback());
- if (t.accounts.size() > 0) {
- w.name(Keys.ACCOUNTS)
- .beginArray();
- for (TemplateAccount a : t.accounts) {
- w.beginObject();
-
- writeKey(w, Keys.NAME, a.getAccountName());
- writeKey(w, Keys.NAME_GROUP, a.getAccountNameMatchGroup());
- writeKey(w, Keys.COMMENT, a.getAccountComment());
- writeKey(w, Keys.COMMENT_GROUP, a.getAccountCommentMatchGroup());
- writeKey(w, Keys.AMOUNT, a.getAmount());
- writeKey(w, Keys.AMOUNT_GROUP, a.getAmountMatchGroup());
- writeKey(w, Keys.NEGATE_AMOUNT, a.getNegateAmount());
- writeKey(w, Keys.CURRENCY, a.getCurrency());
- writeKey(w, Keys.CURRENCY_GROUP, a.getCurrencyMatchGroup());
-
- w.endObject();
- }
- w.endArray();
- }
-
- w.endObject();
- }
- w.endArray();
- }
- private void writeCommodities(JsonWriter w) throws IOException {
- List list = DB.get()
- .getCurrencyDAO()
- .getAllSync();
- if (list.isEmpty())
- return;
- w.name(Keys.COMMODITIES)
- .beginArray();
- for (Currency c : list) {
- w.beginObject();
- writeKey(w, Keys.NAME, c.getName());
- writeKey(w, Keys.POSITION, c.getPosition());
- writeKey(w, Keys.HAS_GAP, c.getHasGap());
- w.endObject();
- }
- w.endArray();
- }
- private void writeProfiles(JsonWriter w) throws IOException {
- List profiles = DB.get()
- .getProfileDAO()
- .getAllOrderedSync();
-
- if (profiles.isEmpty())
- return;
-
- w.name(Keys.PROFILES)
- .beginArray();
- for (Profile p : profiles) {
- w.beginObject();
-
- w.name(Keys.NAME)
- .value(p.getName());
- w.name(Keys.UUID)
- .value(p.getUuid());
- w.name(Keys.URL)
- .value(p.getUrl());
- w.name(Keys.USE_AUTH)
- .value(p.useAuthentication());
- if (p.useAuthentication()) {
- w.name(Keys.AUTH_USER)
- .value(p.getAuthUser());
- w.name(Keys.AUTH_PASS)
- .value(p.getAuthPassword());
- }
- if (p.getApiVersion() != API.auto.toInt())
- w.name(Keys.API_VER)
- .value(p.getApiVersion());
- w.name(Keys.CAN_POST)
- .value(p.permitPosting());
- if (p.permitPosting()) {
- String defaultCommodity = p.getDefaultCommodity();
- if (!defaultCommodity.isEmpty())
- w.name(Keys.DEFAULT_COMMODITY)
- .value(defaultCommodity);
- w.name(Keys.SHOW_COMMODITY)
- .value(p.getShowCommodityByDefault());
- w.name(Keys.SHOW_COMMENTS)
- .value(p.getShowCommentsByDefault());
- w.name(Keys.FUTURE_DATES)
- .value(p.getFutureDates());
- w.name(Keys.PREF_ACCOUNT)
- .value(p.getPreferredAccountsFilter());
- }
- w.name(Keys.COLOUR)
- .value(p.getTheme());
-
- w.endObject();
- }
- w.endArray();
- }
- private void writeCurrentProfile(JsonWriter w) throws IOException {
- Profile currentProfile = Data.getProfile();
- if (currentProfile == null)
- return;
-
- w.name(Keys.CURRENT_PROFILE)
- .value(currentProfile.getUuid());
- }
-
- abstract static public class OnDoneListener {
- public abstract void done();
- }
-}