/* * 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 com.android.mms.data.Contact; import com.android.mms.data.ContactContentObserber; 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 android.app.Application; import android.content.Context; import android.content.SharedPreferences; import android.content.res.Configuration; import android.preference.PreferenceManager; import android.provider.SearchRecentSuggestions; import android.telephony.SmsManager; import android.telephony.TelephonyManager; import com.android.internal.telephony.PhoneFactory; public class MmsApp extends Application { public static final String LOG_TAG = "Mms"; private SearchRecentSuggestions mRecentSuggestions; private TelephonyManager mTelephonyManager; private static MmsApp sMmsApp = null; public static boolean initMms; @Override public void onCreate() { super.onCreate(); sMmsApp = this; // fixed bug for 19102 19105 start initMms = true; // fixed bug for 19102 19105 start // Load the default preference values PreferenceManager.setDefaultValues(this, R.xml.preferences, false); MmsConfig.init(this); Contact.init(this); DraftCache.init(this); // fixed bug for 19102 19105 start ,move in ConversationList oncreate(). // Conversation.init(this, true); // fixed bug for 19102 19105 end DownloadManager.init(this); RateController.init(this); DrmUtils.cleanupStorage(this); LayoutManager.init(this); SmileyParser.init(this); MessagingNotification.init(this); ContactContentObserber.init(this); SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); if(sharedPreferences.contains("pref_key_sms_retry_times")){ boolean smsRetryTimes = sharedPreferences.getBoolean("pref_key_sms_retry_times", true); if(!smsRetryTimes){ SmsManager smsManager = SmsManager.getDefault(); smsManager.setMaxSendRetries(1); }else { SmsManager smsManager = SmsManager.getDefault(); smsManager.setMaxSendRetries(3); } } } synchronized public static MmsApp getApplication() { return sMmsApp; } @Override public void onTerminate() { DrmUtils.cleanupStorage(this); } @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; } public TelephonyManager getTelephonyManager(int phoneId) { return (TelephonyManager)getApplicationContext() .getSystemService(PhoneFactory.getServiceName(Context.TELEPHONY_SERVICE, phoneId)); } public boolean hasAnyIccCard() { TelephonyManager tm=getTelephonyManager(); int phoneCount=tm.getPhoneCount(); for (int i=0;i<phoneCount;++i) { if (getTelephonyManager(i).hasIccCard()) { return true; } } return false; } /** * 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; } }