Skip to content

Commit de0b25d

Browse files
authored
Version 1.0.1 (#1)
* workaround for cdn caching sitemaps; compact OSS licenses list; version update * custom OSS adapter; Triple-T directory structure * pump images cache to 64 Mb
1 parent f13a216 commit de0b25d

File tree

11 files changed

+71
-13
lines changed

11 files changed

+71
-13
lines changed

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ android {
77
applicationId "io.github.chiver"
88
minSdkVersion 24
99
targetSdkVersion 28
10-
versionCode 100
11-
versionName "1.0.0"
10+
versionCode 101
11+
versionName "1.0.1"
1212
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1313
}
1414
buildTypes {

app/src/main/java/io/github/chiver/Chiver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public Chiver() {
1818
public void onCreate() {
1919
super.onCreate();
2020
try {
21-
simpleDiskCache = SimpleDiskCache.open(getExternalCacheDir(), 1, 32 * 1024 * 1024);
21+
simpleDiskCache = SimpleDiskCache.open(getExternalCacheDir(), 1, 64 * 1024 * 1024);
2222
} catch (IOException e) {
2323
throw new RuntimeException(e);
2424
}

app/src/main/java/io/github/chiver/Constants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
public class Constants {
44
private static final String TC = "thechive";
55
private static final String TC_BASE_URL = "https://" + TC + ".com/";
6-
static final String TC_SITEMAP_PATTERN = TC_BASE_URL + "sitemap.xml?yyyy=%d&mm=%d&dd=%d";
6+
static final String TC_SITEMAP_PATTERN = TC_BASE_URL + "sitemap.xml?yyyy=%d&mm=%d&dd=%d&_rnd=%s";
77
public static final String TAG = Chiver.class.getSimpleName();
88

99
private Constants() {

app/src/main/java/io/github/chiver/MainActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ private void loadGalleries() {
8787
int month = utc.get(Calendar.MONTH) + 1;//0 based
8888
int day = utc.get(Calendar.DAY_OF_MONTH);
8989

90-
StringRequest stringRequest = new StringRequest(String.format(Locale.getDefault(), Constants.TC_SITEMAP_PATTERN, year, month, day), response -> {
90+
StringRequest stringRequest = new StringRequest(String.format(Locale.getDefault(), Constants.TC_SITEMAP_PATTERN, year, month, day, String.valueOf(Math.random())), response -> {
9191

9292
SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
9393
try {

app/src/main/java/io/github/chiver/OSSActivity.java

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,24 @@
66
import android.view.Menu;
77
import android.view.View;
88
import android.widget.AdapterView;
9-
import android.widget.ArrayAdapter;
109
import android.widget.ListView;
1110
import android.widget.Toast;
1211

1312
import java.io.BufferedReader;
1413
import java.io.IOException;
1514
import java.io.InputStream;
1615
import java.io.InputStreamReader;
16+
import java.util.HashMap;
17+
import java.util.Iterator;
1718
import java.util.LinkedList;
1819
import java.util.List;
20+
import java.util.Map;
21+
22+
import io.github.chiver.adapter.LicenseAdapter;
1923

2024
public class OSSActivity extends BaseActivity {
2125

22-
private final List<String> items = new LinkedList<>();
23-
private final List<String> links = new LinkedList<>();
26+
private final Map<String, List<String>> linksToItems = new HashMap<>();
2427

2528
public OSSActivity() {
2629
super(false);
@@ -32,6 +35,9 @@ protected void _onCreate(Bundle savedInstanceState) {
3235
getSupportActionBar().setTitle(R.string.oss_licenses);
3336
ListView lvLicenses = findViewById(R.id.lv_licenses);
3437

38+
final List<String> links = new LinkedList<>();
39+
final List<String> items = new LinkedList<>();
40+
3541
try (InputStream is = getResources().openRawResource(R.raw.third_party_license_metadata);
3642
InputStreamReader isr = new InputStreamReader(is);
3743
BufferedReader reader = new BufferedReader(isr)) {
@@ -52,8 +58,15 @@ protected void _onCreate(Bundle savedInstanceState) {
5258
onLoadingError();
5359
}
5460

55-
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
56-
android.R.layout.simple_list_item_1, android.R.id.text1, items);
61+
for (Iterator<String> itemsIterator = items.iterator(), linksIterator = links.iterator(); itemsIterator.hasNext() && linksIterator.hasNext(); ) {
62+
String item = itemsIterator.next();
63+
String link = linksIterator.next();
64+
65+
List<String> itemsList = linksToItems.computeIfAbsent(link, k -> new LinkedList<>());
66+
itemsList.add(item);
67+
}
68+
69+
LicenseAdapter adapter = new LicenseAdapter(this, linksToItems);
5770

5871
lvLicenses.setAdapter(adapter);
5972

@@ -62,13 +75,12 @@ protected void _onCreate(Bundle savedInstanceState) {
6275

6376
private void onLoadingError() {
6477
Toast.makeText(this, R.string.loadingError, Toast.LENGTH_SHORT).show();
65-
items.clear();
66-
links.clear();
78+
linksToItems.clear();
6779
}
6880

6981
@SuppressWarnings("unused")
7082
private void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
71-
String link = links.get(position);
83+
String link = adapterView.getAdapter().getItem(position).toString();
7284
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(link)));
7385
}
7486

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package io.github.chiver.adapter;
2+
3+
import android.content.Context;
4+
import android.view.View;
5+
import android.view.ViewGroup;
6+
import android.widget.ArrayAdapter;
7+
import android.widget.TextView;
8+
9+
import java.util.ArrayList;
10+
import java.util.Collections;
11+
import java.util.List;
12+
import java.util.Map;
13+
import java.util.stream.Collectors;
14+
15+
import androidx.annotation.NonNull;
16+
import androidx.annotation.Nullable;
17+
18+
public class LicenseAdapter extends ArrayAdapter<String> {
19+
20+
private final Map<String, List<String>> linksToItems;
21+
22+
public LicenseAdapter(@NonNull Context context, Map<String, List<String>> linksToItems) {
23+
super(context, android.R.layout.simple_list_item_2, android.R.id.text1, new ArrayList<>(linksToItems.keySet()));
24+
this.linksToItems = linksToItems;
25+
}
26+
27+
@NonNull
28+
@Override
29+
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
30+
View view = super.getView(position, convertView, parent);
31+
32+
String link = getItem(position);
33+
34+
TextView text2 = view.findViewById(android.R.id.text2);
35+
//noinspection ConstantConditions,SimplifyStreamApiCallChains
36+
text2.setText(linksToItems.getOrDefault(link, Collections.emptyList()).stream().collect(Collectors.joining(", ")));
37+
38+
return view;
39+
}
40+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
en-US
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Chiver is a minimalistic theCHIVE galleries browser.
2+
3+
The app can display images and animated GIFs; it does not display videos (but you can open the gallery in external browser).

app/src/main/ic_launcher-web.png renamed to app/src/main/play/listings/en-US/graphics/icon/ic_launcher-web.png

File renamed without changes.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Minimalistic theCHIVE galleries browser

0 commit comments

Comments
 (0)