More suggested changes

Julien LepillerSat Jun 25 23:19:43+0200 2022

29982fe

More suggested changes

app/src/main/java/eu/lepiller/nani/AboutActivity.java

44
import android.net.Uri;
55
import androidx.appcompat.app.AppCompatActivity;
66
import android.os.Bundle;
7-
import android.view.View;
87
import android.widget.Button;
98
109
public class AboutActivity extends AppCompatActivity {

app/src/main/java/eu/lepiller/nani/DictionaryDownloadActivity.java

22
33
import android.content.Intent;
44
import android.graphics.drawable.Drawable;
5-
import android.os.Build;
65
76
import androidx.appcompat.app.AppCompatActivity;
87
import androidx.core.content.res.ResourcesCompat;

app/src/main/java/eu/lepiller/nani/HelpPitchActivity.java

55
import android.content.Intent;
66
import android.net.Uri;
77
import android.os.Bundle;
8-
import android.view.View;
98
import android.widget.Button;
109
1110
public class HelpPitchActivity extends AppCompatActivity {

app/src/main/java/eu/lepiller/nani/ResultPagerAdapter.java

11
package eu.lepiller.nani;
22
33
import android.annotation.SuppressLint;
4-
import android.app.NotificationManager;
54
import android.content.Context;
65
import android.content.Intent;
76
import android.text.Html;

app/src/main/java/eu/lepiller/nani/dictionary/DictionaryFactory.java

2525
import eu.lepiller.nani.result.Result;
2626
2727
public class DictionaryFactory {
28-
    private static DictionaryFactory instance;
28+
    private static boolean initialized = false;
29+
2930
    private static ArrayList<Dictionary> dictionaries;
3031
    private static File cacheDir;
3132
    private static File listFile;

3637
    private static final int LIST_PARSER_DESCRIPTION = 2;
3738
    private static final String TAG = "FACTORY";
3839
39-
    private DictionaryFactory(Context context) {
40+
    private DictionaryFactory() {}
41+
42+
    private static void initialize(Context context) {
4043
        cacheDir = context.getCacheDir();
4144
        listFile = new File(cacheDir + "/list");
4245
        languages = new ArrayList<>();

5760
        languages.add("en");
5861
        Log.d(TAG, languages.toString());
5962
        updatePackageList();
63+
64+
        initialized = true;
6065
    }
6166
6267
    private static String chooseLanguage(Map<String, StringBuilder> data) {

219224
    }
220225
221226
    public static void prepare(Context context) {
222-
        if(instance == null)
223-
            instance = new DictionaryFactory(context);
227+
        if(!initialized)
228+
            initialize(context);
224229
    }
225230
226231
    public static Dictionary getByName(Context context, String name) {

235240
    }
236241
237242
    public static ArrayList<Result> search(String text) throws DictionaryException {
238-
        if(instance == null)
243+
        if(!initialized)
239244
            throw new NoDictionaryException();
240245
241246
        int available = 0;

273278
    }
274279
275280
    public static KanjiResult searchKanji(String kanji) throws DictionaryException {
276-
        if(instance == null)
281+
        if(!initialized)
277282
            throw new NoDictionaryException();
278283
279284
        Stack<KanjiResult> results = new Stack<>();

314319
    }
315320
316321
    public static ArrayList<Dictionary> getDictionaries(Context context) {
317-
        if(instance == null)
318-
            instance = new DictionaryFactory(context);
322+
        if(!initialized)
323+
            initialize(context);
319324
320325
        return dictionaries;
321326
    }
322327
323328
    public static ArrayList<Dictionary> getDictionaries(Context context, String langFilter) {
324-
        if(instance == null)
325-
            instance = new DictionaryFactory(context);
329+
        if(!initialized)
330+
            initialize(context);
326331
327332
        if(langFilter.compareTo("") == 0)
328333
            return dictionaries;

336341
    }
337342
338343
    public static RadicalDict getRadicalDictionary(Context context) throws NoDictionaryException {
339-
        if(instance == null)
340-
            instance = new DictionaryFactory(context);
344+
        if(!initialized)
345+
            initialize(context);
341346
342347
        for(Dictionary d: dictionaries) {
343348
            if(d.isDownloaded() && d instanceof RadicalDict) {

app/src/main/java/eu/lepiller/nani/result/Result.java

158158
        MojiConverter converter = new MojiConverter();
159159
        for(int i=0; i<txt.length(); i++) {
160160
            Character.UnicodeBlock b2 = Character.UnicodeBlock.of(txt.charAt(i));
161-
            if(b == b2) {
162-
                // if the headwork contains katakana, convert it to hiragana to match pronunciation
163-
                // better.
164-
                current.append(txt.charAt(i));
165-
            } else {
161+
            if(b != b2) {
166162
                String s = current.toString();
167163
                if(!s.isEmpty())
168164
                    portions.add(s);
169165
                current = new StringBuilder();
170-
                current.append(txt.charAt(i));
171166
            }
167+
            current.append(txt.charAt(i));
172168
173169
            b = b2;
174170
        }

260256
        // merge senses
261257
        senses.addAll(other.senses);
262258
    }
263-
264-
    public void addPitch(String kanji, String pitch) {
265-
        for(Reading r: readings) {
266-
            if(r.kanjis == null || r.kanjis.size() == 0 || contains(r.kanjis, kanji)) {
267-
                r.addPitch(pitch);
268-
            }
269-
        }
270-
    }
271-
272-
    private boolean contains(ArrayList<String> l, String s) {
273-
        for(String c: l) {
274-
            if(c.compareTo(s) == 0)
275-
                return true;
276-
        }
277-
        return false;
278-
    }
279259
}