/* * Copyright (C) 2008 Esmertec AG. * Copyright (C) 2008 The Android Open Source Project * * 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.android.mms; import java.io.File; import java.util.Locale; import com.android.mms.data.Contact; import com.android.mms.data.Conversation; import com.android.mms.layout.LayoutManager; import com.android.mms.util.DownloadManager; import com.android.mms.util.DraftCache; import com.android.mms.drm.DrmUtils; import com.android.mms.util.SmileyParser; import com.android.mms.util.RateController; import com.android.mms.MmsConfig; import com.android.mms.transaction.MessagingNotification; import com.google.android.mms.MmsException; import android.app.Application; import android.content.Context; import android.content.res.Configuration; import android.location.Country; import android.location.CountryDetector; import android.location.CountryListener; import android.net.Uri; import android.preference.PreferenceManager; import android.provider.SearchRecentSuggestions; import android.telephony.TelephonyManager; import android.util.Log; public class MmsApp extends Application { public static final String LOG_TAG = "Mms"; private SearchRecentSuggestions mRecentSuggestions; private TelephonyManager mTelephonyManager; private CountryDetector mCountryDetector; private CountryListener mCountryListener; private String mCountryIso; private static MmsApp sMmsApp = null; @Override public void onCreate() { super.onCreate(); sMmsApp = this; // Load the default preference values PreferenceManager.setDefaultValues(this, R.xml.preferences, false); // Figure out the country *before* loading contacts and formatting numbers mCountryDetector = (CountryDetector) getSystemService(Context.COUNTRY_DETECTOR); mCountryListener = new CountryListener() { @Override public synchronized void onCountryDetected(Country country) { mCountryIso = country.getCountryIso(); } }; mCountryDetector.addCountryListener(mCountryListener, getMainLooper()); mCountryIso = mCountryDetector.detectCountry().getCountryIso(); MmsConfig.init(this); Contact.init(this); DraftCache.init(this); Conversation.init(this); DownloadManager.init(this); RateController.init(this); DrmUtils.cleanupStorage(this); LayoutManager.init(this); SmileyParser.init(this); MessagingNotification.init(this); } synchronized public static MmsApp getApplication() { return sMmsApp; } @Override public void onTerminate() { DrmUtils.cleanupStorage(this); mCountryDetector.removeCountryListener(mCountryListener); } @Override public void onConfigurationChanged(Configuration newConfig) { LayoutManager.getInstance().onConfigurationChanged(newConfig); } /** * @return Returns the TelephonyManager. */ public TelephonyManager getTelephonyManager() { if (mTelephonyManager == null) { mTelephonyManager = (TelephonyManager)getApplicationContext() .getSystemService(Context.TELEPHONY_SERVICE); } return mTelephonyManager; } /** * Returns the content provider wrapper that allows access to recent searches. * @return Returns the content provider wrapper that allows access to recent searches. */ public SearchRecentSuggestions getRecentSuggestions() { /* if (mRecentSuggestions == null) { mRecentSuggestions = new SearchRecentSuggestions(this, SuggestionsProvider.AUTHORITY, SuggestionsProvider.MODE); } */ return mRecentSuggestions; } public String getCurrentCountryIso() { return mCountryIso; } }