This repository has been archived by the owner on May 21, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 100
/
NetApp.java
120 lines (101 loc) · 3.81 KB
/
NetApp.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
/**
* This file is part of Simple Last.fm Scrobbler.
*
* https://github.com/tgwizard/sls
*
* Copyright 2011 Simple Last.fm Scrobbler Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.adam.aslfms.service;
import android.util.SparseArray;
import com.adam.aslfms.util.AppSettings;
public enum NetApp {
LASTFM(
0x01, "Last.fm", "http://post.audioscrobbler.com/?hs=true", "",
"https://www.last.fm/join", "https://www.last.fm/user/%1",
"https://ws.audioscrobbler.com/2.0/"), //
LIBREFM(
0x02, "Libre.fm", "http://turtle.libre.fm/?hs=true", "librefm",
"https://libre.fm/", "https://libre.fm/user/%1", "https://libre.fm/2.0/"),
CUSTOM(
0x03, "Gnu-fm server", "[[GNUKEBOX_URL]]/?hs=true", "custom",
"[[NIXTAPE_URL]]", "[[NIXTAPE_URL]]/user/%1", "[[NIXTAPE_URL]]/2.0/");
private final int val;
private final String name;
private final String handshakeUrl;
private final String settingsPrefix;
private final String signUpUrl;
private final String profileUrl;
private final String webserviceUrl;
NetApp(int val, String name, String handshakeUrl,
String settingsPrefix, String signUpUrl, String profileUrl, String webserviceUrl) {
this.val = val;
this.name = name;
this.handshakeUrl = handshakeUrl;
this.settingsPrefix = settingsPrefix;
this.signUpUrl = signUpUrl;
this.profileUrl = profileUrl;
this.webserviceUrl = webserviceUrl;
}
public String getIntentExtraValue() {
return toString();
}
public int getValue() {
return this.val;
}
public String getName() {
return this.name;
}
public String getHandshakeUrl(AppSettings settings) {
return replacePlaceholders( settings, this.handshakeUrl );
}
public String getSettingsPrefix() {
return settingsPrefix;
}
public String getProfileUrl(AppSettings settings) {
return replacePlaceholders(
settings, profileUrl.replaceAll("%1", settings.getUsername(this))
);
}
public String getSignUpUrl(AppSettings settings) {
return replacePlaceholders(
settings, signUpUrl
);
}
public String getWebserviceUrl(AppSettings settings) {
return replacePlaceholders(settings, webserviceUrl);
}
private static SparseArray<NetApp> mValNetAppMap;
static {
mValNetAppMap = new SparseArray<NetApp>();
for (NetApp napp : NetApp.values()) {
mValNetAppMap.put(napp.getValue(), napp);
}
}
public static NetApp fromValue(int value) {
NetApp napp = mValNetAppMap.get(value);
if (napp == null) {
throw new IllegalArgumentException("Got null NetApp in fromValue: "
+ value);
}
return napp;
}
private String replacePlaceholders(AppSettings settings, String value) {
if (settingsPrefix.equals("custom")) {
value = value.replace("[[GNUKEBOX_URL]]", settings.getGnukeboxUrl(this));
value = value.replace("[[NIXTAPE_URL]]", settings.getNixtapeUrl(this));
}
return value;
}
}