]> git.ktnx.net Git - mobile-ledger.git/blob - app/src/main/java/net/ktnx/mobileledger/utils/UrlEncodedFormData.java
rework account list management to be fully asynchronous
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / utils / UrlEncodedFormData.java
1 /*
2  * Copyright © 2019 Damyan Ivanov.
3  * This file is part of MoLe.
4  * MoLe is free software: you can distribute it and/or modify it
5  * under the term of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your opinion), any later version.
8  *
9  * MoLe is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License terms for details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with MoLe. If not, see <https://www.gnu.org/licenses/>.
16  */
17
18 package net.ktnx.mobileledger.utils;
19
20 import androidx.annotation.NonNull;
21
22 import java.io.UnsupportedEncodingException;
23 import java.net.URLEncoder;
24 import java.util.AbstractMap;
25 import java.util.ArrayList;
26 import java.util.List;
27
28 public class UrlEncodedFormData {
29     private List<AbstractMap.SimpleEntry<String,String>> pairs;
30
31     public UrlEncodedFormData() {
32         pairs = new ArrayList<>();
33     }
34
35     public void addPair(String name, String value) {
36         pairs.add(new AbstractMap.SimpleEntry<>(name, value));
37     }
38
39     @NonNull
40     public String toString() {
41         StringBuilder result = new StringBuilder();
42         boolean first = true;
43
44         for (AbstractMap.SimpleEntry<String,String> pair : pairs) {
45             if (first) {
46                 first = false;
47             }
48             else {
49                 result.append('&');
50             }
51
52             try {
53                 result.append(URLEncoder.encode(pair.getKey(), "UTF-8"))
54                       .append('=')
55                       .append(URLEncoder.encode(pair.getValue(), "UTF-8"));
56             } catch (UnsupportedEncodingException e) {
57                 e.printStackTrace();
58             }
59         }
60
61         return result.toString();
62     }
63 }