2016-03-03 17:46:31 +01:00
|
|
|
/*
|
2016-06-04 03:48:57 +02:00
|
|
|
This file is part of the Diaspora for Android.
|
2016-03-03 17:46:31 +01:00
|
|
|
|
2016-06-04 03:48:57 +02:00
|
|
|
Diaspora for Android is free software: you can redistribute it and/or modify
|
2016-03-03 17:46:31 +01:00
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
2016-06-04 03:48:57 +02:00
|
|
|
Diaspora for Android is distributed in the hope that it will be useful,
|
2016-03-03 17:46:31 +01:00
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
2016-06-04 03:48:57 +02:00
|
|
|
along with the Diaspora for Android.
|
2016-03-03 17:46:31 +01:00
|
|
|
|
|
|
|
If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
2016-03-29 19:38:50 +02:00
|
|
|
package com.github.dfa.diaspora_android.util;
|
2016-03-03 17:46:31 +01:00
|
|
|
|
|
|
|
|
2016-06-04 03:48:57 +02:00
|
|
|
import android.app.Activity;
|
2016-03-03 17:46:31 +01:00
|
|
|
import android.content.Context;
|
2016-06-04 03:48:57 +02:00
|
|
|
import android.content.Intent;
|
2016-03-03 17:46:31 +01:00
|
|
|
import android.net.ConnectivityManager;
|
|
|
|
import android.net.NetworkInfo;
|
2016-06-02 13:58:09 +02:00
|
|
|
import android.support.v4.content.ContextCompat;
|
2016-03-03 17:46:31 +01:00
|
|
|
import android.webkit.WebView;
|
|
|
|
|
2016-06-05 17:25:11 +02:00
|
|
|
import com.github.dfa.diaspora_android.App;
|
2016-06-04 03:48:57 +02:00
|
|
|
import com.github.dfa.diaspora_android.R;
|
2016-06-05 17:25:11 +02:00
|
|
|
import com.github.dfa.diaspora_android.data.PodAspect;
|
|
|
|
import com.github.dfa.diaspora_android.data.PodUserProfile;
|
2016-06-04 03:48:57 +02:00
|
|
|
|
2016-03-03 17:46:31 +01:00
|
|
|
public class Helpers {
|
|
|
|
|
2016-03-26 01:14:17 +01:00
|
|
|
public static boolean isOnline(Context context) {
|
2016-03-03 17:46:31 +01:00
|
|
|
ConnectivityManager cnm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
|
|
|
NetworkInfo ni = cnm.getActiveNetworkInfo();
|
|
|
|
return ni != null && ni.isConnectedOrConnecting();
|
|
|
|
}
|
|
|
|
|
2016-06-04 03:48:57 +02:00
|
|
|
public static void animateToActivity(Activity from, Class to, boolean finishFromActivity) {
|
|
|
|
Intent intent = new Intent(from, to);
|
|
|
|
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
|
|
|
|
from.startActivity(intent);
|
|
|
|
from.overridePendingTransition(R.anim.fadein, R.anim.fadeout);
|
|
|
|
if (finishFromActivity) {
|
|
|
|
from.finish();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-06-05 17:25:11 +02:00
|
|
|
public static void applyDiasporaMobileSiteChanges(final WebView wv) {
|
2016-03-03 17:46:31 +01:00
|
|
|
wv.loadUrl("javascript: ( function() {" +
|
2016-06-04 21:46:54 +02:00
|
|
|
" document.documentElement.style.paddingBottom = '260px';" +
|
|
|
|
" document.getElementById('main').style.paddingTop = '5px';" +
|
2016-03-03 17:46:31 +01:00
|
|
|
" if(document.getElementById('main_nav')) {" +
|
|
|
|
" document.getElementById('main_nav').parentNode.removeChild(" +
|
|
|
|
" document.getElementById('main_nav'));" +
|
|
|
|
" } else if (document.getElementById('main-nav')) {" +
|
|
|
|
" document.getElementById('main-nav').parentNode.removeChild(" +
|
|
|
|
" document.getElementById('main-nav'));" +
|
|
|
|
" }" +
|
|
|
|
"})();");
|
|
|
|
}
|
|
|
|
|
2016-03-20 22:49:11 +01:00
|
|
|
public static void getNotificationCount(final WebView wv) {
|
2016-03-03 17:46:31 +01:00
|
|
|
wv.loadUrl("javascript: ( function() {" +
|
2016-03-26 01:14:17 +01:00
|
|
|
"if (document.getElementById('notification')) {" +
|
2016-03-03 17:46:31 +01:00
|
|
|
" var count = document.getElementById('notification').innerHTML;" +
|
2016-03-20 22:49:11 +01:00
|
|
|
" AndroidBridge.setNotificationCount(count.replace(/(\\r\\n|\\n|\\r)/gm, \"\"));" +
|
2016-03-03 17:46:31 +01:00
|
|
|
" } else {" +
|
2016-03-20 22:49:11 +01:00
|
|
|
" AndroidBridge.setNotificationCount('0');" +
|
2016-03-03 17:46:31 +01:00
|
|
|
" }" +
|
|
|
|
" if (document.getElementById('conversation')) {" +
|
|
|
|
" var count = document.getElementById('conversation').innerHTML;" +
|
2016-03-20 22:49:11 +01:00
|
|
|
" AndroidBridge.setConversationCount(count.replace(/(\\r\\n|\\n|\\r)/gm, \"\"));" +
|
2016-03-03 17:46:31 +01:00
|
|
|
" } else {" +
|
2016-03-20 22:49:11 +01:00
|
|
|
" AndroidBridge.setConversationCount('0');" +
|
2016-03-03 17:46:31 +01:00
|
|
|
" }" +
|
|
|
|
"})();");
|
|
|
|
}
|
2016-03-20 22:49:11 +01:00
|
|
|
|
2016-03-24 13:56:30 +01:00
|
|
|
public static void getUserProfile(final WebView wv) {
|
2016-06-05 17:25:11 +02:00
|
|
|
// aspects":[{"id":124934,"name":"Friends","selected":true},{"id":124937,"name":"Liked me","selected":false},{"id":124938,"name":"Follow","selected":false},{"id":128327,"name":"Nur ich","selected":false}]
|
2016-03-24 13:56:30 +01:00
|
|
|
wv.loadUrl("javascript: ( function() {" +
|
|
|
|
" if (typeof gon !== 'undefined' && typeof gon.user !== 'undefined') {" +
|
|
|
|
" var userProfile = JSON.stringify(gon.user);" +
|
|
|
|
" AndroidBridge.setUserProfile(userProfile.toString());" +
|
|
|
|
" } " +
|
|
|
|
"})();");
|
|
|
|
}
|
2016-06-05 17:25:11 +02:00
|
|
|
|
|
|
|
public static void showAspectList(final WebView wv, final App app) {
|
|
|
|
wv.stopLoading();
|
|
|
|
PodUserProfile profile = app.getPodUserProfile();
|
|
|
|
StringBuffer sb = new StringBuffer();
|
|
|
|
int intColor = ContextCompat.getColor(app, R.color.colorAccent);
|
|
|
|
String strColor = String.format("#%06X", (0xFFFFFF & intColor));
|
|
|
|
|
|
|
|
sb.append("<html><body style='width:80%; margin-left:auto;margin-right:auto; font-size: 400%;'><center><b>");
|
|
|
|
sb.append(String.format("<h1 style='color: %s; text-shadow: 4px 4px 12px #000000;'>%s</h1>", strColor, app.getString(R.string.jb_aspects)));
|
|
|
|
sb.append("</b></center>");
|
|
|
|
// Content
|
|
|
|
for (PodAspect aspect : profile.getAspects()) {
|
|
|
|
sb.append("» ");
|
|
|
|
sb.append(aspect.toHtmlLink(app));
|
|
|
|
sb.append("</br></br>");
|
|
|
|
}
|
|
|
|
// End
|
|
|
|
sb.append("</body></html>");
|
|
|
|
wv.loadData(sb.toString(), "text/html", "UTF-16");
|
|
|
|
}
|
2016-03-03 17:46:31 +01:00
|
|
|
}
|