mirror of
https://github.com/gsantner/dandelion
synced 2024-11-22 04:12:08 +01:00
Rework app to use new DiasporaPod class
This commit is contained in:
parent
654a00d647
commit
c550c2474e
14 changed files with 156 additions and 70 deletions
|
@ -28,6 +28,8 @@ import android.webkit.CookieSyncManager;
|
||||||
import android.webkit.WebView;
|
import android.webkit.WebView;
|
||||||
|
|
||||||
import com.github.dfa.diaspora_android.data.AppSettings;
|
import com.github.dfa.diaspora_android.data.AppSettings;
|
||||||
|
import com.github.dfa.diaspora_android.data.DiasporaPodList;
|
||||||
|
import com.github.dfa.diaspora_android.data.DiasporaPodList.DiasporaPod;
|
||||||
import com.github.dfa.diaspora_android.data.PodUserProfile;
|
import com.github.dfa.diaspora_android.data.PodUserProfile;
|
||||||
import com.github.dfa.diaspora_android.util.AppLog;
|
import com.github.dfa.diaspora_android.util.AppLog;
|
||||||
import com.github.dfa.diaspora_android.util.AvatarImageLoader;
|
import com.github.dfa.diaspora_android.util.AvatarImageLoader;
|
||||||
|
|
|
@ -236,7 +236,9 @@ public class AboutActivity extends AppCompatActivity {
|
||||||
|
|
||||||
osVersion.setText(getString(R.string.fragment_debug__android_version, Build.VERSION.RELEASE));
|
osVersion.setText(getString(R.string.fragment_debug__android_version, Build.VERSION.RELEASE));
|
||||||
deviceName.setText(getString(R.string.fragment_debug__device_name, Build.MANUFACTURER + " " + Build.MODEL));
|
deviceName.setText(getString(R.string.fragment_debug__device_name, Build.MANUFACTURER + " " + Build.MODEL));
|
||||||
podDomain.setText(getString(R.string.fragment_debug__pod_domain, settings.getPodDomain()));
|
if (settings.getPod() != null) {
|
||||||
|
podDomain.setText(getString(R.string.fragment_debug__pod_domain, settings.getPod().getName()));
|
||||||
|
}
|
||||||
|
|
||||||
} catch (PackageManager.NameNotFoundException e) {
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
|
@ -60,6 +60,7 @@ import android.widget.Toast;
|
||||||
import com.github.dfa.diaspora_android.App;
|
import com.github.dfa.diaspora_android.App;
|
||||||
import com.github.dfa.diaspora_android.R;
|
import com.github.dfa.diaspora_android.R;
|
||||||
import com.github.dfa.diaspora_android.data.AppSettings;
|
import com.github.dfa.diaspora_android.data.AppSettings;
|
||||||
|
import com.github.dfa.diaspora_android.data.DiasporaPodList;
|
||||||
import com.github.dfa.diaspora_android.data.PodUserProfile;
|
import com.github.dfa.diaspora_android.data.PodUserProfile;
|
||||||
import com.github.dfa.diaspora_android.fragment.BrowserFragment;
|
import com.github.dfa.diaspora_android.fragment.BrowserFragment;
|
||||||
import com.github.dfa.diaspora_android.fragment.CustomFragment;
|
import com.github.dfa.diaspora_android.fragment.CustomFragment;
|
||||||
|
@ -178,7 +179,7 @@ public class MainActivity extends AppCompatActivity
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if(!appSettings.hasPodDomain()) {
|
if(!appSettings.hasPod()) {
|
||||||
AppLog.d(this, "We have no pod. Show PodSelectionFragment");
|
AppLog.d(this, "We have no pod. Show PodSelectionFragment");
|
||||||
showFragment(getFragment(PodSelectionFragment.TAG));
|
showFragment(getFragment(PodSelectionFragment.TAG));
|
||||||
} else {
|
} else {
|
||||||
|
@ -324,8 +325,8 @@ public class MainActivity extends AppCompatActivity
|
||||||
if (!appSettings.getName().equals("")) {
|
if (!appSettings.getName().equals("")) {
|
||||||
navheaderTitle.setText(appSettings.getName());
|
navheaderTitle.setText(appSettings.getName());
|
||||||
}
|
}
|
||||||
if (!appSettings.getPodDomain().equals("")) {
|
if (appSettings.getPod() != null) {
|
||||||
navheaderDescription.setText(appSettings.getPodDomain());
|
navheaderDescription.setText(appSettings.getPod().getName());
|
||||||
}
|
}
|
||||||
String avatarUrl = appSettings.getAvatarUrl();
|
String avatarUrl = appSettings.getAvatarUrl();
|
||||||
if (!avatarUrl.equals("")) {
|
if (!avatarUrl.equals("")) {
|
||||||
|
@ -356,6 +357,8 @@ public class MainActivity extends AppCompatActivity
|
||||||
navMenu.findItem(R.id.nav_mentions).setVisible(appSettings.isVisibleInNavMentions());
|
navMenu.findItem(R.id.nav_mentions).setVisible(appSettings.isVisibleInNavMentions());
|
||||||
navMenu.findItem(R.id.nav_profile).setVisible(appSettings.isVisibleInNavProfile());
|
navMenu.findItem(R.id.nav_profile).setVisible(appSettings.isVisibleInNavProfile());
|
||||||
navMenu.findItem(R.id.nav_public).setVisible(appSettings.isVisibleInNavPublic_activities());
|
navMenu.findItem(R.id.nav_public).setVisible(appSettings.isVisibleInNavPublic_activities());
|
||||||
|
// Hide all pod related options if no pod is selected
|
||||||
|
navMenu.setGroupVisible(navMenu.findItem(R.id.nav_exit).getGroupId(), appSettings.getPod() != null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@OnClick(R.id.main__topbar)
|
@OnClick(R.id.main__topbar)
|
||||||
|
@ -397,6 +400,7 @@ public class MainActivity extends AppCompatActivity
|
||||||
}
|
}
|
||||||
} else if (ACTION_CHANGE_ACCOUNT.equals(action)) {
|
} else if (ACTION_CHANGE_ACCOUNT.equals(action)) {
|
||||||
AppLog.v(this, "Reset pod data and show PodSelectionFragment");
|
AppLog.v(this, "Reset pod data and show PodSelectionFragment");
|
||||||
|
appSettings.setPod(null);
|
||||||
app.resetPodData(((DiasporaStreamFragment) getFragment(DiasporaStreamFragment.TAG)).getWebView());
|
app.resetPodData(((DiasporaStreamFragment) getFragment(DiasporaStreamFragment.TAG)).getWebView());
|
||||||
showFragment(getFragment(PodSelectionFragment.TAG));
|
showFragment(getFragment(PodSelectionFragment.TAG));
|
||||||
} else if (ACTION_CLEAR_CACHE.equals(action)) {
|
} else if (ACTION_CLEAR_CACHE.equals(action)) {
|
||||||
|
|
|
@ -35,7 +35,10 @@ import android.view.MenuItem;
|
||||||
import com.github.dfa.diaspora_android.App;
|
import com.github.dfa.diaspora_android.App;
|
||||||
import com.github.dfa.diaspora_android.R;
|
import com.github.dfa.diaspora_android.R;
|
||||||
import com.github.dfa.diaspora_android.data.AppSettings;
|
import com.github.dfa.diaspora_android.data.AppSettings;
|
||||||
|
import com.github.dfa.diaspora_android.data.DiasporaPodList;
|
||||||
|
import com.github.dfa.diaspora_android.data.DiasporaPodList.DiasporaPod;
|
||||||
import com.github.dfa.diaspora_android.util.AppLog;
|
import com.github.dfa.diaspora_android.util.AppLog;
|
||||||
|
import com.github.dfa.diaspora_android.util.DiasporaUrlHelper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author vanitas
|
* @author vanitas
|
||||||
|
@ -124,21 +127,22 @@ public class SettingsActivity extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) {
|
public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) {
|
||||||
Intent intent = new Intent(getActivity(), MainActivity.class);
|
Intent intent = new Intent(getActivity(), MainActivity.class);
|
||||||
String podDomain = ((App) getActivity().getApplication()).getSettings().getPodDomain();
|
App app = ((App) getActivity().getApplication());
|
||||||
|
DiasporaUrlHelper diasporaUrlHelper = new DiasporaUrlHelper(app.getSettings());
|
||||||
switch (preference.getTitleRes()) {
|
switch (preference.getTitleRes()) {
|
||||||
case R.string.pref_title__personal_settings: {
|
case R.string.pref_title__personal_settings: {
|
||||||
intent.setAction(MainActivity.ACTION_OPEN_URL);
|
intent.setAction(MainActivity.ACTION_OPEN_URL);
|
||||||
intent.putExtra(MainActivity.URL_MESSAGE, "https://" + podDomain + "/user/edit");
|
intent.putExtra(MainActivity.URL_MESSAGE, diasporaUrlHelper.getPersonalSettingsUrl());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case R.string.pref_title__manage_tags: {
|
case R.string.pref_title__manage_tags: {
|
||||||
intent.setAction(MainActivity.ACTION_OPEN_URL);
|
intent.setAction(MainActivity.ACTION_OPEN_URL);
|
||||||
intent.putExtra(MainActivity.URL_MESSAGE, "https://" + podDomain + "/tag_followings/manage");
|
intent.putExtra(MainActivity.URL_MESSAGE, diasporaUrlHelper.getManageTagsUrl());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case R.string.pref_title__manage_contacts: {
|
case R.string.pref_title__manage_contacts: {
|
||||||
intent.setAction(MainActivity.ACTION_OPEN_URL);
|
intent.setAction(MainActivity.ACTION_OPEN_URL);
|
||||||
intent.putExtra(MainActivity.URL_MESSAGE, "https://" + podDomain + "/contacts");
|
intent.putExtra(MainActivity.URL_MESSAGE, diasporaUrlHelper.getManageContactsUrl());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case R.string.pref_title__change_account: {
|
case R.string.pref_title__change_account: {
|
||||||
|
|
|
@ -23,6 +23,11 @@ import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
|
||||||
import com.github.dfa.diaspora_android.R;
|
import com.github.dfa.diaspora_android.R;
|
||||||
|
import com.github.dfa.diaspora_android.data.DiasporaPodList.DiasporaPod;
|
||||||
|
import com.github.dfa.diaspora_android.data.DiasporaPodList.DiasporaPod.DiasporaPodUrl;
|
||||||
|
|
||||||
|
import org.json.JSONException;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Settings
|
* Settings
|
||||||
|
@ -32,6 +37,7 @@ public class AppSettings {
|
||||||
private final SharedPreferences prefApp;
|
private final SharedPreferences prefApp;
|
||||||
private final SharedPreferences prefPod;
|
private final SharedPreferences prefPod;
|
||||||
private final Context context;
|
private final Context context;
|
||||||
|
private DiasporaPod currentPod0Cached;
|
||||||
|
|
||||||
public AppSettings(Context context) {
|
public AppSettings(Context context) {
|
||||||
this.context = context.getApplicationContext();
|
this.context = context.getApplicationContext();
|
||||||
|
@ -138,24 +144,44 @@ public class AppSettings {
|
||||||
setString(prefPod, R.string.pref_key__podprofile_name, name);
|
setString(prefPod, R.string.pref_key__podprofile_name, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPodDomain() {
|
|
||||||
return getString(prefPod, R.string.pref_key__poddomain, "");
|
// TODO: Remove legacy at some time ;)
|
||||||
|
public void upgradeLegacyPoddomain() {
|
||||||
|
String legacy = getString(prefPod, R.string.pref_key__poddomain_legacy, "");
|
||||||
|
if (!legacy.equals("")) {
|
||||||
|
DiasporaPod pod = new DiasporaPod();
|
||||||
|
pod.setName(legacy);
|
||||||
|
pod.getPodUrls().add(new DiasporaPodUrl().setHost(legacy));
|
||||||
|
setPod(pod);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPodDomain(String podDomain) {
|
public DiasporaPod getPod() {
|
||||||
setString(prefPod, R.string.pref_key__poddomain, podDomain);
|
upgradeLegacyPoddomain();
|
||||||
|
if (currentPod0Cached == null) {
|
||||||
|
String pref = getString(prefPod, R.string.pref_key__current_pod_0, "");
|
||||||
|
|
||||||
|
try {
|
||||||
|
currentPod0Cached = new DiasporaPod().fromJson(new JSONObject(pref));
|
||||||
|
} catch (JSONException e) {
|
||||||
|
currentPod0Cached = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return currentPod0Cached;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasPodDomain() {
|
public void setPod(DiasporaPod pod) {
|
||||||
return !getString(prefPod, R.string.pref_key__poddomain, "").equals("");
|
try {
|
||||||
|
setString(prefPod, R.string.pref_key__current_pod_0,
|
||||||
|
pod == null ? null : pod.toJson().toString());
|
||||||
|
currentPod0Cached = pod;
|
||||||
|
} catch (JSONException ignored) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String[] getPreviousPodlist() {
|
public boolean hasPod() {
|
||||||
return getStringArray(prefApp, R.string.pref_key__previous_podlist);
|
upgradeLegacyPoddomain();
|
||||||
}
|
return !getString(prefPod, R.string.pref_key__current_pod_0, "").equals("");
|
||||||
|
|
||||||
public void setPreviousPodlist(String[] pods) {
|
|
||||||
setStringArray(prefApp, R.string.pref_key__previous_podlist, pods);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPodAspects(PodAspect[] aspects) {
|
public void setPodAspects(PodAspect[] aspects) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.github.dfa.diaspora_android.data;
|
package com.github.dfa.diaspora_android.data;
|
||||||
|
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -287,6 +289,7 @@ public class DiasporaPodList implements Iterable<DiasporaPodList.DiasporaPod>, S
|
||||||
/*
|
/*
|
||||||
* Getter & Setter
|
* Getter & Setter
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public List<DiasporaPodUrl> getPodUrls() {
|
public List<DiasporaPodUrl> getPodUrls() {
|
||||||
return podUrls;
|
return podUrls;
|
||||||
}
|
}
|
||||||
|
@ -296,6 +299,7 @@ public class DiasporaPodList implements Iterable<DiasporaPodList.DiasporaPod>, S
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
public List<String> getMainLangs() {
|
public List<String> getMainLangs() {
|
||||||
return mainLangs;
|
return mainLangs;
|
||||||
}
|
}
|
||||||
|
@ -312,6 +316,16 @@ public class DiasporaPodList implements Iterable<DiasporaPodList.DiasporaPod>, S
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the first DiasporaPodUrl in the list
|
||||||
|
*/
|
||||||
|
public DiasporaPodUrl getPodUrl(){
|
||||||
|
if(podUrls.size() > 0){
|
||||||
|
return podUrls.get(0);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public DiasporaPod appendPodUrls(DiasporaPodUrl... values) {
|
public DiasporaPod appendPodUrls(DiasporaPodUrl... values) {
|
||||||
for (DiasporaPodUrl value : values) {
|
for (DiasporaPodUrl value : values) {
|
||||||
this.podUrls.add(value);
|
this.podUrls.add(value);
|
||||||
|
|
|
@ -70,8 +70,8 @@ public class PodAspect {
|
||||||
public String toHtmlLink(final App app) {
|
public String toHtmlLink(final App app) {
|
||||||
final AppSettings appSettings = app.getSettings();
|
final AppSettings appSettings = app.getSettings();
|
||||||
return String.format(Locale.getDefault(),
|
return String.format(Locale.getDefault(),
|
||||||
"<a href='https://%s/aspects?a_ids[]=%d' style='color: #000000; text-decoration: none;'>%s</a>",
|
"<a href='%s/aspects?a_ids[]=%d' style='color: #000000; text-decoration: none;'>%s</a>",
|
||||||
appSettings.getPodDomain(), id, name);
|
appSettings.getPod().getPodUrl().getBaseUrl(), id, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -208,7 +208,7 @@ public class PodSelectionFragment extends CustomFragment implements SearchView.O
|
||||||
System.out.println(accepted + ": " + pod.toString());
|
System.out.println(accepted + ": " + pod.toString());
|
||||||
if (accepted) {
|
if (accepted) {
|
||||||
//TODO: Rework for new pod url system ;)
|
//TODO: Rework for new pod url system ;)
|
||||||
app.getSettings().setPodDomain(pod.getPodUrls().get(0).getHost());
|
app.getSettings().setPod(pod);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
|
|
|
@ -21,6 +21,8 @@ package com.github.dfa.diaspora_android.util;
|
||||||
import com.github.dfa.diaspora_android.App;
|
import com.github.dfa.diaspora_android.App;
|
||||||
import com.github.dfa.diaspora_android.R;
|
import com.github.dfa.diaspora_android.R;
|
||||||
import com.github.dfa.diaspora_android.data.AppSettings;
|
import com.github.dfa.diaspora_android.data.AppSettings;
|
||||||
|
import com.github.dfa.diaspora_android.data.DiasporaPodList;
|
||||||
|
import com.github.dfa.diaspora_android.data.DiasporaPodList.DiasporaPod;
|
||||||
import com.github.dfa.diaspora_android.data.PodAspect;
|
import com.github.dfa.diaspora_android.data.PodAspect;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -31,7 +33,6 @@ import com.github.dfa.diaspora_android.data.PodAspect;
|
||||||
public class DiasporaUrlHelper {
|
public class DiasporaUrlHelper {
|
||||||
private final AppSettings settings;
|
private final AppSettings settings;
|
||||||
|
|
||||||
public static final String HTTPS = "https://";
|
|
||||||
public static final String SUBURL_NOTIFICATIONS = "/notifications";
|
public static final String SUBURL_NOTIFICATIONS = "/notifications";
|
||||||
public static final String SUBURL_POSTS = "/posts/";
|
public static final String SUBURL_POSTS = "/posts/";
|
||||||
public static final String SUBURL_STREAM = "/stream";
|
public static final String SUBURL_STREAM = "/stream";
|
||||||
|
@ -49,6 +50,9 @@ public class DiasporaUrlHelper {
|
||||||
public static final String SUBURL_FOLOWED_TAGS = "/followed_tags";
|
public static final String SUBURL_FOLOWED_TAGS = "/followed_tags";
|
||||||
public static final String SUBURL_ASPECTS = "/aspects";
|
public static final String SUBURL_ASPECTS = "/aspects";
|
||||||
public static final String SUBURL_STATISTICS = "/statistics";
|
public static final String SUBURL_STATISTICS = "/statistics";
|
||||||
|
public static final String SUBURL_PERSONAL_SETTINGS = "/user/edit";
|
||||||
|
public static final String SUBURL_MANAGE_TAGS = "/tag_followings/manage";
|
||||||
|
public static final String SUBURL_MANAGE_CONTACTS = "/contacts";
|
||||||
public static final String URL_BLANK = "about:blank";
|
public static final String URL_BLANK = "about:blank";
|
||||||
|
|
||||||
public DiasporaUrlHelper(AppSettings settings) {
|
public DiasporaUrlHelper(AppSettings settings) {
|
||||||
|
@ -56,17 +60,22 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url of the pod set in AppSettings.
|
* Return a url of the pod set in AppSettings.
|
||||||
* Eg. https://pod.geraspora.de
|
* Eg. https://pod.geraspora.de
|
||||||
*
|
*
|
||||||
* @return https://(pod-domain.tld)
|
* @return https://(pod-domain.tld)
|
||||||
*/
|
*/
|
||||||
public String getPodUrl() {
|
public String getPodUrl() {
|
||||||
return HTTPS + settings.getPodDomain();
|
DiasporaPod pod = settings.getPod();
|
||||||
|
if (pod != null){
|
||||||
|
return settings.getPod().getPodUrl().getBaseUrl();
|
||||||
|
}
|
||||||
|
return "http://127.0.0.1";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url that points to the stream of the configured diaspora account
|
* Return a url that points to the stream of the configured diaspora account
|
||||||
*
|
*
|
||||||
* @return https://(pod-domain.tld)/stream
|
* @return https://(pod-domain.tld)/stream
|
||||||
*/
|
*/
|
||||||
|
@ -75,7 +84,7 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url that points to the notifications feed of the configured diaspora account
|
* Return a url that points to the notifications feed of the configured diaspora account
|
||||||
*
|
*
|
||||||
* @return https://(pod-domain.tld)/notifications
|
* @return https://(pod-domain.tld)/notifications
|
||||||
*/
|
*/
|
||||||
|
@ -84,7 +93,7 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a https url that points to the post with the id postId
|
* Returns a url that points to the post with the id postId
|
||||||
*
|
*
|
||||||
* @return https://(pod-domain.tld)/posts/(postId)
|
* @return https://(pod-domain.tld)/posts/(postId)
|
||||||
*/
|
*/
|
||||||
|
@ -93,7 +102,7 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url that points to the conversations overview of the registered diaspora account
|
* Return a url that points to the conversations overview of the registered diaspora account
|
||||||
*
|
*
|
||||||
* @return https://(pod-domain.tld)/conversations
|
* @return https://(pod-domain.tld)/conversations
|
||||||
*/
|
*/
|
||||||
|
@ -102,7 +111,7 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url that points to the new-post form that lets the user create a new post
|
* Return a url that points to the new-post form that lets the user create a new post
|
||||||
*
|
*
|
||||||
* @return https://(pod-domain.tld)/status_messages/new
|
* @return https://(pod-domain.tld)/status_messages/new
|
||||||
*/
|
*/
|
||||||
|
@ -111,7 +120,7 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url that shows the profile of the currently registered diaspora account
|
* Return a url that shows the profile of the currently registered diaspora account
|
||||||
*
|
*
|
||||||
* @return https://(pod-domain.tld)/people/(profileId)
|
* @return https://(pod-domain.tld)/people/(profileId)
|
||||||
*/
|
*/
|
||||||
|
@ -120,7 +129,7 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url that shows the profile of the user with user id profileId
|
* Return a url that shows the profile of the user with user id profileId
|
||||||
*
|
*
|
||||||
* @param profileId Id of the profile to be shown
|
* @param profileId Id of the profile to be shown
|
||||||
* @return https://(pod-domain.tld)/people/(profileId)
|
* @return https://(pod-domain.tld)/people/(profileId)
|
||||||
|
@ -130,7 +139,7 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url that points to the activities feed of the currently registered diaspora account
|
* Return a url that points to the activities feed of the currently registered diaspora account
|
||||||
*
|
*
|
||||||
* @return https://(pod-domain.tld)/activity
|
* @return https://(pod-domain.tld)/activity
|
||||||
*/
|
*/
|
||||||
|
@ -139,7 +148,7 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url that points to the feed of posts that were liked by the currently registered diaspora account
|
* Return a url that points to the feed of posts that were liked by the currently registered diaspora account
|
||||||
*
|
*
|
||||||
* @return https://(pod-domain.tld)/liked
|
* @return https://(pod-domain.tld)/liked
|
||||||
*/
|
*/
|
||||||
|
@ -148,7 +157,7 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url that points to the stream of posts that were commented by the currently registered diaspora account
|
* Return a url that points to the stream of posts that were commented by the currently registered diaspora account
|
||||||
*
|
*
|
||||||
* @return https://(pod-domain.tld)/commented
|
* @return https://(pod-domain.tld)/commented
|
||||||
*/
|
*/
|
||||||
|
@ -157,7 +166,7 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url that points to the stream of posts in which the currently registered diaspora account has been mentioned in
|
* Return a url that points to the stream of posts in which the currently registered diaspora account has been mentioned in
|
||||||
*
|
*
|
||||||
* @return https://(pod-domain.tld)/mentions
|
* @return https://(pod-domain.tld)/mentions
|
||||||
*/
|
*/
|
||||||
|
@ -166,7 +175,7 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url that points to the stream of public posts
|
* Return a url that points to the stream of public posts
|
||||||
*
|
*
|
||||||
* @return https://(pod-domain.tld)/public
|
* @return https://(pod-domain.tld)/public
|
||||||
*/
|
*/
|
||||||
|
@ -175,7 +184,7 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url that toggles between mobile and desktop view when opened
|
* Return a url that toggles between mobile and desktop view when opened
|
||||||
*
|
*
|
||||||
* @return https://(pod-domain.tld)/mobile/toggle
|
* @return https://(pod-domain.tld)/mobile/toggle
|
||||||
*/
|
*/
|
||||||
|
@ -184,7 +193,7 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url that queries posts for the given hashtag query
|
* Return a url that queries posts for the given hashtag query
|
||||||
*
|
*
|
||||||
* @param query hashtag to be searched
|
* @param query hashtag to be searched
|
||||||
* @return https://(pod-domain.tld)/tags/query
|
* @return https://(pod-domain.tld)/tags/query
|
||||||
|
@ -194,7 +203,7 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url that queries user accounts for query
|
* Return a url that queries user accounts for query
|
||||||
*
|
*
|
||||||
* @param query search term
|
* @param query search term
|
||||||
* @return https://(pod-domain.tld)/people.mobile?q=(query)
|
* @return https://(pod-domain.tld)/people.mobile?q=(query)
|
||||||
|
@ -204,13 +213,37 @@ public class DiasporaUrlHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a https url that points to the statistics page of the pod.
|
* Return a url that points to the statistics page of the pod.
|
||||||
* @return https://(pod-domain.tld)/statistics
|
* @return https://(pod-domain.tld)/statistics
|
||||||
*/
|
*/
|
||||||
public String getStatisticsUrl() {
|
public String getStatisticsUrl() {
|
||||||
return getPodUrl() + SUBURL_STATISTICS;
|
return getPodUrl() + SUBURL_STATISTICS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a url that points to the personal settings page of the pod.
|
||||||
|
* @return https://(pod-domain.tld)/user/edit
|
||||||
|
*/
|
||||||
|
public String getPersonalSettingsUrl() {
|
||||||
|
return getPodUrl() + SUBURL_PERSONAL_SETTINGS;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a url that points to the manage tags page of the pod.
|
||||||
|
* @return https://(pod-domain.tld)/tag_followings/manage
|
||||||
|
*/
|
||||||
|
public String getManageTagsUrl() {
|
||||||
|
return getPodUrl() + SUBURL_MANAGE_TAGS;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a url that points to the manage tags page of the pod.
|
||||||
|
* @return https://(pod-domain.tld)/contacts
|
||||||
|
*/
|
||||||
|
public String getManageContactsUrl() {
|
||||||
|
return getPodUrl() + SUBURL_MANAGE_CONTACTS;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the url of the blank WebView
|
* Returns the url of the blank WebView
|
||||||
*
|
*
|
||||||
|
|
|
@ -29,6 +29,7 @@ import android.webkit.WebView;
|
||||||
import com.github.dfa.diaspora_android.App;
|
import com.github.dfa.diaspora_android.App;
|
||||||
import com.github.dfa.diaspora_android.R;
|
import com.github.dfa.diaspora_android.R;
|
||||||
import com.github.dfa.diaspora_android.data.AppSettings;
|
import com.github.dfa.diaspora_android.data.AppSettings;
|
||||||
|
import com.github.dfa.diaspora_android.data.DiasporaPodList;
|
||||||
import com.github.dfa.diaspora_android.data.PodAspect;
|
import com.github.dfa.diaspora_android.data.PodAspect;
|
||||||
import com.github.dfa.diaspora_android.data.PodUserProfile;
|
import com.github.dfa.diaspora_android.data.PodUserProfile;
|
||||||
|
|
||||||
|
@ -139,16 +140,17 @@ public class WebHelper {
|
||||||
|
|
||||||
// Content
|
// Content
|
||||||
AppSettings appSettings = app.getSettings();
|
AppSettings appSettings = app.getSettings();
|
||||||
|
String pod0BaseUrl = appSettings.getPod().getPodUrl().getBaseUrl();
|
||||||
sb.append("<span style='margin-left: 30px; '></span>» ");
|
sb.append("<span style='margin-left: 30px; '></span>» ");
|
||||||
sb.append(String.format(Locale.getDefault(),
|
sb.append(String.format(Locale.getDefault(),
|
||||||
"<a href='https://%s/followed_tags' style='color: #000000; text-decoration: none;'><b>%s</b></a>",
|
"<a href='%s/followed_tags' style='color: #000000; text-decoration: none;'><b>%s</b></a>",
|
||||||
appSettings.getPodDomain(), app.getString(R.string.all_tags)));
|
pod0BaseUrl, app.getString(R.string.all_tags)));
|
||||||
sb.append("<hr style='height:5px;' />");
|
sb.append("<hr style='height:5px;' />");
|
||||||
for (String tag: profile.getFollowedTags()) {
|
for (String tag: profile.getFollowedTags()) {
|
||||||
sb.append("<span style='margin-left: 30px; '></span>» ");
|
sb.append("<span style='margin-left: 30px; '></span>» ");
|
||||||
sb.append(String.format(Locale.getDefault(),
|
sb.append(String.format(Locale.getDefault(),
|
||||||
"<a href='https://%s/tags/%s' style='color: #000000; text-decoration: none;'>#%s</a>",
|
"<a href='%s/tags/%s' style='color: #000000; text-decoration: none;'>#%s</a>",
|
||||||
appSettings.getPodDomain(), tag, tag));
|
pod0BaseUrl, tag, tag));
|
||||||
sb.append("<hr style='height:5px;' />");
|
sb.append("<hr style='height:5px;' />");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
package com.github.dfa.diaspora_android.webview;
|
package com.github.dfa.diaspora_android.webview;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
|
||||||
import android.support.v4.content.LocalBroadcastManager;
|
import android.support.v4.content.LocalBroadcastManager;
|
||||||
import android.webkit.CookieManager;
|
import android.webkit.CookieManager;
|
||||||
import android.webkit.WebView;
|
import android.webkit.WebView;
|
||||||
|
@ -39,7 +38,7 @@ public class CustomWebViewClient extends WebViewClient {
|
||||||
|
|
||||||
//Open non-diaspora links in customtab/external browser
|
//Open non-diaspora links in customtab/external browser
|
||||||
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
||||||
if (!url.contains(app.getSettings().getPodDomain())) {
|
if (!url.contains(app.getSettings().getPod().getPodUrl().getHost())) {
|
||||||
Intent i = new Intent(MainActivity.ACTION_OPEN_EXTERNAL_URL);
|
Intent i = new Intent(MainActivity.ACTION_OPEN_EXTERNAL_URL);
|
||||||
i.putExtra(MainActivity.EXTRA_URL, url);
|
i.putExtra(MainActivity.EXTRA_URL, url);
|
||||||
LocalBroadcastManager.getInstance(app.getApplicationContext()).sendBroadcast(i);
|
LocalBroadcastManager.getInstance(app.getApplicationContext()).sendBroadcast(i);
|
||||||
|
@ -57,7 +56,7 @@ public class CustomWebViewClient extends WebViewClient {
|
||||||
|
|
||||||
if (cookies != null) {
|
if (cookies != null) {
|
||||||
cookieManager.setCookie(url, cookies);
|
cookieManager.setCookie(url, cookies);
|
||||||
cookieManager.setCookie("https://" + app.getSettings().getPodDomain(), cookies);
|
cookieManager.setCookie(app.getSettings().getPod().getPodUrl().getBaseUrl(), cookies);
|
||||||
//for (String c : cookies.split(";")) {
|
//for (String c : cookies.split(";")) {
|
||||||
//AppLog.d(this, "Cookie: " + c.split("=")[0] + " Value:" + c.split("=")[1]);
|
//AppLog.d(this, "Cookie: " + c.split("=")[0] + " Value:" + c.split("=")[1]);
|
||||||
//}
|
//}
|
||||||
|
|
|
@ -48,6 +48,24 @@
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||||
tools:text="Geraspora"/>
|
tools:text="Geraspora"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/activity_horizontal_margin_half"
|
||||||
|
android:text="@string/pod_address"
|
||||||
|
android:textAppearance="@style/AppTheme.TextAppearance.Caption"/>
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/podselection__dialog__edit_podaddress"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="@dimen/activity_horizontal_margin_half"
|
||||||
|
android:ems="10"
|
||||||
|
android:hint="@string/pod_address"
|
||||||
|
android:inputType="textPersonName"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||||
|
tools:text="pod.geraspora.de"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -78,24 +96,6 @@
|
||||||
android:text="https"/>
|
android:text="https"/>
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="@dimen/activity_horizontal_margin_half"
|
|
||||||
android:text="@string/pod_address"
|
|
||||||
android:textAppearance="@style/AppTheme.TextAppearance.Caption"/>
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/podselection__dialog__edit_podaddress"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="@dimen/activity_horizontal_margin_half"
|
|
||||||
android:ems="10"
|
|
||||||
android:hint="@string/pod_address"
|
|
||||||
android:inputType="textPersonName"
|
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
|
||||||
tools:text="pod.geraspora.de"/>
|
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
<group android:checkableBehavior="none">
|
<group android:checkableBehavior="none" android:id="@+id/nav_group__pod">
|
||||||
<item
|
<item
|
||||||
android:id="@+id/nav_stream"
|
android:id="@+id/nav_stream"
|
||||||
android:icon="@drawable/ic_stream"
|
android:icon="@drawable/ic_stream"
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<!-- Key Names (Untranslatable) -->
|
<!-- Key Names (Untranslatable) -->
|
||||||
<string name="pref_key__poddomain" translatable="false">podDomain</string>
|
<string name="pref_key__poddomain_legacy" translatable="false">podDomain</string>
|
||||||
<string name="pref_key__previous_podlist" translatable="false">previousPodlist</string>
|
<string name="pref_key__current_pod_0" translatable="false">pref_key__current_pod_0</string>
|
||||||
<string name="pref_key__font_size" translatable="false">pref_key_font_size</string>
|
<string name="pref_key__font_size" translatable="false">pref_key_font_size</string>
|
||||||
<string name="pref_key__intellihide_toolbars" translatable="false">pref_key_intellihide_toolbars</string>
|
<string name="pref_key__intellihide_toolbars" translatable="false">pref_key_intellihide_toolbars</string>
|
||||||
<string name="pref_catkey__pod_settings" translatable="false">pref_key_category_pod_settings</string>
|
<string name="pref_catkey__pod_settings" translatable="false">pref_key_category_pod_settings</string>
|
||||||
|
|
Loading…
Reference in a new issue