/** * This file is part of TuCan Mobile. * * TuCan Mobile is free software: you can redistribute it and/or modify * 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. * * TuCan Mobile is distributed in the hope that it will be useful, * 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 * along with TuCan Mobile. If not, see <http://www.gnu.org/licenses/>. */ package com.dalthed.tucan; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.regex.Pattern; import com.dalthed.tucan.helpers.AuthenticationManager; import org.acra.ACRA; import org.acra.annotation.ReportsCrashes; import org.acra.sender.HttpSender.Method; import org.acra.sender.HttpSender.Type; import org.apache.commons.lang3.StringEscapeUtils; import android.app.AlertDialog; import android.app.Application; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Environment; import android.util.Log; //@ReportsCrashes(formKey = "dGxJeFNVZk5YQXRmaXV6WVZfVHYzdWc6MQ") /** * @author Tyde * */ @ReportsCrashes(formKey = "", // will not be used httpMethod = Method.PUT, reportType = Type.JSON, formUri = "http://dttyde.de:5984/acra-tucan/_design/acra-storage/_update/report", formUriBasicAuthLogin = "tucanApp", formUriBasicAuthPassword = "thordielrbl") //@ReportsCrashes(formUri = "http://www.bugsense.com/api/acra?api_key=f08ba688", formKey="") public class TucanMobile extends Application { private static Context Appcontext; /** * The Host String of Tucan without protocol */ public final static String TUCAN_HOST = "www.tucan.tu-darmstadt.de"; /** * The used Protocol */ public final static String TUCAN_PROT = "https://"; /** * Name of the extra in Intents in which Cookies are forwarded */ public final static String EXTRA_COOKIE = "Cookie"; /** * Name of the URL Intent-Extra */ public final static String EXTRA_URL = "URL"; /** * Name of the URL Intent-Extra */ public final static String EXTRA_USERNAME = "UserName"; /** * Name of the cache, where ActionBar fastswitch links are safed */ public final static String LINK_FILE_NAME = "link_cache"; /** * Make App Crash (Bug-Reporting testing) */ public final static Boolean CRASH = false; /** * App is/isn't in Debug mode */ public final static Boolean DEBUG = false; /** * App is/isn't in Testing mode; App cannot work properly, if it is in Testing mode */ public final static Boolean TESTING = false; /** * Tag for Log */ public static final String LOG_TAG = "TuCanMobile"; /** * Pattern for nspbTrennung */ private static final Pattern nbspPat = Pattern.compile(" "); @Override public void onCreate() { //BugReporting does not Work in testing mode if(!TucanMobile.TESTING){ ACRA.init(this); } AuthenticationManager.init(this); super.onCreate(); TucanMobile.Appcontext = getApplicationContext(); } /** * Gibt bei einem String wie "04-00-0126-vu Mathematik 1 (für ET)" "Mathematik 1 (für ET)" zurück * @param evNameString * @return */ public static String getEventNameByString(String evNameString) { String[] evNameAr = nbspPat.split(evNameString); if(evNameAr.length==2){ return StringEscapeUtils.unescapeHtml4(evNameAr[1]); } else { return evNameString; } } public static Context getAppContext() { return Appcontext; } /** * Writes a note on the SD. Only Used for Development purposes * @param sFileName Filname * @param sBody content * @param mContext App Context */ public static void generateNoteOnSD(String sFileName, String sBody,Context mContext) { try { File root = new File(Environment.getExternalStorageDirectory(), "Notes"); if (!root.exists()) { root.mkdirs(); } File gpxfile = new File(root, sFileName); FileWriter writer = new FileWriter(gpxfile); writer.append(sBody); writer.flush(); writer.close(); //Toast.makeText(mContext, "Saved", Toast.LENGTH_SHORT).show(); } catch (IOException e) { e.printStackTrace(); String importError = e.getMessage(); Log.e("TuCanMobile", importError); } } public static void alertOnTucanDown(final Context context,String error) { Dialog tucanDownDialog = new AlertDialog.Builder(context).setTitle("") .setMessage(error) .setPositiveButton("Okay", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Intent goToLogin = new Intent(context, TuCanMobileActivity.class); goToLogin.putExtra("loggedout", true); context.startActivity(goToLogin); } }).create(); } }